re PR target/47715 ([x32] TLS doesn't work)
[gcc.git] / gcc / ChangeLog
1 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
2
3 PR target/47715
4 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
5 tls_symbolic_operand check. Update code sequence for TARGET_X32.
6 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
7 (tls_dynamic_gnu2_64): Ditto.
8 (*tls_dynamic_gnu2_lea_64): Ditto.
9 (*tls_dynamic_gnu2_call_64): Ditto.
10 (*tls_dynamic_gnu2_combine_64): Ditto.
11
12 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
13
14 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
15
16 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
17
18 PR target/47364
19 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
20
21 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22
23 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
24 before the core constraints. Adjust attributes.
25 (*thumb2_movdf_vfp"): Likewise.
26
27 2011-07-28 Kai Tietz <ktietz@redhat.com>
28
29 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
30 (simplify_truth_ops_using_ranges): Likewise.
31 (build_assert_expr_for): Likewise.
32 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
33 and handle BIT_NOT_EXPR for truth-operation.
34
35 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
36
37 PR target/49313
38 Undo r176835 from trunk
39 2011-07-27 Georg-Johann Lay
40
41 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
42
43 PR target/49687
44 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
45 Add _muluhisi3, _mulshisi3, _usmulhisi3.
46 * config/avr/libgcc.S (__mulsi3): Rewrite.
47 (__mulhisi3): Rewrite.
48 (__umulhisi3): Rewrite.
49 (__usmulhisi3): New.
50 (__muluhisi3): New.
51 (__mulshisi3): New.
52 (__mulohisi3): New.
53 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
54 declare.
55 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
56 (pseudo_register_or_const_int_operand): New.
57 (combine_pseudo_register_operand): New.
58 (u16_operand): New.
59 (s16_operand): New.
60 (o16_operand): New.
61 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
62 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
63 (any_extend, any_extend2): New code iterators.
64 (extend_prefix): New code attribute.
65 (mulsi3): Rewrite. Turn insn to expander.
66 (mulhisi3): Ditto.
67 (umulhisi3): Ditto.
68 (usmulhisi3): New expander.
69 (*mulsi3): New insn-and-split.
70 (mulu<mode>si3): New insn-and-split.
71 (muls<mode>si3): New insn-and-split.
72 (mulohisi3): New insn-and-split.
73 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
74 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
75 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
76 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
77 insn-and-split.
78 (*mulsi3_call): Rewrite.
79 (*mulhisi3_call): Rewrite.
80 (*umulhisi3_call): Rewrite.
81 (*usmulhisi3_call): New insn.
82 (*muluhisi3_call): New insn.
83 (*mulshisi3_call): New insn.
84 (*mulohisi3_call): New insn.
85 (extendqihi2): Use combine_pseudo_register_operand as predicate
86 for operand 1.
87 (extendqisi2): Ditto.
88 (zero_extendqihi2): Ditto.
89 (zero_extendqisi2): Ditto.
90 (zero_extendhisi2): Ditto.
91 (extendhisi2): Ditto. Don't early-clobber operand 0.
92
93 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
94
95 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
96
97 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
98
99 PR tree-optimization/49471
100 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
101 iv only when the largest type is unsigned. Do not call
102 lang_hooks.types.type_for_size.
103
104 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
105
106 PR middle-end/45450
107 * graphite-poly.c (apply_poly_transforms): Disable legality check
108 after an openscop read.
109
110 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
111
112 PR middle-end/47691
113 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
114 copy_bb_and_scalar_dependences.
115 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
116 (graphite_copy_stmts_from_block): Update call to rename_uses.
117 (copy_bb_and_scalar_dependences): Update call to
118 graphite_copy_stmts_from_block.
119 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
120
121 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
122
123 PR target/49313
124 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
125 (__ctzsi2): Result for 0 may be undefined.
126 (__ctzhi2): Result for 0 may be undefined.
127 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
128 (__popcountsi2): Ditto. And don't clobber r26.
129 (__popcountdi2): Ditto. And don't clobber r27.
130 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
131 (parityhi2): New expand.
132 (paritysi2): New expand.
133 (popcounthi2): New expand.
134 (popcountsi2): New expand.
135 (clzhi2): New expand.
136 (clzsi2): New expand.
137 (ctzhi2): New expand.
138 (ctzsi2): New expand.
139 (ffshi2): New expand.
140 (ffssi2): New expand.
141 (copysignsf3): New insn.
142 (bswapsi2): New expand.
143 (*parityhi2.libgcc): New insn.
144 (*parityqihi2.libgcc): New insn.
145 (*paritysihi2.libgcc): New insn.
146 (*popcounthi2.libgcc): New insn.
147 (*popcountsi2.libgcc): New insn.
148 (*popcountqi2.libgcc): New insn.
149 (*popcountqihi2.libgcc): New insn-and-split.
150 (*clzhi2.libgcc): New insn.
151 (*clzsihi2.libgcc): New insn.
152 (*ctzhi2.libgcc): New insn.
153 (*ctzsihi2.libgcc): New insn.
154 (*ffshi2.libgcc): New insn.
155 (*ffssihi2.libgcc): New insn.
156 (*bswapsi2.libgcc): New insn.
157
158 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
159
160 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
161 the mode of symbolic_opreand RTXes.
162
163 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
164
165 * config/i386/predicates.md (x86_64_movabs_operand): Reject
166 pic32_bit_operand RTXes.
167 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
168 in DImode.
169
170 2011-07-27 Kai Tietz <ktietz@redhat.com>
171
172 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
173 for 32-bit, too.
174 (ix86_handle_abi_attribute): Allow function attributes
175 ms_abi/sysv_abi in 32-bit mode, too.
176 * doc/extend.texi: Adjust attribute documentation.
177
178 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
179 expression handling.
180 (and_var_with_comparison_1): Likewise.
181
182 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
183
184 * params.h (ALLOW_STORE_DATA_RACES): New.
185 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
186 * Makefile.in (expr.o): Depend on PARAMS_H.
187 * machmode.h (get_best_mode): Add argument.
188 * fold-const.c (optimize_bit_field_compare): Add argument to
189 get_best_mode.
190 (fold_truthop): Same.
191 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
192 * expr.c (emit_group_store): Same.
193 (copy_blkmode_from_reg): Same.
194 (write_complex_part): Same.
195 (optimize_bitfield_assignment_op): Add argument.
196 Add argument to get_best_mode.
197 (get_bit_range): New.
198 (expand_assignment): Calculate maxbits and pass it down accordingly.
199 (store_field): New argument.
200 (expand_expr_real_2): New argument to store_field. Include params.h.
201 * expr.h (store_bit_field): New argument.
202 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
203 into account maxbits.
204 * calls.c (store_unaligned_arguments_into_pseudos): New argument
205 to store_bit_field.
206 * expmed.c (store_bit_field_1): New argument. Use it.
207 (store_bit_field): Same.
208 (store_fixed_bit_field): Same.
209 (store_split_bit_field): Same.
210 (extract_bit_field_1): Pass new argument to get_best_mode.
211 (extract_bit_field): Same.
212 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
213 * doc/invoke.texi: Document parameter allow-store-data-races.
214
215 2011-07-27 Jakub Jelinek <jakub@redhat.com>
216
217 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
218
219 2011-07-27 Kai Tietz <ktietz@redhat.com>
220
221 * tree-vrp.c (extract_range_from_binary_expr): Remove
222 TRUTH-binary cases and add new bitwise-cases.
223 (extract_range_from_assignment): Likewise.
224 (register_edge_assert_for_1): Likeiwise.
225 (register_edge_assert_for): Likewise.
226 (simplify_truth_ops_using_ranges): Likewise.
227 (simplify_stmt_using_ranges): Likewise.
228
229 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
230
231 PR target/47372
232 * config/i386/i386.c (ix86_delegitimize_address): Call
233 simplify_gen_subreg for PIC with mode of x only if modes of
234 x and orig_x are different.
235
236 2011-07-26 Jakub Jelinek <jakub@redhat.com>
237
238 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
239 to GC allocated copy of the string.
240 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
241 before .debug_line, not after it.
242
243 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
244
245 PR middle-end/47046
246 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
247 evolution_function_is_affine_p on CHREC_RIGHT.
248
249 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
250
251 * tree-data-ref.c (max_stmt_executions_tree): Do not call
252 lang_hooks.types.type_for_size.
253
254 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
255
256 PR middle-end/47653
257 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
258 loops using wrapping semantics.
259
260 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
261
262 PR middle-end/48805
263 * tree-scalar-evolution.c (instantiate_scev_r): Return
264 chrec_dont_know for ADDR_EXPR.
265
266 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
267 H.J. Lu <hongjiu.lu@intel.com>
268
269 PR target/47369
270 PR target/49853
271 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
272 if legitimize_tls_address returned operand in wrong mode. Allow
273 SImode and DImode symbolic operand for PIC. Call convert_to_mode
274 if legitimize_pic_address returned operand in wrong mode.
275
276 2011-07-26 Martin Jambor <mjambor@suse.cz>
277
278 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
279 return false for invariants.
280
281 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
282
283 * config/i386/i386.md (add->lea splitter): Implement using SWI
284 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
285 (add->lea zext splitter): Change operand 2 predicate to
286 x86_64_nonmemory_operand.
287
288 2011-07-26 Richard Guenther <rguenther@suse.de>
289
290 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
291 frequency makes everything hot.
292
293 2011-07-26 Richard Guenther <rguenther@suse.de>
294
295 PR tree-optimization/49840
296 * tree-vrp.c (range_fits_type_p): Properly handle full
297 double-int precision.
298
299 2011-07-26 Martin Jambor <mjambor@suse.cz>
300
301 PR bootstrap/49786
302 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
303 counts.
304 (update_specialized_profile): Likewise.
305
306 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
307 H.J. Lu <hongjiu.lu@intel.com>
308
309 PR target/47381
310 PR target/49832
311 PR target/49833
312 * config/i386/i386.md (i): Change SImode attribute to "e".
313 (g): Change SImode attribute to "rme".
314 (di): Change SImode attribute to "nF".
315 (general_operand): Change SImode attribute to x86_64_general_operand.
316 (general_szext_operand): Change SImode attribute to
317 x86_64_szext_general_operand.
318 (immediate_operand): Change SImode attribute to
319 x86_64_immediate_operand.
320 (nonmemory_operand): Change SImode attribute to
321 x86_64_nonmemory_operand.
322 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
323 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
324 (*lea_1): Use SWI48 mode iterator.
325 (*lea_1_zext): New insn pattern.
326 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
327 (*bt<mode>): Ditto.
328 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
329 Update operand constraints.
330 (addsi_1_zext): Ditto.
331 (*add<mode>2): Ditto.
332 (*addsi_3_zext): Ditto.
333 (*subsi_1_zext): Ditto.
334 (*subsi_2_zext): Ditto.
335 (*subsi_3_zext): Ditto.
336 (*addsi3_carry_zext): Ditto.
337 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
338 (*mulsi3_1_zext): Ditto.
339 (*andsi_1): Ditto.
340 (*andsi_1_zext): Ditto.
341 (*andsi_2_zext): Ditto.
342 (*<any_or:code>si_1_zext): Ditto.
343 (*<any_or:code>si_2_zext): Ditto.
344 (*test<mode>_1): Use <general_operand> predicate for operand 1.
345 (*and<mode>_2): Ditto.
346 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
347 (add->lea splitter): Check operand modes in insn constraint. Extend
348 operands less than SImode wide to SImode.
349 (add->lea zext splitter): Do not extend input operands to DImode.
350 (*lea_general_1): Handle only QImode and HImode operands.
351 (*lea_general_2): Ditto.
352 (*lea_general_3): Ditto.
353 (*lea_general_1_zext): Remove.
354 (*lea_general_2_zext): Ditto.
355 (*lea_general_3_zext): Ditto.
356 (*lea_general_4): Check operand modes in insn constraint. Extend
357 operands less than SImode wide to SImode.
358 (ashift->lea splitter): Ditto.
359 * config/i386/i386.c (ix86_print_operand_address): Print address
360 registers with 'q' modifier on 64bit targets.
361 * config/i386/predicates.md (pic_32bit_opreand): Define as special
362 predicate. Reject non-SI and non-DI modes.
363
364 2011-07-25 Andrew Pinski <apinski@cavium.com>
365
366 PR tree-opt/49671
367 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
368 TREE_THIS_NOTRAP into the inner most MEM_REF.
369 Always copy TREE_THIS_VOLATILE.
370 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
371 arguments are not volatile references.
372
373 2011-07-25 Richard Henderson <rth@redhat.com>
374
375 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
376 * final.c (final_scan_insn): Don't test for it.
377 (rest_of_clean_state): Likewise.
378
379 2011-07-25 Richard Henderson <rth@redhat.com>
380
381 PR debug/49841
382 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
383 (emit_frame_save): Likewise.
384 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
385 insn onto a dummy blockage insn after the join label.
386
387 2011-07-25 Richard Henderson <rth@redhat.com>
388
389 * dwarf2cfi.c (dw_trace_info): Add ID member.
390 (get_trace_index): Remove. Change users to use ID member.
391 (before_next_cfi_note): New.
392 (connect_traces): Remove unreachable traces before the main loop.
393 Look across one trace and generate remember/restore_state if needed.
394
395 2011-07-25 Richard Henderson <rth@redhat.com>
396
397 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
398
399 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
400
401 * genattr.c (write_upcase, gen_attr <enum definition writing>):
402 Move to ...
403 * genattr-common.c ... here.
404 (main): Call gen_attr.
405 * optc-gen.awk: Make generated program include insn-attr-common.h .
406 * Makefile.in (oprions.o): Depend on insn-attr-common.h
407
408 2011-07-25 Anatoly Sokolov <aesok@post.ru>
409
410 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
411 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
412 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
413 m32c_print_operand, m32c_print_operand_address): Remove.
414 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
415 Change return type to bool. Change argument type to bool.
416 (m32c_print_operand, m32c_print_operand_address): Make static.
417 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
418 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
419
420 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
421
422 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
423 attributes): Document mmap.
424
425 2011-07-25 Anatoly Sokolov <aesok@post.ru>
426
427 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
428 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
429 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
430 mmix_print_operand, mmix_print_operand_address): Remove.
431 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
432 Change return type to bool. Change argument type to bool.
433 (mmix_print_operand, mmix_print_operand_address): Make static.
434 (mmix_intval, mmix_output_condition): Change 'x' argument type
435 to const_rtx.
436 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
437 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
438
439 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
440
441 PR target/39386
442 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
443 shift counter for x << x and x >> x shifts.
444
445 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
446
447 PR target/47124
448 * config.gcc: Reject *-*-solaris2 configuration.
449
450 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
451
452 PR tree-optimization/49809
453 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
454 gimple_get_lhs instead of gimple_assign_lhs.
455
456 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
457
458 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
459
460 2011-07-25 Richard Guenther <rguenther@suse.de>
461
462 PR tree-optimization/49822
463 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
464 more. Make sure to preserve stmts with side-effects. Properly
465 handle virtual defs, follow a longer def chain.
466
467 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
468
469 PR plugins/45348
470 PR plugins/48425
471 PR plugins/46577
472 * Makefile.in: Do not flatten c-family directory when installing
473 plugin headers.
474
475 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
476
477 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
478 original nodes if we are dealing with virtual clones.
479
480 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
481
482 * common/config/c6x/c6x-common.c: New file.
483
484 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
485
486 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
487
488 2011-07-25 Richard Guenther <rguenther@suse.de>
489
490 PR tree-optimization/49715
491 * tree-vrp.c: Include expr.h and optabs.h.
492 (range_fits_type_): New function.
493 (simplify_float_conversion_using_ranges): Likewise.
494 (simplify_stmt_using_ranges): Call it.
495 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
496 * optabs.c (can_float_p): Export.
497 * optabs.h (can_float_p): Declare.
498
499 2011-07-25 Richard Guenther <rguenther@suse.de>
500
501 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
502 (get_value_range): For out-of-range SSA names or names created
503 after propagation return a read-only varying range.
504 (dump_all_value_ranges): Adjust.
505 (vrp_initialize): Likewise.
506 (vrp_finalize): Likewise.
507
508 2011-07-24 Richard Henderson <rth@redhat.com>
509
510 PR debug/49831
511 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
512 them entirely.
513
514 2011-07-24 Richard Henderson <rth@redhat.com>
515
516 PR debug/49825
517 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
518 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
519
520 2011-07-24 Richard Henderson <rth@redhat.com>
521
522 PR debug/49827
523 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
524
525 2011-07-24 Richard Henderson <rth@redhat.com>
526
527 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
528 Zero args_size for abnormal edges. Adjust all callers.
529
530 2011-07-24 Richard Henderson <rth@redhat.com>
531
532 PR debug/49825
533 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
534
535 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
536
537 PR bootstrap/49835
538 * collect2.c (demangle_flag): Removed.
539
540 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
541
542 * configure.ac (demangler_in_ld): Default to yes.
543 * configure: Regenerated.
544 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
545 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
546 --no-demangle options straight through to ld. When
547 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
548 way that has the intended effect on Windows.
549
550 2011-07-23 Richard Henderson <rth@redhat.com>
551
552 * dwarf2cfi.c: Include basic-block.h.
553 (dw_label_info): Remove.
554 (trace_work_list, trace_index): New.
555 (remember_row, emit_cfa_remember): Remove.
556 (dw_trace_info_hash, dw_trace_info_eq): New.
557 (get_trace_index, get_trace_info): New.
558 (save_point_p): New.
559 (free_cfi_row): Remove.
560 (add_cfi): Do not emit DW_CFA_remember_state.
561 (cfa_row_equal_p): New.
562 (barrier_args_size): Remove.
563 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
564 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
565 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
566 (dwarf2out_cfi_begin_epilogue): Remove.
567 (dwarf2out_frame_debug_restore_state): Remove.
568 (connect_traces, create_pseudo_cfg): New.
569 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
570 * Makefile.in (dwarf2cfi.o): Update.
571
572 2011-07-23 Richard Henderson <rth@redhat.com>
573
574 * dwarf2cfi.c (dw_trace_info): New.
575 (dw_label_info): New.
576 (cie_return_save): New.
577 (cur_trace): New.
578 (queued_args_size): Rename from args_size. Update all users.
579 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
580 (def_cfa_1): Use cur_trace instead of cfa_*.
581 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
582 (clobbers_queued_reg_save, reg_saved_in): Likewise.
583 (dwarf2out_frame_debug_expr): Likewise.
584 (create_cie_data): Split out from ...
585 (execute_dwarf2_frame): ... here. Initialize cur_trace.
586
587 2011-07-23 Richard Henderson <rth@redhat.com>
588
589 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
590 Update all users to match.
591 (execute_dwarf2_frame): Free reg_saved_in_data.
592
593 2011-07-23 Richard Henderson <rth@redhat.com>
594
595 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
596 (queued_reg_saves): Don't GTY. Change to a VEC.
597 (queue_reg_save): Update to match.
598 (dwarf2out_flush_queued_reg_saves): Likewise.
599 (clobbers_queued_reg_save): Likewise.
600 (reg_saved_in): Likewise.
601 (execute_dwarf2_frame): Free queued_reg_saves.
602
603 2011-07-23 Richard Henderson <rth@redhat.com>
604
605 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
606
607 2011-07-23 Richard Henderson <rth@redhat.com>
608
609 * dwarf2cfi.c (add_cfi_args_size): Split out from...
610 (dwarf2out_args_size): ... here.
611 (add_cfi_restore): Split out from ...
612 (dwarf2out_frame_debug_cfa_restore): ... here.
613 (def_cfa_0): Split out from ...
614 (def_cfa_1): ... here.
615 (cfi_oprnd_equal_p, cfi_equal_p): New.
616 (change_cfi_row): New.
617 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
618 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
619 (output_cfis): Remove.
620 * dwarf2out.c (output_fde): Simplify output_cfi loop.
621 (dwarf2out_switch_text_section): Don't call output_cfis.
622 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
623 * dwarf2out.h: Update decls.
624 (enum dw_val_class): Add dw_val_class_none.
625
626 2011-07-23 Richard Henderson <rth@redhat.com>
627
628 * dwarf2cfi.c (update_row_reg_save): New.
629 (dwarf2out_frame_debug_cfa_expression): Use it.
630 (dwarf2out_frame_debug_cfa_restore): Likewise.
631 (reg_save): Likewise. Do not emit DW_CFA_same_value.
632
633 2011-07-23 Richard Henderson <rth@redhat.com>
634
635 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
636
637 2011-07-23 Richard Henderson <rth@redhat.com>
638
639 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
640 (cie_cfi_row): New.
641 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
642 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
643 (cur_row, remember_row): New.
644 (def_cfa_1): Use cur_row instead of the old_* variables.
645 (dwarf2out_frame_debug_restore_state): Similarly.
646 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
647 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
648 (dwarf2out_frame_debug_adjust_cfa): Likewise.
649 (dwarf2out_frame_debug_cfa_offset): Likewise.
650 (dwarf2out_frame_debug_expr): Likewise.
651 (execute_dwarf2_frame): Set up cur_row.
652 * dwarf2out.h (struct cfa_loc): Mark for GTY.
653
654 2011-07-23 Richard Henderson <rth@redhat.com>
655
656 * basic-block.h (EDGE_PRESERVE): New.
657 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
658 * bb-reorder.c: Include except.h.
659 (fix_up_crossing_landing_pad): New.
660 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
661 landing pads in the right partition. Duplicate as necessary.
662 (partition_hot_cold_basic_blocks): Fix up DF info after
663 duplicating landing pads.
664 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
665 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
666 is set properly. Validate that EH edges are not CROSSING.
667 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
668 (dw2_build_landing_pads): ... here.
669 (convert_to_eh_region_ranges): Remove code to fixup crossing
670 landing pads.
671 * except.h (expand_dw2_landing_pad_for_region): Declare.
672 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
673
674 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
675
676 PR target/49816
677 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
678
679 2011-07-22 Jason Merrill <jason@redhat.com>
680
681 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
682
683 2011-07-22 Richard Henderson <rth@redhat.com>
684
685 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
686
687 2011-07-22 Richard Henderson <rth@redhat.com>
688
689 * jump.c (maybe_propagate_label_ref): Split out of...
690 (mark_all_labels): ... here. Do not attempt label_ref
691 propagation while in cfglayout mode.
692
693 2011-07-22 Jakub Jelinek <jakub@redhat.com>
694
695 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
696 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
697 (dwarf_attr_name): Handle DW_AT_GNU_macros.
698 (dwarf2out_define): If the vector is empty and
699 lineno is 0, emit a dummy entry first.
700 (dwarf2out_undef): Likewise. Remove redundant semicolon.
701 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
702 optimize_macinfo_range): New functions.
703 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
704 mergeable, optimize longer strings using
705 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
706 optimize longer sequences of define/undef ops from headers
707 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
708 emit a section headers.
709 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
710 and macinfo_section_label to DEBUG_MACRO_SECTION
711 resp. DEBUG_MACRO_SECTION_LABEL.
712 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
713 instead of DW_AT_macro_info.
714
715 PR other/32998
716 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
717 options.
718 * dwarf2out.c: Include opts.h.
719 (dchar_p): New typedef. Define heap VEC for it.
720 (producer_string): New variable.
721 (gen_producer_string): New function.
722 (gen_compile_unit_die): Use it.
723 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
724 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
725 * doc/invoke.texi: Document -grecord-gcc-switches and
726 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
727 to -frecord-gcc-switches description.
728
729 2011-07-22 Jason Merrill <jason@redhat.com>
730
731 PR c++/30112
732 * c-decl.c (c_linkage_bindings): Define.
733
734 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
735
736 PR debug/49815
737 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
738
739 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
740
741 * config/i386/i386.c (ix86_option_override_internal): Disallow
742 MS ABI in x32 mode.
743 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
744 only for TARGET_LP64.
745 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
746
747 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
748
749 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
750 avoid warnings when GCC is built with a C++ compiler.
751
752 2011-07-22 Martin Jambor <mjambor@suse.cz>
753
754 PR lto/49796
755 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
756 if decl node is in another partition, call cgraph_get_node only once.
757
758 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
759
760 * config.gcc (x86_64-*-linux*): Set
761 default_gnu_indirect_function to yes.
762
763 2011-07-22 Richard Guenther <rguenther@suse.de>
764
765 PR tree-optimization/45819
766 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
767 preserve volatile and notrap flags.
768
769 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
770 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
771
772 PR bootstrap/49794
773 * configure.ac: Test AM_ICONV with CXX.
774 * configure: Regenerate.
775 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
776
777 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
778
779 PR bootstrap/49797
780 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
781 (set_cloog_options): Use it.
782
783 2011-07-22 Jakub Jelinek <jakub@redhat.com>
784
785 PR c++/49756
786 * gcc.c (main): Call stack_limit_increase (64MB).
787 * toplev.c (toplev_main): Likewise.
788
789 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
790
791 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
792 instead of force_reg.
793
794 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
795
796 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
797 needed and use force_reg after convert.
798 (ix86_expand_call): Likewise.
799 (ix86_expand_special_args_builtin): Likewise.
800 (ix86_expand_builtin): Likewise.
801
802 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
803
804 PR middle-end/47654
805 PR middle-end/49649
806 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
807 in parameter. Initialize v1 and v2 based on the values returned
808 by clast_name_to_lb_ub.
809 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
810 values.
811 (type_for_clast_bin): Same.
812 (type_for_clast_expr): Same.
813 (type_for_clast_eq): Update calls to type_for_clast_expr.
814 (type_for_clast_for): Same.
815 (build_iv_mapping): Same.
816 * graphite-ppl.h (value_min): New.
817
818 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
819
820 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
821 types whenever possible.
822
823 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
824
825 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
826 and ub fields.
827 (new_clast_name_index): Add lb and ub parameters.
828 (free_clast_name_index): New.
829 (clast_name_to_lb_ub): New.
830 (save_clast_name_index): Add lb and ub parameters.
831 (compute_bounds_for_param): New.
832 (type_for_level): Removed.
833 (type_for_clast_for): Removed level parameter. Do not call
834 type_for_level.
835 (graphite_create_new_loop): Store the lb and ub for the clast_name
836 of the iterator of the loop that has been generated.
837 (graphite_create_new_loop_guard): Remove parameter level.
838 (create_params_index): Store the lb and ub of each parameter.
839 (gloog): Use free_clast_name_index. Pass to create_params_index
840 the current scop.
841
842 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
843
844 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
845 (max_precision_type): Inline max_signed_precision_type.
846 (type_for_clast_red): Use max_precision_type.
847 (type_for_clast_bin): Same.
848 (type_for_clast_for): Same.
849
850 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
851
852 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
853 type_for_interval.
854 (gcc_type_for_value): Renamed type_for_value.
855 (gcc_type_for_clast_term): Renamed type_for_clast_term.
856 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
857 (gcc_type_for_clast_red): Renamed type_for_clast_red.
858 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
859 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
860 (graphite_translate_clast_equation): Update calls.
861 (compute_type_for_level): Renamed type_for_level.
862 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
863 (build_iv_mapping): Update calls.
864 (graphite_create_new_loop_guard): Same.
865
866 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
867
868 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
869 comment.
870
871 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
872
873 * graphite-clast-to-gimple.c (struct ivs_params): New.
874 (clast_name_to_gcc): Use ivs_params to pass around parameters.
875 (clast_to_gcc_expression): Same.
876 (clast_to_gcc_expression_red): Same.
877 (gcc_type_for_clast_term): Same.
878 (gcc_type_for_clast_expr): Same.
879 (gcc_type_for_clast_red): Same.
880 (gcc_type_for_clast_bin): Same.
881 (gcc_type_for_clast_eq): Same.
882 (graphite_translate_clast_equation): Same.
883 (graphite_create_guard_cond_expr): Same.
884 (graphite_create_new_guard): Same.
885 (graphite_create_new_loop): Same.
886 (build_iv_mapping): Same.
887 (translate_clast_user): Same.
888 (graphite_create_new_loop_guard): Same.
889 (translate_clast): Same.
890 (translate_clast_for_loop): Same.
891 (translate_clast_for): Same.
892 (translate_clast_guard): Same.
893 (initialize_cloog_names): Fix typo.
894 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
895
896 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
897
898 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
899 (new_clast_name_index): Add level parameter.
900 (clast_name_to_level): New.
901 (save_clast_name_index): Add level parameter.
902 (newivs_to_depth_to_newiv): Removed.
903 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
904 (graphite_create_new_loop): Add level parameter. Pass level to
905 save_clast_name_index.
906 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
907 (create_params_index): Pass level to save_clast_name_index.
908
909 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
910
911 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
912 recompute type, lb, and ub. Get them from...
913 (graphite_create_new_loop_guard): ...here. Pass in parameter
914 pointers to type, lb, and ub.
915 (translate_clast_for_loop): Update function calls.
916 (translate_clast_for): Same.
917
918 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
919
920 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
921 psct_dynamic_dim.
922 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
923 (gcc_type_for_iv_of_clast_loop): Update use of level.
924 (gloog): Start counting nesting level from 0.
925 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
926 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
927 psct_dynamic_dim on level.
928
929 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
930
931 * config/i386/i386.c (ix86_legitimize_address): Convert to
932 Pmode if needed.
933
934 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
935
936 * config/i386/i386.c (function_value_64): Always return pointers
937 in Pmode.
938 (ix86_promote_function_mode): New.
939 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
940
941 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
942
943 PR tree-optimization/49749
944 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
945 remove no-longer-used maxrank variable.
946
947 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
948
949 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
950
951 2011-07-21 Jason Merrill <jason@redhat.com>
952
953 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
954 * recog.h (struct insn_data_d): Check it instead of
955 HAVE_DESIGNATED_INITIALIZERS.
956 * genoutput.c (output_insn_data): Likewise.
957
958 2011-07-21 Richard Guenther <rguenther@suse.de>
959
960 PR tree-optimization/49770
961 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
962 valueized any operand. Renamed from ...
963 (valueize_refs): ... this. New wrapper around valueize_refs_1.
964 (valueize_shared_reference_ops_from_ref): Return whether we
965 valueized any operand.
966 (vn_reference_lookup): Only when we valueized any operand
967 use the valueized reference for alias analysis. Do not preserve
968 the original reference tree in this case.
969
970 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
971
972 * config/i386/i386.c (ix86_decompose_address): Reject all but
973 register operands and subregs of DImode hard registers in index.
974
975 2011-07-21 Kai Tietz <ktietz@redhat.com>
976
977 * fold-const.c (fold_unary_loc): Preserve indirect
978 comparison cast to none-boolean type.
979 * tree-ssa.c (useless_type_conversion_p): Preserve cast
980 from/to boolean-type.
981 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
982 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
983 * tree-cfg.c (verify_gimple_comparison): Check result
984 type of comparison expression.
985 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
986 of condition result and disallow type-cast sinking into comparison.
987
988 2011-07-21 Richard Guenther <rguenther@suse.de>
989
990 * tree-ssa-forwprop.c (combine_conversions): Return whether
991 we have to run cfg-cleanup. Properly remove dead stmts.
992 (ssa_forward_propagate_and_combine): Adjust.
993
994 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
995
996 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
997
998 2011-07-21 Kai Tietz <ktietz@redhat.com>
999
1000 * tree-ssa-propagate.c (substitute_and_fold): Use
1001 do_dce flag to deside, if BB's statements are scanned
1002 in last to first, or first to last order.
1003
1004 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
1005
1006 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1007
1008 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
1009 Uros Bizjak <ubizjak@gmail.com>
1010 Richard Henderson <rth@redhat.com>
1011
1012 * config/i386/constraints.md (w): New.
1013
1014 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1015 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1016
1017 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1018 instead of TARGET_64BIT.
1019
1020 * config/i386/i386.md (indirect_jump): Replace
1021 nonimmediate_operand with indirect_branch_operand.
1022 (*indirect_jump): Likewise. Replace constraint "m" with "w".
1023 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1024 Convert operand 0 to Pmode for x32 if not PIC.
1025 (*tablejump_1): Replace nonimmediate_operand with
1026 indirect_branch_operand. Replace constraint "m" with "w".
1027 (*call_vzeroupper): Replace constraint "m" with "w".
1028 (*call): Likewise.
1029 (*call_rex64_ms_sysv_vzeroupper): Likewise.
1030 (*call_rex64_ms_sysv): Likewise.
1031 (*call_value_vzeroupper): Likewise.
1032 (*call_value): Likewise.
1033 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1034 (*call_value_rex64_ms_sysv): Likewise.
1035 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
1036
1037 * config/i386/predicates.md (indirect_branch_operand): New.
1038 (call_insn_operand): Support x32.
1039
1040 2011-07-20 Michael Eager <eager@eagercon.com>
1041
1042 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1043
1044 2011-07-20 Richard Henderson <rth@redhat.com>
1045
1046 * cfg.c (dump_bb_info): Dump basic_block->flags.
1047 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1048
1049 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
1050
1051 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1052 of DImode hard registers in index.
1053 (ix86_legitimate_address_p): Allow subregs of base and index to span
1054 more than a word. Assert that subregs of base and index satisfy
1055 register_no_elim_operand predicates. Reject addresses where
1056 base and index have different modes.
1057
1058 2011-07-20 Robert Millan <rmh@gnu.org>
1059
1060 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1061
1062 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1063
1064 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1065 removing now-unnecessary assignment.
1066
1067 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1068
1069 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1070 memory address space to the type's address space.
1071
1072 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
1073
1074 PR target/36467
1075 PR target/49687
1076 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1077 and expand appropriately if there is a CONST_INT in operand2.
1078 (usmulqihi3): New insn.
1079 (*sumulqihi3): New insn.
1080 (*osmulqihi3): New insn.
1081 (*oumulqihi3): New insn.
1082 (*muluqihi3.uconst): New insn_and_split.
1083 (*muluqihi3.sconst): New insn_and_split.
1084 (*mulsqihi3.sconst): New insn_and_split.
1085 (*mulsqihi3.uconst): New insn_and_split.
1086 (*mulsqihi3.oconst): New insn_and_split.
1087 (*ashifthi3.signx.const): New insn_and_split.
1088 (*ashifthi3.signx.const7): New insn_and_split.
1089 (*ashifthi3.zerox.const): New insn_and_split.
1090 (mulsqihi3): New insn.
1091 (muluqihi3): New insn.
1092 (muloqihi3): New insn.
1093 * config/avr/predicates.md (const_2_to_7_operand): New.
1094 (const_2_to_6_operand): New.
1095 (u8_operand): New.
1096 (s8_operand): New.
1097 (o8_operand): New.
1098 (s9_operand): New.
1099 (register_or_s9_operand): New.
1100
1101 2011-07-20 Kai Tietz <ktietz@redhat.com>
1102
1103 * builtins.c (fold_builtin_expect): See through the cast
1104 from truthvalue_type_node to long.
1105
1106 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1107
1108 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1109 where we can use them from the standard and altivec instruction
1110 sets, instead of always using the 3 operand VSX forms that require
1111 the destination to overlap one of the inputs.
1112 (vsx_fms*): Ditto.
1113 (vsx_fnma*): Ditto.
1114 (vsx_fnms*): Ditto.
1115
1116 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1117 for DF types.
1118 (fmsdf4_fpr): Ditto.
1119 (nfmadf4_fpr): Ditto.
1120 (nfmsdf4_fpr): Ditto.
1121
1122 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
1123
1124 * genrecog.c (make_insn_sequence): Correct position numbering
1125 when filtering out match_scratch and match_dup.
1126
1127 2011-07-20 Richard Guenther <rguenther@suse.de>
1128
1129 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1130 against already removed statements.
1131 (forward_propagate_into_comparison): Remove dead defining stmts.
1132 (forward_propagate_into_gimple_cond): Likewise.
1133 (forward_propagate_into_cond): Simplify.
1134 (ssa_forward_propagate_and_combine): Handle changed cfg from
1135 forward_propagate_into_comparison.
1136 * tree-ssa-phiopt.c (conditional_replacement): Use proper
1137 locations for newly built statements.
1138
1139 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
1140
1141 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1142
1143 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1144
1145 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1146 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1147
1148 2011-07-20 Richard Guenther <rguenther@suse.de>
1149
1150 PR middle-end/18908
1151 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1152 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1153 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
1154
1155 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
1156
1157 * config/frv/frv.c (frv_register_move_cost): Define explicitly
1158 costs for subclasses of GR_REGS.
1159
1160 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
1161
1162 PR target/49780
1163 * config/i386/predicates.md (no_seg_addres_operand): No more special.
1164 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1165 of DImode hard registers in base.
1166 (ix86_legitimate_address_p): Allow SImode and DImode base and index
1167 registers.
1168
1169 2011-07-20 Richard Guenther <rguenther@suse.de>
1170
1171 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
1172 (unify_nodes): Deal with that.
1173 (solve_graph): Likewise.
1174
1175 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
1176
1177 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1178 canonicalize left operand from ZERO_EXTEND to AND.
1179
1180 2011-07-20 Anatoly Sokolov <aesok@post.ru>
1181
1182 * target.def (class_max_nregs): New hook.
1183 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1184 * doc/tm.texi: Regenerate.
1185 * targhooks.c (default_class_max_nregs): New function.
1186 * targhooks.h (default_class_max_nregs): Declare.
1187 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1188 x_ira_reg_class_min_nregs arrays to unsigned char.
1189 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1190 hook instead of CLASS_MAX_NREGS macro.
1191 * reginfo.c (restore_register_info): Ditto.
1192 * ira-conflicts.c (process_regs_for_copy): Use
1193 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1194 Change type rclass and aclass vars to reg_class_t.
1195 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1196 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1197 reg_class_t.
1198 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1199 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1200
1201 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1202 * config/i386/i386.c (ix86_class_max_nregs): New function.
1203 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1204 instead of CLASS_MAX_NREGS macro.
1205 (TARGET_CLASS_MAX_NREGS): Define.
1206 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1207 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1208 * config/avr/avr.c (class_max_nregs): Remove function.
1209 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1210 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1211 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1212 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1213 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1214 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1215 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1216 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1217 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1218 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1219 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1220 * config/score/score.h (CLASS_MAX_NREGS): Remove.
1221 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1222 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1223 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1224
1225 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
1226
1227 * cif-code.def (OVERWRITABLE): Fix typo and move around.
1228 (TARGET_OPTIMIZATION_MISMATCH): Delete.
1229 (EH_PERSONALITY): Fix typo.
1230 (NON_CALL_EXCEPTIONS): Fix message.
1231 (OPTIMIZATION_MISMATCH): Adjust message.
1232 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1233
1234 2011-07-19 Ian Lance Taylor <iant@google.com>
1235
1236 * doc/install.texi (Configuration): Document
1237 --enable-build-poststage1-with-cxx.
1238
1239 2011-07-19 Robert Millan <rmh@gnu.org>
1240
1241 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
1242 (GLIBC_DYNAMIC_LINKER): Remove.
1243
1244 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
1245 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1246 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1247 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1248 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1249 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1250
1251 * config/mips/linux.h: Remove everything except for ...
1252 (GLIBC_DYNAMIC_LINKER): ... this macro.
1253
1254 * config/mips/linux64.h: Remove everything except for ...
1255 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1256 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1257 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1258 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1259 (GNU_USER_LINK_EMULATIONN32): New macros.
1260
1261 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1262 Use the new headers.
1263
1264 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1265
1266 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1267 Add offset_known_p and size_known_p fields.
1268 (MEM_OFFSET_KNOWN_P): Update accordingly.
1269 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1270 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1271 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1272 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1273 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1274 (init_emit_regs): Likewise.
1275
1276 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1277
1278 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1279 (MEM_OFFSET): Change from returning an rtx to returning a
1280 HOST_WIDE_INT.
1281 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1282 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1283 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1284 (clear_mem_offset): Declare.
1285 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1286 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1287 MEM_OFFSET to get a HOST_WIDE_INT offset.
1288 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
1289 (adjust_offset_for_component_ref): Take a bool "known_p"
1290 parameter and a HOST_WIDE_INT "offset" parameter.
1291 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1292 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1293 than an rtx. Use clear_mem_offset to clear the offset.
1294 * cfgcleanup.c (merge_memattrs): Likewise.
1295 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1296 * function.c (assign_parm_find_stack_rtl): Likewise.
1297 (assign_parm_setup_stack): Likewise.
1298 * print-rtl.c (print_rtx): Likewise.
1299 * reload.c (find_reloads_subreg_address): Likewise.
1300 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1301 * var-tracking.c (INT_MEM_OFFSET): Likewise.
1302 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1303 (get_mem_align_offset): Likewise.
1304 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1305 (clear_mem_offset): New function.
1306 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1307 offset rather than an rtx. Assume both the expressio and offset
1308 are available.
1309 (r10k_needs_protection_p_1): Update accordingly, checking the
1310 expression and offset availability here instead.
1311
1312 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1313
1314 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1315 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1316 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1317 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1318 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1319 (clear_mem_size): Declare.
1320 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1321 (clear_mem_size): New function.
1322 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1323 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1324 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
1325 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
1326 to clear the size.
1327 (nonoverlapping_memrefs_p): Likewise.
1328 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1329 (expand_builtin_init_trampoline): Likewise.
1330 * calls.c (compute_argument_addresses): Likewise.
1331 * cfgcleanup.c (merge_memattrs): Likewise.
1332 * dce.c (find_call_stack_args): Likewise.
1333 * dse.c (record_store, scan_insn): Likewise.
1334 * dwarf2out.c (dw_sra_loc_expr): Likewise.
1335 * expr.c (emit_block_move_hints): Likewise.
1336 * function.c (assign_parm_find_stack_rtl): Likewise.
1337 * print-rtl.c (print_rtx): Likewise.
1338 * reload.c (find_reloads_subreg_address): Likewise.
1339 * rtlanal.c (may_trap_p_1): Likewise.
1340 * var-tracking.c (track_expr_p): Likewise.
1341 * varasm.c (assemble_trampoline_template): Likewise.
1342 * config/arm/arm.c (arm_print_operand): Likewise.
1343 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1344 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1345 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1346 (expand_constant_setmem_prologue): Likewise.
1347 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1348 * config/rs6000/rs6000.c (expand_block_move): Likewise.
1349 (adjacent_mem_locations): Likewise.
1350 * config/s390/s390.c (s390_expand_setmem): Likewise.
1351 (s390_expand_insv): Likewise.
1352 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1353 (*extendqi<mode>2_short_displ): Likewise.
1354 * config/sh/sh.c (expand_block_move): Likewise.
1355 * config/sh/sh.md (extv, extzv): Likewise.
1356
1357 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1358
1359 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1360 (mem_attrs_htab_eq): ...here.
1361 (find_mem_attrs): Replace with...
1362 (set_mem_attrs): ...this function. Take a mem_attrs structure
1363 rather than individual fields.
1364 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1365 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1366 (set_mem_size, change_address, adjust_address_1, offset_address)
1367 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1368 Update accordingly.
1369
1370 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1371
1372 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
1373 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
1374 Provide a dummy definition of MEM_ADDR_SPACE for generators.
1375 (target_rtl): Add x_mode_mem_attrs.
1376 (mode_mem_attrs): New macro.
1377 (get_mem_attrs): New function.
1378 * emit-rtl.c (get_mem_attrs): Rename to...
1379 (find_mem_attrs): ...this.
1380 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1381 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1382 (set_mem_size, change_address, adjust_address_1, offset_address)
1383 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1384 Update accordingly.
1385 (init_emit_regs): Initialize mode_mem_attrs.
1386
1387 2011-07-19 Richard Guenther <rguenther@suse.de>
1388
1389 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
1390 TRUTH_*_EXPR handling.
1391 * tree-ssa-operands.c (get_expr_operands): Likewise.
1392 * tree-ssa-pre.c (fully_constant_expression): Likewise.
1393 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
1394 Likewise.
1395 (is_and_or_or): Likewise.
1396 (is_norm_cond_subset_of): Likewise.
1397
1398 2011-07-19 Richard Guenther <rguenther@suse.de>
1399
1400 * tree.h (fold_build_pointer_plus_loc): New helper function.
1401 (fold_build_pointer_plus_hwi_loc): Likewise.
1402 (fold_build_pointer_plus): Define.
1403 (fold_build_pointer_plus_hwi): Likewise.
1404 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
1405 (fold_builtin_memory_op): Likewise.
1406 (fold_builtin_stpcpy): Likewise.
1407 (fold_builtin_memchr): Likewise.
1408 (fold_builtin_strstr): Likewise.
1409 (fold_builtin_strchr): Likewise.
1410 (fold_builtin_strrchr): Likewise.
1411 (fold_builtin_strpbrk): Likewise.
1412 (fold_builtin_strcat): Likewise.
1413 (expand_builtin_memory_chk): Likewise.
1414 (fold_builtin_memory_chk): Likewise.
1415 * c-typeck.c (build_unary_op): Likewise.
1416 * cgraphunit.c (thunk_adjust): Likewise.
1417 * fold-const.c (build_range_check): Likewise.
1418 (fold_binary_loc): Likewise.
1419 * omp-low.c (extract_omp_for_data): Likewise.
1420 (expand_omp_for_generic): Likewise.
1421 (expand_omp_for_static_nochunk): Likewise.
1422 (expand_omp_for_static_chunk): Likewise.
1423 * tree-affine.c (add_elt_to_tree): Likewise.
1424 * tree-data-ref.c (split_constant_offset_1): Likewise.
1425 * tree-loop-distribution.c (generate_memset_zero): Likewise.
1426 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1427 * tree-predcom.c (ref_at_iteration): Likewise.
1428 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1429 (add_to_parts): Likewise.
1430 (create_mem_ref): Likewise.
1431 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1432 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1433 (number_of_iterations_le): Likewise.
1434 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1435 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1436 (vect_create_addr_base_for_vector_ref): Likewise.
1437 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1438 (vect_create_cond_for_alias_checks): Likewise.
1439 * tree-vrp.c (extract_range_from_assert): Likewise.
1440 * config/alpha/alpha.c (alpha_va_start): Likewise.
1441 (alpha_gimplify_va_arg_1): Likewise.
1442 * config/i386/i386.c (ix86_va_start): Likewise.
1443 (ix86_gimplify_va_arg): Likewise.
1444 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1445 * config/mep/mep.c (mep_expand_va_start): Likewise.
1446 (mep_gimplify_va_arg_expr): Likewise.
1447 * config/mips/mips.c (mips_va_start): Likewise.
1448 (mips_gimplify_va_arg_expr): Likewise.
1449 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1450 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1451 (rs6000_gimplify_va_arg): Likewise.
1452 * config/s390/s390.c (s390_va_start): Likewise.
1453 (s390_gimplify_va_arg): Likewise.
1454 * config/sh/sh.c (sh_va_start): Likewise.
1455 (sh_gimplify_va_arg_expr): Likewise.
1456 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1457 * config/spu/spu.c (spu_va_start): Likewise.
1458 (spu_gimplify_va_arg_expr): Likewise.
1459 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1460 Likewise.
1461 (xstormy16_gimplify_va_arg_expr): Likewise.
1462 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1463 (xtensa_gimplify_va_arg_expr): Likewise.
1464
1465 2011-07-19 Richard Guenther <rguenther@suse.de>
1466
1467 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1468 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1469 handling.
1470
1471 PR middle-end/18908
1472 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1473 result of BIT_*_EXPR to bitfield precision.
1474
1475 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
1476
1477 PR tree-optimization/49742
1478 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1479 as a potential write.
1480
1481 2011-07-19 Richard Guenther <rguenther@suse.de>
1482
1483 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1484 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1485 (forward_propagate_comparison): Simplify, remove obsolete code.
1486
1487 2011-07-19 Richard Guenther <rguenther@suse.de>
1488
1489 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1490 BIT_XOR_EXPR, same as the RTL expander does.
1491 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1492 (verify_gimple_assign_unary): Likewise.
1493 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1494 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1495 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1496
1497 2011-07-19 Jakub Jelinek <jakub@redhat.com>
1498
1499 PR tree-optimization/49768
1500 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1501 if offset is smaller than bitoffset, but offset+size is bigger
1502 than bitoffset.
1503
1504 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
1505
1506 PR tree-optimization/49771
1507 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1508 zero step, set segment length to the size of the data-ref's type.
1509
1510 2011-07-18 Martin Jambor <mjambor@suse.cz>
1511
1512 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1513 comments.
1514 (ipcp_values_pool): Declare.
1515 (ipcp_sources_pool): Likewise.
1516 (ipcp_lattice): Changed to forward declaration.
1517 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1518 cannot_devirtualize.
1519 (ipa_node_params): New fields descriptors, lattices, known_vals,
1520 clone_for_all_contexts and node dead, removed fields params and
1521 count_scale.
1522 (ipa_set_param_count): Removed.
1523 (ipa_get_param_count): Made to work with descriptors vector.
1524 (ipa_get_param): Updated.
1525 (ipa_param_cannot_devirtualize_p): Removed.
1526 (ipa_param_types_vec_empty): Likewise.
1527 (ipa_set_param_used): New function.
1528 (ipa_get_param_used): Updated to use descriptors vector.
1529 (ipa_func_list): Removed.
1530 (ipa_init_func_list): Removed declaration.
1531 (ipa_push_func_to_list_1): Likewise.
1532 (ipa_pop_func_from_list): Likewise.
1533 (ipa_push_func_to_list): Removed.
1534 (ipa_lattice_from_jfunc): Remove declaration.
1535 (ipa_get_jf_pass_through_result): Declare.
1536 (ipa_get_jf_ancestor_result): Likewise.
1537 (ipa_value_from_jfunc): Likewise.
1538 (ipa_get_lattice): Update.
1539 (ipa_lat_is_single_const): New function.
1540 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1541 (ipa_init_func_list): Likewise.
1542 (ipa_pop_func_from_list): Likewise.
1543 (ipa_get_param_decl_index): Fix coding style.
1544 (count_formal_params): Removed.
1545 (count_formal_params_1): Renamed to count_formal_params.
1546 (ipa_populate_param_decls): Update to use descriptors vector.
1547 (ipa_initialize_node_params): Likewise.
1548 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1549 (ipa_analyze_params_uses): Likewise.
1550 (ipa_free_node_params_substructures): Likewise and free also lattices
1551 and known values.
1552 (duplicate_array): Removed.
1553 (ipa_edge_duplication_hook): Add the new edge to the list of edge
1554 clones.
1555 (ipa_node_duplication_hook): Update to use new lattices.
1556 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1557 (ipa_free_all_structures_after_iinln): Likewise.
1558 (ipa_write_node_info): Update to use new lattices.
1559 (ipa_read_node_info): Likewise.
1560 (ipa_get_jf_pass_through_result): New function.
1561 (ipa_get_jf_ancestor_result): Likewise.
1562 (ipa_value_from_jfunc): Likewise.
1563 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1564 * ipa-cp.c: Reimplemented.
1565 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1566 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1567 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1568 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1569 * doc/invoke.texi (devirt-type-list-size): Removed description.
1570 (ipa-cp-value-list-size): Added description.
1571
1572 2011-07-18 Richard Henderson <rth@redhat.com>
1573
1574 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1575 before calling create_basic_block.
1576
1577 2011-07-18 Jakub Jelinek <jakub@redhat.com>
1578
1579 PR middle-end/49675
1580 * tree.c (build_common_builtin_nodes): Register
1581 __builtin_return_address, __cyg_profile_func_enter
1582 and __cyg_profile_func_exit.
1583
1584 2011-07-18 Richard Henderson <rth@redhat.com>
1585
1586 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1587 (add_labels_and_missing_jumps): ... here.
1588 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1589
1590 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
1591
1592 PR target/47744
1593 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1594 of DImode hard registers in PLUS address chains.
1595
1596 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1597
1598 PR bootstrap/49769
1599 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1600 (alpha*-*-freebsd*): Likewise.
1601 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1602 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1603 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1604 crtprec80.o, crtfastmath.o to extra_parts for all targets.
1605 (ia64*-*-elf*): Remove extra_parts.
1606 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1607 (sparc64-*-linux*): Likewise.
1608 (sparc64-*-freebsd*): Likewise.
1609
1610 Revert:
1611 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1612 (ia64*-*-linux*): Likewise.
1613 (mips64*-*-linux*): Likewise.
1614 (mips*-*-linux*): Likewise.
1615
1616 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
1617
1618 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1619
1620 2011-07-18 Richard Guenther <rguenther@suse.de>
1621
1622 * gimplify.c (gimplify_expr): Use input_location, not saved_location
1623 when building new trees.
1624
1625 2011-07-18 Richard Guenther <rguenther@suse.de>
1626
1627 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1628 expansion result to bitfield precision if required.
1629
1630 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1631
1632 * config.gcc (i[3456x]86-*-netware*): Remove.
1633
1634 * gthr-nks.h: Remove.
1635 * configure.ac (enable_threads): Remove nks.
1636 * configure: Regenerate.
1637
1638 * config/i386/i386.c (ix86_encode_section_info): Remove netware
1639 reference.
1640 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1641 <netware.h> reference.
1642
1643 * config/i386/netware-libgcc.c,
1644 gcc/config/i386/netware-libgcc.def,
1645 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1646 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1647 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1648 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1649
1650 * doc/extend.texi (Function Attributes,
1651 callee_pop_aggregate_return): Remove i?86-netware reference.
1652 * doc/install.texi (Configuration, --enable-threads): Remove nks.
1653
1654 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1655
1656 PR target/49746
1657 Revert:
1658 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1659
1660 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1661 patterns.
1662
1663 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
1664
1665 PR middle-end/49732
1666 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1667
1668 2011-07-16 Matthias Klose <doko@ubuntu.com>
1669
1670 * doc/install.texi: Document --enable-static-libjava.
1671
1672 2011-07-15 Richard Henderson <rth@redhat.com>
1673
1674 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1675 Replace all three arguments by returning a VEC of edges.
1676 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
1677 pointers and counts.
1678 (fix_edges_for_rarely_executed_code): Merge ...
1679 (rest_of_handle_partition_blocks): ... into...
1680 (partition_hot_cold_basic_blocks): ... here. Return todo items if
1681 any work was performed.
1682 (pass_partition_blocks): Clear todo_flags_finish.
1683
1684 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
1685 Jakub Jelinek <jakub@redhat.com>
1686 Jonathan Wakely <jwakely.gcc@gmail.com>
1687
1688 PR libstdc++/49745
1689 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
1690 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
1691
1692 2011-07-15 Jason Merrill <jason@redhat.com>
1693
1694 PR testsuite/49741
1695 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
1696 rather than --tool_opts.
1697
1698 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
1699
1700 * doc/plugins.texi (Building GCC plugins): gengtype needs its
1701 corresponding gtype.state.
1702
1703 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1704
1705 PR target/49723
1706 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
1707
1708 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
1709
1710 PR target/48220
1711 * doc/md.texi (Standard Names): Document window_save.
1712 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
1713 expand_debug_expr and expand_debug_source_expr. If the target has
1714 a window_save instruction, adjust the ENTRY_VALUE_EXP.
1715 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
1716 SSA_NAME_VAR is a parameter.
1717 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
1718 * var-tracking.c (parm_reg_t): New type and associated vector type.
1719 (windowed_parm_regs): New variable.
1720 (adjust_insn): If the target has a window_save instruction and this
1721 is the instruction, make its effect on parameter registers explicit.
1722 (next_non_note_insn_var_location): New function.
1723 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
1724 (vt_add_function_parameter): If the target has a window_save insn,
1725 adjust the incoming RTL and record that in windowed_parm_regs.
1726 (vt_finalize): Free windowed_parm_regs.
1727
1728 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
1729
1730 * doc/invoke.texi (C6X Options): New section.
1731 * doc/md.texi (TI C6X family): New section.
1732 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
1733 tic6x-*-uclinux.
1734 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
1735 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
1736 Provide C6X definitions.
1737 * config/c6x/c6x.md: New file.
1738 * config/c6x/constraints.md: New file.
1739 * config/c6x/predicates.md: New file.
1740 * config/c6x/c6x-sched.md.in: New file.
1741 * config/c6x/c6x-sched.md: New file.
1742 * config/c6x/gensched.sh: New file.
1743 * config/c6x/c6x-mult.md.in: New file.
1744 * config/c6x/genmult.sh: New file.
1745 * config/c6x/c6x-mult.md: New file.
1746 * config/c6x/sync.md: New file.
1747 * config/c6x/c6x-protos.h: New file.
1748 * config/c6x/sfp-machine.h: New file.
1749 * config/c6x/c6x.c: New file.
1750 * config/c6x/c6x.h: New file.
1751 * config/c6x/crti.s: New file.
1752 * config/c6x/crtn.s: New file.
1753 * config/c6x/lib1funcs.asm: New file.
1754 * config/c6x/c6x-modes.def: New file.
1755 * config/c6x/genopt.sh: New file.
1756 * config/c6x/c6x.opt: New file.
1757 * config/c6x/c6x-tables.opt: New file.
1758 * config/c6x/c6x-opts.h: New file.
1759 * config/c6x/c6x-isas.def: New file.
1760 * config/c6x/elf.h: New file.
1761 * config/c6x/elf-common.h: New file.
1762 * config/c6x/uclinux-elf.h: New file.
1763 * config/c6x/t-c6x: New file.
1764 * config/c6x/t-c6x-elf: New file.
1765 * config/c6x/t-c6x-uclinux: New file.
1766 * config/c6x/t-c6x-softfp: New file.
1767 * config/c6x/gtd.c: New file.
1768 * config/c6x/gtf.c: New file.
1769 * config/c6x/ltd.c: New file.
1770 * config/c6x/ltf.c: New file.
1771 * config/c6x/ged.c: New file.
1772 * config/c6x/gef.c: New file.
1773 * config/c6x/led.c: New file.
1774 * config/c6x/lef.c: New file.
1775 * config/c6x/eqd.c: New file.
1776 * config/c6x/eqf.c: New file.
1777 * config/c6x/libgcc-c6xeabi.ver: New file.
1778
1779 Revert
1780 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1781 PR rtl-optimization/11320
1782 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
1783 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
1784 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
1785 current_sched_info->compute_jump_reg_dependencies. Record which
1786 registers are used and which registers are set by the jump.
1787 Clear deps->reg_conditional_sets after a barrier.
1788 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
1789 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
1790 (init_deps): Initialize reg_conditional_sets.
1791 (free_deps): Clear reg_conditional_sets.
1792 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
1793 Mark registers live on entry of the fallthrough block and conditionally
1794 set as set by the jump. Mark registers live on entry of non-fallthrough
1795 blocks as used by the jump.
1796 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
1797 Mark new parameters as unused.
1798
1799 2011-07-14 Andrew Pinski <pinskia@gmail.com>
1800
1801 PR tree-opt/49309
1802 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
1803 Use fold_build2_loc instead of build2.
1804 Use the correct type for the new tree.
1805
1806 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1807
1808 PR rtl-optimization/11320
1809 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
1810 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
1811
1812 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
1813
1814 PR target/49487
1815 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
1816 of REG.
1817 (*rotw<mode>): Use const_int_operand for operand2.
1818 Use match_scatch for operand3.
1819 (*rotb<mode>): Ditto
1820 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
1821
1822 2011-07-14 Richard Guenther <rguenther@suse.de>
1823
1824 PR tree-optimization/49651
1825 * tree-ssa-structalias.c (get_constraint_for_1): Properly
1826 handle dereferences with subvariables.
1827
1828 2011-07-14 Richard Guenther <rguenther@suse.de>
1829
1830 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
1831 (fold_stmt_1): Do it here directly on gimple and as a first thing.
1832
1833 2011-07-14 Richard Guenther <rguenther@suse.de>
1834
1835 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
1836 not bool_var when folding bool_var != 1 or bool_var == 0.
1837
1838 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1839
1840 * haifa-sched.c (schedule_insns): Remove outdated comment.
1841 (schedule_block): When computing a known value for TODO_SPEC,
1842 just set it rather than using logical operations.
1843 (try_ready): Likewise. Use a local variable rather than a
1844 pointer to TODO_SPEC. Reorder an if statement to move the
1845 easy case to the then block.
1846 * sched-deps.c (dep_spec_p): New static function.
1847 (update_dep): Use it to decide whether to call
1848 change_spec_dep_to_hard.
1849 (get_back_and_forw_lists): Use it.
1850 (sd_resolve_dep): Likewise.
1851 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
1852 (haifa_note_mem_dep): Likewise.
1853 (check_dep): Likewise.
1854 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
1855 (sched_free_deps): Free in two passes.
1856
1857 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
1858
1859 PR middle-end/49736
1860 * expr.c (all_zeros_p): Undo bogus part of last change.
1861
1862 2011-07-14 Matthias Klose <doko@ubuntu.com>
1863
1864 * doc/extend.texi (optimize attribute): Fix typo.
1865
1866 2011-07-14 Richard Guenther <rguenther@suse.de>
1867
1868 * gimplify.c (gimplify_expr): Only do required conversions.
1869
1870 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
1871
1872 PR target/43746
1873 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
1874 i.e. use default_elf_select_section.
1875 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
1876 (READONLY_DATA_SECTION_ASM_OP): Remove.
1877 (TARGET_ASM_NAMED_SECTION): Move from here...
1878 * config/avr/avr.c: ...to here.
1879 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
1880 (avr_asm_named_section): Make static.
1881
1882 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1883
1884 PR bootstrap/49739
1885 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
1886 and crtfastmath.o for Linux/x86.
1887
1888 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1889
1890 * haifa-sched.c: Include "hashtab.h"
1891 (sched_no_dce): New global variable.
1892 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
1893 SHADOW_P): New macros.
1894 (last_clock_var, cycle_issued_insns): Move declarations.
1895 (must_backtrack): New static variable.
1896 (struct delay_pair): New structure.
1897 (delay_htab, delay_htab_i2): New static variables.
1898 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
1899 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
1900 functions.
1901 (dep_cost_1): If delay pairs exist, try to look up the insns and
1902 use the correct pair delay if we find them.
1903 (rank-for_schedule): Tweak priority for insns that must be scheduled
1904 soon to avoid backtracking.
1905 (queue_insn): Detect conditions which force backtracking.
1906 (ready_add): Likewise.
1907 (struct sched_block_state): Add member shadows_only_p.
1908 (struct haifa_save_data): New structure.
1909 (backtrack_queue): New static variable.
1910 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
1911 unschedule_insns_until, restore_last_backtrack_point,
1912 free_topmost_backtrack_point, free_backtrack_queue,
1913 estimate_insn_tick, estimate_shadow_tick): New functions.
1914 (prune_ready_list): New arg shadows_only_p. All callers changed.
1915 If true, remove everything that isn't SHADOW_P. Look up delay
1916 pairs and estimate ticks to avoid scheduling the first insn too early.
1917 (verify_shadows): New function.
1918 (schedule_block): Add machinery to enable backtracking.
1919 (sched_init): Take sched_no_dce into account when setting
1920 DF_LR_RUN_DCE.
1921 (free_delay_pairs): New function.
1922 (init_h_i_d): Initialize INSN_EXACT_TICK.
1923 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
1924 * sched-deps.c (sd_unresolve_dep): New function.
1925 * sched-int. (struct haifa_sched_info): New fields save_state
1926 and restore_state.
1927 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
1928 feeds_backtrack_insn and shadow_p.
1929 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
1930 (sched_no_dce): Declare variable.
1931 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
1932 sd_unresolve_dep): Declare functions.
1933 * modulo-sched.c (sms_sched_info): Clear the two new fields.
1934 * sched-rgn.c (rgn_const_sched_info): Likewise.
1935 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1936 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
1937 (ebb_sched_info): Add them for the two new fields.
1938 (add_deps_for_risky_insns): Call add_delay_dependencies.
1939
1940 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1941
1942 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
1943 Rename -mr11.
1944 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
1945 (rs6000_call_indirect_aix): Ditto.
1946 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
1947 (call_indirect_aix<ptrsize>_internal): Ditto.
1948 (call_indirect_aix<ptrsize>_nor11): Ditto.
1949 (call_indirect_aix<ptrsize>_internal2): Ditto.
1950 (call_value_indirect_aix<ptrsize>): Ditto.
1951 (call_value_indirect_aix<ptrsize>_internal): Ditto.
1952 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1953 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1954 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
1955
1956 2011-07-13 Jason Merrill <jason@redhat.com>
1957
1958 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
1959
1960 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1961
1962 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
1963 * config/spu/spu.md ("clrsb<mode>2"): New expander.
1964
1965 2011-07-13 Thomas Schwinge <thomas@schwinge.name>
1966
1967 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
1968 * configure: Regenerate.
1969
1970 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1971
1972 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
1973 (asm_file_start): Remove.
1974 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
1975 free_bb_for_insn around code that modifies insns before
1976 restarting df analysis.
1977
1978 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1979
1980 PR target/49541
1981 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
1982 (LINK_SPEC): ... here.
1983
1984 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
1985
1986 * haifa-sched.c (struct sched_block_state): New.
1987 (schedule_block): Move some local variables into such a structure.
1988
1989 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1990
1991 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
1992 * config/i386/t-crtpc: Remove.
1993 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1994 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
1995 tmake_file.
1996 (x86_64-*-darwin*): Likewise.
1997 (i[34567]86-*-linux*): Likewise.
1998 (x86_64-*-linux*): Likewise.
1999
2000 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2001 Handle -mpc32, -mpc64, -mpc80.
2002
2003 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2004
2005 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2006 * config/alpha/t-crtfm: Remove.
2007 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2008 * config/i386/t-crtfm: Remove.
2009 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2010 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2011 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2012 * config/sparc/t-crtfm: Remove.
2013
2014 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2015 (alpha*-*-freebsd*): Likewise.
2016 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2017 (x86_64-*-darwin*): Likewise.
2018 (i[34567]86-*-linux*): Likewise.
2019 (x86_64-*-linux*): Likewise.
2020 (x86_64-*-mingw*): Likewise.
2021 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2022 (ia64*-*-freebsd*): Likewise.
2023 (ia64*-*-linux*): Likewise.
2024 (mips64*-*-linux*): Likewise.
2025 (mips*-*-linux*): Likewise.
2026 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2027 (sparc64-*-linux*): Likewise.
2028 (sparc64-*-freebsd*): Likewise.
2029
2030 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2031
2032 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2033 * config/darwin-crt3.c: Move to ../libgcc/config.
2034 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2035 ($(T)crt3$(objext)): Remove.
2036 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2037 ($(T)crt2$(objext)): Remove.
2038 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2039 (powerpc64-*-darwin*): Likewise.
2040
2041 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2042
2043 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
2044
2045 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2046 (addsi_1_zext): This.
2047
2048 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2049
2050 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2051 * doc/tm.texi: Regenerate.
2052 * target.def (mergeable_rodata_prefix): New defhookpod.
2053 * varasm.c (mergeable_string_section, mergeable_constant_section):
2054 Use it. Allocate name with alloca.
2055
2056 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2057
2058 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2059
2060 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2061
2062 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2063 overlap check.
2064
2065 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2066
2067 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
2068 (count_type_elements): Delete.
2069 (complete_ctor_at_level_p): Declare.
2070 * expr.c (flexible_array_member_p): New function, split out from...
2071 (count_type_elements): ...here. Make static. Replace allow_flexarr
2072 parameter with for_ctor_p. When for_ctor_p is true, return the
2073 number of elements that should appear in the top-level constructor,
2074 otherwise return an estimate of the number of scalars.
2075 (categorize_ctor_elements): Replace p_must_clear with p_complete.
2076 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
2077 (complete_ctor_at_level_p): New function, borrowing union logic
2078 from old categorize_ctor_elements_1.
2079 (mostly_zeros_p): Return true if the constructor is not complete.
2080 (all_zeros_p): Update call to categorize_ctor_elements.
2081 * gimplify.c (gimplify_init_constructor): Update call to
2082 categorize_ctor_elements. Don't call count_type_elements.
2083 Unconditionally prevent clearing for variable-sized types,
2084 otherwise rely on categorize_ctor_elements to detect
2085 incomplete initializers.
2086
2087 2011-07-13 Richard Guenther <rguenther@suse.de>
2088
2089 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2090 the final type is integral.
2091
2092 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2093
2094 * sched-int.h (struct _dep): Add member cost.
2095 (DEP_COST, UNKNOWN_DEP_COST): New macros.
2096 * sched-deps.c (init_dep_1): Initialize DEP_COST.
2097 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2098 (sched_change_pattern): Reset it for dependent insns.
2099
2100 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2101
2102 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2103 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2104 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2105 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2106 (CRT0_S, MCRT0_S): Remove.
2107 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2108 Remove.
2109 (s-crt0): Remove.
2110 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2111
2112 2011-07-12 Eric Botcazou <ebotcazou@adacore.com>
2113
2114 * cse.c (insert_with_costs): Put semi-colon after empty loop body
2115 on the next line.
2116 * emit-rtl.c (push_to_sequence): Likewise.
2117 * haifa-sched.c (max_issue): Likewise.
2118 * matrix-reorg.c (add_allocation_site): Likewise.
2119 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2120 * reload.c (alternative_allows_const_pool_ref): Likewise.
2121 * sched-rgn.c (rgn_add_block): Likewise.
2122 (rgn_fix_recovery_cfg): Likewise.
2123 * tree.c (attribute_list_contained): Likewise.
2124
2125 2011-07-12 Uros Bizjak <ubizjak@gmail.com>
2126
2127 * config/i386/i386.c: Tidy processor feature bitmasks.
2128 (m_P4_NOCONA): New.
2129
2130 2011-07-12 Andrew Pinski <pinskia@gmail.com>
2131
2132 PR rtl-opt/49474
2133 * cprop.c (find_implicit_sets): Correct the condition.
2134
2135 2011-07-12 Richard Henderson <rth@redhat.com>
2136
2137 PR target/49713
2138 * dwarf2out.h (dwarf_frame_regnum): Remove.
2139 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
2140 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
2141 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2142 (execute_dwarf2_frame): Initialize them.
2143 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2144 users of the macros with the variables.
2145 (expand_builtin_dwarf_sp_column): Revert last change.
2146 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
2147 result of DWARF_FRAME_REGNUM into a local variable.
2148
2149 2011-07-12 Richard Henderson <rth@redhat.com>
2150
2151 PR target/49714
2152 * config/i386/i386.c (x86_output_mi_thunk): Use
2153 machopic_indirect_call_target instead of machopic_indirection_name
2154 directly.
2155
2156 2011-07-12 Laurent GUERBY <laurent@guerby.net>
2157 Eric Botcazou <ebotcazou@adacore.com>
2158
2159 * prefix.h: Wrap up in extern "C" block.
2160
2161 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
2162
2163 AMD bdver2 Enablement
2164 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2165 (case ${target}): Add bdver2.
2166 * config/i386/driver-i386.c (host_detect_local_cpu): Let
2167 -march=native recognize bdver2 processors.
2168 * config/i386/i386-c.c (ix86_target_macros_internal): Add
2169 bdver2 def_and_undef
2170 * config/i386/i386.c (struct processor_costs bdver2_cost): New
2171 bdver2 cost table.
2172 (m_BDVER2): New definition.
2173 (m_AMD_MULTIPLE): Includes m_BDVER2.
2174 (initial_ix86_tune_features): Add bdver2 tuning.
2175 (processor_target_table): Add bdver2 entry.
2176 (static const char *const cpu_names): Add bdver2 entry.
2177 (ix86_option_override_internal): Add bdver2 instruction sets.
2178 (ix86_issue_rate): Add bdver2.
2179 (ix86_adjust_cost): Add bdver2.
2180 (has_dispatch): Add bdver2.
2181 * config/i386/i386.h (TARGET_BDVER2): New definition.
2182 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2183 (enum processor_type): Add PROCESSOR_BDVER2.
2184 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2185 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2186 description.
2187
2188 2011-07-12 Richard Henderson <rth@redhat.com>
2189
2190 PR target/49714
2191 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2192 destination address in memory on some paths.
2193
2194 2011-07-12 Bernd Schmidt <bernds@codesourcery.com>
2195
2196 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2197 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2198 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2199 * function.c (locate_and_pad_parm): Take it into account.
2200 * target.def (function_arg_round_boundary): New hook.
2201 * targhooks.c (default_function_arg_round_boundary): New function.
2202 * targhooks.h (default_function_arg_round_boundary): Declare.
2203 * doc/tm.texi: Regenerate.
2204
2205 2011-07-12 Richard Guenther <rguenther@suse.de>
2206
2207 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2208 Do not perform no-op changes.
2209
2210 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
2211
2212 * config/arm/predicates.md (neon_struct_operand): Make a normal
2213 predicate.
2214 (neon_struct_or_register_operand): New predicate.
2215 * config/arm/neon.md (movmisalign<mode>): Replace predicates
2216 with neon_struct_or_register_operand.
2217 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2218 neon_struct_operand instead of memory_operand.
2219
2220 2011-07-12 Martin Jambor <mjambor@suse.cz>
2221
2222 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2223 * cgraph.c (cgraph_get_node_or_alias): Removed.
2224 (change_decl_assembler_name): Changed all calls to
2225 cgraph_get_node_or_alias to a call to cgraph_get_node.
2226 (cgraph_make_decl_local): Likewise.
2227 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2228 * varasm.c (default_binds_local_p_1): Likewise.
2229 (decl_binds_to_current_def_p): Likewise.
2230
2231 2011-07-12 Jakub Jelinek <jakub@redhat.com>
2232
2233 PR tree-optimization/49712
2234 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2235
2236 2011-07-11 Bernd Schmidt <bernds@codesourcery.com>
2237
2238 * genautomata.c (add_arc): Return void. All callers changed.
2239 (make_automaton): Remove dead code.
2240
2241 2011-07-11 Richard Henderson <rth@redhat.com>
2242
2243 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2244 (DW_FRAME_POINTER_REGNUM): New.
2245 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2246 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2247 (dwf_regno): New.
2248 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2249 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2250 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2251 Use it.
2252 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2253 * dwarf2out.h (dwarf_frame_regnum): New.
2254 (struct cfa_loc): Document the domain of the reg member.
2255
2256 2011-07-11 Uros Bizjak <ubizjak@gmail.com>
2257
2258 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2259 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
2260
2261 2011-07-11 Jakub Jelinek <jakub@redhat.com>
2262
2263 PR debug/49676
2264 * dwarf2out.c (int_shift_loc_descriptor): New function.
2265 (int_loc_descriptor): If shorter, emit i as
2266 (i >> shift), shift, DW_OP_shl for suitable shift value.
2267 Similarly, try to optimize large negative values using
2268 DW_OP_neg of a positive value if shorter.
2269 (size_of_int_shift_loc_descriptor): New function.
2270 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2271 changes.
2272 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2273 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2274 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2275 is shorter.
2276 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2277 addend as added DW_OP_plus if it is shorter.
2278
2279 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2280
2281 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2282 (DTORS_SECTION_ASM_OP): Define.
2283
2284 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2285
2286 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2287 * config/t-dfprules: Move to ../libgcc/config.
2288 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2289 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2290 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2291 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2292 Likewise.
2293 (i[34567]86-*-cygwin*): Likewise.
2294 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2295 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2296 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2297 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2298 D64PBIT_FUNCS, D128PBIT_FUNCS.
2299
2300 2011-07-11 Richard Guenther <rguenther@suse.de>
2301
2302 * tree-vrp.c (simplify_conversion_using_ranges): Manually
2303 translate the source value-range through the conversion chain.
2304
2305 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
2306
2307 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2308
2309 2011-07-11 Arthur Loiret <aloiret@debian.org>
2310
2311 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2312 a bi-arch compiler defaulting to 31-bit. In this case:
2313 (tmake_file): Add s390/t-linux64.
2314 * doc/install.texi: Add s390-linux to the list of targets supporting
2315 --enable-targets=all.
2316
2317 2011-07-11 Arthur Loiret <aloiret@debian.org>
2318 Matthias Klose <doko@debian.org>
2319
2320 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2321 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2322 (tm_file): Add mips/linux64.h.
2323 (tmake_file): Add mips/t-linux64.
2324 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2325 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2326 instead of hardcoded mabi=n32.
2327 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2328 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2329 convention.
2330
2331 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2332
2333 * passes.c (init_optimization_passes): Add invariant motion pass
2334 after induction variable optimization.
2335
2336 2011-07-11 Georg-Johann Lay <avr@gjlay.de>
2337
2338 PR target/39633
2339 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2340 offsets 1..5 set cc0 in a usable way.
2341
2342 2011-07-11 Romain Geissler <romain.geissler@gmail.com>
2343
2344 * tree.h (call_expr_arg): Remove.
2345 (call_expr_argp): Likewise.
2346
2347 2011-07-11 Eric Botcazou <ebotcazou@adacore.com>
2348
2349 * config/sparc/sparc.md (save_register_window_1): Rename to...
2350 (window_save): ...this.
2351 * config/sparc/sparc.c (emit_save_register_window): Rename to...
2352 (emit_window_save): ...this.
2353 (sparc_expand_prologue): Adjust to above renaming.
2354
2355 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2356
2357 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2358 of movabs for x32.
2359
2360 2011-07-10 Richard Henderson <rth@redhat.com>
2361
2362 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2363 run final, instead of emitting text directly.
2364
2365 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2366
2367 * config/i386/i386.c (ix86_option_override_internal): Turn on
2368 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
2369 small PIC models for TARGET_X32.
2370
2371 2011-07-10 Hans-Peter Nilsson <hp@axis.com>
2372
2373 PR target/49684
2374 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
2375 $(LIBGCC2_CFLAGS).
2376
2377 PR bootstrap/49680
2378 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
2379 stray notes and debug insns by using prev_nonnote_nondebug_insn
2380 instead of PREV_INSN.
2381
2382 2011-07-09 Richard Henderson <rth@redhat.com>
2383
2384 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
2385 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
2386 * dwarf2out.c: ... here.
2387 (output_all_cfis): Remove.
2388 (dwarf2out_switch_text_section): Use output_cfis directly.
2389 (size_of_locs): Export.
2390 (output_loc_sequence, output_loc_sequence_raw): Export.
2391 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
2392 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
2393 output_cfa_loc_raw): Move to ...
2394 * dwarfcfi.c: ... here.
2395 * dwarf2out.h: Update decls.
2396
2397 2011-07-09 Richard Henderson <rth@redhat.com>
2398
2399 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
2400 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
2401 * dwarf2cfi.c: ... here.
2402 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
2403 (DWARF_ROUND, DWARF_CIE_ID): Remove.
2404 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
2405 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
2406 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2407
2408 2011-07-09 Richard Henderson <rth@redhat.com>
2409
2410 * dwarf2cfi.c (cie_return_save): New.
2411 (queue_reg_save): Use compare_reg_or_pc.
2412 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
2413 (dwarf2out_frame_debug_expr): Likewise.
2414 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
2415 (initial_return_save): Likewise.
2416 (execute_dwarf2_frame): Save and restore initial return save from
2417 the cie to the fde.
2418 * config/mips/mips.c (mips_frame_set): Remove special case for
2419 DWARF_FRAME_RETURN_COLUMN.
2420
2421 2011-07-09 Richard Henderson <rth@redhat.com>
2422
2423 * dwarf2cfi.c (lookup_cfa): Remove.
2424 (execute_dwarf2_frame): Assert queues are empty on entry.
2425 Setup initial cfa directly, not via lookup_cfa.
2426 Don't clear args_size state here.
2427
2428 2011-07-09 Richard Henderson <rth@redhat.com>
2429
2430 * dwarf2cfi.c (add_cfi_vec): New.
2431 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
2432 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
2433 (execute_dwarf2_frame): Set add_cfi_vec.
2434
2435 2011-07-09 Richard Henderson <rth@redhat.com>
2436
2437 * defaults.h (ASM_COMMENT_START): Move here...
2438 * dwarf2asm.c: ... from here.
2439 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2440 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2441 * varasm.c: Likewise.
2442
2443 2011-07-09 Richard Henderson <rth@redhat.com>
2444
2445 PR debug/49686
2446 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2447 (create_cfi_notes): ... do it here instead.
2448
2449 2011-07-09 Jakub Jelinek <jakub@redhat.com>
2450
2451 PR debug/49676
2452 * dwarf2out.c (size_of_int_loc_descriptor): New function.
2453 (address_of_int_loc_descriptor): Use it.
2454 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
2455
2456 2011-07-09 Richard Henderson <rth@redhat.com>
2457
2458 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2459 (prologue, epilogue): New.
2460 (return, *rts): New.
2461 (blockage, setd, seti): New.
2462 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2463 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2464 (pdp11_saved_regno): New.
2465 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2466 generate rtl instead of text.
2467 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2468 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
2469 * config/pdp11/pdp11-protos.h: Update.
2470
2471 2011-07-09 Richard Henderson <rth@redhat.com>
2472
2473 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2474 try to insert an rtl prologue here.
2475 (rs6000_output_function_epilogue): Similarly.
2476 * config/rs6000/rs6000.md (prologue): Emit a barrier to
2477 satisfy !TARGET_SCHED_PROLOG.
2478 (epilogue, sibcall_epilogue): Likewise.
2479
2480 2011-07-09 Eric Botcazou <ebotcazou@adacore.com>
2481
2482 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2483 (FP_REG_P): Delete.
2484 (IN_OR_GLOBAL_P): Likewise.
2485
2486 2011-07-08 Jason Merrill <jason@redhat.com>
2487
2488 PR c++/45437
2489 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2490 compound assignment.
2491
2492 * cgraph.c (cgraph_add_to_same_comdat_group): New.
2493 * cgraph.h: Declare it.
2494 * ipa.c (function_and_variable_visibility): Make sure thunks
2495 have the right visibility.
2496
2497 2011-07-08 Richard Henderson <rth@redhat.com>
2498
2499 PR bootstrap/49680
2500 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2501 any tablejump vector.
2502
2503 PR bootstrap/49680
2504 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2505 end of the prologue.
2506
2507 2011-07-08 Jakub Jelinek <jakub@redhat.com>
2508
2509 PR target/49621
2510 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2511 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
2512 * config/rs6000/vector.md (vector_select_<mode>,
2513 vector_select_<mode>_uns): Change second operand of NE to
2514 CONST0_RTX (<MODE>mode) instead of const0_rtx.
2515 * config/rs6000/altivec.md (*altivec_vsel<mode>,
2516 *altivec_vsel<mode>_uns): Expect second operand of NE to be
2517 zero_constant of the corresponding vector mode.
2518 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2519 Likewise.
2520
2521 2011-07-08 Sebastian Pop <sebastian.pop@amd.com>
2522
2523 * graphite-dependences.c (build_alias_set_powerset): Remove
2524 continue from loop, add one more assert.
2525
2526 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
2527
2528 PR target/46779
2529 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2530 In particular, allow 8-bit values in r28 and r29.
2531 (avr_hard_regno_scratch_ok): Disallow any register that might be
2532 part of the frame pointer.
2533 (avr_hard_regno_rename_ok): Same.
2534 (avr_legitimate_address_p): Don't allow SUBREGs.
2535
2536 2011-07-08 Julian Brown <julian@codesourcery.com>
2537
2538 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2539 big-endian mode.
2540 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2541 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2542 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2543 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2544 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2545 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2546 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2547 registers in big-endian mode.
2548
2549 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2550
2551 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2552 in terms of another.
2553 (write_attr_value): Write a cast if necessary.
2554
2555 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2556 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2557 (REG_WORDS_BIG_ENDIAN): Document.
2558 * doc/tm.texi: Regenerate.
2559 * reload.c (operands_match_p): Take it into account.
2560 (reload_adjust_reg_for_mode): Likewise.
2561 * rtlanal.c (subreg_get_info): Likewise.
2562
2563 2011-07-08 Richard Guenther <rguenther@suse.de>
2564
2565 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2566 folding.
2567
2568 2011-07-08 Kai Tietz <ktietz@redhat.com>
2569
2570 * fold-const.c (fold_truth_andor): Factored out truth_andor
2571 label from fold_binary as function.
2572 (fold_binary_loc): Replace truth_andor lable
2573 by function fold_truth_andor.
2574
2575 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
2576
2577 PR middle-end/49519
2578 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2579 check if address is stored in register. If so - give up.
2580 (check_sibcall_argument_overlap_1): Do not perform check of
2581 overlapping when it is call to address.
2582
2583 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
2584
2585 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2586 of magic '31'.
2587
2588 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2589
2590 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2591 GET_MODE_BITSIZE where appropriate.
2592 (widen_leading, expand_parity, expand_ctz, expand_ffs,
2593 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2594 expand_float, expand_fix): Likewise.
2595 * expr.c (convert_move, convert_modes, expand_expr_real_2,
2596 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2597 * stor-layout.c (get_mode_bounds): Likewise.
2598 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2599 Likewise.
2600 * convert.c (convert_to_integer): Likewise.
2601 * expmed.c (expand_shift_1): Likewise.
2602
2603 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2604 a bitsize.
2605
2606 * optabs.c (expand_binop): Tighten conditions for doubleword
2607 expansions.
2608 (widen_bswap): Assert that mode bitsize and precision are the same.
2609 * stor-layout.c (get_best_mode): Skip modes that have lower
2610 precision than bitsize.
2611 * recog.c (simplify_while_replacing): Assert that bitsize and
2612 precision are the same.
2613
2614 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2615
2616 * Makefile.in (LIBGCOV): Remove.
2617 (libgcc.mvars): Remove LIBGCOV.
2618 * libgov.c: Move to ../libgcc.
2619
2620 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2621
2622 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2623
2624 2011-07-08 Martin Jambor <mjambor@suse.cz>
2625
2626 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2627 is too big for total scalarization.
2628
2629 2011-07-07 Richard Henderson <rth@redhat.com>
2630
2631 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2632 (DBX_DEBUGGING_INFO): Undef.
2633
2634 2011-07-07 Richard Henderson <rth@redhat.com>
2635
2636 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
2637 Handle some opcodes specially for debugging.
2638 * print-rtl.c: Include dwarf2out.h
2639 (print_rtx): Handle NOTE_INSN_CFI.
2640 * Makefile.in (print-rtl.o): Update.
2641
2642 2011-07-07 Richard Henderson <rth@redhat.com>
2643
2644 * tree-pass.h (pass_dwarf2_frame): Declare.
2645 * passes.c (init_optimization_passes): Add it.
2646 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2647 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2648 make static, do not call add_cfis_to_fde.
2649 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2650 dwarf2out_frame_init): Merge into...
2651 (execute_dwarf2_frame): ... here. New function.
2652 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
2653 saved_do_cfi_asm to a tri-state variable.
2654 (gate_dwarf2_frame, pass_dwarf2_frame): New.
2655 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2656 if it has yet to be done. Don't call dwarf2cfi_function_init.
2657 * dwarf2out.h, debug.h: Update decls.
2658 * final.c (final_start_function): Don't call
2659 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2660 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2661 * toplev.c (lang_dependent_init): Likewise.
2662
2663 2011-07-07 Richard Henderson <rth@redhat.com>
2664
2665 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2666 FDE_TABLE_INCREMENT): Replace with...
2667 (fde_vec): ... this, a new vector.
2668 (current_fde): Remove. Replace all users with cfun->fde.
2669 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2670 (size_of_aranges, dwarf2out_finish): Likewise.
2671 (dwarf2out_alloc_current_fde): Break out from ...
2672 (dwarf2out_begin_prologue): ... here.
2673 (dwarf2out_frame_init): Remove.
2674 * dwarf2cfi.c: Update all users of current_fde.
2675 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
2676 * dwarf2out.h: Update decls.
2677 (dw_fde_node): Add fde_index member.
2678 * function.h (struct function): Add fde member.
2679
2680 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2681 Richard Henderson <rth@redhat.com>
2682
2683 * dwarf2cfi.c (add_cfi): Remove.
2684 (dwarf2out_cfi_label): Remove force argument. Only generate the
2685 label name.
2686 (add_fde_cfi): Simplify the different code paths.
2687 (add_cie_cfi): New.
2688 (old_cfa, old_cfa_remember): New.
2689 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
2690 (last_reg_save_label): Remove.
2691 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
2692 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2693 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2694 dwarf2out_frame_debug_cfa_expression,
2695 dwarf2out_frame_debug_cfa_restore,
2696 dwarf2out_frame_debug_cfa_window_save,
2697 dwarf2out_frame_debug_expr): Remove label parameter.
2698 (cfi_label_required_p, add_cfis_to_fde): New.
2699 (dwarf2out_frame_debug_after_prologue): New.
2700 (dwarf2cfi_frame_init): Initialize old_cfa.
2701 (dwarf2out_frame_debug_restore_state): Likewise.
2702 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
2703 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
2704 * final.c (final_start_function): Call
2705 dwarf2out_frame_debug_after_prologue.
2706
2707 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2708 Richard Henderson <rth@redhat.com>
2709
2710 * dwarf2cfi.c (cfi_insn): New.
2711 (dwarf2out_cfi_label): Don't emit cfi label here.
2712 (add_fde_cfi): Create a NOTE_INSN_CFI.
2713 (dwarf2out_frame_debug): Setup cfi_insn.
2714 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
2715 (dwarf2out_cfi_begin_epilogue): Make static.
2716 (dwarf2out_frame_debug_restore_state): Make static.
2717 * dwarf2out.c (output_cfi_directive): Make static.
2718 (dwarf2out_emit_cfi): New.
2719 * dwarf2out.h: Update.
2720 * final.c (final): Remove CFI notes.
2721 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
2722 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
2723 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
2724 * insn-notes.def (NOTE_INSN_CFI): New.
2725 (NOTE_INSN_CFI_LABEL): New.
2726 * rtl.h (union rtunion_def): Add rt_cfi member.
2727 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
2728
2729 2011-07-07 Richard Henderson <rth@redhat.com>
2730
2731 * dwarf2cfi.c: New file.
2732 * Makefile.in (OBJS): Add it.
2733 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
2734 * gengtype.c (open_base_files): Include dwarf2out.h.
2735 * coretypes.h (enum var_init_status): Move from ...
2736 * rtl.h: ... here.
2737 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
2738 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
2739 expand_builtin_dwarf_sp_column, init_return_column_size,
2740 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
2741 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
2742 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
2743 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
2744 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
2745 compute_barrier_args_size, dwarf2out_args_size,
2746 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
2747 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
2748 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
2749 queue_reg_save, dwarf2out_flush_queued_reg_saves,
2750 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
2751 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2752 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2753 dwarf2out_frame_debug_cfa_expression,
2754 dwarf2out_frame_debug_cfa_restore,
2755 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
2756 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
2757 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
2758 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
2759 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
2760 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
2761 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
2762 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
2763 dw_loc_descr_node): Move to dwarf2out.h.
2764 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
2765 mem_loc_descriptor): Export.
2766 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
2767 (dwarf2out_frame_init): Extract CIE generation code to
2768 dwarf2cfi_frame_init.
2769
2770 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
2771
2772 PR target/49660
2773 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
2774 MASK_V8PLUS, remove commented out flag and reorder.
2775
2776 2011-07-07 Jakub Jelinek <jakub@redhat.com>
2777
2778 PR c/49644
2779 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
2780 one non-complex and one complex argument, call c_save_expr on both
2781 operands.
2782
2783 2011-07-07 Martin Jambor <mjambor@suse.cz>
2784
2785 PR middle-end/49495
2786 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
2787 (verify_cgraph_node): Some functinality moved to
2788 verify_edge_corresponds_to_fndecl, call it.
2789
2790 2011-07-07 Joseph Myers <joseph@codesourcery.com>
2791
2792 * config.gcc (*local*): Remove.
2793 * doc/install-old.texi: Don't mention local configurations.
2794
2795 2011-07-07 Jakub Jelinek <jakub@redhat.com>
2796
2797 PR debug/49522
2798 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
2799 referencing debug insns that have been reset.
2800 (dead_debug_insert_before): Don't assert reg is non-NULL,
2801 instead return immediately if it is NULL.
2802
2803 2011-07-07 Joseph Myers <joseph@codesourcery.com>
2804
2805 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2806
2807 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2808
2809 * hw-doloop.c: New file.
2810 * hw-doloop.h: New file.
2811 * Makefile.in (OBJS): Add hw-doloop.o.
2812 (hw-doloop.o): New rule.
2813 ($(obj_out_file)): Add hw-doloop.h dependency.
2814 * config/bfin/bfin.c: Include "hw-doloop.h".
2815 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
2816 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
2817 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
2818 type changed to hwloop_info. Return bool, true if the loop was
2819 successfully optimized. Remove code that was moved to
2820 hw-doloop.c, and adjust other parts.
2821 (hwloop_fail): New static function, containing parts that used
2822 to be in bfin_optimize_loop.
2823 (bfin_discover_loop, bfin_discover_loops, free_loops,
2824 bfin_reorder_loops): Remove.
2825 (hwloop_pattern_reg): New static function.
2826 (bfin_doloop_hooks): New variable.
2827 (bfin_reorg_loops): Remove most code, call reorg_loops.
2828 * config/bfin/bfin.md (doloop_end splitter): Also enable if
2829 loop counter is a memory_operand.
2830
2831 2011-07-07 H.J. Lu <hongjiu.lu@intel.com>
2832
2833 * config.gcc: Support --with-multilib-list for x86 Linux targets.
2834
2835 * configure.ac: Mention x86-64 for --with-multilib-list.
2836 * configure: Regenerated.
2837
2838 * config/i386/gnu-user64.h (SPEC_64): Support x32.
2839 (SPEC_32): Likewise.
2840 (ASM_SPEC): Likewise.
2841 (LINK_SPEC): Likewise.
2842 (TARGET_THREAD_SSP_OFFSET): Likewise.
2843 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
2844 (SPEC_X32): New.
2845
2846 * config/i386/i386.h (TARGET_X32): New.
2847 (TARGET_LP64): New.
2848 (LONG_TYPE_SIZE): Likewise.
2849 (POINTER_SIZE): Likewise.
2850 (POINTERS_EXTEND_UNSIGNED): Likewise.
2851 (OPT_ARCH64): Support x32.
2852 (OPT_ARCH32): Likewise.
2853
2854 * config/i386/i386.opt (mx32): New.
2855
2856 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
2857 (GLIBC_DYNAMIC_LINKERX32): Likewise.
2858 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
2859 (GLIBC_DYNAMIC_LINKERX32): Likewise.
2860
2861 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
2862 (BIONIC_DYNAMIC_LINKERX32): Likewise.
2863 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
2864
2865 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
2866
2867 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
2868
2869 * doc/invoke.texi: Document -mx32.
2870
2871 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
2872
2873 * doc/invoke.texi (mwords-little-endian): Deprecate.
2874 * config/arm/arm.opt (mwords-little-endian): Likewise.
2875 * config/arm/arm.c (arm_option_override): Warn about the deprecation
2876 of -mwords-little-endian.
2877
2878 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
2879
2880 * reload1.c (choose_reload_regs): Use mode sizes to check whether
2881 an old reload register completely defines the required value.
2882
2883 2011-07-07 Richard Guenther <rguenther@suse.de>
2884
2885 * fold-const.c (fold_unary_loc): Do not strip sign-changes
2886 for NEGATE_EXPR.
2887
2888 2011-07-07 Richard Guenther <rguenther@suse.de>
2889
2890 * tree-vrp.c (simplify_conversion_using_ranges): New function.
2891 (simplify_stmt_using_ranges): Call it.
2892
2893 2011-07-07 Kai Tietz <ktietz@redhat.com>
2894
2895 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2896 (lookup_logical_inverted_value): Likewise.
2897 (simplify_bitwise_binary_1): Likewise.
2898 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
2899
2900 2011-07-07 Joseph Myers <joseph@codesourcery.com>
2901
2902 * gcc.c (%[Spec]): Don't document.
2903 (struct spec_list): Update comment.
2904 (do_spec_1): Don't handle %[Spec].
2905 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
2906
2907 2011-07-07 Joseph Myers <joseph@codesourcery.com>
2908
2909 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
2910 default based on TARGET_ASM_NAMED_SECTION.
2911 * common/common-target.def (have_named_sections): Default to true.
2912 * common/config/default-common.c: Don't include tm.h.
2913 * common/config/picochip/picochip-common.c
2914 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
2915 * common/config/m32c/m32c-common.c: Remove.
2916 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
2917 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2918 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2919 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2920 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2921 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2922 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2923
2924 2011-07-07 Jakub Jelinek <jakub@redhat.com>
2925
2926 PR middle-end/49640
2927 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
2928 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
2929
2930 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2931
2932 PR libmudflap/49550
2933 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
2934
2935 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2936
2937 PR target/39150
2938 * configure.ac (gcc_cv_as_hidden): Also accept
2939 x86_64-*-solaris2.1[0-9]*.
2940 (gcc_cv_as_cfi_directive): Likewise.
2941 (gcc_cv_as_comdat_group_group): Likewise.
2942 (set_have_as_tls): Likewise.
2943 * configure: Regenerate.
2944 * config.gcc (i[34567]86-*-solaris2*): Also handle
2945 x86_64-*-solaris2.1[0-9]*.
2946 * config.host (i[34567]86-*-solaris2*): Likewise.
2947 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2948 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
2949 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
2950 (TARGET_LD_EMULATION): Use it.
2951 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
2952 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
2953 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
2954 (ASM_CPU64_DEFAULT_SPEC): Define.
2955 (ASM_CPU_SPEC): Use %(asm_cpu_default).
2956 (ASM_SPEC): Redefine.
2957 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
2958 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
2959 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
2960 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
2961 configuration.
2962 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
2963
2964 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2965
2966 * config/sol2.h (ASM_SPEC): Split into ...
2967 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
2968 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
2969 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
2970 (ASM_SPEC): Use ASM_SPEC_BASE.
2971 * config/sparc/sol2.h (ASM_SPEC): Redefine.
2972
2973 2011-07-07 Georg-Johann Lay <avr@gjlay.de>
2974
2975 * config/avr/avr.md (*reload_insi): Change predicate #1 to
2976 const_int_operand. Ditto for peep2 producing this insn.
2977 Add argument to output_reload_insisf call.
2978 (*movsi,*movsf): Add argument to output_movsisf call.
2979 (*reload_insf): New insn and new peep2 to produce it.
2980 * config/avr/avr-protos.h (output_movsisf): Change prototype.
2981 (output_reload_insisf): Change prototype.
2982 * config/avr/avr.c (avr_asm_len): New function.
2983 (output_reload_insisf): Rewrite.
2984 (output_movsisf): Change prototype. output_reload_insisf for
2985 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
2986 (adjust_insn_length): Add argument to output_movsisf and
2987 output_reload_insisf call.
2988
2989 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2990
2991 * emit-rtl.c (paradoxical_subreg_p): New function.
2992 * rtl.h (paradoxical_subreg_p): Declare.
2993 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
2994 apply_distributive_law, simplify_comparison, simplify_set): Use it.
2995 * cse.c (record_jump_cond, cse_insn): Likewise.
2996 * expr.c (force_operand): Likewise.
2997 * rtlanal.c (num_sign_bit_copies1): Likewise.
2998 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
2999 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3000 (push_reload): Use precision to check for paradoxical subregs.
3001 * expmed.c (extract_bit_field_1): Likewise.
3002
3003 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3004 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3005 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3006 simplify_set, simplify_logical, expand_compound_operation,
3007 make_extraction, force_to_mode, if_then_else_cond, extended_count,
3008 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3009 record_value_for_reg): Likewise.
3010 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3011 * simplify-rtx. c (simplify_unary_operation_1,
3012 simplify_binary_operation_1, simplify_const_relational_operation):
3013 Likewise.
3014
3015 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3016 instead of GET_MODE_BITSIZE where appropriate.
3017 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3018 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3019 init_num_sign_bit_copies_in_rep): Likewise.
3020 * cse.c (fold_rtx, cse_insn): Likewise.
3021 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3022 * simplify-rtx.c (simplify_unary_operation_1,
3023 simplify_const_unary_operation, simplify_binary_operation_1,
3024 simplify_const_binary_operation, simplify_ternary_operation,
3025 simplify_const_relational_operation, simplify_subreg): Likewise.
3026 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3027 simplify_if_then_else, simplify_set, expand_compound_operation,
3028 expand_field_assignment, make_extraction, if_then_else_cond,
3029 make_compound_operation, force_to_mode, make_field_assignment,
3030 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3031 extended_count, try_widen_shift_mode, simplify_shift_const_1,
3032 simplify_comparison, record_promoted_value, simplify_compare_const,
3033 record_dead_and_set_regs_1): Likewise.
3034
3035 Revert:
3036 * simplify-rtx.c (simplify_const_binary_operation): Use the
3037 shift_truncation_mask hook instead of performing modulo by width.
3038 Compare against mode precision, not bitsize.
3039 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3040 Use shift_truncation_mask instead of constructing the value manually.
3041
3042 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3043
3044 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3045 declaration.
3046 (rs6000_save_toc_in_prologue_p): Ditto.
3047
3048 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3049 up the static chain (r11) during indirect function calls.
3050 (-msave-toc-indirect): New undocumented debug switch.
3051
3052 * config/rs6000/rs6000.c (struct machine_function): Add
3053 save_toc_in_prologue field to note whether the prologue needs to
3054 save the TOC value in the reserved stack location.
3055 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
3056 to save the TOC in the prologue, do so.
3057 (rs6000_trampoline_init): Don't allow creating AIX style
3058 trampolines if -mno-r11 is in effect.
3059 (rs6000_call_indirect_aix): New function to create AIX style
3060 indirect calls, adding support for -mno-r11 to suppress loading
3061 the static chain, and saving the TOC in the prologue instead of
3062 the call body.
3063 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3064 TOC in the prologue.
3065
3066 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3067 register numbers.
3068 (TOC_REGNUM): Ditto.
3069 (STATIC_CHAIN_REGNUM): Ditto.
3070 (ARG_POINTER_REGNUM): Ditto.
3071 (SFP_REGNO): Delete, unused.
3072 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3073 function descriptor offsets.
3074 (TOC_SAVE_OFFSET_64BIT): Ditto.
3075 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3076 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3077 (AIX_FUNC_DESC_SC_32BIT): Ditto.
3078 (AIX_FUNC_DESC_SC_64BIT): Ditto.
3079 (ptrload): New mode attribute for the appropriate load of a pointer.
3080 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
3081 (call_indirect_aix64): Ditto.
3082 (call_value_indirect_aix32): Ditto.
3083 (call_value_indirect_aix64): Ditto.
3084 (call_indirect_nonlocal_aix32_internal): Ditto.
3085 (call_indirect_nonlocal_aix32): Ditto.
3086 (call_indirect_nonlocal_aix64_internal): Ditto.
3087 (call_indirect_nonlocal_aix64): Ditto.
3088 (call): Rewrite AIX indirect function calls. Add support for
3089 eliminating the static chain, and for moving the save of the TOC
3090 to the function prologue.
3091 (call_value): Ditto.
3092 (call_indirect_aix<ptrsize>): Ditto.
3093 (call_indirect_aix<ptrsize>_internal): Ditto.
3094 (call_indirect_aix<ptrsize>_internal2): Ditto.
3095 (call_indirect_aix<ptrsize>_nor11): Ditto.
3096 (call_value_indirect_aix<ptrsize>): Ditto.
3097 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3098 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3099 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3100 (call_nonlocal_aix32): Relocate in the rs6000.md file.
3101 (call_nonlocal_aix64): Ditto.
3102
3103 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3104 -mno-r11 documentation.
3105
3106 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3107
3108 PR other/49658
3109 * doc/extend.texi (Compound Literals): Fix typo.
3110
3111 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
3112
3113 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
3114
3115 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
3116
3117 * configure.ac (plugin-version.h): Generate
3118 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3119 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3120 macros.
3121
3122 * configure: Regenerate.
3123
3124 * doc/plugins.texi (Building GCC plugins): Mention
3125 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3126
3127 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3128
3129 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3130 * combine.c (make_extraction, gen_lowpart_or_truncate,
3131 apply_distributive_law, simplify_comparison,
3132 reg_truncated_to_mode, record_truncated_value): Use it.
3133 * cse.c (notreg_cost): Likewise.
3134 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3135 * expr.c (convert_move, convert_modes): Likewise.
3136 * optabs.c (expand_binop, expand_unop): Likewise.
3137 * postreload.c (move2add_last_label): Likewise.
3138 * regmove.c (optimize_reg_copy_3): Likewise.
3139 * rtlhooks.c (gen_lowpart_general): Likewise.
3140 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3141
3142 2011-07-06 Joseph Myers <joseph@codesourcery.com>
3143
3144 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3145
3146 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3147
3148 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3149 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3150 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3151 (simplify_const_unary_operation, simplify_binary_operation_1,
3152 simplify_const_binary_operation, simplify_const_relational_operation):
3153 Use them. Use GET_MODE_MASK for masking and sign-extensions.
3154 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3155 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3156 simplify_shift_const_1, simplify_comparison): Likewise.
3157 * expr.c (convert_modes): Likewise.
3158 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
3159 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
3160 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3161
3162 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3163
3164 2011-07-06 Richard Guenther <rguenther@suse.de>
3165
3166 PR tree-optimization/49645
3167 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3168 register variables.
3169 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3170 in type qualification here ...
3171 (copy_reference_ops_from_ref): ... not here.
3172 (vn_reference_lookup_3): ... or here.
3173 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3174 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3175
3176 2011-07-06 Ian Lance Taylor <iant@google.com>
3177
3178 * doc/install.texi (Configuration): It's
3179 --enable-gnu-indirect-function, not --enable-indirect-function.
3180
3181 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3182
3183 * simplify-rtx.c (simplify_const_binary_operation): Use the
3184 shift_truncation_mask hook instead of performing modulo by width.
3185 Compare against mode precision, not bitsize.
3186 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3187 Use shift_truncation_mask instead of constructing the value manually.
3188
3189 2011-07-06 H.J. Lu <hongjiu.lu@intel.com>
3190
3191 PR middle-end/47383
3192 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3193 address computation and convert to address_mode if needed.
3194
3195 2011-07-06 Richard Guenther <rguenther@suse.de>
3196
3197 * tree.c (build_common_tree_nodes_2): Merge with
3198 build_common_tree_nodes.
3199 * tree.h (build_common_tree_nodes): Adjust prototype.
3200 (build_common_tree_nodes_2): Remove.
3201 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3202 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3203
3204 2011-07-05 Jakub Jelinek <jakub@redhat.com>
3205
3206 PR tree-optimization/49618
3207 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3208 t recurse on the decl.
3209 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3210 return true if expr isn't known to be defined in current
3211 TU or some other LTO partition.
3212
3213 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3214
3215 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3216 override CASE_VALUES_THRESHOLD.
3217
3218 * stmt.c (toplevel): Include params.h.
3219 (case_values_threshold): Use the --param case-values-threshold
3220 value if non-zero, otherwise use machine dependent value.
3221 (expand_case): Use case_values_threshold.
3222
3223 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3224
3225 * doc/invoke.texi (--param case-values-threshold): Document.
3226
3227 2011-07-05 Richard Henderson <rth@redhat.com>
3228
3229 * dwarf2out.c (dwarf2out_cfi_label): Make static.
3230 (dwarf2out_flush_queued_reg_saves): Make static.
3231 (dwarf2out_reg_save): Remove.
3232 (dwarf2out_return_save): Remove.
3233 (dwarf2out_return_reg): Remove.
3234 (dwarf2out_reg_save_reg): Remove.
3235 (dwarf2out_def_cfa): Merge into ...
3236 (dwarf2out_frame_init): ... here.
3237 * dwarf2out.h, tree.h: Remove declarations as necessary.
3238
3239 2011-07-05 Richard Henderson <rth@redhat.com>
3240
3241 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3242 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3243 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3244 the alloc insn.
3245
3246 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3247 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3248 (process_epilogue): Don't call dwarf2out_def_cfa.
3249
3250 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3251 indicate the return address save.
3252 (process_cfa_register): Likewise.
3253
3254 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3255 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3256
3257 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3258 for ar.pfs save at alloc insn.
3259
3260 2011-07-05 Richard Henderson <rth@redhat.com>
3261
3262 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3263 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3264 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3265 stack pointer save.
3266 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3267 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
3268 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3269 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3270
3271 2011-07-05 Richard Henderson <rth@redhat.com>
3272
3273 * config/vax/vax.md (define_c_enum unspecv): New. Define the
3274 VUNSPEC_* constants here instead of via define_constants.
3275 (VUNSPEC_PEM): New constant.
3276 (procedure_entry_mask): New insn.
3277 (prologue): New expander.
3278 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3279 (vax_expand_prologue): Rename from vax_output_function_prologue;
3280 emit rtl instead of text.
3281 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3282 (print_operand): Add 'x' prefix.
3283
3284 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3285
3286 PR middle-end/47715
3287 * calls.c (precompute_register_parameters): Promote the function
3288 argument before checking non-legitimate constant.
3289
3290 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3291
3292 PR tree-optimization/47654
3293 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3294 (lst_do_strip_mine_loop): Return an int.
3295 (lst_do_strip_mine): Same.
3296 (scop_do_strip_mine): Same.
3297 (scop_do_block): Loop blocking should strip-mine at least two loops.
3298 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3299 (scop_do_interchange): Same.
3300 * graphite-poly.h (scop_do_interchange): Update declaration.
3301 (scop_do_strip_mine): Same.
3302
3303 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3304
3305 * graphite-clast-to-gimple.c (precision_for_value): Removed.
3306 (precision_for_interval): Removed.
3307 (gcc_type_for_interval): Use mpz_sizeinbase.
3308
3309 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3310
3311 * graphite-ppl.h (value_max): Correct computation of max.
3312
3313 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3314
3315 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3316
3317 2011-07-05 Richard Guenther <rguenther@suse.de>
3318
3319 * c-decl.c (c_init_decl_processing): Defer building common
3320 tree nodes to c_common_nodes_and_builtins.
3321
3322 2011-07-05 Razya Ladelsky <razya@il.ibm.com>
3323
3324 PR tree-optimization/49580
3325 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
3326 the loop's number of iterations.
3327 * tree-parloops.c (transform_to_exit_first_loop): Add the
3328 handling of the loop's number of iterations before the call
3329 to gimple_duplicate_sese_tail.
3330 Insert the stmt caclculating the new rhs of the loop's
3331 condition stmt to the preheader instead of iters_bb.
3332
3333 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3334
3335 PR rtl-optimization/47449
3336 * fwprop.c (forward_propagate_subreg): Don't propagate hard
3337 register nor zero/sign extended hard register.
3338
3339 2011-07-05 Richard Guenther <rguenther@suse.de>
3340
3341 PR tree-optimization/49518
3342 PR tree-optimization/49628
3343 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3344 irrelevant and invariant data-references.
3345 (vect_analyze_data_ref_access): For invariant loads clear the
3346 group association.
3347
3348 2011-07-04 Jakub Jelinek <jakub@redhat.com>
3349
3350 PR rtl-optimization/49619
3351 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3352 pass VOIDmode as op0_mode to recursive call, and return temp even
3353 when different from tor, just if it is not IOR of the original
3354 PLUS arguments.
3355
3356 PR rtl-optimization/49472
3357 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3358 negating MULT, negate the second operand instead of first.
3359 (simplify_binary_operation_1) <case MULT>: If one operand is
3360 a NEG and the other is MULT, don't attempt to optimize by negation
3361 of the MULT operand if it only moves the NEG operation around.
3362
3363 PR debug/49602
3364 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3365 get_current_def return value if it can't be trusted to be
3366 the current value of the variable in the current bb.
3367
3368 2011-07-04 Uros Bizjak <ubizjak@gmail.com>
3369
3370 PR target/49600
3371 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3372 general register to memory for !TARGET_INTER_UNIT_MOVES.
3373
3374 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
3375
3376 PR target/44643
3377 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
3378 instead of TREE_READONLY.
3379
3380 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
3381
3382 * doc/extend.texi (AVR Built-in Functions): Update documentation
3383 of __builtin_avr_fmul*.
3384 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
3385 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
3386 * config/avr/avr.md (fmul): Rename to fmul_insn.
3387 (fmuls): Rename to fmuls_insn.
3388 (fmulsu): Rename to fmulsu_insn.
3389 (fmul,fmuls,fmulsu): New expander.
3390 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
3391 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
3392 * config/avr/libgcc.S (__fmul): New function.
3393 (__fmuls): New function.
3394 (__fmulsu,__fmulsu_exit): New function.
3395
3396 2011-07-04 Richard Guenther <rguenther@suse.de>
3397
3398 PR tree-optimization/49615
3399 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
3400 basic-block index check.
3401
3402 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
3403
3404 * longlong.h (count_leading_zeros, count_trailing_zeros,
3405 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
3406 resp. 64.
3407
3408 2011-07-03 Ira Rosen <ira.rosen@linaro.org>
3409
3410 PR tree-optimization/49610
3411 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
3412 a basic block.
3413
3414 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
3415 Olivier Hainque <hainque@adacore.com>
3416 Nicolas Setton <setton@adacore.com>
3417
3418 * tree.h (TYPE_ARTIFICIAL): New flag.
3419 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
3420 the DIE of the type if it is artificial.
3421 (gen_array_type_die): Likewise.
3422 (gen_enumeration_type_die): Likewise.
3423 (gen_struct_or_union_type_die): Likewise.
3424 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3425 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3426
3427 2011-07-01 Jakub Jelinek <jakub@redhat.com>
3428
3429 * tree-object-size.c (pass_through_call): Handle
3430 BUILT_IN_ASSUME_ALIGNED.
3431
3432 2011-07-01 Martin Jambor <mjambor@suse.cz>
3433
3434 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3435
3436 2011-07-01 H.J. Lu <hongjiu.lu@intel.com>
3437
3438 PR middle-end/48016
3439 * explow.c (update_nonlocal_goto_save_area): Use proper mode
3440 for stack save area.
3441 * function.c (expand_function_start): Likewise.
3442
3443 2011-07-01 Richard Guenther <rguenther@suse.de>
3444
3445 PR middle-end/49596
3446 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3447 may have unknown refs.
3448
3449 2011-07-01 Kai Tietz <ktietz@redhat.com>
3450
3451 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3452
3453 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3454
3455 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3456 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3457 (Specific, mips-sgi-irix6): Likewise.
3458
3459 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3460
3461 PR libmudflap/49549
3462 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3463
3464 2011-07-01 Jakub Jelinek <jakub@redhat.com>
3465
3466 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3467 [idx]= and [idx1 ... idx2]= before initializers if needed for
3468 array initializers.
3469
3470 2011-07-01 Chen Liqin <liqin.gcc@gmail.com>
3471
3472 * config.gcc (score-*-elf): Remove score7.o.
3473 * config/score/t-score-elf: Likewise.
3474 * config/score/score.c: Merge score7 to score.c and
3475 remove forwarding functions.
3476 * config/score/score7.c: Deleted.
3477 * config/score/score7.h: Deleted.
3478
3479 2011-07-01 Richard Guenther <rguenther@suse.de>
3480
3481 PR tree-optimization/49603
3482 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
3483
3484 2011-06-30 Martin Jambor <mjambor@suse.cz>
3485
3486 * tree-sra.c (struct access): Rename total_scalarization to
3487 grp_total_scalarization
3488 (completely_scalarize_var): New function.
3489 (sort_and_splice_var_accesses): Set total_scalarization in the
3490 representative access.
3491 (analyze_access_subtree): Propagate total scalarization accross the
3492 tree, no holes in totally scalarized trees, simplify coverage
3493 computation.
3494 (analyze_all_variable_accesses): Call completely_scalarize_var instead
3495 of completely_scalarize_record.
3496
3497 2011-06-30 Richard Henderson <rth@redhat.com>
3498
3499 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3500 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3501 * config/i386/i386.c: Don't include dwarf2out.h.
3502 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3503 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3504 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
3505 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3506 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3507
3508 2011-06-30 Richard Henderson <rth@redhat.com>
3509
3510 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3511 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3512 * final.c (final_scan_insn): Look for it, and invoke
3513 dwarf2out_frame_debug before the insn if found.
3514
3515 2011-06-30 Richard Henderson <rth@redhat.com>
3516
3517 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3518 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3519
3520 2011-06-30 Richard Henderson <rth@redhat.com>
3521
3522 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3523 Define a vector of this type.
3524 (regs_saved_in_regs): Use a VEC.
3525 (num_regs_saved_in_regs): Remove.
3526 (compare_reg_or_pc): New.
3527 (record_reg_saved_in_reg): Split out from...
3528 (dwarf2out_flush_queued_reg_saves): ... here.
3529 (clobbers_queued_reg_save): Update for VEC.
3530 (reg_saved_in): Likewise.
3531 (dwarf2out_frame_debug_init): Likewise.
3532 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3533 (dwarf2out_frame_debug_cfa_register): Likewise.
3534
3535 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3536
3537 PR tree-optimization/49572
3538 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3539 type of the RHS instead of that of the LHS for the expression type.
3540
3541 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3542
3543 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3544 unconditionally.
3545
3546 2011-06-30 Richard Guenther <rguenther@suse.de>
3547
3548 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3549 * tree-ssa-structalias.c (create_variable_info_for): Do not
3550 add initial constraints for non-var-decls. Properly handle
3551 globals in other ltrans partitions.
3552 (intra_create_variable_infos): Manually create constraints for
3553 the fake no-alias parameter.
3554 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3555 and assert there are no clones.
3556
3557 2011-06-30 Richard Guenther <rguenther@suse.de>
3558
3559 PR tree-optimization/46787
3560 * tree-data-ref.c (dr_address_invariant_p): Remove.
3561 (find_data_references_in_stmt): Invariant accesses are ok now.
3562 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
3563 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3564 invariant loads.
3565
3566 2011-06-30 Martin Jambor <mjambor@suse.cz>
3567
3568 PR tree-optimization/49094
3569 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3570 (build_accesses_from_assign): Use it.
3571
3572 2011-06-30 Jakub Jelinek <jakub@redhat.com>
3573
3574 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3575 handling of BUILT_IN_ASSUME_ALIGNED.
3576
3577 PR debug/49364
3578 * dwarf2out.c (output_abbrev_section): Don't return early
3579 if abbrev_die_table_in_use is 1.
3580 (dwarf2out_finish): Instead don't call output_abbrev_section
3581 nor emit abbrev_section_label in that case.
3582
3583 2011-06-30 Nick Clifton <nickc@redhat.com>
3584
3585 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3586 for the V850E.
3587
3588 2011-06-30 Jakub Jelinek <jakub@redhat.com>
3589
3590 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3591 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3592
3593 2011-06-30 Ira Rosen <ira.rosen@linaro.org>
3594
3595 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3596 both pattern and original statements if necessary.
3597 (vect_transform_loop): Likewise.
3598 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3599 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3600 Mark the pattern statement only if the original statement doesn't
3601 have its own uses.
3602 (process_use): Call vect_mark_relevant with additional parameter.
3603 (vect_mark_stmts_to_be_vectorized): Likewise.
3604 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3605 (vect_analyze_stmt): Handle both pattern and original statements
3606 if necessary.
3607 (vect_transform_stmt): Don't store vectorized pattern statement
3608 in the original statement.
3609 (vect_is_simple_use_1): Use related pattern statement only if the
3610 original statement is irrelevant.
3611 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3612
3613 2011-06-29 Changpeng Fang <changpeng.fang@amd.com>
3614
3615 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3616 option.
3617 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3618 entry.
3619 (TARGET_AVX128_OPTIMAL): New definition.
3620 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3621 X86_TUNE_AVX128_OPTIMAL entry.
3622 (ix86_option_override_internal): Enable the generation
3623 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3624 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3625 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3626
3627 2011-06-29 Eric Botcazou <ebotcazou@adacore.com>
3628
3629 PR tree-optimization/49539
3630 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3631 names by means of stmt_references_abnormal_ssa_name.
3632 (associate_plusminus): Call can_propagate_from before propagating
3633 from definition statements.
3634 (ssa_forward_propagate_and_combine): Remove superfluous newline.
3635
3636 2011-06-29 Richard Guenther <rguenther@suse.de>
3637
3638 * doc/invoke.texi: Document -scev dump modifier.
3639 * tree-pass.h (TDF_SCEV): New dump flag.
3640 * tree-dump.c (dump_option_value_in): Add scev.
3641 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3642 * tree-scalar-evolution.c: Likewise.
3643
3644 2011-06-29 Nathan Sidwell <nathan@codesourcery.com>
3645
3646 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3647 (cxa_type_match): Correct declaration.
3648 (__gnu_unwind_pr_common): Reconstruct additional indirection
3649 when __cxa_type_match returns succeeded_with_ptr_to_base.
3650
3651 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3652
3653 PR rtl-optimization/49114
3654 * reload.c (struct replacement): Remove SUBREG_LOC member.
3655 (push_reload): Do not set it.
3656 (push_replacement): Likewise.
3657 (subst_reload): Remove dead code.
3658 (copy_replacements): Remove assertion.
3659 (copy_replacements_1): Do not handle SUBREG_LOC.
3660 (move_replacements): Likewise.
3661 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
3662 Detect subregs via recursive descent instead of via SUBREG_LOC.
3663
3664 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
3665
3666 * config/avr/avr.c (avr_encode_section_info): Dispatch to
3667 default_encode_section_info.
3668
3669 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
3670
3671 PR tree-optimization/49545
3672 * builtins.c (get_object_alignment_1): Update function comment.
3673 Do not use DECL_ALIGN for functions, but test
3674 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3675 * fold-const.c (get_pointer_modulus_and_residue): Don't check
3676 for functions here.
3677 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3678
3679 2011-06-29 Jakub Jelinek <jakub@redhat.com>
3680
3681 PR debug/49567
3682 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
3683 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
3684
3685 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
3686
3687 PR target/34734
3688 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
3689 about uninitialized data attributed 'progmem' from here...
3690 (avr_encode_section_info): ...to this new function.
3691 (TARGET_ENCODE_SECTION_INFO): New define.
3692 (avr_section_type_flags): For data in ".progmem.data", remove
3693 section flag SECTION_WRITE.
3694
3695 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
3696
3697 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
3698 _xmulhisi3_exit.
3699 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
3700 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
3701 (__umulhisi3): Ditto.
3702 * config/avr/avr.md (mulhisi3): New insn expender.
3703 (umulhisi3): New insn expender.
3704 (*mulhisi3_call): New insn.
3705 (*umulhisi3_call): New insn.
3706
3707 2011-06-28 Joseph Myers <joseph@codesourcery.com>
3708
3709 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
3710
3711 2011-06-28 Richard Henderson <rth@redhat.com>
3712
3713 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
3714 all code and arguments that handled pushes. Update all callers.
3715
3716 2011-06-28 Richard Henderson <rth@redhat.com>
3717
3718 * config/arm/arm.c (arm_output_function_prologue): Don't call
3719 thumb1_output_function_prologue.
3720 (arm_expand_prologue): Avoid dead store.
3721 (number_of_first_bit_set): Use ctz_hwi.
3722 (thumb1_emit_multi_reg_push): New.
3723 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
3724 to emit the entire prologue as rtl.
3725 (thumb1_output_interwork): Split out from
3726 thumb1_output_function_prologue.
3727 (thumb1_output_function_prologue): Remove.
3728 (arm_attr_length_push_multi): Handle thumb1.
3729 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
3730 (prologue_thumb1_interwork): New.
3731 (*push_multi): Allow thumb1; use push_mult_memory_operand.
3732 * config/arm/predicates.md (push_mult_memory_operand): New.
3733
3734 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
3735
3736 * config/sparc/sync.md (*stbar): Delete.
3737 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
3738
3739 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
3740
3741 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
3742
3743 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3744
3745 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
3746 (TARGET_64BIT_DEFAULT): Define.
3747 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
3748 of tm_file.
3749 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
3750
3751 2011-06-28 Joseph Myers <joseph@codesourcery.com>
3752
3753 * common.opt (in_lto_p): New Variable entry.
3754 * flags.h (in_lto_p): Move to common.opt.
3755 * gcc.c: Include params.h.
3756 (set_option_handlers): Also use common_handle_option and
3757 target_handle_option.
3758 (main): Call global_init_params, finish_params and init_options_struct.
3759 * opts.c (debug_type_names): Move from toplev.c.
3760 (print_filtered_help): Access quiet_flag through opts pointer.
3761 (common_handle_option): Return early in the driver for some options.
3762 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
3763 opts pointer.
3764 * toplev.c (in_lto_p): Move to common.opt.
3765 (debug_type_names): Move to opts.c.
3766 * Makefile.in (OBJS): Remove opts.o.
3767 (OBJS-libcommon-target): Add opts.o.
3768 (gcc.o): Update dependencies.
3769
3770 2011-06-28 Kai Tietz <ktietz@redhat.com>
3771
3772 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
3773
3774 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3775
3776 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
3777 with '=' constraint modifier.
3778 (*divdf3_vfp): Likewise.
3779 ("*mulsf3_vfp"): Likewise.
3780 ("*muldf3_vfp"): Likewise.
3781 ("*mulsf3negsf_vfp"): Likewise.
3782 ("*muldf3negdf_vfp"): Likewise.
3783
3784 2011-06-28 Nick Clifton <nickc@redhat.com>
3785
3786 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
3787 relaxation when performing an incremental link.
3788
3789 2011-06-28 Kai Tietz <ktietz@redhat.com>
3790
3791 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
3792 within BB from last to first.
3793
3794 2011-06-28 Joseph Myers <joseph@codesourcery.com>
3795
3796 * genattr-common.c: New. Based on genattr.c.
3797 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
3798 (MOSTLYCLEANFILES): Add insn-attr-common.h.
3799 (opts.o): Update dependencies.
3800 (.PRECIOUS): Add insn-attr-common.h.
3801 (simple_rtl_generated_h): Add insn-attr-common.h.
3802 (build/genattr-common.o): New.
3803 (genprogrtl): Add attr-common.
3804 * genattr.c (main): Include insn-attr-common.h. Don't generate
3805 definitions of DELAY_SLOTS or INSN_SCHEDULING.
3806 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
3807
3808 2011-06-28 Georg-Johann Lay <avr@gjlay.de>
3809
3810 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
3811 avr-*-* and avr-*-rtems* targets.
3812
3813 * config/avr/elf.h: New file.
3814 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
3815 (TARGET_ASM_SELECT_SECTION): Define.
3816 (INIT_SECTION_ASM_OP): Undefine.
3817 (FINI_SECTION_ASM_OP): Undefine.
3818 (READONLY_DATA_SECTION_ASM_OP): Undefine.
3819 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
3820 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
3821 * config/avr/avr.h:
3822 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
3823 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
3824 (MAX_OFILE_ALIGNMENT): Move to elf.h.
3825 (STRING_LIMIT): Move to elf.h.
3826 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
3827 (ASM_DECLARE_OBJECT_NAME): Remove.
3828 (ESCAPES): Remove.
3829 (ASM_OUTPUT_SKIP): Remove.
3830 (DWARF2_DEBUGGING_INFO): Remove.
3831 (OBJECT_FORMAT_ELF): Remove.
3832 (USER_LABEL_PREFIX): Remove.
3833 (ASM_OUTPUT_EXTERNAL): Remove.
3834 (ASM_OUTPUT_ASCII): Remove.
3835 (TYPE_ASM_OP): Remove.
3836 (SIZE_ASM_OP): Remove.
3837 (WEAK_ASM_OP): Remove.
3838 (STRING_ASM_OP): Remove.
3839 (SET_ASM_OP): Remove.
3840 (ASM_WEAKEN_LABEL): Remove.
3841 (TYPE_OPERAND_FMT): Remove.
3842 (ASM_DECLARE_FUNCTION_SIZE): Remove.
3843 (ASM_FINISH_DECLARE_OBJECT): Remove.
3844 (NO_DOLLAR_IN_LABEL): Remove.
3845 (ASM_GENERATE_INTERNAL_LABEL): Remove.
3846 (ASM_OUTPUT_CASE_LABEL): Remove.
3847 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
3848 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
3849 (gas_output_ascii): Remove.
3850 (gas_output_limited_string): Remove.
3851 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
3852 * config/avr/avr-protos.h
3853 (gas_output_ascii): Remove prototye.
3854 (gas_output_limited_string): Remove prototype.
3855
3856 2011-06-27 Richard Earnshaw <rearnsha@arm.com>
3857
3858 PR target/48637
3859 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
3860 asm operands.
3861
3862 2011-06-27 Jan Hubicka <jh@suse.cz>
3863
3864 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
3865 node instead of references in node.
3866
3867 2011-06-27 Richard Henderson <rth@redhat.com>
3868
3869 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
3870 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
3871 inside ifdef.
3872
3873 2011-06-27 Jakub Jelinek <jakub@redhat.com>
3874
3875 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
3876
3877 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
3878 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
3879 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
3880 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
3881 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
3882 (evaluate_stmt, execute_fold_all_builtins): Handle
3883 BUILT_IN_ASSUME_ALIGNED.
3884 * tree-ssa-dce.c (propagate_necessity): Likewise.
3885 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3886 call_may_clobber_ref_p_1): Likewise.
3887 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
3888 (expand_builtin_assume_aligned): New function.
3889 * doc/extend.texi (__builtin_assume_aligned): Document.
3890
3891 PR debug/49544
3892 * cselib.c (promote_debug_loc): If cselib_preserve_constants
3893 and l has two DEBUG_INSN owned locs instead of just one, adjust
3894 the second location's setting_insn too.
3895
3896 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3897
3898 PR libmudflap/38738
3899 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
3900
3901 2011-06-27 Nick Clifton <nickc@redhat.com>
3902
3903 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
3904 bit position of highest bit set into a count of the high zero bits.
3905
3906 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3907
3908 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
3909
3910 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3911
3912 PR lto/48492
3913 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
3914 to a NULL parent.
3915
3916 2011-06-27 Richard Guenther <rguenther@suse.de>
3917
3918 PR tree-optimization/49394
3919 * passes.c (execute_one_pass): Restore current_pass after
3920 applying IPA transforms.
3921
3922 2011-06-27 Kai Tietz <ktietz@redhat.com>
3923
3924 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
3925 out of type precision after operation.
3926 (find_bswap): Take for limit value the integer auto-promotion
3927 into account.
3928
3929 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3930
3931 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
3932 forward scan as well.
3933
3934 2011-06-27 Tristan Gingold <gingold@adacore.com>
3935
3936 PR target/44241
3937 * config/vms/vms-protos.h: New file.
3938 * config/vms/vms-crtlmap.map: New file.
3939 * config/vms/vms.c: New file.
3940 * config/vms/make-crtlmap.awk: New file.
3941 * config/vms/vms-crtl.h: File removed.
3942 * config/vms/vms-crtl-64.h: File removed.
3943 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
3944 * config/alpha/vms64.h: Do not include vms-crtl-64.h
3945 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
3946 clear some builtins on VMS. Calls vms_patch_builtins.
3947 (avms_asm_output_external): Remove.
3948 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
3949 (struct crtl_name_spec): Remove
3950 (DO_CTRL_NAMES): Remove.
3951 * config/ia64/vms.h (struct crtl_name_spec): Remove
3952 (DO_CTRL_NAMES): Remove.
3953 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
3954 clear some builtins on VMS. Calls vms_patch_builtins.
3955 (ia64_asm_output_external): Remove DO_CRTL_NAME.
3956 * config/ia64/vms64.h: Do not include vms-crtl-64.h
3957 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
3958
3959 2011-06-27 Tristan Gingold <gingold@adacore.com>
3960
3961 * config/alpha/alpha.c (alpha_end_function): Always generate .end
3962 directive on VMS.
3963
3964 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3965
3966 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
3967 the function receives nonlocal gotos.
3968
3969 2011-06-27 Richard Guenther <rguenther@suse.de>
3970
3971 PR tree-optimization/49536
3972 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
3973 For non-scalar inner types use a scalar type according to
3974 the scalar inner mode.
3975
3976 2011-06-27 Richard Guenther <rguenther@suse.de>
3977
3978 PR tree-optimization/49365
3979 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
3980
3981 2011-06-27 Richard Guenther <rguenther@suse.de>
3982
3983 PR tree-optimization/49169
3984 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
3985 the alignment of function decls.
3986
3987 2011-06-26 Iain Sandoe <iains@gcc.gnu.org>
3988
3989 PR target/47997
3990 * config/darwin.c (darwin_mergeable_string_section): Place string
3991 constants in '.cstring' rather than '.const' when CF/NSStrings are
3992 active.
3993
3994 2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
3995
3996 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
3997 (emit_save_register_window): Likewise.
3998 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
3999 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
4000 Swap back %o7/%i7 in register naming.
4001
4002 2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
4003
4004 PR driver/49371
4005 * config/darwin.c (darwin_override_options): Improve warning when
4006 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4007 is given with fpie/fPIE.
4008 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4009 * config/darwin9.h (PIE_SPEC): New.
4010
4011 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
4012
4013 * timevar.c (timevar_print): Increase width for display of timevar
4014 name.
4015
4016 2011-06-24 Jakub Jelinek <jakub@redhat.com>
4017
4018 PR c++/46400
4019 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4020 instead of TYPE_CHAIN for chain_next for types.
4021
4022 2011-06-24 Richard Henderson <rth@redhat.com>
4023
4024 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4025 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4026 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4027 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4028 (sparc_flat_expand_prologue): Emit individual instructions
4029 instead of one of the above.
4030
4031 2011-06-24 Easwaran Raman <eraman@google.com>
4032
4033 PR rtl-optimization/49429
4034 PR target/49454
4035 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
4036 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4037 used to copy y into x.
4038 * calls.c (initialize_argument_information): Mark
4039 an argument addressable if it is passed by invisible reference.
4040 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
4041 if it is passed by reference.
4042
4043 2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
4044
4045 PR rtl-optimization/49504
4046 * rtlanal.c (nonzero_bits1): Properly handle addition or
4047 subtraction of a pointer in Pmode if pointers extend unsigned.
4048 (num_sign_bit_copies1): Likewise.
4049
4050 2011-06-24 Martin Jambor <mjambor@suse.cz>
4051
4052 PR tree-optimizations/49516
4053 * tree-sra.c (sra_modify_assign): Choose the safe path for
4054 aggregate copies if we also did scalar replacements.
4055
4056 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4057
4058 PR target/49335
4059 * config/arm/predicates.md (add_operator): New.
4060 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
4061
4062 2011-06-24 Andi Kleen <ak@linux.intel.com>
4063
4064 * tree-sra.c (type_internals_preclude_sra_p): Add msg
4065 parameter. Split up ifs and report reason in *msg.
4066 (reject): Add.
4067 (find_var_candiate): Add msg variable.
4068 Split up ifs and report reason to reject.
4069 (find_param_candidates): Add msg variable.
4070 Pass msg to type_internals_preclude_sra_p.
4071
4072 2011-06-23 Jeff Law <law@redhat.com>
4073
4074 PR middle-end/48770
4075 * reload.h (reload): Change to return a bool.
4076 * ira.c (ira): If requested by reload, run a fast DCE pass after
4077 reload has completed. Fix comment typo.
4078 * reload1.c (need_dce): New file scoped static.
4079 (reload): Set reload_completed here. Return whether or not a DCE
4080 pass after reload is needed.
4081 (delete_dead_insn): Set need_dce as needed.
4082
4083 PR middle-end/49465
4084 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4085 to detect threading through joiner block. If there was already
4086 an edge to the new target, then do not change the PHI nodes.
4087
4088 2011-06-23 Jakub Jelinek <jakub@redhat.com>
4089
4090 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4091 get_pointer_alignment to see if base isn't sufficiently aligned.
4092
4093 2011-06-23 Jan Hubicka <jh@suse.cz>
4094
4095 PR tree-optimize/49373
4096 * tree-pass.h (all_late_ipa_passes): Declare.
4097 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4098 (cgraph_optimize): Execute late passes; remove unreachable funcions
4099 after materialization.
4100 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4101 LTOing.
4102 * passes.c (all_late_ipa_passes): Declare.
4103 (dump_passes, register_pass): Handle late ipa passes.
4104 (init_optimization_passes): Move ipa_pta to late passes; schedule
4105 fixup_cfg at beggining of all_passes.
4106 (apply_ipa_transforms): New function.
4107 (execute_one_pass): When doing simple ipa pass, apply all transforms.
4108
4109 2011-06-23 Joseph Myers <joseph@codesourcery.com>
4110
4111 * params.c: Include common/common-target.h. Don't include tm.h.
4112 (lang_independent_params): Move from toplev.c.
4113 (global_init_params): New.
4114 * params.h (global_init_params): Declare.
4115 * target.def (default_params): Move to common-target.def.
4116 * toplev.c (lang_independent_options): Remove.
4117 (lang_independent_params): Move to params.c.
4118 (general_init): Use global_init_params.
4119 * common/common-target.def (option_default_params): Move from
4120 target.def.
4121 * common/config/ia64/ia64-common.c: Include params.h.
4122 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4123 from ia64.c.
4124 * common/config/rs6000/rs6000-common.c: Include params.h.
4125 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4126 from rs6000.c.
4127 * common/config/sh/sh-common.c: Include params.h.
4128 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4129 from sh.c.
4130 * common/config/spu/spu-common.c: Include params.h.
4131 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4132 from spu.c.
4133 * config/ia64/ia64.c (ia64_option_default_params,
4134 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4135 * config/rs6000/rs6000.c (rs6000_option_default_params,
4136 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4137 * config/sh/sh.c (sh_option_default_params,
4138 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4139 * config/spu/spu.c (spu_option_default_params,
4140 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4141 * Makefile.in (OBJS): Remove params.o.
4142 (OBJS-libcommon-target): Add params.o.
4143 (params.o, $(common_out_object_file)): Update dependencies.
4144 * doc/tm.texi: Regenerate.
4145
4146 2011-06-23 Alan Modra <amodra@gmail.com>
4147
4148 PR bootstrap/49383
4149 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4150 invocation for 2011-06-09 changes.
4151
4152 2011-06-22 Jakub Jelinek <jakub@redhat.com>
4153
4154 PR libgomp/49490
4155 * omp-low.c (expand_omp_for_static_nochunk): Only
4156 use n ceil/ nthreads size for the first n % nthreads threads in the
4157 team instead of all threads except for the last few ones which
4158 get less work or none at all.
4159
4160 PR debug/49496
4161 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4162 uses.
4163
4164 2011-06-22 Richard Guenther <rguenther@suse.de>
4165
4166 PR tree-optimization/49493
4167 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4168 Refer to the alias target of variables.
4169 (associate_varinfo_to_alias_1): Remove.
4170 (ipa_pta_execute): Do not associate aliases with anything.
4171 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4172 (cgraph_function_node): Likewise.
4173 (cgraph_function_or_thunk_node): Likewise.
4174 (varpool_variable_node): Likewise.
4175
4176 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4177
4178 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
4179 * config.gcc (arm*-*-linux*): Default to gnu tls.
4180 (arm*-*-*): Add --with-tls option.
4181 (all_defaults): Add 'tls'.
4182
4183 2011-06-22 Richard Henderson <rth@redhat.com>
4184
4185 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4186 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4187 (dwarf2out_frame_debug_cfa_window_save): Rename from
4188 dwarf2out_window_save; make static.
4189 * tree.h (dwarf2out_window_save): Don't declare.
4190
4191 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4192 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4193 (emit_save_register_window): Rename from gen_save_register_window;
4194 emit the insn and add REG_CFA_* notes.
4195 (sparc_expand_prologue): Update to match.
4196 * config/sparc/sparc.md (save_register_window_1): Simplify from
4197 save_register_window<P:mode>.
4198
4199 2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
4200
4201 PR target/49497
4202 * config/i386/i386.md (*lea_general_2): Always allow SImode.
4203 (*lea_general_2_zext): Likewise.
4204 (imul to lea peepholes): Use const359_operand and check
4205 TARGET_PARTIAL_REG_STALL.
4206
4207 * config/i386/predicates.md (const359_operand): New.
4208
4209 2011-06-22 Michael Matz <matz@suse.de>
4210
4211 * cgraphunit.c (assemble_thunk): Use correct return type.
4212
4213 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
4214 Dmitry Melnik <dm@ispras.ru>
4215
4216 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4217 (neon_output_shift_immediate): Ditto.
4218 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4219 prototype.
4220 (neon_output_shift_immediate): Ditto.
4221 * config/arm/neon.md (vashl<mode>3): Modified constraint.
4222 (vashr<mode>3_imm): New insn pattern.
4223 (vlshr<mode>3_imm): Ditto.
4224 (vashr<mode>3): Modified constraint.
4225 (vlshr<mode>3): Ditto.
4226 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4227 predicate.
4228 (imm_for_neon_rshift_operand): Ditto.
4229 (imm_lshift_or_reg_neon): Ditto.
4230 (imm_rshift_or_reg_neon): Ditto.
4231
4232 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4233
4234 2011-06-22 Jakub Jelinek <jakub@redhat.com>
4235
4236 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4237 builtin calls even if likelyvalue is not CONSTANT.
4238 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4239 Return get_value_for_expr of first operand
4240 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4241 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4242 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4243 their non-checking counterparts.
4244 (call_may_clobber_ref_p_1): Likewise.
4245 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4246 like their non-checking counterparts.
4247 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4248 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4249 like their non-checking counterparts.
4250 (find_func_clobbers): Likewise.
4251 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4252 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4253
4254 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4255 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4256 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4257 of base type reference as argument.
4258 (resolve_addr_in_expr): Likewise. Fix keep computation.
4259 (convert_descriptor_to_signed): Renamed to...
4260 (convert_descriptor_to_mode): ... this. For wider types convert to
4261 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
4262 (typed_binop): New function.
4263 (scompare_loc_descriptor, ucompare_loc_descriptor,
4264 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4265 default to unsigned type instead of signed.
4266
4267 PR debug/47858
4268 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4269 (gimple_build_debug_source_bind_stat): New prototype.
4270 (gimple_build_debug_source_bind): Define.
4271 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4272 gimple_debug_source_bind_get_value,
4273 gimple_debug_source_bind_get_value_ptr,
4274 gimple_debug_source_bind_set_var,
4275 gimple_debug_source_bind_set_value): New inlines.
4276 * gimple.c (gimple_build_debug_source_bind_stat): New function.
4277 * gimple-pretty-print.c (dump_gimple_debug): Handle
4278 GIMPLE_DEBUG_SOURCE_BIND.
4279 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4280 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4281 * tree-parloops.c (eliminate_local_variables,
4282 separate_decls_in_region): Likewise.
4283 (separate_decls_in_region_debug): Renamed from
4284 separate_decls_in_region_debug_bind. Handle
4285 gimple_debug_source_bind_p.
4286 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4287 prototypes.
4288 (DECL_HAS_DEBUG_ARGS_P): Define.
4289 (struct tree_function_decl): Add has_debug_args_flag field.
4290 * tree.c (debug_args_for_decl): New variable.
4291 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4292 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4293 (rewrite_debug_stmt_uses): New function.
4294 (rewrite_stmt): Use it to rewrite debug stmt uses.
4295 * rtl.def (DEBUG_PARAMETER_REF): New.
4296 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4297 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4298 DEBUG_PARAMETER_REF.
4299 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4300 * print-rtl.c (print_rtx): Likewise.
4301 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4302 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4303 debug stmts in the first bb.
4304 * tree-inline.c (remap_ssa_name): If remapping default def
4305 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4306 a source bind debug stmt.
4307 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4308 (maybe_move_debug_stmts_to_successors): Likewise.
4309 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
4310 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4311 debug args vector from old_decl to new_decl.
4312 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4313 or modified parameters, add debug bind stmts before call
4314 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
4315 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4316 on DECL_DEBUG_EXPRs from debug args vector.
4317 (expand_debug_source_expr): New function.
4318 (expand_debug_locations): Use it for source bind insns.
4319 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4320 * var-tracking.c (prepare_call_arguments): Add debug args
4321 to call_arguments if any.
4322 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
4323 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4324 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
4325 (get_ref_die_offset, parameter_ref_descriptor): New functions.
4326 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4327 (gen_subprogram_die): Handle parameters identified by
4328 DEBUG_PARAMETER_REF.
4329
4330 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4331
4332 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4333 * doc/install.texi (Configuration): Document --with-tls.
4334 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4335 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4336 (arm_tls_descseq_addr): New.
4337 (legitimize_tls_address): Add tlsdesc support.
4338 (arm_cannot_copy_insn_p): Check for tlscall.
4339 (arm_emit_tls_decoration): Likewise.
4340 * config/arm/arm.h (TARGET_GNU2_TLS): New.
4341 (OPTION_DEFAULT_SPECS): Add with-tls support.
4342 * config/arm/arm.md (R1_REGNUM): Define.
4343 (tlscall): New.
4344 * config/arm/arm.opt (tls_type): New enumeration type and values.
4345 (mtls-dialect): New switch.
4346 * config/arm/arm-opts.h (enum tls_type): New.
4347
4348 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
4349
4350 * attribs.c (register_attribute): Added assert to check that all
4351 attribute specs are registered with a name that is not empty and
4352 does not start with '_'.
4353 (decl_attributes): Avoid the lookup of the "naked" attribute spec
4354 if the function has no attributes.
4355 * tree.c (is_attribute_with_length_p): Removed.
4356 (is_attribute_p): Removed.
4357 (private_is_attribute_p): New.
4358 (private_lookup_attribute): New.
4359 (lookup_attribute): Removed.
4360 (lookup_ident_attribute): New.
4361 (remove_attribute): Require the first argument to be in the form
4362 'text', not '__text__'. Updated asserts.
4363 (merge_attributes): Use lookup_ident_attributes instead of
4364 lookup_attribute.
4365 (merge_dllimport_decl_attributes): Use remove_attribute.
4366 (attribute_list_contained): Likewise.
4367 (attribute_list_equal): Immediately return 1 if the arguments are
4368 identical pointers.
4369 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
4370 'int'. Require the first argument to be in the form 'text', not
4371 '__text__'. Require the second argument to be an identifier.
4372 (lookup_attribute): Made inline. Require the first argument to be
4373 in the form 'text', not '__text__'.
4374 (private_is_attribute_p, private_lookup_attribute): New.
4375 Updated comments.
4376
4377 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
4378
4379 * builtins.c: Add sync_ or SYNC__ to builtin names.
4380 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
4381 * omp-low.c: Add sync_ or SYNC__ to builtin names.
4382
4383 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
4384
4385 PR target/33049
4386 * config/avr/avr.md (extzv): New expander.
4387 (*extzv): New insn.
4388 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
4389 * config/avr/constraints.md (C04): New constraint.
4390 * doc/md.texi (Machine Constraints): Document it.
4391
4392 2011-06-21 Jakub Jelinek <jakub@redhat.com>
4393
4394 PR middle-end/49489
4395 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
4396 unsignedp argument instead of 1 for clrsb_optab.
4397 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
4398 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
4399 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
4400 * optabs.c (widen_leading): Call widen_operand and expand_unop
4401 with 0 as unsignedp argument instead of 1 for clrsb_optab.
4402 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
4403
4404 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
4405
4406 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
4407
4408 2011-06-21 Bernd Schmidt <bernds@codesourcery.com>
4409
4410 * gensupport.c (add_define_attr): New static function.
4411 (is_predicable): Allow multi-alternative lists for the "predicable"
4412 attribute.
4413 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
4414 (process_one_cond_exec): Call alter_attrs_for_insn.
4415 * doc/md.texi (Defining Attributes): Mention some standard names.
4416 (Conditional Execution): Update documentation for "predicable".
4417
4418 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
4419 __builtin_clrsbll): Document.
4420 * doc/rtl.texi (clrsb): New entry.
4421 * optabs.c (widen_leading): Renamed from widen_clz. New argument
4422 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
4423 (expand_unop): Handle clrsb_optab.
4424 (init_optabs): Initialize it.
4425 * optabs.h (enum optab_index): New entry OTI_clrsb.
4426 (clrsb_optab): Define.
4427 * genopinit.c (optabs): Add an entry for it.
4428 * builtins.c (expand_builtin): Handle clrsb builtin functions.
4429 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4430 BUILT_IN_CLRSBLL): New.
4431 * rtl.def (CLRSB): New code.
4432 * dwarf2out.c (mem_loc_descriptor): Handle it.
4433 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4434 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4435 and popcount.
4436 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4437 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4438 (__ctzDI2): Move declaration.
4439 * config/bfin/bfin.md (clrsbsi2): New expander.
4440 (signbitssi2): Use the CLRSB rtx.
4441 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
4442 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4443
4444 2011-06-21 Richard Guenther <rguenther@suse.de>
4445
4446 * ipa-inline-transform.c (inline_transform): Fix previous change.
4447
4448 2011-06-21 Ira Rosen <ira.rosen@linaro.org>
4449
4450 PR tree-optimization/49478
4451 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4452 with constant operand.
4453
4454 2011-06-21 Richard Guenther <rguenther@suse.de>
4455
4456 * ipa-inline-transform.c (inline_transform): Fix typo.
4457
4458 2011-06-21 Richard Guenther <rguenther@suse.de>
4459
4460 PR tree-optimization/49483
4461 * tree-vect-stmts.c (vectorizable_assignment): Also handle
4462 VIEW_CONVERT_EXPR conversions.
4463
4464 2011-06-21 Joseph Myers <joseph@codesourcery.com>
4465
4466 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4467 * config/avr/avr-tables.opt: New file (generated).
4468 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4469 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4470 avr-mcus.def.
4471 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4472 (avr_option_override): Don't process -mmcu= argument here. Set
4473 avr_current_device using avr_mcu_index.
4474 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
4475 * config/avr/avr.opt (mmcu=): Use Enum.
4476 * config/avr/t-avr (avr-devices.o): Update dependencies.
4477 ($(srcdir)/config/avr/avr-tables.opt): New.
4478 * target.def (help): Remove.
4479 * doc/tm.texi.in (TARGET_HELP): Remove.
4480 * doc/tm.texi: Regenerate.
4481 * opts.c: Don't include target.h.
4482 (common_handle_option): Don't call targetm.help.
4483 * system.h (TARGET_HELP): Poison.
4484 * Makefile.in (opts.o): Update dependencies.
4485
4486 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4487
4488 * config/usegld.h: New file.
4489 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4490 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
4491 (LIB_SPEC): Likewise. Search /lib.
4492 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4493 (RDYNAMIC_SPEC): Handle GNU ld.
4494 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4495 Define.
4496 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4497 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4498 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4499 (STACK_CHECK_STATIC_BUILTIN): Define.
4500 * config/sol2.opt (compat-bsd): Remove.
4501 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4502 * config/sol2-bi.h: New file.
4503 * config/sol2-gld.h: Remove.
4504 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4505 (NO_DBX_BNSYM_ENSYM): Remove.
4506 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4507 (STACK_CHECK_STATIC_BUILTIN): Remove.
4508 Test USE_GLD instead of TARGET_GNU_LD.
4509 * config/i386/sol2-10.h: Rename to ...
4510 * config/i386/sol2-bi.h .. this.
4511 (SUBTARGET_EXTRA_SPECS): Redefine.
4512 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4513 (MULTILIB_DEFAULTS): Remove.
4514 (DEFAULT_ARCH32_P): Define.
4515 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4516 (ARCH64_SUBDIR): Define.
4517 Test USE_GLD instead of TARGET_GNU_LD.
4518 (I386_EMULATION): Rename to ...
4519 (ARCH32_EMULATION): ... this.
4520 (X86_64_EMULATION): Rename to ...
4521 (ARCH64_EMULATION): ... this.
4522 (TARGET_LD_EMULATION): Remove.
4523 (LINK_ARCH_SPEC): Remove.
4524 * config/i386/sol2-gas.h: Remove.
4525 * config/i386/t-sol2-10: Rename to ...
4526 * config/i386/t-sol2-64: ... this.
4527 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4528 (AS_SPARC64_FLAG): Define.
4529 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4530 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4531 depending on TARGET_CPU_DEFAULT.
4532 (CPP_CPU_SPEC): Redefine.
4533 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4534 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4535 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4536 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4537 ASM_ARCH_DEFAULT_SPEC): Redefine.
4538 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4539 LINK_ARCH_DEFAULT_SPEC.
4540 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4541 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4542 (ARCH64_SUBDIR): Define.
4543 (LINK_ARCH64_SPEC): Redefine.
4544 (CC1_SPEC): Redefine.
4545 (OPTION_DEFAULT_SPECS): Redefine.
4546 (MULTILIB_DEFAULTS): Define.
4547 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4548 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4549 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4550 (NO_DBX_BNSYM_ENSYM): Remove.
4551 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4552 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4553 (TARGET_ASM_NAMED_SECTION): Likewise.
4554 (STACK_CHECK_STATIC_BUILTIN): Remove.
4555 * config/sparc/sol2-bi.h: Remove.
4556 * config/sparc/sol2-gas-bi.h: Remove.
4557 * config/sparc/sol2-gas.h: Remove.
4558 * config/sparc/sol2-gld-bi.h: Remove.
4559 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4560 common parts ...
4561 (*-*-solaris2*): ... here.
4562
4563 2011-06-21 Christian Bruel <christian.bruel@st.com>
4564
4565 PR other/43564
4566 * ipa-inline.c (can_inline_edge_p): Check
4567 !DECL_DISREGARD_INLINE_LIMITS.
4568
4569 2011-06-21 Christian Bruel <christian.bruel@st.com>
4570
4571 PR middle-end/49139
4572 * cgraphunit.c (process_function_and_variable_attributes): warn when
4573 always_inline functions that are not inline.
4574 * ipa-inline-transform.c (inline_transform): Always call
4575 optimize_inline.
4576 * tree-inline.c (tree_inlinable_function_p): Use error instead
4577 of sorry.
4578 (expand_call_inline): Likewise.
4579
4580 2011-06-21 Jakub Jelinek <jakub@redhat.com>
4581
4582 * Makefile.in (dg_target_exps): Set.
4583 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4584 instead of 7, try to divide it more evenly.
4585
4586 2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
4587
4588 PR target/49089
4589 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4590 (avx256_split_unaligned_store): New definition.
4591 (ix86_option_override_internal): Enable avx256 unaligned load/store
4592 splitting only when avx256_split_unaligned_load/store is set.
4593
4594 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4595
4596 * regrename.c (scan_rtx_reg): Handle the case where we write to an
4597 open chain in a smaller mode without failing the entire block.
4598
4599 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
4600
4601 PR middle-end/47725
4602 * combine.c (cant_combine_insn_p): Don't check zero/sign
4603 extended hard registers.
4604
4605 2011-06-21 Alan Modra <amodra@gmail.com>
4606
4607 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4608 CONST high part large-toc address.
4609 (rs6000_tls_referenced_p): Make static.
4610 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4611
4612 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
4613
4614 PR middle-end/47725
4615 * combine.c (cant_combine_insn_p): Check zero/sign extended
4616 hard registers.
4617
4618 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4619
4620 PR target/49385
4621 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4622 one of the operands is a register.
4623
4624 2011-06-20 Kai Tietz <ktietz@redhat.com>
4625
4626 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4627 operations in combination with binary and.
4628
4629 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4630
4631 * regrename.c (do_replace): Don't update notes.
4632
4633 2011-06-20 Alan Modra <amodra@gmail.com>
4634
4635 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4636 of toc-relative address in CONST.
4637 (rs6000_delegitimize_address): Recognize changed address.
4638 (rs6000_legitimize_reload_address): Likewise.
4639 (rs6000_emit_move): Don't force these constants to memory.
4640 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4641 toc-relative address in CONST.
4642 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4643 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4644
4645 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4646
4647 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
4648 (count_trailing_zeros): Likewise.
4649
4650 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4651
4652 PR other/49325
4653 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4654 .init_array can be used with .ctors on targets.
4655 * configure: Regenerated.
4656
4657 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4658
4659 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4660 if the element type is volatile.
4661
4662 2011-06-18 Jan Hubicka <jh@suse.cz>
4663
4664 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4665 extra name aliases.
4666 (lto_symtab_resolve_can_prevail_p): Likewise.
4667 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4668 * cgraphbuild.c (record_reference): Remove extra body alias code.
4669 (mark_load): Likewise.
4670 (mark_store): Likewise.
4671 * cgraph.h (varpool_node): Remove extra_name filed;
4672 add alias_of and extraname_alias.
4673 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4674 (varpool_alias_aliased_node): New inline function.
4675 (varpool_variable_node): New function.
4676 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4677 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4678 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4679 (input_varpool_node): Likewise.
4680 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4681 (varpool_externally_visible_p): Remove extra body alias code.
4682 (function_and_variable_visibility): Likewise.
4683 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4684 (ipa_pta_execute): Use it.
4685 * varpool.c (varpool_remove_node): Remove extra name alias code.
4686 (varpool_mark_needed_node): Likewise.
4687 (varpool_analyze_pending_decls): Analyze aliases.
4688 (assemble_aliases): New functoin.
4689 (varpool_assemble_decl): Use it.
4690 (varpool_create_variable_alias): New function.
4691 (varpool_extra_name_alias): Rewrite.
4692 (varpool_for_node_and_aliases): New function.
4693
4694 2011-06-18 Jakub Jelinek <jakub@redhat.com>
4695
4696 PR target/49411
4697 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
4698 last_arg_constant and last argument doesn't match its predicate,
4699 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
4700 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
4701 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
4702 spelling of error message.
4703 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
4704 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
4705 const_0_to_255_operand instead of const_int_operand.
4706
4707 Revert:
4708 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4709
4710 * config/i386/sse.md (blendbits): Remove mode attribute.
4711 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4712 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4713 Check integer value of operand 3 in insn constraint.
4714
4715 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
4716
4717 PR rtl-optimization/48542
4718 * reload.c (find_equiv_reg): Stop looking when finding a
4719 setjmp-type call.
4720 * reload1.c (reload_as_needed): Invalidate all reload
4721 registers when crossing a setjmp-type call.
4722
4723 2011-06-16 Jeff Law <law@redhat.com>
4724
4725 * tree-ssa-threadupdate.c (struct redirection_data): New field
4726 intermediate_edge.
4727 (THREAD_TARGET2): Define.
4728 (redirection_data_eq): Also check that the intermediate edge is equal.
4729 (lookup_redirection_data): Drop useless argument. Extract the
4730 outgoing_edge and intermediate edge from E. Callers updated.
4731 (copy_phi_args, update_destination_phis): New functions.
4732 (fix_duplicate_block_edges): Likewise.
4733 (create_edge_and_update_destination_phis): Duplicate all the edges
4734 hung off e->aux. Use copy_phi_args.
4735 (create_duplicates): Use fix_duplicate_block_edges.
4736 (fixup_template_block): Likewise.
4737 (redirect_edges): If necessary, redirect the joiner block's incoming
4738 edge to the duplicate of the joiner block.
4739 (thread_block): Don't muck up loops when threading through a joiner
4740 block.
4741 (thread_through_loop_header): Handle threading through a joiner block.
4742 (mark_threaded_blocks, register_jump_thread): Likewise.
4743 * tree-flow.h (register_jump_thread): Add new argument. Callers
4744 updated.
4745 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
4746 (thread_across_edge): Handle threading through a joiner block.
4747
4748 2011-06-16 Martin Jambor <mjambor@suse.cz>
4749
4750 PR tree-optimization/49343
4751 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
4752 calculate offset, provide 2nd operand for the new COMPONENT_REF.
4753
4754 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
4755
4756 * config/darwin-protos.h (machopic_select_rtx_section): Move to
4757 inside RTX_CODE ifdef.
4758
4759 2011-06-16 Tom de Vries <tom@codesourcery.com>
4760
4761 PR target/45098
4762 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
4763 Disallow NULL pointer for pointer arithmetic.
4764
4765 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4766
4767 PR target/49398
4768 Revert.
4769 2011-06-10 Wei Guozhi <carrot@google.com>
4770
4771 PR target/45335
4772 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4773 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4774 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4775 related peephole2.
4776 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4777 related peephole2.
4778 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4779 (arm_legitimate_ldrd_p): New prototype.
4780 (arm_output_ldrd): New prototype.
4781 * config/arm/arm.c (arm_check_ldrd_operands): New function.
4782 (arm_legitimate_ldrd_p): New function.
4783 (arm_output_ldrd): New function.
4784
4785 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
4786
4787 PR middle-end/46500
4788 * doc/tm.texi.in: Update Copyright date.
4789 * doc/tm.texi: Regenerate.
4790 * targhooks.c (default_setup_incoming_varargs): Replace
4791 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4792 (default_pretend_outgoing_varargs_named): Likewise.
4793 (hook_pass_by_reference_must_pass_in_stack): Likewise.
4794 (hook_callee_copies_named): Likewise.
4795 (default_function_arg_advance): Likewise.
4796 (default_function_arg): Likewise.
4797 (default_function_incoming_arg): Likewise.
4798 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4799 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4800 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4801 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4802 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4803 * targhooks.h (default_setup_incoming_varargs): Likewise.
4804 (default_pretend_outgoing_varargs_named): Likewise.
4805 (hook_pass_by_reference_must_pass_in_stack): Likewise.
4806 (hook_callee_copies_named): Likewise.
4807 (default_function_arg_advance): Likewise.
4808 (default_function_arg): Likewise.
4809 (default_function_incoming_arg): Likewise.
4810 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4811 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4812 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4813 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4814 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4815 * target.def (pass_by_reference): Likewise.
4816 (setup_incoming_varargs, strict_argument_naming): Likewise.
4817 (pretend_outgoing_varargs_named, callee_copies): Likewise.
4818 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
4819 (function_incoming_arg): Likewise.
4820 * target.h: Don't include "tm.h" .
4821 (cumulative_args_t): New typedef.
4822 [GCC_TM_H] (get_cumulative_args): New static inline function.
4823 [GCC_TM_H] (pack_cumulative_args): Likewise.
4824 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
4825 argument type with cumulative_args_t.
4826 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
4827 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
4828 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4829 (frv_arg_partial_bytes, frv_function_arg): Likewise.
4830 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
4831 (frv_function_arg_1): Likewise.
4832 * config/s390/s390.c (s390_pass_by_reference): Likewise.
4833 (s390_function_arg_advance, s390_function_arg): Likewise.
4834 * config/m32c/m32c.c (m32c_function_arg): Likewise.
4835 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
4836 (m32c_strict_argument_naming): Likewise.
4837 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
4838 (spu_function_arg_advance): Likewise.
4839 (spu_setup_incoming_varargs): Likewise. Make static.
4840 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
4841 Remove prototype.
4842 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
4843 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4844 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
4845 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
4846 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
4847 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
4848 (mep_pass_by_reference, mep_function_arg): Likewise.
4849 (mep_function_arg_advance): Likewise.
4850 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4851 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
4852 (m32r_function_arg, m32r_function_arg_advance): Likewise.
4853 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
4854 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4855 (ix86_function_arg, ix86_pass_by_reference): Likewise.
4856 (ix86_setup_incoming_varargs): Likewise.
4857 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4858 (sh_strict_argument_naming): Likewise.
4859 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
4860 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
4861 (sh_function_arg_advance, sh_function_arg): Likewise.
4862 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4863 (pdp11_function_arg_advance): Likewise.
4864 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4865 Likewise.
4866 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
4867 * config/avr/avr.c (avr_function_arg): Likewise.
4868 (avr_function_arg_advance): Likewise.
4869 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
4870 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
4871 (xtensa_function_arg_1): Likewise.
4872 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
4873 Likewise.
4874 (xstormy16_function_arg): Likewise.
4875 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4876 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
4877 (fr30_function_arg_advance): Likewise.
4878 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4879 (lm32_function_arg, lm32_function_arg_advance): Likewise.
4880 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4881 (moxie_function_arg, moxie_function_arg_advance): Likewise.
4882 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
4883 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4884 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
4885 (cris_function_arg, cris_function_incoming_arg): Likewise.
4886 (cris_function_arg_advance, cris_function_arg_1): Likewise.
4887 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4888 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
4889 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
4890 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4891 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
4892 (mn10300_arg_partial_bytes): Likewise.
4893 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4894 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
4895 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
4896 (ia64_function_arg_1): Likewise.
4897 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4898 (m68k_function_arg): Likewise.
4899 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
4900 (rs6000_function_arg, setup_incoming_varargs): Likewise.
4901 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
4902 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
4903 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
4904 (picochip_arg_advance): Likewise.
4905 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4906 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
4907 (mcore_function_arg_advance): Likewise.
4908 * config/score/score.c (score_pass_by_reference): Likewise.
4909 (score_function_arg_advance): Likewise.
4910 (score_arg_partial_bytes): Likewise. Make static.
4911 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
4912 * config/arm/arm.c (arm_arg_partial_bytes): Replace
4913 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4914 (arm_function_arg, arm_function_arg_advance): Likewise.
4915 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
4916 * config/pa/pa.c (pa_pass_by_reference): Likewise.
4917 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
4918 (pa_function_arg): Likewise.
4919 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
4920 (mips_function_arg, mips_function_arg_advance): Likewise.
4921 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
4922 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
4923 * config/vax/vax.c (vax_function_arg): Likewise.
4924 (vax_function_arg_advance): Likewise.
4925 * config/h8300/h8300.c (h8300_function_arg): Likewise.
4926 (h8300_function_arg_advance): Likewise.
4927 * config/v850/v850.c (v850_pass_by_reference): Likewise.
4928 (v850_strict_argument_naming, v850_function_arg): Likewise.
4929 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
4930 (v850_setup_incoming_varargs): Likewise.
4931 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4932 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
4933 (mmix_function_arg, mmix_pass_by_reference): Likewise.
4934 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
4935 with const void *.
4936 * config/bfin/bfin.c (setup_incoming_varargs): Replace
4937 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4938 (bfin_function_arg_advance, bfin_function_arg): Likewise.
4939 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
4940 * calls.c (emit_call_1): Change type of args_so_far to
4941 cumulative_args_t. Changed all callers.
4942 (initialize_argument_information): Likewise.
4943 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
4944 * dse.c (get_call_args): Likewise.
4945 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4946 * function.c (pass_by_reference, reference_callee_copied): Likewise.
4947 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
4948 New member args_so_far_v. Changed all users.
4949 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
4950 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4951 * config/mips/mips.c (mips_output_args_xfer): Likewise.
4952 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4953 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4954 * config/microblaze/microblaze.c (microblaze_expand_prologue):
4955 Likewise.
4956 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
4957 m32r_pass_by_reference.
4958
4959 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
4960
4961 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
4962 argument to be a VEC of statements.
4963 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
4964 assert that pattern statements have to have their vector type set.
4965 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
4966 Change the first argument to be a VEC of statements. Update
4967 documentation.
4968 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
4969 (vect_handle_widen_mult_by_const): New function.
4970 (vect_recog_widen_mult_pattern): Change the first argument to be a
4971 VEC of statements. Update documentation. Check that the constant is
4972 INTEGER_CST. Support multiplication by a constant that fits an
4973 intermediate type - call vect_handle_widen_mult_by_const.
4974 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
4975 call. Handle additional pattern statements if necessary.
4976
4977 2011-06-16 Nick Clifton <nickc@redhat.com>
4978
4979 PR target/49427
4980 * config.gcc: Set cpu_type to v850 for any V850 architecture.
4981 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
4982 md_file, extra_modes, out_file and extra_options are these are all
4983 deduced from cpu_type.
4984
4985 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
4986
4987 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
4988 truncation mask to 63.
4989
4990 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
4991
4992 PR target/49313
4993 PR target/29524
4994 * longlong.h: Add AVR support:
4995 (count_leading_zeros): New macro.
4996 (count_trailing_zeros): New macro.
4997 (COUNT_LEADING_ZEROS_0): New macro.
4998 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
4999 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5000 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5001 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
5002 (LIB2FUNCS_EXCLUDE): Add _clz.
5003 * config/avr/libgcc.S (XCALL): Move up in file.
5004 (XJMP): New C Macro.
5005 (DEFUN): New asm macro.
5006 (ENDF): New asm macro.
5007 (__ffssi2): New function.
5008 (__ffshi2): New function.
5009 (__loop_ffsqi2): New function.
5010 (__ctzsi2): New function.
5011 (__ctzhi2): New function.
5012 (__clzdi2): New function.
5013 (__clzsi2): New function.
5014 (__clzhi2): New function.
5015 (__paritydi2): New function.
5016 (__paritysi2): New function.
5017 (__parityhi2): New function.
5018 (__parityqi2): New function.
5019 (__popcounthi2): New function.
5020 (__popcountsi2): New function.
5021 (__popcountdi2): New function.
5022 (__popcountqi2): New function.
5023 (__bswapsi2): New function.
5024 (__bswapdi2): New function.
5025 (__ashldi3): New function.
5026 (__ashrdi3): New function.
5027 (__lshrdi3): New function.
5028 Fix suspicous lines.
5029
5030 2011-06-16 Richard Guenther <rguenther@suse.de>
5031
5032 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5033 the same as x != 0.
5034 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5035 to (bool) X & 1.
5036 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5037 equality compares against zero for the lower bit.
5038
5039 2011-06-16 Jakub Jelinek <jakub@redhat.com>
5040
5041 PR tree-optimization/49419
5042 * tree-vrp.c (execute_vrp): Call init_range_assertions
5043 before estimate_numbers_of_iterations, call
5044 free_number_of_iterations_estimates before calling
5045 remove_range_assertions.
5046
5047 2011-06-16 Revital Eres <revital.eres@linaro.org>
5048
5049 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5050 (struct partial_schedule): Add rows_length field.
5051 (verify_partial_schedule): Check rows_length.
5052 (ps_insert_empty_row): Handle rows_length.
5053 (create_partial_schedule): Likewise.
5054 (free_partial_schedule): Likewise.
5055 (reset_partial_schedule): Likewise.
5056 (create_ps_insn): Remove rest_count argument.
5057 (remove_node_from_ps): Update rows_length.
5058 (add_node_to_ps): Update rows_length and call create_ps_insn
5059 without passing row_rest_count.
5060 (rotate_partial_schedule): Update rows_length.
5061
5062 2011-06-16 Revital Eres <revital.eres@linaro.org>
5063
5064 * ddg.c (add_intra_loop_mem_dep): New function.
5065 (build_intra_loop_deps): Call it.
5066
5067 2011-06-13 Jeff Law <law@redhat.com>
5068
5069 * df-problems.c (df_lr_local_compute): Manually CSE
5070 PIC_OFFSET_TABLE_REGNUM.
5071 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5072 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5073
5074 2011-06-13 Jan Hubicka <jh@suse.cz>
5075
5076 * cgraphunit.c (handle_alias_pairs): New function.
5077 (cgraph_finalize_compilation_unit): Use it.
5078 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5079 as externally visible.
5080
5081 2011-06-15 Richard Guenther <rguenther@suse.de>
5082
5083 * expr.c (expand_expr_real_2): Reduce all integral types to
5084 bitfield precision.
5085 (expand_expr_real_1): Likewise.
5086
5087 2011-06-15 Martin Jambor <mjambor@suse.cz>
5088
5089 PR tree-optimization/48613
5090 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5091 ipa_node_params_vector is NULL.
5092
5093 2011-06-15 Jakub Jelinek <jakub@redhat.com>
5094
5095 PR debug/49382
5096 * dwarf2out.c (dw_loc_list_node): Add force field.
5097 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5098 location in the list, even if it is modified before first real insn.
5099 (output_loc_list): Emit empty ranges with force flag set.
5100 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
5101
5102 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
5103
5104 PR target/49349
5105 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5106 (fence_to_rewind). Use it to notice when bookkeeping will be placed
5107 above a fence. Update comments.
5108 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5109 placed just above it. Do not allow NULL place_to_insert.
5110
5111 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
5112
5113 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5114 (slpeel_tree_peel_loop_to_edge): Don't call
5115 remove_dead_stmts_from_loop.
5116 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5117 remove irrelevant pattern statements. For irrelevant statements
5118 check if it is the last statement of a detected pattern, use
5119 corresponding pattern statement instead.
5120 (destroy_loop_vec_info): No need to remove pattern statements,
5121 only free stmt_vec_info.
5122 (vect_transform_loop): For irrelevant statements check if it is
5123 the last statement of a detected pattern, use corresponding
5124 pattern statement instead.
5125 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5126 pattern statements. Set basic block for the new statement.
5127 (vect_pattern_recog): Update documentation.
5128 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5129 operands of pattern statements.
5130 (vectorizable_call): Fix printing. In case of a pattern statement
5131 use the lhs of the original statement when creating a dummy
5132 statement to replace the original call.
5133 (vect_analyze_stmt): For irrelevant statements check if it is
5134 the last statement of a detected pattern, use corresponding
5135 pattern statement instead.
5136 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5137 statements use gsi of the original statement.
5138
5139 2011-06-14 Joseph Myers <joseph@codesourcery.com>
5140
5141 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5142 common/common-target-def.h.
5143 * target.def (default_target_flags, handle_option,
5144 supports_split_stack, optimization_table, init_struct,
5145 except_unwind_info, unwind_tables_default, have_named_sections):
5146 Move to common/common-target.def.
5147 * target.h (enum opt_levels, struct default_options): Move to
5148 common/common-target.h.
5149 * targhooks.c (default_except_unwind_info,
5150 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5151 default_target_handle_option, empty_optimization_table): Move to
5152 common/common-targhooks.c.
5153 * targhooks.h (default_except_unwind_info,
5154 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5155 default_target_handle_option, empty_optimization_table): Move to
5156 common/common-targhooks.h.
5157 * common/common-target-def.h: Include common/common-targhooks.h.
5158 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5159 defined.
5160 * common/common-target.def (handle_option, option_init_struct,
5161 option_optimization_table, default_target_flags,
5162 except_unwind_info, supports_split_stack, unwind_tables_default,
5163 have_named_sections): Move from target.def.
5164 (HOOK_PREFIX): Undefine at end of file.
5165 * common/common-target.h: Include input.h.
5166 (enum opt_levels, struct default_options): Move from target.h.
5167 * common/common-targhooks.c, common/common-targhooks.h: New.
5168 * config.gcc (target_has_targetm_common): Default to yes.
5169 (moxie*): Set target_has_targetm_common=no.
5170 (hppa*-*-*): Don't set target_has_targetm_common=yes.
5171 * doc/tm.texi: Regenerate.
5172 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5173 (C_TARGET_DEF_H): Add common/common-targhooks.h.
5174 (GCC_OBJS): Remove vec.o.
5175 (OBJS): Remove hooks.o and vec.o.
5176 (OBJS-libcommon-target): Add vec.o, hooks.o and
5177 common/common-targhooks.o.
5178 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5179 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5180 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5181 cfglayout.o, $(out_object_file), $(common_out_object_file)):
5182 Update dependencies.
5183 (common/common-targhooks.o): New.
5184 * common/config/default-common.c: Include tm.h. Add FIXME comment.
5185 * common/config/pa/pa-common.c: Include more headers. Take
5186 copyright dates from pa.c.
5187 (pa_option_optimization_table, pa_handle_option,
5188 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5189 TARGET_HANDLE_OPTION): Move from pa.c.
5190 * common/config/alpha/alpha-common.c,
5191 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5192 common/config/bfin/bfin-common.c,
5193 common/config/cris/cris-common.c,
5194 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5195 common/config/h8300/h8300-common.c,
5196 common/config/i386/i386-common.c,
5197 common/config/ia64/ia64-common.c,
5198 common/config/iq2000/iq2000-common.c,
5199 common/config/lm32/lm32-common.c,
5200 common/config/m32c/m32c-common.c,
5201 common/config/m32r/m32r-common.c,
5202 common/config/m68k/m68k-common.c,
5203 common/config/mcore/mcore-common.c,
5204 common/config/mep/mep-common.c,
5205 common/config/microblaze/microblaze-common.c,
5206 common/config/mips/mips-common.c,
5207 common/config/mmix/mmix-common.c,
5208 common/config/mn10300/mn10300-common.c,
5209 common/config/pdp11/pdp11-common.c,
5210 common/config/picochip/picochip-common.c,
5211 common/config/rs6000/rs6000-common.c,
5212 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5213 common/config/score/score-common.c, common/config/sh/sh-common.c,
5214 common/config/sparc/sparc-common.c,
5215 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5216 common/config/vax/vax-common.c,
5217 common/config/xstormy16/xstormy16-common.c,
5218 common/config/xtensa/xtensa-common.c: New.
5219 * config/alpha/alpha.c: Include common/common-target.h.
5220 (alpha_option_optimization_table, alpha_handle_option,
5221 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5222 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5223 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5224 * config/arm/arm.c (arm_option_optimization_table,
5225 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5226 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5227 arm-common.c.
5228 * config/avr/avr.c (avr_option_optimization_table,
5229 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5230 to avr-common.c.
5231 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5232 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5233 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5234 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5235 * config/cris/cris.c (cris_option_optimization_table,
5236 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5237 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5238 cris-common.c.
5239 * config/fr30/fr30.c (fr30_option_optimization_table,
5240 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5241 to fr30-common.c.
5242 * config/frv/frv.c (frv_option_optimization_table,
5243 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5244 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5245 * config/h8300/h8300.c (h8300_option_optimization_table,
5246 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5247 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5248 * config/i386/i386-protos.h (ix86_handle_option): Declare.
5249 * config/i386/i386.c: Include common/common-target.h.
5250 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5251 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5252 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5253 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5254 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5255 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5256 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5257 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5258 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5259 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5260 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5261 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5262 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5263 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5264 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5265 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5266 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5267 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5268 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5269 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5270 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5271 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5272 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5273 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5274 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5275 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5276 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5277 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5278 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5279 ix86_option_optimization_table, ix86_option_init_struct,
5280 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5281 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5282 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5283 i386-common.c.
5284 * config/i386/t-i386 (i386.o): Update dependencies.
5285 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5286 * config/ia64/ia64.c (ia64_option_optimization_table,
5287 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5288 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5289 ia64_handle_option): Move to ia64-common.c.
5290 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5291 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5292 * config/lm32/lm32.c (lm32_option_optimization_table,
5293 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5294 to lm32-common.c.
5295 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5296 m32c-common.c.
5297 * config/m32r/m32r.c (m32r_option_optimization_table,
5298 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5299 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5300 m32r_handle_option): Move to m32r-common.c.
5301 (m32r_memory_move_cost): Remove comment referring to
5302 TARGET_HANDLE_OPTION.
5303 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5304 Move to m68k-common.c.
5305 * config/mcore/mcore.c (mcore_option_optimization_table,
5306 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5307 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5308 * config/mep/mep.c (mep_option_optimization_table,
5309 mep_handle_option, TARGET_HANDLE_OPTION,
5310 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5311 Move to mep-common.c.
5312 * config/microblaze/microblaze.c
5313 (microblaze_option_optimization_table,
5314 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5315 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5316 * config/mips/mips.c (mips_handle_option,
5317 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5318 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5319 mips-common.c.
5320 * config/mmix/mmix.c (mmix_option_optimization_table,
5321 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5322 Move to mmix-common.c.
5323 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5324 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5325 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5326 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5327 * config/pa/pa.c: Include common/common-target.h.
5328 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5329 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5330 pa_handle_option): Move to pa-common.c.
5331 (pa_option_override): Use targetm_common.except_unwind_info.
5332 (pa_asm_output_mi_thunk, pa_function_section): Use
5333 targetm_common.have_named_sections.
5334 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5335 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5336 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5337 pdp11_handle_option, pdp11_option_init_struct): Move to
5338 pdp11-common.c.
5339 * config/picochip/picochip.c (picochip_option_optimization_table,
5340 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5341 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5342 * config/rs6000/rs6000.c: Include common/common-target.h.
5343 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5344 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5345 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5346 rs6000_handle_option): Move to rs6000-common.c.
5347 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5348 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5349 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5350 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5351 * config/s390/s390.c (processor_flags_table,
5352 s390_option_optimization_table, s390_option_init_struct,
5353 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5354 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5355 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5356 * config/s390/s390.h (processor_flags_table): Declare.
5357 * config/score/score.c (score_option_optimization_table,
5358 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5359 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5360 score_handle_option): Move to score-common.c.
5361 * config/sh/sh.c (sh_option_optimization_table,
5362 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5363 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5364 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5365 * config/sparc/sparc.c: Include common/common-target.h.
5366 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5367 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5368 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5369 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5370 spu_option_init_struct): Move to spu-common.c.
5371 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5372 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5373 * config/v850/v850.c (small_memory_physical_max,
5374 v850_handle_memory_optionn v850_handle_option,
5375 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5376 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5377 v850-common.c.
5378 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
5379 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5380 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5381 Move to xtensa-common.c.
5382 * cfglayout.c: Include common/common-target.h.
5383 (fixup_reorder_chain): Use targetm_common.have_named_sections.
5384 * cfgrtl.c: Include common/common-target.h.
5385 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
5386 targetm_common.have_named_sections.
5387 * dbxout.c: Include common/common-target.h.
5388 (dbxout_function_end): Use targetm_common.have_named_sections.
5389 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
5390 targetm_common.except_unwind_info.
5391 * dwarf2out.c: Include common/common-target.h.
5392 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
5393 dwarf2out_begin_prologue, dwarf2out_frame_init,
5394 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
5395 targetm_common.except_unwind_info.
5396 * except.c: Include common/common-target.h.
5397 (init_eh, finish_eh_generation,
5398 output_one_function_exception_table): Use
5399 targetm_common.except_unwind_info.
5400 (switch_to_exception_section): Use targetm_common.have_named_sections.
5401 * explow.c: Include common/common-target.h.
5402 * expr.c: Include common/common-target.h.
5403 (build_personality_function): Use targetm_common.except_unwind_info.
5404 * function.c: Include common/common-target.h.
5405 (expand_function_end): Use targetm_common.except_unwind_info.
5406 * haifa-sched.c: Include common/common-target.h.
5407 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
5408 * lto-opts.c: Include common/common-target.h instead of target.h.
5409 (lto_reissue_options): Use targetm_common.handle_option.
5410 * opts.c: Include common/common-target.h.
5411 (target_handle_option): Use targetm_common.handle_option.
5412 (init_options_struct): Update comment referring to
5413 targetm.target_option.optimization. Use
5414 targetm_common.default_target_flags,
5415 targetm_common.unwind_tables_default and
5416 targetm_common.option_init_struct.
5417 (default_options_optimization): Use
5418 targetm_common.option_optimization_table.
5419 (finish_options): Use targetm_common.except_unwind_info,
5420 targetm_common.unwind_tables_default,
5421 targetm_common.have_named_sections and
5422 targetm_common.supports_split_stack.
5423 * toplev.c: Include common/common-target.h.
5424 (process_options): Use targetm_common.have_named_sections.
5425 * tree-tailcall.c: Include common/common-target.h.
5426 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
5427 * tree.c: Include common/common-target.h.
5428 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
5429 * varasm.c: Include common/common-target.h.
5430 (resolve_unique_section, hot_function_section,
5431 default_function_section): Use targetm_common.have_named_sections.
5432
5433 2011-06-14 Easwaran Raman <eraman@google.com>
5434
5435 PR rtl-optimization/44194
5436 * dse.c: Include tree-flow.h
5437 (insn_info): Add new field non_frame_wild_read.
5438 (group_info): Add new fields escaped_n and escaped_p.
5439 (kill_on_calls): New variable.
5440 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5441 (dse_step0): Initialize kill_on_calls.
5442 (can_escape): New function.
5443 (set_usage_bits): Add additional parameter; record information
5444 about escaped locations.
5445 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
5446 (dse_step2_nospill): Set kill_on_calls based on
5447 group->escaped_n and group->escaped_n.
5448 (add_wild_read): Refactor into...
5449 (reset_active_stores): ... New function, and
5450 (free_read_records): ... New function.
5451 (add_non_frame_wild_read): New function.
5452 (scan_insn): Call add_non_frame_wild_read on non-const calls.
5453 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
5454 (dse_step5_nospill): Call scan_reads_nospill for instructions
5455 marked as non_frame_wild_read.
5456 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
5457
5458 2011-06-14 Joseph Myers <joseph@codesourcery.com>
5459
5460 * common/common-target-def.h, common/common-target.def,
5461 common/common-target.h, common/config/default-common.c,
5462 common/config/pa/pa-common.c: New files.
5463 * Makefile.in (common_out_file, common_out_object_file,
5464 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5465 (OBJS-libcommon-target): Include $(common_out_object_file).
5466 (prefix.o): Update dependencies.
5467 ($(common_out_object_file), common/common-target-hooks-def.h,
5468 s-common-target-hooks-def-h): New.
5469 (s-tm-texi): Also check timestamp on common-target.def.
5470 (build/genhooks.o): Update dependencies.
5471 * config.gcc (common_out_file, target_has_targetm_common): Define.
5472 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5473 TARGET_ALWAYS_STRIP_DOTDOT.
5474 * configure.ac (common_out_object_file): Define.
5475 (common_out_file, common_out_object_file): Substitute.
5476 (common): Create directory.
5477 * configure: Regenerate.
5478 * doc/tm.texi.in (targetm_common): Document.
5479 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5480 * doc/tm.texi: Regenerate.
5481 * genhooks.c (hook_array): Also include common/common-target.def.
5482 * prefix.c (tm.h): Don't include.
5483 (common/common-target.h): Include.
5484 (ALWAYS_STRIP_DOTDOT): Don't define.
5485 (update_path): Use targetm_common.always_strip_dotdot instead of
5486 ALWAYS_STRIP_DOTDOT.
5487 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5488
5489 2011-06-14 David Li <davidxl@google.com>
5490
5491 * passes.c (execute_function_todo): Remove TODO_dump_func.
5492 (execute_one_pass): Remove TODO_dump_func.
5493 (execute_function_dump): New function.
5494 * tree-vrp.c: Remove TODO_dump_func.
5495 * regrename.c: Remove TODO_dump_func.
5496 * fwprop.c: Remove TODO_dump_func.
5497 * tree-into-ssa.c: Remove TODO_dump_func.
5498 * tree-complex.c: Remove TODO_dump_func.
5499 * tracer.c: Remove TODO_dump_func.
5500 * tree-loop-distribution.c: Remove TODO_dump_func.
5501 * postreload-gcse.c: Remove TODO_dump_func.
5502 * postreload.c: Remove TODO_dump_func.
5503 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5504 * tree-tailcall.c: Remove TODO_dump_func.
5505 * ipa-cp.c: Remove TODO_dump_func.
5506 * final.c: Remove TODO_dump_func.
5507 * tree-emutls.c: Remove TODO_dump_func.
5508 * omp-low.c: Remove TODO_dump_func.
5509 * tree-ssa-dse.c: Remove TODO_dump_func.
5510 * tree-ssa-uncprop.c: Remove TODO_dump_func.
5511 * auto-inc-dec.c: Remove TODO_dump_func.
5512 * reorg.c: Remove TODO_dump_func.
5513 * tree-ssa-copyrename.c: Remove TODO_dump_func.
5514 * tree-ssa-ccp.c: Remove TODO_dump_func.
5515 * compare-elim.c: Remove TODO_dump_func.
5516 * mode-switching.c: Remove TODO_dump_func.
5517 * modulo-sched.c: Remove TODO_dump_func.
5518 * tree-call-cdce.c: Remove TODO_dump_func.
5519 * cse.c: Remove TODO_dump_func.
5520 * web.c: Remove TODO_dump_func.
5521 * tree-stdarg.c: Remove TODO_dump_func.
5522 * lto-streamer-out.c: Remove TODO_dump_func.
5523 * tree-ssa-math-opts.c: Remove TODO_dump_func.
5524 * tree-ssa-dom.c: Remove TODO_dump_func.
5525 * tree-nrv.c: Remove TODO_dump_func.
5526 * loop-init.c: Remove TODO_dump_func.
5527 * gimple-low.c: Remove TODO_dump_func.
5528 * ipa-inline.c: Remove TODO_dump_func.
5529 * tree-ssa-sink.c: Remove TODO_dump_func.
5530 * jump.c: Remove TODO_dump_func.
5531 * ifcvt.c: Remove TODO_dump_func.
5532 * tree-ssa-loop.c: Remove TODO_dump_func.
5533 * recog.c: Remove TODO_dump_func.
5534 * dse.c: Remove TODO_dump_func.
5535 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5536 * matrix-reorg.c: Remove TODO_dump_func.
5537 * tree-eh.c: Remove TODO_dump_func.
5538 * regmove.c: Remove TODO_dump_func.
5539 * function.c: Remove TODO_dump_func.
5540 * tree-vectorizer.c: Remove TODO_dump_func.
5541 * ipa-split.c: Remove TODO_dump_func.
5542 * gcse.c: Remove TODO_dump_func.
5543 * tree-if-conv.c: Remove TODO_dump_func.
5544 * init-regs.c: Remove TODO_dump_func.
5545 * tree-ssa-phiopt.c: Remove TODO_dump_func.
5546 * implicit-zee.c: Remove TODO_dump_func.
5547 * lower-subreg.c: Remove TODO_dump_func.
5548 * bt-load.c: Remove TODO_dump_func.
5549 * tree-dfa.c: Remove TODO_dump_func.
5550 * except.c: Remove TODO_dump_func.
5551 * emit-rtl.c: Remove TODO_dump_func.
5552 * store-motion.c: Remove TODO_dump_func.
5553 * cfgexpand.c: Remove TODO_dump_func.
5554 * tree-cfgcleanup.c: Remove TODO_dump_func.
5555 * cfgcleanup.c: Remove TODO_dump_func.
5556 * tree-ssa-pre.c: Remove TODO_dump_func.
5557 * tree-sra.c: Remove TODO_dump_func.
5558 * tree-mudflap.c: Remove TODO_dump_func.
5559 * tree-ssa-copy.c: Remove TODO_dump_func.
5560 * cfglayout.c: Remove TODO_dump_func.
5561 * tree-ssa-forwprop.c: Remove TODO_dump_func.
5562 * tree-ssa-dce.c: Remove TODO_dump_func.
5563 * ira.c: Remove TODO_dump_func.
5564 * tree-ssa.c: Remove TODO_dump_func.
5565 * integrate.c: Remove TODO_dump_func.
5566 * tree-optimize.c: Remove TODO_dump_func.
5567 * tree-ssa-phiprop.c: Remove TODO_dump_func.
5568 * tree-object-size.c: Remove TODO_dump_func.
5569 * combine.c: Remove TODO_dump_func.
5570 * bb-reorder.c: Remove TODO_dump_func.
5571 * cprop.c: Remove TODO_dump_func.
5572 * var-tracking.c: Remove TODO_dump_func.
5573 * tree-profile.c: Remove TODO_dump_func.
5574 * tree-vect-generic.c: Remove TODO_dump_func.
5575 * reg-stack.c: Remove TODO_dump_func.
5576 * sched-rgn.c: Remove TODO_dump_func.
5577 * tree-ssa-structalias.c: Remove TODO_dump_func.
5578 * tree-switch-conversion.c: Remove TODO_dump_func.
5579 * tree-cfg.c: Remove TODO_dump_func.
5580 * tree-ssa-reassoc.c: Remove TODO_dump_func.
5581 * combine-stack-adj.c: Remove TODO_dump_func.
5582 * dce.c: Remove TODO_dump_func.
5583 * tree-ssanames.c: Remove TODO_dump_func.
5584 * regcprop.c: Remove TODO_dump_func.
5585
5586 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
5587
5588 PR middle-end/47364
5589 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5590 and properly handle result not in Pmode.
5591
5592 2011-06-14 Robert Millan <rmh@gnu.org>
5593
5594 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5595 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5596 `config/linux.h'.
5597
5598 * config/i386/kfreebsd-gnu64.h: New file.
5599 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5600 with `i386/kfreebsd-gnu64.h'.
5601
5602 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5603 (GNU_USER_LINK_EMULATION64): New macros.
5604 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5605 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5606 of hardcoding `elf_i386' and `elf_x86_64'.
5607
5608 2011-06-14 Nick Clifton <nickc@redhat.com>
5609
5610 PR target/49403
5611 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5612
5613 PR target/49402
5614 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5615
5616 2011-06-14 Jakub Jelinek <jakub@redhat.com>
5617
5618 PR fortran/49103
5619 * tree.h (DECL_NONSHAREABLE): Define.
5620 (struct tree_decl_common): Change decl_common_unused to
5621 decl_nonshareable_flag.
5622 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5623 Ignore vars with DECL_NONSHAREABLE bit set.
5624 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5625 on stores to automatic aggregate vars.
5626
5627 PR rtl-optimization/49390
5628 Revert:
5629 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
5630
5631 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5632 MEM_ALIAS_SET.
5633
5634 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
5635 Tom de Vries <tom@codesourcery.com>
5636
5637 PR target/45098
5638 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5639 Document changed semantics.
5640 (max_stmt_executions, max_stmt_executions_int): Declare.
5641 * tree-data-ref.c (estimated_loop_iterations)
5642 (estimated_loop_iterations_int): Move functions...
5643 * tree-ssa-loop-niter.c (estimated_loop_iterations)
5644 (estimated_loop_iterations_int): here.
5645 (record_estimate): Change nb_iterations_upper_bound and
5646 nb_iterations_estimate semantics.
5647 (max_stmt_executions, max_stmt_executions_int): New function.
5648 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5649 (max_stmt_executions_tree): this.
5650 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5651 estimated_loop_iterations_tree.
5652 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5653 max_stmt_executions_int instead of estimated_loop_iterations_int.
5654 * predict.c (predict_loops): Idem.
5655 * tree-parloops.c (parallelize_loops): Idem.
5656 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5657 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5658 (init_omega_for_ddr_1): Idem.
5659 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5660 (loop_prefetch_arrays): Idem
5661 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5662 max_stmt_executions instead of estimated_loop_iterations.
5663 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5664 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5665 instead of nb_iterations_upper_bound.
5666
5667 2011-06-13 Jan Hubicka <jh@suse.cz>
5668
5669 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5670
5671 2011-06-14 Richard Henderson <rth@redhat.com>
5672
5673 PR debug/48459
5674 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5675 (based_loc_descr): Assert it's true.
5676 (compute_frame_pointer_to_fb_displacement): Set it, rather than
5677 aborting immediately.
5678
5679 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
5680 Mingfeng Wu <mingfeng@faraday-tech.com>
5681
5682 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5683
5684 2011-06-13 Jan Hubicka <jh@suse.cz>
5685
5686 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5687
5688 2011-06-13 Jan Hubicka <jh@suse.cz>
5689
5690 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
5691 similarly to DECL_COMDAT.
5692 * cgraphunit.c (cgraph_analyze_function): Likewise.
5693 * ipa.c (function_and_variable_visibility): Likewise.
5694
5695 2011-06-13 Jan Hubicka <jh@suse.cz>
5696
5697 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
5698 BINFO_VIRTUALS when streaming for ltrans unit.
5699
5700 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
5701
5702 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
5703 (movdi_internal64): Same.
5704
5705 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
5706
5707 PR target/44618
5708 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
5709 a set of similar patterns, where the MATCH_OPERAND for the function
5710 argument is replaced with individual references to hardware registers.
5711 (save_fpregs_<mode>): Ditto
5712 (restore_gpregs_<mode>): Ditto
5713 (return_and_restore_gpregs_<mode>): Ditto
5714 (return_and_restore_fpregs_<mode>): Ditto
5715 (return_and_restore_fpregs_aix_<mode>): Ditto
5716
5717 2011-06-13 Jan Hubicka <jh@suse.cz>
5718
5719 * ipa-utils.c (postorder_stack): New structure.
5720 (ipa_reverse_postorder): Handle aliases.
5721
5722 2011-06-13 Jan Hubicka <jh@suse.cz>
5723
5724 * ipa-inline.c (reset_edge_caches): Walk aliases.
5725 (update_caller_keys): Do not test inlinability of aliases.
5726 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
5727 (do_estimate_growth): Fix typo.
5728
5729 2011-06-13 Jan Hubicka <jh@suse.cz>
5730
5731 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
5732 (can_remove_node_now_p): ... here; handle same comdat groups.
5733 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
5734 (inline_call): Update use of can_remove_node_now_p.
5735
5736 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
5737
5738 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
5739 condition to disallow non-identical memory locations.
5740 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
5741 preference to bit manipulation instructions.
5742
5743 2011-06-13 Jan Hubicka <jh@suse.cz>
5744
5745 * cgraph.c (cgraph_for_node_thunks_and_aliases,
5746 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
5747 (nonremovable_p): New function.
5748 (cgraph_can_remove_if_no_direct_calls_p): New function.
5749 (used_from_object_file_p): New functoin.
5750 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
5751 references from aliases.
5752 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
5753 * ipa-inline.c (check_caller_edge): New function.
5754 (want_inline_function_called_once_p): Use it; accept aliases called
5755 once, too.
5756 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
5757
5758 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5759
5760 PR target/48454
5761 * config/arm/neon.md (vec_pack_trunc): Set the lengths
5762 correctly for the case with Quad vectors.
5763
5764 2011-06-13 Jakub Jelinek <jakub@redhat.com>
5765 Ira Rosen <ira.rosen@linaro.org>
5766
5767 PR tree-optimization/49352
5768 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
5769 all, make sure loop_use_stmt after the loop is a def stmt of a used
5770 SSA_NAME that is the only one defined inside of the loop. Don't
5771 check for COND_EXPR and GIMPLE_BINARY_RHS.
5772 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
5773 check_reduction is true.
5774
5775 2011-06-11 Jan Hubicka <jh@suse.cz>
5776
5777 PR middle-end/49373
5778 * ipa.c (cgraph_externally_visible_p): Check resolution info.
5779
5780 2011-06-11 Jan Hubicka <jh@suse.cz>
5781
5782 PR middle-end/48836
5783 * ipa-inline-transform.c: Include tree-pass.h
5784 (inline_transform): Set TODO_update_ssa_only_virtuals.
5785 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
5786
5787 2011-06-11 Jan Hubicka <jh@suse.cz>
5788
5789 PR middle-end/49378
5790 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
5791 aliases and thunks.
5792
5793 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
5794
5795 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
5796 Take number of iterations to peel into account for equally frequent
5797 misalignment values.
5798
5799 2011-06-11 Jan Hubicka <jh@suse.cz>
5800
5801 * lto-streamer-out.c (produce_symtab): Stream out the newly
5802 represented aliases.
5803
5804 2011-06-11 Jan Hubicka <jh@suse.cz>
5805
5806 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
5807 varying args.
5808 (ipa_update_after_lto_read): Likewise.
5809 (ipa_write_node_info): Do not sream call_with_var_arguments.
5810 (ipa_read_node_info): Likewise.
5811
5812 2011-06-11 Jan Hubicka <jh@suse.cz>
5813
5814 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
5815
5816 2011-06-11 Jan Hubicka <jh@suse.cz>
5817
5818 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
5819 (lto_symtab_resolve_can_prevail_p): Likewise.
5820 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
5821 * cgraph.c (same_body_aliases_done): New global var.
5822 (cgraph_same_body_alias_1): Rename to ...
5823 (cgraph_create_function_alias): ... this one; reorg to new
5824 representation.
5825 (cgraph_same_body_alias): Use cgraph_create_function_alias;
5826 record references when asked to.
5827 (cgraph_add_thunk): Fix formating.
5828 (cgraph_get_node): Kill same body alias code.
5829 (cgraph_node_for_asm): Likewise.
5830 (cgraph_remove_same_body_alias): Remove.
5831 (cgraph_remove_node): Kill same body alias code.
5832 (cgraph_mark_address_taken_node): Mark also the aliased function
5833 as having address taken.
5834 (dump_cgraph_node): Dump same body aliases.
5835 (cgraph_for_node_thunks_and_aliases): Update for new alias
5836 representation.
5837 (cgraph_for_node_and_aliases): Likewise.
5838 * cgraph.h (same_body): Kll pointer.
5839 (same_body_alias): Update comment.
5840 (same_body_aliases_done): Declare.
5841 (cgraph_remove_same_body_alias): Remove declaration.
5842 (cgraph_create_function_alias): Declare.
5843 (cgraph_process_same_body_aliases): Declare.
5844 (cgraph_function_with_gimple_body_p): Check for alias.
5845 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
5846 (cgraph_alias_aliased_node): New function.
5847 (cgraph_function_node): Update for new aliases.
5848 (cgraph_function_or_thunk_node): Likewise.
5849 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
5850 (inline_call): Remove dead aliases.
5851 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
5852 name hack for same body aliases.
5853 (clone_of_p): Look through aliases.
5854 (verify_cgraph_node): Verify aliases.
5855 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
5856 (cgraph_process_same_body_aliases): New function.
5857 (process_function_and_variable_attributes): Disable weakref warning on
5858 alias.
5859 (cgraph_analyze_functions): Handle aliases.
5860 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
5861 (assemble_thunks): Rename to ...
5862 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
5863 (cgraph_expand_function): Remove alias output code.
5864 (cgraph_output_in_order): Skip aliases.
5865 (cgraph_preserve_function_body_p): Aliases don't need preserving.
5866 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
5867 (ipa_record_reference): Do not assert on alias references.
5868 (ipa_ref_has_aliases_p): New function.
5869 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
5870 (ipa_ref_has_aliases_p): Declare.
5871 * lto-cgraph.c (lto_output_node): Handle aliases.
5872 (input_node): Likewise.
5873 * lto-streamer-out.c (lto_output): Skip aliases.
5874 (produce_symtab): Kill same_body_alias code.
5875 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
5876 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
5877 * ipa-inline.c (update_caller_keys): Walk aliases.
5878 (inline_small_functions): Fix thinko in previous patch.
5879 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
5880 (function_and_variable_visibility): Do not walk same body aliases.
5881 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
5882 (ipa_pta_execute): Use it.
5883
5884 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
5885
5886 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5887 (*vec_dupv2df): Rename from vec_dupv2df.
5888 (vec_dupv2df): New expander.
5889
5890 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
5891
5892 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
5893
5894 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
5895
5896 * config/i386/i386.md: Use default value in "isa" attribute.
5897 * config/i386/sse.md: Ditto.
5898 * config/i386/mmx.md: Ditto.
5899
5900 2011-06-10 Wei Guozhi <carrot@google.com>
5901
5902 PR target/45335
5903 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5904 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5905 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5906 related peephole2.
5907 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5908 related peephole2.
5909 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5910 (arm_legitimate_ldrd_p): New prototype.
5911 (arm_output_ldrd): New prototype.
5912 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5913 (arm_legitimate_ldrd_p): New function.
5914 (arm_output_ldrd): New function.
5915
5916 2011-06-10 David Li <davidxl@google.com>
5917
5918 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5919 * passes.c (passr_eq): New function.
5920 (create_pass_tab): New function.
5921 (pass_traverse): New function.
5922 (dump_one_pass): New function.
5923 (dump_pass_list): New function.
5924 (dump_passes): New function.
5925
5926 2011-06-10 Jan Hubicka <jh@suse.cz>
5927
5928 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
5929 setting the nothrow flag.
5930 * ipa-reference.c (propagate): Skip aliases.
5931 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
5932 (propagate_nothrow): Skip aliases; do not update cgraph.
5933 (local_pure_const): Do not update cgraph.
5934 * tree-profile.c (tree_profiling): Do fixup_cfg.
5935
5936 2011-06-10 Jan Hubicka <jh@suse.cz>
5937
5938 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
5939 (cgraph_local_node_p): ... here; handle aliases.
5940 (has_addr_references_p): Break out from ...;
5941 (cgraph_remove_unreachable_nodes) ... here.
5942
5943 2011-06-10 Jan Hubicka <jh@suse.cz>
5944
5945 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
5946 * common.opt (flag_inline_functions_called_once): Do not
5947 initialize to 1.
5948
5949 2011-06-10 Jan Hubicka <jh@suse.cz>
5950
5951 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
5952 (ipcp_initialize_node_lattices): Do not deal with aliases;
5953 Do not try to propagate through thunks.
5954 (ipcp_change_tops_to_bottom): Do not deal with aliases.
5955
5956 2011-06-10 Jan Hubicka <jh@suse.cz>
5957
5958 * ipa-prop.c (ipa_write_node_info): Stream jump functions
5959 for indirect calls.
5960 (ipa_read_node_info): Likewise.
5961
5962 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5963
5964 PR lto/49302
5965 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
5966 (build_and_insert_call): Likewise.
5967 (build_and_insert_ref): New.
5968 (gimple_expand_builtin_pow): Minor cleanup.
5969 (gimple_expand_builtin_cabs): New.
5970 (execute_cse_sincos): Add case for BUILT_IN_CABS.
5971
5972 2011-06-10 Jan Hubicka <jh@suse.cz>
5973
5974 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
5975 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
5976 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
5977 (ipcp_propagate_stage): Skip aliases when propagating.
5978 (ipcp_need_redirect_p): Skip aliases.
5979 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
5980 collect_callers_of_node.
5981 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
5982 for aliases.
5983 (ipa_compute_jump_functions): Look through aliases.
5984
5985 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5986
5987 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
5988
5989 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
5990
5991 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
5992 Adjust comments.
5993 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
5994
5995 2011-06-10 Jan Hubicka <jh@suse.cz>
5996
5997 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
5998 Update call of gimple_get_virt_method_for_binfo.
5999 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6000 refuse_thunks parameter.
6001 (gimple_fold_call): Update.
6002 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6003
6004 2011-06-10 Jan Hubicka <jh@suse.cz>
6005
6006 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6007 (not_all_callers_have_enough_arguments_p): ... this one; turn into
6008 worker for cgraph_for_node_and_aliases.
6009 (convert_callers_for_node): Break out from ...
6010 (convert_callers): ... here.
6011 (modify_function): Use collect_callers_of_node.
6012 (ipa_early_sra): Use cgraph_for_node_and_aliases.
6013
6014 2011-06-10 Richard Guenther <rguenther@suse.de>
6015
6016 PR tree-optimization/49361
6017 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6018 when not already in gimple form.
6019
6020 2011-06-10 Richard Guenther <rguenther@suse.de>
6021
6022 PR bootstrap/49344
6023 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6024 FOR_EACH_PHI_OR_STMT_USE.
6025
6026 2011-06-10 Jan Hubicka <jh@suse.cz>
6027
6028 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6029 (clone_inlined_nodes): ... here.
6030 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6031 to real destination prior inlining.
6032 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6033 can_early_inline_edge_p, want_early_inline_function_p,
6034 want_early_inline_function_p, want_inline_small_function_p,
6035 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6036 edge_badness, update_all_callee_keys, lookup_recursive_calls,
6037 add_new_edges_to_heap, inline_small_functions, flatten_function,
6038 inline_always_inline_functions, early_inline_small_functions): Use
6039 cgraph_function_or_thunk_node.
6040 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6041 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6042 (do_estimate_edge_growth_1): Break out from ...
6043 (do_estimate_growth) ... here; walk aliases.
6044 (inline_generate_summary): Skip aliases.
6045
6046 2011-06-10 Richard Guenther <rguenther@suse.de>
6047
6048 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6049 forward when combining, visit inserted stmts when a stmt was changed.
6050
6051 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
6052
6053 * tree.h (error_operand_p): Add.
6054 * dbxout.c (dbxout_type_fields): Use the latter.
6055 * c-decl.c (add_stmt): Likewise.
6056 * gimplify.c (omp_add_variable, omp_notice_variable,
6057 gimplify_scan_omp_clauses): Likewise.
6058
6059 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
6060
6061 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6062 when a value is actually passed in regs.
6063
6064 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
6065 Laurent Rougé <laurent.rouge@menta.fr>
6066
6067 * doc/invoke.texi (SPARC options): Add -mflat.
6068 * config/sparc/sparc.opt: Likewise.
6069 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6070 (sparc_flat_expand_prologue): Declare.
6071 (sparc_flat_expand_epilogue): Likewise.
6072 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6073 (CPP_ENDIAN_SPEC): Replace with...
6074 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
6075 (CPP_SPEC): Adjust to above change.
6076 (EXTRA_SPECS): Likewise.
6077 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6078 (INCOMING_REGNO): Likewise.
6079 (OUTGOING_REGNO): Likewise.
6080 (LOCAL_REGNO): Likewise.
6081 (SETUP_FRAME_ADDRESSES): Likewise.
6082 (FIXED_REGISTERS): Set 0 for %fp.
6083 (CALL_USED_REGISTERS): Likewise.
6084 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6085 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6086 (RETURN_ADDR_REGNUM): Define.
6087 (RETURN_ADDR_RTX): Use it.
6088 (INCOMING_RETURN_ADDR_REGNUM): Define.
6089 (INCOMING_RETURN_ADDR_RTX): Use it.
6090 (DWARF_FRAME_RETURN_COLUMN): Likewise.
6091 (EH_RETURN_REGNUM): Define.
6092 (EH_RETURN_STACKADJ_RTX): Use it.
6093 (EH_RETURN_HANDLER_RTX): Delete.
6094 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6095 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6096 Delete.
6097 (struct machine_function): Add frame_size, apparent_frame_size,
6098 frame_base_reg, frame_base_offset, n_global_fp_regs and
6099 save_local_in_regs_p fields.
6100 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6101 sparc_frame_base_offset, sparc_n_global_fp_regs,
6102 sparc_save_local_in_regs_p): New macros.
6103 (sparc_option_override): Error out if -fcall-saved-REG is specified
6104 for Out registers.
6105 (eligible_for_restore_insn): Fix formatting.
6106 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
6107 (eligible_for_sibcall_delay): Likewise.
6108 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6109 (sparc_legitimate_address_p): Adjust to above change.
6110 (save_global_or_fp_reg_p): New predicate.
6111 (return_addr_reg_needed_p): Likewise.
6112 (save_local_or_in_reg_p): Likewise.
6113 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
6114 (SORR_SAVE, SORR_RESTORE): Delete.
6115 (sorr_pred_t): New typedef.
6116 (sorr_act_t): New enum.
6117 (save_or_restore_regs): Rename to...
6118 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
6119 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6120 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
6121 mechanism. Add CFI information for double-word saves in 32-bit mode.
6122 (emit_adjust_base_to_offset): New function extracted from...
6123 (emit_save_or_restore_regs): ...this. Rename the rest to...
6124 (emit_save_or_restore_regs_global_fp_regs): ...this.
6125 (emit_save_or_restore_regs_local_in_regs): New function.
6126 (gen_create_flat_frame_[123]): New functions.
6127 (sparc_expand_prologue): Use SIZE local variable. Adjust.
6128 (sparc_flat_expand_prologue): New function.
6129 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6130 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
6131 (sparc_flat_expand_epilogue): New function.
6132 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6133 (output_return): Likewise.
6134 (output_sibcall): Likewise.
6135 (sparc_output_mi_thunk): Likewise.
6136 (sparc_frame_pointer_required): Likewise.
6137 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6138 function optimization.
6139 * config/sparc/sparc.md (flat): New attribute.
6140 (prologue): Add TARGET_FLAT handling.
6141 (save_register_window): Disable if TARGET_FLAT.
6142 (create_flat_frame_[123]): New patterns.
6143 (epilogue): Add TARGET_FLAT handling.
6144 (sibcall_epilogue): Likewise.
6145 (eh_return): New expander.
6146 (eh_return_internal): New insn and splitter.
6147 (return_internal): Add TARGET_FLAT handling.
6148 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6149 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6150 (nonlocal_goto): Add TARGET_FLAT handling.
6151 * config/sparc/t-elf: Add -mflat multilib.
6152 * config/sparc/t-leon: Likewise.
6153
6154 2011-06-10 Jan Hubicka <jh@suse.cz>
6155
6156 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6157 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6158 (self_recursive_p): Use cgraph_function_node.
6159 (propagate_pure_const): Likewise.
6160 (propagate_nothrow): Likewise.
6161 * ipa-reference.c (ipa_reference_get_not_read_global): Use
6162 cgraph_function_node.
6163 (propagate_bits): Likewise.
6164 (propagate): Likewise.
6165
6166 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6167 Richard Earnshaw <rearnsha@arm.com>
6168
6169 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
6170 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6171 (*thumb2_movdi_vfp): Delete.
6172 (*arm_movdi_vfp_cortexa8): Delete.
6173 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6174 (*movdi_vfp_cortexa8): Likewise.
6175
6176 2011-06-10 Richard Guenther <rguenther@suse.de>
6177
6178 * stor-layout.c (initialize_sizetypes): Give names to all
6179 sizetype kinds.
6180
6181 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
6182
6183 PR tree-optimization/49318
6184 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6185 irrelevant pattern statements.
6186
6187 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6188
6189 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6190
6191 PR bootstrap/49354
6192 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6193 to last assignment.
6194
6195 2011-06-09 Jan Hubicka <jh@suse.cz>
6196
6197 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6198 do not recompute reachable flag.
6199 (cgraph_finalize_function, cgraph_analyze_functions): Set
6200 redefined_extern_inline here.
6201
6202 2011-06-09 Jan Hubicka <jh@suse.cz>
6203
6204 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6205 (cgraph_only_called_directly_p): ... this one; bring offline.
6206 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6207 varpool_used_from_object_file_p): Drop names from the declaratoin.
6208 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6209 collect_callers_of_node): New.
6210 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6211 (cgraph_edge_recursive_p): Use cgraph_function_node.
6212 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6213 (cgraph_node_cannot_be_local_p_1): Break out from ...
6214 (cgraph_node_can_be_local_p): ... here; walk aliases.
6215 (cgraph_for_node_thunks_and_aliases): New function.
6216 (cgraph_for_node_and_aliases): New function.
6217 (cgraph_make_node_local_1): Break out from ...
6218 (cgraph_make_node_local) ... here; use
6219 cgraph_for_node_thunks_and_aliases.
6220 (cgraph_set_nothrow_flag_1): Break out from ...
6221 (cgraph_set_nothrow_flag) ... here;
6222 use cgraph_for_node_thunks_and_aliases.
6223 (cgraph_set_const_flag_1): Break out from ...
6224 (cgraph_set_const_flag) ... here;
6225 use cgraph_for_node_thunks_and_aliases.
6226 (cgraph_set_pure_flag_1): Break out from ...
6227 (cgraph_set_pure_flag) ... here;
6228 use cgraph_for_node_thunks_and_aliases.
6229 (cgraph_propagate_frequency_1): Break out from ...
6230 (cgraph_propagate_frequency) ... here; use
6231 cgraph_for_node_thunks_and_aliases.
6232 (cgraph_used_from_object_file_p): Do not care about aliases.
6233 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6234 New functions.
6235 (collect_callers_of_node_1, collect_callers_of_node): New functions.
6236
6237 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6238
6239 PR rtl-optimization/49154
6240 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6241 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6242 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6243 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6244 * config/cris/cris.h (cris_register_move_cost): Remove
6245 !TARGET_V32 code. Tweak comments.
6246
6247 2011-06-09 Jan Hubicka <jh@suse.cz>
6248
6249 * cgraphbuild.c (record_eh_tables): Mark personality function as having
6250 address taken.
6251
6252 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6253
6254 PR rtl-optimization/49154
6255 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6256 is a matching slot in the hashtable, assign it to classes_ptr.
6257
6258 PR rtl-optimization/49154
6259 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6260 register classes.
6261 * doc/tm.texi: Regenerate.
6262
6263 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
6264
6265 PR target/49307
6266 * config/sh/sh.md (UNSPEC_CHKADD): New.
6267 (chk_guard_add): New define_insn_and_split.
6268 (symGOT_load): Use chk_guard_add instead of blockage.
6269
6270 2011-06-09 Kai Tietz <ktietz@redhat.com>
6271
6272 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6273
6274 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
6275
6276 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6277
6278 2011-06-09 Wei Guozhi <carrot@google.com>
6279
6280 PR target/46975
6281 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6282 (peephole2 for conditional move): Generate 16 bit instructions.
6283
6284 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
6285
6286 * config/i386/i386.md (*movdi_internal_rex64): Merge
6287 alternatives 6 and 8.
6288
6289 2011-06-09 David Li <davidxl@google.com>
6290
6291 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6292 * passes.c (passr_eq): New function.
6293 (create_pass_tab): New function.
6294 (pass_traverse): New function.
6295 (dump_one_pass): New function.
6296 (dump_pass_list): New function.
6297 (dump_passes): New function.
6298
6299 2011-06-09 David Li <davidxl@google.com>
6300
6301 * tree-complex.c (tree_lower_complex): Gate cleanup.
6302 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6303 (execute_optimize_stdarg): Ditto.
6304 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6305 (execute_cleanup_eh_1): Ditto.
6306 (execute_cleanup_eh): Ditto.
6307 * gcse.c (gate_rtl_pre): Ditto.
6308 (execute_rtl_pre): Ditto.
6309 * except.c (finish_eh_generation): Ditto.
6310 (convert_to_eh_region_ranges): Ditto.
6311 * cprop.c (one_cprop_pass): Ditto.
6312
6313 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
6314
6315 PR target/48673
6316 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6317 in all basic blocks.
6318
6319 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6320
6321 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6322 (HAVE_ENABLE_EXECUTE_STACK): Define.
6323 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6324 (HAVE_ENABLE_EXECUTE_STACK): Define.
6325 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6326 (HAVE_ENABLE_EXECUTE_STACK): Define.
6327 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6328 (ENABLE_EXECUTE_STACK): Remove.
6329 (HAVE_ENABLE_EXECUTE_STACK): Define.
6330 [IN_LIBGCC2]: Don't include <windows.h>.
6331 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6332 (HAVE_ENABLE_EXECUTE_STACK): Define.
6333 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6334 (HAVE_ENABLE_EXECUTE_STACK): Define.
6335 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6336 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6337 (HAVE_ENABLE_EXECUTE_STACK): Define.
6338 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6339 (HAVE_ENABLE_EXECUTE_STACK): Define.
6340 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6341 (HAVE_ENABLE_EXECUTE_STACK): Define.
6342 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6343 (HAVE_ENABLE_EXECUTE_STACK): Define.
6344 * config/alpha/alpha.c (alpha_trampoline_init): Test
6345 HAVE_ENABLE_EXECUTE_STACK.
6346 * config/i386/i386.c (ix86_trampoline_init): Likewise.
6347 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6348 (sparc64_initialize_trampoline): Likewise.
6349 * libgcc2.c [L_enable_execute_stack]: Remove.
6350 * system.h (ENABLE_EXECUTE_STACK): Poison.
6351 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6352 * doc/tm.texi: Regenerate.
6353 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6354
6355 2011-06-09 Jakub Jelinek <jakub@redhat.com>
6356
6357 PR middle-end/49308
6358 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6359 variable. After resetting and rescanning insn continue with previous
6360 statement.
6361
6362 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6363
6364 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6365 (gcc_cv_ld_hidden): Likewise.
6366 * configure: Regenerate.
6367 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6368 (ix86_stack_protect_fail): Mark unused.
6369 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6370 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6371 [TARGET_MACHO]: Don't define.
6372 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6373 (TARGET_STACK_PROTECT_FAIL): Likewise.
6374 (rs6000_stack_protect_fail): Mark unused.
6375 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
6376 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
6377
6378 2011-06-08 Andi Kleen <ak@linux.intel.com>
6379
6380 * varasm.c (get_section): Print location of other conflict
6381 for section conflicts.
6382
6383 2011-06-08 Andi Kleen <ak@linux.intel.com>
6384
6385 * config/i386/driver-i386.c (host_detect_local_cpu):
6386 Add model 0x2d Intel CPU.
6387
6388 2011-06-08 Andi Kleen <ak@linux.intel.com>
6389
6390 * reginfo.c (global_regs_decl): Add.
6391 (globalize_reg): Add decl parameter. Compute location. Pass location
6392 to warnings and add inform. Store decl in global_regs_decl.
6393 * rtl.h (globalize_reg): Update prototype.
6394 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
6395
6396 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
6397
6398 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
6399
6400 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6401
6402 PR target/49305
6403 * config/sh/predicates.md (general_movsrc_operand): Check
6404 mode for memory with indexed address for QI and HImode.
6405 (general_movdst_operand): Likewise.
6406
6407 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
6408
6409 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
6410
6411 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
6412
6413 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
6414 (num_ssa_operands): Likewise.
6415 (op_iter_init_phiuse): Forward-declare.
6416 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
6417
6418 2011-06-08 Nick Clifton <nickc@redhat.com>
6419
6420 * doc/invoke.texi (ARM Options): Update description of
6421 -mthumb-interwork.
6422
6423 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
6424
6425 * config/i386/driver-i386.c (host_detect_local_cpu): Support
6426 unknown Intel family 0x6 CPUs.
6427
6428 2011-06-08 Martin Jambor <mjambor@suse.cz>
6429
6430 * tree-sra.c (mark_rw_status): Removed.
6431 (analyze_access_subtree): New parameter parent instead of
6432 mark_read and mark_write, propagate from that.
6433
6434 2011-06-08 Julian Brown <julian@codesourcery.com>
6435
6436 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6437 for double-precision helper functions in hard-float mode if only
6438 single-precision arithmetic is supported in hardware.
6439
6440 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
6441
6442 PR rtl-optimization/49303
6443 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
6444 code_motion_path_driver returned 0 or 1.
6445 (sel_region_finish): Clear h_d_i_d.
6446
6447 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6448
6449 * config/sh/sh.c (prepare_move_operands): Set pic register
6450 appropriately for global and local dynamic tls models even
6451 if flag_pic is unset.
6452
6453 2011-06-07 Jason Merrill <jason@redhat.com>
6454
6455 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6456
6457 2011-06-07 Xinliang David Li <davidxl@google.com>
6458 * passes.c (enable_disable_pass): Handle assembler name.
6459 (is_pass_explicitly_enabled_or_disabled): Ditto.
6460
6461 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6462
6463 PR tree-optimization/48497
6464 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6465
6466 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6467
6468 PR tree-optimization/46728
6469 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6470 to use gimple_val_nonnegative_real_p.
6471 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6472 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
6473
6474 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
6475
6476 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6477
6478 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
6479
6480 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6481 constant vectors.
6482
6483 2011-06-07 Richard Guenther <rguenther@suse.de>
6484
6485 * stor-layout.c (initialize_sizetypes): Initialize all
6486 sizetypes based on target definitions.
6487 (set_sizetype): Remove.
6488 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6489 * tree.h (set_sizetype): Remove.
6490
6491 2011-06-07 Nick Clifton <nickc@redhat.com>
6492
6493 * config.gcc: Unify V850 architecture options and add support for
6494 newer V850 architectures.
6495 * config/v850/t-v850e: Delete.
6496
6497 2011-06-07 Richard Guenther <rguenther@suse.de>
6498
6499 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6500 Call set_sizetype from here.
6501
6502 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
6503
6504 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6505 (*maddhisi4tb, *maddhisi4tt): New define_insns.
6506
6507 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
6508 Andrew Stubbs <ams@codesourcery.com>
6509
6510 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6511 multiplies.
6512 * doc/md.texi (Canonicalization of Instructions): Document widening
6513 multiply canonicalization.
6514
6515 2011-06-07 Jakub Jelinek <jakub@redhat.com>
6516
6517 PR gcov-profile/49299
6518 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
6519
6520 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
6521
6522 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6523 a pointer.
6524 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6525 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6526 vect_recog_pow_pattern): Likewise.
6527 (vect_pattern_recog_1): Remove declaration.
6528 (widened_name_p): Remove declaration. Add new argument to specify
6529 whether to check that both types are either signed or unsigned.
6530 (vect_recog_widen_mult_pattern): Update documentation. Handle
6531 unsigned patterns and multiplication by constants.
6532 (vect_pattern_recog_1): Update vect_recog_func references. Use
6533 statement information from the statement returned from pattern
6534 detection functions.
6535 (vect_pattern_recog): Update vect_recog_func reference.
6536 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6537 multiplication by a constant use the type of the other operand.
6538
6539 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
6540
6541 PR rtl-optimization/49145
6542 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6543
6544 2011-06-06 Jakub Jelinek <jakub@redhat.com>
6545
6546 PR debug/49262
6547 * dwarf2out.c (native_encode_initializer): Decrement count in each
6548 iteration.
6549
6550 PR debug/49294
6551 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6552 non-MODE_INT modes.
6553
6554 PR c++/49264
6555 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6556 if stmt folded into nothing.
6557 * tree-inline.c (fold_marked_statements): If a builtin at the end of
6558 a bb folded into nothing, just update cgraph edges and move to next bb.
6559 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6560 to be NULL. Don't compute count and frequency if new_call is NULL.
6561
6562 2011-06-04 Diego Novillo <dnovillo@google.com>
6563
6564 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6565 (cgraph.o): Likewise.
6566 (cgraphunit.o): Likewise.
6567 * cgraphunit.c: Include lto-streamer.h
6568 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6569 if LTO is enabled.
6570 * lto-streamer-in.c (unpack_value_fields): Call
6571 streamer_hooks.unpack_value_fields if set.
6572 (lto_materialize_tree): For unhandled nodes, first try to
6573 call lto_streamer_hooks.alloc_tree, if it exists.
6574 (lto_input_ts_decl_common_tree_pointers): Move reading of
6575 DECL_INITIAL to lto_streamer_read_tree.
6576 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6577 (lto_streamer_read_tree): New.
6578 (lto_reader_init): Rename from lto_init_reader.
6579 Move initialization code to lto/lto.c.
6580 * lto-streamer-out.c (pack_value_fields): Call
6581 streamer_hooks.pack_value_fields if set.
6582 (lto_output_tree_ref): For tree nodes that are not normally indexable,
6583 call streamer_hooks.indexable_with_decls_p before giving up.
6584 (lto_output_ts_decl_common_tree_pointers): Move handling
6585 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6586 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6587 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
6588 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
6589 (lto_streamer_write_tree): New.
6590 (lto_output): Call lto_streamer_init directly.
6591 (lto_writer_init): Remove.
6592 * lto-streamer.c (streamer_hooks): New.
6593 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6594 instead of lto_preload_common_nodes.
6595 (lto_is_streamable): Move from lto-streamer.h
6596 (lto_streamer_hooks_init): New.
6597 (streamer_hooks): New.
6598 (streamer_hooks_init): New.
6599 * lto-streamer.h (struct output_block): Forward declare.
6600 (struct lto_input_block): Likewise.
6601 (struct data_in): Likewise.
6602 (struct bitpack_d): Likewise.
6603 (struct streamer_hooks): Declare.
6604 (streamer_hooks): Declare.
6605 (lto_streamer_hooks_init): Declare.
6606 (lto_streamer_write_tree): Declare.
6607 (lto_streamer_read_tree): Declare.
6608 (streamer_hooks_init): Declare.
6609 (lto_is_streamable): Move to lto-streamer.c
6610
6611 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6612
6613 * longlong.h (smul_ppmm): The resulting register pair contains the
6614 higher order word first.
6615
6616 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6617
6618 PR tree-optimization/46728
6619 * builtins.c (powi_table): Remove.
6620 (powi_lookup_cost): Remove.
6621 (powi_cost): Remove.
6622 (expand_powi_1): Remove.
6623 (expand_powi): Remove.
6624 (expand_builtin_pow_root): Remove.
6625 (expand_builtin_pow): Remove.
6626 (expand_builtin_powi): Eliminate handling of constant exponent.
6627 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
6628
6629 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6630
6631 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6632
6633 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6634
6635 * dce.c (reset_unmarked_insns_debug_uses): New.
6636 (delete_unmarked_insns): Skip debug insns.
6637 (prescan_insns_for_dce): Likewise.
6638 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6639 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6640 active reg can be found.
6641 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
6642 (convert_regs_1): Use it.
6643
6644 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6645
6646 * tree-pretty-print.c (dump_function_header): Add flags.
6647 Don't dump decl_uid with nouid.
6648 * tree-pretty-print.h (dump_function_header): Adjust.
6649 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6650 * passes.c (pass_init_dump_file): Pass dump_flags on.
6651 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6652
6653 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6654
6655 PR bootstrap/49270
6656 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6657
6658 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
6659
6660 PR tree-optimization/49243
6661 * calls.c (setjmp_call_p): Also check if fndecl has the
6662 returns_twice attribute.
6663
6664 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6665
6666 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6667 -ffast-math etc.
6668
6669 2011-06-06 Richard Henderson <rth@redhat.com>
6670 Georg-Johann Lay <avr@gjlay.de>
6671
6672 PR target/42210
6673 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6674 New predicates.
6675 * config/avr/avr.md ("insv"): New insn expander.
6676 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6677 "*insv.not.io", "*insv.reg"): New insns.
6678
6679 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
6680
6681 PR target/49285
6682 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6683 to nonimmediate_operand from memory_operand for the operand that is to
6684 be forced to memory by the expander. Lose the constraints.
6685
6686 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
6687
6688 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
6689 EH return when delayed branches are disabled.
6690
6691 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
6692
6693 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
6694 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
6695 calculation.
6696 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
6697 Simplify MODE_V1DF and MODE_V2SF handling.
6698 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
6699 Simplify MODE_SF handling.
6700
6701 2011-06-04 Jan Hubicka <jh@suse.cz>
6702
6703 PR tree-optimization/48893
6704 PR tree-optimization/49091
6705 PR tree-optimization/49179
6706 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
6707 Bounds check.
6708
6709 2011-06-04 Jan Hubicka <jh@suse.cz>
6710
6711 PR lto/48954
6712 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
6713 bitmaps.
6714
6715 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
6716
6717 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
6718
6719 2011-06-04 Jakub Jelinek <jakub@redhat.com>
6720
6721 PR target/49281
6722 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
6723 to be strictly smaller than 1 << shiftcount.
6724
6725 2011-06-04 Jan Hubicka <jh@suse.cz>
6726
6727 PR tree-optimize/48929
6728 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
6729 of empty predicate.
6730
6731 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
6732
6733 PR debug/48333
6734 * calls.c (emit_call_1): Prefer the __builtin declaration of
6735 builtin functions.
6736
6737 2011-06-03 Diego Novillo <dnovillo@google.com>
6738
6739 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
6740 (lto_input_tree_pointers): Likewise.
6741 * lto-streamer-out.c (pack_value_fields): Likewise.
6742 (lto_output_tree_pointers): Likewise.
6743 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
6744 and OPTIMIZATION_NODE.
6745
6746 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6747
6748 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
6749 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
6750 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
6751 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
6752 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
6753 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
6754 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
6755 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
6756 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
6757 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
6758 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
6759 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
6760 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
6761 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
6762 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
6763 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
6764 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
6765 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
6766 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
6767 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
6768 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
6769 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
6770 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
6771 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
6772 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
6773 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
6774 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
6775 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
6776 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
6777 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
6778 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
6779 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
6780 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
6781 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
6782 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
6783 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
6784 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
6785 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
6786 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
6787 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
6788 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
6789 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
6790 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
6791 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
6792 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
6793 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
6794 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
6795 * system.h (MD_UNWIND_SUPPORT): Poison.
6796 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
6797 * doc/tm.texi: Regenerate.
6798 * unwind-dw2.c: Include md-unwind-support.h instead of
6799 MD_UNWIND_SUPPORT.
6800 * config/ia64/unwind-ia64.c: Likewise.
6801 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6802
6803 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
6804
6805 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
6806
6807 2011-06-03 Richard Henderson <rth@redhat.com>
6808 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6809
6810 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
6811 (sigill_hdlr): Correct insn, insn size.
6812 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
6813
6814 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6815
6816 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
6817 t-slibgcc-dummy.
6818 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
6819 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
6820 * config/mips/t-iris: Remove.
6821 * config/mips/t-irix6: New file.
6822 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
6823
6824 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6825
6826 * Makefile.in (LIB2ADDEHDEP): Remove.
6827 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
6828 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
6829 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
6830 * config/t-darwin (LIB2ADDEHDEP): Remove.
6831 * config/t-freebsd (LIB2ADDEHDEP): Remove.
6832 * config/t-linux (LIB2ADDEHDEP): Remove.
6833
6834 2011-06-03 Diego Novillo <dnovillo@google.com>
6835
6836 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
6837 (lto_register_var_decl_in_symtab): Likewise.
6838 (lto_register_function_decl_in_symtab): Likewise.
6839 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
6840 logic to uniquify_nodes.
6841
6842 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6843
6844 * config/alpha/t-osf5: Remove.
6845 * config/alpha/t-osf-pthread: Remove.
6846 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
6847 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
6848
6849 2011-06-03 Julian Brown <julian@codesourcery.com>
6850
6851 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
6852 (strongarm1110): Use strongarm tuning.
6853 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
6854 * config/arm/arm.c (arm_strongarm_tune): New.
6855 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6856 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
6857 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
6858 setting, using previous defaults or 1 for Cortex-A5.
6859 (arm_option_override): Set max_insns_skipped from current tuning.
6860
6861 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
6862
6863 * doc/install.texi (Options specification): Document --with-specs.
6864
6865 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6866
6867 * config/arm/neon.md (orndi3_neon): Actually split it.
6868
6869 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
6870
6871 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
6872 * var-tracking.c (reverse_op): Limite recurse depth to 5.
6873
6874 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
6875
6876 PR debug/47590
6877 * target.def (delay_sched2, delay_vartrack): New.
6878 * doc/tm.texi.in: Update.
6879 * doc/tm.texi: Rebuild.
6880 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
6881 * var-tracking.c (gate_handle_var_tracking): Likewise.
6882 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
6883 (bfin_flag_var_tracking): Drop.
6884 (output_file_start): Don't save and override flag_var_tracking.
6885 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
6886 (bfin_reorg): Test original variables.
6887 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6888 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
6889 (ia64_flag_var_tracking): Drop.
6890 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6891 (ia64_file_start): Don't save and override flag_var_tracking.
6892 (ia64_override_options_after_change): Ditto
6893 flag_schedule_insns_after_reload.
6894 (ia64_reorg): Test original variables.
6895 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
6896 (picochip_flag_var_tracking): Drop.
6897 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6898 (picochip_option_override): Don't save and override
6899 flag_schedule_insns_after_reload.
6900 (picochip_asm_file_start): Ditto flag_var_tracking.
6901 (picochip_reorg): Test original variables.
6902 * config/spu/spu.c (spu_flag_var_tracking): Drop.
6903 (TARGET_DELAY_VARTRACK): Define.
6904 (spu_var_tracking): New.
6905 (spu_machine_dependent_reorg): Call it.
6906 (asm_file_start): Don't save and override flag_var_tracking.
6907
6908 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
6909
6910 PR target/49163
6911 * config/sh/predicates.md (general_movsrc_operand): Return 0
6912 for memory and memory subreg of which address is an invalid
6913 indexed address for QI and HImode.
6914 (general_movdst_operand): Likewise.
6915
6916 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
6917
6918 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
6919 edges only, when there is a non-local label in the function.
6920 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
6921
6922 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
6923
6924 * config/i386/constraints.md (Y3): New register constraint.
6925 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
6926 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
6927 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
6928 *sse2_interleave_lowv2df.
6929
6930 2011-06-02 Julian Brown <julian@codesourcery.com>
6931
6932 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
6933 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
6934 (arm_cortex_a5_tune): New.
6935
6936 2011-06-02 Julian Brown <julian@codesourcery.com>
6937
6938 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
6939 * config/arm/arm.c (arm_default_branch_cost): New.
6940 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6941 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
6942 (arm_fa726_tune): Set branch_cost field using
6943 arm_default_branch_cost.
6944 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
6945 current_tune structure.
6946 * dojump.c (tm_p.h): Include file.
6947
6948 2011-06-02 Julian Brown <julian@codesourcery.com>
6949
6950 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
6951 tuning.
6952 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
6953 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
6954 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
6955 field.
6956 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
6957 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
6958 (arm_fa726te_tune): Add prefer_constant_pool setting.
6959 (arm_v6t2_tune, arm_cortex_tune): New.
6960 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
6961 prefer_constant_pool setting.
6962
6963 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
6964
6965 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
6966 switch statement.
6967 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
6968 (*movdf_internal) <case 6,7,8>: Ditto.
6969
6970 * config/i386/constraints.md (Y4): New register constraint.
6971 * config/i386/sse.md (vec_set<mode>_0): Merge with
6972 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
6973 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
6974 *vec_extractv2di_1_sse.
6975 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
6976 and *vec_concatv2di_rex64_sse.
6977
6978 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
6979
6980 PR target/48807
6981 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
6982 of cgraph_local_info for null before attempting to use it.
6983
6984 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
6985
6986 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
6987 (current_function_dynamic_alloc_count): Delete.
6988 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
6989 (expand_builtin_nonlocal_goto): Remove obsolete comment.
6990 (expand_builtin_update_setjmp_buf): Remove dead code.
6991 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
6992 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
6993 support.
6994 * function.c (instantiate_virtual_regs): Likewise.
6995 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
6996 for a block with a single abnormal incoming edge.
6997 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
6998 (SETJMP_VIA_SAVE_AREA): Delete.
6999 * config/sparc/sparc-protos.h (load_got_register): Declare.
7000 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7001 (load_got_register): Make global.
7002 (sparc_frame_pointer_required): Add 'static'.
7003 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
7004 (sparc_builtin_setjmp_frame_value): New function.
7005 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7006 (save_stack_nonlocal): New expander.
7007 (restore_stack_nonlocal): Likewise.
7008 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7009 (nonlocal_goto_internal): New insn.
7010 (goto_handler_and_restore): Delete.
7011 (builtin_setjmp_setup): Likewise.
7012 (do_builtin_setjmp_setup): Likewise.
7013 (setjmp): Likewise.
7014 (builtin_setjmp_receiver): New expander.
7015
7016 2011-06-01 David Li <davidxl@google.com>
7017
7018 PR middle-end/49261
7019 * tree-pretty-print.c (dump_function_header): Format cleanup.
7020
7021 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7022
7023 PR target/49238
7024 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7025 needed when original operands are used for msw_skip comparison.
7026
7027 2011-06-01 Jakub Jelinek <jakub@redhat.com>
7028
7029 PR debug/49250
7030 * var-tracking.c (add_uses, add_stores): Don't call
7031 cselib_subst_to_values on ENTRY_VALUE.
7032
7033 2011-06-01 Diego Novillo <dnovillo@google.com>
7034
7035 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7036 output_record_start with LTO_null instead of output_zero.
7037 (lto_output_ts_binfo_tree_pointers): Likewise.
7038 (lto_output_tree): Likewise.
7039 (output_eh_try_list): Likewise.
7040 (output_eh_region): Likewise.
7041 (output_eh_lp): Likewise.
7042 (output_eh_regions): Likewise.
7043 (output_bb): Likewise.
7044 (output_function): Likewise.
7045 (output_unreferenced_globals): Likewise.
7046 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7047 instead of NUM_TREE_CODES.
7048 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7049 (lto_output_int_in_range): Change << to >> when shifting VAL.
7050
7051 2011-06-01 Diego Novillo <dnovillo@google.com>
7052
7053 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7054 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7055
7056 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7057
7058 PR target/45074
7059 * optabs.h (valid_multiword_target_p): Declare.
7060 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7061 doing multi-word operations.
7062 * optabs.c (expand_binop): Likewise.
7063 (expand_doubleword_bswap): Likewise.
7064 (expand_absneg_bit): Likewise.
7065 (expand_unop): Likewise.
7066 (expand_copysign_bit): Likewise.
7067 (multiword_target_p): New function.
7068
7069 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7070
7071 PR rtl-optimization/48830
7072 PR rtl-optimization/48808
7073 PR rtl-optimization/48792
7074 * reload.c (push_reload): Check contains_reg_of_mode.
7075 * reload1.c (strip_paradoxical_subreg): New function.
7076 (gen_reload_chain_without_interm_reg_p): Use it to handle
7077 paradoxical subregs.
7078 (emit_output_reload_insns, gen_reload): Likewise.
7079
7080 2011-06-01 David Li <davidxl@google.com>
7081
7082 * predict.c : Change pass name
7083 * ipa.c: Ditto.
7084 * dce.c: Ditto.
7085 * tree-profile.c: Ditto.
7086 * except.c: Ditto.
7087
7088 2011-06-01 David Li <davidxl@google.com>
7089
7090 * tree-pretty-print.c (dump_function_header): New function.
7091 * final.c (rest_of_clean_state): Use header dumper.
7092 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7093 * passes.c (pass_init_dump_file): Use header dumper.
7094
7095 2011-06-01 Jakub Jelinek <jakub@redhat.com>
7096
7097 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7098 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7099 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7100 New functions.
7101 (mem_loc_descriptor): Use them.
7102
7103 * var-tracking.c (create_entry_value): New function.
7104 (vt_add_function_parameter): Use it.
7105
7106 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7107
7108 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7109 Include <signal.h>, <ucontext.h>.
7110 (sigill_caught): Define.
7111 (sigill_hdlr): New function.
7112 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7113 insns can be executed.
7114 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
7115 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7116
7117 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7118
7119 * config/t-slibgcc-darwin: Move to ...
7120 * config/t-slibgcc-dummy: ... this. Clarify comments.
7121 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7122 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7123 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
7124 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
7125 Remove i386/t-crtstuff from tmake_file.
7126 (i[34567]86-*-solaris2*): Remove t-svr4,
7127 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7128 t-slibgcc-dummy.
7129 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7130 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7131 sparc/t-crtfm from tmake_file.
7132 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7133 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7134 Remove extra_parts.
7135 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7136 * config/i386/t-nwld (SHLIB_LINK): Remove.
7137 * config/i386/t-rtems-i386: Rename to ...
7138 * config/i386/t-rtems: ... this.
7139 ($(T)crti.o, $(T)crtn.o): Remove.
7140 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7141 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7142 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7143 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7144 EXTRA_MULTILIB_PARTS): Remove.
7145 * config/sparc/t-sol2-64: Likewise.
7146 * config/sparc/t-sol2: Remove.
7147 * config/sparc/t-crtin: Remove.
7148 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7149 * config/i386/gmon-sol2.c: Remove.
7150 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7151 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7152 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7153 * config/i386/sol2-gc1.asm: Remove.
7154 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7155 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7156 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7157 * config/t-slibgcc-sld: Remove.
7158
7159 2011-06-01 Jakub Jelinek <jakub@redhat.com>
7160
7161 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7162 base_type_for_mode with op_mode instead of mode.
7163
7164 2011-06-01 Paul Brook <paul@cpodesourcery.com>
7165
7166 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
7167 Cortex-A15.
7168 * config/arm/arm-tune.md: Regenerate.
7169 * config/arm/arm-tables.opt: Regenerate.
7170 * config/arm/arm.c (FL_DIV): Rename...
7171 (FL_THUMB_DIV): ... to this.
7172 (FL_ARM_DIV): Define.
7173 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7174 (arm_arch_hwdiv): Remove.
7175 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7176 (arm_issue_rate): Add cortexr5.
7177 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7178 __ARM_ARCH_EXT_IDIV__.
7179 (TARGET_IDIV): Define.
7180 (arm_arch_hwdiv): Remove.
7181 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7182 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7183 (divsi3, udivsi3): New patterns.
7184 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7185 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7186
7187 2011-06-01 Martin Jambor <mjambor@suse.cz>
7188
7189 * ipa-utils.c (ipa_dfs_info): New field scc_no.
7190 * ipa-utils.c (searchc): Set scc_no.
7191
7192 2011-06-01 Martin Jambor <mjambor@suse.cz>
7193
7194 * ipa-utils.c (searchc_env): New field allow_overwritable.
7195 (searchc): do not ignore edges to overwritable nodes if indicated
7196 by env->allow_overwritable.
7197 (ipa_reduced_postorder): Set env.allow_overwritable.
7198
7199 2011-06-01 Richard Guenther <rguenther@suse.de>
7200
7201 * tree.c (free_lang_data): Do not reset boolean_type_node nor
7202 char_type_node.
7203 * lto-streamer.c (lto_record_common_node): Take node pointer,
7204 do not register types.
7205 (lto_preload_common_nodes): Explicitly skip preloading nodes
7206 that differ between frontends.
7207
7208 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
7209
7210 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7211 NON_FLOAT_REGS.
7212
7213 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
7214
7215 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7216 parameter value for dump. Dump cost on outermost call only.
7217 (rs6000_memory_move_cost): Dump cost on outermost call only.
7218
7219 2011-05-31 Jakub Jelinek <jakub@redhat.com>
7220
7221 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7222 DW_OP_GNU_convert ops.
7223
7224 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7225 cselib_preserve_constants.
7226 (cselib_lookup_1): If cselib_preserve_constants,
7227 a new VALUE is being created for REG and there is a VALUE for the
7228 same register in wider mode, add another loc with lowpart SUBREG of
7229 the wider VALUE.
7230 (cselib_subst_to_values): Handle ENTRY_VALUE.
7231 * var-tracking.c (replace_expr_with_values): Return NULL for
7232 ENTRY_VALUE too.
7233 * dwarf2out.c (convert_descriptor_to_signed): New function.
7234 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7235 instead of two shifts.
7236 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7237 the right mode if needed.
7238 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7239 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7240 convert_descriptor_to_signed.
7241 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7242 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7243
7244 PR target/48688
7245 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7246
7247 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
7248
7249 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7250 of X87MODEI12 and SWI48x instead of SSEMODEI24.
7251 (SWI248x): New mode iterator, rename from X87MODEI.
7252 (X87MODEI): Remove mode iterator.
7253 (X87MODEI12): Ditto.
7254 (SSEMODEI24): Ditto.
7255
7256 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7257
7258 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7259 * doc/invoke.texi: Document max-vartrack-expr-depth.
7260 * var-tracking.c (EXPR_DEPTH): New.
7261 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7262
7263 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7264
7265 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7266 * config/i386/sse.md: Add n to negated FMA pattern names.
7267
7268 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7269
7270 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7271
7272 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7273
7274 * gengtype-state.c (read_state_params_structs): Initialize previous.
7275
7276 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
7277
7278 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7279 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7280
7281 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
7282
7283 * config/i386/i386.md (*movtf_internal): Avoid allocating general
7284 registers. Penalize F*r->o alternative to prevent partial memory
7285 stalls. Slightly penalize *roF->*r alternative. Generate SSE
7286 CONST_DOUBLE immediates when optimizing function for size. Do not move
7287 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7288 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7289 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7290 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7291 alternatives.
7292 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7293
7294 (fp_register_operand splitters): Use fp_register_operand
7295 constraint. Do not use FP_REG_P in insn condition.
7296 (any_fp_register_operand splitters): Use any_fp_register_operand
7297 constraint. Do not use ANY_FP_REG_P in insn condition.
7298
7299 2011-05-31 Jan Hubicka <jh@suse.cz>
7300
7301 * cgraph.h (cgraph_inline_failed_t): Give enum a name
7302 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7303 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7304 (lto_output_edge): Use output_enum and var_len_unsigned.
7305 (lto_output_varpool_node): Likewise.
7306 (input_overwrite_node): Do not take resolution parameter;
7307 extract it from a bitpack.
7308 (input_node): Do not read resolution; use input_enum and
7309 var_len_unsigned.
7310 (input_varpool_node): Likewise.
7311 (input_edge): Likewise.
7312 (input_cgraph_1): Likewise.
7313
7314 2011-05-31 Richard Guenther <rguenther@suse.de>
7315
7316 * gimple.c (gimple_register_canonical_type): Do not register
7317 any types via gimple_register_type.
7318
7319 2011-05-31 Jan Hubicka <jh@suse.cz>
7320
7321 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7322 of thunks.
7323
7324 2011-05-31 Jakub Jelinek <jakub@redhat.com>
7325
7326 PR rtl-optimization/49235
7327 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7328 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7329
7330 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
7331
7332 PR tree-optimization/49093
7333 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7334 data references.
7335
7336 2011-05-31 Dodji Seketeli <dodji@redhat.com>
7337
7338 PR debug/49047
7339 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
7340 for concrete functions containing the code of cloned functions.
7341
7342 2011-05-31 Richard Guenther <rguenther@suse.de>
7343
7344 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7345 to ...
7346 (forward_propagate_into_comparison_1): ... this.
7347 (forward_propagate_comparison): Rename to ...
7348 (forward_propagate_into_comparison): ... this. Split out
7349 real forward propagation code to ...
7350 (forward_propagate_comparison): ... this.
7351 (forward_propagate_into_gimple_cond): Remove looping.
7352 (forward_propagate_into_cond): Likewise.
7353 (simplify_not_neg_expr): Return whether we have done something.
7354 (simplify_gimple_switch): Likewise.
7355 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7356 (ssa_forward_propagate_and_combine): ... this. Re-structure
7357 to do a forward forward-propagation walk on BBs and a backward
7358 stmt combining walk on BBs. Consistently re-scan changed statements.
7359 (pass_forwprop): Adjust.
7360
7361 2011-05-30 Ian Lance Taylor <iant@google.com>
7362
7363 * godump.c (go_format_type): Correct length of name added to
7364 obstack for anonymous field.
7365
7366 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
7367
7368 PR target/49186
7369 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7370 part of the second operand is 0.
7371
7372 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
7373
7374 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7375 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
7376 to memory for !TARGET_MEMORY_MISMATCH_STALL.
7377 (*movdf_internal_rex64): Do not penalize F->r alternative.
7378 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7379 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
7380 when optimizing function for size. Do not move CONST_DOUBLEs
7381 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7382 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
7383 SUBREGs. Do not check for MEM_P operands in the insn condition,
7384 check for ANY_FP_REGNO_P instead.
7385 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
7386 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
7387 function for speed.
7388 * config/i386/i386.c (ix86_option_override_internal): Do not
7389 set TARGET_INTEGER_DFMODE_MOVES here.
7390
7391 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
7392
7393 PR target/49168
7394 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
7395
7396 2011-05-30 Jakub Jelinek <jakub@redhat.com>
7397
7398 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
7399 DW_TAG_rvalue_reference_type even for
7400 -gdwarf-4 -fno-debug-types-section.
7401
7402 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7403
7404 PR tree-optimization/46728
7405 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
7406 (build_and_insert_binop): New.
7407 (gimple_expand_builtin_pow): Reorder args for
7408 build_and_insert_call; use build_and_insert_binop; add more
7409 optimizations for fractional exponents.
7410
7411 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
7412
7413 PR bootstrap/49190
7414
7415 Revert:
7416 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7417
7418 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7419 tree_common.
7420 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7421 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7422 TS_BASE instead of TS_COMMON.
7423 * varasm.c (assemble_name): Remove assert.
7424
7425 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
7426
7427 * config.gcc: Keep obselete list sorted.
7428
7429 2011-05-30 Jakub Jelinek <jakub@redhat.com>
7430 Eric Botcazou <ebotcazou@adacore.com>
7431
7432 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7433 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7434 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7435 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7436 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7437
7438 2011-05-30 Richard Guenther <rguenther@suse.de>
7439
7440 * gimple.c (gimple_types_compatible_p_1): Compare record
7441 and union type members properly.
7442
7443 2011-05-30 Richard Guenther <rguenther@suse.de>
7444
7445 PR tree-optimization/49210
7446 * ipa-split.c (split_function): Care for the case where the call
7447 result is not trivially convertible to the result holding variable.
7448
7449 2011-05-30 Richard Guenther <rguenther@suse.de>
7450
7451 PR tree-optimization/49218
7452 * tree-vrp.c (adjust_range_with_scev): Properly check whether
7453 overflow occured.
7454
7455 2011-05-30 Richard Guenther <rguenther@suse.de>
7456
7457 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7458 New function split out from ...
7459 (forward_propagate_into_gimple_cond): ... here. Adjust.
7460 (forward_propagate_into_cond): Likewise.
7461 (forward_propagate_comparison): Also propagate into
7462 comparisons on assignment RHS. Change return value to
7463 behave similar to forward_propagate_into_cond.
7464 (tree_ssa_forward_propagate_single_use_vars): Handle
7465 strict-overflow warnings properly for forward_propagate_comparison.
7466
7467 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7468
7469 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7470 from plugin linker.
7471 * configure: Regenerate.
7472
7473 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
7474
7475 PR tree-optimization/49199
7476 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7477 non-reduction operands are either defined in the loop or by induction.
7478
7479 2011-05-29 Xinliang David Li <davidxl@google.com>
7480
7481 * opts-global.c (handle_common_deferred_options): Handle new options.
7482 * passes.c (register_one_dump_file): Call register_pass_name.
7483 (execute_one_pass): Check explicit enable/disable flag.
7484 (passr_hash): New function.
7485 (passr_eq): Ditto.
7486 (register_pass_name): Ditto.
7487 (get_pass_by_name): Ditto.
7488 (pass_hash): Ditto.
7489 (pass_eq): Ditto.
7490 (enable_pass): Ditto.
7491 (disable_pass): Ditto.
7492 (is_pass_explicitly_enabled_or_disabled): Ditto.
7493
7494 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
7495
7496 * config/i386/i386.md (*movoi_internal_avx): Use
7497 standard_sse_constant_opcode for alternative 0.
7498 (*movti_internal_sse): Ditto.
7499 (*movti_internal_rex64): Use standard_sse_constant_opcode for
7500 alternative 2.
7501 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7502 sselog1 type moves.
7503 (*movsi_internal): Ditto.
7504 (*movdi_internal): Ditto. Add ssecvt type moves.
7505
7506 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
7507
7508 PR target/48830
7509 * rtlanal.c (simplify_subreg_regno): Adjust comment.
7510
7511 2011-05-29 Jakub Jelinek <jakub@redhat.com>
7512
7513 PR rtl-optimization/49095
7514 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7515 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7516
7517 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7518
7519 PR target/43995
7520 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7521 recurse_p argument. Only follow register copies if it is set,
7522 and prevent mips_find_pic_call_symbol from recursing.
7523 (mips_find_pic_call_symbol): Add a recurse_p argument.
7524 Pass it to mips_pic_call_symbol_from_set.
7525 (mips_annotate_pic_calls): Update accordingly.
7526
7527 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7528
7529 * emit-rtl.c (try_split): Use a loop to search for
7530 NOTE_INSN_CALL_ARG_LOCATIONs.
7531
7532 2011-05-29 Richard Guenther <rguenther@suse.de>
7533
7534 PR tree-optimization/49217
7535 * ipa-pure-const.c (propagate_pure_const): Fix typos.
7536
7537 2011-05-28 Jan Hubicka <jh@suse.cz>
7538
7539 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7540 length.
7541 (string_slot_free): Remove
7542 (create_output_block): Initialize obstack.
7543 (destroy_output_block): Free obstack.
7544 (lto_string_index): Add PERSISTENT parameter; do not duplicate
7545 the string unless it needs to be added into the hash.
7546 (lto_output_string_with_length): Add persistent attribute;
7547 handle NULL strings.
7548 (lto_output_string): Add PERSISTENT parameter.
7549 (output_string_cst, output_identifier): Simplify.
7550 (lto_output_location_bitpack): Update.
7551 (lto_output_builtin_tree): Update.
7552 * lto-streamer.h (struct output_block): Add obstack.
7553 (lto_output_string, lto_output_string_with_length): Remove
7554 declarations; functions are static now.
7555
7556 2011-05-28 Jan Hubicka <jh@suse.cz>
7557
7558 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7559 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7560 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7561 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7562 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7563 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7564 unpack_ts_decl_with_vis_value_fields,
7565 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7566 lto_get_builtin_tree): Use enum and variable length i/o.
7567 * basic-block.h (profile_status_d): Add PROFILE_LAST.
7568 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7569 New functions.
7570 (bp_pack_enum, bp_unpack_enum): New macros.
7571
7572 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7573
7574 * genrecog.c: Remove redundant forward declarations.
7575
7576 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7577
7578 * config.gcc: Deprecate mips*-*-openbsd*.
7579
7580 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7581
7582 PR bootstrap/49195
7583 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7584 for match_op_dup.
7585
7586 2011-05-27 Andrew Pinski <pinskia@gmail.com>
7587
7588 PR middle-end/48981
7589 * gengtype.c (vec_prefix_type): New function.
7590 (note_def_vec): Use vec_prefix_type and change the length
7591 attribute to be based on the prefix.
7592 * vec.c: Include coretypes.h before vec.h.
7593 (struct vec_prefix): Remove.
7594 (vec_gc_p_reserve): Change the offsetof to sizeof.
7595 (vec_gc_p_reserve_exact): Likewise.
7596 (vec_heap_p_reserve): Likewise.
7597 (vec_heap_p_reserve_exact): Likewise.
7598 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7599 (vec_stack_p_reserve): Change the offsetof to sizeof.
7600 (vec_stack_p_reserve_exact): Likewise.
7601 * vec.h (struct vec_prefix): New struct definition.
7602 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7603 (VEC_T_GTY(T,B)): Likewise.
7604 (DEF_VEC_FUNC_P(T)): Use prefix field.
7605 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7606 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7607
7608 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7609
7610 PR tree-optimization/46728
7611 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7612 (powi_as_mults): Add gimple_set_location.
7613 (build_and_insert_call): New.
7614 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7615 0.5, 0.25, 0.75, 1./3., or 1./6.
7616
7617 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
7618
7619 * doc/contrib.texi: Update copyright years.
7620 (Contributors): Add Zdenek Sojka.
7621
7622 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
7623
7624 * c-decl.c (c_push_function_context): Copy the current statement
7625 list stack.
7626 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7627 (finish_struct): Call building_stmt_list_p instead of checking
7628 cur_stmt_list.
7629 * c-parser.c (c_parser_postfix_expression): Likewise.
7630 * c-typeck.c (c_end_compound_stmt): Likewise.
7631 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7632 * tree-iterator.c (stmt_list_cache): Change to a VEC.
7633 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7634 (free_stmt_list): Likewise.
7635 * tree.h (struct tree_statement_list): Include typed_tree instead
7636 of tree_common.
7637 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7638 as TS_TYPED instead of TS_COMMON.
7639
7640 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7641 Uros Bizjak <ubizjak@gmail.com>
7642
7643 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7644 (HAVE_AS_IX86_TLSGDPTL): Define.
7645 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7646 (HAVE_AS_IX86_TLSLDMPLT): Define.
7647 * configure: Regenerate.
7648 * config.in: Regenerate.
7649 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7650 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7651 TARGET_SUN_TLS, use @tlsgdplt or @plt.
7652 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7653 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7654 @tlsldmplt or @plt.
7655 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7656
7657 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7658
7659 * sched-int.h (struct _haifa_deps_insn_data): New members cond
7660 and reverse_cond.
7661 (INSN_COND, INSN_REVERSE_COND): New macros.
7662 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7663 once.
7664 (sched_get_condition_with_rev): Cache the results, and look them up
7665 if possible.
7666 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7667 are clobbered by the current insn.
7668 * target.def (exposed_pipline): New sched data hook.
7669 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7670 * doc/tm.texi: Regenerate.
7671
7672 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7673
7674 PR tree-optimization/49170
7675 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
7676 sincos or cexp.
7677
7678 2011-05-27 Richard Guenther <rguenther@suse.de>
7679
7680 PR middle-end/49189
7681 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7682 of comparisons.
7683
7684 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7685
7686 * haifa-sched.c (sched_scan_info): Remove.
7687 (schedule_block): Call sched_extend_luids rather than sched_init_luids
7688 with NULL args.
7689 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
7690 Remove functions.
7691 (sched_scan): Remove.
7692 (sched_extend_luids): Renamed from luids_extend_insn and no longer
7693 static. All callers changed.
7694 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
7695 static. All callers changed.
7696 (sched_init_luids): Remove all arguments except the first. All
7697 callers changed. Don't use sched_scan.
7698 (haifa_init_h_i_d): Likewise.
7699 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
7700 manually rather than using sched_init_luids. Likewise with
7701 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
7702 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
7703 rather than sched_init_luids with NULL args.
7704 * sel-sched-ir.c (new_insns): Remove variable.
7705 (sched_scan): New static function, previously in haifa-sched.c. Remove
7706 all arguments but the first two; all callers changed.
7707 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
7708 rather than sched_init_luids.
7709 (sel_init_bbs): Remove second argument. All callers changed.
7710 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
7711 with NULL arguments.
7712 (create_insn_rtx_from_pattern): Likewise.
7713 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
7714 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
7715 (sched_init_insn_luid, sched_extend_luids): Declare.
7716 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
7717 declarations.
7718
7719 2011-05-27 Richard Guenther <rguenther@suse.de>
7720
7721 PR middle-end/49177
7722 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
7723 A CMP B ? (T) true : (T) false for non-integral types T again.
7724
7725 2011-05-27 Jan Hubicka <jh@suse.cz>
7726
7727 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
7728 so 0 means NULL string.
7729 (lto_output_string_with_length): ... here.
7730 (lto_output_string, output_string_cst, output_identifier): Update
7731 handling of NULL strings.
7732 (lto_output_location_bitpack): New function.
7733 (lto_output_location): Use it.
7734 (lto_output_tree_ref): Use output_record_start.
7735 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
7736 len values.
7737 * lto-streamer-in.c (string_for_index): Break out from ...; offset
7738 values by 1.
7739 (input_string_internal): ... here;
7740 (input_string_cst, input_identifier, lto_input_string): Update handling
7741 of NULL strings.
7742 (lto_input_location_bitpack): New function
7743 (lto_input_location): Use it.
7744 (unpack_ts_type_common_value_fields): Pack align & alias in var len
7745 values.
7746 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
7747 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
7748 (bp_pack_value): Sanity check the value range.
7749 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
7750 New functions.
7751 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
7752 New functions.
7753
7754 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
7755
7756 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
7757 call_arg_location instructions down the floor.
7758
7759 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
7760
7761 PR rtl-optimization/49154
7762 * ira.c (setup_pressure_classes): Process class without sublcasses
7763 as a candidate for pressure classes.
7764
7765 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
7766
7767 PR rtl-optimization/48575
7768 * genrecog.c (position_type): New enum.
7769 (position): New structure.
7770 (decision): Use position structure instead of a string.
7771 (root_pos, peep2_insn_pos_list): New variables.
7772 (next_position, compare_positions): New functions.
7773 (new_decision): Use position structures instead of strings.
7774 (maybe_both_true): Likewise.
7775 (change_state): Likewise.
7776 (write_tree): Likewise.
7777 (make_insn_sequence): Likewise.
7778
7779 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7780
7781 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
7782 TS_BASE instead of TS_COMMON.
7783 (find_decls_types_r): Check for TS_TYPED structure before looking at
7784 TREE_TYPE.
7785 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
7786 Add chain field.
7787 (BLOCK_CHAIN): Use new chain field.
7788
7789 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
7790
7791 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
7792 moves expensive on Power7 also.
7793
7794 2011-05-26 Richard Guenther <rguenther@suse.de>
7795
7796 * fold-const.c (fold_unary_loc): Remove bogus code.
7797
7798 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7799
7800 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7801 tree_common.
7802 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7803 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7804 TS_BASE instead of TS_COMMON.
7805 * varasm.c (assemble_name): Remove assert.
7806
7807 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
7808
7809 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
7810 substituted first.
7811 * libgcc-std.ver: Delete file.
7812
7813 2011-05-26 Richard Guenther <rguenther@suse.de>
7814
7815 PR tree-optimization/48702
7816 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
7817 only when we know the base address is within bounds.
7818 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
7819 assume the base address of TARGET_MEM_REFs is in bounds.
7820
7821 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7822
7823 PR target/49099
7824 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
7825 declaration in TARGET_SOLARIS.
7826
7827 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
7828
7829 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
7830 The instruction is then expanded explicitly.
7831 (supported_compare): Callable instruction.
7832 (compare): Likewise.
7833
7834 2011-05-26 Jakub Jelinek <jakub@redhat.com>
7835
7836 PR c++/49165
7837 * gimplify.c (shortcut_cond_r): Don't special case
7838 COND_EXPRs if they have void type on one of their arms.
7839
7840 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
7841
7842 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
7843 to reduce duplication, and to achieve a slightly more logical order
7844 of operations.
7845
7846 2011-05-26 Jakub Jelinek <jakub@redhat.com>
7847
7848 PR tree-optimization/49161
7849 * tree-vrp.c (struct case_info): New type.
7850 (compare_case_labels): Sort case_info structs instead of
7851 trees, and not primarily by CASE_LABEL uids but by
7852 label_for_block indexes.
7853 (find_switch_asserts): Put case labels into struct case_info
7854 array instead of TREE_VEC, adjust sorting, compare label_for_block
7855 values instead of CASE_LABELs.
7856
7857 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7858
7859 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
7860 ("orndi3_neon"): Likewise.
7861 ("bic<mode>3_neon"): Likewise.
7862
7863 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
7864
7865 PR tree-optimization/49038
7866 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
7867 Ensure at least one epilogue iteration if required by data
7868 accesses with gaps.
7869 * tree-vectorizer.h (struct _loop_vec_info): Add new field
7870 to mark loops that require peeling for gaps.
7871 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
7872 (vect_get_known_peeling_cost): Take peeling for gaps into
7873 account.
7874 (vect_transform_loop): Generate epilogue if required by data
7875 access with gaps.
7876 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
7877 loop as requiring an epilogue if there are gaps in the end of
7878 the strided group.
7879
7880 2011-05-25 Ian Lance Taylor <iant@google.com>
7881
7882 * godump.c (go_format_type): Output the first field with a usable
7883 Go type, if any.
7884
7885 2011-05-25 Ian Lance Taylor <iant@google.com>
7886
7887 * godump.c (go_format_type): Check for invalid type names, pointer
7888 target types, and struct field types.
7889
7890 2011-05-25 Jason Merrill <jason@redhat.com>
7891
7892 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
7893
7894 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
7895
7896 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
7897
7898 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7899
7900 * config/i386/i386.md (*movqi_extv_1)): Put back
7901 "register_operand" check in "type" calculation.
7902 (*movqi_extzv_2): Likewise.
7903
7904 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7905
7906 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
7907
7908 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
7909
7910 PR bootstrap/49160
7911 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
7912 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
7913 __divxc3, __divtc3): Wrap definitions in #ifndef.
7914
7915 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7916
7917 PR target/49142
7918 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
7919 "register_operand" check and replace q_regs_operand with
7920 QIreg_operand in "type" calculation.
7921 (*movqi_extv_1): Likewise.
7922 (*movqi_extzv_2_rex64): Likewise.
7923 (*movqi_extzv_2): Likewise.
7924
7925 * config/i386/predicates.md (QIreg_operand): New.
7926
7927 2011-05-25 Richard Guenther <rguenther@suse.de>
7928
7929 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7930 type-based offset disambiguation, streamline MEM_REF and
7931 TARGET_MEM_REF handling.
7932
7933 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7934
7935 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
7936 (bdesc_special_args): Add pause intrinsic.
7937
7938 * config/i386/i386.md (UNSPEC_PAUSE): New.
7939 (pause): Likewise.
7940 (*pause): Likewise.
7941 * config/i386/ia32intrin.h (__pause): Likewise.
7942
7943 * doc/extend.texi (X86 Built-in Functions): Add documentation for
7944 pause intrinsic.
7945
7946 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7947
7948 PR tree-optimization/46728
7949 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
7950 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
7951
7952 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
7953
7954 * tree.h (struct tree_exp): Inherit from struct tree_typed.
7955 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
7956 instead of TS_COMMON.
7957
7958 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
7959
7960 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
7961 LIBGCC2_GNU_PREFIX is defined.
7962 (__N): New macro.
7963 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
7964 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
7965 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
7966 __clz_tab): Define using __N.
7967 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
7968 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
7969 * target.def (libfunc_gnu_prefix): New hook.
7970 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
7971 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
7972 * doc/tm.texi: Regenerate.
7973 * system.h (LIBGCC2_GNU_PREFIX): Poison.
7974 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
7975 account.
7976 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
7977 (init_optabs): Likewise for the bswap libfuncs.
7978 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
7979 and divide.
7980 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
7981 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
7982 * libgcc-std.ver: Remove.
7983 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
7984 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
7985 libgcc-std.ver.
7986 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7987 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
7988 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
7989 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
7990 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
7991 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7992 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7993 * config/fixed-bit.h (FIXED_OP): Define differently depending on
7994 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
7995 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
7996
7997 2011-05-25 Jan Hubicka <jh@suse.cz>
7998
7999 * lto-streamer-out.c (output_record_start): Use lto_output_enum
8000 (lto_output_tree): Use output_record_start.
8001 * lto-streamer-in.c (input_record_start): Use lto_input_enum
8002 (lto_get_pickled_tree): Use input_record_start.
8003 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8004 (lto_value_range_error): New function.
8005 * lto-streamer.h (lto_value_range_error): Declare.
8006 (lto_output_int_in_range, lto_input_int_in_range): New functions.
8007 (lto_output_enum, lto_input_enum): New macros.
8008
8009 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
8010
8011 * common.opt (flag_stack_usage_info): New variable.
8012 (-Wstack-usage): New option.
8013 * doc/invoke.texi (Warning options): Document -Wstack-usage.
8014 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8015 <OPT_fstack_usage>: Likewise.
8016 * toplev.c (output_stack_usage): Handle -Wstack-usage.
8017 * calls.c (expand_call): Test flag_stack_usage_info variable instead
8018 of flag_stack_usage.
8019 (emit_library_call_value_1): Likewise.
8020 * explow.c (allocate_dynamic_stack_space): Likewise.
8021 * function.c (instantiate_virtual_regs ): Likewise.
8022 (prepare_function_start): Likewise.
8023 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8024 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8025 * config/arm/arm.c (arm_expand_prologue): Likewise.
8026 (thumb1_expand_prologue): Likewise.
8027 * config/avr/avr.c (expand_prologue): Likewise.
8028 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8029 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8030 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8031 * config/mips/mips.c (mips_expand_prologue): Likewise.
8032 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8033 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8034 * config/s390/s390.c (s390_emit_prologue): Likewise.
8035 * config/sh/sh.c (sh_expand_prologue): Likewise.
8036 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8037 * config/spu/spu.c (spu_expand_prologue): Likewise.
8038
8039 2011-05-25 Richard Guenther <rguenther@suse.de>
8040
8041 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8042 (gimple_canonical_types_compatible_p): Likewise.
8043
8044 2011-05-25 Jan Hubicka <jh@suse.cz>
8045
8046 PR middle-end/49062
8047 * ipa.c (function_and_variable_visibility): Only add to same
8048 comdat group list if DECL_ONE_ONLY.
8049
8050 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
8051
8052 PR rtl-optimization/49014
8053 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8054
8055 2011-05-25 Jakub Jelinek <jakub@redhat.com>
8056
8057 PR target/49128
8058 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8059
8060 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8061
8062 PR rtl-optimization/48757
8063 * ira-build.c (loop_with_eh_edge_p): Rename to
8064 loop_with_complex_edge_p, check edges on complexity, make function
8065 conditional.
8066 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8067 conditional.
8068
8069 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8070
8071 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8072 force flag_ira_share_save_slots to 0.
8073
8074 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8075
8076 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8077 (vt_initialize): Set PROLOGUE_BB unconditionally.
8078 Add block comment about CFA_BASE_RTX machinery.
8079 Reset FP_CFA_OFFSET to -1 on all invalid paths.
8080 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8081
8082 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
8083
8084 PR objc/48187
8085 * c-parser.c (c_parser_objc_class_instance_variables): More robust
8086 parsing of syntax error in ObjC instance variable lists. In
8087 particular, avoid an infinite loop if there is a stray ']'.
8088 Updated error message.
8089
8090 2011-05-24 Ian Lance Taylor <iant@google.com>
8091
8092 * godump.c (go_define): Don't accept a string immediately after
8093 another operand.
8094
8095 2011-05-24 Ian Lance Taylor <iant@google.com>
8096
8097 * godump.c (struct godump_container): Add invalid_hash field.
8098 (go_format_type): Return false if type is found in invalid_hash.
8099 (go_output_typedef): Add invalid type to invalid_hash.
8100 (go_finish): Create and delete invalid_hash.
8101
8102 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8103
8104 PR tree-optimization/46728
8105 * tree-ssa-math-opts.c (powi_table): New.
8106 (powi_lookup_cost): New.
8107 (powi_cost): New.
8108 (powi_as_mults_1): New.
8109 (powi_as_mults): New.
8110 (gimple_expand_builtin_powi): New.
8111 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8112 (gate_cse_sincos): Remove sincos/cexp restriction.
8113
8114 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8115
8116 PR target/3746
8117 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8118 mips-tdump native.
8119 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8120 * mips-tdump.c: Likewise.
8121
8122 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
8123
8124 PR target/49128
8125 * config/i386/driver-i386.c (host_detect_local_cpu): Always
8126 add -mno-XXX. Handle FMA.
8127
8128 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8129
8130 PR rtl-optimization/48633
8131 * ira-build.c (loop_with_eh_edge_p): New function.
8132 (mark_loops_for_removal): Use it.
8133
8134 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8135
8136 PR rtl-optimization/48971
8137 * ira.c (setup_pressure_classes): Don't check register move cost
8138 for classes with one registers. Don't add pressure class if there
8139 is a pressure class with the same available hard registers.
8140 Check contains_reg_of_mode. Fix a typo in collecting
8141 temp_hard_regset. Ignore hard registers not belonging to a class.
8142
8143 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
8144
8145 PR target/49133
8146 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8147
8148 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8149 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8150
8151 PR gcov-profile/48845
8152 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8153
8154 2011-05-24 Richard Guenther <rguenther@suse.de>
8155
8156 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8157 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8158 (gimple_types_compatible_p_1): Adjust.
8159 (iterative_hash_canonical_type): Do not bother about complete vs.
8160 incomplete types.
8161 (gimple_canonical_types_compatible_p): Likewise.
8162
8163 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8164
8165 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8166
8167 2011-05-24 Richard Guenther <rguenther@suse.de>
8168
8169 PR bootstrap/49078
8170 * gimple.c (gimple_register_canonical_type): Revert
8171 previous change.
8172 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8173 does not for a tree for the case where it matters. Cache
8174 pointer-type alias-sets.
8175
8176 2011-05-24 Joseph Myers <joseph@codesourcery.com>
8177
8178 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8179 (OBJS): Remove options.o, opts-common.o and prefix.o.
8180 (OBJS-libcommon-target): New.
8181 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8182 (BACKEND): Include libcommon-target.a.
8183 (MOSTLYCLEANFILES): Include libcommon-target.a.
8184 (libcommon-target.a): New.
8185 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8186 prefix.o.
8187
8188 2011-05-23 Joseph Myers <joseph@codesourcery.com>
8189
8190 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
8191 parts of output shared with the driver.
8192 * optc-gen.awk: Don't generate parts of output not shared with the
8193 driver.
8194 * opth-gen.awk: Remove GCC_DRIVER conditionals.
8195 * doc/options.texi (SourcerInclude): Mention options-save.c.
8196 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8197 (OBJS): Add options-save.o.
8198 (options-save.c, options-save.o): New.
8199 (options.o): Update dependencies.
8200 (gcc-options.o): Remove.
8201 (mostlyclean): Remove options-save.c.
8202
8203 2011-05-23 Jakub Jelinek <jakub@redhat.com>
8204
8205 PR debug/49032
8206 * dbxout.c: Include cgraph.h.
8207 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8208 and without value expr, return NULL if no varpool node exists for
8209 it or if it is not needed.
8210 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8211
8212 PR c/49120
8213 * c-decl.c (start_decl): Convert expr to void_type_node.
8214
8215 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
8216
8217 PR rtl-optimization/48826
8218 * emit-rtl.c (try_split): When splitting a call that is followed
8219 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8220
8221 2011-05-23 Jakub Jelinek <jakub@redhat.com>
8222
8223 * cfgexpand.c (expand_debug_expr): For unused non-addressable
8224 parameters passed in memory prefer using DECL_INCOMING_RTL over
8225 the pseudos it will be copied into.
8226
8227 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
8228
8229 PR target/47315
8230 * config/i386/i386.c (ix86_option_override_internal): Save the
8231 initial options after checking vzeroupper.
8232
8233 2011-05-23 David Li <davidxl@google.com>
8234
8235 PR tree-optimization/48988
8236 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8237 Initialize has_valid_pred for each pred chain.
8238
8239 2011-05-23 Richard Guenther <rguenther@suse.de>
8240
8241 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8242 (iterative_hash_gimple_type): Always hash type names.
8243
8244 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
8245
8246 * c-typeck.c (build_function_call_vec): Tweak call to
8247 check_function_arguments.
8248
8249 2011-05-23 Richard Guenther <rguenther@suse.de>
8250
8251 PR tree-optimization/49115
8252 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8253 is not necessarily carried out, do not claim it kills the ref.
8254 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8255
8256 2011-05-23 Richard Guenther <rguenther@suse.de>
8257
8258 PR middle-end/15419
8259 * builtins.c (fold_builtin_memory_op): Be less restrictive about
8260 what pointer types we accept for folding.
8261
8262 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8263
8264 * gthr-gnat.c: Remove.
8265 * gthr-gnat.h: Remove.
8266 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8267 * config/t-freebsd (LIB2ADDEH): Likewise.
8268 * config/t-linux (LIB2ADDEH): Likewise.
8269 * config/t-sol2 (LIB2ADDEH): Likewise.
8270 * config/ia64/t-vms (LIB2ADDEH): Likewise.
8271 * configure.ac (target_thread_file): Remove gnat handling.
8272 * configure: Regenerate.
8273 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8274
8275 2011-05-23 Tristan Gingold <gingold@adacore.com>
8276 Eric Botcazou <ebotcazou@adacore.com>
8277
8278 * gcov.c (create_file_names): If no object directory is specified,
8279 keep the directory of the file.
8280
8281 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8282
8283 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8284 * configure: Regenerate.
8285
8286 2011-05-23 Jakub Jelinek <jakub@redhat.com>
8287
8288 PR middle-end/48973
8289 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8290 failed and the comparison has a single bit signed type, use
8291 constm1_rtx instead of const1_rtx for true value.
8292 (do_store_flag): If ops->type is single bit signed type, disable
8293 signel bit test optimization and pass -1 instead of 1 as last
8294 parameter to emit_store_flag_force.
8295
8296 2011-05-23 Tom de Vries <tom@codesourcery.com>
8297
8298 PR target/45098
8299 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8300 function.
8301 (infer_loop_bounds_from_undefined): Use new function.
8302
8303 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8304
8305 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8306 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
8307 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8308 and -O0 otherwise.
8309 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8310
8311 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8312
8313 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8314 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8315 returns true.
8316
8317 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8318
8319 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8320
8321 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8322
8323 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8324 UNSPEC_MOVE_PIC pattern.
8325
8326 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8327
8328 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8329 (sparc-*-rtems*): Likewise.
8330 (sparc64-*-elf*): Likewise.
8331 (sparc64-*-rtems*): Likewise.
8332 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
8333 * config/sparc/t-crtin: New file.
8334 * config/sparc/t-sol2 (crti.o): Delete rule.
8335 (crtn.o): Likewise.
8336 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8337 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8338 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8339 (ENDFILE_SPEC): Add crtn.o.
8340
8341 2011-05-22 Tom de Vries <tom@codesourcery.com>
8342
8343 PR middle-end/48689
8344 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8345 CODE_CONTAINS_STRUCT (TS_COMMON).
8346
8347 2011-05-22 Jakub Jelinek <jakub@redhat.com>
8348
8349 PR middle-end/49029
8350 * expmed.c (extract_fixed_bit_field): Test whether target can be used
8351 only after deciding which mode to use.
8352
8353 2011-05-22 Tom de Vries <tom@codesourcery.com>
8354
8355 PR target/45098
8356 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
8357 for call to get_shiftadd_cost.
8358
8359 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
8360
8361 PR target/49104
8362 * config/i386/cpuid.h (bit_MMXEXT): New define.
8363
8364 2011-05-22 Nick Clifton <nickc@redhat.com>
8365
8366 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8367 initialisation of non-existant args[2] element. Use args[] array
8368 not arg[] array to pass arguments to build_function_type_list.
8369
8370 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
8371
8372 PR tree-optimization/49087
8373 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
8374
8375 2011-05-21 Jason Merrill <jason@redhat.com>
8376
8377 PR c++/49092
8378 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8379 static storage duration.
8380
8381 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8382
8383 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8384 frame pointer.
8385
8386 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8387
8388 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
8389 false if there are call-saved registers here...
8390 (sparc_can_use_return_insn_p): ...but here instead.
8391 (save_or_restore_regs): Fix thinko.
8392 (sparc_expand_prologue): Use current_function_is_leaf.
8393 (sparc_frame_pointer_required): Likewise.
8394
8395 2011-05-21 Nick Clifton <nickc@redhat.com>
8396
8397 PR target/49098
8398 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
8399
8400 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
8401
8402 * gengtype.c (walk_type): Implemented "atomic" GTY option.
8403 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
8404
8405 2011-05-21 Joseph Myers <joseph@codesourcery.com>
8406
8407 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
8408 * optc-gen.awk: Move common code to opt-read.awk.
8409 * opth-gen.awk: Likewise.
8410 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
8411
8412 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
8413
8414 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
8415
8416 2011-05-20 Tom de Vries <tom@codesourcery.com>
8417
8418 PR target/45098
8419 * tree-ssa-loop-ivopts.c: Include expmed.h.
8420 (get_shiftadd_cost): New function.
8421 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
8422
8423 2011-05-20 Jakub Jelinek <jakub@redhat.com>
8424
8425 PR bootstrap/49086
8426 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8427 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8428
8429 2011-05-20 Joseph Myers <joseph@codesourcery.com>
8430
8431 * Makefile.in: Update comment referring to $(OBJS-common).
8432
8433 2011-05-20 Ian Lance Taylor <iant@google.com>
8434
8435 * godump.c (go_output_typedef): Put enum constants in the macro
8436 hash table to avoid duplicate Go const definitions.
8437
8438 2011-05-20 Joseph Myers <joseph@codesourcery.com>
8439
8440 * Makefile.in (LIBDEPS): Add libcommon.a.
8441 (LIBS): Likewise.
8442 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8443 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8444 pretty-print.o and version.o.
8445 (OBJS-libcommon): New.
8446 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8447 (BACKEND): Add libcommon.a.
8448 (MOSTLYCLEANFILES): Likewise.
8449 (libcommon.a): New.
8450 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8451 (cpp$(exeext)): Likewise.
8452 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8453 pretty-print.o and input.o.
8454 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8455 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8456 (errors.o): Remove.
8457 (mips-tfile): Don't explicitly use version.o.
8458 (mips-tdump): Likewise.
8459 (gcov.o): Depend on $(DIAGNOSTIC_H).
8460 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8461 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8462 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8463 * gcov-dump.c: Include intl.h and diagnostic.h.
8464 (main): Initialize diagnostics.
8465 * gcov.c: Include diagnostic.h.
8466 (fnotice): Remove.
8467 (main): Initialize diagnostics.
8468 * lto-wrapper.c: Include diagnostic.h.
8469 (main): Initialize diagnostics.
8470
8471 2011-05-20 Michael Matz <matz@suse.de>
8472
8473 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8474
8475 2011-05-20 Michael Matz <matz@suse.de>
8476 Richard Guenther <rguenther@suse.de>
8477
8478 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8479 use lto_streamer_cache_append directly instead of returning a VEC.
8480 (preload_common_node): Remove.
8481 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8482 track seen nodes.
8483 (lto_streamer_cache_create): Call lto_preload_common_nodes.
8484
8485 2011-05-20 Richard Guenther <rguenther@suse.de>
8486
8487 PR tree-optimization/49079
8488 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8489 MEM_REFs correctly for the trailing array access detection.
8490 Special case constants the same way as decls for overall size
8491 constraining.
8492
8493 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
8494
8495 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8496 argument expansion.
8497
8498 2011-05-20 Jakub Jelinek <jakub@redhat.com>
8499
8500 PR tree-optimization/49073
8501 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8502 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8503 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8504
8505 2011-05-20 Richard Guenther <rguenther@suse.de>
8506
8507 PR middle-end/48849
8508 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8509 of pointer types the same way the middle-end does.
8510
8511 2011-05-20 Richard Guenther <rguenther@suse.de>
8512
8513 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8514 or pointer-to chains. Delay all fixup to uniquify_nodes.
8515
8516 2011-05-19 Quentin Neill <quentin.neill@amd.com>
8517
8518 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8519 (fma4_fmaddsub): Likewise
8520
8521 2011-05-19 Jan Hubicka <jh@suse.cz>
8522
8523 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8524 (GIMPLE_TYPE_PAIR_SIZE): New macro.
8525 (type_pair_cache): New static var.
8526 (lookup_type_pair): Use fixed sized custom hash; make inline.
8527 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8528 calls of lookup_type_pair.
8529 (print_gimple_types_stats): Remove cache stats.
8530 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8531 and gtc_ob.
8532
8533 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
8534
8535 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8536 when TARGET_RDRND is active.
8537 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8538 Generate dummy SImode target register when target is NULL.
8539
8540 2011-05-19 Joseph Myers <joseph@codesourcery.com>
8541
8542 * config/arm/arm-fpus.def: New.
8543 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8544 arm-fpus.def.
8545 * config/arm/arm-tables.opt: Regenerate.
8546 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8547 (arm_option_override): Don't decode FPU name to string here.
8548 * config/arm/arm.opt (mfpu=): Use Enum.
8549 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8550 Update dependencies.
8551
8552 2011-05-19 Joseph Myers <joseph@codesourcery.com>
8553
8554 * collect2.c: Include diagnostic.h.
8555 (fatal_perror, fatal, error, fancy_abort): Remove.
8556 (main): Set progname. Call xmalloc_set_program_name and
8557 diagnostic_initialize.
8558 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8559 scan_libraries, resolve_lib_name): Call fatal_error instead of
8560 fatal and fatal_perror.
8561 * collect2.h (error, fatal, fatal_perror): Don't declare.
8562 * tlink.c: Include diagnostic-core.h.
8563 (recompile_files): Call fatal_error instead of fatal_perror.
8564 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8565 pretty-print.o and input.o.
8566 (collect2.o, tlink.o): Update dependencies.
8567
8568 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8569
8570 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8571
8572 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8573
8574 PR target/40483
8575 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8576 COMDAT group syntax, both SPARC and x86 variants.
8577 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8578 * configure: Regenerate.
8579 * config/sol2.h (TARGET_SOLARIS): Define.
8580 (PUSHSECTION_FORMAT): Remove.
8581 (SECTION_NAME_FORMAT): Define.
8582 * config/sol2.c: Include hashtab.h.
8583 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8584 expansion, using SECTION_NAME_FORMAT.
8585 (solaris_comdat_htab): New variable.
8586 (struct comdat_entry): Define.
8587 (comdat_hash): New function.
8588 (comdat_eq): New function.
8589 (solaris_elf_asm_comdat_section): New function.
8590 (solaris_define_comdat_signature): New function.
8591 (solaris_code_end): New function.
8592 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8593 (solaris_code_end): Declare.
8594 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8595 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8596 solaris_code_end.
8597 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8598 Remove ATTRIBUTE_UNUSED.
8599 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8600 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
8601 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
8602 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8603 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8604 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8605 (PUSHSECTION_FORMAT): Remove.
8606 (SECTION_NAME_FORMAT): Redefine.
8607
8608 2011-05-19 Kai Tietz <ktietz@redhat.com>
8609
8610 * tree-cfg.c (verify_gimple_assign_binary): Barf on
8611 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8612 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8613
8614 2011-05-19 Anatoly Sokolov <aesok@post.ru>
8615 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8616
8617 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8618
8619 2011-05-19 Richard Guenther <rguenther@suse.de>
8620
8621 PR middle-end/48985
8622 * tree-object-size.c (addr_object_size): If the pointed-to
8623 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8624
8625 2011-05-19 Richard Guenther <rguenther@suse.de>
8626
8627 * gimple.c (gimple_types_compatible_p_1): Compare names of
8628 the types themselves.
8629 (iterative_hash_gimple_type): And hash them that way.
8630 (gimple_register_type_1): If we register a main variant properly
8631 initialize the leader to ourselves.
8632
8633 2011-05-19 Tom de Vries <tom@codesourcery.com>
8634
8635 PR target/45098
8636 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8637 get_loop_invariant_expr_id.
8638 (get_loop_invariant_expr_id): Use get_expr_id.
8639 (parm_decl_cost): New function.
8640 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8641 Improve bound cost estimation. Use different inv_expr_id for elim and
8642 express cases.
8643
8644 2011-05-19 Tom de Vries <tom@codesourcery.com>
8645
8646 PR target/45098
8647 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8648 cost_base.cost == 0.
8649
8650 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
8651
8652 PR target/49002
8653 * config/i386/sse.md
8654 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8655 load cast.
8656
8657 2011-05-18 Jakub Jelinek <jakub@redhat.com>
8658
8659 PR tree-optimization/49039
8660 * tree-vrp.c (extract_range_from_binary_expr): For
8661 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8662 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8663
8664 2011-05-18 Tom de Vries <tom@codesourcery.com>
8665
8666 PR target/45098
8667 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8668
8669 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
8670
8671 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8672 (*tls_global_dynamic_64): Ditto.
8673 (*tls_local_dynamic_base_32_gnu): Ditto.
8674 (*tls_local_dynamic_base_64): Ditto.
8675 (tls_initial_exec_64_sun): Ditto.
8676
8677 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
8678
8679 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8680 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8681 bf592-none.
8682 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8683 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8684 * config/bfin/bfin.c (bfin_cpus): Add bf592.
8685 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8686 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
8687 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
8688 * config/bfin/elf.h (LIB_SPEC): Add bf592.
8689
8690 2011-05-18 Joseph Myers <joseph@codesourcery.com>
8691
8692 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
8693 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
8694 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
8695 target_thread_pointer, arm_structure_size_boundary, struct
8696 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
8697 struct abi_name, arm_all_abis): Remove.
8698 (arm_option_override) Don't process most enumerated option values here.
8699 Don't process target_fpe_name here. Work with integer not string for
8700 structure size boundary; use separate diagnostics for each case.
8701 * config/arm/arm.h (enum float_abi_type, enum
8702 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
8703 to arm-opts.h.
8704 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
8705 arm_structure_size_boundary): Remove.
8706 * config/arm/arm.opt (mabi=): Use Enum and Init.
8707 (arm_abi_type): New Enum and EnumValue entries.
8708 (mfloat-abi=): Use Enum and Init.
8709 (float_abi_type): New Enum and EnumValue entries.
8710 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
8711 (mfp16-format=): Use Enum and Init.
8712 (arm_fp16_format_type): New Enum and EnumValue entries.
8713 (mstructure-size-boundary=): Use UInteger and Init.
8714 (mtp=): Use Enum and Init.
8715 (arm_tp_type): New Enum and EnumValue entries.
8716
8717 2011-05-18 Richard Guenther <rguenther@suse.de>
8718
8719 PR tree-optimization/49018
8720 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
8721 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
8722 gimple_has_side_effects.
8723
8724 2011-05-18 Richard Guenther <rguenther@suse.de>
8725
8726 * gimple.c (gimple_register_type_1): New function, split out from ...
8727 (gimple_register_type): ... here. Avoid infinite recursion.
8728
8729 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
8730
8731 PR tree-optimization/41881
8732 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8733 reduction_chains along with a macro for its access.
8734 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
8735 (destroy_loop_vec_info): Free reduction chains.
8736 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
8737 (vect_is_slp_reduction): New function.
8738 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
8739 (vect_create_epilog_for_reduction): Support SLP reduction chains.
8740 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
8741 definition types for reduction chains.
8742 (vect_supported_load_permutation_p): Don't allow permutations for
8743 reduction chains.
8744 (vect_analyze_slp_instance): Support reduction chains.
8745 (vect_analyze_slp): Try to build SLP instance from reduction chains.
8746 (vect_get_constant_vectors): Handle reduction chains.
8747 (vect_schedule_slp_instance): Mark the first statement of the
8748 reduction chain as reduction.
8749
8750 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
8751
8752 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
8753 names for group elements access.
8754 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
8755 reduction chains as well. Remove data reference and interleaving
8756 related words from the fields names.
8757 * tree-vect-loop.c (vect_transform_loop): Use new names for group
8758 elements access.
8759 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
8760 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
8761 vect_update_interleaving_chain, vect_same_range_drs,
8762 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
8763 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
8764 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
8765 vect_analyze_group_access, vect_analyze_data_ref_access,
8766 vect_create_data_ref_ptr, vect_transform_strided_load,
8767 vect_record_strided_load_vectors): Likewise.
8768 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
8769 vect_model_load_cost, vectorizable_store, vectorizable_load,
8770 vect_remove_stores, new_stmt_vec_info): Likewise.
8771 * tree-vect-slp.c (vect_build_slp_tree,
8772 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
8773
8774 2011-05-18 Richard Guenther <rguenther@suse.de>
8775
8776 PR middle-end/48989
8777 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
8778 operand verification.
8779 (verify_gimple_assign_binary): Likewise.
8780 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8781 to non-1-precision BOOLEAN_TYPEs.
8782
8783 2011-05-18 Tom de Vries <tom@codesourcery.com>
8784
8785 PR target/45098
8786 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
8787
8788 2011-05-18 Jakub Jelinek <jakub@redhat.com>
8789
8790 PR tree-optimization/49000
8791 * tree-ssa.c (execute_update_addresses_taken): Call
8792 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
8793 be rewritten and decl has been marked for renaming, reset
8794 the debug stmt.
8795
8796 2011-05-17 Joseph Myers <joseph@codesourcery.com>
8797
8798 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
8799 enum_opts_set when testing if attributes have set -mfpmath=.
8800
8801 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
8802
8803 * config/mips/mips.c (mips_handle_option): Remove unused variable.
8804
8805 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
8806
8807 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
8808 info->entry with 0
8809 * tree-inline.c (maybe_inline_call_in_expr): Initialize
8810 id.transform_lang_insert_block with NULL.
8811
8812 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
8813
8814 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
8815 (output_fp_compare): Change args 3 and 4 to bool.
8816 (ix86_expand_call): Change arg 6 to bool.
8817 (ix86_attr_length_immediate_default): Change arg 2 to bool.
8818 (ix86_attr_length_vex_default): Change arg 3 to bool.
8819 * config/i386/i386.md: Update all uses.
8820 * config/i386/i386.c: Ditto.
8821 (ix86_flags_dependent): Change return type to bool.
8822
8823 2011-05-17 Richard Guenther <rguenther@suse.de>
8824
8825 * gimple.c (type_hash_pair_compare): Fix comparison.
8826
8827 2011-05-17 Richard Guenther <rguenther@suse.de>
8828
8829 * gimple.c (iterative_hash_gimple_type): Simplify singleton
8830 case some more, fix final hash value of the non-singleton case.
8831
8832 2011-05-17 Richard Guenther <rguenther@suse.de>
8833
8834 PR bootstrap/49013
8835 Revert
8836 2011-05-16 Richard Guenther <rguenther@suse.de>
8837
8838 * gimple.c (gimple_types_compatible_p_1): Use names of the
8839 type itself, not its main variant.
8840 (iterative_hash_gimple_type): Likewise.
8841
8842 2011-05-17 Richard Guenther <rguenther@suse.de>
8843
8844 * gimple.c (gimple_register_canonical_type): Use the main-variant
8845 leader for computing the canonical type.
8846
8847 2011-05-17 Nick Clifton <nickc@redhat.com>
8848
8849 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
8850 moves.
8851
8852 * config/rx/rx.md: Add peephole to remove redundant extensions
8853 after loads.
8854 (bitset_in_memory): Use rx_restricted_mem_operand.
8855 (bitinvert_in_memory): Likewise.
8856 (bitclr_in_memory): Likewise.
8857
8858 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
8859 Nick Clifton <nickc@redhat.com>
8860
8861 * config/rx/rx.md: Add peepholes to match a register move followed
8862 by a comparison of the moved register. Replace these with an
8863 addition of zero that does both actions in one instruction.
8864
8865 2011-05-17 Jakub Jelinek <jakub@redhat.com>
8866
8867 PR target/48986
8868 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
8869 predicate to allow CONST_INT.
8870 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
8871
8872 2011-05-16 Joseph Myers <joseph@codesourcery.com>
8873
8874 * opts-common.c (opt_enum_arg_to_value): New.
8875 * opts.h (opt_enum_arg_to_value): Declare.
8876 * config/i386/i386.opt (fpmath): Remove.
8877 (mfpmath=): Use Enum, Init and Save.
8878 (fpmath_unit): New Enum and EnumValue entries.
8879 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
8880 name for function fpmath state.
8881 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
8882 * config/i386/i386.c: Include diagnostic.h.
8883 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
8884 (ix86_target_string): Take enum fpmath_unit value instead of string.
8885 (ix86_debug_options): Update call to ix86_target_string.
8886 (ix86_option_override_internal): Don't process fpmath strings here.
8887 (x86_function_specific_save, ix86_function_specific_restore):
8888 Don't handle fpmath state specially.
8889 (ix86_function_specific_print): Pass fpmath state to
8890 ix86_target_string instead of printing in this function.
8891 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
8892 Handle enum attributes.
8893 (IX86_ATTR_ENUM, ix86_opt_enum): New.
8894 (ix86_valid_target_attribute_tree): Update option_strings
8895 handling. Handle fpmath as enum option.
8896 (ix86_can_inline_p): Update field names for function fpmath state.
8897 (ix86_expand_builtin): Update call to ix86_target_string.
8898 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
8899 (ix86_fpmath): Remove.
8900 * config/i386/t-i386 (i386.o): Update dependencies.
8901
8902 2011-05-16 Joseph Myers <joseph@codesourcery.com>
8903
8904 PR preprocessor/48677
8905 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
8906 from decoded_options[0], not from itself.
8907
8908 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
8909
8910 * config/i386/constraints.md (z): New constraint.
8911 * config/i386/i386.c (c): New mode attribute.
8912 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
8913 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
8914 constraint for operand 0.
8915 (*call_vzeroupper): Ditto.
8916 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
8917 (*call_rex64_ms_sysv_vzeroupper): Ditto.
8918 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
8919 Use "lzm" constraint for operand 0.
8920 (*call_pop_vzeroupper): Ditto.
8921 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
8922 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
8923 constraint for operand 0.
8924 (*sibcall_vzeroupper): Ditto.
8925 (*sibcall_rex64_ms_sysv): Ditto.
8926 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
8927 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
8928 *sibcall_pop_1. Use "Uz" constraint for operand 0.
8929 (*sibcall_pop_vzeroupper): Ditto.
8930 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
8931 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
8932 mode iterator. Use "<c>zm" constraint for operand 1.
8933 (*call_value_vzeroupper): Ditto.
8934 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
8935 for operand 1.
8936 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
8937 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
8938 *call_value_pop_1. Use "lzm" constraint for operand 1.
8939 (*call_value_pop_vzeroupper): Ditto.
8940 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
8941 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
8942 mode iterator. Use "Uz" constraint for operand 1.
8943 (*sibcall_value_vzeroupper): Ditto.
8944 (*sibcall_value_rex64_ms_sysv): Ditto.
8945 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
8946 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
8947 constraint for operand 1.
8948 (*sibcall_value_pop_vzeroupper): Ditto.
8949 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
8950 and "z" constraint for operand 2.
8951 (*tls_global_dynamic_32_gnu): Ditto.
8952 (*tls_local_dynamic_base_32_gnu): Ditto.
8953 (*tls_local_dynamic_base_64): Ditto.
8954 (*tls_local_dynamic_32_once): Ditto.
8955 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
8956 Update all callers.
8957 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
8958
8959 2011-05-16 Richard Guenther <rguenther@suse.de>
8960
8961 * gimple.c (gimple_types_compatible_p_1): Use names of the
8962 type itself, not its main variant.
8963 (iterative_hash_gimple_type): Likewise.
8964
8965 2011-05-16 Richard Guenther <rguenther@suse.de>
8966
8967 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
8968 always visit pointer target and function result and argument types.
8969
8970 2011-05-16 Jason Merrill <jason@redhat.com>
8971
8972 PR c++/48999
8973 * tree-inline.c (copy_statement_list): Put back recursion.
8974
8975 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
8976
8977 PR target/27663
8978 PR target/41076
8979 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
8980 * config/avr/avr.md ("*ior<mode>qi.byte0",
8981 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
8982
8983 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
8984
8985 PR target/45099
8986 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
8987 register is needed for a function argument.
8988
8989 2011-05-16 Richard Guenther <rguenther@suse.de>
8990
8991 * gimple.c (struct type_hash_pair): New type.
8992 (type_hash_pair_compare): New function.
8993 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
8994
8995 2011-05-16 Revital Eres <revital.eres@linaro.org>
8996
8997 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
8998
8999 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
9000
9001 * config/i386/i386.md (floating point move splitters): Fix
9002 usage of standard_80387_constant_p.
9003 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
9004
9005 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
9006
9007 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9008
9009 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
9010
9011 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9012 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9013 (tree_ssa_lim_finalize): Likewise.
9014
9015 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
9016
9017 * config/i386/constraint.md (Yd, Yx): New register constraints.
9018 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
9019 Yd conditional register constraint.
9020 (*movtf_internal): Use standard_sse_constant_opcode.
9021 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
9022 Yx conditional register constraint.
9023 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
9024 Yd conditional register constraint. Use standard_sse_constant_p to
9025 check for valid SSE constants and call standard_sse_constant_opcode to
9026 output SSE insn.
9027 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9028 constants and call standard_sse_constant_opcode to output SSE insn.
9029 * config/i386/i386.c (ix86_option_ovverride_internal): Set
9030 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
9031 optimize_size is set.
9032 (standard_sse_constant_opcode): Output conditional AVX insn templates.
9033
9034 2011-05-14 Tobias Burnus <burnus@net-b.de>
9035
9036 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9037
9038 2011-05-13 Martin Jambor <mjambor@suse.cz>
9039
9040 * ipa-prop.c (ipa_cst_from_jfunc): New function.
9041 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9042 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9043 (evaluate_conditions_for_ipcp_clone): Removed.
9044 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9045 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9046 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9047
9048 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
9049
9050 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9051 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9052 lieu of MAY_HAVE_DEBUG_STMTS.
9053 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9054 debug statements if !MAY_HAVE_DEBUG_STMTS.
9055
9056 2011-05-13 Martin Thuresson <martint@google.com>
9057
9058 PR gcov-profile/47793
9059 * libgcov.c (gcov_exit): Support relative profile paths.
9060 * doc/invoke.texi (-fprofile-dir): Update for above change.
9061
9062 2011-05-13 Richard Guenther <rguenther@suse.de>
9063
9064 * gimple.c (gimple_canonical_types_compatible_p): Do not use
9065 type-pair caching, do not compare hashes.
9066
9067 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
9068
9069 PR middle-end/48965
9070 * tree-cfg.c (edge_to_cases_cleanup): Return true.
9071 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9072
9073 2011-05-13 Kai Tietz <ktietz@redhat.com>
9074
9075 * gimplify.c (gimplify_expr): Make sure operand is boolified.
9076 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9077 compatible type for TRUTH_NOT_EXPR.
9078
9079 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
9080
9081 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
9082 (ix86_hard_regno_mode_ok): Change return value to bool. Use
9083 can_create_pseudo_p ().
9084
9085 2011-05-13 Richard Guenther <rguenther@suse.de>
9086
9087 PR lto/48978
9088 * gimple.c (iterative_hash_gimple_type): Revert change in
9089 pointer target and function result and argument hashing.
9090
9091 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
9092
9093 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9094 (*movxf_internal_nointeger): Ditto.
9095 (*movdf_internal_rex64): Ditto.
9096 (*movdf_internal): Ditto.
9097 (*movdf_internal_nointeger): Ditto.
9098 (*movsf_internal): Ditto.
9099 (sincos splitters): Use can_create_pseudo ().
9100
9101 2011-05-13 Joseph Myers <joseph@codesourcery.com>
9102
9103 * config/i386/i386-opts.h: New.
9104 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9105 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9106 ix86_section_threshold): Remove.
9107 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
9108 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9109 OPT_mbranch_cost_.
9110 (ix86_option_override_internal): Don't decode strings for options
9111 other than -march=, -mtune= and -mfpmath=. Don't allow for
9112 __attribute__ uses in remaining diagnostics for options with
9113 string arguments. Don't check for integer arguments being negative.
9114 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
9115 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
9116 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9117 ix86_branch_cost, ix86_section_threshold): Remove.
9118 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9119 HeaderInclude.
9120 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9121 but not Var.
9122 (masm=): Use Enum and Init.
9123 (asm_dialect): New Enum and EnumValue entries.
9124 (mbranch-cost=): Use UInteger.
9125 (mlarge-data-threshold=): Use UInteger and Init.
9126 (mcmodel=): Use Enum and Init.
9127 (cmodel): New Enum and EnumValue entries.
9128 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9129 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9130 mregparm=): Use UInteger.
9131 (mstringop-strategy=): Use Enum and Init.
9132 (stringop_alg): New Enum and EnumValue entries.
9133 (mtls-dialect=): Use Enum and Init.
9134 (tls_dialect): New Enum and EnumValue entries.
9135 (mabi=): Use Enum and Init.
9136 (calling_abi): New Enum and EnumValue entries.
9137 (mveclibabi=): Use Enum and Init.
9138 (ix86_veclibabi): New Enum and EnumValue entries.
9139
9140 2011-05-13 Nick Clifton <nickc@redhat.com>
9141
9142 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9143 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
9144
9145 2011-05-13 Kai Tietz <ktietz@redhat.com>
9146
9147 PR middle-end/48984
9148 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9149 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9150 (gimple_boolify): Check for cast for boolean_type_node instead for
9151 BOOLEAN_TYPE.
9152
9153 2011-05-13 Richard Guenther <rguenther@suse.de>
9154
9155 PR tree-optimization/48172
9156 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9157 multiplying by number of iterations for equal step.
9158 (vect_create_cond_for_alias_checks): Likewise.
9159
9160 2011-05-13 Andreas Schwab <schwab@redhat.com>
9161
9162 * configure.ac: Use AS_HELP_STRING throughout.
9163 * configure: Regenerate.
9164
9165 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
9166
9167 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
9168 (ix86_emit_restore_regs_using_mov): Likewise.
9169 (ix86_emit_restore_sse_regs_using_mov): Likewise.
9170
9171 2011-05-12 Anatoly Sokolov <aesok@post.ru>
9172
9173 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9174 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9175 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9176 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9177 RTX_OK_FOR_OLO10_P): ...here.
9178 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9179 SYMBOLIC_CONST.
9180
9181 2011-05-12 Kai Tietz <ktietz@redhat.com>
9182
9183 * gimplify.c (gimple_boolify): Re-boolify expression
9184 arguments even if expression type is of kind BOOLEAN_TYPE.
9185 (gimplify_boolean_expr): Removed.
9186 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9187 and XOR. Additional take care that we keep expression's type.
9188 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9189 of TRUTH_AND|OR|XOR_EXPR.
9190
9191 2011-05-12 Jakub Jelinek <jakub@redhat.com>
9192
9193 PR tree-optimization/48975
9194 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9195 on all bbs here and free and clear ifc_bbs at the end.
9196
9197 2011-05-12 Richard Guenther <rguenther@suse.de>
9198
9199 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9200 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
9201 until after simple checks.
9202 (gimple_types_compatible_p): Likewise.
9203 (iterative_hash_gimple_type): Always hash pointer targets
9204 and function return and argument types.
9205 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9206 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
9207 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9208 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
9209 completely in the simple compare section.
9210 (gimple_register_canonical_type): Query the cache again after
9211 registering.
9212
9213 2011-05-12 Richard Guenther <rguenther@suse.de>
9214
9215 PR tree-optimization/48172
9216 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9217 the number of iterations from the segment size calculation.
9218 (vect_create_cond_for_alias_checks): Adjust.
9219
9220 2011-05-12 Jakub Jelinek <jakub@redhat.com>
9221
9222 PR debug/48967
9223 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9224 if validate_subreg fails.
9225
9226 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
9227
9228 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9229 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9230 early.
9231
9232 2011-05-12 DJ Delorie <dj@redhat.com>
9233
9234 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
9235 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9236 created builtin into rx_builtins array.
9237 (rx_builtin_decl): New function.
9238 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
9239
9240 2011-05-12 DJ Delorie <dj@redhat.com>
9241 Nick Clifton <nickc@redhat.com>
9242
9243 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9244 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9245 (rx_is_legitimate_address): Add pre-decrement and post-increment
9246 addressing in HImode and QImode. Fix test for out of range
9247 REG+INT addressing.
9248 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
9249 (rx_align_for_label): Test label before extracting its usage count.
9250 (rx_adjust_insn_lengths): Fix selection of insn codes.
9251 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
9252
9253 2011-05-11 Jason Merrill <jason@redhat.com>
9254
9255 * tree.c (type_hash_canon): Use struct tree_type_non_common.
9256
9257 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9258
9259 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9260 reindent the subsequent block.
9261
9262 2011-05-11 Satoru Takabayashi <satorux@google.com>
9263 Paul Pluzhnikov <ppluzhnikov@google.com>
9264
9265 * doc/install.texi (Configuration): Document --with-linker-hash-style.
9266 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9267 * config.in: Add LINKER_HASH_STYLE.
9268 * configure.ac: Add --with-linker-hash-style.
9269 * configure: Regenerate.
9270
9271 2011-05-11 Richard Guenther <rguenther@suse.de>
9272
9273 PR middle-end/48964
9274 * gimple.c (iterative_hash_canonical_type): Fix typo.
9275
9276 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
9277
9278 * config/i386/i386.c (legitimize_tls_address)
9279 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9280 expanders directly for TARGET_GNU2_TLS. Determine pic and
9281 __tls_get_addr symbol reference here. Update call to
9282 gen_tls_global_dynamic_{32,64} for added arguments.
9283 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9284 expanders directly for TARGET_GNU2_TLS. Determine
9285 __tls_get_addr symbol reference here. Update call to
9286 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
9287 unique UNSPEC REG_EQUIV to libcall block.
9288 (ix86_tls_get_addr): Declare static.
9289 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9290 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9291 Do not determine pic and __tls_get_addr symbol reference here. Do not
9292 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9293 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9294 (tls_global_dynamic_64): Add operand 2. Do not determine
9295 __tls_get_addr symbol reference here. Do not call
9296 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9297 (tls_local_dynamic_base64): Ditto for operand 1.
9298
9299 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9300
9301 * function.c (expand_function_start): Initialize stack_check_probe_note
9302 only if the generic stack checking mechanism is used.
9303
9304 2011-05-11 Richard Guenther <rguenther@suse.de>
9305
9306 PR tree-optimization/15256
9307 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9308 (A & B) | C, combine (A op CST1) op CST2.
9309 (tree_ssa_forward_propagate_single_use_vars): Only bother to
9310 visit assigns that have uses.
9311
9312 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9313
9314 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
9315 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9316 (unpack_ts_type_common_value_fields): ...this. Update comment.
9317 (unpack_value_fields): Adjust for renaming.
9318 (lto_input_ts_type_tree_pointers): Split into...
9319 (lto_input_ts_type_common_tree_pointer): ...this and...
9320 (lto_input_ts_type_non_common_tree_pointers): ...this.
9321 (lto_input_tree_pointers): Adjust for above split.
9322 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9323 (pack_ts_type_common_value_fields): ...this. Update comment.
9324 (lto_output_ts_type_tree_pointers): Split into...
9325 (lto_output_ts_type_common_tree_pointers): ...this and...
9326 (lto_output_ts_type_non_common_tree_pointers): ...this.
9327 (lto_output_tree_pointers): Adjust for above split.
9328 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9329 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9330 * stor-layout.c (vector_type_mode): Adjust location of mode field.
9331 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9332 Define.
9333 (struct tree_type): Split into...
9334 (struct tree_type_common: ...this and...
9335 (struct tree_type_with_lang_specific): ...this and...
9336 (struct tree_type_non_common): ...this. Adjust accessor macros
9337 accordingly.
9338 (TYPE_VALUES_RAW): Define.
9339 (union tree_node): Update for above changes.
9340 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9341 TS_TYPE_NON_COMMON.
9342 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9343 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9344 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9345 * treestructu.def (TS_TYPE): Remove.
9346 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9347 Define.
9348
9349 2011-05-11 Jakub Jelinek <jakub@redhat.com>
9350
9351 PR debug/48159
9352 * tree-ssa.c (reset_debug_uses): New function.
9353 * tree-flow.h (reset_debug_uses): New prototype.
9354 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9355 * tree-loop-distribution.c (generate_loops_for_partition): Call
9356 reset_debug_uses on the stmts that will be removed. Keep around
9357 all debug stmts, don't count them as bits in partition bitmap.
9358 (generate_builtin): Don't count debug stmts or labels as bits in
9359 partition bitmap.
9360
9361 2011-05-11 Richard Guenther <rguenther@suse.de>
9362
9363 * gimple.c (gimple_type_hash_1): Merge with ...
9364 (gimple_type_hash): ... this.
9365 (gtc_visit): Remove mode parameter and simplify accordingly.
9366 (gimple_types_compatible_p_1): Likewise.
9367 (gimple_types_compatible_p): Likewise.
9368 (iterative_hash_gimple_type): Likewise.
9369 (visit): Likewise.
9370 (gimple_type_eq): Adjust.
9371
9372 2011-05-11 Revital Eres <revital.eres@linaro.org>
9373
9374 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9375 enters the branch create an anti edge in the opposite direction
9376 to prevent the creation of reg-moves.
9377 * modulo-sched.c: Adjust comment to reflect the fact we are
9378 scheduling closing branch.
9379 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9380 (stage_count): New field in struct partial_schedule.
9381 (calculate_stage_count): New function.
9382 (normalize_sched_times): Rename to reset_sched_times and handle
9383 incrementing the sched time of the nodes by a constant value
9384 passed as parameter.
9385 (duplicate_insns_of_cycles): Skip closing branch.
9386 (sms_schedule_by_order): Schedule closing branch.
9387 (ps_insn_find_column): Handle closing branch.
9388 (sms_schedule): Call reset_sched_times and adjust the code to
9389 support scheduling of the closing branch.
9390 (ps_insert_empty_row): Update calls to normalize_sched_times
9391 and rotate_partial_schedule functions.
9392
9393 2011-05-11 Richard Guenther <rguenther@suse.de>
9394
9395 PR middle-end/48953
9396 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
9397
9398 2011-05-11 Joseph Myers <joseph@codesourcery.com>
9399
9400 * opts.c (finish_options): Move warning settings from process_options.
9401 * toplev.c (process_options): Move warning settings to finish_options.
9402
9403 2011-05-11 Richard Guenther <rguenther@suse.de>
9404
9405 PR tree-optimization/18041
9406 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
9407 (simplify_bitwise_binary): ... this. Handle operand conversions
9408 by applying them to the result instead.
9409 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
9410
9411 2011-05-11 Richard Guenther <rguenther@suse.de>
9412
9413 * gimple.c (gimple_canonical_types_compatible_p): Split out
9414 from gimple_types_compatible_p and friends. Do not recurse
9415 to pointed-to types.
9416 (gimple_canonical_type_eq): Use it.
9417 (iterative_hash_canonical_type): Split out from
9418 iterative_hash_gimple_type and friends. Do not recurse
9419 to pointed-to types.
9420 (gimple_canonical_type_hash): Use it, allocate the hash here.
9421
9422 2011-05-11 Revital Eres <revital.eres@linaro.org>
9423
9424 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9425 recognizing doloop.
9426
9427 2011-05-11 Revital Eres <revital.eres@linaro.org>
9428
9429 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9430 instead of PREV_INSN.
9431
9432 2011-05-11 Revital Eres <revital.eres@linaro.org>
9433
9434 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9435 * loop-doloop.c (doloop_condition_get): Likewise.
9436 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9437 (doloop_end): New.
9438 * config/arm/arm.md (*addsi3_compare0): Remove "*".
9439
9440 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
9441
9442 * tree.def (CASE_LABEL_EXPR): Add an operand.
9443 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9444
9445 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9446
9447 * c-decl.c (c_override_global_bindings_to_false): Remove.
9448 (global_bindings_p): Don't check
9449 c_override_global_bindings_to_false.
9450 * c-tree.h (c_override_global_bindings_to_false): Remove.
9451 * c-typeck.c (composite_type): Don't set
9452 c_override_global_bindings_to_false.
9453
9454 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
9455
9456 PR target/48857, 48495
9457 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9458 (VSX_MODE): Ditto.
9459 (VSX_MOVE_MODE): Ditto.
9460 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9461 VSX vector types. Add V2DImode.
9462 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9463 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9464 (MODES_TIEABLE_P): Ditto.
9465
9466 * config/rs6000/rs6000.c (rs6000_emit_move): Use
9467 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9468 VSX_VECTOR_MODE.
9469 (init_cumulative_args): Ditto.
9470 (rs6000_function_arg_boundary): Ditto.
9471 (rs6000_function_arg_advance_1): Ditto.
9472 (rs6000_function_arg): Ditto.
9473 (rs6000_function_ok_for_sibcall): Ditto.
9474 (emit_frame_save): Ditto.
9475 (rs6000_function_value): Ditto.
9476 (rs6000_libcall_value): Ditto.
9477
9478 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9479
9480 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9481 i386/darwin-lib.h to $libgcc_tm_file.
9482 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9483
9484 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9485
9486 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9487
9488 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9489
9490 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
9491 * config/rs6000/rs6000-tables.opt: New file (generated).
9492 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9493 rs6000/rs6000-tables.opt to extra_options.
9494 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9495 * config/rs6000/rs6000.c (rs6000_select): Remove.
9496 (processor_target_table): Move contents to rs6000-cpus.def.
9497 (darwin_rs6000_override_options): Check
9498 global_options_set.x_rs6000_cpu_index instead of
9499 rs6000_select[1].string.
9500 (rs6000_option_override_internal): Likewise.
9501 (rs6000_handle_option): Don't assert that global structures are in
9502 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
9503 (rs6000_default_cpu): New variable.
9504 (rs6000_file_start): Set it instead of local default_cpu. Check
9505 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9506 global_options_set.x_rs6000_tune_index instead of rs6000_select.
9507 (rs6000_darwin_file_start): Check rs6000_default_cpu and
9508 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9509 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9510 rs6000_select): Remove.
9511 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9512 Remove.
9513 (mcpu=, mtune=): Use Var, Init, Enum and Save.
9514 * config/rs6000/t-rs6000
9515 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9516 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9517 global_options_set.x_rs6000_cpu_index instead of
9518 rs6000_select[1].string.
9519 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9520 global_options_set.x_rs6000_cpu_index instead of
9521 rs6000_select[1].string.
9522
9523 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9524
9525 * config.gcc (libgcc_tm_file): Define instead of including files
9526 from ../../libgcc/config/ in tm_file.
9527 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
9528 * configure: Regenerate.
9529 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9530 libgcc_tm.h, cs-libgcc_tm.h): New.
9531 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9532 (clean): Remove libgcc_tm.h.
9533 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9534 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9535 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9536
9537 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
9538
9539 PR target/48896
9540 * config/avr/avr.c (avr_ret_register): Return unsigned int
9541 instead of int.
9542 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9543 it to avr_libcall_value.
9544 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9545 expand_expr.
9546 (avr_expand_binop_builtin): Ditto.
9547 (avr_expand_unop_builtin): Ditto.
9548
9549 2011-05-10 DJ Delorie <dj@redhat.com>
9550
9551 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9552 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9553 * config/rx/rx.c (rx_align_for_label): Add label and
9554 uses_threshold parameters. Do not align when the label is not
9555 used enough.
9556 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9557
9558 2011-05-10 Richard Guenther <rguenther@suse.de>
9559
9560 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9561 a series of conversions and apply foldings similar to what
9562 fold-const does.
9563 (tree_ssa_forward_propagate_single_use_vars): Call it.
9564
9565 2011-05-10 Jakub Jelinek <jakub@redhat.com>
9566
9567 PR tree-optimization/48611
9568 PR tree-optimization/48794
9569 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9570 referenced from RESX or EH_DISPATCH arguments.
9571
9572 PR debug/48928
9573 * dfp.c (decimal_to_decnumber): Handle conversion from
9574 dconst{1,2,m1,half}.
9575
9576 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9577
9578 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9579 for !flag_prefer_avx128.
9580 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9581
9582 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9583
9584 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9585 (fold_ternary_loc): Use expr_location_or.
9586
9587 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
9588
9589 PR debug/48853
9590 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9591 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9592 Pmode and mem_mode is not VOIDmode.
9593
9594 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
9595
9596 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9597 TYPE_QUAL_RESTRICT): Convert to enum.
9598
9599 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9600
9601 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9602 (const_pow2_1_to_8_operand): Ditto.
9603 (const_pow2_1_to_128_operand): Ditto.
9604 (const_pow2_1_to_32768_operand): Ditto.
9605 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9606 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
9607 in insn constraint to check integer value of operand 3.
9608 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9609
9610 (PINSR_MODE): New mode iterator.
9611 (sse2p4_1): New mode attribute.
9612 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9613 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9614 iterator. Use const_int_operand instead of
9615 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
9616 exact_log2 in insn constraint to check integer value of operand 3.
9617
9618 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9619
9620 * config/i386/sse.md (blendbits): Remove mode attribute.
9621 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9622 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9623 Check integer value of operand 3 in insn constraint.
9624
9625 2011-05-09 Richard Guenther <rguenther@suse.de>
9626
9627 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9628 for diagnostics.
9629 (lto_symtab_merge): Likewise. Do not register types here.
9630 (lto_symtab_merge_decls_2): Likewise.
9631 (lto_symtab_merge_decls_1): Likewise.
9632 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9633 * gimple.c (enum gtc_mode): Declare.
9634 (gimple_types_compatible_p): Make static.
9635
9636 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9637
9638 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9639 temporary register to match Pmode.
9640
9641 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9642
9643 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9644 and *vec_concatv4si_1_avx.
9645
9646 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9647
9648 PR rtl-optimization/48927
9649 * ira-conflicts.c (commutative_constraint_p): Use
9650 recog_data.alternative_enabled_p to disable alternatives where
9651 "enabled" attribute is false.
9652 (get_dup_num): Ditto.
9653 * ira-lives.c (single_reg_class): Ditto.
9654 (ira_implicitly_set_insn_hard_regs): Ditto.
9655
9656 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9657
9658 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9659 (dataflow_set_preserve_mem_locs): Likewise.
9660
9661 2011-05-09 Philipp Thomas <pth@suse.de>
9662
9663 * config/mep/mep.c (mep_validate_vliw): Syntax description
9664 should not be translated.
9665
9666 2011-05-09 Joseph Myers <joseph@codesourcery.com>
9667
9668 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9669 * config/mips/mips-tables.opt: New file (generated).
9670 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
9671 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9672 MIPS_ARCH_OPTION_NATIVE): Define.
9673 * config/mips/mips.c (mips_cpu_info_table): Move contents to
9674 mips-cpus.def.
9675 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9676 mips_parse_cpu): Remove.
9677 (mips_cpu_info_from_opt, mips_default_arch): New.
9678 (mips_handle_option): Don't assert that global structures are in
9679 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9680 (mips_option_override): Use new variables and functions to set
9681 state of these options. Use strcmp to check for individual CPU names.
9682 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9683 definition.
9684 * config/mips/mips.opt (march=): Use ToLower and Enum.
9685 (mips): Use ToLower, Enum and Var.
9686 (mtune=): Use ToLower and Enum.
9687 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
9688
9689 2011-05-08 Jan Hubicka <jh@suse.cz>
9690
9691 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
9692 Arrange type pairs to be UID ordered.
9693 (gimple_lookup_type_leader): Make inline.
9694
9695 2011-05-09 Nick Clifton <nickc@redhat.com>
9696
9697 PR target/48899
9698 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
9699 PROCESSOR_DEFAULT.
9700
9701 PR target/48897
9702 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
9703 variable 's'.
9704
9705 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
9706
9707 * combine.c (simplify_comparison): Abstract out parts into...
9708 (simplify_compare_const): ... new function.
9709 (try_combine): Generalize parallel arithmetic/compare combining
9710 to call simplify_compare_const() and CANONICALIZE_COMPARE().
9711
9712 2011-05-08 Jan Hubicka <jh@suse.cz>
9713
9714 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
9715 (cgraph_create_virtual_clone): Call hooks once virtual clone
9716 is finished.
9717 * cgraph.h (cgraph_clone_node): Update prototype.
9718 * ipa-cp.c (ipcp_estimate_growth): Use
9719 estimate_ipcp_clone_size_and_time.
9720 * ipa-inline-transform.c (clone_inlined_nodes): Update.
9721 * lto-cgraph.c (input_node): Update.
9722 * ipa-inline.c (recursive_inlining): Update.
9723 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
9724 (evaluate_conditions_for_known_args): Break out from ...
9725 (evaluate_conditions_for_edge): ... here.
9726 (evaluate_conditions_for_ipcp_clone): New function.
9727 (inline_node_duplication_hook): Update clone summary based
9728 on parameter map.
9729 (estimate_callee_size_and_time): Rename to ...
9730 (estimate_node_size_and_time): take NODE instead of EDGE;
9731 take POSSIBLE_TRUTHS as argument.
9732 (estimate_callee_size_and_time): Update.
9733 (estimate_ipcp_clone_size_and_time): New function.
9734 (do_estimate_edge_time): Update.
9735
9736 2011-05-08 Richard Guenther <rguenther@suse.de>
9737
9738 PR middle-end/48908
9739 PR middle-end/48905
9740 * expmed.c (expand_shift_1): Compute adjusted constant shift
9741 amount manually.
9742
9743 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
9744
9745 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
9746
9747 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
9748
9749 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
9750
9751 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
9752
9753 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
9754
9755 2011-05-07 Jan Hubicka <jh@suse.cz>
9756
9757 * ipa-inline-transform.c (inline_call): Account when program size
9758 decreases.
9759 * ipa-inline.c (relative_time_benefit): New function.
9760 (edge_badness): Reorganize to be power 2 based; fix thinko when
9761 computing badness for negative growth; update comments to match
9762 reality; better dumps.
9763
9764 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
9765
9766 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
9767 type to bool and adjust comment.
9768 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
9769 (fold_mathfn_compare): Remove calls to global_bindings_p.
9770 (fold_inf_compare): Likewise.
9771 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
9772 * c-tree.h (global_bindings_p): Adjust prototype.
9773 * c-decl.c (global_bindings_p): Return bool and simplify.
9774
9775 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
9776
9777 PR tree-optimization/48837
9778 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
9779 when accumulator transformation is performed.
9780
9781 2011-05-06 Jan Hubicka <jh@suse.cz>
9782
9783 * i386.h (ix86_tune_indices): Add
9784 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
9785 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
9786 * i386.c (initial_ix86_tune_features): Add
9787 X86_SOFTARE_PREFETCHING_BENEFICIAL.
9788 (software_prefetching_beneficial_p): Remove predicate.
9789 (ix86_option_override_internal): Use new macro.
9790
9791 2011-05-06 Jan Hubicka <jh@suse.cz>
9792
9793 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
9794
9795 2011-05-06 Jan Hubicka <jh@suse.cz>
9796
9797 * cgraph.c (cgraph_add_thunk): Create real function node instead
9798 of alias node; finalize it and mark needed/reachale; arrange visibility
9799 to be right and add it into the corresponding same comdat group list.
9800 (dump_cgraph_node): Dump thunks.
9801 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
9802 cgraph_function_with_gimple_body_p,
9803 cgraph_first_function_with_gimple_body,
9804 cgraph_next_function_with_gimple_body): New functions.
9805 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
9806 New macros.
9807 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
9808 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9809 * cgraphunit.c (cgraph_finalize_function): Only look into possible
9810 devirtualization when optimizing.
9811 (verify_cgraph_node): Verify thunks.
9812 (cgraph_analyze_function): Analyze thunks.
9813 (cgraph_mark_functions_to_output): Output thunks only in combination
9814 with function they are assigned to.
9815 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
9816 alias into normal node.
9817 (assemble_thunks): New functoin.
9818 (cgraph_expand_function): Use it.
9819 * lto-cgraph.c (lto_output_node): Stream thunks.
9820 (input_overwrite_node): Stream in thunks.
9821 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
9822 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
9823 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
9824 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
9825 (inline_analyze_function): Do not care about thunk jump functions.
9826 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
9827 * ipa-prop.c (ipa_prop_write_jump_functions): Use
9828 cgraph_function_with_gimple_body_p.
9829 * passes.c (do_per_function_toporder): Use
9830 cgraph_function_with_gimple_body_p.
9831 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9832 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
9833 (function_called_by_processed_nodes_p): Likewise.
9834
9835 2011-05-06 Joseph Myers <joseph@codesourcery.com>
9836
9837 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
9838 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
9839 entries.
9840 (mabi=): Replace with separate entries for mabi=altivec,
9841 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
9842 mabi=ieeelongdouble and mabi=ibmlongdouble.
9843 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9844 check for -mabi=spe without SPE ABI support here.
9845 (rs6000_handle_option): Replace OPT_mabi_ handling with
9846 OPT_mabi_altivec and OPT_mabi_spe handling.
9847
9848 2011-05-06 Cary Coutant <ccoutant@google.com>
9849
9850 * dwarf2out.c (contains_subprogram_definition): New function.
9851 (should_move_die_to_comdat): Call it.
9852
9853 2011-05-06 Jeff Law <law@redhat.com>
9854
9855 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
9856 remove_ctrl_stmt_and_useless_edges.
9857 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
9858 (fixup_template_block, thread_single_edge): Likewise.
9859 (mark_threaded_blocks): Use THREAD_TARGET.
9860
9861 2011-05-06 Alan Modra <amodra@gmail.com>
9862
9863 PR target/48900
9864 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
9865 const0_rtx as the arg to the dummy __tls_get_addr libcall.
9866
9867 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
9868
9869 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
9870 constraint modifier to "r".
9871
9872 2011-05-06 Joseph Myers <joseph@codesourcery.com>
9873
9874 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
9875 fall through for OPT_mcmodel_.
9876
9877 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9878
9879 * config/s390/s390.c (s390_asm_trampoline_template): Comment
9880 instruction sizes.
9881 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
9882
9883 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9884
9885 PR target/47930
9886 * config/arm/arm.opt (marm): Document it.
9887 (mthumb): Reject negative variant.
9888
9889 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
9890
9891 PR target/48898
9892 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9893 Fix typo in "ccvt" variable name.
9894
9895 2011-05-06 Tristan Gingold <gingold@adacore.com>
9896
9897 PR target/48895
9898 * config/vms/vms-ar.c (main): Remove cwd variable.
9899
9900 2011-05-06 Jakub Jelinek <jakub@redhat.com>
9901
9902 PR debug/48902
9903 * var-tracking.c (prepare_call_arguments): Move else before #endif.
9904
9905 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
9906
9907 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
9908 * gimplify.c (gimplify_switch_expr): Likewise.
9909 * omp-low.c (expand_omp_sections): Likewise.
9910 * tree-eh.c (lower_try_finally_switch): Likewise.
9911 (lower_eh_dispatch): Likewise.
9912 * tree.h (build_case_label): Declare.
9913 * tree.c (build_case_label): Define.
9914
9915 2011-05-05 Jason Merrill <jason@redhat.com>
9916
9917 PR c++/40975
9918 * tree-inline.c (copy_tree_r): Use copy_statement_list.
9919 (copy_statement_list): Don't recurse.
9920 * stor-layout.c (copy_self_referential_tree_r): Don't allow
9921 STATEMENT_LIST.
9922
9923 2011-05-05 Joseph Myers <joseph@codesourcery.com>
9924
9925 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
9926 through from -mfpu= handling.
9927 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
9928
9929 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
9930
9931 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
9932 POST_MODIFY.
9933
9934 2011-05-05 Steve Ellcey <sje@cup.hp.com>
9935
9936 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
9937 for 11.31.
9938 (hppa[12]*-*-hpux11*): Ditto.
9939 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
9940 * config/ia64/hpux-unix2003.h: New.
9941 * config/pa/pa-hpux1131.opt: New.
9942 * config/pa/pa-hpux1131.h: New.
9943 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
9944 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
9945 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
9946
9947 2011-05-05 Jakub Jelinek <jakub@redhat.com>
9948
9949 PR debug/48853
9950 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
9951 instead of mode as 3rd argument to recursive call.
9952 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
9953 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
9954 VOIDmode.
9955 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
9956 don't give up if mode is Pmode and mem_mode is not VOIDmode.
9957 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
9958 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
9959
9960 2011-05-05 Julian Brown <julian@codesourcery.com>
9961
9962 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
9963 parenthesis in D-register case.
9964
9965 2011-05-05 Joseph Myers <joseph@codesourcery.com>
9966
9967 * opt-functions.awk (var_type_struct): Handle Enum options.
9968 * optc-gen.awk: Don't check range of variables of character type.
9969 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
9970 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
9971 rs6000_sdata_name, rs6000_explicit_options): Remove.
9972 (rs6000_option_override_internal): Check for -malign-power here.
9973 Use global_options_set instead of rs6000_explicit_options.
9974 (rs6000_parse_fpu_option): Remove.
9975 (rs6000_handle_option): Access variables via opts and opts_set
9976 pointers. Use error_at and warning_at. Add fall-through
9977 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
9978 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
9979 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
9980 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
9981 here. Don't use rs6000_parse_fpu_option.
9982 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
9983 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
9984 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
9985 (mrecip=): Use Var.
9986 (mspe): Use Var and Save.
9987 (mtraceback=): Use Enum and Var.
9988 (rs6000_traceback_type): New Enum and EnumValue entries.
9989 (mfloat-gprs=): Use Enum, Var and Save.
9990 (rs6000_float_gprs): New Enum and EnumValue entries.
9991 (mlong-double-): use Var and Save.
9992 (msched-costly-dep=, minsert-sched-nops=): Use Var.
9993 (malign-): Use Enum and Var.
9994 (rs6000_alignment_flags): New Enum and EnumValue entries.
9995 (mfpu=): Use Enum.
9996 (fpu_type_t): New Enum and EnumValue entries.
9997 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9998 global_options_set instead of rs6000_explicit_options.
9999 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10000 global_options_set instead of rs6000_explicit_options.
10001 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10002 global_options_set instead of rs6000_explicit_options.
10003 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10004 global_options_set instead of rs6000_explicit_options.
10005 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10006 global_options_set instead of rs6000_explicit_options.
10007 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10008 global_options_set instead of rs6000_explicit_options.
10009 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10010 definition.
10011 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10012 global_options_set instead of rs6000_explicit_options.
10013 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10014 (rs6000_cmodel): New Enum and EnumValue entries.
10015 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10016 global_options_set instead of rs6000_explicit_options.
10017 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10018 (mtls-size=): Use Enum and Var.
10019 (rs6000_tls_size): New Enum and EnumValue entries.
10020
10021 2011-05-05 Michael Matz <matz@suse.de>
10022
10023 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10024 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10025 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10026 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10027 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10028 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10029 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10030 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10031 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10032 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10033 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10034 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10035 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10036 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10037 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10038 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10039
10040 2011-05-05 Richard Guenther <rguenther@suse.de>
10041
10042 * expmed.c (expand_variable_shift): Rename to ...
10043 (expand_shift_1): ... this. Take an expanded shift amount.
10044 For rotates recurse directly not building trees for the shift amount.
10045 (expand_variable_shift): Wrap around expand_shift_1.
10046 (expand_shift): Adjust.
10047
10048 2011-05-05 Jakub Jelinek <jakub@redhat.com>
10049
10050 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10051
10052 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10053
10054 * tree.h (get_pending_sizes): Remove prototype.
10055 (put_pending_size): Likewise.
10056 (put_pending_sizes): Likewise.
10057 * stor-layout.c (pending_sizes): Delete.
10058 (get_pending_sizes): Likewise.
10059 (put_pending_size): Likewise.
10060 (put_pending_sizes): Likewise.
10061 (variable_size): Do not call put_pending_size and tidy up.
10062 * function.h (struct function): Remove dont_save_pending_sizes_p.
10063 * lto-streamer-in.c (input_function): Do not stream it.
10064 * lto-streamer-out.c (output_function): Likewise.
10065 * tree-inline.c (initialize_cfun): Do not copy it.
10066 * c-decl.c (store_parm_decls): Do not set it.
10067 * omp-low.c (create_task_copyfn): Likewise.
10068 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10069
10070 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
10071
10072 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10073 conditions.
10074 (*movdf_internal): Ditto.
10075 (*movdf_internal_nointeger): Ditto.
10076 (*movsf_internal): Ditto.
10077
10078 2011-05-05 Joseph Myers <joseph@codesourcery.com>
10079
10080 * c-decl.c (finish_decl): Don't call get_pending_sizes.
10081 (grokparm): Add parameter expr. Pass it to grokdeclarator.
10082 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
10083 (c_variable_size): Remove.
10084 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
10085 call put_pending_sizes.
10086 (get_parm_info): Add parameter expr. Use it to set
10087 arg_info->pending_sizes.
10088 (store_parm_decls): Use arg_info->pending_sizes instead or calling
10089 get_pending_sizes.
10090 * c-parser.c (c_parser_parms_declarator): Update call to
10091 c_parser_parms_list_declarator.
10092 (c_parser_parms_list_declarator): Take parameter expr. Update
10093 call to push_parm_decl. Update recursive call. Don't call
10094 get_pending_sizes. Update calls to get_parm_info.
10095 (c_parser_objc_method_definition): Update calls to
10096 c_parser_objc_method_decl and objc_start_method_definition.
10097 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
10098 (c_parser_objc_method_decl): Add parameter expr. Update call to
10099 grokparm.
10100 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
10101 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10102 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10103
10104 2011-05-05 Michael Hope <michael.hope@linaro.org>
10105
10106 PR pch/45979
10107 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10108 __ARM_EABI__ hosts.
10109
10110 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10111
10112 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10113 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10114 (spu_output_mi_thunk): New function.
10115
10116 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10117
10118 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10119 targetm.asm_out.print_operand.
10120 * config/sol2.c: Include target.h.
10121
10122 2011-05-04 Jan Hubicka <jh@suse.cz>
10123
10124 * ipa-inline.c (reset_edge_caches): New function.
10125 (update_caller_keys): Add check_inlinablity_for; do not
10126 reset edge caches; remove now unnecesary loop.
10127 (update_callee_keys): Add comments; reset node_growth_cache of callee.
10128 (update_all_callee_keys): Likewise.
10129 (inline_small_functions): Sanity check cache; update code
10130 recomputing it.
10131
10132 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
10133
10134 PR rtl-optimization/47612
10135 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10136 as the last insn of the sequence to be moved.
10137
10138 2011-05-04 Tobias Burnus <burnus@net-b.de>
10139
10140 PR fortran/48864
10141 * doc/invoke.texi (Ofast): Document that it
10142 enables Fortran's -fno-protect-parens.
10143
10144 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
10145
10146 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10147
10148 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
10149
10150 * stor-layout.c (variable_size): Do not issue errors.
10151
10152 2011-05-04 Richard Guenther <rguenther@suse.de>
10153
10154 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10155 for array-ref indices.
10156 (tree_coverage_counter_addr): Likewise.
10157 (build_fn_info_type): Use size_int for index types.
10158 (build_gcov_info): Likewise.
10159
10160 2011-05-04 Richard Guenther <rguenther@suse.de>
10161
10162 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10163 to build_int_cst.
10164 * c-typeck.c (really_start_incremental_init): Use bitsize_int
10165 for constructor indices.
10166 (push_init_level): Likewise.
10167
10168 2011-05-04 Richard Guenther <rguenther@suse.de>
10169
10170 * explow.c (promote_mode): Move variable declarations before code.
10171
10172 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
10173
10174 * tree.h (build_function_type_array): Declare.
10175 (build_varargs_function_type_array): Declare.
10176 (build_function_type_vec, build_varargs_function_type_vec): Define.
10177 * tree.c (build_function_type_array_1): New function.
10178 (build_function_type_array): New function.
10179 (build_varargs_function_type_array): New function.
10180
10181 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
10182
10183 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10184 before setting STMT_VINFO_TYPE.
10185
10186 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10187
10188 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10189 instead of spu_pass_by_reference.
10190
10191 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10192
10193 * calls.c (emit_library_call_value_1): Invoke
10194 promote_function_mode hook on libcall arguments.
10195 * explow.c (promote_function_mode, promote_mode): Handle TYPE
10196 argument being NULL.
10197 * targhooks.c (default_promote_function_mode): Lisewise.
10198 * config/s390/s390.c (s390_promote_function_mode): Likewise.
10199 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10200
10201 * doc/tm.texi: Document that TYPE argument might be NULL.
10202
10203 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10204
10205 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10206
10207 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10208
10209 From Bernd Schmidt
10210 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10211
10212 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10213
10214 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10215 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10216 Move ...
10217 * mips-tfile.c: ... here.
10218 Don't include coretypes.h, tm.h, filenames.h.
10219 (saber_stop): Remove definition and all calls.
10220 [__SABER__]: Remove.
10221 (__LINE__): Remove default.
10222 (Size_t, Ptrdiff_t): Remove definitions.
10223 Replace by size_t, ptrdiff_t.
10224 [!MIPS_DEBUGGING_INFO]: Remove.
10225 (SHASH_SIZE, THASH_SIZE): Remove defaults.
10226 (progname): Add const.
10227 (STATIC): Remove.
10228 Replace all uses by static.
10229 (ALIGN_SYMTABLE_OFFSET): Remove default.
10230 * mips-tdump.c: Don't include coretypes.h, tm.h.
10231 Remove !MIPS_IS_STAB guard.
10232 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10233 $(TM_H), filenames.h dependencies.
10234 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10235
10236 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10237
10238 From Jie Zhang
10239 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10240 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10241
10242 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10243
10244 From Bernd Schmidt
10245 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10246 account and save/restore RETS.
10247 (PROFILE_BEFORE_PROLOGUE): Define.
10248 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
10249 the push insn to use predecrement.
10250
10251 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10252
10253 From Jie Zhang
10254 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10255
10256 2011-05-04 Nick Clifton <nickc@redhat.com>
10257
10258 * config/mn10300/mn10300.c: Include cfgloop.h.
10259 (DUMP): New macro.
10260 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
10261 Lcc or a FLcc insn into the instruction stream.
10262 (mn10300_block_contains_call): New function. Returns true if the
10263 given basic block contains a CALL insn.
10264 (mn10300_loop_contains_call_insn): New function. Returns true if
10265 the given loop contains a CALL insn.
10266 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
10267 to use the SETLB and Lcc or FLcc insns.
10268 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10269 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10270 * config/mn10300/mn10300.opt (msetlb): New option. Used to
10271 disable the SETLB optimization.
10272 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10273 __SETLB__ or __NO_SETLB__.
10274 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10275 (movsf_internal): Handle MDR register.
10276 (cmpsi): Make visible.
10277 (setlb): New pattern.
10278 (Lcc): New pattern.
10279 (FLcc): New pattern.
10280
10281 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
10282
10283 PR target/48860
10284 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10285 for reg<->xmm moves.
10286 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10287 (vec_concatv2di_rex64_sse): Ditto.
10288 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10289 (*vec_extractv2di_1_rex64): Ditto.
10290
10291 Revert:
10292 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10293
10294 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10295 reg<->xmm moves.
10296 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10297
10298 2011-05-04 Richard Guenther <rguenther@suse.de>
10299
10300 * tree.h (int_const_binop): Remove notrunc argument.
10301 * fold-const.c (int_const_binop): Remove notrunc argument. Always
10302 create integer constants that are properly truncated.
10303 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10304 (const_binop): Remove zero notrunc argument to int_const_binop.
10305 (size_binop_loc): Likewise.
10306 (fold_div_compare): Likewise.
10307 (maybe_canonicalize_comparison_1): Likewise.
10308 (fold_comparison): Likewise.
10309 (fold_binary_loc): Likewise.
10310 (multiple_of_p): Likewise.
10311 * expr.c (store_constructor): Likewise.
10312 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10313 (maybe_fold_stmt_addition): Likewise.
10314 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10315 * stor-layout.c (layout_type): Likewise.
10316 * tree-data-ref.c (tree_fold_divides_p): Likewise.
10317 * tree-sra.c (build_ref_for_offset): Likewise.
10318 (build_user_friendly_ref_for_offset): Likewise.
10319 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10320 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10321 * tree-ssa-loop-niter.c (inverse): Likewise.
10322 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10323 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10324 * tree-switch-conversion.c (check_range): Likewise.
10325 (build_constructors): Likewise.
10326 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10327 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10328 (extract_range_from_assert): Likewise.
10329 (vrp_int_const_binop): Likewise.
10330 (extract_range_from_binary_expr): Likewise.
10331 (extract_range_from_unary_expr): Likewise.
10332 (check_array_ref): Likewise.
10333 (find_case_label_range): Likewise.
10334 (simplify_div_or_mod_using_ranges): Likewise.
10335 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10336 comparing case labels for merging.
10337
10338 2011-05-03 Mark Wielaard <mjw@redhat.com>
10339
10340 * dwarf2out.c (debug_str_hash_forced): Removed.
10341 (gen_label_for_indirect_string): Removed.
10342 (get_debug_string_label): Removed.
10343 (AT_string_form): Generate label directly.
10344 (output_indirect_string): Test indirect_string_node for
10345 DW_FORM_strp instead of checking label and refcount.
10346 (prune_indirect_string): Removed.
10347 (prune_unused_types): Don't check debug_str_hash_forced or
10348 call prune_indirect_string.
10349
10350 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
10351
10352 PR other/48093
10353 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10354
10355 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
10356
10357 PR debug/47994
10358 PR debug/47919
10359 * combine.c (try_combine): Skip debug insns at m_split tests.
10360
10361 2011-04-26 Mark Wielaard <mjw@redhat.com>
10362
10363 PR42288
10364 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10365 when info_section_emitted.
10366
10367 2011-05-03 Joseph Myers <joseph@codesourcery.com>
10368
10369 * config/mips/mips-opts.h: New.
10370 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10371 to mips-opts.h.
10372 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10373 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10374 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
10375 via opts pointer.
10376 * config/mips/mips.h (enum mips_code_readable_setting): Move to
10377 mips-opts.h.
10378 (mips_abi, mips_code_readable): Don't declare.
10379 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
10380 (mabi=): Use Enum and Var.
10381 (mips_abi): New Enum and EnumValue entries.
10382 (mcode-readable=): Use Enum and Var.
10383 (mips_code_readable_setting): New Enum and EnumValue entries.
10384 (mr10k-cache-barrier=): Use Enum and Var.
10385 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
10386
10387 2011-05-03 Jan Hubicka <jh@suse.cz>
10388
10389 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
10390 replace hash by pointer map.
10391 (cgraph_node_set_element_def, cgraph_node_set_element,
10392 const_cgraph_node_set_element, varpool_node_set_element_def,
10393 varpool_node_set_element, const_varpool_node_set_element): Remove.
10394 (free_cgraph_node_set, free_varpool_node_set): New function.
10395 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
10396 * tree-emutls.c: Free varpool node set.
10397 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
10398 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10399 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
10400 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10401 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
10402 Move here from ipa.c; implement using pointer_map
10403 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
10404 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10405 debug_cgraph_node_set, varpool_node_set_new,
10406 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10407 dump_varpool_node_set, debug_varpool_node_set):
10408 Move to ipa-uitls.c.
10409 * passes.c (ipa_write_summaries): Update.
10410
10411 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10412
10413 From Mike Frysinger:
10414 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
10415 bf542/bf544/bf547/bf548/bf549.
10416
10417 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
10418
10419 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
10420
10421 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10422
10423 From Bernd Schmidt:
10424 * config/bfin/bfin.md (MOVCC): New mode_macro.
10425 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10426 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
10427 comments from generated assembly.
10428
10429 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10430
10431 From Bernd Schmidt
10432 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10433 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10434 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10435 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10436 * config/bfin/lib1funcs.asm (___muldi3): New function.
10437
10438 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10439
10440 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10441 build_function_type_list instead of build_function_type.
10442 Rearrange initialization of `args' to do so.
10443
10444 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10445
10446 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10447 instead of build_function_type.
10448
10449 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10450
10451 * config/rs6000/rs6000.c (spe_init_builtins): Call
10452 build_function_type_list instead of build_function_type.
10453 (paired_init_builtins, altivec_init_builtins): Likewise.
10454 (builtin_function_type): Likewise.
10455
10456 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10457
10458 * config/sh/sh.c (sh_media_init_builtins): Call
10459 build_function_type_list instead of build_function_type.
10460
10461 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10462
10463 * config/sparc/sparc.c (sparc_file_end): Call
10464 build_function_type_list instead of build_function_type.
10465
10466 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10467
10468 * config/alpha/alpha.c (alpha_init_builtins): Call
10469 build_function_type_list instead of build_function_type.
10470
10471 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10472
10473 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10474 build_function_type_list instead of build_function_type.
10475
10476 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10477
10478 * config/iq2000/i2000.c (iq2000_init_builtins): Call
10479 build_function_type_list instead of build_function_type.
10480 Delete `endlink' variable.
10481
10482 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10483
10484 * config/avr/avr.c (avr_init_builtins): Call
10485 build_function_type_list instead of build_function_type.
10486
10487 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10488
10489 * config/picochip/picochip.c (picochip_init_builtins): Call
10490 build_function_type_list instead of build_function_type.
10491 Delete `endlink' variable.
10492
10493 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10494
10495 * config/bfin/bfin.c (bfin_init_builtins): Call
10496 build_function_type_list instead of build_function_type.
10497
10498 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10499
10500 From Bernd Schmidt
10501 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10502 that's not CONST_INT. Seemingly redundant check is due to PR39768.
10503
10504 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10505
10506 From Jie Zhang:
10507 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10508 libbffastfp overrides libgcc when -mfast-fp.
10509
10510 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10511
10512 Originally from Bernd Schmidt
10513 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10514 * config/bfin/bfin.c (override_options): Test it and error if
10515 TARGET_FDPIC.
10516
10517 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10518
10519 Originally From Bernd Schmidt
10520 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10521 FD-PIC.
10522
10523 2011-05-03 Jeff Law <law@redhat.com>
10524
10525 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10526 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10527 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
10528 than accessing AUX field directly. Free the AUX field before
10529 clearing it.
10530 (thread_block, thread_through_loop_header): Likewise.
10531 (thread_single_edge, mark_threaded_blocks): Likewise.
10532 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
10533 (register_jump_thread): Do not attempt to thread to a NULL edge.
10534
10535 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10536
10537 * function.c (init_function_start): Call decide_function_section.
10538 * varasm.c (decide_function_section): New function.
10539 (assemble_start_function): When not using
10540 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10541 or first_function_block_is_cold.
10542 * rtl.h (decide_function_section): Declare.
10543
10544 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
10545 Jakub Jelinek <jakub@redhat.com>
10546
10547 PR target/48774
10548 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10549 only succeed if req_mode is the same as set_mode.
10550
10551 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10552
10553 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10554 * genemit.c (gen_exp): Handle RETURN.
10555 * emit-rtl.c (verify_rtx_sharing): Likewise.
10556 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10557 * rtl.c (copy_rtx): RETURN is shared.
10558 * rtl.h (enum global_rtl_index): Add GR_RETURN.
10559 (ret_rtx): New.
10560 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10561 * config/s390/s390.c (s390_emit_epilogue): Likewise.
10562 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10563 * config/cris/cris.c (cris_expand_return): Likewise.
10564 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10565 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10566 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10567 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10568 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10569 Likewise.
10570 * config/v850/v850.c (expand_epilogue): Likewise.
10571 * config/bfin/bfin.c (bfin_expand_call): Likewise.
10572 * config/arm/arm.md (epilogue): Likewise.
10573 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10574 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10575 variable to ret_reg.
10576
10577 2011-05-03 Richard Guenther <rguenther@suse.de>
10578
10579 PR lto/48846
10580 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10581 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10582 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10583
10584 2011-05-03 Richard Guenther <rguenther@suse.de>
10585
10586 * c-decl.c (grokdeclarator): Instead of looking at
10587 TREE_OVERFLOW check if the constant fits in the index type.
10588
10589 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10590
10591 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10592 (vec_store_lanes<mode><mode>): Likewise.
10593
10594 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10595
10596 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10597 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10598 convert_optab_index values.
10599 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10600 * genopinit.c (optabs): Initialize the new optabs.
10601 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10602 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10603 (expand_STORE_LANES): New functions.
10604 * tree.h (build_array_type_nelts): Declare.
10605 * tree.c (build_array_type_nelts): New function.
10606 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10607 (vect_model_load_cost): Likewise.
10608 (vect_store_lanes_supported, vect_load_lanes_supported)
10609 (vect_record_strided_load_vectors): Declare.
10610 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10611 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10612 (vect_transform_strided_load): Split out statement recording into...
10613 (vect_record_strided_load_vectors): ...this new function.
10614 * tree-vect-stmts.c (create_vector_array, read_vector_array)
10615 (write_vector_array, create_array_ref): New functions.
10616 (vect_model_store_cost): Add store_lanes_p argument.
10617 (vect_model_load_cost): Add load_lanes_p argument.
10618 (vectorizable_store): Try to use store-lanes functions for
10619 interleaved stores.
10620 (vectorizable_load): Likewise load-lanes and loads.
10621 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10622 to vect_model_store_cost.
10623 (vect_build_slp_tree): Likewise vect_model_load_cost.
10624
10625 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10626
10627 * hooks.h (hook_bool_mode_uhwi_false): Declare.
10628 * hooks.c (hook_bool_mode_uhwi_false): New function.
10629 * target.def (array_mode_supported_p): New hook.
10630 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10631 * doc/tm.texi: Regenerate.
10632 * stor-layout.c (mode_for_array): New function.
10633 (layout_type): Use it.
10634 * config/arm/arm.c (arm_array_mode_supported_p): New function.
10635 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10636
10637 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
10638
10639 PR target/48723
10640 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10641 for -fstack-check if the size to allocate is negative.
10642
10643 2011-05-02 Lawrence Crowl <crowl@google.com>
10644
10645 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10646 (timevar_cond_start): New for starting a timer only when it is not
10647 already running.
10648 (timevar_cond_stop): New for stopping a timer when it was not already
10649 running.
10650
10651 * timevar.c (timevar_stop): Enable start/stop timers to start again.
10652 (timevar_cond_start): New as above.
10653 (timevar_cond_stop): New as above.
10654
10655 * timevar.def: Add start/stop timers for compiler phases,
10656 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10657 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10658 and TV_PHASE_FINALIZE.
10659 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10660 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10661 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10662 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10663 Make unused TV_OVERLOAD into a start/stop timer.
10664
10665 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10666 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10667 to indicate that they are start/stop timers.
10668
10669 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10670 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10671 Move initialization to do_compile.
10672 (do_compile): Add initialization from above.
10673 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10674
10675 * c-decl.c (c_write_global_declarations): Add start/stop of
10676 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10677
10678 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10679 or TV_PARSE_INLINE, as appropriate.
10680 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10681 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10682
10683 2011-05-02 Jason Merrill <jason@redhat.com>
10684
10685 PR c++/40975
10686 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10687
10688 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
10689
10690 PR c/35445
10691 * c-decl.c (finish_decl): Only create a composite if the types are
10692 compatible.
10693
10694 2011-05-02 Joseph Myers <joseph@codesourcery.com>
10695
10696 * config/fr30/fr30-protos.h (Mmode): Don't define.
10697 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
10698 definition where used.
10699 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
10700 define. Expand definitions where used.
10701 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
10702 Expand definitions where used.
10703 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
10704 rx_function_arg, rx_function_arg_advance,
10705 rx_function_arg_boundary): Expand definitions of those macros.
10706 * config/v850/v850-protos.h (Mmode): Don't define. Expand
10707 definition where used.
10708
10709 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10710
10711 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10712 reg<->xmm moves.
10713 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
10714 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
10715 with *movv2sf_internal_rex64_avx.
10716 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
10717 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
10718 Use %v prefix in insn mnemonic to handle TARGET_AVX.
10719 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
10720 "vex" in "prefix" attribute calculation.
10721 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
10722
10723 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
10724
10725 PR target/47951
10726 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
10727 inputs match the output.
10728
10729 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
10730
10731 PR target/47955
10732 * config/m68k/m68k.c (m68k_expand_prologue): Set
10733 current_function_static_stack_size.
10734
10735 2011-05-02 Jan Hubicka <jh@suse.cz>
10736
10737 * lto-streamer.c (lto_streamer_cache_insert_1,
10738 lto_streamer_cache_lookup, lto_streamer_cache_create,
10739 lto_streamer_cache_delete): Use pointer map instead of hashtable.
10740 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
10741
10742 2011-05-02 Joseph Myers <joseph@codesourcery.com>
10743
10744 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
10745 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
10746 config/m68k/t-opts: New files.
10747 * config/m68k/m68k-tables.opt: New file (generated).
10748 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
10749 extra_options and m68k/t-opts to tmake_file.
10750 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
10751 (all_isas): Initialize using m68k-isas.def.
10752 (all_microarchs): Initialize using m68k-microarchs.def.
10753 (m68k_find_selection): Remove.
10754 (m68k_handle_option): Don't assert that global structures are in
10755 use. Use error_at. Access variables via opts pointer. Don't
10756 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
10757 directly for -m68020-40 and -m68020-60.
10758 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
10759 m68k_tune_entry here.
10760 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
10761 to m68k-opts.h.
10762 (m68k_library_id_string): Remove declaration.
10763 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
10764 (m68k_library_id_string): New Variable.
10765 (march=, mcpu=, mtune=): Use Enum and Var.
10766
10767 2011-05-02 Richard Guenther <rguenther@suse.de>
10768
10769 * varasm.c (output_constructor_regular_field): Compute zero-based
10770 index with double-ints. Make sure to ICE instead of producing
10771 wrong code.
10772 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
10773 in asserts. Properly use a signed type.
10774
10775 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10776
10777 * config/i386/sse.md (V): New mode iterator.
10778 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
10779 TARGET_SSE2.
10780 (V_256): Rename from AVX256MODE.
10781 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
10782 condition to all users.
10783 (VF1): Ditto.
10784 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
10785 condition to all users.
10786 (VF_128): Make V4SF mode unconditional.
10787 (VF_256): Rename from AVX256MODEF2P.
10788 (VI4F_128): Rename from SSEMODE4S.
10789 (VI8F_128): Rename from SSEMODE2D.
10790 (VI4F_256): Rename from AVX256MODE8P.
10791 (VI8F_256): Rename from AVX256MODE4P.
10792 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
10793 (ssescalarmodesuffix): Remove SF and DF modes.
10794 (SSEMODE124): Remove.
10795 (SSEMODE1248): Ditto.
10796 (SSEMODEF2P): Ditto.
10797 (AVXMODEF2P): Ditto.
10798 (AVXMODEFDP): Ditto.
10799 (AVXMODEFSP): Ditto.
10800 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
10801 unconditional.
10802 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
10803 unconditional.
10804 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
10805 xop_pcmov_<mode>256. Use V mode iterator.
10806
10807 Adjust RTX patterns globally for renamed mode attributes.
10808
10809 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10810
10811 * haifa-sched.c (sched_emit_insn): Emit insn before first
10812 non-scheduled insn. Inform back-end about new insn. Add
10813 new insn to scheduled_insns list.
10814
10815 2011-05-02 Richard Guenther <rguenther@suse.de>
10816
10817 PR tree-optimization/48822
10818 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
10819 (process_scc): Indicate which iteration we start.
10820
10821 2011-05-02 Jan Hubicka <jh@suse.cz>
10822
10823 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
10824 (lto_section_overrun): New.
10825 * lto-section-out.c (append_block): Rename to ...
10826 (lto_append_block): ... this one; export.
10827 (lto_output_1_stream): Move lto lto-streamer.h
10828 (lto_output_data_stream): Update.
10829 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
10830 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
10831 functions.
10832
10833 2011-05-02 Richard Guenther <rguenther@suse.de>
10834
10835 * tree.c (tree_code_counts): New global array.
10836 (record_node_allocation_statistics): Count individual tree codes.
10837 (dump_tree_statistics): Dump individual code stats.
10838
10839 2011-05-01 Jan Hubicka <jh@suse.cz>
10840
10841 * ipa-inline.c (caller_growth_limits): Fix thinko when
10842 looking for largest stack frame.
10843 * ipa-inline.h (dump_inline_summary): Declare.
10844 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
10845 on stack usage.
10846 (dump_inline_summary): Export.
10847 (debug_inline_summary): Declare as DEBUG_FUNCTION.
10848
10849 2011-05-01 Anatoly Sokolov <aesok@post.ru>
10850
10851 * reginfo.c (memory_move_cost): Change rclass argument type form
10852 'enum reg_class' to reg_class_t.
10853 * reload.h (memory_move_cost): Update prototype.
10854 * postreload.c reload_cse_simplify_set): Change type dclass var to
10855 reg_class_t.
10856 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
10857 Update prototype.
10858 (ira_allocate_and_set_costs): Change aclass argument type form
10859 'enum reg_class' to reg_class_t.
10860 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
10861 Change aclass argument type to reg_class_t.
10862 (update_conflict_hard_reg_costs): Change type aclass and pref vars
10863 to reg_class_t.
10864 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
10865 memory_move_cost call.
10866
10867 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
10868 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
10869 Change type tmp var to reg_class_t.
10870
10871 2011-04-30 Jan Hubicka <jh@suse.cz>
10872
10873 * ipa-inline.c (can_inline_edge_p): Disregard limits when
10874 inlining into function with flatten attribute.
10875 (want_inline_small_function_p): Be more realistic about inlining
10876 cold calls where callee size grows.
10877
10878 2011-04-30 Jan Hubicka <jh@suse.cz>
10879
10880 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
10881 flags.
10882
10883 2011-04-30 Anatoly Sokolov <aesok@post.ru>
10884
10885 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
10886 PRINT_OPERAND_PUNCT_VALID_P): Remove.
10887 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
10888 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
10889 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10890 (print_operand): Rename to...
10891 (sparc_print_operand): ...this. Make static. Adjust
10892 sparc_print_operand function call.
10893 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
10894 functions.
10895
10896 2011-04-30 Jan Hubicka <jh@suse.cz>
10897
10898 PR middle-end/48752
10899 * ipa-inline.c (early_inliner): Disable when doing late
10900 addition of function.
10901
10902 2011-04-30 Jakub Jelinek <jakub@redhat.com>
10903
10904 * dwarf2out.c (get_address_mode): New inline.
10905 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
10906 if not dwarf_strict emit
10907 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
10908 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
10909 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
10910 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
10911 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
10912 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
10913 mem_loc_descriptor callers.
10914 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10915 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
10916 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
10917 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
10918 (base_types): New variable.
10919 (get_base_type_offset, calc_base_type_die_sizes,
10920 base_type_for_mode, mark_base_types, base_type_cmp,
10921 move_marked_base_types): New functions.
10922 (calc_die_sizes): Assert that die_offset is 0 or equal to
10923 next_die_offset.
10924 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
10925 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
10926 callers. If not dwarf_strict, call mem_loc_descriptor even for
10927 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
10928 (gen_subprogram_die): Don't give up on call site parameters
10929 with non-integral or large integral modes. Adjust
10930 mem_loc_descriptor callers.
10931 (prune_unused_types): Call prune_unused_types_mark on base_types
10932 vector entries.
10933 (resolve_addr): Call mark_base_types.
10934 (dwarf2out_finish): Call move_marked_base_types.
10935
10936 PR tree-optimization/48809
10937 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
10938 type.
10939 (gen_inbound_check): Don't compute index_expr - range_min in utype
10940 again, instead reuse SSA_NAME initialized in build_arrays.
10941 Remove two useless gsi_for_stmt calls.
10942
10943 2011-04-29 Jeff Law <law@redhat.com>
10944
10945 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
10946
10947 2011-04-29 Martin Jambor <mjambor@suse.cz>
10948
10949 * cgraph.h (cgraph_postorder): Remove declaration.
10950 * ipa-utils.h (ipa_free_postorder_info): Declare.
10951 (ipa_reverse_postorder): Likewise.
10952 * cgraphunit.c: Include ipa-utils.h.
10953 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
10954 * ipa-inline.c: Include ipa-utils.h.
10955 (ipa_inline): Update call to ipa_reverse_postorder.
10956 * ipa-pure-const.c (propagate_pure_const): Update call to
10957 ipa_reduced_postorder and ipa_print_order. Call
10958 ipa_free_postorder_info to clean up.
10959 (propagate_nothrow): Likewise.
10960 * ipa-reference.c (propagate): Removed a useless call to
10961 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
10962 and ipa_print_order. Call ipa_free_postorder_info to clean up.
10963 * ipa.c: Include ipa-utils.h.
10964 (ipa_profile): Update call to ipa_reverse_postorder.
10965 (cgraph_postorder): Moved to...
10966 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
10967 (ipa_utils_print_order): Renamed to ipa_print_order.
10968 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
10969 comments.
10970 (ipa_free_postorder_info): New function.
10971 * passes.c: Include ipa-utils.h.
10972 (do_per_function_toporder): Update call to ipa_reverse_postorder.
10973 (ipa_write_summaries): Likewise.
10974 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
10975 (cgraphunit.o): Likewise.
10976 (ipa.o): Likewise.
10977 (ipa-inline.o): Likewise.
10978
10979 2011-04-29 Jan Hubicka <jh@suse.cz>
10980
10981 * gcc.dg/tree-ssa/inline-10.c: New testcase.
10982 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
10983 * ipa-inline.h (clause_t): Turn into unsigned int.
10984 * ipa-inline-analysis.c (add_clause): Do more simplification.
10985 (and_predicates): Shortcut more cases.
10986 (predicates_equal_p): Move forward; check that clauses are properly
10987 ordered.
10988 (or_predicates): Shortcut more cases.
10989 (edge_execution_predicate): Rewrite as...
10990 (set_cond_stmt_execution_predicate): ... this function; handle
10991 __builtin_constant_p.
10992 (set_switch_stmt_execution_predicate): New .
10993 (compute_bb_predicates): New.
10994 (will_be_nonconstant_predicate): Update TODO.
10995 (estimate_function_body_sizes): Use compute_bb_predicates
10996 and free them later, always try to estimate if stmt is constant.
10997 (estimate_time_after_inlining, estimate_size_after_inlining):
10998 Gracefully handle optimized out edges.
10999 (read_predicate): Fix off by one error.
11000
11001 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
11002
11003 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11004
11005 2011-04-27 Xinliang David Li <davidxl@google.com>
11006
11007 * tree-profile.c (init_ic_make_global_vars): Set
11008 tls attribute on ic vars.
11009 * coverage.c (coverage_end_function): Initialize
11010 function_list with zero.
11011
11012 2011-04-29 Richard Guenther <rguenther@suse.de>
11013
11014 * builtins.c (fold_builtin_classify_type): Use integer_type_node
11015 for the type of the result.
11016 (fold_builtin_isascii): Likewise.
11017 (fold_builtin_toascii): Use integer_type_node where appropriate.
11018 (fold_builtin_logb): Likewise.
11019 (fold_builtin_frexp): Likewise.
11020 (fold_builtin_strstr): Likewise.
11021 (fold_builtin_strpbrk): Likewise.
11022 (fold_builtin_fputs): Likewise.
11023 (fold_builtin_sprintf): Likewise.
11024 (fold_builtin_snprintf): Likewise.
11025 (fold_builtin_printf): Likewise.
11026 (do_mpfr_remquo): Use a proper type for the assigned constant.
11027 (do_mpfr_lgamma_r): Likewise.
11028 * dwarf2out.c (resolve_one_addr): Use size_int.
11029 * except.c (init_eh): Likewise.
11030 (assign_filter_values): Use integer_type_node for filter values.
11031 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11032 indices.
11033 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11034 for EH region numbers.
11035 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11036 for the shift amount.
11037
11038 2011-04-29 Richard Guenther <rguenther@suse.de>
11039
11040 * expr.h (expand_shift): Rename to ...
11041 (expand_variable_shift): ... this.
11042 (expand_shift): Take a constant shift amount.
11043 * expmed.c (expand_shift): Rename to ...
11044 (expand_variable_shift): ... this.
11045 (expand_shift): New wrapper around expand_variable_shift.
11046 * expr.c (convert_move, emit_group_load_1, emit_group_store,
11047 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11048 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11049 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11050 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11051 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11052 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11053 emit_store_flag_1, emit_store_flag): Likewise.
11054 * builtins.c (expand_builtin_signbit): Likewise.
11055 * calls.c (load_register_parameters): Likewise.
11056 * function.c (assign_parm_setup_block): Likewise.
11057 * lower-subreg.c (resolve_shift_zext): Likewise.
11058 * optabs.c (widen_bswap, expand_abs_nojump,
11059 expand_one_cmpl_abs_nojump, expand_float): Likewise.
11060 * spu/spu.c (spu_expand_extv): Likewise.
11061 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11062
11063 2011-04-29 Richard Guenther <rguenther@suse.de>
11064
11065 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11066 for the remapped region number.
11067 * predict.c (build_predict_expr): Use integer_type_node for the
11068 predict kind.
11069 * fold-const.c (fold_binary_loc): Use integer_type_node for
11070 the shift amount. Use a proper type for the PLUS_EXPR operand.
11071
11072 2011-04-29 Michael Matz <matz@suse.de>
11073
11074 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11075 other trees that just builtins.
11076 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11077
11078 2011-04-29 Richard Guenther <rguenther@suse.de>
11079
11080 * tree-nested.c (get_trampoline_type): Use size_int.
11081 (get_nl_goto_field): Likewise.
11082 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11083 for all indexes.
11084 (lower_eh_constructs_2): Likewise.
11085 (lower_resx): Likewise.
11086 (lower_eh_dispatch): Likewise.
11087 * tree-mudflap.c (mf_build_string): Use size_int.
11088 (mudflap_register_call): Use integer_type_node for the flag.
11089 (mudflap_enqueue_constant): Use size_int.
11090 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11091 instead of rebuilding it.
11092
11093 2011-04-29 Richard Guenther <rguenther@suse.de>
11094
11095 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11096 Handle OBJ_TYPE_REF.
11097 (find_func_aliases_for_call): Use it more consistently.
11098
11099 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
11100
11101 * haifa-sched.c (last_nondebug_scheduled_insn): New.
11102 (rank_for_schedule): Use it.
11103 (schedule_block): Set it.
11104
11105 2011-04-28 David Li <davidxl@google.com>
11106
11107 * tree.c (crc32_string): Use crc32_byte.
11108 (crc32_byte): New function.
11109 * tree.h (crc32_byte): New function.
11110 * gcov.c (read_graph_file): Handle new cfg_cksum.
11111 (read_count_file): Ditto.
11112 * profile.c (instrument_values): Ditto.
11113 (get_exec_counts): Ditto.
11114 (read_profile_edge_counts): Ditto.
11115 (compute_branch_probabilities): Ditto.
11116 (compute_value_histograms): Ditto.
11117 (branch_prob): Ditto.
11118 (end_branch_prob): Ditto.
11119 * coverage.c (read_counts_file): Ditto.
11120 (get_coverage_counts): Ditto.
11121 (tree_coverage_counter_addr): Ditto.
11122 (coverage_checksum_string): Ditto.
11123 (coverage_begin_output): Ditto.
11124 (coverage_end_function): Ditto.
11125 (build_fn_info_type): Ditto.
11126 (build_fn_info_value): Ditto.
11127 * libgcov.c (gcov_exit): Ditto.
11128 * gcov-dump.c (tag_function): Ditto.
11129 (compute_checksum): Remove.
11130
11131 2011-04-29 Alan Modra <amodra@gmail.com>
11132
11133 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11134 unspec plus offset. Tidy macho code.
11135
11136 2011-04-29 Martin Jambor <mjambor@suse.cz>
11137
11138 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11139 node instead of a decl. Update all callers.
11140 * cgraph.h: Update declaration.
11141
11142 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
11143
11144 PR tree-optimization/48765
11145 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11146 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11147 to indicate if loop aware SLP is being used. Scan the statements
11148 and update the vectorization factor according to the type of
11149 vectorization before statement analysis.
11150 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11151 pass it to vect_analyze_loop_operations.
11152 (vectorizable_reduction): Set number of copies to 1 in case of pure
11153 SLP statement.
11154 * tree-vect-stmts.c (vectorizable_conversion,
11155 vectorizable_assignment, vectorizable_shift,
11156 vectorizable_operation, vectorizable_type_demotion,
11157 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11158 Likewise.
11159 (vectorizable_condition): Move the check that it is not SLP
11160 vectorization before the number of copies check.
11161 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11162 to vectorize the loop using SLP.
11163
11164 2011-04-28 Jakub Jelinek <jakub@redhat.com>
11165
11166 PR middle-end/48597
11167 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11168 inline asm.
11169
11170 2011-04-28 Joseph Myers <joseph@codesourcery.com>
11171
11172 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11173 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11174 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11175 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11176 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11177 linux*.h headers.
11178 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
11179 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11180 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11181 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11182 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11183 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11184 REG_NAME.
11185 * config/i386/linux.h (REG_NAME): Don't define.
11186 * config/i386/linux64.h (REG_NAME): Don't define.
11187 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11188 Undefine before defining.
11189
11190 2011-04-28 Jan Hubicka <jh@suse.cz>
11191
11192 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11193 nonconstant_names array.
11194 (estimate_function_body_sizes): Build nonconstant_names array; handle
11195 BUILT_IN_CONSTANT_P.
11196
11197 2011-04-28 Richard Guenther <rguenther@suse.de>
11198
11199 PR bootstrap/48804
11200 Revert
11201 2011-04-28 Richard Guenther <rguenther@suse.de>
11202
11203 * tree-ssa-structalias.c (solve_constraints): Build succ graph
11204 as late as possible.
11205
11206 2011-04-28 Richard Guenther <rguenther@suse.de>
11207
11208 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11209 (debug_constraint): Do it here.
11210 (dump_constraints): And here.
11211 (rewrite_constraints): And here.
11212 (dump_constraint_edge): Remove.
11213 (dump_constraint_graph): Rewrite to produce DOT output.
11214 (solve_constraints): Build succ graph as late as possible.
11215 Dump constraint graphs before and after solving.
11216
11217 2011-04-28 Richard Guenther <rguenther@suse.de>
11218
11219 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11220 New function split out from ...
11221 (find_func_aliases): ... here. Call it.
11222 (find_func_aliases_for_call): Likewise.
11223
11224 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
11225
11226 * internal-fn.h (internal_fn_name_array): Declare.
11227 (internal_fn_flags_array): Likewise.
11228
11229 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
11230
11231 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
11232 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11233 Move from sse.md.
11234 (ssemodefsuffix): Remove.
11235 (ssevecmodesuffix): New mode attribute.
11236 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11237 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11238 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11239 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11240 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11241 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11242 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11243 ssemodesuffix mode attribute.
11244 (float splitters): Use ssevecmodesuffix mode attribute.
11245 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11246 (sseinsmode): Rename from avxvecmode.
11247 (avxsizesuffix): Rename from avxmodesuffix.
11248 (sseintvecmode): Rename from avxpermvecmode.
11249 (ssedoublevecmode): Rename from ssedoublesizemode.
11250 (ssehalfvecmode): Rename from avxhalfvecmode.
11251 (ssescalarmode): Rename from avxscalarmode.
11252 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11253 templates for ssemodesuffix mode attribute.
11254 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11255 mode attribute.
11256
11257 Adjust RTX patterns globally for renamed mode attributes.
11258
11259 2011-04-27 Jan Hubcika <jh@suse.cz>
11260
11261 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11262 * ipa-inline-analysis.c: Include alloc-pool.h.
11263 (edge_predicate_pool): New.
11264 (trye_predicate_p): New function
11265 (false_predicate_p): New function.
11266 (add_clause): Sanity check that false clauses are "optimized";
11267 never add clauses to predicate that is already known to be false.
11268 (and_predicate): Use flase_predicate_p.
11269 (evaulate_predicate): Rename to ...
11270 (evaluate_predicate): ... this one; update all callers; assert
11271 that false is not listed among possible truths.
11272 (dump_predicate): Use true_predicate_p.
11273 (account_size_time): Use false_predicate_p.
11274 (evaulate_conditions_for_edge): Rename to ...
11275 (evaluate_conditions_for_edge) ... this one.
11276 (edge_set_predicate): New function.
11277 (inline_edge_duplication_hook): Duplicate edge predicates.
11278 (inline_edge_removal_hook): Free edge predicates.
11279 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
11280 (dump_inline_summary): Update.
11281 (estimate_function_body_sizes): Set edge predicates.
11282 (estimate_calls_size_and_time): Handle predicates.
11283 (estimate_callee_size_and_time): Update.
11284 (remap_predicate): Add toplev_predicate; update comment.
11285 (remap_edge_predicates): New function.
11286 (inline_merge_summary): Compute toplev predicate; update.
11287 (read_predicate): New function.
11288 (read_inline_edge_summary): Use it.
11289 (inline_read_section): Likewise.
11290 (write_predicate): New function.
11291 (write_inline_edge_summary): Use it.
11292 (inline_write_summary): Likewise.
11293 (inline_free_summary): Free alloc pool and edge summary vec.
11294
11295 2011-04-27 Richard Guenther <rguenther@suse.de>
11296
11297 * tree-ssa-structalias.c (changed_count): Remove.
11298 (changed): Use a bitmap.
11299 (unify_nodes): Adjust.
11300 (do_sd_constraint): Likewise.
11301 (do_ds_constraint): Likewise.
11302 (do_complex_constraint): Likewise.
11303 (solve_graph): Likewise.
11304
11305 2011-04-27 Jan Hubicka <jh@suse.cz>
11306
11307 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11308
11309 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
11310
11311 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11312 (avx_vperm2f128_*_operand): Ditto.
11313 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11314 Use avx_vpermilp_parallel in insn condition.
11315 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11316 Use avx_vperm2f128_parallel in insn condition.
11317
11318 2011-04-27 Richard Guenther <rguenther@suse.de>
11319
11320 * Makefile.in (tree-ssa-structalias.o): Remove
11321 gt-tree-ssa-structalias.h dependency.
11322 (GTFILES): Remove tree-ssa-structalias.c.
11323 * tree.c (allocate_decl_uid): New function.
11324 (make_node_stat): Use it.
11325 (copy_node_stat): Likewise.
11326 * tree.h (allocate_decl_uid): Declare.
11327 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11328 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11329 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
11330 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
11331 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11332 (struct heapvar_map): Likewise.
11333 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11334 heapvar_insert): Likewise.
11335 (make_heapvar_for): Rename to ...
11336 (make_heapvar): ... this. Simplify.
11337 (fake_var_decl_obstack): New global var.
11338 (build_fake_var_decl): New function.
11339 (make_constraint_from_heapvar): Adjust.
11340 (handle_lhs_call): Likewise.
11341 (create_function_info_for): Likewise.
11342 (intra_create_variable_infos): Likewise.
11343 (init_alias_vars): Allocate fake_var_decl_obstack.
11344 (init_alias_heapvars, delete_alias_heapvars): Remove.
11345 (compute_points_to_sets): Do not call init_alias_heapvars.
11346 (ipa_pta_execute): Likewise.
11347 (delete_points_to_sets): Free fake_var_decl_obstack.
11348
11349 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11350
11351 * config/spu/divmovti4.c (union qword_UTItype): New data type.
11352 (si_from_UTItype, si_to_UTItype): New functions.
11353 (__udivmodti4): Use them to implement type-punning.
11354 * config/spu/multi3.c (union qword_TItype): New data type.
11355 (si_from_TItype, si_to_TItype): New functions.
11356 (__multi3): Use them to implement type-punning.
11357
11358 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11359
11360 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11361
11362 2011-04-27 Jan Hubicka <jh@suse.cz>
11363
11364 * ipa-prop.c (function_insertion_hook_holder): New holder.
11365 (ipa_add_new_function): New function.
11366 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11367 Register/deregister holder.
11368
11369 2011-04-27 Richard Guenther <rguenther@suse.de>
11370
11371 PR tree-optimization/48772
11372 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
11373
11374 2011-04-27 Richard Guenther <rguenther@suse.de>
11375
11376 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11377 TARGET_MEM_REF handling.
11378
11379 2011-04-27 Nick Clifton <nickc@redhat.com>
11380
11381 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11382 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11383 (REG_CLASS_NAMES): Likewise.
11384 (REG_CLASS_CONTENTS): Likewise.
11385 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11386 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11387 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
11388 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
11389 (EVEN_REGS): New macro. Alias for QUAD_REGS.
11390 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
11391 duplicate register classes.
11392 (frv_class_likely_spilled_p): Likewise.
11393 (frv_register_move_cost): Likewise.
11394
11395 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
11396 end of the regno_reg_class array.
11397
11398 2011-04-27 Jakub Jelinek <jakub@redhat.com>
11399
11400 PR c/48742
11401 * c-typeck.c (build_binary_op): Don't wrap arguments if
11402 int_operands is true.
11403
11404 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
11405
11406 PR target/48767
11407 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
11408 targetm.calls.must_pass_in_stack for void type.
11409
11410 2011-04-26 Jan Hubicka <jh@suse.cz>
11411
11412 * cgraphbuild.c (build_cgraph_edges): Update call
11413 of cgraph_create_edge and cgraph_create_indirect_edge.
11414 * cgraph.c (cgraph_create_edge_including_clones,
11415 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
11416 cgraph_update_edges_for_call_stmt_node): Do not take nest
11417 argument; do not initialize call_stmt_size/time.
11418 (dump_cgraph_node): Do not dump nest.
11419 (cgraph_clone_edge): Do not take loop_nest argument;
11420 do not propagate it; do not clone call_stmt_size/time.
11421 (cgraph_clone_node): Likewise.
11422 (cgraph_create_virtual_clone): Update.
11423 * cgraph.h (struct cgraph_edge): Remove
11424 call_stmt_size/call_stmt_time/loop_nest.
11425 (cgraph_create_edge, cgraph_create_indirect_edge,
11426 cgraph_create_edge_including_clones, cgraph_clone_node): Update
11427 prototype.
11428 * tree-emutls.c (gen_emutls_addr): Update.
11429 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11430 loop_nest; handle indirect calls, too.
11431 (clone_inlined_nodes): Do not care about updating inline summaries.
11432 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11433 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11434 stream call_stmt_size/call_stmt_time/loop_nest.
11435 * ipa-inline.c (edge_badness): Update.
11436 (ipa_inline): dump summaries after inlining.
11437 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
11438 New.
11439 (inline_edge_summary): New function.
11440 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11441 (inline_edge_removal_hook): Handle edge summaries.
11442 (inline_edge_duplication_hook): New hook.
11443 (inline_summary_alloc): Alloc hooks.
11444 (initialize_growth_caches): Do not register removal hooks.
11445 (free_growth_caches); Do not free removal hook.
11446 (dump_inline_edge_summary): New function.
11447 (dump_inline_summary): Use it.
11448 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11449 (inline_update_callee_summaries): New function.
11450 (inline_merge_summary): Use it.
11451 (do_estimate_edge_time, do_estimate_edge_growth): Update.
11452 (read_inline_edge_summary): New function.
11453 (inline_read_section): Use it.
11454 (write_inline_edge_summary): New function.
11455 (inline_write_summary): Use it.
11456 (inline_free_summary): Free edge new holders.
11457 * tree-inline.c (copy_bb): Update.
11458
11459 2011-04-26 Jason Merrill <jason@redhat.com>
11460
11461 * tree-eh.c (lower_try_finally_switch): Create the label along with
11462 the CASE_LABEL_EXPR.
11463
11464 2011-04-26 David S. Miller <davem@davemloft.net>
11465 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11466
11467 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11468 * configure: Regenerate.
11469
11470 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11471
11472 PR target/48258
11473 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11474 reduction.
11475 (VEC_reduc): New code iterator and splitters for vector reduction.
11476 (VEC_reduc_name): Ditto.
11477 (VEC_reduc_rtx): Ditto.
11478 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11479 (reduc_<VEC_reduc_name>_v4sf): Ditto.
11480
11481 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11482 support for extracting SF on VSX.
11483
11484 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11485 generating xscvspdp.
11486 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11487 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11488 double add, minimum, maximum vector reduction.
11489 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11490 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11491 optimize double vector reduction.
11492 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11493
11494 2011-04-26 Joseph Myers <joseph@codesourcery.com>
11495
11496 * config/fr30/fr30.h (inhibit_libc): Don't define.
11497 * config/m32r/m32r-protos.h: Correct comment.
11498 * config/v850/v850.h (GHS_default_section_names,
11499 GHS_current_section_names): Use tree, not union tree_node *.
11500
11501 2011-04-26 Xinliang David Li <davidxl@google.com>
11502
11503 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
11504 * c-family/c-opts.c (c_common_handle_option): Set
11505 warn_maybe_uninitialized.
11506 * opts.c (common_handle_option): Ditto.
11507 * common.opt: New option.
11508 * tree-ssa.c (warn_uninit): Add one more parameter.
11509 (warn_uninitialized_var): Pass warning code.
11510 * tree-flow.h: Interface change.
11511
11512 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11513
11514 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
11515 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11516 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11517
11518 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11519
11520 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11521 * config/mips/mips.opt (mmips-tfile): Remove.
11522
11523 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11524 mips-tdump reference to ...
11525 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
11526 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11527 reference by Tru64 UNIX.
11528
11529 2011-04-26 Jakub Jelinek <jakub@redhat.com>
11530
11531 PR debug/48768
11532 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11533 is error_mark_node, set value to NULL.
11534
11535 PR tree-optimization/48734
11536 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11537 if return value from maybe_fold_*_comparsions isn't something
11538 the code is prepared to handle.
11539
11540 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
11541
11542 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11543 mode check.
11544 (ext_QIreg_nomode_operands): Remove.
11545 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11546 (*andsi_1): Ditto.
11547 (*andhi_1): Ditto.
11548
11549 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
11550
11551 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11552
11553 2011-04-26 Richard Guenther <rguenther@suse.de>
11554
11555 * c-typeck.c (build_unary_op): Do not expand array-refs via
11556 pointer arithmetic. Only adjust qualifiers for function types.
11557
11558 2011-04-26 Richard Guenther <rguenther@suse.de>
11559
11560 PR middle-end/48694
11561 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11562 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
11563 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
11564 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
11565
11566 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
11567
11568 * doc/extend.texi: Document __underlying_type.
11569
11570 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
11571
11572 * config/rs6000/titan.md (automata_option "progress"): Remove.
11573
11574 2011-04-25 Jeff Law <law@redhat.com>
11575
11576 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11577
11578 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
11579
11580 * system.h (ENUM_BITFIELD): Remove.
11581
11582 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
11583 Eric Botcazou <ebotcazou@adacore.com>
11584
11585 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11586 for STORE_FLAG_VALUE==-1 case.
11587
11588 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
11589
11590 PR target/43804
11591 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11592 LEGITIMATE_PIC_OPERAND_P.
11593
11594 2011-04-24 Jan Hubicka <jh@suse.cz>
11595
11596 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11597 WPA hack.
11598 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11599 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11600 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
11601 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11602 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11603 Sanity check predicate length.
11604 (remap_predicate): Likewise; sanity check jump functions.
11605 (inline_read_section, inline_write_summary): Sanity check
11606 predicate length.
11607
11608 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
11609
11610 PR other/48748
11611 * doc/extend.texi (Type Traits): Document __is_standard_layout,
11612 __is_literal_type, and __is_trivial; update throughout about
11613 possibly cv-qualified void types.
11614
11615 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
11616
11617 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11618 testsuite and make it version agnostic.
11619
11620 2011-04-22 Jan Hubicka <jh@suse.cz>
11621
11622 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11623
11624 2011-04-23 Jakub Jelinek <jakub@redhat.com>
11625
11626 PR c/48685
11627 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11628 to VOID_TYPE even around MODIFY_EXPR.
11629
11630 2011-04-22 Mike Stump <mikestump@comcast.net>
11631
11632 * gensupport.c (read_md_rtx): Fix typo in comment.
11633 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11634 comment.
11635
11636 2011-04-22 Jan Hubicka <jh@suse.cz>
11637
11638 * gengtype.c (open_base_files): Add ipa-inline.h include.
11639 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11640 ipa-prop.c; update all uses.
11641 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
11642 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11643 merge summary of inlined function into former caller.
11644 * ipa-inline.c (max_benefit): Remove.
11645 (edge_badness): Compensate for removal of benefits.
11646 (update_caller_keys): Use
11647 reset_node_growth_cache/reset_edge_growth_cache.
11648 (update_callee_keys): Likewise.
11649 (update_all_callee_keys): Likewise.
11650 (inline_small_functions): Do not collect max_benefit; do not reset
11651 estimated_growth; call free_growth_caches and initialize_growth_caches.
11652 * ipa-inline.h (struct condition, type clause_t, struct predicate,
11653 struct size_time_entry): New structures.
11654 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
11655 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11656 and estimated_growth.
11657 (edge_growth_cache_entry): New structure.
11658 (node_growth_cache, edge_growth_cache): New global vars.
11659 (estimate_growth): Turn into inline.
11660 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11661 initialize_growth_caches, free_growth_caches): Declare.
11662 (estimate_edge_growth): Rewrite.
11663 (estimate_edge_time): Implement as inline cache lookup.
11664 (reset_node_growth_cache, reset_edge_growth_cache): New inline
11665 functions.
11666 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11667 (NUM_CONDITIONS): New constant.
11668 (predicate_conditions): New enum.
11669 (IS_NOT_CONSTANT): New constant.
11670 (edge_removal_hook_holder): New var.
11671 (node_growth_cache, edge_growth_cache): New global vars.
11672 (true_predicate, single_cond_predicate, false_predicate,
11673 not_inlined_predicate, add_condition, add_clause, and_predicates,
11674 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11675 dump_clause, dump_predicate, account_size_time,
11676 evaulate_conditions_for_edge): New functions.
11677 (inline_summary_alloc): Move to heap.
11678 (inline_node_removal_hook): Clear condition and entry vectors.
11679 (inline_edge_removal_hook): New function.
11680 (initialize_growth_caches, free_growth_caches): New function.
11681 (dump_inline_summary): Update.
11682 (edge_execution_predicate): New function.
11683 (will_be_nonconstant_predicate): New function.
11684 (estimate_function_body_sizes): Compute BB and constantness predicates.
11685 (compute_inline_parameters): Do not clear estimated_growth.
11686 (estimate_edge_size_and_time): New function.
11687 (estimate_calls_size_and_time): New function.
11688 (estimate_callee_size_and_time): New function.
11689 (remap_predicate): New function.
11690 (inline_merge_summary): New function.
11691 (do_estimate_edge_time): New function based on...
11692 (estimate_edge_time): ... this one.
11693 (do_estimate_edge_growth): New function.
11694 (do_estimate_growth): New function based on....
11695 (estimate_growth): ... this one.
11696 (inline_analyze_function): Analyze after deciding on jump functions.
11697 (inline_read_section): New function.
11698 (inline_read_summary): Use it.
11699 (inline_write_summary): Write all the new data.
11700 * ipa-prop.c (ipa_get_param_decl_index): Export.
11701 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
11702 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
11703 Declare.
11704 (ipa_get_lattice): Move here from ipa-cp.c
11705 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
11706 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
11707 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
11708 cgraph_edge_inlinable_p): Remove.
11709 * cgraphunit.c: Include ipainline.h
11710 (cgraph_process_new_functions): Update call of
11711 compute_inline_parameters.
11712
11713 2011-04-22 Richard Guenther <rguenther@suse.de>
11714
11715 * tree.c (build_int_cst): Properly create canonicalized integer
11716 constants.
11717 (build_int_cst_type): Remove scary comments.
11718
11719 2011-04-22 Xinliang David Li <davidxl@google.com>
11720
11721 * toplev.c (process_options): Enable -Werror=coverage-mismatch
11722 by default when -Wno-error is not specified.
11723 * opts-global.c (decode_options): Remove call to
11724 control_warning_options.
11725
11726 2011-04-22 Jakub Jelinek <jakub@redhat.com>
11727
11728 PR tree-optimization/48717
11729 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
11730 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
11731
11732 2011-04-22 Joseph Myers <joseph@codesourcery.com>
11733
11734 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
11735 definition where used.
11736
11737 2011-04-22 Jakub Jelinek <jakub@redhat.com>
11738
11739 PR c/48716
11740 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
11741 TREE_STATIC variables declared inside of some OpenMP construct.
11742
11743 2011-04-22 Martin Jambor <mjambor@suse.cz>
11744
11745 PR middle-end/48585
11746 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
11747
11748 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
11749
11750 PR c/36750
11751 * c-typeck.c (pop_init_level): Do not warn about initializing
11752 with ` = {0}'.
11753
11754 2011-04-22 Alan Modra <amodra@gmail.com>
11755
11756 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
11757 when returning call_cookie.
11758 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
11759 pointers, to functions with no more vector args than the current
11760 function, and some non-local calls for ABI_V4.
11761 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
11762 sibcall_nonlocal_aix64): Combine to ..
11763 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
11764 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
11765 (sibcall_value_nonlocal_aix<mode>): ..likewise.
11766 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
11767 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
11768 operand.
11769 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
11770 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
11771 sibcall_value_symbolic_64): Delete.
11772
11773 2011-04-21 Xinliang David Li <davidxl@google.com>
11774
11775 * cgraph.h: Remove pid.
11776 * cgraph.c: Remove pid.
11777 * value-prof.c (init_node_map): New function.
11778 (del_node_map): New function.
11779 (find_func_by_funcdef_no): New function.
11780 (gimple_ic_transform): Call new function.
11781 * cgraphunit.c (cgraph_finalize_function): Remove pid.
11782 * function.c (get_last_funcdef_no): New function.
11783 * function.h (get_last_funcdef_no): New function.
11784 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
11785 to libgcov function.
11786 (tree-profiling): Call node map init and delete function.
11787
11788 2011-04-21 Ian Lance Taylor <iant@google.com>
11789
11790 * godump.c (go_format_type): Use exported Go name for anonymous
11791 field name.
11792
11793 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11794
11795 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
11796 Call builtin_function_type_list instead of builtin_function_type.
11797 (UNARY, BINARY, TRINARY, QUAD): Likewise.
11798
11799 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11800
11801 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
11802 build_function_type_list instead of build_function_type.
11803 Delete variable `endlink'.
11804
11805 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11806
11807 * config/s390/s390.c (s390_init_builtins): Call
11808 build_function_type_list instead of build_function_type.
11809
11810 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11811
11812 * config/ia64/ia64.c (ia64_init_builtins): Call
11813 build_function_type_list instead of builtin_function_type.
11814
11815 2011-04-21 Easwaran Raman <eraman@google.com>
11816
11817 * cfgexpand.c (stack_var): Remove OFFSET...
11818 (add_stack_var): ...and its reference here...
11819 (expand_stack_vars): ...and here.
11820 (stack_var_cmp): Sort by descending order of size.
11821 (partition_stack_vars): Change heuristic.
11822 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
11823 (dump_stack_var_partition): Add newline after each partition.
11824
11825 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
11826 Jeff Law <law@redhat.com>
11827
11828 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
11829 * gengtype.c (matching_file_name_substitute): Likewise.
11830
11831 2011-04-21 Richard Guenther <rguenther@suse.de>
11832
11833 PR lto/48703
11834 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
11835
11836 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
11837
11838 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
11839
11840 2011-04-21 Richard Guenther <rguenther@suse.de>
11841
11842 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
11843 file name.
11844
11845 2011-04-21 Richard Guenther <rguenther@suse.de>
11846
11847 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
11848 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
11849 Use DECL_P, not SSA_VAR_P.
11850 (ptr_derefs_may_alias_p): Likewise.
11851 (ptr_deref_may_alias_ref_p_1): Likewise.
11852 (decl_refs_may_alias_p): Likewise.
11853 (refs_may_alias_p_1): Likewise.
11854 (ref_maybe_used_by_call_p_1): Likewise.
11855 (call_may_clobber_ref_p_1): Likewise.
11856 (indirect_ref_may_alias_decl_p): Assume indirect refrences
11857 are either MEM_REF or TARGET_MEM_REF.
11858 (indirect_refs_may_alias_p): Likewise.
11859 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
11860 for MEM_EXPR of indirect calls.
11861
11862 2011-04-21 Tristan Gingold <gingold@adacore.com>
11863
11864 * vmsdbgout.c (write_srccorr): Compute file length from the string.
11865 (dst_file_info_struct): Remove flen field.
11866 (lookup_filename): Remove code that set flen field.
11867
11868 2011-04-21 Tristan Gingold <gingold@adacore.com>
11869
11870 * config/ia64/ia64.c (ia64_start_function): Add a guard.
11871
11872 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
11873
11874 PR target/48708
11875 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
11876 vec_extract and vec_concat for non-SSE4_1 targets.
11877
11878 2011-04-21 Richard Guenther <rguenther@suse.de>
11879
11880 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
11881 return statements.
11882
11883 2011-04-21 Joseph Myers <joseph@codesourcery.com>
11884
11885 * config/i386/cygming.h (union tree_node, TREE): Don't define or
11886 undefine.
11887 (FILE): Don't undefine.
11888
11889 2011-04-21 Joseph Myers <joseph@codesourcery.com>
11890
11891 * config/alpha/alpha.c (struct machine_function): Use rtx, not
11892 struct rtx_def *.
11893 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
11894 struct rtx_def *.
11895 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
11896 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
11897 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
11898 rtx_def *.
11899 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
11900 definitions where used.
11901 * config/microblaze/microblaze.h (struct microblaze_args): Use
11902 rtx, not struct rtx_def *.
11903 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
11904 rtx_def *.
11905 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
11906 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
11907 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
11908 not struct rtx_def *.
11909 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
11910 struct rtx_def *.
11911 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
11912 rtx_def *.
11913 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
11914
11915 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11916
11917 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
11918 operand_equal_p to compare DR_BASE_ADDRESSes.
11919 (vect_check_interleaving): Likewise.
11920
11921 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11922
11923 PR target/46329
11924 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
11925 for all Neon struct constants.
11926
11927 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11928
11929 * target.def (legitimate_constant_p): New hook.
11930 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
11931 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
11932 * doc/tm.texi: Regenerate.
11933 * hooks.h (hook_bool_mode_rtx_true): Declare.
11934 * hooks.c (hook_bool_mode_rtx_true): Define.
11935 * system.h (LEGITIMATE_CONSTANT_P): Poison.
11936 * calls.c (precompute_register_parameters): Replace uses of
11937 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
11938 (emit_library_call_value_1): Likewise.
11939 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
11940 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
11941 * ira-costs.c (scan_one_insn): Likewise.
11942 * recog.c (general_operand, immediate_operand): Likewise.
11943 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
11944 * reload1.c (init_eliminable_invariants): Likewise.
11945
11946 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
11947 mode argument.
11948 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
11949 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
11950 argument.
11951 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11952 * config/alpha/predicates.md (input_operand): Update call to
11953 alpha_legitimate_constant_p.
11954
11955 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
11956 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
11957 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
11958 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11959 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
11960 (arm_legitimate_constant_p): New functions.
11961 (arm_cannot_force_const_mem): Make static.
11962
11963 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
11964
11965 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
11966 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
11967 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
11968 instead of bfin_legitimate_constant_p.
11969 (bfin_legitimate_constant_p): Make static. Add a mode argument.
11970 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11971
11972 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
11973
11974 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
11975
11976 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
11977 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
11978 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11979 (frv_legitimate_constant_p): Make static. Add a mode argument.
11980
11981 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
11982 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
11983 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
11984
11985 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
11986 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
11987 * config/i386/i386.c (legitimate_constant_p): Rename to...
11988 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
11989 argument.
11990 (ix86_cannot_force_const_mem): Update accordingly.
11991 (ix86_legitimate_address_p): Likewise.
11992 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11993 * config/i386/i386.md: Update commentary.
11994
11995 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
11996 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
11997 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11998 (ia64_legitimate_constant_p): Make static. Add a mode argument.
11999
12000 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12001
12002 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12003 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12004 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12005 (lm32_legitimate_constant_p): Make static. Add a mode argument.
12006
12007 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12008 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12009 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12010
12011 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12012 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12013 (m32r_legitimate_constant_p): New function.
12014
12015 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12016 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12017 LEGITIMATE_CONSTANT_P.
12018 (LEGITIMATE_CONSTANT_P): Delete.
12019 * config/m68k/m68k.c (m68k_expand_prologue): Call
12020 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12021 (m68k_legitimate_constant_p): New function.
12022 * config/m68k/m68k.md: Update comments.
12023
12024 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12025 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12026 (mcore_legitimate_constant_p): New function.
12027
12028 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12029 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12030 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12031 Add a mode argument.
12032 (mep_legitimate_address): Update accordingly.
12033 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12034
12035 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12036 Delete.
12037 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12038 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12039 static. Check OP's mode for VOIDmode.
12040 (microblaze_legitimate_constant_p): New function.
12041 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12042
12043 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12044 * config/mips/mips.c (mips_legitimate_constant_p): New function.
12045 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12046 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12047 * config/mips/predicates.md: Update comments.
12048
12049 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12050 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12051 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12052 (mmix_legitimate_constant_p): Make static, return a bool, and take
12053 a mode argument.
12054 (mmix_print_operand_address): Update accordingly.
12055
12056 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12057 Delete.
12058 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
12059 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12060 static. Add a mode argument.
12061 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12062
12063 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12064
12065 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12066 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12067 (pa_legitimate_constant_p): New function.
12068
12069 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12070
12071 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12072 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12073 (pdp11_legitimate_constant_p): New function.
12074
12075 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12076 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12077 (rs6000_legitimate_constant_p): New function.
12078
12079 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12080 (rx_legitimate_constant_p): ...this.
12081 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12082 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12083 (rx_legitimate_constant_p): ...this.
12084 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12085 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12086
12087 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12088 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12089 * config/s390/s390.c (legitimate_constant_p): Rename to...
12090 (s390_legitimate_constant_p): ...this. Make static, return a bool,
12091 and add a mode argument.
12092 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12093
12094 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12095
12096 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12097 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12098 (sh_legitimate_constant_p): New function.
12099
12100 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12101 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12102 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12103 (legitimate_constant_p): Rename to...
12104 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
12105 argument.
12106 (constant_address_p): Update accordingly.
12107
12108 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12109 argument and return a bool.
12110 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12111 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12112 (spu_legitimate_constant_p): Add a mode argument and return a bool.
12113 (spu_rtx_costs): Update accordingly.
12114 * config/spu/predicates.md (vec_imm_operand): Likewise.
12115
12116 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12117
12118 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12119 * config/v850/v850.c (v850_legitimate_constant_p): New function.
12120 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12121
12122 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12123 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12124 * config/vax/vax.c (legitimate_constant_p): Likewise.
12125
12126 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12127 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12128 (xtensa_legitimate_constant_p): New function.
12129
12130 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12131
12132 * target.def (cannot_force_const_mem): Add a mode argument.
12133 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12134 * doc/tm.texi: Regenerate.
12135 * hooks.h (hook_bool_mode_rtx_false): Declare.
12136 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12137 (hook_bool_mode_const_rtx_true): Likewise.
12138 (hook_bool_mode_rtx_false): New function.
12139 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12140 to be non-VOID. Update call to cannot_force_const_mem.
12141 (find_reloads): Update accordingly.
12142 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12143 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12144 argument.
12145 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12146 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12147 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12148 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12149 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12150 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12151 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12152 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12153 (m68k_cannot_force_const_mem): ...this new function.
12154 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12155 argument.
12156 (mips_const_insns, mips_legitimize_const_move): Update calls.
12157 (mips_secondary_reload_class): Likewise.
12158 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12159 (pa_cannot_force_const_mem): ...this new function.
12160 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
12161 (rs6000_cannot_force_const_mem): ...this new function.
12162 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12163 argument.
12164 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12165 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12166 to...
12167 (xtensa_cannot_force_const_mem): ...this new function.
12168
12169 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12170
12171 * config/mips/mips.c (mips16_build_function_stub): Call
12172 build_function_type_list instead of build_function_type.
12173 (mips16_build_call_stub): Likewise.
12174
12175 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12176
12177 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12178 instead of build_function_type.
12179
12180 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12181
12182 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12183 instead of build_function_type.
12184
12185 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
12186
12187 PR target/48678
12188 * config/i386/i386.md (insv): Change operand 0 constraint to
12189 "register_operand". Change operand 1 and 2 constraint to
12190 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
12191 * config/i386/sse.md (sse4_1_pinsrb): Export.
12192 (sse2_pinsrw): Ditto.
12193 (sse4_1_pinsrd): Ditto.
12194 (sse4_1_pinsrq): Ditto.
12195 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12196 * config/i386/i386.c (ix86_expand_pinsr): New.
12197
12198 2011-04-20 Easwaran Raman <eraman@google.com>
12199
12200 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12201 containing union type only with -fstrict-aliasing.
12202
12203 2011-04-20 Jim Meyering <meyering@redhat.com>
12204
12205 Remove useless if-before-free tests.
12206 * calls.c (expand_call, save_area): Likewise.
12207 * cfgcleanup.c (try_forward_edges): Likewise.
12208 * collect2.c (collect_execute): Likewise.
12209 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12210 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12211 * coverage.c (coverage_checksum_string): Likewise.
12212 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12213 * cselib.c (cselib_init): Likewise.
12214 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12215 (df_set_clean_cfg): Likewise.
12216 * function.c (free_after_compilation): Likewise.
12217 * gcc.c (do_spec_1, main): Likewise.
12218 * gcov.c (create_file_names): Likewise.
12219 * gensupport.c (identify_predicable_attribute): Likewise.
12220 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12221 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12222 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12223 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12224 * ipa-pure-const.c (local_pure_const): Likewise.
12225 * ipa-reference.c (propagate): Likewise.
12226 * ira-costs.c (free_ira_costs): Likewise.
12227 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12228 * matrix-reorg.c (mat_free): Likewise.
12229 * prefix.c (get_key_value): Likewise.
12230 * profile.c (compute_value_histograms): Likewise.
12231 * reload1.c (free_reg_equiv): Likewise.
12232 * sched-deps.c (free_deps): Likewise.
12233 * sel-sched-ir.c (fence_clear): Likewise.
12234 * sese.c (set_rename, if_region_set_false_region): Likewise.
12235 * tree-data-ref.c (free_rdg): Likewise.
12236 * tree-eh.c (lower_try_finally): Likewise.
12237 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12238 * tree-ssa-live.c (delete_var_map): Likewise.
12239 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12240 * tree-ssa-pre.c (phi_trans_add): Likewise.
12241
12242 2011-04-20 Jakub Jelinek <jakub@redhat.com>
12243
12244 PR tree-optimization/48611
12245 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12246 beyond ERT_MUST_NOT_THROW region.
12247
12248 2011-04-20 Catherine Moore <clm@codesourcery.com>
12249
12250 * config/mips/mips.opt (mfix-24k): New.
12251 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12252 * config/mips/mips.md (length): Increase by 4 for stores if
12253 fixing 24K errata.
12254 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12255 all noreorder if fixing 24K errata.
12256 * doc/invoke.texi: Document mfix-24k.
12257
12258 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
12259
12260 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
12261 quad-word modes, reduce to 9-bit index range when above 1016 limit.
12262
12263 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
12264
12265 * config/arm/arm.c (arm_gen_constant): Move movw support ....
12266 (const_ok_for_op): ... to here.
12267
12268 2011-04-20 Kai Tietz <ktietz@redhat.com>
12269
12270 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12271 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
12272
12273 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
12274
12275 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12276
12277 2011-04-20 Richard Guenther <rguenther@suse.de>
12278
12279 PR tree-optimization/47892
12280 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12281 are if-convertible.
12282
12283 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
12284
12285 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12286
12287 2011-04-20 Tristan Gingold <gingold@adacore.com>
12288
12289 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12290
12291 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
12292
12293 PR target/18145
12294
12295 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12296 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12297 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12298 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12299 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12300
12301 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12302 New prototype.
12303
12304 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12305 (avr_asm_named_section, avr_asm_output_aligned_common,
12306 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12307 New functions to update...
12308 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12309 (avr_asm_init_sections): Overwrite section callbacks for
12310 data_section, bss_section.
12311 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12312 from here to...
12313 (avr_file_end): ...here.
12314
12315 2011-04-20 Richard Guenther <rguenther@suse.de>
12316
12317 PR middle-end/48695
12318 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
12319 objects and types here. Adjust for their offset before comparing.
12320
12321 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12322
12323 * tree-vect-stmts.c (vectorizable_store): Only chain one related
12324 statement per copy.
12325
12326 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12327
12328 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12329 (GIMPLE_H): Include $(INTERNAL_FN_H).
12330 (OBJS-common): Add internal-fn.o.
12331 (internal-fn.o): New rule.
12332 * internal-fn.def: New file.
12333 * internal-fn.h: Likewise.
12334 * internal-fn.c: Likewise.
12335 * gimple.h: Include internal-fn.h.
12336 (GF_CALL_INTERNAL): New gf_mask.
12337 (gimple_statement_call): Put fntype into a union with a new
12338 internal_fn field.
12339 (gimple_build_call_internal): Declare.
12340 (gimple_build_call_internal_vec): Likewise.
12341 (gimple_call_same_target_p): Likewise.
12342 (gimple_call_internal_p): New function.
12343 (gimple_call_internal_fn): Likewise.
12344 (gimple_call_fntype): Return null for internal calls.
12345 (gimple_call_set_fntype): Assert that the function is not internal.
12346 (gimple_call_set_fn): Likewise.
12347 (gimple_call_set_fndecl): Likewise.
12348 (gimple_call_set_internal_fn): New function.
12349 (gimple_call_addr_fndecl): Handle null functions.
12350 (gimple_call_return_type): Likewise null types.
12351 * gimple.c (gimple_build_call_internal_1): New function.
12352 (gimple_build_call_internal): Likewise.
12353 (gimple_build_call_internal_vec): Likewise.
12354 (gimple_call_same_target_p): Likewise.
12355 (gimple_call_flags): Handle calls to internal functions.
12356 (gimple_call_fnspec): New function.
12357 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12358 (gimple_has_side_effects): Handle null functions.
12359 (gimple_rhs_has_side_effects): Likewise.
12360 (gimple_call_copy_skip_args): Handle calls to internal functions.
12361 * cfgexpand.c (expand_call_stmt): Likewise.
12362 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12363 * gimple-fold.c (gimple_fold_call): Handle null functions.
12364 (gimple_fold_stmt_to_constant_1): Don't fold
12365 calls to internal functions.
12366 * gimple-low.c (gimple_check_call_args): Handle calls to internal
12367 functions.
12368 * gimple-pretty-print.c (dump_gimple_call): Likewise.
12369 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12370 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12371 (do_warn_unused_result): Likewise.
12372 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12373 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12374 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12375 the target of a call.
12376 (initialize_hash_element): Update accordingly.
12377 (hashable_expr_equal_p): Use gimple_call_same_target_p.
12378 (iterative_hash_hashable_expr): Handle calls to internal functions.
12379 (print_expr_hash_elt): Likewise.
12380 * tree-ssa-pre.c (can_value_number_call): Likewise.
12381 (eliminate): Handle null functions.
12382 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12383 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12384 (find_func_aliases): Likewise.
12385 * value-prof.c (gimple_ic_transform): Likewise.
12386 (gimple_indirect_call_to_profile): Likewise.
12387 * lto-streamer-in.c (input_gimple_stmt): Likewise.
12388 * lto-streamer-out.c (output_gimple_stmt): Likewise.
12389
12390 2011-04-19 Jan Hubicka <jh@suse.cz>
12391
12392 * ipa-inline-transform.c (save_inline_function_body): Add comments.
12393 * ipa-inline.c (inline_small_functions): Compute summaries first,
12394 populate heap later.
12395
12396 2011-04-19 Jan Hubicka <jh@suse.cz>
12397
12398 * cgraph.h (save_inline_function_body): Remove.
12399 * ipa-inline-transform.c: New file, broke out of...
12400 * ipa-inline.c: ... this one; Update toplevel comment.
12401 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
12402 make global.
12403 (update_noncloned_frequencies): Move to ipa-inline-transform.c
12404 (cgraph_mark_inline_edge): Rename to inline_call; move to
12405 ipa-inline-transform.c.
12406 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
12407 move to ipa-inline-transform.c
12408 (recursive_inlining, inline_small_functions, flatten_function,
12409 ipa_inline, inline_always_inline_functions,
12410 early_inline_small_functions): Update.
12411 (inline_transform): Move to ipa-inline-transform.c.
12412 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
12413 Declare.
12414 * Makefile.in (ipa-inline-transform.o): New file.
12415 * cgraphunit.c (save_inline_function_body): Move to
12416 ipa-inline-transform.c
12417
12418 2011-04-19 DJ Delorie <dj@redhat.com>
12419
12420 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12421 registers if we already know there aren't any.
12422 (m32c_emit_epilogue): Don't emit a barrier here.
12423 (m32c_emit_eh_epilogue): Likewise.
12424 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12425 operands at expand time.
12426 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12427 int" wchar type.
12428 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12429 duplicates. Provide aliases instead.
12430 * config/m32c/prologue.md (eh_return): Emit a barrier here.
12431 (eh_epilogue): Add a "(return)" here as a hint to other parts of
12432 the compiler.
12433
12434 2011-04-19 Anatoly Sokolov <aesok@post.ru>
12435
12436 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12437 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12438 (general_or_i64_p, sparc_register_move_cost): New function.
12439
12440 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12441
12442 * doc/install.texi (Configuration, --enable-threads): Remove mach.
12443 Add lynx, mipssde. Sort table.
12444
12445 2011-04-19 Xinliang David Li <davidxl@google.com>
12446
12447 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12448 not negative.
12449
12450 2011-04-19 Jakub Jelinek <jakub@redhat.com>
12451
12452 PR target/48678
12453 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12454 is a SUBREG with non-MODE_INT mode inside of it.
12455
12456 2011-04-19 Martin Jambor <mjambor@suse.cz>
12457
12458 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12459 also according to actual contants.
12460 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12461 (gimple_fold_call): Use it.
12462 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12463
12464 2011-04-19 Martin Jambor <mjambor@suse.cz>
12465
12466 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12467 non-pointer assignments.
12468
12469 2011-04-19 Martin Jambor <mjambor@suse.cz>
12470
12471 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12472 account anc_offset and otr_type from the indirect edge info.
12473 * ipa-prop.c (get_ancestor_addr_info): New function.
12474 (compute_complex_ancestor_jump_func): Assignment analysis moved to
12475 get_ancestor_addr_info, call it.
12476 (ipa_note_param_call): Do not initialize information about polymorphic
12477 calls, return the indirect call graph edge. Remove the last
12478 parameter, adjust all callers.
12479 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12480 parameters. Initialize polymorphic information in the indirect edge.
12481
12482 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12483
12484 PR lto/48148
12485 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12486 the types if they have different enumeration identifiers.
12487
12488 2011-04-19 Jan Hubicka <jh@suse.cz>
12489
12490 * cgraph.h (cgraph_optimize_for_size_p): Declare.
12491 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12492 * predict.c (cgraph_optimize_for_size_p): Break out from ...
12493 (optimize_function_for_size_p) ... here.
12494
12495 2011-04-19 Richard Guenther <rguenther@suse.de>
12496
12497 PR lto/48207
12498 * tree.c (free_lang_data): Do not reset the decl-assembler-name
12499 langhook.
12500
12501 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12502
12503 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12504 if DECL_NO_INLINE_WARNING_P is set on the function.
12505
12506 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
12507
12508 PR fortran/47976
12509 * reload1.c (inc_for_reload): Return void. All callers changed.
12510 (emit_input_reload_insns): Don't try to delete previous output
12511 reloads to a register, or record spill_reg_store for autoincs.
12512
12513 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
12514
12515 * gengtype.h: Updated copyright year.
12516 (struct input_file_st): Add inpisplugin field.
12517 (type_fileloc): New function.
12518 * gengtype.c
12519 (write_typed_struct_alloc_def): Add gcc_assert.
12520 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12521 (write_typed_alloc_defns): Don't output for plugin files.
12522 (input_file_by_name): Clear inpisplugin field.
12523 (main): Set inpisplugin field for plugin files.
12524
12525 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
12526
12527 * gengtype-state.c (string_eq): New.
12528 (read_state): Use string_eq instead of strcmp when creating the
12529 state_ident_tab.
12530
12531 2011-04-19 Wei Guozhi <carrot@google.com>
12532
12533 PR target/47855
12534 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12535 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12536 linkage.
12537 * config/arm/constraints.md (Uu): New constraint.
12538 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12539
12540 2011-04-19 Tristan Gingold <gingold@adacore.com>
12541
12542 * config.gcc (-*-*-*vms): Added.
12543 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12544 definitions moved.
12545 * config/vms/vms-ld.c: New file.
12546 * config/vms/vms-ar.c: New file.
12547 * config/vms/t-vmsnative: New file.
12548
12549 2011-04-18 Xinliang David Li <davidxl@google.com>
12550
12551 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12552
12553 2011-04-18 Jakub Jelinek <jakub@redhat.com>
12554
12555 PR middle-end/48661
12556 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12557 if TREE_TYPE (v) is non-NULL.
12558
12559 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12560 gimple_get_virt_mehtod_for_binfo.
12561 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12562 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12563 callers.
12564 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12565
12566 2011-04-18 Michael Matz <matz@suse.de>
12567 Steve Ellcey <sje@cup.hp.com>
12568
12569 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12570 use its mode as source mode if it isn't VOIDmode.
12571
12572 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
12573
12574 * doc/passes.texi: Fill crossref nodes.
12575
12576 2011-04-18 Jim Meyering <meyering@redhat.com>
12577
12578 Fix doubled-word typos in comments and strings
12579 * config/alpha/vms-unwind.h: s/for for/for/
12580 * config/arm/unwind-arm.h: Likewise.
12581 * config/microblaze/microblaze.c: Likewise.
12582 * config/sh/constraints.md: s/in in/in/
12583 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12584
12585 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
12586
12587 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12588 (AVX_FLOAT_MODE_P): Ditto.
12589 (AVX128_VEC_FLOAT_MODE_P): Ditto.
12590 (AVX256_VEC_FLOAT_MODE_P): Ditto.
12591 (AVX_VEC_FLOAT_MODE_P): Ditto.
12592 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12593 (UNSPEC_MASKSTORE): Ditto.
12594 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12595 Merge from <sse>_movmsk<ssemodesuffix> and
12596 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
12597 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
12598 iterator.
12599 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12600 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12601 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12602
12603 2011-04-18 Jan Hubicka <jh@suse.cz>
12604
12605 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12606
12607 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12608 (want_inline_function_called_once_p): Break out the logic from
12609 ipa_inline.
12610 (edge_badness): Ensure that profile is not misupdated.
12611 (lookup_recursive_calls): Prioritize by call frequencies.
12612 (inline_small_functions): Move program size estimates here;
12613 actually process whole queue even when unit growth has been
12614 met. (to properly compute inline_failed reasons and for the
12615 case unit size decrease.) Revisit comments on recursive inlining.
12616 (ipa_inline): Remove unit summary code; first inline hot calls
12617 of functions called once, cold calls next.
12618 (order, nnodes): Remove unused variables.
12619 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12620 (GTFILES): Remove ipa-inline.c
12621 * sel-sched.c (fill_insns): Silence uninitialized var warning.
12622
12623 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12624
12625 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12626
12627 2011-04-18 Jie Zhang <jie@codesourcery.com>
12628 Richard Earnshaw <rearnsha@arm.com>
12629
12630 * arm.c (neon_builtin_type_bits): Remove.
12631 (typedef enum neon_builtin_mode): New.
12632 (T_MAX): Don't define.
12633 (typedef enum neon_builtin_datum): Remove bits, codes[],
12634 num_vars and base_fcode. Add mode, code and fcode.
12635 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12636 VAR10): Change accordingly.
12637 (neon_builtin_data[]): Change accordingly
12638 (arm_init_neon_builtins): Change accordingly.
12639 (neon_builtin_compare): Remove.
12640 (locate_neon_builtin_icode): Remove.
12641 (arm_expand_neon_builtin): Change accordingly.
12642
12643 * arm.h (enum arm_builtins): Move to ...
12644 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12645
12646 * arm.c (arm_builtin_decl): Declare.
12647 (TARGET_BUILTIN_DECL): Define.
12648 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12649 (arm_builtin_decls[]): New.
12650 (arm_init_neon_builtins): Store builtin declarations in
12651 arm_builtin_decls[].
12652 (arm_init_tls_builtins): Likewise.
12653 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
12654 (arm_builtin_decl): New.
12655
12656 2011-04-18 Richard Guenther <rguenther@suse.de>
12657
12658 * tree.c (upper_bound_in_type): Build properly canonicalized
12659 INTEGER_CSTs.
12660 (lower_bound_in_type): Likewise.
12661
12662 2011-04-18 Richard Guenther <rguenther@suse.de>
12663
12664 * gimple.h (gimple_call_addr_fndecl): New function.
12665 (gimple_call_fndecl): Use it.
12666 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12667 for direct calls.
12668 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12669 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12670
12671 2011-04-18 Richard Guenther <rguenther@suse.de>
12672
12673 PR middle-end/48650
12674 * tree.c (build_string): STRING_CST is now derived from tree_typed.
12675
12676 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12677
12678 PR lto/48492
12679 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12680 DECL_IN_CONSTANT_POOL without RTL.
12681
12682 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
12683 Ira Rosen <ira.rosen@linaro.org>
12684
12685 PR target/48252
12686 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12687 to match neon_vzip/vuzp/vtrn_internal.
12688 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
12689 outputs explicitly dependent on both inputs.
12690 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
12691
12692 2011-04-18 Jakub Jelinek <jakub@redhat.com>
12693
12694 PR tree-optimization/48616
12695 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
12696 whether the shift is by scalar or vector based on whether all SLP
12697 scalar stmts have the same rhs.
12698
12699 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
12700
12701 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
12702 memory operands.
12703
12704 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
12705
12706 PR target/43700
12707 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
12708 registers.
12709
12710 2011-04-17 Jan Hubicka <jh@suse.cz>
12711
12712 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
12713 * cgrpahunit.c (cgraph_finalize_function): Do not set
12714 finalized_by_frontend.
12715 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12716 finalized_by_frontend.
12717
12718 2011-04-17 Jan Hubicka <jh@suse.cz>
12719
12720 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
12721 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
12722 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
12723 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
12724 method.
12725 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
12726 gimple-fold.c
12727 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
12728
12729 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12730
12731 PR lto/48538
12732 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
12733 is non-null before accessing it.
12734 (input_cgraph): Remove trailing spaces.
12735
12736 2011-04-17 Revital Eres <revital.eres@linaro.org>
12737
12738 * params.def (sms-min-sc): New param flag.
12739 * modulo-sched.c (sms_schedule): Use it.
12740 * doc/invoke.texi (sms-min-sc): Document it.
12741
12742 2011-04-17 Jan Hubicka <jh@suse.cz>
12743
12744 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
12745 present, also set gimple_call_set_cannot_inline.
12746 * ipa-inline.c: Update toplevel comment.
12747 (MAX_TIME): Remove.
12748 (cgraph_clone_inlined_nodes): Fix linebreaks.
12749 (cgraph_check_inline_limits): Restructure to ...
12750 (caller_growth_limits): ... this one; be more tolerant
12751 on growth in nested inline chains; add explanatory comment;
12752 fix stack accounting thinko introduced by previous patch.
12753 (cgraph_default_inline_p): Remove.
12754 (report_inline_failed_reason): New function.
12755 (can_inline_edge_p): New function.
12756 (can_early_inline_edge_p): New function.
12757 (leaf_node_p): Move upwards in file.
12758 (want_early_inline_function_p): New function.
12759 (want_inline_small_function_p): New function.
12760 (want_inline_self_recursive_call_p): New function.
12761 (cgraph_edge_badness): Rename to ...
12762 (edge_badness) ... this one; fix linebreaks.
12763 (update_edge_key): Update call of edge_baddness; add
12764 detailed dump about queue updates.
12765 (update_caller_keys): Use can_inline_edge_p and
12766 want_inline_small_function_p.
12767 (cgraph_decide_recursive_inlining): Rename to...
12768 (recursive_inlining): Use can_inline_edge_p and
12769 want_inline_self_recursive_call_p; simplify and remove no longer
12770 valid FIXME.
12771 (cgraph_set_inline_failed): Remove.
12772 (add_new_edges_to_heap): Use can_inline_edge_p and
12773 want_inline_small_function_p.
12774 (cgraph_decide_inlining_of_small_functions): Rename to ...
12775 (inline_small_functions): ... this one; cleanup; use
12776 can/want predicates; cleanup debug ouput; work edges till fibheap
12777 is exhausted and do not stop once unit growth is reached; remove
12778 later loop processing remaining edges.
12779 (cgraph_flatten): Rename to ...
12780 (flatten_function): ... this one; use can_inline_edge_p
12781 and can_early_inline_edge_p predicates.
12782 (cgraph_decide_inlining): Rename to ...
12783 (ipa_inline): ... this one; remove unreachable nodes before
12784 inlining functions called once; simplify the pass.
12785 (cgraph_perform_always_inlining): Rename to ...
12786 (inline_always_inline_functions): ... this one; use
12787 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
12788 (cgraph_decide_inlining_incrementally): Rename to ...
12789 (early_inline_small_functions): ... this one; simplify
12790 using new predicates; cleanup; make dumps prettier.
12791 (cgraph_early_inlining): Rename to ...
12792 (early_inliner): newer inline regular functions into always-inlines;
12793 fix updating of call stmt summaries.
12794 (pass_early_inline): Update for new names.
12795 (inline_transform): Fix formating.
12796 (gate_cgraph_decide_inlining): Rename to ...
12797 (pass_ipa_inline): ... this one.
12798 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
12799 * ipa-inline-analysis.c (dump_inline_summary): Update.
12800 (compute_inline_parameters): Do not compute disregard_inline_limits;
12801 look for mismatching arguments.
12802 (estimate_growth): Fix handlig of non-trivial self recursion.
12803 (inline_read_summary): Do not read info->disregard_inline_limits.
12804 (inline_write_summary): Do not write info->disregard_inline_limits.
12805 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
12806 and move all checks into can_inline_edge_p predicate; re-enable code
12807 comparing optimization levels.
12808 (expand_call_inline): Do not test inline_forbidden_into_p.
12809 * Makefile.in (ipa-inline.o): Update arguments.
12810
12811 2011-04-17 Revital Eres <revital.eres@linaro.org>
12812
12813 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
12814
12815 2011-04-17 Revital Eres <revital.eres@linaro.org>
12816
12817 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
12818
12819 2011-04-17 Michael Matz <matz@suse.de>
12820
12821 PR tree-optimization/48622
12822 PR lto/48645
12823 * ipa-inline-analysis.c (inline_read_summary): Read size/time
12824 in same order as they're written.
12825
12826 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12827
12828 * config/pa/predicates.md: Reorganize and simplify predicates.
12829 Eliminate duplicate code checks.
12830 (arith_operand): Rename to arith14_operand
12831 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
12832 * config/pa/pa.md: Use renamed operands.
12833 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
12834 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
12835 arith11_operand, adddi3_operand, indexed_memory_operand,
12836 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
12837 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
12838 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
12839 move_dest_operand, move_src_operand, prefetch_cc_operand,
12840 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
12841 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
12842 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
12843 div_operand, int5_operand, movb_comparison_operator,
12844 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
12845 arith_double_operand, ireg_operand, lhs_lshift_operand,
12846 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
12847 integer_store_memory_operand): Likewise.
12848 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
12849 (integer_store_memory_operand, read_only_operand,
12850 function_label_operand, borx_reg_operand,
12851 non_hard_reg_operand): Likewise.
12852 (eq_neq_comparison_operator): Delete unused operator.
12853 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
12854 function_label_operand.
12855 (emit_move_sequence): Likewise.
12856
12857 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
12858
12859 * config/i386/sse.md (sseunpackmode): New mode attribute.
12860 (ssepackmode): Ditto.
12861 (vec_pack_trunc_<mode>): Macroize expander from
12862 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
12863 (vec_unpacks_lo_<mode>): Macroize expander from
12864 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12865 (vec_unpacks_hi_<mode>): Macroize expander from
12866 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12867 (vec_unpacku_lo_<mode>): Macroize expander from
12868 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12869 (vec_unpacku_hi_<mode>): Macroize expander from
12870 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12871 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
12872 ix86_expand_sse4_unpack.
12873 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
12874
12875 2011-04-16 Jan Hubicka <jh@suse.cz>
12876
12877 * cgraphbuild.c: Include ipa-inline.h.
12878 (reset_inline_failed): Use initialize_inline_failed.
12879 * cgraph.c: Include ipa-inline.h.
12880 (cgraph_create_node_1): Do not initialize estimated_growth.
12881 (initialize_inline_failed): More to ipa-inline-analysis.c
12882 (dump_cgraph_node): Do not dump inline flags.
12883 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
12884 and disregard_inline_limits flags.
12885 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
12886 time, size, estimated_growth.
12887 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
12888 Update.
12889 * cgraphunit.c (cgraph_decide_is_function_needed): Use
12890 DECL_DISREGARD_INLINE_LIMITS.
12891 (cgraph_analyze_function): Do not initialize
12892 node->local.disregard_inline_limits.
12893 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12894 inlinable, versionable and disregard_inline_limits.
12895 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
12896 cgraph_check_inline_limits, cgraph_default_inline_p,
12897 cgraph_edge_badness, update_caller_keys, update_callee_keys,
12898 add_new_edges_to_heap): Update.
12899 (cgraph_decide_inlining_of_small_function): Update; set
12900 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
12901 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
12902 cgraph_decide_inlining_incrementally): Update.
12903 * ipa-inline.h (inline_summary): Add inlinable, versionable,
12904 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
12905 time, size and estimated_growth parameters.
12906 (estimate_edge_growth): Update.
12907 (initialize_inline_failed): Declare.
12908 * ipa-split.c: Include ipa-inline.h
12909 (execute_split_functions): Update.
12910 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
12911 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
12912 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
12913 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
12914 estimated_growth to INT_MIN.
12915 (inline_node_duplication_hook): Likewise.
12916 (dump_inline_summary): Dump new fields.
12917 (compute_inline_parameters): Update.
12918 (estimate_edge_time, estimate_time_after_inlining,
12919 estimate_size_after_inlining, estimate_growth, inline_read_summary,
12920 inline_write_summary):
12921 (initialize_inline_failed): Move here from cgraph.c.
12922 * tree-sra.c: Include ipa-inline.h.
12923 (ipa_sra_preliminary_function_checks): Update.
12924 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
12925 ipa-inline.h.
12926
12927 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
12928
12929 * config/i386/sse.md (V16): New mode iterator.
12930 (VI1, VI8): Ditto.
12931 (AVXMODEQI, AVXMODEDI): Remove.
12932 (sse2, sse3): New mode attribute.
12933 (mov<mode>): Use V16 mode iterator.
12934 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
12935 (push<mode>1): Use V16 mode iterator.
12936 (movmisalign<mode>): Ditto.
12937 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12938 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
12939 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12940 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
12941 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
12942 avx_movdqu<avxmodesuffix>.
12943 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
12944 *avx_movdqu<avxmodesuffix>.
12945 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
12946 avx_lddqu<avxmodesuffix>.
12947 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
12948 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
12949 avx_movnt<AVXMODEDI:mode>.
12950 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
12951 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
12952
12953 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
12954
12955 PR target/48629
12956 * haifa-sched.c (prune_ready_list, schedule_block): Use
12957 sched_pressure_p rather than flag_sched_pressure.
12958
12959 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
12960
12961 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12962 cgraph_get_node instead of cgraph_get_create_node.
12963
12964 2011-04-15 Jakub Jelinek <jakub@redhat.com>
12965
12966 * cfgexpand.c (expand_debug_expr): Use
12967 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
12968
12969 2011-04-15 Michael Matz <matz@suse.de>
12970
12971 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
12972 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
12973 * function.c (gimplify_parameters): Ditto.
12974 * gimplify.c (gimplify_vla_decl): Ditto.
12975
12976 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
12977 (gimple_call_set_alloca_for_var): New inline function.
12978 (gimple_call_alloca_for_var_p): Ditto.
12979 * gimple.c (gimple_build_call_from_tree): Remember
12980 CALL_ALLOCA_FOR_VAR_P state.
12981 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
12982
12983 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
12984 calls if they were for VLA objects.
12985
12986 2011-04-15 Martin Jambor <mjambor@suse.cz>
12987
12988 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
12989 of ADR_EXPRs.
12990
12991 2011-04-15 Martin Jambor <mjambor@suse.cz>
12992
12993 PR middle-end/48601
12994 * tree-emutls.c (lower_emutls_function_body): Call
12995 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
12996 result is non-NULL.
12997
12998 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
12999
13000 * c-decl.c (detect_field_duplicates): Call
13001 objc_detect_field_duplicates instead of objc_get_interface_ivars.
13002
13003 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
13004
13005 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13006 * gimple.c (gimple_asm_clobbers_memory_p): Define.
13007 * ipa-pure-const.c (check_stmt): Call it.
13008 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13009
13010 2011-04-15 Richard Guenther <rguenther@suse.de>
13011
13012 PR tree-optimization/48290
13013 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13014 Properly decide inhibiting propagation based on the valueized
13015 operand. Do loop-closed SSA form preserving here ...
13016 (init_copy_prop): ... not here.
13017
13018 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
13019
13020 PR target/48612
13021 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13022 (*ieee_smax<mode>3): Likewise.
13023
13024 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13025
13026 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13027 Replace match_operand with match_dup for the third operand in
13028 these expanders.
13029
13030 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13031
13032 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13033 to track processing of conditionals. Update all callers.
13034 (try_combine, simplify_if_then_else): Update.
13035
13036 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13037
13038 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13039 -fsched-pressure.
13040
13041 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
13042
13043 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13044 instead of match_operand for operand 3.
13045
13046 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
13047
13048 * recog.h (insn_operand_data): Add an "allows_mem" field.
13049 * genoutput.c (output_operand_data): Initialize it.
13050 * optabs.c (maybe_legitimize_operand_same_code): New function.
13051 (maybe_legitimize_operand): Use it when matching the original
13052 op->value.
13053
13054 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13055
13056 * gimplify.c: Fix issues in comments throughout.
13057 (voidify_wrapper_expr): Fix long line.
13058 (build_stack_save_restore): Likewise.
13059 (gimplify_loop_expr): Likewise.
13060 (gimplify_compound_lval): Likewise.
13061 (gimplify_init_ctor_eval): Likewise.
13062 (gimplify_modify_expr_rhs): Likewise.
13063 (omp_notice_threadprivate_variable): Likewise.
13064
13065 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13066
13067 * cfgexpand.c (expand_call_stmt): Convert the function type to the
13068 original one if this is not a builtin function.
13069
13070 2011-04-14 Jakub Jelinek <jakub@redhat.com>
13071
13072 PR target/48605
13073 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13074 offset it as needed based on top 2 bits in operands[3], change
13075 MEM mode to SFmode and mask those 2 bits away from operands[3].
13076
13077 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13078
13079 * c-parser.c (c_parser_objc_protocol_definition): Updated for
13080 change from objc_declare_protocols() to objc_declare_protocol().
13081
13082 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
13083
13084 * config/i386/sse.md (sse4_1): New mode attribute.
13085 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13086 avx_blend<ssemodesuffix><avxmodesuffix> and
13087 sse4_1_blend<ssemodesuffix> using VF mode iterator.
13088 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13089 avx_blendv<ssemodesuffix><avxmodesuffix> and
13090 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13091 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13092 avx_dp<ssemodesuffix><avxmodesuffix> and
13093 sse4_1_dp<ssemodesuffix> using VF mode iterator.
13094 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13095 (sse4_1_packusdw): Merge with *avx_packusdw.
13096 (sse4_1_pblendvb): Merge with *avx_pblendvb.
13097 (sse4_1_pblendw): Merge with *avx_pblendw.
13098 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13099 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13100 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13101 VF mode iterator.
13102 (sse4_1_round<ssescalarmodesuffix>): Merge with
13103 *avx_round<ssescalarmodesuffix>.
13104 (aesenc): Merge with *avx_aesenc.
13105 (aesenclast): Merge with *avx_aesenclast.
13106 (aesdec): Merge with *avx_aesdec.
13107 (aesdeclast): Merge with *avx_aesdeclast.
13108 (pclmulqdq): Merge with *pclmulqdq.
13109 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13110 New predicate.
13111 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13112
13113 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
13114
13115 PR middle-end/48608
13116 * cfgexpand.c (get_decl_align_unit): Renamed to ...
13117 (align_local_variable): This. Update DECL_ALIGN.
13118 (add_stack_var): Updated.
13119 (expand_one_stack_var): Likewise.
13120
13121 2011-04-14 Richard Guenther <rguenther@suse.de>
13122
13123 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13124 Remove.
13125 (dse_initialize_block_local_data, dse_leave_block,
13126 record_voperand_set, get_stmt_uid): Likewise.
13127 (dse_possible_dead_store_p): Allow any kind of killing stmt.
13128 (dse_optimize_stmt): Remove voperand set handling code.
13129 Simplify and improve to handle any kind of killing stmt.
13130 (dse_record_phi): Remove.
13131 (dse_enter_block): Simplify.
13132 (tree_ssa_dse): Likewise.
13133 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13134
13135 2011-04-14 Jan Hubicka <jh@suse.cz>
13136
13137 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13138 * cgraph.h (struct inline_summary): Move to ipa-inline.h
13139 (cgraph_local_info): Remove inline_summary.
13140 * ipa-cp.c: Include ipa-inline.h.
13141 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13142 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13143 accesor.
13144 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13145 (input_overwrite_node): Do not set inline summary.
13146 (input_node): Do not stream inline summary.
13147 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13148 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13149 growth; we do not have inline parameters computed for that anyway.
13150 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13151 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13152 (inline_summary_t): New type and VECtor.
13153 (debug_inline_summary, dump_inline_summaries): Declare.
13154 (inline_summary): Use VOCtor.
13155 (estimate_edge_growth): Kill hack computing call stmt size directly.
13156 * lto-section-in.c (lto_section_name): Add inline section.
13157 * ipa-inline-analysis.c: Include lto-streamer.h
13158 (node_removal_hook_holder, node_duplication_hook_holder): New holders
13159 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13160 (inline_summary_vec): Define.
13161 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13162 dump_inline_summaries): New functions.
13163 (estimate_function_body_sizes): Properly compute size/time of outgoing
13164 calls.
13165 (compute_inline_parameters): Alloc inline_summary; do not compute
13166 size/time of incomming calls.
13167 (estimate_edge_time): Avoid missing time summary hack.
13168 (inline_read_summary): Read inline summary info.
13169 (inline_write_summary): Write inline summary info.
13170 (inline_free_summary): Free all hooks and inline summary vector.
13171 * lto-streamer.h: Add LTO_section_inline_summary section.
13172 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13173 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13174
13175 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13176
13177 * tree-vectorizer.h (vect_strided_store_supported): Add a
13178 HOST_WIDE_INT argument.
13179 (vect_strided_load_supported): Likewise.
13180 (vect_permute_store_chain): Return void.
13181 (vect_transform_strided_load): Likewise.
13182 (vect_permute_load_chain): Delete.
13183 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13184 count argument. Check that the count is a power of two.
13185 (vect_strided_load_supported): Likewise.
13186 (vect_permute_store_chain): Return void. Update after above changes.
13187 Assert that the access is supported.
13188 (vect_permute_load_chain): Likewise.
13189 (vect_transform_strided_load): Return void.
13190 * tree-vect-stmts.c (vectorizable_store): Update calls after
13191 above interface changes.
13192 (vectorizable_load): Likewise.
13193 (vect_analyze_stmt): Don't check for strided powers of two here.
13194
13195 2011-04-14 Richard Guenther <rguenther@suse.de>
13196
13197 PR tree-optimization/48590
13198 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13199 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13200 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13201 BUILT_IN_STACK_SAVE.
13202 * tree-ssa-dce.c (propagate_necessity): Handle
13203 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13204
13205 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13206
13207 * c-parser.c (c_parser_objc_class_declaration): Updated call to
13208 objc_declare_class.
13209
13210 2011-04-14 Richard Guenther <rguenther@suse.de>
13211
13212 * tree.h (get_object_alignment_1): Declare.
13213 * builtins.c (get_object_alignment_1): Split out worker from ...
13214 (get_object_alignment): ... here.
13215 * fold-const.c (get_pointer_modulus_and_residue): Use
13216 get_object_alignment_1.
13217
13218 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13219
13220 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13221 type parameter.
13222 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13223 parameter. Generalise code to handle arrays as well as vectors.
13224 (vect_setup_realignment): Update accordingly.
13225 * tree-vect-stmts.c (vectorizable_store): Likewise.
13226 (vectorizable_load): Likewise.
13227
13228 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13229
13230 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13231 within the per-copy loop.
13232
13233 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13234
13235 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13236 in the dump file.
13237
13238 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13239
13240 * doc/options.texi (Negative): Explicitly mention that the
13241 Negative chain must be circular.
13242
13243 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13244
13245 * function.h (block_chainon): Declare.
13246 * function.c (block_chainon): Define.
13247
13248 2011-04-14 Anatoly Sokolov <aesok@post.ru>
13249 Eric Weddington <eric.weddington@atmel.com>
13250 Georg-Johann Lay <avr@gjlay.de>
13251
13252 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
13253 New Includes
13254 (avr_init_builtins, avr_expand_builtin,
13255 avr_expand_delay_cycles, avr_expand_unop_builtin,
13256 avr_expand_binop_builtin ): New functions.
13257 (avr_builtin_id): New enum
13258 (struct avr_builtin_description): New struct
13259 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13260 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
13261
13262 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
13263 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
13264 UNSPECV_DELAY_CYCLES): new enumeration values
13265 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13266 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13267 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13268 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13269 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13270 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13271 "fmulsu"): New insns
13272
13273 * config/avr/avr-c.c: fix line endings
13274 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13275 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13276 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13277 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13278 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
13279
13280 * doc/extend.texi (AVR Built-in Functions): New node
13281 (Target Builtins): Add documentation of AVR
13282 built-in functions.
13283
13284 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
13285
13286 PR target/44643
13287 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13288 alone. Error if non-const data has attribute progmem.
13289
13290 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13291
13292 * tree.h (struct tree_constructor): Include tree_typed instead of
13293 tree_common.
13294 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13295 TS_TYPED instead of TS_COMMON.
13296
13297 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
13298
13299 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13300 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13301 (sse2_psadbw): Merge with *avx_psadbw.
13302 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13303 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13304 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13305 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13306 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13307 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13308 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13309 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13310 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13311 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13312 (ssse3_palignrti): Merge with *avx_palignrti.
13313
13314 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13315
13316 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13317 * tree-ssanames.c (fini_ssanames): VEC_free it.
13318 (make_ssa_name_fn): Update for VECness of free_ssanames.
13319 (release_ssa_name, release_dead_ssa_names): Likewise.
13320 * tree.h (struct tree_ssa_name): Include tree_typed instead of
13321 tree_common.
13322 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13323 TS_TYPED instead of TS_COMMON.
13324
13325 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13326
13327 * postreload-gcse.c (gcse_after_reload_main): Add calls to
13328 statistics_counter_event.
13329 * tree-ssa-copyrename.c (stats): Define.
13330 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
13331 statistics_counter_event.
13332 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13333 (bswap_stats, widen_mul_stats): Define.
13334 (insert_reciprocals): Increment rdivs_inserted.
13335 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
13336 rfuncs_inserted. Add calls to statistics_counter_event.
13337 (execute_cse_sincos_1): Increment inserted.
13338 (execute_cse_sincos): Zeroize sincos_stats. Add call to
13339 statistics_counter_event.
13340 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
13341 of bswap_stats. Add calls to statistics_counter_event.
13342 (convert_mult_to_widen): Increment widen_mults_inserted.
13343 (convert_plusminus_to_widen): Increment maccs_inserted.
13344 (convert_mult_to_fma): Increment fmas_inserted.
13345 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
13346 calls to statistics_counter_event.
13347
13348 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
13349
13350 PR rtl-optimization/48455
13351 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13352 `temp_costs->mem_cost'.
13353
13354 2011-04-13 Jan Hubicka <jh@suse.cz>
13355
13356 * ipa-inline.h: New file.
13357 * ipa-inline-analysis.c: New file. Broken out of ...
13358 * ipa-inline.c: ... this file; update toplevel comment;
13359 include ipa-inline.h
13360 (inline_summary): Move to ipa-inline.h
13361 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13362 ipa-inline-analysis.c.
13363 (cgraph_estimate_time_after_inlining): Rename to
13364 estiamte_time_after_inlining; move to ipa-inline-analysis.c
13365 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13366 to estimate_edge_growth.
13367 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13368 rename to estimate_size_after_inlining.
13369 (cgraph_mark_inline_edge): Update for new naming convention.
13370 (cgraph_check_inline_limits): Likewise.
13371 (cgraph_edge_badness): Likewise.
13372 (cgraph_decide_recursive_inlining): Likewise.
13373 (cgraph_decide_inlining_of_small_functions): Likewise.
13374 (cgraph_decide_inlining_incrementally): Likewise.
13375 (cgraph_estimate_growth): Rename to estimate_growth; move to
13376 ipa-inline-analysis.c.
13377 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13378 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13379 (compute_inline_parameters): Likewise.
13380 (compute_inline_parameters_for_current): Likewise.
13381 (pass_inline_parameters): Likewise.
13382 (inline_indirect_intraprocedural_analysis): Likewise.
13383 (analyze_function): Rename to inline_analyze_function; likewise.
13384 (add_new_function): Move to ipa-inline-analysis.c.
13385 (inline_generate_summary): Likewise.
13386 (inline_read_summary): Likewise.
13387 (inline_write_summary): Likewise.
13388 * Makefile.in (ipa-inline-analysis.c): New file.
13389
13390 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13391
13392 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
13393 * configure: Regenerate.
13394
13395 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13396
13397 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
13398 instead of tree_common.
13399 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
13400 Likewise.
13401 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
13402 TS_TYPED rather than TS_COMMON.
13403 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
13404
13405 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
13406
13407 PR target/45263
13408 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
13409 r20 around calls of __tablejump_elpm__
13410
13411 2011-04-13 Jakub Jelinek <jakub@redhat.com>
13412
13413 PR middle-end/48591
13414 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
13415 NULL.
13416 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
13417
13418 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
13419
13420 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13421 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13422 (cfi_vec): New typedef.
13423 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13424 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13425 (cie_cfi_vec): New static variable.
13426 (cie_cfi_head): Delete.
13427 (add_cfi): Accept a cfi_vec * as first argument. All callers and
13428 declaration changed. Use vector rather than list operations.
13429 (new_cfi): Don't initialize the dw_cfi_next field.
13430 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13431 rather than list operations.
13432 (lookup_cfa): Use vector rather than list operations.
13433 (output_cfis): New argument upto. Accept a cfi_vec rather than
13434 a dw_cfi_ref list head as argument. All callers changed.
13435 Iterate over the vector using upto as a maximum index.
13436 (output_all_cfis): New static function.
13437 (output_fde): Use vector rather than list operations. Use the
13438 new upto argument for output_cfis rather than manipulating a
13439 list.
13440 (dwarf2out_begin_prologue): Change initializations to match
13441 new struct members.
13442 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13443 from the vector length rather than searching for the end of a list.
13444 Use output_all_cfis.
13445 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13446
13447 2011-04-13 Nick Clifton <nickc@redhat.com>
13448
13449 * config/rx/rx.md (movmemsi): Do not use this pattern when
13450 volatile pointers are involved.
13451
13452 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
13453
13454 * config/i386/sse.md (pinsrbits): Remove.
13455 (sse2_packsswb): Merge with *avx_packsswb.
13456 (sse2_packssdw): Merge with *avx_packssdw.
13457 (sse2_packuswb): Merge with *avx_packuswb.
13458 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13459 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13460 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13461 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13462 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13463 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13464 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13465 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13466 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13467 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13468 (sse2_loadld): Merge with *avx_loadld.
13469 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13470 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13471 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13472 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13473 (vec_concatv2di): Merge with *vec_concatv2di_avx.
13474
13475 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13476
13477 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13478 calling TREE_CHAIN.
13479 * print-tree.c (print_node): Likewise.
13480 * tree-inline.c (copy_tree_r): Likewise.
13481 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13482 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13483 instead of TS_COMMON.
13484 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13485 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13486 (copy_node_stat): Zero TREE_CHAIN only if necessary.
13487 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13488 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13489 ...and these...
13490 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13491 * tree.h: ...here.
13492 (TREE_CHAIN): Check for a TS_COMMON structure.
13493 (TREE_TYPE): Check for a TS_TYPED structure.
13494
13495 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
13496
13497 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13498 cgraph_get_create_node instead of cgraph_node.
13499
13500 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13501
13502 * c-parser.c (c_parser_initelt): Updated call to
13503 objc_build_message_expr.
13504 (c_parser_postfix_expression): Likewise.
13505
13506 2011-04-12 Kai Tietz <ktietz@redhat.com>
13507
13508 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13509 MASK_MS_BITFIELD_LAYOUT bit.
13510
13511 2011-04-12 Jakub Jelinek <jakub@redhat.com>
13512
13513 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13514 assert it is always true.
13515 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13516 moves.
13517
13518 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13519
13520 * c-parser.c (c_lex_one_token): Rewritten conditional used when
13521 compiling Objective-C to be more efficient.
13522
13523 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
13524
13525 * opts-common.c (decode_cmdline_options_to_array): Remove variable
13526 argv_copied.
13527
13528 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13529
13530 * recog.h, genoutput.c, optabs.c: Revert last patch.
13531
13532 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13533
13534 PR target/48090
13535 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
13536
13537 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13538
13539 * recog.h (insn_operand_data): Add an "allows_mem" field.
13540 * genoutput.c (output_operand_data): Initialize it.
13541 * optabs.c (maybe_legitimize_operand_same_code): New function.
13542 (maybe_legitimize_operand): Use it when matching the original
13543 op->value.
13544
13545 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13546
13547 * genpreds.c (process_define_predicate): Move most processing
13548 to gensupport.c. Continue to validate the expression.
13549 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13550 (process_define_predicate): Move processing to gensupport.c.
13551 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13552 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13553 (compute_predicate_codes): Moved from genrecog.c. Add lineno
13554 argument.
13555 (valid_predicate_name_p): New function, split out from old
13556 genpreds.c:process_define_predicate.
13557 (process_define_predicate): New function, combining code from
13558 old genpreds.c and genrecog.c functions.
13559 (process_rtx): Call it for DEFINE_PREDICATE and
13560 DEFINE_SPECIAL_PREDICATE.
13561
13562 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13563
13564 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13565 size of a '%A' memory reference.
13566 (T_DREG, T_QREG): New neon_builtin_type_bits.
13567 (arm_init_neon_builtins): Assert that the load and store operands
13568 are neon_struct_operands.
13569 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13570 (NEON_ARG_MEMORY): New builtin_arg.
13571 (neon_dereference_pointer): New function.
13572 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13573 Handle NEON_ARG_MEMORY.
13574 (arm_expand_neon_builtin): Update after above interface changes.
13575 Use NEON_ARG_MEMORY for loads and stores.
13576 * config/arm/predicates.md (neon_struct_operand): New predicate.
13577 * config/arm/iterators.md (V_two_elem): Tweak formatting.
13578 (V_three_elem): Use BLKmode for accesses that have no associated mode.
13579 (V_four_elem): Tweak formatting.
13580 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13581 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13582 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13583 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13584 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13585 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13586 (neon_vst4<mode>): Replace pointer operand with a memory operand.
13587 Use %A in the output template.
13588 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13589 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13590 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13591 the width of the memory access. Remove post-increment.
13592 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13593
13594 2011-04-12 Nick Clifton <nickc@redhat.com>
13595
13596 * config/v850/v850.c (expand_prologue): Do not use the CALLT
13597 instruction for interrupt handlers if the target is the basic V850
13598 architecture.
13599 (expand_epilogue): Likewise.
13600
13601 2011-04-12 Jakub Jelinek <jakub@redhat.com>
13602
13603 PR rtl-optimization/48549
13604 * combine.c (propagate_for_debug): Also stop after BB_END of
13605 this_basic_block. Process LAST and just stop processing after it.
13606 (combine_instructions): If last_combined_insn has been deleted,
13607 set last_combined_insn to its PREV_INSN.
13608
13609 2011-04-12 Richard Guenther <rguenther@suse.de>
13610
13611 PR tree-optimization/46076
13612 * gimple.h (struct gimple_statement_call): Add fntype field.
13613 (gimple_call_fntype): Adjust.
13614 (gimple_call_set_fntype): New function.
13615 * gimple.c (gimple_build_call_1): Set the call function type.
13616 * gimplify.c (gimplify_call_expr): Preserve the function
13617 type the frontend used for the call.
13618 (gimplify_modify_expr): Likewise.
13619 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13620 function type.
13621 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13622 function type.
13623 * tree-ssa.c (useless_type_conversion_p): Function pointer
13624 conversions are useless.
13625
13626 2011-04-12 Martin Jambor <mjambor@suse.cz>
13627
13628 * cgraph.h (cgraph_node): Remove function declaration.
13629 (cgraph_create_node): Declare.
13630 (cgraph_get_create_node): Likewise.
13631 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13632 Updated all callers.
13633 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13634 the decl does not already exist. Call cgraph_get_create_node instead
13635 of cgraph_node.
13636 (cgraph_get_create_node): New function.
13637 (cgraph_same_body_alias): Update comment.
13638 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13639 assert it does not return NULL.
13640 (cgraph_update_edges_for_call_stmt): Likewise.
13641 (cgraph_clone_edge): Likewise.
13642 (cgraph_create_virtual_clone): Likewise.
13643 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13644 instead of cgraph_node.
13645 (cgraph_add_new_function): Call cgraph_create_node or
13646 cgraph_get_create_node instead of cgraph_node.
13647 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13648 instead of cgraph_node.
13649 (record_eh_tables): Likewise.
13650 (mark_address): Likewise.
13651 (mark_load): Likewise.
13652 (build_cgraph_edges): Call cgraph_get_create_node instead
13653 of cgraph_node.
13654 (rebuild_cgraph_edges): Likewise.
13655 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13656 instead of cgraph_node.
13657 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13658 cgraph_node.
13659 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13660 cgraph_create_node instead of cgraph_node.
13661 * c-decl.c (finish_function): Call cgraph_get_create_node instead
13662 of cgraph_node.
13663 * lto-cgraph.c (input_node): Likewise.
13664 * lto-streamer-in.c (input_function): Likewise.
13665 * varasm.c (mark_decl_referenced): Likewise.
13666 (assemble_alias): Likewise.
13667
13668 2011-04-12 Martin Jambor <mjambor@suse.cz>
13669
13670 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13671 instead of cgraph_node and assert it does not return NULL.
13672 * lto-streamer-in.c (lto_read_body): Likewise.
13673 * omp-low.c (new_omp_context): Likewise.
13674 (create_task_copyfn): Likewise.
13675 * tree-emutls.c (lower_emutls_function_body): Likewise.
13676 * matrix-reorg.c (transform_allocation_sites): Likewise.
13677
13678 2011-04-12 Jakub Jelinek <jakub@redhat.com>
13679
13680 PR c/48552
13681 * c-typeck.c (build_asm_expr): Error out on attempts to use
13682 void type outputs or inputs for constraints that allow reg or
13683 don't allow memory.
13684
13685 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
13686 Richard Earnshaw <rearnsha@arm.com>
13687
13688 PR target/48250
13689 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
13690 to use sign-magnitude offsets. Reject unsupported unaligned
13691 cases. Add detailed description in comments.
13692 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
13693 condition from TARGET_32BIT to TARGET_ARM.
13694
13695 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
13696
13697 * tree.h (struct typed_tree): New.
13698 (struct tree_common): Include it instead of tree_base.
13699 (TREE_TYPE): Update for new location of type field.
13700 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
13701 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
13702 (union tree_node): Add typed field.
13703 * treestruct.def (TS_TYPED): New.
13704 * lto-streamer.c (check_handled_ts_structures): Handle it.
13705 * tree.c (MARK_TS_TYPED): New macro.
13706 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
13707
13708 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
13709
13710 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
13711 (force_nonfallthru): Do not alter the loop nest if no basic block
13712 was created.
13713
13714 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
13715
13716 * config/i386/sse.md (VI): New mode iterator.
13717 (SSEMODEI): Remove.
13718 (AVX256MODEI): Ditto.
13719 (AVXMODEF4P): Ditto.
13720 (avxvecpsmode): Ditto.
13721 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
13722 (sse2_andnot<mode>3): New expander.
13723 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
13724 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
13725 (<any_logic:code><mode>3): Use VI mode iterator.
13726 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
13727 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
13728 (*andnottf3): Handle AVX three-operand constraints.
13729 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
13730
13731 2011-04-11 Joseph Myers <joseph@codesourcery.com>
13732 Robert Millan <rmh@gnu.org>
13733
13734 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
13735 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
13736 GNU_USER_DYNAMIC_LINKER64): Define.
13737 (REG_NAME): Don't undefine.
13738 (MD_UNWIND_SUPPORT): Undefine.
13739 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
13740 (REG_NAME): Don't undefine.
13741 (MD_UNWIND_SUPPORT): Undefine.
13742 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
13743
13744 2011-04-11 Joseph Myers <joseph@codesourcery.com>
13745
13746 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
13747 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
13748
13749 2011-04-11 Xinliang David Li <davidxl@google.com>
13750
13751 * value-profile.c (check_ic_target): New function.
13752 (gimple_ic_transform): Sanity check indirect call target.
13753 * gimple-low.c (gimple_check_call_args): Interface change.
13754 (gimple_check_call_matching_types): New function.
13755 * tree-inline.c (tree_can_inline_p): Call new function.
13756
13757 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
13758
13759 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
13760 tree-pretty-print.h & realmpfr.h.
13761
13762 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
13763
13764 PR middle-end/48464
13765 * ira.c (setup_pressure_classes): Fix typo in loop condition.
13766 (setup_allocno_and_important_classes): Ditto.
13767
13768 2011-04-11 Joseph Myers <joseph@codesourcery.com>
13769
13770 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
13771 GNU_USER_DYNAMIC_LINKER.
13772 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
13773 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13774 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
13775 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13776 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13777 GNU_USER_TARGET_OS_CPP_BUILTINS.
13778 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
13779 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13780 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13781 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13782 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
13783 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13784 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13785 GNU_USER_TARGET_OS_CPP_BUILTINS.
13786 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13787 GNU_USER_DYNAMIC_LINKER.
13788 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13789 GNU_USER_TARGET_OS_CPP_BUILTINS.
13790 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
13791 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13792 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
13793 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13794 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
13795 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
13796 GNU_USER_DYNAMIC_LINKER64): Remove.
13797 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
13798 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13799 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13800 GNU_USER_DYNAMIC_LINKER.
13801 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13802 GNU_USER_TARGET_OS_CPP_BUILTINS.
13803 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13804 GNU_USER_TARGET_OS_CPP_BUILTINS.
13805 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
13806 to GNU_USER_TARGET_OS_CPP_BUILTINS.
13807 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13808 GNU_USER_TARGET_OS_CPP_BUILTINS.
13809 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
13810 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
13811 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13812 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
13813 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13814 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13815 GNU_USER_DYNAMIC_LINKER.
13816 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13817 GNU_USER_TARGET_OS_CPP_BUILTINS.
13818 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
13819 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13820 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13821 GNU_USER_DYNAMIC_LINKER.
13822 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13823 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13824 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
13825 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13826 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13827 GNU_USER_DYNAMIC_LINKER.
13828 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
13829 GNU_USER_DYNAMIC_LINKERN32.
13830 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
13831 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
13832 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
13833 GNU_USER_DYNAMIC_LINKER32.
13834 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
13835 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13836 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13837 GNU_USER_DYNAMIC_LINKER.
13838 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13839 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13840 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
13841 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13842 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13843 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
13844 GNU_USER_DYNAMIC_LINKER32.
13845 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13846 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
13847 GNU_USER_DYNAMIC_LINKER.
13848 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
13849 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13850 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13851 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
13852 GNU_USER_DYNAMIC_LINKER64.
13853 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
13854 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13855 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13856 GNU_USER_DYNAMIC_LINKER.
13857 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
13858 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13859 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13860 GNU_USER_DYNAMIC_LINKER.
13861 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
13862 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13863 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13864 GNU_USER_DYNAMIC_LINKER32.
13865 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13866 GNU_USER_DYNAMIC_LINKER64.
13867 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13868 GNU_USER_DYNAMIC_LINKER64.
13869 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
13870 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13871 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
13872 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13873 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13874
13875 2011-04-11 Joseph Myers <joseph@codesourcery.com>
13876
13877 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
13878 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
13879 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
13880 GNU_USER_DYNAMIC_LINKER.
13881 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13882 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
13883 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
13884 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
13885 GNU_USER_DYNAMIC_LINKER64.
13886 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13887 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
13888 GNU_USER_LINK_EMULATION.
13889 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
13890 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
13891 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
13892 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
13893 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
13894 CPP_SPEC, CC1_SPEC): Remove.
13895 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
13896 (GNU_USER_DYNAMIC_LINKER): Define.
13897 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
13898 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
13899 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
13900 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
13901 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
13902 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
13903 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13904 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
13905 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
13906 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
13907 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
13908 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
13909 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
13910 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
13911 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
13912 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13913 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13914 GNU_USER_DYNAMIC_LINKER.
13915 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13916 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13917 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13918 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13919 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13920 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13921 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
13922 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
13923 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
13924 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
13925
13926 2011-04-11 Kai Tietz <ktietz@redhat.com>
13927
13928 PR target/9601
13929 PR target/11772
13930 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
13931 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
13932 comment.
13933 (ix86_is_msabi_thiscall): Removed.
13934 (ix86_is_type_thiscall): Likewise.
13935 (ix86_get_callcvt): New function.
13936 (ix86_comp_type_attributes): Simplify check.
13937 (ix86_function_regparm): Use ix86_get_callcvt for calling
13938 convention attribute checks.
13939 (ix86_return_pops_args): Likewise.
13940 (ix86_static_chain): Likewise.
13941 (x86_this_parameter): Likewise.
13942 (x86_output_mi_thunk): Likewise.
13943 (ix86_function_type_abi): Optimize check for types without attributes.
13944 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
13945 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
13946 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
13947 by flag-values.
13948 (IX86_BASE_CALLCVT): Helper macro.
13949 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13950 Use ix86_get_callcvt for calling convention attribute checks and avoid
13951 symbol-decoration for stdcall in TARGET_RTD case.
13952 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
13953 Likewise.
13954 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
13955 for declaration.
13956
13957 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
13958
13959 * config/i386/sse.md (VI_128): New mode iterator.
13960 (VI12_128): Rename from SSEMODE12.
13961 (VI14_128): Rename from SSEMODE14.
13962 (VI124_128): New mode iterator.
13963 (VI24_128): Rename from SSEMODE248.
13964 (VI248_128): Rename from SSEMODE248.
13965 (SSEMODE124C8): Remove.
13966 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
13967 (*sse2_<plusminus_insn><mode>3): Merge with
13968 *avx_<plusminus_insn><mode>3.
13969 (*mulv8hi3): Merge with *avx_mulv8hi3.
13970 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
13971 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
13972 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
13973 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
13974 (ashr<mode>3): Merge with *avx_ashr<mode>3.
13975 (lshr<mode>3): Merge with *avx_lshr<mode>3.
13976 (ashl<mode>3): Merge with *avx_ashl<mode>3.
13977 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
13978 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
13979 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
13980 (*<smaxmin:code>v8hi3): Ditto.
13981 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
13982 (*<smaxmin:code>v16qi3): Ditto.
13983 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
13984 (*sse2_eq<mode>3): Ditto.
13985 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
13986 (*sse2_gt<mode>3): Ditto.
13987 (vcondv2di): Split out of vcond<mode>.
13988 (vconduv2di): Split out of vcondu<mode>.
13989
13990 2011-04-11 Richard Guenther <rguenther@suse.de>
13991
13992 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
13993 before calling tree_low_cst.
13994
13995 2011-04-11 Richard Guenther <rguenther@suse.de>
13996
13997 * stor-layout.c (layout_type): Compute all array index size operations
13998 in the original type.
13999 (initialize_sizetypes): Add comment.
14000 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14001
14002 2011-04-11 Joseph Myers <joseph@codesourcery.com>
14003
14004 * common.opt (Tbss=, Tdata=, Ttext=): New options.
14005
14006 2011-04-11 Martin Jambor <mjambor@suse.cz>
14007
14008 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14009 of cgraph_node, handle NULL return value.
14010 (cgraph_global_info): Likewise.
14011 (cgraph_rtl_info): Likewise.
14012 * tree-inline.c (estimate_num_insns): Likewise.
14013 * gimplify.c (unshare_body): Likewise.
14014 (unvisit_body): Likewise.
14015 (gimplify_body): Likewise.
14016 * predict.c (optimize_function_for_size_p): Likewise.
14017 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14018 (call_may_clobber_ref_p_1): Likewise.
14019 * varasm.c (function_section_1): Likewise.
14020 (assemble_start_function): Likewise.
14021
14022 2011-04-11 Martin Jambor <mjambor@suse.cz>
14023
14024 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14025 of cgraph_node.
14026 * final.c (rest_of_clean_state): Likewise.
14027 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14028 * passes.c (pass_init_dump_file): Likewise.
14029 (execute_all_ipa_transforms): Likewise.
14030 (function_called_by_processed_nodes_p): Likewise.
14031 * predict.c (maybe_hot_frequency_p): Likewise.
14032 (probably_never_executed_bb_p): Likewise.
14033 (compute_function_frequency): Likewise.
14034 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14035 (unnest_nesting_tree_1): Likewise.
14036 (lower_nested_functions): Likewise.
14037 * tree-optimize.c (execute_fixup_cfg): Likewise.
14038 (tree_rest_of_compilation): Likewise.
14039 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14040 * tree-sra.c (ipa_early_sra): Likewise.
14041 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14042 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14043 * ipa.c (record_cdtor_fn): Likewise.
14044 * ipa-inline.c (cgraph_early_inlining): Likewise.
14045 (compute_inline_parameters_for_current): Likewise.
14046 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14047 * ipa-pure-const.c (local_pure_const): Likewise.
14048 * ipa-split.c (split_function): Likewise.
14049 (execute_split_functions): Likewise.
14050 * cgraphbuild.c (build_cgraph_edges): Likewise.
14051 (rebuild_cgraph_edges): Likewise.
14052 (cgraph_rebuild_references): Likewise.
14053 (remove_cgraph_callee_edges): Likewise.
14054 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14055 (verify_cgraph_node): Likewise.
14056 (cgraph_analyze_functions): Likewise.
14057 (cgraph_preserve_function_body_p): Likewise.
14058 (save_inline_function_body): Likewise.
14059 (save_inline_function_body): Likewise.
14060 * tree-inline.c (copy_bb): Likewise.
14061 (optimize_inline_calls): Likewise.
14062
14063 2011-04-11 Martin Jambor <mjambor@suse.cz>
14064
14065 PR tree-optimization/48195
14066 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14067 ipa_check_create_edge_args.
14068 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14069 ipa_check_create_edge_args.
14070 * ipa-inline.c (inline_generate_summary): Do not call
14071 ipa_check_create_node_params and ipa_check_create_edge_args.
14072 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14073 ipa_check_create_edge_args.
14074
14075 2011-04-09 Anatoly Sokolov <aesok@post.ru>
14076
14077 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14078 instead of loop.
14079 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14080 * function.c (record_hard_reg_sets): Likewise.
14081 * ira.c (compute_regs_asm_clobbered): Likewise.
14082 * sched-deps.c (sched_analyze_1): Likewise.
14083 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14084
14085 2011-04-09 Xinliang David Li <davidxl@google.com>
14086
14087 PR tree-optimization/PR48484
14088 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14089 has_valid_pred lazily
14090
14091 2011-04-09 Duncan Sands <baldrick@free.fr>
14092
14093 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14094
14095 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
14096
14097 * combine.c (combine_validate_cost): Adjust comments. Set registered
14098 cost of I0 to zero at the end, if any.
14099
14100 2011-04-08 Xinliang David Li <davidxl@google.com>
14101
14102 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14103 to insane profile data.
14104
14105 2011-04-08 Xinliang David Li <davidxl@google.com>
14106
14107 * ipa-cp.c (ipcp_update_profiling): Correct
14108 negative scale factor due to insane profile data.
14109
14110 2011-04-08 Xinliang David Li <davidxl@google.com>
14111
14112 * final.c (dump_basic_block_info): New function.
14113 (final): Dump basic block.
14114 (final_scan_insn): Remove old dump.
14115
14116 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
14117
14118 PR target/47829
14119 * config.gcc (i386-*-freebsd): Disable unwind table generation for
14120 crtbegin/crtend.
14121
14122 2011-04-08 Michael Matz <matz@suse.de>
14123
14124 PR middle-end/48389
14125 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14126 functions.
14127 (rebuild_jump_labels): Call rebuild_jump_labels_1.
14128 * rtl.h (rebuild_jump_labels_chain): Declare.
14129 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14130 insns inserted on edges.
14131
14132 2011-04-08 Joseph Myers <joseph@codesourcery.com>
14133
14134 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14135 * config/arm/arm-arches.def: New.
14136 * config/arm/arm-opts.h: New.
14137 * config/arm/genopt.sh: New.
14138 * config/arm/arm-tables.opt: New (generated).
14139 * config/arm/arm.c (arm_handle_option, arm_target_help,
14140 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14141 (all_architectures): Get most table contents from arm-arches.def.
14142 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14143 arm_selected_tune here.
14144 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14145 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14146 (march=, mcpu=, mtune=): Use Enum and Var.
14147 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14148 (arm.o): Update dependencies.
14149
14150 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
14151
14152 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14153 of header_file.
14154 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14155 (write_typed_alloc_defns): Likewise.
14156 (main): Calls write_typed_alloc_defns with output_header.
14157
14158 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
14159
14160 PR inline-asm/48435
14161 * ira-color.c (setup_profitable_hard_regs): Add comments.
14162 Don't take prohibited hard regs into account.
14163 (setup_conflict_profitable_regs): Rename to
14164 get_conflict_profitable_regs.
14165 (check_hard_reg_p): Check prohibited hard regs.
14166
14167 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
14168
14169 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14170 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14171 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14172
14173 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14174
14175 PR target/48366
14176 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
14177 move from floating point to shift amount register.
14178 (emit_move_sequence): Remove secondary reload support for floating
14179 point to shift amount amount register copies.
14180 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14181 amount register copies.
14182 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14183 register, return false if mode isn't a scalar integer mode.
14184 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14185
14186 2011-04-08 Richard Guenther <rguenther@suse.de>
14187
14188 * gimple.c (gimple_call_flags): Remove kludge.
14189
14190 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14191
14192 * sel-sched.c (sel_region_init): Move call to
14193 sel_setup_region_sched_flags after setup_current_loop_nest.
14194
14195 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
14196
14197 PR rtl-optimization/48272
14198 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14199 init_insn_reg_pressure_info. Adjust a caller.
14200 * sched-int.h (init_insn_reg_pressure_info): Declare.
14201 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14202 when sched-pressure is enabled.
14203
14204 2011-04-08 Richard Guenther <rguenther@suse.de>
14205
14206 * gimple.c (gimple_set_modified): Do not queue calls to
14207 MODIFIED_NORETURN_CALLS here ...
14208 * tree-ssa-operands.c (update_stmt_operands): ... but here.
14209
14210 2011-04-08 Richard Guenther <rguenther@suse.de>
14211
14212 PR lto/48467
14213 * toplev.c (lang_dependent_init): Do not open asm_out_file
14214 in WPA mode, nor perform debug machinery initialization.
14215 (finalize): Do not unlink asm_out_file in WPA mode.
14216
14217 2011-04-08 Richard Guenther <rguenther@suse.de>
14218
14219 * gimple.h (gimple_call_fntype): New function.
14220 (gimple_call_return_type): Use it.
14221 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14222 * gimple-low.c (gimple_check_call_args): Likewise.
14223 * gimple.c (gimple_call_flags): Likewise.
14224 (gimple_call_arg_flags): Likewise.
14225 (gimple_call_return_flags): Likewise.
14226 * tree-cfg.c (verify_gimple_call): Likewise.
14227 (do_warn_unused_result): Likewise.
14228 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14229 * value-prof.c (gimple_ic_transform): Fix fndecl check.
14230
14231 2011-04-08 Dmitry Melnik <dm@ispras.ru>
14232
14233 PR rtl-optimization/48235
14234 * sel-sched.c (code_motion_process_successors): Recompute the last
14235 insn in basic block if control flow changed.
14236 (code_motion_path_driver): Ditto. Recompute the first insn as well.
14237 Update condition for ilist_remove.
14238
14239 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14240
14241 PR rtl-optimization/48302
14242 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14243 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
14244 it to record added preheader blocks.
14245 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
14246 on to sel_add_loop_preheaders.
14247 (sel_region_init): Move call to setup_current_loop_nest after
14248 sel_init_bbs.
14249
14250 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14251
14252 PR target/48273
14253 * cfgloop.h (loop_has_exit_edges): New helper.
14254 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14255 non-clonable.
14256 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14257 that have no exit edges.
14258
14259 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14260
14261 PR rtl-optimization/48442
14262 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
14263 all callers. Adjust assert.
14264
14265 2011-04-08 Jakub Jelinek <jakub@redhat.com>
14266
14267 PR tree-optimization/48377
14268 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14269 is_packed to true even for types with smaller TYPE_ALIGN than
14270 TYPE_SIZE.
14271
14272 2011-04-08 Richard Guenther <rguenther@suse.de>
14273
14274 PR bootstrap/48513
14275 * doc/tm.texi: Re-generate.
14276
14277 2011-04-08 Wei Guozhi <carrot@google.com>
14278
14279 PR target/47855
14280 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14281 * config/arm/arm.c (arm_attr_length_push_multi): New function.
14282 * config/arm/arm.md (*push_multi): Change the length computation to
14283 call a C function.
14284
14285 2011-04-08 Anatoly Sokolov <aesok@post.ru>
14286
14287 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14288 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14289 * doc/tm.texi: Regenerate.
14290 * system.h (ASM_OUTPUT_BSS): Poison.
14291 * varasm.c (asm_output_bss): Remove function.
14292 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
14293
14294 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14295 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14296 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14297 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14298 Likewise.
14299 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14300 Likewise.
14301 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14302 Likewise.
14303 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14304
14305 2011-04-07 Joseph Myers <joseph@codesourcery.com>
14306
14307 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14308 EnumValue lines.
14309
14310 2011-04-07 Joseph Myers <joseph@codesourcery.com>
14311
14312 * config/m68k/m68k.c (m68k_handle_option): Don't handle
14313 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14314 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14315 OPT_mcpu32.
14316 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14317 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14318 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14319 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14320 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14321 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14322 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14323 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14324 options. Don't map other m68k options manually. Don't handle
14325 old-style options as canonical.
14326 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14327 * doc/install.texi (m68k-*-*): Document binutils version requirement.
14328
14329 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
14330
14331 * basic-block.h (force_nonfallthru): Move to...
14332 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14333 (force_nonfallthru): ...here.
14334 * cfghooks.c (force_nonfallthru): New function.
14335 * cfgrtl.c (force_nonfallthru): Rename into...
14336 (rtl_force_nonfallthru): ...this.
14337 (commit_one_edge_insertion): Do not set AUX field.
14338 (commit_edge_insertions): Do not discover new basic blocks.
14339 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14340 (cfg_layout_rtl_cfg_hooks): Likewise.
14341 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14342 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
14343 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14344
14345 2011-04-07 Anatoly Sokolov <aesok@post.ru>
14346
14347 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14348 Remove macros.
14349
14350 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
14351
14352 * config/i386/sse.md: Update copyright year.
14353 (avxcvtvecmode): Remove.
14354 (sse_movhlps): Merge with *avx_movhlps.
14355 (sse_movlhps): Merge with *avx_movlhps.
14356 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14357 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14358 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14359 (sse_loadhps): Merge with *avx_loadhps.
14360 (sse_storelps): Merge with *avx_storelps.
14361 (sse_loadlps): Merge with *avx_loadlps.
14362 (sse_movss): Merge with *avx_movss.
14363 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14364 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14365 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14366 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14367 (vec_set<mode>_0): Ditto.
14368 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14369 (sse4_1_insertps): Merge with *avx_insertps.
14370 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14371 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14372 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14373 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14374 (sse2_storehpd): Merge with *avx_storehpd.
14375 (sse2_loadhpd): Merge with *avx_loadhpd.
14376 (sse2_loadlpd): Merge with *avx_loadlpd.
14377 (sse2_movsd): Merge with *avx_movsd.
14378 (*vec_concatv2df): Merge with *vec_concatv2df.
14379
14380 2011-04-07 Jakub Jelinek <jakub@redhat.com>
14381
14382 PR debug/48343
14383 * combine.c (combine_instructions): Add last_combined_insn,
14384 update it if insn is after it, pass it to all try_combine calls.
14385 (try_combine): Add last_combined_insn parameter, pass it instead of
14386 i3 to propagate_for_debug.
14387
14388 2011-04-07 Nick Clifton <nickc@redhat.com>
14389
14390 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
14391 to handle MDR <-> data register transfers.
14392 (movhi_internal): Likewise.
14393
14394 2011-04-07 Alan Modra <amodra@gmail.com>
14395
14396 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
14397 previous stack info.
14398
14399 2011-04-07 Tom de Vries <tom@codesourcery.com>
14400
14401 PR target/43920
14402 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
14403 flow_find_cross_jump. Swap variables to implement backward replacement.
14404 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
14405
14406 2011-04-07 Tom de Vries <tom@codesourcery.com>
14407
14408 PR target/43920
14409 * cfgcleanup.c (walk_to_nondebug_insn): New function.
14410 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
14411 and bb2.
14412 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
14413 src1 or src2. Redirect edges to the last basic block. Update
14414 frequency and count on multiple basic blocks in case of fallthru.
14415
14416 2011-04-07 Tom de Vries <tom@codesourcery.com>
14417
14418 PR target/43920
14419 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
14420 function.
14421 (old_insns_match_p): Change return type. Replace return false/true
14422 with return dir_none/dir_both. Use can_replace_by.
14423 (flow_find_cross_jump): Add dir_p parameter. Init replacement
14424 direction from dir_p. Register replacement direction in dir, last_dir
14425 and afterlast_dir. Handle new return type of old_insns_match_p using
14426 merge_dir. Return replacement direction in dir_p.
14427 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14428 return type of old_insns_match_p.
14429 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14430 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14431 flow_find_cross_jump.
14432 * basic-block.h (enum replace_direction): New type.
14433 (flow_find_cross_jump): Add parameter to declaration.
14434
14435 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
14436
14437 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14438 (AVXMODEDCVTPS2DQ): Ditto.
14439 (VEC_FLOAT_MODE): Ditto.
14440 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
14441 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14442 (<any_logic:code><mode>3): Use VF mode iterator.
14443 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14444 Use VF mode iterator.
14445 (copysign<mode>3): Use VF mode iterator.
14446 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
14447 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14448 (*<any_logic:code><MODEF:mode>3): Merge with
14449 *avx_<any_logic:code><MODEF:mode>3.
14450 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14451 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14452 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14453 (avx_cvtdq2ps<avxmodesuffix>): Remove.
14454 (sse2_cvtdq2ps): Use %v modifier.
14455 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14456 (avx_cvtps2dq<avxmodesuffix>): Remove.
14457 (sse2_cvtps2dq): Use %v modifier.
14458 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14459 (avx_cvttps2dq<avxmodesuffix>): Remove.
14460 (sse2_cvttps2dq): Use %v modifier.
14461 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14462 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14463 (sse2_cvtsd2siq): Fix insn template.
14464 (sse2_cvtsd2siq_2): Ditto.
14465 (sse2_cvttsd2siq): Ditto.
14466 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14467 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14468
14469 2011-04-06 Joseph Myers <joseph@codesourcery.com>
14470
14471 * gcov-io.c: Use GCC Runtime Library Exception.
14472
14473 2011-04-06 Jakub Jelinek <jakub@redhat.com>
14474
14475 PR debug/48466
14476 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14477 as base_reg whatever register reg has been eliminated to, instead
14478 of hardcoding STACK_POINTER_REGNUM.
14479
14480 2011-04-06 Joseph Myers <joseph@codesourcery.com>
14481
14482 * doc/tm.texi.in: Document C target hooks as separate from general
14483 target hooks.
14484 * doc/tm.texi: Regenerate.
14485 * genhooks.c (struct hook_desc): Add docname field.
14486 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
14487 docname field.
14488 (hook_array): Include c-target.def.
14489 (emit_documentation): Use docname field in output.
14490 (emit_init_macros): Take docname argument. Only emit definitions
14491 for hooks matching docname.
14492 (main): Expect additional arguments in all cases. Pass argument
14493 to emit_init_macros.
14494 * target.def: Move initial macro definitions and comments to
14495 target-hooks-macros.h.
14496 (gcc_targetcm): Move to c-family/c-target.def.
14497 * target.h (targetcm): Move declaration to c-family/c-target.h.
14498 * targhooks.c (default_handle_c_option): Move to
14499 c-family/c-opts.c.
14500 * targhooks.h (default_handle_c_option): Move declaration to
14501 c-family/c-common.h.
14502 * target-hooks-macros.h: New file.
14503 * config.gcc (target_has_targetcm): Define and use to add to
14504 c_target_objs and cxx_target_objs.
14505 * config/default-c.c: New file.
14506 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14507 of target.h and target-def.h.
14508 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14509 (darwin_objc_construct_string, darwin_cfstring_ref_p,
14510 darwin_check_cfstring_format_arg): Make static.
14511 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14512 TARGET_STRING_OBJECT_REF_TYPE_P,
14513 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14514 * config/darwin-protos.h (darwin_objc_construct_string,
14515 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14516 declare.
14517 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14518 TARGET_STRING_OBJECT_REF_TYPE_P,
14519 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
14520 * config/t-darwin (darwin-c.o): Update dependencies.
14521 * system.h (TARGET_HAS_TARGETCM): Poison.
14522 * Makefile.in (TARGET_H): Update.
14523 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14524 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14525 (default-c.o): New target.
14526 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
14527 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
14528 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
14529 c-target.def.
14530 (build/genhooks.o): Update dependencies.
14531
14532 2011-04-06 Richard Guenther <rguenther@suse.de>
14533
14534 * ipa-inline.c (enum inlining_mode): Remove.
14535 (cgraph_flatten): Use some other token.
14536 (cgraph_edge_early_inlinable_p): New function, split out from ...
14537 (cgraph_perform_always_inlining): New function, split out from ...
14538 (cgraph_decide_inlining_incrementally): ... here.
14539 (cgraph_mark_inline_edge): Adjust.
14540 (cgraph_early_inlining): Re-structure.
14541 (pass_early_inline): Require SSA form.
14542
14543 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
14544 Julian Brown <julian@codesourcery.com>
14545 Mark Shinwell <shinwell@codesourcery.com>
14546
14547 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14548 LO_REGS only for Thumb-1.
14549 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14550 be used in short instructions when optimising for size on Thumb-2.
14551
14552 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14553
14554 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14555 associated with user returns to be preserved.
14556
14557 2011-04-06 Tristan Gingold <gingold@adacore.com>
14558
14559 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14560 symbol_queue_size, DBXOUT_DECR_NESTING,
14561 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14562 if XCOFF_DEBUGGING_INFO.
14563
14564 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
14565
14566 * config/i386/i386.md (attribute isa): New.
14567 (attribute enabled): New.
14568 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14569 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14570 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14571 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14572 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14573 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14574 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14575 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14576
14577 * config/i386/sse.md (VF): New mode iterator.
14578 (VF1): Ditto.
14579 (VF2): Ditto.
14580 (VF_128): Ditto.
14581 (SSEMODEF4): Remove.
14582 (attribute sse): Handle V8SF and V4DF modes.
14583 (<absneg:code><mode>2): Use VF mode iterator.
14584 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
14585 mode iterator.
14586 (<plusminus_insn><mode>3): Use VF mode iterator.
14587 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14588 Use VF mode iterator.
14589 (<sse>_vm<plusminus_insn><mode>3): Merge with
14590 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
14591 (mul<mode>3): Use VF mode iterator.
14592 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
14593 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
14594 mode iterator.
14595 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14596 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14597 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
14598 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
14599 mode iterator.
14600 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14601 Use VF1 mode iterator.
14602 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14603 (sqrt<VF2:mode>2): New expander.
14604 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14605 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14606 and sqrtv2df2. Use VF mode iterator.
14607 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
14608 mode iterator.
14609 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14610 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14611 Use VF1 mode iterator.
14612 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14613 (<smaxmin:code><mode>3): Use VF mode iterator.
14614 (*<smaxmin:code><mode>3_finite): Merge with
14615 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
14616 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14617 (<sse>_vm<smaxmin:code><mode>2): Merge with
14618 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
14619 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
14620 mode iterator.
14621 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
14622 mode iterator.
14623 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14624 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14625 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14626 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14627 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
14628 VF mode iterator.
14629 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14630 Use VF_128 mode iterator.
14631 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
14632 mode iterator.
14633 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
14634 VF_128 mode iterator.
14635 (vcond<mode>): Use VF mode iterator.
14636 * config/i386/predicates.md (sse_comparison_operator): Merge with
14637 avx_comparison_float_operator. Do not declare as special_predicate.
14638 * config/i386/i386.c (struct builtin_description): Update for renamed
14639 compare patterns.
14640 (ix86_expand_args_builtin): Ditto.
14641 (ix86_expand_sse_compare_mask): Ditto.
14642
14643 2011-04-06 Richard Guenther <rguenther@suse.de>
14644
14645 * tree-inline.c (estimate_num_insns): For calls simply account
14646 for all passed arguments and a used return value.
14647
14648 2011-04-06 Richard Guenther <rguenther@suse.de>
14649
14650 PR tree-optimization/47663
14651 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14652 call_stmt_time fields.
14653 (cgraph_edge_inlinable_p): Declare.
14654 (cgraph_edge_recursive_p): New inline function.
14655 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14656 (cgraph_clone_edge): Copy it.
14657 * ipa-inline.c (cgraph_estimate_edge_time): New function.
14658 Account for call stmt time.
14659 (cgraph_estimate_time_after_inlining): Take edge argument.
14660 (cgraph_estimate_edge_growth): Account call stmt size.
14661 (cgraph_estimate_size_after_inlining): Take edge argument.
14662 (cgraph_mark_inline_edge): Adjust.
14663 (cgraph_check_inline_limits): Likewise.
14664 (cgraph_recursive_inlining_p): Remove.
14665 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14666 (cgraph_decide_recursive_inlining): Take edge argument and
14667 adjust.
14668 (cgraph_decide_inlining_of_small_functions): Do not avoid
14669 diags for recursive inlining here.
14670 (cgraph_flatten): Adjust.
14671 (cgraph_decide_inlining_incrementally): Likewise.
14672 (estimate_function_body_sizes): Remove call cost handling.
14673 (compute_inline_parameters): Initialize caller edge call costs.
14674 (cgraph_estimate_edge_growth): New function.
14675 (cgraph_estimate_growth): Use it.
14676 (cgraph_edge_badness): Likewise.
14677 (cgraph_check_inline_limits): Take an edge argument.
14678 (cgraph_decide_inlining_of_small_functions): Adjust.
14679 (cgraph_decide_inlining): Likewise.
14680 * tree-inline.c (estimate_num_insns): Only account for call
14681 return value if it is used.
14682 (expand_call_inline): Avoid diagnostics on recursive inline
14683 functions here.
14684 * lto-cgraph.c (lto_output_edge): Output edge call costs.
14685 (input_edge): Input edge call costs.
14686
14687 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14688
14689 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
14690
14691 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
14692
14693 * doc/invoke.texi (Spec Files): Fix typo.
14694
14695 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14696
14697 * profile.c (branch_prob): Move declaration of local variable. Remove
14698 obsolete ??? comment. Expand the location explicitly instead of using
14699 the LOCATION_FILE and LOCATION_LINE macros.
14700
14701 2011-04-06 Wei Guozhi <carrot@google.com>
14702
14703 PR target/47855
14704 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
14705 (arm_cond_branch): Likewise.
14706 (arm_cond_branch_reversed): Likewise.
14707 (arm_jump): Likewise.
14708 (push_multi): Likewise.
14709 * config/arm/constraints.md (Py): New constraint.
14710
14711 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14712
14713 PR bootstrap/48471
14714 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
14715 Move these...
14716 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
14717 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
14718 #ifdef DBX_DEBUGGING_INFO.
14719
14720 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
14721
14722 PR bootstrap/48403
14723 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
14724 if old and new states differ.
14725
14726 2011-04-05 Joseph Myers <joseph@codesourcery.com>
14727
14728 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
14729 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
14730 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14731 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
14732 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
14733 mcfv4e): Use Alias.
14734 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
14735 ColdFire options to -mcpu= options.
14736
14737 2011-04-05 Jeff Law <law@redhat.com>
14738
14739 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
14740 check if BB is a successor of LOOP->header and return
14741 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
14742
14743 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
14744
14745 * cprop.c (struct reg_use): Remove.
14746 (reg_use_table): Make an array of RTX.
14747 (find_used_regs, constprop_register, local_cprop_pass,
14748 bypass_block): Simplify users of reg_use_table.
14749 (cprop_insn): Likewise. Iterate if copy propagation succeeded
14750 on one of the uses found by find_used_regs.
14751
14752 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14753
14754 PR bootstrap/48469
14755 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
14756 declaration.
14757
14758 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14759
14760 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
14761 as an rtx.
14762 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
14763
14764 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
14765
14766 PR middle-end/48441
14767 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
14768
14769 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14770
14771 * combine.c: Include obstack.h.
14772 (struct insn_link): Define.
14773 (uid_log_links): Adjust type.
14774 (FOR_EACH_LOG_LINK): New macro.
14775 (insn_link_obstack): Declare.
14776 (alloc_insn_link): Define.
14777 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
14778 type of link variables.
14779 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
14780 (try_combine, record_promoted_values, distribute_notes): Likewise.
14781 (distribute_links): Likewise. Tweak prototype.
14782 (clear_log_links): Delete.
14783 (adjust_for_new_dest): Call alloc_insn_link.
14784 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
14785
14786 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14787
14788 * gcse.c (modify_mem_list): Convert to an array of VECs.
14789 (canon_modify_mem_list, compute_transp): Tweak formatting.
14790 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
14791 (load_killed_in_block_p): Likewise.
14792 (record_last_mem_set_info): Likewise.
14793 (clear_modify_mem_tables): Likewise.
14794
14795 2011-04-05 Tom de Vries <tom@codesourcery.com>
14796
14797 PR middle-end/48461
14798 * function.c (emit_use_return_register_into_block): Only define if
14799 HAVE_return.
14800
14801 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
14802
14803 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
14804
14805 2011-04-05 Joseph Myers <joseph@codesourcery.com>
14806
14807 * config/rx/rx-opts.h: New.
14808 * config/rx/rx.c (rx_cpu_type): Remove.
14809 (rx_handle_option): Don't assert that global structures are in
14810 use. Access variables via opts pointer. Defer most handling of
14811 OPT_mint_register_. Use error_at.
14812 (rx_option_override): Handle deferred OPT_mint_register_ here.
14813 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
14814 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
14815 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
14816 (rx_cpu_types): New Enum and EnumValue entries.
14817 (mint-register=): Use Defer and use Var accordingly.
14818
14819 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14820
14821 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
14822 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
14823 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
14824 Move these...
14825 (debug_free_queue, debug_nesting, symbol_queue_index):
14826 ...and these...
14827 * dbxout.c: ...to here. Make static.
14828
14829 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14830
14831 * gcse.c (modify_pair): Define. Define a VEC of it.
14832 (canon_modify_mem_list): Convert to an array of VECs.
14833 (free_insn_expr_list_list): Delete.
14834 (clear_modify_mem_tables): Call VEC_free instead.
14835 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
14836 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
14837 (canon_list_insert, compute_transp): Likewise.
14838
14839 2011-04-05 Tom de Vries <tom@codesourcery.com>
14840
14841 PR target/43920
14842 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
14843 for size.
14844
14845 2011-04-05 Tom de Vries <tom@codesourcery.com>
14846
14847 PR target/43920
14848 * function.c (emit_use_return_register_into_block): New function.
14849 (thread_prologue_and_epilogue_insns): Use
14850 emit_use_return_register_into_block.
14851
14852 2011-04-05 Tom de Vries <tom@codesourcery.com>
14853
14854 PR target/43920
14855 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
14856 insn.
14857
14858 2011-04-05 Tom de Vries <tom@codesourcery.com>
14859
14860 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
14861
14862 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
14863
14864 * config/arm/arm.md (define_constants for unspec): Replace with
14865 define_c_enum.
14866 (define_constants for unspecv): Replace with define_c_enum.
14867 * config/arm/neon.md (define_constants for unspec): Replace with
14868 define_c_enum.
14869
14870 2011-04-04 Richard Henderson <rth@redhat.com>
14871
14872 PR bootstrap/48400
14873 * dwarf2out.c (output_line_info): Always emit line info from
14874 at least one section.
14875 (dwarf2out_init): Create text_section_line_info here ...
14876 (set_cur_line_info_table): ... not here.
14877
14878 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
14879
14880 PR target/48380
14881 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
14882 not called.
14883
14884 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
14885
14886 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
14887
14888 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
14889 (expr_equiv_p): Remove.
14890 (insert_set_in_table): Look at <dest, src> pair instead of expr.
14891 (hash_scan_set): Update call to insert_set_in_table.
14892 (dump_hash_table): Dump <dest, src> pair.
14893 (lookup_set): Simplify. Lookup <dest, src> pair.
14894 (compute_transp): Remove, fold heavily simplified code into...
14895 (compute_local_properties): ...here. Expect COMP and TRANSP
14896 unconditionally.
14897 (find_avail_set): Take set directly from struct expr.
14898 (find_bypass-set): Likewise.
14899 (bypass_block): Likewise.
14900 (cprop_insn): Likewise. Remove redundant INSN_P test.
14901
14902 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
14903 checks on form of COND from find_implicit_sets to here.
14904 (find_implicit_sets): Cleanup control flow. Split critical edges
14905 if it exposes implicit sets. Allocate/resize implicit_sets as
14906 necessary.
14907 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
14908 changed something. Run df_analyze after find_implicit_sets if any
14909 edges were split. Do not allocate implicit_sets here.
14910
14911 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
14912 (gcse_obstack): Renamed to cprop_obstack.
14913 (GNEW, GNEWVEC, GNEWVAR): Remove.
14914 (gmalloc): Remove.
14915 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
14916 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
14917 (gcse_alloc): Likewise, and rename to cprop_alloc.
14918 (alloc_gcse_men, free_gcse_mem): Remove.
14919 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
14920 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
14921 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
14922
14923 * cprop.c (oprs_not_set_p): Remove.
14924 (mark_set, mark_clobber): Remove.
14925 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
14926 (reg_not_set_p): New function.
14927 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
14928 (cprop_insn): Likewise.
14929 (cprop_jump): Use FOR_EACH_EDGE.
14930
14931 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
14932
14933 PR bootstrap/48403
14934 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
14935 (rank_for_schedule): Use scheduled_insns vector instead of
14936 last_scheduled_insn.
14937 (ok_for_early_queue_removal): Likewise.
14938 (queue_to_ready): Search forward in nonscheduled_insns_begin if
14939 we have a dbg_cnt.
14940 (choose_ready): Likewise.
14941 (commit_schedule): Use VEC_iterate.
14942 (schedule_block): Initialize nonscheduled_insns_begin. If we have
14943 a dbg_cnt, use it and ensure the first insn is in the ready list.
14944 (haifa_sched_init): Allocate scheduled_insns.
14945 (sched_extend_ready_list): Don't allocate it; reserve space.
14946 (haifa_sched_finish): Free it.
14947
14948 2011-04-04 Joseph Myers <joseph@codesourcery.com>
14949
14950 * optc-gen.awk: Always remove type from Variable entry before
14951 recording in var_seen.
14952
14953 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
14954
14955 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
14956 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
14957 call to tidy_fallthru_edges.
14958
14959 2011-04-04 Joseph Myers <joseph@codesourcery.com>
14960
14961 * doc/options.texi (ToLower): Document.
14962 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
14963 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
14964 * opts.h (cl_option): Add cl_tolower field.
14965 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
14966 arguments with lowercase strings.
14967 * config/rx/rx.opt (mcpu=): Add ToLower.
14968 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
14969 argument.
14970
14971 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
14972
14973 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
14974
14975 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
14976
14977 * config/vax/vax.c: Include reload.h.
14978
14979 2011-04-04 Anatoly Sokolov <aesok@post.ru>
14980
14981 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
14982 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14983 (sparc_preferred_reload_class): New function.
14984
14985 2011-04-04 Jakub Jelinek <jakub@redhat.com>
14986
14987 PR debug/48401
14988 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14989 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
14990
14991 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
14992
14993 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
14994 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
14995
14996 2011-04-03 Anatoly Sokolov <aesok@post.ru>
14997
14998 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
14999 (ASM_OUTPUT_ALIGNED_BSS): Define.
15000
15001 2011-04-03 Michael Matz <matz@suse.de>
15002
15003 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15004 and next_slot members.
15005 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15006 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15007 (lto_streamer_cache_append): Declare.
15008 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15009 unsigned index, remove offset parameter, ensure that we append
15010 or update existing entries.
15011 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15012 parameter, update next_slot for append.
15013 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15014 parameter.
15015 (lto_streamer_cache_insert_at): Likewise.
15016 (lto_streamer_cache_append): New function.
15017 (lto_streamer_cache_lookup): Use unsigned index.
15018 (lto_streamer_cache_get): Likewise.
15019 (lto_record_common_node): Don't test tree_node_can_be_shared.
15020 (preload_common_node): Adjust call to lto_streamer_cache_insert.
15021 (lto_streamer_cache_delete): Don't free offsets member.
15022 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15023 (lto_output_string_with_length): Use lto_output_data_stream.
15024 (lto_output_tree_header): Remove ix parameter, don't write it.
15025 (lto_output_builtin_tree): Likewise.
15026 (lto_write_tree): Adjust callers to above, don't track and write
15027 offset, write unsigned index.
15028 (output_unreferenced_globals): Don't emit all global vars.
15029 (write_global_references): Use unsigned indices.
15030 (lto_output_decl_state_refs): Likewise.
15031 (write_symbol): Likewise.
15032 * lto-streamer-in.c (lto_input_chain): Move earlier.
15033 (input_function): Use unsigned index.
15034 (input_alias_pairs): Don't read and then ignore all global vars.
15035 (lto_materialize_tree): Remove ix_p parameter, don't read index,
15036 don't pass it back, use lto_streamer_cache_append.
15037 (lto_register_var_decl_in_symtab): Use unsigned index.
15038 (lto_register_function_decl_in_symtab): Likewise.
15039 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15040 index.
15041 (lto_get_builtin_tree): Don't read index, use
15042 lto_streamer_cache_append.
15043 (lto_read_tree): Adjust call to lto_materialize_tree.
15044
15045 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15046 don't use function calls in arguments to MIN.
15047
15048 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15049 twice.
15050
15051 * gimple.c (gimple_type_leader_entry): Mark deletable.
15052
15053 2011-04-03 Alan Modra <amodra@gmail.com>
15054
15055 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15056
15057 2011-04-03 Michael Matz <matz@suse.de>
15058
15059 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15060 an integer.
15061 * tree.h (tree_decl_non_common.vindex): Adjust comment.
15062
15063 2011-04-03 Michael Matz <matz@suse.de>
15064
15065 * cgraphbuild.c (record_reference): Canonicalize constructor values.
15066 * gimple-fold.c (canonicalize_constructor_val): Accept being called
15067 without function context.
15068 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15069 current_function_decl and cfun.
15070
15071 2011-04-03 Michael Matz <matz@suse.de>
15072
15073 * tree.c (decl_init_priority_insert): Don't create entry for
15074 default priority.
15075 (decl_fini_priority_insert): Ditto.
15076 (fields_compatible_p, find_compatible_field): Remove.
15077 * tree.h (fields_compatible_p, find_compatible_field): Remove.
15078 * gimple.c (gimple_compare_field_offset): Adjust block comment.
15079
15080 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
15081
15082 * combine.c (try_combine): Remove useless local variable.
15083
15084 2011-04-03 Richard Guenther <rguenther@suse.de>
15085 Ira Rosen <ira.rosen@linaro.org>
15086
15087 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15088 non-variable offsets and compare the remaining bases of the two
15089 accesses instead of looking for exact same data-ref.
15090
15091 2011-04-02 Kai Tietz <ktietz@redhat.com>
15092
15093 PR target/48416
15094 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15095
15096 * i386.c (ix86_is_msabi_thiscall): New helper function.
15097 (ix86_is_type_thiscall): New helper function.
15098 (ix86_comp_type_attributes): Handle thiscall for method-functions
15099 special.
15100 (init_cumulative_args): Likewise.
15101 (find_drap_reg): Likewise.
15102 (ix86_static_chain): Likewise.
15103 (x86_this_parameter): Likewise.
15104 (x86_output_mi_thunk): Likewise.
15105
15106 2011-04-01 Olivier Hainque <hainque@adacore.com>
15107 Nicolas Setton <setton@adacore.com>
15108 Eric Botcazou <ebotcazou@adacore.com>
15109
15110 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15111 (add_gnat_descriptive_type_attribute): New function.
15112 (gen_array_type_die): Call it.
15113 (gen_enumeration_type_die): Likewise.
15114 (gen_struct_or_union_type_die): Likewise.
15115 (modified_type_die): Likewise.
15116 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15117 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15118 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15119
15120 2011-04-01 Jakub Jelinek <jakub@redhat.com>
15121
15122 PR bootstrap/48148
15123 * dwarf2out.c (resolve_addr): Don't call force_decl_die
15124 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15125
15126 Revert:
15127 2011-03-17 Richard Guenther <rguenther@suse.de>
15128
15129 PR bootstrap/48148
15130 * lto-cgraph.c (input_overwrite_node): Clear the abstract
15131 origin for decls in other ltrans units.
15132 (input_varpool_node): Likewise.
15133
15134 2011-04-01 Jakub Jelinek <jakub@redhat.com>
15135
15136 PR middle-end/48335
15137 * expr.c (expand_assignment): Handle all possibilities
15138 if TO_RTX is CONCAT.
15139 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
15140 (store_split_bit_field): If SUBREG_REG (op0) or
15141 op0 itself has smaller mode than word, return it
15142 for offset 0 and const0_rtx for out-of-bounds stores.
15143 If word is const0_rtx, skip it.
15144
15145 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
15146
15147 * config/h8300/h8300.c (print_operand_address): Rename to...
15148 (h8300_print_operand_address): ...this. Make static. Adjust comments.
15149 Call h8300_print_operand and h8300_print_operand_address instead of
15150 print_operand and print_operand_address. Declare.
15151 (print_operand): Renake to...
15152 (h8300_print_operand): ...this. Make static. Adjust comments.
15153 Call h8300_print_operand instead of print_operand. Declare.
15154 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15155 (h8300_register_move_cost): Likewise.
15156 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15157 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15158 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15159 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15160 * config/h8300/h8300-protos.h (print_operand): Delete.
15161 (print_operand_address): Delete.
15162
15163 2011-04-01 Richard Henderson <rth@redhat.com>
15164
15165 PR 48400
15166 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15167 in strict mode before dwarf4. Re-order tests to early out
15168 before switching sections.
15169
15170 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
15171
15172 * config/h8300/constraints.md: New file.
15173 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
15174 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15175 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15176 * config/h8300/predicates.md (bit_operand): Likewise.
15177 (incdec_operand): Use satisfies_constraint_M and
15178 satisfies_constraint_O. Don't use C code block.
15179 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15180 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15181 (compute_mov_length): Use satisfies_constraint_G.
15182 (fix_bit_operand): Use satisfies_constraint_U.
15183 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15184 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15185 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15186 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15187 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15188 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15189 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15190 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15191 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15192 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15193 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15194 (EXTRA_MEMORY_CONSTRAINT): Delete.
15195
15196 2011-04-01 Andrew Pinski <pinskia@gmail.com>
15197 Michael Meissner <meissner@linux.vnet.ibm.com>
15198
15199 PR target/48262
15200 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15201 operands, as per the specifications.
15202
15203 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15204 (vec_extract_evenv4sf): Ditto.
15205 (vec_extract_evenv8hi): Ditto.
15206 (vec_extract_evenv16qi): Ditto.
15207 (vec_extract_oddv4si): Ditto.
15208
15209 2011-03-31 Mark Wielaard <mjw@redhat.com>
15210
15211 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15212 high_pc attribute if the CU has no associated code. Only output
15213 DW_AT_entry_pc for CU if not generating strict dwarf and
15214 dwarf_version < 4.
15215
15216 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
15217
15218 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15219 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15220 out of ...
15221 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15222 * final.c (final_start_function): Call the new function rather
15223 than using a NULL argument for dwarf2out_frame_debug.
15224
15225 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15226 that contains the prologue.
15227
15228 * haifa-sched.c (queue_insn): New arg REASON. All callers
15229 changed. Print it in debugging output.
15230
15231 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15232
15233 * sched-ebb.c (begin_schedule_ready): Remove second argument.
15234 Split most of the code into...
15235 (begin_move_insn): ... here. New function.
15236 (ebb_sched_info): Add a pointer to it.
15237 * haifa-sched.c (scheduled_insns): New static variable.
15238 (sched_extend_ready_list): Allocate it.
15239 (schedule_block): Use it to record the order of scheduled insns.
15240 Perform RTL changes to move insns only after all scheduling
15241 decisions have been made.
15242 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15243 begin_move_insn field.
15244 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15245 * sched-int.h (struct haifa_sched_info): Remove second argument
15246 from begin_schedule_ready hook. Add new member begin_move_insn.
15247 * sched-rgn.c (begin_schedule_ready): Remove second argument.
15248 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15249
15250 * haifa-sched.c (prune_ready_list): New function, broken out of
15251 schedule_block.
15252 (schedule_block): Use it.
15253
15254 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15255
15256 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15257
15258 2011-04-01 Kai Tietz <ktietz@redhat.com>
15259
15260 * config.gcc (*-*-mingw*): Allow as option the
15261 posix threading model.
15262 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
15263 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15264 definition.
15265 (CPP_SPEC): Add pthread/no-pthread handling.
15266 (LIB_SPEC): Likewise.
15267 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15268 (LIB_SPEC): Likewise.
15269 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15270 flag to pass -pthread option for shared libgcc build.
15271 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15272 for shared libgcc build.
15273 * config/i386/t-mingw-pthread: New file.
15274 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15275 New define to enable use of library pthread by default.
15276 * config/i386/mingw.opt (pthread): New driver option.
15277 (no-pthread): New driver option.
15278 * config/i386/cygming.opt: Make sure trailing empty line is retained.
15279 * config/i386/mingw-w64.opt: Likewise.
15280
15281 2011-04-01 Gary Funck <gary@intrepid.com>
15282
15283 * c-decl.c (grokdeclarator): Fix formatting.
15284
15285 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15286
15287 * expr.c (emit_block_move_via_movmem): Use n_generator_args
15288 instead of n_operands.
15289 (set_storage_via_setmem): Likewise.
15290 * optabs.c (maybe_gen_insn): Likewise.
15291 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15292 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15293 (mips_expand_builtin_direct): Likewise.
15294 * config/spu/spu.c (expand_builtin_args): Likewise.
15295
15296 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15297
15298 * recog.h (insn_data_d): Add n_generator_args.
15299 * genoutput.c (data): Likewise.
15300 (output_insn_data): Print it.
15301 (max_opno, num_dups): Delete.
15302 (scan_operands): Just fill in "d->operand[...]".
15303 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15304
15305 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15306
15307 * gensupport.h (pattern_stats): New structure.
15308 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15309 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15310 (max_operand_1, max_operand_vec): Delete.
15311 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15312
15313 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
15314
15315 * emit-rtl.c (emit_pattern_after_setloc): New function.
15316 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15317 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15318 (emit_pattern_after): New function.
15319 (emit_insn_after, emit_jump_insn_after): Call it.
15320 (emit_call_insn_after, emit_debug_insn_after): Likewise.
15321 (emit_pattern_before_setloc): New function.
15322 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15323 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15324 Likewise.
15325 (emit_pattern_before): New function.
15326 (emit_insn_before, emit_jump_insn_before): Call it.
15327 (emit_call_insn_before, emit_debug_insn_before): Likewise.
15328
15329 2011-03-31 Richard Henderson <rth@redhat.com>
15330
15331 * dwarf2out.c (dw_separate_line_info_ref): Remove.
15332 (dw_separate_line_info_entry): Remove.
15333 (enum dw_line_info_opcode): New.
15334 (dw_line_info_entry): Use it.
15335 (dw_line_info_table, dw_line_info_table_p): New.
15336 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15337 (line_info_table, line_info_label_num): Remove.
15338 (line_info_table_in_use): Remove.
15339 (separate_line_info_table): Remove.
15340 (separate_line_info_table_allocated): Remove.
15341 (separate_line_info_table_in_use): Remove.
15342 (LINE_INFO_TABLE_INCREMENT): Remove.
15343 (line_info_label_num): New.
15344 (cur_line_info_table): New.
15345 (text_section_line_info, cold_text_section_line_info): New.
15346 (separate_line_info): New.
15347 (SEPARATE_LINE_CODE_LABEL): Remove.
15348 (print_dwarf_line_table): Remove.
15349 (debug_dwarf): Don't dump it.
15350 (output_one_line_info_table): New.
15351 (output_line_info): Use it.
15352 (new_line_info_table): New.
15353 (set_cur_line_info_table): New.
15354 (dwarf2out_switch_text_section): Use it.
15355 (dwarf2out_begin_function): Likewise.
15356 (push_dw_line_info_entry): New.
15357 (dwarf2out_source_line): Rewrite for new line info tables.
15358 (dwarf2out_init): Remove dead initailizations.
15359
15360 2011-03-31 Joseph Myers <joseph@codesourcery.com>
15361
15362 * opts.h (cl_option): Add comments to fields. Add bit-fields for
15363 various flags.
15364 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15365 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15366 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15367 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15368 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15369 * opt-functions.awk (flag_init, switch_bit_fields): New.
15370 (switch_flags): Don't handle flags moved to bit-fields. Don't
15371 generate CL_MISSING_OK or CL_SAVE.
15372 * optc-gen.awk: Update to generate bit-field output as well as
15373 flags field.
15374 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15375 bit-field instead of CL_REJECT_DRIVER flag.
15376 * opts-common.c (generate_canonical_option,
15377 decode_cmdline_option): Use bit-fields instead of CL_* flags.
15378 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15379 instead of CL_REJECT_NEGATIVE flag.
15380 * toplev.c (print_switch_values): Use cl_report bit-field instead
15381 of CL_REPORT flag.
15382
15383 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15384
15385 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
15386 a zero minimum index only if it is redundant.
15387
15388 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
15389
15390 PR rtl-optimization/48381
15391 * ira-color.c (assign_hard_reg): Use hard reg set intersection
15392 instead of ira_class_hard_reg_index for calculating conflicting
15393 hard registers.
15394
15395 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
15396
15397 * cprop.c: Clean up hash table building.
15398 (reg_avail_info): Remove.
15399 (oprs_available_p): Remove.
15400 (record_last_reg_set_info): Remove.
15401 (record_last_set_info): Remove.
15402 (reg_available_p): New function.
15403 (gcse_constant_p): Do not treat unfolded conditions as constants.
15404 (make_set_regs_unavailable): New function.
15405 (hash_scan_set): Simplify with new reg_available_p.
15406 (compute_hash_table_work): Traverse insns stream only once.
15407 Do not compute reg_avail_info. Traverse insns in reverse order.
15408 Record implicit sets after recording explicit sets from the block.
15409
15410 2011-03-31 Michael Matz <matz@suse.de>
15411
15412 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
15413
15414 2011-03-31 Anatoly Sokolov <aesok@post.ru>
15415
15416 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
15417 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
15418 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15419 (h8300_mode_dependent_address_p): New function.
15420 (h8300_get_index): Make static.
15421
15422 2011-03-31 Jeff Law <law@redhat.com>
15423
15424 * reload1.c (elimination_effects): Fix typo in recent change.
15425
15426 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
15427 typo potentially leading to null pointer dereference.
15428
15429 * caller-save.c (new_saved_hard_reg): Eliminate return value.
15430 (setup_save_areas): Corresponding changes to avoid useless
15431 assignments.
15432
15433 * jump.c (reversed_comparison_code_parts): Avoid successive return
15434 statements when REVERSE_CONDITION is defined.
15435
15436 * expr.c (expand_assignment): Avoid useless assignments.
15437 (expand_expr_real_1): Likewise.
15438 (expand_expr_real_2): Avoid useless statements.
15439
15440 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15441
15442 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15443
15444 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15445 statements.
15446
15447 * stmt.c (expand_expr_stmt): Avoid useless assignment.
15448
15449 2011-03-31 Joseph Myers <joseph@codesourcery.com>
15450
15451 PR target/47109
15452 * doc/tm.texi.in (TARGET_VERSION): Remove.
15453 * doc/tm.texi: Regenerate.
15454 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15455 * collect2.c (main): Don't use TARGET_VERSION.
15456 * mips-tdump.c (main): Don't use TARGET_VERSION.
15457 * mips-tfile.c (main): Don't use TARGET_VERSION.
15458 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
15459 * config/rs6000/vxworksae.h: Remove.
15460 * config/alpha/alpha.h (TARGET_VERSION): Remove.
15461 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15462 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15463 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15464 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15465 * config/arm/arm.h (TARGET_VERSION): Remove.
15466 * config/arm/coff.h (TARGET_VERSION): Remove.
15467 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15468 * config/arm/elf.h (TARGET_VERSION): Remove.
15469 * config/arm/freebsd.h (TARGET_VERSION): Remove.
15470 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15471 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15472 * config/arm/pe.h (TARGET_VERSION): Remove.
15473 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15474 * config/arm/semi.h (TARGET_VERSION): Remove.
15475 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15476 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15477 * config/arm/vxworks.h (TARGET_VERSION): Remove.
15478 * config/avr/avr.h (TARGET_VERSION): Remove.
15479 * config/bfin/bfin.h (TARGET_VERSION): Remove.
15480 * config/fr30/fr30.h (TARGET_VERSION): Remove.
15481 * config/frv/frv.h (TARGET_VERSION): Remove.
15482 * config/h8300/h8300.h (TARGET_VERSION): Remove.
15483 * config/i386/cygwin.h (TARGET_VERSION): Remove.
15484 * config/i386/darwin.h (TARGET_VERSION): Remove.
15485 * config/i386/darwin64.h (TARGET_VERSION): Remove.
15486 * config/i386/djgpp.h (TARGET_VERSION): Remove.
15487 * config/i386/freebsd.h (TARGET_VERSION): Remove.
15488 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15489 * config/i386/gnu.h (TARGET_VERSION): Remove.
15490 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15491 * config/i386/i386elf.h (TARGET_VERSION): Remove.
15492 * config/i386/linux.h (TARGET_VERSION): Remove.
15493 * config/i386/linux64.h (TARGET_VERSION): Remove.
15494 * config/i386/lynx.h (TARGET_VERSION): Remove.
15495 * config/i386/mingw32.h (TARGET_VERSION): Remove.
15496 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15497 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15498 * config/i386/netware.h (TARGET_VERSION): Remove.
15499 * config/i386/nto.h (TARGET_VERSION): Remove.
15500 * config/i386/openbsd.h (TARGET_VERSION): Remove.
15501 * config/i386/vxworks.h (TARGET_VERSION): Remove.
15502 * config/ia64/elf.h (TARGET_VERSION): Remove.
15503 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15504 * config/ia64/hpux.h (TARGET_VERSION): Remove.
15505 * config/ia64/linux.h (TARGET_VERSION): Remove.
15506 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15507 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15508 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15509 * config/lm32/lm32.h (TARGET_VERSION): Remove.
15510 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15511 * config/m32c/m32c.h (TARGET_VERSION): Remove.
15512 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15513 * config/m32r/m32r.h (TARGET_VERSION): Remove.
15514 * config/m68k/linux.h (TARGET_VERSION): Remove.
15515 * config/m68k/m68k.h (TARGET_VERSION): Remove.
15516 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15517 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15518 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15519 * config/mep/mep.h (TARGET_VERSION): Remove.
15520 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15521 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15522 * config/mips/iris6.h (MACHINE_TYPE): Remove.
15523 * config/mips/linux.h (TARGET_VERSION): Remove.
15524 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15525 * config/mips/vxworks.h (TARGET_VERSION): Remove.
15526 * config/mmix/mmix.h (TARGET_VERSION): Remove.
15527 * config/mn10300/linux.h (TARGET_VERSION): Remove.
15528 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15529 * config/pa/pa.h (TARGET_VERSION): Remove.
15530 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15531 * config/picochip/picochip.h (TARGET_VERSION): Remove.
15532 * config/rs6000/aix.h (TARGET_VERSION): Remove.
15533 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15534 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15535 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15536 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15537 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15538 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15539 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15540 * config/rs6000/linux.h (TARGET_VERSION): Remove.
15541 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15542 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15543 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15544 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15545 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15546 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15547 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15548 * config/s390/linux.h (TARGET_VERSION): Remove.
15549 * config/s390/s390.h (TARGET_VERSION): Remove.
15550 * config/s390/tpf.h (TARGET_VERSION): Remove.
15551 * config/score/score.h (TARGET_VERSION): Remove.
15552 * config/sh/linux.h (TARGET_VERSION): Remove.
15553 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15554 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15555 * config/sh/sh.h (TARGET_VERSION): Remove.
15556 * config/sh/sh64.h (TARGET_VERSION): Remove.
15557 * config/sh/superh.h (TARGET_VERSION): Remove.
15558 * config/sh/vxworks.h (TARGET_VERSION): Remove.
15559 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15560 * config/sparc/linux.h (TARGET_VERSION): Remove.
15561 * config/sparc/linux64.h (TARGET_VERSION): Remove.
15562 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15563 TARGET_NAME32, TARGET_NAME): Remove.
15564 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15565 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15566 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15567 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15568 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15569 * config/spu/spu.h (TARGET_VERSION): Remove.
15570 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15571 * config/v850/v850.h (TARGET_VERSION): Remove.
15572 * config/vax/linux.h (TARGET_VERSION): Remove.
15573 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15574 * config/xtensa/elf.h (TARGET_VERSION): Remove.
15575 * config/xtensa/linux.h (TARGET_VERSION): Remove.
15576
15577 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15578
15579 PR target/48142
15580 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15581 frame-related from frame-unrelated adjustments to the stack pointer.
15582
15583 2011-03-31 Jakub Jelinek <jakub@redhat.com>
15584
15585 * common.opt (fdebug-types-section): Move earlier.
15586 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15587
15588 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
15589
15590 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15591 var.
15592
15593 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
15594
15595 * tree.h (CASE_CHAIN): Define.
15596 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15597 (gimple_redirect_edge_and_branch): Likewise.
15598
15599 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15600
15601 PR middle-end/48367
15602 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15603 calculation.
15604
15605 2011-03-30 Jeff Law <law@redhat.com>
15606
15607 * PR bootstrap/48371
15608 * reload1.c (reload): Fix botch in last change.
15609
15610 * reload.h (struct reload): Fix typo introduced in last change.
15611
15612 2011-03-30 Joseph Myers <joseph@codesourcery.com>
15613
15614 * config/arm/arm.opt (mhard-float, msoft-float): Mark
15615 Undocumented. Remove help text.
15616 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15617 -mhard-float.
15618
15619 2011-03-30 Joseph Myers <joseph@codesourcery.com>
15620
15621 * doc/options.texi (NegativeAlias): Document.
15622 (Alias): Mention NegativeAlias.
15623 * opt-functions.awk: Handle NegativeAlias.
15624 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
15625 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15626 * opts.h (CL_NEGATIVE_ALIAS): Define.
15627 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15628 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15629 OPT_mspe_.
15630 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15631 Alias entries.
15632 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15633 mno-spe and mno-isel instead of mspe=no and -misel=no.
15634
15635 2011-03-29 Mark Wielaard <mjw@redhat.com>
15636
15637 * common.opt (fdebug-types-section): New flag.
15638 * doc/invoke.texi: Document new -fno-debug-types-section flag.
15639 * dwarf2out.c (use_debug_types): New define.
15640 (struct die_struct): Mark die_id with GTY desc use_debug_types.
15641 (print_die): Guard output of type unit signatures using
15642 use_debug_types.
15643 (build_abbrev_table): Replace assert of dwarf_version >= 4
15644 with assert on use_debug_types.
15645 (size_of_die): Likewise.
15646 (unmark_dies): Likewise.
15647 (value_format): Decide AT_ref_external form on use_debug_types.
15648 (output_die): Replace dwarf_version version check guard with
15649 use_debug_types where appropriate.
15650 (modified_type_die): Likewise.
15651 (gen_reference_type_die): Likewise.
15652 (dwarf2out_start_source_file): Likewise.
15653 (dwarf2out_end_source_file): Likewise.
15654 (prune_unused_types_walk_attribs): Likewise.
15655 (dwarf2out_finish): Likewise.
15656
15657 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15658
15659 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15660
15661 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15662
15663 PR rtl-optimization/48332
15664 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15665 mode of input operand N and modeN to its actual mode.
15666
15667 2011-03-30 Jeff Law <law@redhat.com>
15668
15669 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15670 define accessor macro.
15671 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15672 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15673 (reg_equiv_init): Likewise.
15674 (reg_equivs_size): New variable.
15675 (reg_equiv_init_size): Remove.
15676 (allocate_initial_values): Move prototype to here from....
15677 * integrate.h (allocate_initial_values): Remove prototype.
15678 * integrate.c: Include reload.h.
15679 (allocate_initial_values): Corresponding changes.
15680 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15681 (fix_reg_equiv_init, no_equiv): Corresponding changes.
15682 (update_equiv_regs): Corresponding changes.
15683 (ira): Corresponding changes.
15684 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15685 (push_secondary_reload): Corresponding changes.
15686 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15687 (make_memloc, find_reloads_address): Corresponding changes.
15688 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
15689 (find_reloads_address_1): Corresponding changes.
15690 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
15691 (refers_to_regno_for_reload_p): Corresponding changes.
15692 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
15693 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
15694 * reload1.c: Include ggc.h.
15695 (grow_reg_equivs): New function.
15696 (replace_pseudos_in, reload): Corresponding changes.
15697 (calculate_needs_all_insns, alter_regs): Corresponding changes.
15698 (eliminate_regs_1, elimination_effects): Corresponding changes.
15699 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
15700 (delete_output_reload): Likewise.
15701 * caller-save.c (mark_referenced_regs): Corresponding changes.
15702 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
15703 * frv/predicates.md (frv_load_operand): Corresponding changes.
15704 * microblaze/microblaze.c (double_memory_operand): Corresponding
15705 changes.
15706 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
15707 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
15708 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
15709 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
15710 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
15711 changes.
15712 * pa/pa.c (emit_move_sequence): Corresponding changes.
15713 * vax/vax.c (nonindexed_address_p): Corresponding changes.
15714
15715 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15716
15717 PR target/47551
15718 * config/arm/arm.c (coproc_secondary_reload_class): Handle
15719 structure modes. Don't check neon_vector_mem_operand for
15720 vector or structure modes.
15721
15722 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15723 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15724
15725 PR target/43590
15726 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
15727 operand 1 and reshuffle the operands to match.
15728 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
15729
15730 2011-03-30 Christian Schüler <cschueler@gmx.de>
15731
15732 PR driver/48208
15733 * config/c.opt (F): Added 'Driver' to -F option.
15734
15735 PR driver/48260
15736 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15737 handler function.
15738 * config/darwin.opt: Added '-arch' option.
15739
15740 2011-03-30 Nick Clifton <nickc@redhat.com>
15741
15742 * config/rx/rx.md: Add peepholes and patterns to combine
15743 extending loads and simple arithmetic instructions.
15744 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
15745 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
15746 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
15747 modes to use pre-decrement and post-increment addressing.
15748 (rx_is_restricted_memory_address): Add range checking of REG+INT
15749 addresses.
15750 (rx_print_operand): Add support for %Q. Fix handling of %Q.
15751 (rx_memory_move_cost): Adjust cost of stores.
15752 (rx_adjust_insn_length): New function.
15753
15754 2011-03-30 Jakub Jelinek <jakub@redhat.com>
15755
15756 PR c/48305
15757 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
15758 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
15759 matching arg00/arg01 types.
15760
15761 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
15762
15763 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
15764 last_location to UNKNOWN_LOCATION.
15765
15766 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
15767
15768 PR target/48349
15769 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
15770 FLOAT_SSE_REGS.
15771
15772 2011-03-30 Joseph Myers <joseph@codesourcery.com>
15773 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15774
15775 PR bootstrap/48337
15776 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
15777 Init(PROCESSOR_V7).
15778 (sparc_cpu): Likewise.
15779 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
15780 PROCESSOR_V7.
15781
15782 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15783
15784 PR target/48336
15785 PR middle-end/48342
15786 PR rtl-optimization/48345
15787 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
15788 hard regs for given mode from profitable regs when doing secondary
15789 allocation.
15790
15791 2011-03-29 Jeff Law <law@redhat.com>
15792
15793 PR bootstrap/48327
15794 * tree-ssa-threadupdate.c (struct redirection_data): Remove
15795 do_not_duplicate field.
15796 (lookup_redirection_data): Corresponding changes.
15797 (create_duplicates): Always create a template block.
15798 (redirect_edges): Remove code which reused the original block
15799 when it was going to become unreachable code.
15800 (thread_block): Don't set do_not_duplicate field.
15801
15802 2011-03-29 Joseph Myers <joseph@codesourcery.com>
15803
15804 * lto-opts.c (register_user_option_p, lto_register_user_option):
15805 Make type argument unsigned.
15806 * lto-streamer.h (lto_register_user_option): Make type argument
15807 unsigned.
15808 * opth-gen.awk: Make CL_* macros unsigned.
15809 * opts-common.c (find_opt): Make lang_mask argument unsigned.
15810 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
15811 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
15812 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
15813 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
15814 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
15815 (find_opt): Make lang_mask argument unsigned.
15816
15817 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15818
15819 PR rtl-optimization/48331
15820 PR rtl-optimization/48334
15821 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
15822 for any used algorithm.
15823
15824 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15825
15826 * ira-conflicts.c (build_object_conflicts): Add unused attribute
15827 to parent_max.
15828
15829 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
15830
15831 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
15832 (alpha_option_override): Don't set alpha_sr_alias_set.
15833 (emit_frame_store_1): Use gen_frame_mem rather than calling
15834 set_mem_alias_set.
15835 (alpha_expand_epilogue): Ditto.
15836
15837 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
15838
15839 PR tree-optimization/48290
15840 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
15841 vectorization, check that relevant phis in the basic block after
15842 the inner loop are really inner loop's exit phis.
15843
15844 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
15845
15846 PR debug/48190
15847 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
15848 (cached_dw_loc_list_def): New structure.
15849 (cached_dw_loc_list): New typedef.
15850 (cached_dw_loc_list_table): New variable.
15851 (cached_dw_loc_list_table_hash): New function.
15852 (cached_dw_loc_list_table_eq): Likewise.
15853 (add_location_or_const_value_attribute): Take a bool cache_p.
15854 Cache the list when the parameter is true.
15855 (gen_formal_parameter_die): Update caller.
15856 (gen_variable_die): Likewise.
15857 (dwarf2out_finish): Likewise.
15858 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
15859 while generating debug info for the decl.
15860 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
15861 (dwarf2out_init): Initialize cached_dw_loc_list_table.
15862 (resolve_addr): Cache the result of resolving a chain of
15863 location lists.
15864
15865 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
15866
15867 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
15868 conflict object hard regset nodes have intersecting hard reg sets.
15869
15870 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
15871 after regstat_init_n_sets_and_refs.
15872
15873 * ira.c: Add more comments at the top.
15874 (setup_stack_reg_pressure_class, setup_pressure_classes):
15875 Add comments how we compute the register pressure classes.
15876 (setup_allocno_and_important_classes): Add more comments.
15877 (setup_class_translate_array, reorder_important_classes)
15878 (setup_reg_class_relations): Add comments.
15879
15880 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
15881 start of the file.
15882
15883 * ira-color.c: Add 2011 to the Copyright line.
15884 (assign_hard_reg): Add more comments.
15885 (improve_allocation): Ditto.
15886
15887 * ira-costs.c: Add 2011 to the Copyright line.
15888 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
15889 comments.
15890 (setup_regno_cost_classes_by_mode): Ditto.
15891
15892 Initial patches from ira-improv branch:
15893
15894 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
15895
15896 * ira-build.c (ira_create_object): Remove initialization of
15897 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
15898 (ira_create_allocno): Remove initialization of
15899 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
15900 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
15901 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15902 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
15903 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
15904 Initialize ALLOCNO_ADD_DATA.
15905 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
15906 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
15907 ALLOCNO_REG.
15908 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
15909 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
15910
15911 * ira.c (ira_reallocate): Remove.
15912 (setup_pressure_classes): Call
15913 ira_init_register_move_cost_if_necessary. Use
15914 ira_register_move_cost instead of ira_get_register_move_cost.
15915 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
15916 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
15917
15918 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
15919 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15920 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
15921 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
15922 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
15923 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
15924 Fix formatting.
15925 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
15926 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15927 (struct allocno_color_data): New.
15928 (allocno_color_data_t): New typedef.
15929 (allocno_color_data): New definition.
15930 (ALLOCNO_COLOR_DATA): New macro.
15931 (struct object_color_data): New.
15932 (object_color_data_t): New typedef.
15933 (object_color_data): New definition.
15934 (OBJECT_COLOR_DATA): New macro.
15935 (update_copy_costs, calculate_allocno_spill_cost): Call
15936 ira_init_register_move_cost_if_necessary. Use
15937 ira_register_move_cost instead of ira_get_register_move_cost.
15938 (move_spill_restore, update_curr_costs): Ditto.
15939 (allocno_spill_priority): Make it inline.
15940 (color_pass): Allocate and free allocno_color_dat and object_color_data.
15941 (struct coalesce_data, coalesce_data_t): New.
15942 (allocno_coalesce_data): New definition.
15943 (ALLOCNO_COALESCE_DATA): New macro.
15944 (merge_allocnos, coalesced_allocno_conflict_p): Use
15945 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
15946 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
15947 (coalesce_allocnos): Ditto.
15948 (setup_coalesced_allocno_costs_and_nums): Ditto.
15949 (collect_spilled_coalesced_allocnos): Ditto.
15950 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
15951 (setup_slot_coalesced_allocno_live_ranges): Ditto.
15952 (coalesce_spill_slots): Ditto.
15953 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
15954 free allocno_coalesce_data.
15955
15956 * ira-conflicts.c: Fix formatting.
15957 (process_regs_for_copy): Call
15958 ira_init_register_move_cost_if_necessary. Use
15959 ira_register_move_cost instead of ira_get_register_move_cost.
15960 (build_object_conflicts): Optimize.
15961
15962 * ira-costs.c (record_reg_classes): Optimize. Call
15963 ira_init_register_move_cost_if_necessary. Use
15964 ira_register_move_cost, ira_may_move_in_cost, and
15965 ira_may_move_out_cost instead of ira_get_register_move_cost and
15966 ira_get_may_move_cost.
15967 (record_address_regs): Ditto.
15968 (scan_one_insn): Optimize.
15969 (find_costs_and_classes): Optimize.
15970 (process_bb_node_for_hard_reg_moves): Call
15971 ira_init_register_move_cost_if_necessary. Use
15972 ira_register_move_cost instead of ira_get_register_move_cost.
15973
15974 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
15975 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
15976 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
15977 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
15978 definitions.
15979 (ira_initiate_emit_data, ira_finish_emit_data)
15980 (create_new_allocno): New functions.
15981 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
15982 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
15983 Use ira_register_move_cost instead of ira_get_register_move_cost.
15984
15985 * ira-int.h: Fix some comments.
15986 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
15987 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15988 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
15989 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
15990 add_data.
15991 (struct ira_allocno): Make mode and aclass a bitfield. Move other
15992 bitfield after mode. Make hard_regno a short int. Make
15993 hard_regno short. Remove first_coalesced_allocno and
15994 next_coalesced_allocno. Move mem_optimized_dest_p,
15995 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
15996 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
15997 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
15998 temp, colorable_p. Add new member add_data.
15999 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16000 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16001 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16002 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16003 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16004 (ALLOCNO_ADD_DATA): New macro.
16005 (ira_emit_data_t): New typedef.
16006 (struct ira_emit_data): New. Move mem_optimized_dest_p,
16007 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16008 from struct ira_allocno.
16009 (ALLOCNO_EMIT_DATA): New macro.
16010 (ira_allocno_emit_data, allocno_emit_reg): New.
16011 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
16012 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
16013 (OBJECT_ADD_DATA): New macro.
16014 (ira_reallocate): Remove.
16015 (ira_initiate_emit_data, ira_finish_emit_data): New.
16016 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16017 (ira_init_register_move_cost_if_necessary): New.
16018 (ira_object_conflict_iter_next): Merge into
16019 ira_object_conflict_iter_cond.
16020 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
16021
16022 * ira-live.c (process_single_reg_class_operands): Call
16023 ira_init_register_move_cost_if_necessary. Use
16024 ira_register_move_cost instead of ira_get_register_move_cost.
16025
16026 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16027
16028 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16029
16030 * ira-costs.c: Fix formatting.
16031 (cost_classes, cost_classes_num): Remove.
16032 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16033 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16034 (cost_classes_del, cost_classes_htab): New.
16035 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16036 (initiate_regno_cost_classes, setup_cost_classes): New.
16037 (setup_regno_cost_classes_by_aclass): New.
16038 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
16039 (record_reg_classes): Use regno_cost_classes instead of
16040 cost_classes. Move checking opposite operand up.
16041 (record_address_regs): Use regno_cost_classes
16042 instead of cost_classes.
16043 (scan_one_insn): Ditto. Use always general register.
16044 (print_allocno_costs): Use regno_cost_classes instead of
16045 cost_classes.
16046 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
16047 (find_costs_and_classes): Set up cost classes for each registers.
16048 Use also their mode for this. Use regno_cost_classes instead of
16049 cost_classes.
16050 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16051 cost_classes.
16052 (free_ira_costs, ira_init_costs): Don't use cost_classes.
16053 (ira_costs, ira_set_pseudo_classes): Call
16054 initiate_regno_cost_classes and finish_regno_cost_classes.
16055
16056 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
16057
16058 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16059
16060 * target.def (ira_cover_classes): Remove.
16061
16062 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
16063
16064 * doc/tm.texi.in: Ditto.
16065
16066 * ira-conflicts.c: Remove mentioning cover classes from the file.
16067 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
16068 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
16069
16070 * targhooks.c (default_ira_cover_classes): Remove.
16071
16072 * targhooks.h (default_ira_cover_classes): Ditto.
16073
16074 * haifa-sched.c: Remove mentioning cover classes from the file.
16075 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16076 ira_pressure_classes and ira_pressure_classes_num instead of
16077 ira_reg_class_cover_size and ira_reg_class_cover. Use
16078 sched_regno_pressure_class instead of sched_regno_cover_class.
16079 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16080 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16081
16082 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
16083 classes from the file.
16084 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16085 (struct object_hard_regs, struct object_hard_regs_node): New.
16086 (struct ira_object): New members profitable_hard_regs,
16087 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16088 (struct ira_allocno): Rename cover_class to aclass. Rename
16089 cover_class_cost and updated_cover_class_cost to class_cost and
16090 updated_class_cost. Remove splay_removed_p and
16091 left_conflict_size. Add new members colorable_p.
16092 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16093 (ALLOCNO_COLORABLE_P): New macro.
16094 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16095 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16096 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16097 (OBJECT_...): Rename parameter C to O.
16098 (OBJECT_PROFITABLE_HARD_REGS): New macro.
16099 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16100 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16101 (struct target_ira_int): New members x_ira_max_memory_move_cost,
16102 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16103 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16104 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16105 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
16106 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
16107 x_ira_reg_class_subunion.
16108 (ira_max_memory_move_cost, ira_max_register_move_cost)
16109 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16110 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16111 (ira_important_class_nums, ira_reg_class_superunion): New macros.
16112 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
16113 (ira_reg_class_union): Rename to ira_reg_class_subunion.
16114 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16115 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16116 (ira_tune_allocno_costs_and_cover_classes): Rename to
16117 ira_tune_allocno_costs.
16118 (ira_debug_hard_regs_forest): New.
16119 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16120 (ira_object_conflict_iter_next): Fix comments.
16121 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
16122 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16123 cover_class to aclass.
16124 (ira_allocate_and_accumulate_costs): Ditto.
16125 (ira_allocate_and_set_or_copy_costs): Ditto.
16126
16127 * opts.c (decode_options): Remove ira_cover_class check.
16128
16129 * ira-color.c: Remove mentioning cover classes from the file. Use
16130 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16131 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16132 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16133 (splay-tree.h): Remove include.
16134 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16135 before copy_freq_compare_func.
16136 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16137 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16138 New definitions.
16139 (hard_regs_roots, hard_regs_node_vec): Ditto.
16140 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16141 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16142 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16143 (create_new_object_hard_regs_node): Ditto.
16144 (add_new_object_hard_regs_node_to_forest): Ditto.
16145 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
16146 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16147 Ditto.
16148 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16149 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16150 (remove_unused_object_hard_regs_nodes): Ditto.
16151 (enumerate_object_hard_regs_nodes): Ditto.
16152 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16153 (object_hard_regs_subnode_t): Ditto.
16154 (struct object_hard_regs_subnode): Ditto.
16155 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16156 (setup_object_hard_regs_subnode_index): Ditto.
16157 (get_object_hard_regs_subnodes_num): Ditto.
16158 (form_object_hard_regs_nodes_forest): Ditto.
16159 (finish_object_hard_regs_nodes_tree): Ditto.
16160 (finish_object_hard_regs_nodes_forest): Ditto.
16161 (allocnos_have_intersected_live_ranges_p): Rename to
16162 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16163 (pseudos_have_intersected_live_ranges_p): Rename to
16164 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16165 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16166 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16167 (update_copy_costs): Remove assert. Skip cost update if the hard
16168 reg does not belong the class.
16169 (assign_hard_reg): Process only profitable hard regs.
16170 (uncolorable_allocnos_num): Make it scalar.
16171 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16172 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16173 and ira_reg_class_max_nregs.
16174 (bucket_allocno_compare_func): Check frequency first.
16175 (sort_bucket): Add compare function as a parameter.
16176 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16177 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16178 (push_allocno_to_stack): Rewrite for checking new allocno
16179 colorability.
16180 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
16181 (push_only_colorable): Pass new parameter to sort_bucket.
16182 (push_allocno_to_spill): Remove.
16183 (allocno_spill_priority_compare): Make it inline and rewrite.
16184 (splay_tree_allocate, splay_tree_free): Remove.
16185 (allocno_spill_sort_compare): New function.
16186 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
16187 build and use splay tree. Choose first allocno in uncolorable
16188 allocno bucket to spill. Remove setting spill cost.
16189 (all_conflicting_hard_regs): Remove.
16190 (setup_allocno_available_regs_num): Check only profitable hard
16191 regs. Print info about hard regs nodes.
16192 (setup_allocno_left_conflicts_size): Remove.
16193 (put_allocno_into_bucket): Don't call
16194 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
16195 (improve_allocation): New.
16196 (color_allocnos): Call setup_profitable_hard_regs,
16197 form_object_hard_regs_nodes_forest, improve_allocation,
16198 finish_object_hard_regs_nodes_forest. Setup spill cost.
16199 (print_loop_title): Use pressure classes.
16200 (color_allocnso): Ditto.
16201 (do_coloring): Remove allocation and freeing splay_tree_node_pool
16202 and allocnos_for_spilling.
16203 (ira_sort_regnos_for_alter_reg): Don't setup members
16204 {first,next}_coalesced_allocno.
16205 (color): Remove allocating and freeing removed_splay_allocno_vec.
16206 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16207 prohibited_class_mode_regs.
16208
16209 * ira-lives.c: Remove mentioning cover classes from the file. Fix
16210 formatting.
16211 (update_allocno_pressure_excess_length): Use pressure classes.
16212 (inc_register_pressure, dec_register_pressure): Check for pressure
16213 class.
16214 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16215 pressure class. Use ira_reg_class_nregs instead of
16216 ira_reg_class_max_nregs.
16217 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16218 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16219 (single_reg_class): Use ira_reg_class_nregs instead of
16220 ira_reg_class_max_nregs.
16221 (process_bb_node_lives): Use pressure classes.
16222
16223 * ira-emit.c: Remove mentioning cover classes from the file. Use
16224 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
16225 (change_loop): Use pressure classes.
16226 (modify_move_list): Call ira_set_allocno_class instead of
16227 ira_set_allocno_cover_class.
16228
16229 * ira-build.c: Remove mentioning cover classes from the file. Use
16230 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16231 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
16232 ALLOCNO_UPDATED_CLASS_COST instead of
16233 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16234 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16235 (ira_create_allocno): Remove initialization of
16236 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
16237 ALLOCNO_COLORABLE_P.
16238 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16239 Update conflict regs for the objects.
16240 (create_cap_allocno): Remove assert. Don't propagate
16241 ALLOCNO_AVAILABLE_REGS_NUM.
16242 (ira_free_allocno_costs): New function.
16243 (finish_allocno): Change a part of code into call of
16244 ira_free_allocno_costs.
16245 (low_pressure_loop_node_p): Use pressure classes.
16246 (object_range_compare_func): Don't compare classes.
16247 (setup_min_max_conflict_allocno_ids): Ditto.
16248
16249 * loop-invariant.c: Remove mentioning cover classes from the file.
16250 Use ira_pressure_classes and ira_pressure_classes_num instead of
16251 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
16252 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16253 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16254 Use reg_allocno_class instead of reg_cover_class.
16255 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16256 STACK_REG_COVER_CLASS.
16257 (get_regno_cover_class): Rename to get_regno_pressure_class.
16258 (move_loop_invariants): Initialize and finalize regstat.
16259
16260 * ira.c: Remove mentioning cover classes from the file. Add
16261 comments about coloring without cover classes. Use ALLOCNO_CLASS
16262 instead of ALLOCNO_COVER_CLASS. Fix formatting.
16263 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16264 setup_class_subset_and_memory_move_costs.
16265 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16266 (setup_cover_and_important_classes): Rename to
16267 setup_allocno_and_important_classes.
16268 (setup_class_translate_array): New.
16269 (setup_class_translate): Call it for allocno and pressure classes.
16270 (cover_class_order): Rename to allocno_class_order.
16271 (comp_reg_classes_func): Use ira_allocno_class_translate instead
16272 of ira_class_translate.
16273 (reorder_important_classes): Set up ira_important_class_nums.
16274 (setup_reg_class_relations): Set up ira_reg_class_superunion.
16275 (print_class_cover): Rename to print_classes. Add parameter.
16276 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16277 Print pressure classes too.
16278 (find_reg_class_closure): Rename to find_reg_classes. Don't call
16279 setup_reg_subclasses.
16280 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16281 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16282 (setup_prohibited_class_mode_regs): Use
16283 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
16284 (clarify_prohibited_class_mode_regs): New function.
16285 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16286 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16287 (ira_init_once): Initialize them.
16288 (free_register_move_costs): Process them.
16289 (ira_init): Move calls of find_reg_classes and
16290 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16291 Call clarify_prohibited_class_mode_regs.
16292 (ira_no_alloc_reg): Remove.
16293 (too_high_register_pressure_p): Use pressure classes.
16294
16295 * sched-deps.c: Remove mentioning cover classes from the file.
16296 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16297 ira_pressure_classes and ira_pressure_classes_num instead of
16298 ira_reg_class_cover_size and ira_reg_class_cover.
16299 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16300 sched_regno_pressure_class instead of sched_regno_cover_class.
16301 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
16302 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16303
16304 * ira.h: Add 2010 to Copyright.
16305 (ira_no_alloc_reg): Remove external.
16306 (struct target_ira): Rename x_ira_hard_regno_cover_class,
16307 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16308 x_ira_class_translate to x_ira_hard_regno_allocno_class,
16309 x_ira_allocno_classes_num, x_ira_allocno_classes, and
16310 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
16311 x_ira_pressure_classes, x_ira_pressure_class_translate, and
16312 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
16313 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
16314 x_ira_no_alloc_regs.
16315 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16316 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16317 ira_allocno_classes_num and ira_allocno_classes.
16318 (ira_class_translate): Rename to ira_allocno_class_translate.
16319 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16320 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16321 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16322 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16323 (ira_no_alloc_regs): New.
16324
16325 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
16326 classes from the file. Use ALLOCNO_CLASS instead of
16327 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
16328 ALLOCNO_COVER_CLASS_COST.
16329 (regno_cover_class): Rename to regno_aclass.
16330 (record_reg_classes): Use ira_reg_class_subunion instead of
16331 ira_reg_class_union.
16332 (record_address_regs): Check overflow.
16333 (scan_one_insn): Ditto.
16334 (print_allocno_costs): Print total mem cost fore regional allocation.
16335 (print_pseudo_costs): Use REG_N_REFS.
16336 (find_costs_and_classes): Use classes intersected with them on the
16337 1st pass. Check overflow. Use ira_reg_class_subunion instead of
16338 ira_reg_class_union. Use ira_allocno_class_translate and
16339 regno_aclass instead of ira_class_translate and regno_cover_class.
16340 Modify code for finding regno_aclass. Setup preferred classes for
16341 the next pass.
16342 (setup_allocno_cover_class_and_costs): Rename to
16343 setup_allocno_class_and_costs. Use regno_aclass instead of
16344 regno_cover_class. Use ira_set_allocno_class instead of
16345 ira_set_allocno_cover_class.
16346 (init_costs, finish_costs): Use regno_aclass instead of
16347 regno_cover_class.
16348 (ira_costs): Use setup_allocno_class_and_costs instead of
16349 setup_allocno_cover_class_and_costs.
16350 (ira_tune_allocno_costs_and_cover_classes): Rename to
16351 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
16352 by processing objects. Use ira_reg_class_max_nregs instead of
16353 ira_reg_class_nregs.
16354
16355 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16356
16357 * sched-int.h: Remove mentioning cover classes from the file.
16358 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16359
16360 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
16361 classes from the file.
16362 (struct reg_pref): Rename coverclass into allocnoclass.
16363 (reg_cover_class): Rename to reg_allocno_class.
16364
16365 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
16366
16367 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16368
16369 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16370
16371 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16372
16373 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16374
16375 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16376
16377 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16378
16379 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16380
16381 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16382
16383 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16384
16385 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
16386 (i386_ira_cover_classes): Ditto.
16387
16388 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
16389
16390 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
16391
16392 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
16393
16394 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
16395
16396 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
16397
16398 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
16399
16400 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
16401 (mips_ira_cover_classes): Ditto.
16402
16403 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
16404
16405 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
16406
16407 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
16408
16409 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
16410
16411 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
16412
16413 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
16414 (IRA_COVER_CLASSES_VSX): Ditto.
16415
16416 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
16417 (rs6000_ira_cover_classes): Ditto.
16418
16419 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
16420
16421 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16422
16423 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16424
16425 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16426
16427 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16428
16429 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16430
16431 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16432
16433 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16434
16435 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16436
16437 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16438
16439 2011-03-29 Jakub Jelinek <jakub@redhat.com>
16440
16441 PR debug/48253
16442 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16443 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16444 dw_fde_unlikely_section_end_label, cold_in_std_section,
16445 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16446 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16447 fields.
16448 (output_fde): Use dw_fde_second_{begin,end} if second is
16449 true, otherwise dw_fde_{begin,end}.
16450 (output_call_frame_info): Test dw_fde_second_begin != NULL
16451 instead of dw_fde_switched_sections.
16452 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16453 fields, initialize new fields. Initialize in_std_section
16454 unconditionally from the first partition.
16455 (dwarf2out_end_epilogue): Don't override dw_fde_end when
16456 dw_fde_second_begin is non-NULL.
16457 (dwarf2out_switch_text_section): Stop initializing removed
16458 dw_fde_struct fields, initialize new fields, initialize
16459 also dw_fde_end here. Set dw_fde_switch_cfi even when
16460 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
16461 (struct var_loc_list_def): Add last_before_switch field.
16462 (arange_table, arange_table_allocated, arange_table_in_use,
16463 ARANGE_TABLE_INCREMENT, add_arange): Removed.
16464 (size_of_aranges): Count !in_std_section and !second_in_std_section
16465 hunks in fdes, instead of looking at arange_table_in_use.
16466 (output_aranges): Add aranges_length argument, don't call
16467 size_of_aranges here. Instead of using aranges_table*
16468 emit ranges for fdes when !in_std_section resp.
16469 !second_in_std_section.
16470 (dw_loc_list): Break ranges crossing section switch.
16471 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
16472 use dw_fde_second_end instead of dw_fde_end as end of last range.
16473 (gen_subprogram_die): Don't call add_arange. Use
16474 dw_fde_{begin,end} for first partition and if switched
16475 section dw_fde_second_{begin,end} for the second.
16476 (var_location_switch_text_section_1,
16477 var_location_switch_text_section): New functions.
16478 (dwarf2out_begin_function): Initialize cold_text_section even
16479 when function_section () isn't text_section.
16480 (prune_unused_types): Don't walk arange_table.
16481 (dwarf2out_finish): Don't needlessly test
16482 flag_reorder_blocks_and_partition when testing cold_text_section_used.
16483 If info_section_emitted, call size_of_aranges and if it indicates
16484 non-empty .debug_aranges, call output_aranges with the computed
16485 size. Stop using removed dw_fde_struct fields, use
16486 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16487 for second.
16488
16489 PR debug/48203
16490 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16491 create ENTRY_VALUE if incoming or address of incoming's MEM
16492 is a hard REG.
16493 * dwarf2out.c (mem_loc_descriptor): Don't emit
16494 DW_OP_GNU_entry_value of DW_OP_fbreg.
16495 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16496 on ENTRY_VALUE is able to find the canonical parameter VALUE.
16497 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16498 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16499 ENTRY_VALUE_EXPs.
16500 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16501 is a REG_P or MEM_P with REG_P address, compute hash directly
16502 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16503 (preserve_only_constants): Don't clear VALUES forwaring
16504 ENTRY_VALUE to some other VALUE.
16505
16506 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
16507
16508 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16509 instead of GEN_INT.
16510
16511 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16512
16513 * cfgexpand.c (expand_gimple_cond): Always set the source location and
16514 block before expanding the statement.
16515 (expand_gimple_stmt_1): Likewise. Set them here...
16516 (expand_gimple_stmt): ...and not here. Tidy.
16517 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16518 unknown.
16519
16520 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16521
16522 * Makefile.in: New rule for cprop.o.
16523 * gcse.c: Move constant/copy propagation to cprop.c.
16524 (compute_local_properties): Only handle expression tables.
16525 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16526 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16527 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16528 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
16529 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
16530 compute_cprop_data, find_used_regs, try_replace_reg,
16531 find_avail_set, cprop_jump, constprop_register, cprop_insn,
16532 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16533 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16534 find_bypass_set, reg_killed_on_edge, bypass_block,
16535 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16536 execute_rtl_cprop, pass_rtl_cprop): Move to...
16537 * cprop.c: ...here. New file, constant/copy propagation for RTL
16538 moved from gcse.c to here with minor cleanups in duplicated code.
16539
16540 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
16541
16542 * config/i386/i386.c (flag_opts): Fix a typo in
16543 -mavx256-split-unaligned-store.
16544
16545 2011-03-28 Anatoly Sokolov <aesok@post.ru>
16546
16547 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16548 LIBCALL_VALUE): Remove macros.
16549 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16550 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16551 (h8300_function_value, h8300_libcall_value,
16552 h8300_function_value_regno_p): New functions.
16553
16554 2011-03-28 Anatoly Sokolov <aesok@post.ru>
16555
16556 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16557
16558 2011-03-28 Jeff Law <law@redhat.com>
16559
16560 * tree-ssa-threadupdate.c (redirect_edges): Call
16561 create_edge_and_update_destination_phis as needed.
16562 (create_edge_and_update_destination_phis): Accept new BB argument.
16563 All callers updated.
16564 (thread_block): Do not update the profile when threading around
16565 intermediate blocks.
16566 (thread_single_edge): Likewise.
16567 (determine_bb_domination_status): If BB is not a successor of the
16568 loop header, return NONDOMINATING.
16569 (register_jump_thread): Note when we register a jump thread around
16570 an intermediate block.
16571 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16572 (thread_across_edge): Use it.
16573
16574 2011-03-28 Tristan Gingold <gingold@adacore.com>
16575
16576 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16577 when for_return is 2.
16578
16579 2011-03-28 Jeff Law <law@redhat.com>
16580
16581 * var-tracking.c (canonicalize_values_mark): Delete unused
16582 lhs assignment.
16583 (canonicalize_values_star, set_variable_part): Likewise.
16584 (clobber_variable_part, delete_variable_part): Likewise.
16585
16586 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16587
16588 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16589
16590 2011-03-28 Martin Jambor <mjambor@suse.cz>
16591
16592 * tree-inline.c (expand_call_inline): Do not check that destination
16593 node is analyzed.
16594 (optimize_inline_calls): Assert that destination node is analyzed.
16595 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16596 not call tree_lowering_passes.
16597 * cgraph.h (cgraph_analyze_function): Declare.
16598 * cgraphunit.c (cgraph_analyze_function): Make public.
16599
16600 2011-03-28 Joseph Myers <joseph@codesourcery.com>
16601
16602 * config/sparc/sparc-opts.h: New.
16603 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16604 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16605 (sparc_option_override): Store processor_type enumeration rather
16606 than string in cpu_default. Remove name and enumeration from
16607 cpu_table. Directly default -mcpu then default -mtune from -mcpu
16608 without using sparc_select. Use target_flags_explicit instead of
16609 fpu_option_set.
16610 * config/sparc/sparc.h (enum processor_type): Move to
16611 sparc-opts.h.
16612 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16613 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16614 HeaderInclude entry.
16615 (mcpu=, mtune=): Use Var and Enum.
16616 (sparc_processor_type): New Enum and EnumValue entries.
16617
16618 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16619 Iain Sandoe <iains@gcc.gnu.org>
16620
16621 PR target/48245
16622 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16623
16624 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16625
16626 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16627 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16628 Insert new statements at it in lieu of STMT.
16629 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16630 * tree-vect-stmts.c (vectorizable_store): Likewise.
16631 (vectorizable_load): Likewise.
16632
16633 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
16634
16635 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16636 (divtf3): Ditto.
16637 (multf3): Ditto.
16638 (subtf3): Ditto.
16639
16640 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16641
16642 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16643 unaligned 256bit load/store.
16644 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16645 (*avx_movdqu<avxmodesuffix>): Likewise.
16646
16647 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16648
16649 PR target/48288
16650 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16651 * config/pa/pa.md (iordi3): Use new predicate in expander.
16652 (iorsi3): Likewise.
16653
16654 2011-03-27 Anatoly Sokolov <aesok@post.ru>
16655
16656 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
16657 FUNCTION_VALUE_REGNO_P): Remove macros.
16658 * config/mips/mips-protos.h (mips_function_value): Remove.
16659 * config/mips/mips.c (mips_function_value): Rename to...
16660 (mips_function_value_1): ... this. Make static. Handle receiving
16661 the function type in 'fn_decl_or_type' argument.
16662 (mips_function_value, mips_libcall_value,
16663 mips_function_value_regno_p): New function.
16664 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16665 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16666
16667 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16668
16669 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16670 and -mavx256-split-unaligned-store.
16671 (ix86_option_override_internal): Split 32-byte AVX unaligned
16672 load/store by default.
16673 (ix86_avx256_split_vector_move_misalign): New.
16674 (ix86_expand_vector_move_misalign): Use it.
16675
16676 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16677 -mavx256-split-unaligned-store.
16678
16679 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16680 256bit load/store. Generate unaligned store on misaligned memory
16681 operand.
16682 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16683 256bit load/store.
16684 (*avx_movdqu<avxmodesuffix>): Likewise.
16685
16686 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16687 -mavx256-split-unaligned-store.
16688
16689 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
16690
16691 PR target/38598
16692 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
16693 Update commentary.
16694
16695 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
16696
16697 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
16698 opno arguments with an expand_operand. Use create_input_operand.
16699 (mips_prepare_builtin_target): Delete.
16700 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
16701 functions.
16702 (mips_expand_builtin_direct): Use create_output_operand and
16703 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
16704 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
16705 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
16706
16707 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
16708
16709 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
16710 function.
16711 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16712
16713 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16714
16715 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
16716 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
16717 basic blocks and call commit_edge_insertions directly.
16718 (fixup_abnormal_edges): Move from here to...
16719 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
16720 on the edges and return whether some have actually been inserted.
16721 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
16722 compensation code.
16723
16724 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
16725
16726 PR rtl-optimization/48144
16727 * sel-sched-ir.c (merge_history_vect): Factor out from ...
16728 (merge_expr_data): ... here.
16729 (av_set_intersect): Rename to av_set_code_motion_filter.
16730 Update all callers. Call merge_history_vect when an expression
16731 is found in both sets.
16732 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
16733
16734 2011-03-26 Alan Modra <amodra@gmail.com>
16735
16736 * config/rs6000/predicates.md (word_offset_memref_op): Handle
16737 cmodel medium addresses.
16738 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
16739 64-bit gpr loads and stores.
16740 (rs6000_secondary_reload_ppc64): New function.
16741 * config/rs6000/rs6000-protos.h: Declare it.
16742 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
16743
16744 2011-03-26 Alan Modra <amodra@gmail.com>
16745
16746 PR target/47487
16747 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
16748 GNU Go in traceback table.
16749
16750 2011-03-25 Richard Henderson <rth@redhat.com>
16751
16752 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
16753 if there are exactly 6 operands.
16754 (set_storage_via_setmem): Similarly.
16755
16756 2011-03-25 Kai Tietz <ktietz@redhat.com>
16757
16758 * collect2.c (write_c_file_stat): Handle backslash
16759 as right-hand directory separator.
16760 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
16761 checking just for slash.
16762 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
16763 instead of checking for trailing slash.
16764 * gcc.c (record_temp_file): Use filename_cmp instead
16765 of strcmp.
16766 (do_spec_1): Likewise.
16767 (replace_outfile_spec_function): Likewise.
16768 (is_directory): Use filename_ncmp instead of strncmp.
16769 (print_multilib_info): Likewise.
16770 * gcov.c (find_source): Use filename_cmp instead
16771 instead of strcmp.
16772 (make_gcov_file_name): Fix order of slash/backslash
16773 checks.
16774 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
16775 (add_standard_paths): Likewise.
16776 * mips-tfile.c (saber_stop): Handle backslash.
16777 * prefix.c (update_path): Use filename_ncmp instead of
16778 strncmp.
16779 * profile.c (output_location): Use filename_cmp instead
16780 of strcmp.
16781 * read-md.c (handle_toplevel_file): Handle backslash.
16782 * tlink.c (frob_extension): Likewise.
16783 * tree-cfg.c (same_line_p): Use filename_cmp instead of
16784 strcmp.
16785 * tree-dump.c (dequeue_and_dump): Handle backslash.
16786 * tree.c (get_file_function_name): Likewise.
16787 * gengtype.c (read_input_list): Likewise.
16788 (get_file_realbasename): Likewise.
16789 (get_output_file_with_visibility): Use filename_cmp
16790 instead of strcmp.
16791
16792 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
16793
16794 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
16795 case to VFPv1.
16796
16797 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
16798
16799 * fold-const.c (expr_location_or): New function.
16800 (fold_truth_not_expr): Call it.
16801
16802 2011-03-25 Jeff Law <law@redhat.com>
16803
16804 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
16805 va_end.
16806 * c-family/c-common.c (def_fn_type): Likewise.
16807 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
16808 * emit-rtl.c (gen_rtvec): Likewise.
16809 * lto/lto-lang.c (def_fn_type): Likewise.
16810
16811 2011-03-25 Richard Guenther <rguenther@suse.de>
16812
16813 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
16814 also generate copies.
16815 (fini_copy_prop): Handle constant values properly.
16816
16817 2011-03-25 Jakub Jelinek <jakub@redhat.com>
16818
16819 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
16820 mode size instead of bitsize with DWARF2_ADDR_SIZE.
16821 (hash_loc_operands, compare_loc_operands): Handle
16822 DW_OP_GNU_entry_value.
16823
16824 2011-03-25 Kai Tietz <ktietz@redhat.com>
16825
16826 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
16827 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
16828 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
16829 comment and use macro TARGET_64BIT_MS_ABI instead.
16830 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
16831 and change default behavior for 32-bit MS_ABI.
16832 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
16833 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
16834 32-bit, too.
16835 (ix86_cfun_abi): Likewise.
16836 (ix86_maybe_switch_abi): Adjust comment.
16837 (init_cumulative_args): Check for bit-ness in MS_ABI case.
16838 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
16839 instead of checking for SYSV_ABI.
16840 (ix86_nsaved_sseregs): Likewise.
16841 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
16842 to 16 bytes.
16843 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
16844 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
16845 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
16846 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
16847 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
16848
16849 2011-03-25 Richard Guenther <rguenther@suse.de>
16850
16851 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
16852 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16853 (verify_gimple): Remove.
16854 * tree-cfg.c (verify_gimple_call): Merge verification
16855 from verify_stmts.
16856 (verify_gimple_phi): Merge verification from verify_stmts.
16857 (verify_gimple_label): New function.
16858 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
16859 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16860 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
16861 (verify_stmts): Rename to verify_gimple_in_cfg.
16862 (verify_gimple_in_cfg): New function.
16863 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
16864 * tree-ssa.c (verify_ssa): Likewise.
16865 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
16866
16867 2011-03-25 Richard Guenther <rguenther@suse.de>
16868
16869 * passes.c (init_optimization_passes): Add FRE pass after
16870 early SRA.
16871
16872 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
16873 Andrew Stubbs <ams@codesourcery.com>
16874
16875 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
16876 for Cortex-A8.
16877 (arm_movdi_vfp_cortexa8): New pattern.
16878 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
16879 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
16880 instructions when tuning for Cortex-A8. Set attribute "arch".
16881 * config/arm/arm.md: Move include arm-tune.md up a bit.
16882 (define_attr "arch"): Add "onlya8" and "nota8" values.
16883 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
16884
16885 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
16886
16887 PR bootstrap/48282
16888 Revert:
16889 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16890
16891 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16892 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
16893 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16894 * passes.c (init_optimization_passes): Move
16895 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16896
16897 2011-03-25 Kai Tietz <ktietz@redhat.com>
16898
16899 * c-typeck.c (comptypes_internal): Replace target
16900 hook call of comp_type_attributes by version in tree.c file.
16901 * gimple.c (gimple_types_compatible_p_1): Likewise.
16902 * tree-ssa.c (useless_type_conversion_p): Likewise.
16903 * tree.c (build_type_attribute_qual_variant): Likewise.
16904 (attribute_value_equal): New static helper function.
16905 (comp_type_attributes): New function.
16906 (merge_attributes): Use attribute_value_equal for comparison.
16907 (attribute_list_contained): Likewise.
16908 * tree.h (comp_type_attributes): New prototype.
16909
16910 2011-03-25 Richard Guenther <rguenther@suse.de>
16911
16912 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
16913 of complex types at -O0.
16914 (verify_gimple_assign_binary): Likewise.
16915 (verify_gimple_assign_ternary): Likewise.
16916
16917 2011-03-24 Mark Wielaard <mjw@redhat.com>
16918
16919 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
16920 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
16921
16922 2011-03-24 Mark Wielaard <mjw@redhat.com>
16923
16924 PR debug/48041
16925 * dwarf2out.c (output_abbrev_section): Only write table when
16926 abbrev_die_table_in_use > 1.
16927
16928 2011-02-24 Richard Henderson <rth@redhat.com>
16929
16930 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
16931 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
16932 (alpha_expand_unaligned_load_words): Use extql.
16933 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
16934 (emit_insxl): Handle all modes for consistency.
16935
16936 2011-02-24 Richard Henderson <rth@redhat.com>
16937
16938 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
16939 (alpha_expand_unaligned_load): Likewise.
16940 (alpha_expand_unaligned_store): Likewise.
16941 (alpha_expand_unaligned_load_words): Likewise.
16942 (alpha_expand_unaligned_store_words): Likewise.
16943 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
16944 (alpha_split_lock_test_and_set_12): Likewise.
16945 (print_operand, alpha_fold_builtin_extxx): Likewise.
16946 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
16947 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
16948 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
16949 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
16950 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
16951 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
16952 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
16953 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
16954 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
16955 (extwl, extll, extql): Similarly.
16956 (inswh, inslh, insqh): Similarly.
16957 (mskbl, mskwl, mskll, mskql): Similarly.
16958 (mskwh, msklh, mskqh): Similarly.
16959
16960 2011-02-24 Richard Henderson <rth@redhat.com>
16961
16962 * config/alpha/alpha.md (attribute isa): Add er, ner.
16963 (attribute enabled): Handle them.
16964 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
16965
16966 2011-02-24 Richard Henderson <rth@redhat.com>
16967
16968 * config/alpha/alpha.md (attribute isa): Add vms.
16969 (attribute enabled): Handle it.
16970 (*movsf): Merge *movsf_{nofix,fix,nofp}.
16971 (*movdf): Merge *movdf_{nofix,fix,nofp}.
16972 (*movtf): Rename from *movtf_internal for consistency.
16973 (*movsi): Merge with *movsi_nt_vms.
16974 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
16975 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
16976 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
16977 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
16978
16979 2011-02-24 Richard Henderson <rth@redhat.com>
16980
16981 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
16982 (extendqisi2, extendhisi2): Likewise.
16983 (extendqidi2): Simplify BWX/non-BWX expansions.
16984 (extendhidi2): Similarly.
16985
16986 2011-02-24 Richard Henderson <rth@redhat.com>
16987
16988 * config/alpha/alpha.md (attribute isa): New.
16989 (attribute enabled): New.
16990 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
16991 (zero_extendqisi2, zero_extendqidi2): Similarly.
16992 (zero_extendhisi2, zero_extendhidi2): Similarly.
16993 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
16994
16995 2011-02-24 Richard Henderson <rth@redhat.com>
16996
16997 * config/alpha/predicates.md (input_operand): Revert last change;
16998 update comment to mention 32-bit VMS rather than Windows.
16999
17000 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17001
17002 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17003 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17004 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17005 * passes.c (init_optimization_passes): Move
17006 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17007
17008 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17009
17010 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17011
17012 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
17013
17014 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17015 correctly.
17016
17017 2011-03-24 Jakub Jelinek <jakub@redhat.com>
17018
17019 PR debug/48204
17020 * simplify-rtx.c (simplify_const_unary_operation): Call
17021 real_convert when changing mode class with FLOAT_EXTEND.
17022
17023 2011-03-24 Nick Clifton <nickc@redhat.com>
17024
17025 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17026 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17027 * config/rx/rx.c (rx_option_override): Set align_jumps,
17028 align_loops and align_labels if not set by the user.
17029 (rx_align_for_label): New function.
17030 (rx_max_skip_for_label): New function.
17031 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17032 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17033 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17034 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17035 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17036
17037 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17038
17039 PR rtl-optimization/48263
17040 * optabs.c (expand_binop_directly): Reinstate convert_modes code
17041 and original commutative_p handling. Use maybe_gen_insn.
17042
17043 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17044
17045 * reload.c (find_reloads_subreg_address): Add address_reloaded
17046 parameter and return true there if the full address has been
17047 reloaded.
17048 (find_reloads_toplev): Pass address_reloaded flag.
17049 (find_reloads_address_1): Don't use address_reloaded parameter.
17050
17051 2011-03-24 Jeff Law <law@redhat.com>
17052
17053 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17054 unused variable "ann".
17055 (remove_unused_locals): Likewise.
17056
17057 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17058 statement.
17059
17060 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17061 after it is freed.
17062
17063 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17064
17065 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17066 for invalid symbolic addresses.
17067 (s390_secondary_reload): Don't use s390_check_symref_alignment for
17068 larl operands.
17069
17070 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17071
17072 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17073 the argument in calls to fold_truth_not_expr.
17074
17075 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17076
17077 * tree.c (record_node_allocation_statistics): New function.
17078 (make_node_stat, copy_node_stat, build_string): Call it.
17079 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17080 (build1_stat, build_omp_clause): Likewise.
17081
17082 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17083
17084 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17085 last commit.
17086
17087 2011-03-24 Richard Guenther <rguenther@suse.de>
17088
17089 PR tree-optimization/48271
17090 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17091 blocks that still exist.
17092
17093 2011-03-24 Richard Guenther <rguenther@suse.de>
17094
17095 PR tree-optimization/48270
17096 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17097 not free datarefs before ddrs.
17098
17099 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17100
17101 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17102 from the address built for a reference with variable offset.
17103
17104 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
17105
17106 PR target/48237
17107 * config/i386/i386.md (*movdf_internal_rex64): Do not split
17108 alternatives that can be handled with movq or movabsq insn.
17109 (*movdf_internal): Disable for !TARGET_64BIT.
17110 (*movdf_internal_nointeger): Ditto.
17111 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17112
17113 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17114
17115 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17116 (FUNCTION_ARG_ADVANCE): Likewise.
17117 * tm.texi.in: Change references to them to hook references.
17118 * tm.texi: Regenerate.
17119 * targhooks.c (default_function_arg): Eliminate check for target macro.
17120 (default_function_incoming_arg): Likewise.
17121 (default_function_arg_advance): Likewise.
17122 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17123 (function_arg_advance): Likewise.
17124 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17125
17126 2011-03-24 Richard Guenther <rguenther@suse.de>
17127
17128 PR middle-end/48269
17129 * tree-object-size.c (addr_object_size): Do not double-account
17130 for MEM_REF offsets.
17131
17132 2011-03-24 Diego Novillo <dnovillo@google.com>
17133
17134 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
17135 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
17136 (lto_input_data_block): Move from lto-opts.c. Make extern.
17137 Update all users.
17138 (lto_input_string): Rename from input_string. Make extern.
17139 Update all users.
17140 * lto-streamer-out.c (lto_output_string_with_length): Rename from
17141 output_string_with_length.
17142 Output 0 to indicate a non-NULL string. Update all callers to
17143 not emit 0.
17144 (lto_output_string): Rename from output_string. Make extern.
17145 Update all users.
17146 (lto_output_decl_state_streams): Make extern.
17147 (lto_output_decl_state_refs): Make extern.
17148 * lto-streamer.h (lto_input_string): Declare.
17149 (lto_input_data_block): Declare.
17150 (lto_output_string): Declare.
17151 (lto_output_string_with_length): Declare.
17152 (lto_output_decl_state_streams): Declare.
17153 (lto_output_decl_state_refs): Declare.
17154
17155 2011-03-24 Richard Guenther <rguenther@suse.de>
17156
17157 PR tree-optimization/46562
17158 * tree.c (build_invariant_address): New function.
17159 * tree.h (build_invariant_address): Declare.
17160 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17161 a renamed function moved ...
17162 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17163 Take valueization callback parameter.
17164 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17165 * gimple-fold.h: New file.
17166 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17167 (ccp_fold, fold_const_aggregate_ref,
17168 fold_ctor_reference, fold_nonarray_ctor_reference,
17169 fold_array_ctor_reference, fold_string_cst_ctor_reference,
17170 get_base_constructor): Move ...
17171 * gimple-fold.c: ... here.
17172 (gimple_fold_stmt_to_constant_1): New function
17173 split out from ccp_fold. Take a valueization callback parameter.
17174 Valueize all operands.
17175 (gimple_fold_stmt_to_constant): New wrapper function.
17176 (fold_const_aggregate_ref_1): New function split out from
17177 fold_const_aggregate_ref. Take a valueization callback parameter.
17178 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17179 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17180 invariant POINTER_PLUS_EXPRs to invariant form.
17181 (vn_valueize): New function.
17182 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17183 * tree-vrp.c (vrp_valueize): New function.
17184 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17185 to fold statements to constants.
17186 * tree-ssa-pre.c (eliminate): Properly guard propagation of
17187 function declarations.
17188 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17189 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17190
17191 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17192
17193 * config/h8300/predicates.md (jump_address_operand): Fix register
17194 mode check.
17195
17196 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
17197
17198 * doc/invoke.texi (max-stores-to-sink): Document.
17199 * params.h (MAX_STORES_TO_SINK): Define.
17200 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17201 if either vectorization or if-conversion is disabled.
17202 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17203 tree-vect-data-refs.c vect_equal_offsets.
17204 (dr_equal_offsets_p): New function.
17205 (find_data_references_in_bb): Remove static.
17206 * tree-data-ref.h (find_data_references_in_bb): Declare.
17207 (dr_equal_offsets_p): Likewise.
17208 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17209 (vect_drs_dependent_in_basic_block): Update calls to
17210 vect_equal_offsets.
17211 (vect_check_interleaving): Likewise.
17212 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17213 (cond_if_else_store_replacement): Rename to...
17214 (cond_if_else_store_replacement_1): ... this. Change arguments and
17215 documentation.
17216 (cond_if_else_store_replacement): New function.
17217 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17218 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17219
17220 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
17221
17222 PR target/46934
17223 * config/arm/arm.md (casesi): Use the gen_int_mode() function
17224 to subtract lower bound instead of GEN_INT().
17225
17226 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
17227
17228 PR other/48179
17229 PR other/48221
17230 PR other/48234
17231 * doc/extend.texi (Alignment): Move section to match order in TOC.
17232 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17233 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17234
17235 2011-03-23 Jeff Law <law@redhat.com>
17236
17237 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17238 before removing the edge.
17239
17240 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17241 it may have been freed by redirect_branch_edge or
17242 redirect_edge_succ_nodup.
17243
17244 2011-03-23 Richard Guenther <rguenther@suse.de>
17245
17246 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
17247 (check_va_list_escapes): Likewise.
17248 (check_all_va_list_escapes): Likewise.
17249
17250 2011-03-23 Richard Guenther <rguenther@suse.de>
17251
17252 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17253 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17254 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17255 (alias.o): Likewise.
17256 (ipa-type-escape.o): Remove.
17257 (ipa-struct-reorg.o): Likewise.
17258 (GTFILES): Remove ipa-struct-reorg.c.
17259 * alias.c: Do not include ipa-type-escape.h.
17260 * tree-ssa-alias.c: Likewise.
17261 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17262 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17263 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17264 and ipa-type-escape passes.
17265 * tree-pass.h (pass_ipa_type_escape): Remove.
17266 (pass_ipa_struct_reorg): Likewise.
17267 * ipa-struct-reorg.h: Remove.
17268 * ipa-struct-reorg.c: Likewise.
17269 * ipa-type-escape.h: Likewise.
17270 * ipa-type-escape.c: Likewise.
17271 * doc/invoke.texi (-fipa-struct-reorg): Remove.
17272 (--param struct-reorg-cold-struct-ratio): Likewise.
17273 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17274 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17275 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17276
17277 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17278
17279 * config/s390/2084.md: Enable all insn reservations also for z9_ec
17280 cpu attribute value.
17281 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17282 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17283 * config/s390/s390.c (processor_flags_table): New constant array.
17284 (s390_handle_arch_option): Remove.
17285 (s390_handle_option): Remove s390_handle_arch_option invocations
17286 and OPT_mwarn_framesize_ handling.
17287 (s390_option_override): Remove s390_handle_arch_option invocation.
17288 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17289 warnings.
17290 * config/s390/s390.md (cpu attribute): Add z9_ec value.
17291 * config/s390/s390.opt (s390_tune, s390_arch)
17292 (march=): Replace s390_arch_option enum and values with
17293 processor_type. Set variable name to s390_arch. Set
17294 initialization value.
17295 (mtune=): Replace s390_arch_option with processor_type. Set
17296 variable name to s390_tune. Set initialization value.
17297
17298 2011-03-23 Julian Brown <julian@codesourcery.com>
17299
17300 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17301 accesses which are not naturally aligned.
17302
17303 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17304
17305 PR target/47553
17306 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17307
17308 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17309
17310 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17311 parameter from "int" to "enum insn_code".
17312 (expand_operand_type): New enum.
17313 (expand_operand): New structure.
17314 (create_expand_operand): New function.
17315 (create_fixed_operand, create_output_operand): Likewise
17316 (create_input_operand, create_convert_operand_to): Likewise.
17317 (create_convert_operand_from, create_address_operand): Likewise.
17318 (create_integer_operand): Likewise.
17319 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17320 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17321 (expand_insn, expand_jump_insn): Likewise.
17322 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17323 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17324 (expand_movstr, expand_builtin___clear_cache): Likewise.
17325 (expand_builtin_lock_release): Likewise.
17326 * explow.c (allocate_dynamic_stack_space): Likewise.
17327 (probe_stack_range): Likewise. Allow check_stack to FAIL,
17328 and use the default handling in that case.
17329 * expmed.c (check_predicate_volatile_ok): Delete.
17330 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17331 (emit_cstore): Likewise.
17332 * expr.c (emit_block_move_via_movmem): Likewise.
17333 (set_storage_via_setmem, expand_assignment): Likewise.
17334 (emit_storent_insn, try_casesi): Likewise.
17335 (emit_single_push_insn): Likewise. Allow the expansion to fail.
17336 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17337 (expand_vec_shift_expr, expand_binop_directly): Likewise.
17338 (expand_twoval_unop, expand_twoval_binop): Likewise.
17339 (expand_unop_direct, emit_indirect_jump): Likewise.
17340 (emit_conditional_move, vector_compare_rtx): Likewise.
17341 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17342 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17343 (expand_sync_lock_test_and_set): Likewise.
17344 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
17345 (emit_unop_insn): Likewise.
17346 (expand_copysign_absneg): Change icode to an insn_code.
17347 (create_convert_operand_from_type): New function.
17348 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17349 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17350 (expand_insn, expand_jump_insn): Likewise.
17351 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17352 than const_int_operand for operand 2.
17353
17354 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17355
17356 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17357 if possible.
17358
17359 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17360
17361 * emit-rtl.c (emit_pattern_before_noloc): New function.
17362 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17363 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17364 (emit_pattern_after_noloc): New function.
17365 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17366 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17367
17368 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17369
17370 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17371 (__ffsDI2): Likewise.
17372
17373 2011-03-22 Richard Henderson <rth@redhat.com>
17374
17375 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17376 of !TARGET_ABI_OPEN_VMS.
17377 (alpha_trampoline_init, alpha_start_function): Likewise.
17378 (alpha_expand_epilogue, alpha_file_start): Likewise.
17379 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17380 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17381 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17382 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17383 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17384
17385 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17386
17387 * config/s390/s390-opts.h: New.
17388 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
17389 s390_arch_flags, s390_warn_framesize, s390_stack_size,
17390 s390_stack_guard): Remove.
17391 (s390_handle_arch_option): Return void. Take enum
17392 s390_arch_option value instead of string and searching array.
17393 (s390_handle_option): Don't assert that global structures are in
17394 use. Access variables via opts pointer. Use error_at. Don't use
17395 sscanf for -mstack-guard= or -mstack-size=. Update call to
17396 s390_handle_arch_option.
17397 (s390_option_override): Update call to s390_handle_arch_option.
17398 (s390_emit_prologue): Use %d format for s390_stack_size in
17399 diagnostic. Use %wd for HOST_WIDE_INT.
17400 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
17401 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
17402 * config/s390/s390.opt (config/s390/s390-opts.h): New
17403 HeaderInclude entry.
17404 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
17405 s390_arch_flags, s390_warn_framesize): New Variable entries.
17406 (s390_arch_option): New Enum and EnumValue entries.
17407 (march=): Use Enum instead of Var.
17408 (mstack-guard=, mstack-size=): Use UInteger and Var.
17409 (mtune=): Use Enum.
17410
17411 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17412
17413 * config/score/score.c (score_handle_option): Don't assert that
17414 global structures are in use. Access target_flags via opts
17415 pointer. Use value of -march= option to determine target_flags
17416 settings.
17417 * config/score/score.opt (march=): Use Enum.
17418 (score_arch): New Enum and EnumValue entries.
17419
17420 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17421
17422 * config/mep/mep.c (option_mtiny_specified): Remove.
17423 (mep_option_override): Move register handling for -mivc2 from
17424 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
17425 instead of option_mtiny_specified.
17426 (mep_handle_option): Access target_flags via opts pointer. Don't
17427 assert that global structures are in use. Defer part of -mivc2
17428 handling and move it to mep_option_override.
17429 * config/mep/mep.opt (IVC2): New Mask entry.
17430 (mivc2): Use Var and Defer instead of Mask.
17431
17432 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17433
17434 * config/v850/v850-opts.h: New.
17435 * config/v850/v850.c (small_memory): Replace with
17436 small_memory_physical_max array. Make that array static const.
17437 (v850_handle_memory_option): Take integer value of argument. Take
17438 gcc_options pointer, option text and location. Return void.
17439 Update for changes to small memory structures.
17440 (v850_handle_option): Access target_flags via opts pointer. Don't
17441 assert that global structures are in use. Update calls to
17442 v850_handle_memory_option.
17443 (v850_encode_data_area): Update references to small memory settings.
17444 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
17445 (enum small_memory_type): Move to v850-opts.h.
17446 * config/v850/v850.opt (config/v850/v850-opts.h): New
17447 HeaderInclude entry.
17448 (small_memory_max): New Variable entry.
17449 (msda): Replace by pair of options msda= and msda-. Use UInteger.
17450 (mtda, mzda): Likewise.
17451
17452 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17453
17454 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17455 pointer. Don't assert that global structures are in use.
17456
17457 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17458
17459 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17460 via opts pointer. Don't assert that global structures are in use.
17461
17462 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17463
17464 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17465 (munix=93): Use Var.
17466 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17467 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17468 * config/pa/pa-opts.h: New.
17469 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17470 (pa_handle_option): Don't assert that global structures are in
17471 use. Access target_flags via opts pointer. Don't handle
17472 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17473 OPT_munix_98 here.
17474 (pa_option_override): Handle deferred OPT_mfixed_range_.
17475
17476 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17477
17478 * config/mn10300/mn10300-opts.h: New.
17479 * config/mn10300/mn10300.c (mn10300_processor,
17480 mn10300_tune_string): Remove.
17481 (mn10300_handle_option): Don't assert that global structures are
17482 in use. Access mn10300_processor via opts pointer. Don't handle
17483 OPT_mtune_ here.
17484 * config/mn10300/mn10300.h (enum processor_type): Move to
17485 mn10300-opts.h.
17486 (mn10300_processor): Remove.
17487 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17488 HeaderInclude entry.
17489 (mn10300_processor): New Variable entry.
17490 (mtune=): Use Var.
17491
17492 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17493
17494 * config/microblaze/microblaze.c: Don't include opts.h.
17495 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17496 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17497 (mno-clearbss): Use Var and Warn.
17498
17499 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17500
17501 * config/m32r/m32r-opts.h: New.
17502 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17503 (m32r_handle_option): Don't assert that global structures are in
17504 use. Access target_flags and m32r_cache_flush_func via opts
17505 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
17506 OPT_mno_flush_trap here.
17507 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17508 include of m32r-opts.h.
17509 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17510 HeaderInclude entry.
17511 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17512 (mmodel=): Use Enum and Var.
17513 (m32r_model): New Enum and EnumValue entries.
17514 (mno-flush-trap): Use Var.
17515 (msdata=): Use Enum and Var.
17516 (m32r_sdata): New Enum and EnumValue entries.
17517
17518 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17519
17520 * config/m32c/m32c.c: Don't include opts.h.
17521 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17522 m32c_handle_option): Remove.
17523 (m32c_option_override): Check global_options_set.x_target_memregs
17524 instead of target_memregs_set.
17525 * config/m32c/m32c.h (target_memregs): Remove.
17526 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17527 variable.
17528
17529 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17530
17531 * config/iq2000/iq2000-opts.h: New.
17532 * config/iq2000/iq2000.c: Don't include opts.h.
17533 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
17534 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
17535 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17536 HeaderInclude entry.
17537 (iq2000_tune): New Variable entry.
17538 (march=): Add comment. Use Enum.
17539 (iq2000_arch): New Enum and EnumValue entries.
17540 (mcpu=): Use Enum and Var.
17541 (iq2000_tune): New Enum and EnumValue entries.
17542
17543 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17544
17545 * config/ia64/ia64-opts.h: New.
17546 * config/ia64/ia64.c (ia64_tune): Remove.
17547 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17548 here. Use error_at.
17549 (ia64_option_override): Handle deferred OPT_mfixed_range_.
17550 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17551 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17552 HeaderInclude entry.
17553 (ia64_tune): New Variable entry.
17554 (mfixed-range=): Use Defer and Var.
17555 (mtune=): Use Enum and Var.
17556 (ia64_tune): New Enum and EnumValue entries.
17557
17558 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17559
17560 * config/frv/frv-opts.h: New.
17561 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17562 frv-opts.h.
17563 (frv_cpu_type): Remove.
17564 * config/frv/frv.c: Don't include opts.h.
17565 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
17566 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
17567 (frv_cpu_type): New Variable entry.
17568 (frv_cpu): New Enum and EnumValue entries.
17569
17570 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17571
17572 * config/cris/cris.c (cris_handle_option): Access target_flags via
17573 opts pointer. Don't assert that global structures are in use.
17574 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17575 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17576
17577 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17578
17579 * config/bfin/bfin-opts.h: New.
17580 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17581 bfin_si_revision, bfin_workarounds): Remove.
17582 (bfin_cpus): Make static const.
17583 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17584 not bfin_lib_id_given.
17585 (bfin_handle_option): Don't set bfin_lib_id_given. Access
17586 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
17587 pointer. Use error_at. Don't assert that global structures are in use.
17588 * config/bfin/bfin.h: Include bfin-opts.h.
17589 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17590 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17591 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17592 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17593 entries.
17594
17595 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17596
17597 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17598 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17599 or -msoft-float here.
17600 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17601 -msoft-float and -mhard-float.
17602 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
17603 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17604 msoft-float.
17605 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17606 -msoft-float.
17607 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17608 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17609 not mhard-float.
17610 (LIBGCC_SPEC): Don't handle -msoft-float.
17611 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17612 -mhard-float.
17613 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17614 msoft-float.
17615 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17616 -mfloat-abi=*, not -msoft-float and -mhard-float.
17617 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17618 -msoft-float.
17619 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17620 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17621 mhard-float and msoft-float.
17622 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17623 mfloat-abi=soft in comments, not mhard-float and msoft-float.
17624 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17625 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17626 mhard-float.
17627 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17628 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17629 msoft-float.
17630 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17631 not mhard-float.
17632 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17633 not msoft-float.
17634
17635 2011-03-22 Richard Henderson <rth@redhat.com>
17636
17637 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17638 TARGET_ABI_WINDOWS_NT.
17639 (alpha_output_function_end_prologue): Likewise.
17640 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17641 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17642 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17643 (trap, *movsi_nt_vms): Likewise.
17644 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17645 (*tablejump_osf_nt_internal): Remove.
17646 * config/alpha/predicates.md (input_operand): Only test Pmode.
17647
17648 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17649
17650 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17651 via opts pointer. Use error_at. Don't assert that global
17652 structures are in use.
17653
17654 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17655
17656 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17657 (ix86_handle_option): Access ix86_isa_flags and
17658 ix86_isa_flags_explicit via opts pointer. Don't assert that
17659 global structures are in use.
17660 (ix86_function_specific_save, ix86_function_specific_restore):
17661 Update ix86_isa_flags_explicit field name.
17662 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
17663 (ix86_isa_flags_explicit): Rename TargetSave entry to
17664 x_ix86_isa_flags_explicit.
17665
17666 2011-03-22 Richard Henderson <rth@redhat.com>
17667
17668 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17669 (alpha_option_override, direct_return): Likewise.
17670 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17671 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17672 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17673 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17674 (alpha_expand_epilogue, alpha_end_function): Likewise.
17675 (alpha_init_libfuncs): Likewise.
17676 (struct machine_function): Remove unicosmk members.
17677 (print_operand) ['t']: Remove.
17678 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17679 unicosmk_output_module_name, unicosmk_output_common,
17680 current_section_align, unicosmk_output_text_section_asm_op,
17681 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17682 unicosmk_section_type_flags, unicosmk_unique_section,
17683 unicosmk_asm_named_section, unicosmk_insert_attributes,
17684 unicosmk_output_align, unicosmk_defer_case_vector,
17685 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17686 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17687 unicosmk_output_ssib, unicosmk_add_call_info_word,
17688 unicosmk_extern_head, unicosmk_output_default_externs,
17689 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
17690 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
17691 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
17692 * config/alpha/alpha-protos.h: Update.
17693 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
17694 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
17695 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
17696 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
17697 (*mulsi_se, mulvsi3): Likewise.
17698 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
17699 (*divmodsi_internal, call, call_value, realign): Likewise.
17700 (moddi3, umoddi3): Likewise; remove duplicate expander.
17701 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
17702 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
17703 (*movdi_nofix): Remove r/U alternative.
17704 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
17705 * config/alpha/constraints.md ("U"): Remove.
17706 * config/alpha/predicates.md (call_operand"): Don't test
17707 TARGET_ABI_UNICOSMK.
17708
17709 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17710
17711 * target.def (handle_option): Take gcc_options and
17712 cl_decoded_option pointers and location_t.
17713 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
17714 * doc/tm.texi: Regenerate.
17715 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
17716 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
17717 * lto-opts.c (lto_reissue_options): Generate option structure for
17718 targetm.handle_option call.
17719 * opts.c (target_handle_option): Update call to
17720 targetm.handle_option. Remove assertions about values now passed
17721 down to hook.
17722 * targhooks.c (default_target_handle_option): New.
17723 * targhooks.h (default_target_handle_option): Declare.
17724 * config/alpha/alpha.c: Include opts.h.
17725 (alpha_handle_option): Update to new hook interface.
17726 * config/arm/arm.c: Include opts.h.
17727 (arm_handle_option): Update to new hook interface.
17728 * config/arm/t-arm (arm.o): Update dependencies.
17729 * config/bfin/bfin.c: Include opts.h.
17730 (bfin_handle_option): Update to new hook interface.
17731 * config/cris/cris.c: Include opts.h.
17732 (cris_handle_option): Update to new hook interface.
17733 * config/frv/frv.c: Include opts.h.
17734 (frv_handle_option): Update to new hook interface.
17735 * config/i386/i386.c: Include opts.h.
17736 (ix86_handle_option): Update to new hook interface.
17737 (ix86_valid_target_attribute_inner_p): Generate option structure
17738 for call to ix86_handle_option.
17739 * config/i386/t-i386 (i386.o): Update dependencies.
17740 * config/ia64/ia64.c: Include opts.h.
17741 (ia64_handle_option): Update to new hook interface.
17742 * config/ia64/t-ia64 (ia64.o): Update dependencies.
17743 * config/iq2000/iq2000.c: Include opts.h.
17744 (iq2000_handle_option): Update to new hook interface.
17745 * config/m32c/m32c.c: Include opts.h.
17746 (m32c_handle_option): Update to new hook interface.
17747 * config/m32r/m32r.c: Include opts.h.
17748 (m32r_handle_option): Update to new hook interface.
17749 * config/m68k/m68k.c: Include opts.h.
17750 (m68k_handle_option): Update to new hook interface.
17751 * config/mep/mep.c: Include opts.h.
17752 (mep_handle_option): Update to new hook interface.
17753 * config/microblaze/microblaze.c: Include opts.h.
17754 (microblaze_handle_option): Update to new hook interface.
17755 * config/mips/mips.c: Include opts.h.
17756 (mips_handle_option): Update to new hook interface.
17757 * config/mn10300/mn10300.c: Include opts.h.
17758 (mn10300_handle_option): Update to new hook interface.
17759 * config/pa/pa.c: Include opts.h.
17760 (pa_handle_option): Update to new hook interface.
17761 * config/pdp11/pdp11.c: Include opts.h.
17762 (pdp11_handle_option): Update to new hook interface.
17763 * config/rs6000/rs6000.c: Include opts.h.
17764 (rs6000_handle_option): Update to new hook interface.
17765 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
17766 * config/rx/rx.c: Include opts.h.
17767 (rx_handle_option): Update to new hook interface.
17768 * config/s390/s390.c: Include opts.h.
17769 (s390_handle_option): Update to new hook interface.
17770 * config/score/score.c: Include opts.h.
17771 (score_handle_option): Update to new hook interface.
17772 * config/sh/sh.c: Include opts.h.
17773 (sh_handle_option): Update to new hook interface.
17774 * config/sparc/sparc.c: Include opts.h.
17775 (sparc_handle_option): Update to new hook interface.
17776 * config/v850/v850.c: Include opts.h.
17777 (v850_handle_option): Update to new hook interface.
17778
17779 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17780
17781 * gcc.c (driver_unknown_option_callback): Only permit and save
17782 unknown -Wno- options.
17783 (driver_wrong_lang_callback): Save options directly instead of via
17784 driver_unknown_option_callback.
17785
17786 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
17787
17788 * combine.c (simplify_set): Try harder to find the best CC mode when
17789 simplifying a nested COMPARE on the RHS.
17790
17791 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17792
17793 * config/alpha/gnu.h: Remove.
17794 * config/arc: Remove directory.
17795 * config/arm/netbsd.h: Remove.
17796 * config/arm/t-pe: Remove.
17797 * config/crx: Remove directory.
17798 * config/i386/netbsd.h: Remove.
17799 * config/m68hc11: Remove directory.
17800 * config/m68k/uclinux-oldabi.h: Remove.
17801 * config/mcore/mcore-pe.h: Remove.
17802 * config/mcore/t-mcore-pe: Remove.
17803 * config/netbsd-aout.h: Remove.
17804 * config/rs6000/gnu.h: Remove.
17805 * config/sh/sh-symbian.h: Remove.
17806 * config/sh/symbian-base.c: Remove.
17807 * config/sh/symbian-c.c: Remove.
17808 * config/sh/symbian-cxx.c: Remove.
17809 * config/sh/symbian-post.h: Remove.
17810 * config/sh/symbian-pre.h: Remove.
17811 * config/sh/t-symbian: Remove.
17812 * config/svr3.h: Remove.
17813 * config/vax/netbsd.h: Remove.
17814 * config.build: Don't handle i[34567]86-*-pe.
17815 * config.gcc: Remove handling of deprecations for most deprecated
17816 targets.
17817 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
17818 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
17819 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
17820 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
17821 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
17822 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
17823 Remove cases.
17824 * config.host: Don't handle i[34567]86-*-pe.
17825 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
17826 (ASM_SPEC32): Don't handle -mcall-gnu.
17827 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
17828 -mcall-gnu.
17829 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
17830 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
17831 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17832 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
17833 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
17834 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
17835 conditional on SYMBIAN.
17836 * configure.ac: Don't handle powerpc*-*-gnu*.
17837 * configure: Regenerate.
17838 * doc/extend.texi (interrupt attribute): Don't mention CRX.
17839 * doc/install-old.texi (m6811, m6812): Don't mention.
17840 * doc/install.texi (arc-*-elf*): Don't document multilib option.
17841 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
17842 (m68k-uclinuxoldabi): Don't mention.
17843 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
17844 Remove.
17845 (-mcall-gnu): Remove.
17846 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
17847 families): Remove constraint documentation.
17848
17849 2011-03-22 Marius Strobl <marius@FreeBSD.org>
17850
17851 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
17852 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
17853 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
17854
17855 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
17856
17857 PR target/48226
17858 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
17859 vector when peeking at the next token for vector, don't expand the
17860 keywords.
17861
17862 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
17863
17864 * config/avr/avr-protos.h (expand_epilogue): Change prototype
17865 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
17866 * config/avr/avr.c (init_cumulative_args)
17867 (avr_function_arg_advance): Use it.
17868 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
17869 sibcall epilogues.
17870 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
17871 (avr_function_ok_for_sibcall): ...this new function.
17872 (avr_lookup_function_attribute1): New static Function.
17873 (avr_naked_function_p, interrupt_function_p)
17874 (signal_function_p, avr_OS_task_function_p)
17875 (avr_OS_main_function_p): Use it.
17876 * config/avr/avr.md ("sibcall", "sibcall_value")
17877 ("sibcall_epilogue"): New expander.
17878 ("*call_insn", "*call_value_insn"): New insn.
17879 ("call_insn", "call_value_insn"): Remove
17880 ("call", "call_value", "epilogue"): Change expander to handle
17881 sibling calls.
17882
17883 2011-03-21 Nick Clifton <nickc@redhat.com>
17884
17885 * doc/invoke.texi (Overall Options): Move closing brace to end of
17886 options list.
17887 (Optimization Options): Add missing @gol.
17888 (Directory Options): Likewise.
17889 (i386 and x86-64 Options): Likewise.
17890 (RS6000 and PowerPC Options): Likewise.
17891 (i386 and x86-64 Windows Options): Likewise.
17892 (V850 Options): Add text missing from descriptions.
17893
17894 2011-03-22 Richard Henderson <rth@redhat.com>
17895
17896 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
17897 (avr_incoming_return_addr_rtx): New.
17898 (emit_push_byte): New.
17899 (expand_prologue): Use it. Remove incorrect dwarf annotation for
17900 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
17901 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
17902 (emit_pop_byte): New.
17903 (expand_epilogue): Use it. Pop frame pointer by bytes.
17904 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
17905 (INCOMING_RETURN_ADDR_RTX): New.
17906 (INCOMING_FRAME_SP_OFFSET): New.
17907 (ARG_POINTER_CFA_OFFSET): New.
17908 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
17909 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
17910 (pophi): Remove.
17911
17912 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
17913
17914 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17915
17916 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17917 (FUNCTION_ARG_ADVANCE): Likewise.
17918 * tm.texi.in: Change references to them to hook references.
17919 * tm.texi: Regenerate.
17920 * targhooks.c (default_function_arg): Eliminate check for target
17921 macro.
17922 (default_function_incoming_arg): Likewise.
17923 (default_function_arg_advance): Likewise.
17924 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17925 (function_arg_advance): Likewise.
17926 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17927
17928 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17929
17930 * tree.c (build_call_1): New function.
17931 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
17932
17933 2011-03-22 Richard Guenther <rguenther@suse.de>
17934
17935 PR tree-optimization/48228
17936 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
17937 for single-arg PHIs.
17938
17939 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
17940
17941 PR rtl-optimization/48143
17942 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
17943 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
17944 sse2_cvtps2pd): Likewise.
17945
17946 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17947
17948 * recog.c (canonicalize_change_group): Use validate_unshare_change.
17949
17950 2011-03-22 Richard Guenther <rguenther@suse.de>
17951
17952 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
17953 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
17954 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
17955 and REALIGN_LOAD_EXPR.
17956 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
17957 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
17958 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
17959 DOT_PROD_EXPR case ...
17960 (expand_expr_real_2): ... here.
17961 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
17962 and REALIGN_LOAD_EXPR.
17963 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
17964 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
17965 (vect_create_epilog_for_reduction): Likewise.
17966 (vectorizable_reduction): Likewise.
17967 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
17968 * tree-vect-stmts.c (vectorizable_load): Likewise.
17969
17970 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
17971
17972 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
17973
17974 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17975
17976 * config/s390/s390.c (s390_delegitimize_address): Fix offset
17977 handling for PLTOFF/GOTOFF.
17978
17979 2011-03-22 Nick Clifton <nickc@redhat.com>
17980
17981 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
17982 trailing backslash from the end of the macro definition.
17983
17984 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17985
17986 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
17987 and PLT unspecs.
17988
17989 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
17990
17991 * expr.h (prepare_operand): Move to...
17992 * optabs.h (prepare_operand): ...here and change the insn code
17993 parameter from "int" to "enum insn_code".
17994 (insn_operand_matches): Declare.
17995 * expr.c (init_expr_target): Use insn_operand_matches.
17996 (compress_float_constant): Likewise.
17997 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
17998 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
17999 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
18000 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18001 Likewise.
18002 (gen_cond_trap): Likewise.
18003 (prepare_operand): Likewise. Change icode to an insn_code.
18004 (insn_operand_matches): New function.
18005 * reload.c (find_reloads_address_1): Use insn_operand_matches.
18006 * reload1.c (gen_reload): Likewise.
18007 * targhooks.c (default_secondary_reload): Likewise.
18008
18009 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
18010
18011 * config/alpha/alpha.md (unspec): New define_c_enum.
18012 (unspecv): Ditto.
18013
18014 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
18015
18016 PR debug/48214
18017 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18018 between a call and its CALL_ARG_LOCATION note.
18019
18020 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
18021
18022 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18023
18024 2011-03-21 Jakub Jelinek <jakub@redhat.com>
18025
18026 PR c/42544
18027 PR c/48197
18028 * c-common.c (shorten_compare): If primopN is first sign-extended
18029 to opN and then zero-extended to result type, set primopN to opN.
18030
18031 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
18032
18033 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18034 for barrier handlers.
18035
18036 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18037
18038 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18039 UNSPEC constants to be in the unspec enumeration, and redefine
18040 all UNSPECV constants to be in the unspecv enumeration, so that
18041 dumps print which unspec/unspec_volatile this is.
18042 * config/rs6000/vector.md (UNSPEC_*): Ditto.
18043 * config/rs6000/paired.md (UNSPEC_*): Ditto.
18044 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18045 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18046 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18047
18048 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18049 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18050 UNSPECV_LWSYNC, since these are used as unspec_volatile.
18051 * config/rs6000/sync.md (isync, lwsync): Ditto.
18052
18053 2011-03-21 Richard Guenther <rguenther@suse.de>
18054
18055 * params.def (lto-min-partition): Fix typo.
18056
18057 2011-03-21 Richard Guenther <rguenther@suse.de>
18058
18059 PR c/47939
18060 * c-decl.c (grokdeclarator): Drop to the main variant only
18061 for array types. Drop flag_gen_aux_info check.
18062
18063 2011-03-21 Richard Guenther <rguenther@suse.de>
18064
18065 PR translation/47911
18066 * params.def (lto-partitions): Fix typo.
18067 (lto-min-partition): Fix wording.
18068
18069 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
18070
18071 * config/rs6000/t-freebsd: Remove duplication from file.
18072
18073 2011-03-21 Richard Guenther <rguenther@suse.de>
18074
18075 PR middle-end/47661
18076 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18077
18078 2011-03-21 Richard Guenther <rguenther@suse.de>
18079
18080 PR lto/48210
18081 * params.def (lto-partitions): Require at least 1 partition.
18082
18083 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18084
18085 * gthr-solaris.h: Remove.
18086 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18087 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18088 (LIB_SPEC): Likewise.
18089 * config/sol2.opt (threads): Remove.
18090 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
18091 (sparc*-*-solaris2*): Likewise.
18092 * configure.ac (enable_threads): Enable solaris support.
18093 * configure: Regenerate.
18094 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
18095 * doc/install.texi (Configuration, --enable-threads=lib): Remove
18096 solaris.
18097
18098 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18099
18100 * config.gcc: Obsolete *-*-solaris2.8*.
18101 * doc/install.texi (Specific, *-*-solaris2*): Document it.
18102
18103 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18104
18105 PR bootstrap/48135
18106 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18107 reference. Solaris 8 perl works.
18108
18109 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18110
18111 PR bootstrap/48135
18112 * doc/install.texi (Prerequisites): Move jar etc. up.
18113 Explain support library version requirements.
18114
18115 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18116
18117 PR bootstrap/48135
18118 * doc/install.texi (Prerequisites): Move Perl to build
18119 requirements. Always necessary on Solaris 2 with Sun ld.
18120
18121 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18122
18123 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18124 binutils 2.21.
18125 (Specific, i?86-*-solaris2.[89]): Likewise.
18126 (Specific, i?86-*-solaris2.10): Likewise.
18127 (Specific, mips-sgi-irix6): Likewise.
18128 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18129 Update for binutils 2.21.
18130
18131 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18132
18133 * configure.ac (gcc_cv_lto_plugin): Fix typo.
18134 Allow -fuse-linker-plugin for non-default plugin linker.
18135 * configure: Regenerate.
18136
18137 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
18138
18139 PR bootstrap/48167
18140 * gengtype.c (files_rules): Added rule for cp/parser.h.
18141
18142 2011-03-21 Jakub Jelinek <jakub@redhat.com>
18143
18144 PR target/48213
18145 * config/s390/s390.c (s390_delegitimize_address): Don't call
18146 lowpart_subreg if orig_x has BLKmode.
18147
18148 2011-03-21 Kai Tietz <ktietz@redhat.com>
18149
18150 PR target/12171
18151 * doc/plugins.texi: Adjust documentation for plugin register_callback.
18152 * tree.h (attribute_spec): Add new member affects_type_identity.
18153 * attribs.c (empty_attribute_table): Adjust attribute_spec
18154 initializers.
18155 * config/alpha/alpha.c: Likewise.
18156 * config/arc/arc.c: Likewise.
18157 * config/arm/arm.c: Likewise.
18158 * config/avr/avr.c: Likewise.
18159 * config/bfin/bfin.c: Likewise.
18160 * config/crx/crx.c: Likewise.
18161 * config/darwin.h: Likewise.
18162 * config/h8300/h8300.c: Likewise.
18163 * config/i386/cygming.h: Likewise.
18164 * config/i386/i386.c: Likewise.
18165 * config/ia64/ia64.c: Likewise.
18166 * config/m32c/m32c.c: Likewise.
18167 * config/m32r/m32r.c: Likewise.
18168 * config/m68hc11/m68hc11.c: Likewise.
18169 * config/m68k/m68k.c: Likewise.
18170 * config/mcore/mcore.c: Likewise.
18171 * config/mep/mep.c: Likewise.
18172 * config/microblaze/microblaze.c: Likewise.
18173 * config/mips/mips.c: Likewise.
18174 * config/rs6000/rs6000.c: Likewise.
18175 * config/rx/rx.c: Likewise.
18176 * config/sh/sh.c: Likewise.
18177 * config/sol2.h: Likewise.
18178 * config/sparc/sparc.c: Likewise.
18179 * config/spu/spu.c: Likewise.
18180 * config/stormy16/stormy16.c: Likewise.
18181 * config/v850/v850.c: Likewise.
18182
18183 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
18184
18185 * simplify-rtx.c (simplify_binary_operation_1): Handle
18186 (xor (and A B) C) case when B and C are both constants.
18187
18188 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
18189
18190 * tree-dfa.c (add_referenced_var): Fix typo in comment.
18191
18192 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
18193
18194 PR bootstrap/48168
18195 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18196
18197 2011-03-20 Jakub Jelinek <jakub@redhat.com>
18198
18199 PR rtl-optimization/48156
18200 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18201 assume df and df_lr are not NULL.
18202
18203 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18204
18205 PR debug/48023
18206 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18207 between a call and its CALL_ARG_LOCATION note.
18208
18209 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
18210
18211 PR debug/48178
18212 * config/sh/sh.c (find_barrier): Don't emit a constant pool
18213 between a call and its corresponding CALL_ARG_LOCATION note.
18214
18215 2011-03-19 Anatoly Sokolov <aesok@post.ru>
18216
18217 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18218 instead of loop. Use HARD_REGISTER_NUM_P predicate.
18219 * haifa-sched.c (setup_ref_regs): Ditto.
18220 * caller-save.c (add_used_regs_1): Ditto.
18221 * dse.c (look_for_hardregs): Ditto.
18222 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18223 * sched-rgn.c (check_live_1): Ditto.
18224
18225 2011-03-18 Joseph Myers <joseph@codesourcery.com>
18226
18227 * c-decl.c (diagnose_mismatched_decls): Give an error for
18228 redefining a typedef with variably modified type.
18229
18230 2011-03-18 Joseph Myers <joseph@codesourcery.com>
18231
18232 * c-decl.c (grokfield): Don't allow typedefs for structures or
18233 unions with no tag by default.
18234 * doc/extend.texi (Unnamed Fields): Update.
18235
18236 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
18237
18238 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18239 Rewrite using indirect functions.
18240 (lwp_slwpcb): Ditto.
18241 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18242 (avx_vinsertf128<mode>): Ditto.
18243
18244 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18245
18246 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18247 unspecs.
18248
18249 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18250
18251 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
18252 splitting between a call and its corresponding CALL_ARG_LOCATION note.
18253
18254 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
18255
18256 PR rtl-optimization/48170
18257 * gcse.c (hoist_code): Remove bogus asserts.
18258
18259 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
18260
18261 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18262 computation for prologue/epilogue.
18263
18264 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18265
18266 * Makefile.in (check-consistency): Remove.
18267
18268 2011-03-18 Jakub Jelinek <jakub@redhat.com>
18269
18270 PR debug/48176
18271 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18272 arange_table_in_use is 0, but either text_section_used or
18273 cold_text_section_used is true. Don't call it if
18274 !info_section_emitted.
18275
18276 2011-03-18 Anatoly Sokolov <aesok@post.ru>
18277
18278 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18279 FUNCTION_VALUE_REGNO_P): Remove.
18280 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18281 Remove.
18282 * config/avr/avr.c (avr_ret_register): Make static inline.
18283 (avr_function_value_regno_p): New function.
18284 (avr_libcall_value): Make static. Add 'func' argument.
18285 (avr_function_value): Make static. Rename 'func' argument to
18286 'fn_decl_or_type', forward it to avr_libcall_value. Call
18287 avr_ret_register function instead of RET_REGISTER macro.
18288 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18289
18290 2011-03-18 Jason Merrill <jason@redhat.com>
18291
18292 PR c++/23372
18293 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18294
18295 2011-03-18 Richard Guenther <rguenther@suse.de>
18296
18297 * doc/install.texi (--enable-gold): Remove.
18298 (--with-plugin-ld): Document.
18299 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18300
18301 2011-03-18 Andrew Pinski <pinskia@gmail.com>
18302
18303 PR middle-end/47790
18304 * expr.c (optimize_bitfield_assignment_op): Revamp to work
18305 again after expansion changes.
18306
18307 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
18308
18309 * combine.c (try_combine): Do simplification only call of
18310 subst() on i2 even when i1 is present. Update comments.
18311
18312 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
18313
18314 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18315 and UNSPEC_PCREL_SYMOFF.
18316
18317 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18318
18319 * config/s390/s390.md: Use define_c_enum for the unspec constant
18320 definitions.
18321
18322 2011-03-18 Richard Henderson <rth@redhat.com>
18323 Jakub Jelinek <jakub@redhat.com>
18324
18325 PR bootstrap/48161
18326 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18327 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18328
18329 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18330
18331 PR middle-end/47725
18332 * combine.c (cant_combine_insn_p): Don't check zero/sign
18333 extended hard registers.
18334
18335 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18336
18337 PR middle-end/47725
18338 * combine.c (cant_combine_insn_p): Check zero/sign extended
18339 hard registers.
18340
18341 2011-03-17 Anatoly Sokolov <aesok@post.ru>
18342
18343 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18344 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18345 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18346 Change return type to bool.
18347 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18348
18349 2011-03-17 Jakub Jelinek <jakub@redhat.com>
18350
18351 PR debug/48163
18352 * var-tracking.c (prepare_call_arguments): If CALL target
18353 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18354 pc instead of looking it up using cselib_lookup and use
18355 Pmode for it if x has VOIDmode.
18356 * dwarf2out.c (gen_subprogram_die): If also both first and
18357 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18358
18359 PR debug/48163
18360 * function.c (assign_parms): For data.passed_pointer parms
18361 use MEM of data.entry_parm instead of data.entry_parm itself
18362 as DECL_INCOMING_RTL.
18363 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18364 also when passed and declared mode is the same, DECL_RTL
18365 is a MEM with pseudo as address and DECL_INCOMING_RTL is
18366 a MEM too.
18367
18368 2011-03-16 Jeff Law <law@redhat.com>
18369
18370 PR rtl-optimization/37273
18371 * ira-costs.c (scan_one_insn): Detect constants living in memory and
18372 handle them like argument loads from stack slots. Do not double
18373 count memory for memory constants and argument loads from stack slots.
18374
18375 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18376
18377 PR debug/48160
18378 * var-tracking.c (prepare_call_arguments): Check SUBREG.
18379
18380 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18381
18382 PR target/48171
18383 * config/i386/i386.opt: Add Save to -mavx and -mfma.
18384
18385 2011-03-17 Jakub Jelinek <jakub@redhat.com>
18386
18387 PR bootstrap/48153
18388 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18389 if dwarf_strict.
18390 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18391 Clear call_arg_locations and call_arg_loc_last always.
18392
18393 PR middle-end/48152
18394 * var-tracking.c (prepare_call_arguments): If argument needs to be
18395 passed by reference, adjust argtype and mode.
18396
18397 2011-03-17 Richard Guenther <rguenther@suse.de>
18398
18399 PR middle-end/48134
18400 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
18401 a value make sure to fold the statement.
18402
18403 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
18404
18405 PR target/43872
18406 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
18407 return condition with !cfun->calls_alloca.
18408
18409 2011-03-17 Richard Guenther <rguenther@suse.de>
18410
18411 PR bootstrap/48148
18412 * lto-cgraph.c (input_overwrite_node): Clear the abstract
18413 origin for decls in other ltrans units.
18414 (input_varpool_node): Likewise.
18415
18416 2011-03-17 Richard Guenther <rguenther@suse.de>
18417
18418 PR middle-end/48165
18419 * tree-object-size.c (compute_object_offset): Properly return
18420 the offset operand of MEM_REFs as sizetype.
18421
18422 2011-03-17 Jakub Jelinek <jakub@redhat.com>
18423
18424 PR rtl-optimization/48141
18425 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18426 * dse.c: Include params.h.
18427 (active_local_stores_len): New variable.
18428 (add_wild_read, dse_step1): Clear it when setting active_local_stores
18429 to NULL.
18430 (record_store, check_mem_read_rtx): Decrease it when removing
18431 from the chain.
18432 (scan_insn): Likewise. Increase it when adding to chain, if it
18433 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18434 set active_local_stores to NULL before the addition.
18435 * Makefile.in (dse.o): Depend on $(PARAMS_H).
18436
18437 PR rtl-optimization/48141
18438 * dse.c (record_store): If no positions are needed in an insn
18439 that cannot be deleted, at least unchain it from active_local_stores.
18440
18441 2011-03-16 Dodji Seketeli <dodji@redhat.com>
18442
18443 PR debug/47510
18444 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18445 (lookup_type_die_strip_naming_typedef): ... here.
18446 (get_context_die): Use it.
18447 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18448 the anonymous struct named by the naming typedef.
18449
18450 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
18451
18452 PR target/48154
18453 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18454 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18455
18456 2011-03-16 Jeff Law <law@redhat.com>
18457
18458 * tree-vrp.c (identify_jump_threads): Slightly simplify type
18459 check for operands of conditional. Allow type to be a pointer.
18460
18461 2011-03-16 Richard Guenther <rguenther@suse.de>
18462
18463 PR tree-optimization/48149
18464 * fold-const.c (fold_binary_loc): Fold
18465 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18466
18467 2011-03-16 Richard Guenther <rguenther@suse.de>
18468
18469 PR tree-optimization/26134
18470 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18471 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18472 (non_rewritable_mem_ref_base): Handle complex type component
18473 accesses, constrain offsets for vector and complex extracts
18474 more properly.
18475
18476 2011-03-16 Richard Guenther <rguenther@suse.de>
18477
18478 PR tree-optimization/48146
18479 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18480 operands avoiding the need for renaming.
18481
18482 2011-03-16 Richard Guenther <rguenther@suse.de>
18483
18484 * gimple-fold.c (maybe_fold_reference): Open-code relevant
18485 constant folding. Move MEM_REF canonicalization first.
18486 Rely on fold_const_aggregate_ref for initializer folding.
18487 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18488
18489 2011-03-16 Jakub Jelinek <jakub@redhat.com>
18490
18491 PR middle-end/48136
18492 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18493 arg0/arg1 or their arguments are always fold converted to matching
18494 types.
18495
18496 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18497 to nargs.
18498
18499 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18500
18501 PR lto/46944
18502 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18503 Handle in-tree gold.
18504 (ld_vers): Extract binutils version for gold.
18505 (gcc_cv_ld_hidden): Handle gold here.
18506 (gcc_cv_lto_plugin): Determine level of linker plugin support.
18507 * configure: Regenerate.
18508 * config.in: Regenerate.
18509 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18510 -fuse-linker-plugin otherwise.
18511 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
18512 (LINK_COMMAND_SPEC): Use it.
18513 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18514
18515 2011-03-16 Jakub Jelinek <jakub@redhat.com>
18516
18517 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18518 * calls.c: Remove debug.h include.
18519 (emit_call_1): Don't call virtual_call_token debug hook.
18520 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18521 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18522 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18523 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18524 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18525 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18526 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18527 dwarf2out_virtual_call): Remove.
18528 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18529 copy_call_info and virtual_call hooks.
18530 (dwarf2out_init): Don't initialize vcall_insn_table,
18531 debug_dcall_section and debug_vcall_section.
18532 (prune_unused_types): Don't mark nodes from dcall_table.
18533 (dwarf2out_finish): Don't output dcall or vcall tables.
18534 * final.c (final_scan_insn): Don't call direct_call or
18535 virtual_call debug hooks.
18536 * debug.h (struct gcc_debug_hooks): Remove direct_call,
18537 virtual_call_token, copy_call_info and virtual_call hooks.
18538 (debug_nothing_uid): Remove prototype.
18539 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18540 copy_call_info and virtual_call hooks.
18541 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18542 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18543 * debug.c (do_nothing_debug_hooks): Likewise.
18544 (debug_nothing_uid): Remove.
18545 * doc/invoke.texi (-fenable-icf-debug): Remove.
18546 * common.opt (-fenable-icf-debug): Likewise.
18547
18548 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18549 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18550 call's MEM. Handle functions returning aggregate through a hidden
18551 first pointer. For virtual calls add clobbered pc to call arguments
18552 chain.
18553 * dwarf2out.c (gen_subprogram_die): Emit
18554 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18555 can't be emitted.
18556
18557 PR debug/45882
18558 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18559 * rtl.h (ENTRY_VALUE_EXP): Define.
18560 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18561 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18562 * print-rtl.c (print_rtx): Likewise.
18563 * gengtype.c (adjust_field_rtx_def): Likewise.
18564 * var-tracking.c (vt_add_function_parameter): Adjust
18565 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18566 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18567 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18568 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18569 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18570
18571 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18572 Call var_location debug hook even on CALL_INSNs.
18573 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18574 * rtl.def (ENTRY_VALUE): New.
18575 * dwarf2out.c: Include cfglayout.h.
18576 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18577 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18578 (struct call_arg_loc_node): New type.
18579 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18580 tail_call_site_count): New variables.
18581 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18582 DW_TAG_GNU_call_site_parameter.
18583 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18584 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18585 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18586 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18587 and DW_AT_GNU_all_source_call_sites.
18588 (mem_loc_descriptor): Handle ENTRY_VALUE.
18589 (add_src_coords_attributes): Don't add enything if
18590 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18591 (dwarf2out_abstract_function): Save and clear call_arg_location,
18592 call_site_count and tail_call_site_count around dwarf2out_decl call.
18593 (gen_call_site_die): New function.
18594 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18595 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18596 (dwarf2out_function_decl): Clear call_arg_locations,
18597 call_arg_loc_last, set call_site_count and tail_call_site_count
18598 to -1 and free block_map.
18599 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18600 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
18601 followed by any real instructions.
18602 (dwarf2out_begin_function): Set call_site_count and
18603 tail_call_site_count to 0.
18604 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18605 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18606 attempt to force a DIE for it and worst case remove the attribute.
18607 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18608 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18609 the decl itself.
18610 * var-tracking.c: Include tm_p.h.
18611 (vt_stack_adjustments): For calls call note_register_arguments.
18612 (argument_reg_set): New variable.
18613 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18614 ensure the VALUE is resolved.
18615 (call_arguments): New variable.
18616 (prepare_call_arguments): New function.
18617 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18618 (struct expand_loc_callback_data): Add ignore_cur_loc field.
18619 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18620 always use the best expression.
18621 (vt_expand_loc): Add ignore_cur_loc argument.
18622 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18623 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18624 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18625 note for all calls.
18626 (vt_add_function_parameter): Use cselib_lookup_from_insn.
18627 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18628 argument. Don't call cselib_preserve_only_values and
18629 cselib_reset_table.
18630 (note_register_arguments): New function.
18631 (vt_initialize): Compute argument_reg_set. Call
18632 vt_add_function_parameters before processing basic blocks instead of
18633 afterwards. For calls call prepare_call_arguments before calling
18634 cselib_process_insn.
18635 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18636 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18637 (var-tracking.o): Depend on $(TM_P_H).
18638 * cfglayout.h (insn_scope): New prototype.
18639 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18640 * cfglayout.c (insn_scope): No longer static.
18641 * insn-notes.def (CALL_ARG_LOCATION): New.
18642 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18643 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18644 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18645 nothing for DECL_EXTERNAL BLOCK_VARS.
18646
18647 2011-03-16 Alan Modra <amodra@gmail.com>
18648
18649 PR target/45844
18650 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18651 create invalid offset address for vsx splat insn.
18652 * config/rs6000/predicates.md (splat_input_operand): New.
18653 * config/rs6000/vsx.md (vsx_splat_*): Use it.
18654
18655 2011-03-15 Xinliang David Li <davidxl@google.com>
18656
18657 PR c/47837
18658 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18659 (normalize_preds): New function.
18660 (is_use_properly_guarded): Normalize def predicates.
18661
18662 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18663
18664 PR target/46788
18665 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18666 in the output template.
18667
18668 2011-03-15 Richard Guenther <rguenther@suse.de>
18669
18670 PR middle-end/47650
18671 * tree-pretty-print.c (dump_function_declaration): Properly
18672 dump unprototyped and varargs function types.
18673
18674 2011-03-15 Richard Guenther <rguenther@suse.de>
18675
18676 PR tree-optimization/13954
18677 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18678 and friends.
18679
18680 2011-03-15 Richard Guenther <rguenther@suse.de>
18681
18682 PR tree-optimization/48037
18683 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18684 selects into BIT_FIELD_REFs.
18685 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18686 vector select.
18687
18688 2011-03-15 Jakub Jelinek <jakub@redhat.com>
18689
18690 PR tree-optimization/48129
18691 * builtins.c (fold_builtin_snprintf): Convert to type of
18692 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18693 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18694
18695 2011-03-15 Richard Guenther <rguenther@suse.de>
18696
18697 PR tree-optimization/41490
18698 * tree-ssa-dce.c (propagate_necessity): Handle returns without
18699 value but with VUSE.
18700 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
18701 return statements.
18702 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
18703 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
18704 * tree-tailcall.c (find_tail_calls): Ignore returns.
18705
18706 2011-03-15 Richard Guenther <rguenther@suse.de>
18707
18708 PR middle-end/48031
18709 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
18710 or variable-indexed array accesses when in gimple form.
18711
18712 2011-03-15 Richard Guenther <rguenther@suse.de>
18713
18714 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
18715
18716 2011-03-15 Alan Modra <amodra@gmail.com>
18717
18718 PR target/48032
18719 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
18720 presume symbol_refs without a symbol_ref_decl are suitably
18721 aligned, nor other trees we may see here. Handle anchor symbols.
18722 (legitimate_constant_pool_address_p): Comment. Add mode param.
18723 Check cmodel=medium addresses. Adjust all calls.
18724 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
18725 creating cmodel=medium optimized access to locals.
18726 * config/rs6000/constraints.md (R): Pass QImode to
18727 legitimate_constant_pool_address_p.
18728 * config/rs6000/predicates.md (input_operand): Pass mode to
18729 legitimate_constant_pool_address_p.
18730 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
18731 Update prototype.
18732
18733 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18734
18735 PR target/48053
18736 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
18737 64-bit constants being loaded into registers other than GPRs such
18738 as loading 0 into a VSX register.
18739
18740 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18741
18742 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
18743
18744 2011-03-14 Jakub Jelinek <jakub@redhat.com>
18745
18746 PR middle-end/47917
18747 * builtins.c (fold_builtin_snprintf): New function.
18748 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
18749 (fold_builtin_4): Likewise.
18750
18751 PR middle-end/38878
18752 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
18753 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
18754 and C - X == X also strip nops from +/-/p+ operand.
18755 When optimizing -X == C, fold C to arg0's type.
18756
18757 PR debug/47946
18758 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
18759 emit it as add_AT_int instead of add_AT_unsigned.
18760
18761 2011-03-14 Tom Tromey <tromey@redhat.com>
18762
18763 * unwind-dw2.c: Include sys/sdt.h if it exists.
18764 (_Unwind_DebugHook): Use STAP_PROBE2.
18765 * config.in, configure: Rebuild.
18766 * configure.ac: Check for sys/sdt.h.
18767
18768 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
18769
18770 * config/i386/i386.md (ROUND_FLOOR): New constant.
18771 (ROUND_CEIL): Ditto.
18772 (ROUND_TRUNC): Ditto.
18773 (ROUND_MXCSR): Ditto.
18774 (ROUND_NO_EXC): Ditto.
18775 (rint<mode>2): Use new defines instead of numerical constants.
18776 (floor<mode>2): Ditto.
18777 (ceil<mode>2): Ditto.
18778 (btrunc<mode>2): Ditto.
18779 * config/i386/i386-builtin-types.def: Define ROUND function type
18780 aliases.
18781 * config/i386/i386.c (enum ix86_builtins): Add
18782 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
18783 (struct builtin_description): Add
18784 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
18785 (ix86_expand_sse_round): New static function.
18786 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
18787 function types.
18788 (ix86_builtin_vectorized_function): Handle
18789 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18790
18791 2011-03-14 Tom Tromey <tromey@redhat.com>
18792
18793 * c-parser.c (c_parser_asm_string_literal): Clear
18794 warn_overlength_strings.
18795
18796 2011-03-14 Tom Tromey <tromey@redhat.com>
18797
18798 * c-parser.c (disable_extension_diagnostics): Save
18799 warn_overlength_strings.
18800 (restore_extension_diagnostics): Restore warn_overlength_strings.
18801
18802 2011-03-14 Jakub Jelinek <jakub@redhat.com>
18803
18804 * BASE-VER: Change to 4.7.0.
18805
18806 2011-03-14 Richard Guenther <rguenther@suse.de>
18807
18808 PR middle-end/48098
18809 * tree.c (build_vector_from_val): Adjust assert to requirements
18810 and reality.
18811
18812 2011-03-14 Jakub Jelinek <jakub@redhat.com>
18813
18814 PR bootstrap/48102
18815 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
18816
18817 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
18818
18819 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
18820 terms of target_flags_explicit. Adjust copyright year.
18821
18822 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
18823 * config/rs6000/t-freebsd: New file. Add override for
18824 LIB2FUNCS_EXTRA.
18825
18826 2011-03-13 Chris Demetriou <cgd@google.com>
18827
18828 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
18829 (-fno-diagnostics-show-option): this, to reflect current default.
18830 (-Werror=): Update text about -fno-diagnostics-show-option.
18831
18832 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
18833
18834 PR target/48053
18835 * config/rs6000/predicates.md (easy_vector_constant_add_self,
18836 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
18837 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
18838 mode is not V2DImode or V2DFmode.
18839 (vspltis_constant): Do not handle V2DImode and V2DFmode.
18840 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
18841 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
18842 registers to 0.
18843 (movdi_internal64): Likewise.
18844
18845 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
18846
18847 PR tree-optimization/47127
18848 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
18849 parameter.
18850 (set_cloog_options): Same.
18851 (scop_to_clast): Same.
18852 (print_clast_stmt): Do not call cloog_state_malloc and
18853 cloog_state_free.
18854 (print_generated_program): Same.
18855 (gloog): Same.
18856 * graphite-clast-to-gimple.h (cloog_state): Declared.
18857 (scop_to_clast): Adjust declaration.
18858 * graphite.c (cloog_state): Defined here.
18859 (graphite_initialize): Call cloog_state_malloc.
18860 (graphite_finalize): Call cloog_state_free.
18861
18862 2011-03-11 Jason Merrill <jason@redhat.com>
18863
18864 * attribs.c (lookup_attribute_spec): Take const_tree.
18865 * tree.h: Adjust.
18866
18867 2011-03-11 Joseph Myers <joseph@codesourcery.com>
18868
18869 * config/sparc/sparc.c (sparc_option_override): Use
18870 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
18871
18872 2011-03-11 Richard Guenther <rguenther@suse.de>
18873
18874 PR tree-optimization/48067
18875 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
18876 multiplication result will be only used once on the target
18877 stmt.
18878
18879 2011-03-11 Richard Guenther <rguenther@suse.de>
18880
18881 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
18882
18883 2011-03-11 Richard Guenther <rguenther@suse.de>
18884
18885 PR lto/48073
18886 * tree.c (find_decls_types_r): Do not walk types only reachable
18887 from IDENTIFIER_NODEs.
18888
18889 2011-03-11 Jakub Jelinek <jakub@redhat.com>
18890
18891 PR middle-end/48044
18892 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
18893 all vnode->force_output nodes as needed.
18894
18895 2011-03-11 Jason Merrill <jason@redhat.com>
18896
18897 PR c++/48069
18898 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
18899 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
18900
18901 2011-03-11 Martin Jambor <mjambor@suse.cz>
18902
18903 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
18904 cgraph_node.
18905
18906 2011-03-11 Jakub Jelinek <jakub@redhat.com>
18907
18908 PR tree-optimization/48063
18909 * ipa-inline.c (cgraph_decide_inlining): Don't try to
18910 inline functions called once if !tree_can_inline_p (node->callers).
18911
18912 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
18913
18914 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
18915 extra_objs.
18916 * config/score/score3.c: Delete.
18917 * config/score/score3.h: Delete.
18918 * config/score/mul-div.S: Delete.
18919 * config/score/sfp-machine.h: Add new file.
18920 * config/score/constraints.md: Add new file.
18921 * config/score/t-score-softfp: Add new file.
18922 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
18923 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
18924 (score7_extra_constraint): Delete.
18925 (score7_option_override): Remove unused code.
18926 * config/score/score.c: Remove score3 and score5 define and code.
18927 * config/score/score.h: Remove score3 and score5 define and code.
18928 * config/score/score.md: Remove score3 template and unusual insn.
18929 * config/score/score.opt: Remove score3 and score5 options.
18930
18931 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18932
18933 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
18934 when _HPUX_SOURCE is defined.
18935 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
18936
18937 2011-03-10 Jason Merrill <jason@redhat.com>
18938
18939 PR c++/48029
18940 * stor-layout.c (layout_type): Don't set structural equality
18941 on arrays of incomplete type.
18942 * tree.c (type_hash_eq): Handle comparing them properly.
18943
18944 2011-03-10 Jakub Jelinek <jakub@redhat.com>
18945
18946 PR debug/48043
18947 * config/s390/s390.c (s390_delegitimize_address): Make sure the
18948 result mode matches original rtl mode.
18949
18950 2011-03-10 Nick Clifton <nickc@redhat.com>
18951
18952 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
18953 (andsi3, andsi3_flags): Fix timings for three operand alternative.
18954
18955 2011-03-09 Jakub Jelinek <jakub@redhat.com>
18956
18957 PR rtl-optimization/47866
18958 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
18959 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
18960 if target wasn't scalar.
18961 * function.c (assign_stack_temp_for_type): Assert that neither
18962 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
18963 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
18964 macro.
18965 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
18966
18967 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18968
18969 * config/s390/s390-protos.h (s390_label_align): New prototype.
18970 * config/s390/s390.c (s390_label_align): New function.
18971 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
18972
18973 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
18974
18975 PR target/47755
18976 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
18977 V2DI/V2DF constants. Only all 0's or all 1's are easy.
18978 (output_vec_const_move): Ditto.
18979
18980 2011-03-08 Anatoly Sokolov <aesok@post.ru>
18981
18982 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
18983 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
18984 * config/mips/mips.c (mips_preferred_reload_class): Make static.
18985 Change 'rclass' argument and result type to reg_class_t.
18986 (TARGET_PREFERRED_RELOAD_CLASS): Define.
18987
18988 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
18989
18990 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18991 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
18992 (TARGET_MEMORY_MOVE_COST): Define.
18993 (avr_register_move_cost, avr_memory_move_cost): New Functions.
18994
18995 2011-03-08 Jakub Jelinek <jakub@redhat.com>
18996
18997 PR debug/47881
18998 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
18999 removed anything.
19000
19001 PR tree-optimization/48022
19002 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19003 for EQ/NE_EXPR.
19004
19005 2011-03-07 Jakub Jelinek <jakub@redhat.com>
19006
19007 PR debug/47991
19008 * var-tracking.c (find_use_val): Return NULL for
19009 cui->sets && cui->store_p BLKmode MEMs.
19010
19011 2011-03-07 Anatoly Sokolov <aesok@post.ru>
19012
19013 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19014 Remove.
19015 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19016 xstormy16_print_operand_address): Remove.
19017 * config/stormy16/stormy16.c (xstormy16_print_operand,
19018 xstormy16_print_operand_address): Make static.
19019 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19020
19021 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
19022
19023 PR target/47862
19024 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19025 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19026 before definition.
19027
19028 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
19029
19030 PR bootstrap/48000
19031 * cfgloopmanip.c (fix_bb_placements): Return immediately
19032 if FROM is BASE_LOOP's header.
19033
19034 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
19035
19036 * gimplify.c (gimplify_function_tree): Fix building calls
19037 to __builtin_return_address.
19038
19039 2011-03-07 Alan Modra <amodra@gmail.com>
19040
19041 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19042 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19043 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19044 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19045 return_mode args.
19046 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19047 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19048 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19049 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19050 * config/rs6000/rs6000.c
19051 (rs6000_elf_end_indicate_exec_stack): Rename to..
19052 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
19053 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
19054 (rs6000_file_start): ..here.
19055 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19056 file scope variables.
19057 (call_ABI_of_interest): New function.
19058 (init_cumulative_args): Set above vars when function return value
19059 is a float, vector, or small struct.
19060 (rs6000_function_arg_advance_1): Likewise for function args.
19061 (rs6000_va_start): Set rs6000_passes_float if variable arg function
19062 references float args.
19063
19064 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
19065
19066 * doc/cfg.texi: Remove "See" before @ref.
19067 * doc/invoke.texi: Likewise.
19068
19069 2011-03-05 Jason Merrill <jason@redhat.com>
19070
19071 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19072
19073 2011-03-05 Anthony Green <green@moxielogic.com>
19074
19075 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19076
19077 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
19078
19079 PR rtl-optimization/47899
19080 * cfgloopmanip.c (fix_bb_placements): Fix first argument
19081 to flow_loop_nested_p when moving the loop upward.
19082
19083 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
19084
19085 PR target/47719
19086 * arm.md (movhi_insn_arch4): Accept any immediate constant.
19087
19088 2011-03-05 Jakub Jelinek <jakub@redhat.com>
19089
19090 PR tree-optimization/47967
19091 * ipa-cp.c (build_const_val): Return NULL instead of creating
19092 VIEW_CONVERT_EXPR for mismatching sizes.
19093 (ipcp_create_replace_map): Return NULL if build_const_val failed.
19094 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19095 give up on versioning.
19096
19097 2011-03-05 Alan Modra <amodra@gmail.com>
19098
19099 PR target/47986
19100 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19101 full cmodel medium/large lo_sum + high addresses.
19102
19103 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19104
19105 * config/s390/s390.c (s390_decompose_address): Reject non-literal
19106 pool references in UNSPEC_LTREL_OFFSET.
19107
19108 2011-03-04 Jan Hubicka <jh@suse.cz>
19109
19110 PR lto/47497
19111 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19112 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
19113 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19114 Add node pointers.
19115 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19116 cgraph_add_thunk): Add node pointers.
19117 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19118 associated to right node.
19119 (input_node): Update use of cgraph_same_body_alias
19120 and cgraph_add_thunk.
19121
19122 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
19123
19124 * config/i386/i386.opt (mprefer-avx128): New flag.
19125 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19126 modes when the flag -mprefer-avx128 is on.
19127
19128 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
19129
19130 * dwarf2out.c (compare_loc_operands): Fix address handling.
19131
19132 2011-03-04 Alan Modra <amodra@gmail.com>
19133
19134 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19135
19136 2011-03-04 Richard Guenther <rguenther@suse.de>
19137
19138 PR middle-end/47968
19139 * expmed.c (extract_bit_field_1): Prefer vector modes that
19140 vec_extract patterns can handle.
19141
19142 2011-03-04 Richard Guenther <rguenther@suse.de>
19143
19144 PR middle-end/47975
19145 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19146
19147 2011-03-04 Richard Henderson <rth@redhat.com>
19148
19149 * explow.c (emit_stack_save): Remove 'after' parameter.
19150 (emit_stack_restore): Likewise.
19151 * expr.h: Update to match.
19152 * builtins.c, calls.c, stmt.c: Likewise.
19153 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19154 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19155 * function.c (expand_function_end): Insert the emit_stack_save
19156 sequence before parm_birth_insn instead of after.
19157
19158 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
19159
19160 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19161 (ssse3_pmaddubsw128): Ditto.
19162 (ssse3_pmaddubsw): Ditto.
19163
19164 2011-03-03 Steve Ellcey <sje@cup.hp.com>
19165
19166 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19167
19168 2011-03-03 Jakub Jelinek <jakub@redhat.com>
19169
19170 PR c/47963
19171 * gimplify.c (omp_add_variable): Only call omp_notice_variable
19172 on TYPE_SIZE_UNIT if it is a DECL.
19173
19174 PR debug/47283
19175 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19176 first operand is not is_gimple_mem_ref_addr, try to fold it.
19177 If the operand still isn't is_gimple_mem_ref_addr, clear
19178 MEM_EXPR on op0.
19179
19180 2011-03-03 Richard Guenther <rguenther@suse.de>
19181
19182 PR middle-end/47283
19183 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19184 match comment.
19185 (refs_may_alias_p_1): For release branches return true if
19186 we are confused by our input.
19187
19188 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19189
19190 * config/s390/s390.c (s390_function_value): Rename to ...
19191 (s390_function_and_libcall_value): ... this.
19192 (s390_function_value): New function.
19193 (s390_libcall_value): New function.
19194 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
19195 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19196 target macro definitions.
19197 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19198
19199 2011-03-02 Joseph Myers <joseph@codesourcery.com>
19200
19201 * config/i386/freebsd64.h (CC1_SPEC): Define.
19202 * config/i386/linux64.h (CC1_SPEC): Define.
19203 * config/i386/x86-64.h (CC1_SPEC): Don't define.
19204
19205 2011-03-02 Anatoly Sokolov <aesok@post.ru>
19206
19207 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19208 Remove.
19209 * config/stormy16/stormy16.c: Include reload.h.
19210 (xstormy16_memory_move_cost): New function.
19211 (TARGET_MEMORY_MOVE_COST): Define.
19212
19213 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
19214
19215 PR rtl-optimization/47925
19216 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19217 with side effects. Remove the more-specific check for volatile asms.
19218
19219 2011-03-02 Alan Modra <amodra@gmail.com>
19220
19221 PR target/47935
19222 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19223 toc relative addresses for valid offsets.
19224
19225 2011-03-01 Richard Guenther <rguenther@suse.de>
19226
19227 PR tree-optimization/47890
19228 * tree-vect-loop.c (get_initial_def_for_induction): Set
19229 related stmt properly.
19230
19231 2011-03-01 Richard Guenther <rguenther@suse.de>
19232
19233 PR lto/47924
19234 * lto-streamer.c (lto_record_common_node): Also register
19235 the canonical type.
19236
19237 2011-03-01 Richard Guenther <rguenther@suse.de>
19238
19239 PR lto/46911
19240 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19241 Do not stream DECL_ABSTRACT_ORIGIN.
19242 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19243 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19244 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19245 Do not stream DECL_ABSTRACT_ORIGIN.
19246 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19247 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19248
19249 2011-02-28 Anatoly Sokolov <aesok@post.ru>
19250
19251 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19252 FUNCTION_VALUE_REGNO_P): Remove.
19253 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
19254 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19255 Add 'outgoing' argument.
19256 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19257 function.
19258 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19259 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19260
19261 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
19262
19263 PR debug/28047
19264 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19265 (lookup_filename): Likewise.
19266 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
19267
19268 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
19269 Jakub Jelinek <jakub@redhat.com>
19270
19271 PR middle-end/47893
19272 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19273 (assign_stack_local_1): Change last argument type to int.
19274 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19275 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
19276 don't record padding space into frame_space_list nor use those areas.
19277 (assign_stack_local): Adjust caller.
19278 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19279 of assign_stack_local, pass 0 as last argument.
19280 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19281 callers.
19282
19283 2011-02-28 Jakub Jelinek <jakub@redhat.com>
19284
19285 PR debug/47283
19286 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19287 Use target address_mode and pointer_mode hooks instead of hardcoded
19288 Pmode and ptr_mode. Handle some simple cases of extending if
19289 POINTERS_EXTEND_UNSIGNED < 0.
19290 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19291 Call convert_debug_memory_address.
19292 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19293 convert_debug_memory_address.
19294
19295 PR middle-end/46790
19296 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19297 * configure: Regenerated.
19298 * config.in: Regenerated.
19299 * varasm.c (default_function_section): Return NULL
19300 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
19301
19302 2011-02-28 Martin Jambor <mjambor@suse.cz>
19303
19304 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19305 the description to match the printed values.
19306
19307 2011-02-28 Richard Guenther <rguenther@suse.de>
19308
19309 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19310 of the copied scope tree.
19311
19312 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19313
19314 * doc/extend.texi (Function Attributes): Avoid deeply (and
19315 wrongly) nested tables.
19316
19317 2011-02-27 Jakub Jelinek <jakub@redhat.com>
19318
19319 PR middle-end/47903
19320 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19321 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19322 r isn't op0 nor op1.
19323
19324 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
19325
19326 * config/avr/avr.md: Remove magic comment for emacs.
19327
19328 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
19329
19330 PR target/45261
19331 * config/avr/avr.c (avr_option_override): Use error on bad options.
19332 (avr_help): New function.
19333 (TARGET_HELP): Define.
19334
19335 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
19336
19337 PR target/42240
19338 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19339 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19340
19341 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
19342
19343 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19344 (ARM Options): Ditto.
19345 (i386 and x86-64 Options): Ditto.
19346 (RX Options): Ditto.
19347 (SPARC Options): Ditto.
19348
19349 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
19350
19351 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19352 FreeBSD 6 and later. Generally use cpu generic.
19353
19354 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
19355
19356 * doc/cpp.texi: Update copyright years.
19357
19358 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
19359
19360 PR target/46898
19361 * config/lm32/lm32.md (ashrsi3): Added needed variable.
19362
19363 2011-02-25 Jon Beniston <jon@beniston.com>
19364
19365 PR target/46898
19366 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19367 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19368 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19369 (lm32_block_move_inline): Add type cast to remove warning.
19370 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
19371 (gen_int_relational): Move declarations to start of function.
19372
19373 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
19374
19375 PR tree-optimization/45470
19376 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19377 can throw internally only.
19378 * tree-vect-stmts.c (vectorizable_call): Likewise.
19379
19380 2011-02-24 Anatoly Sokolov <aesok@post.ru>
19381
19382 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19383 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19384 * config/stormy16/stormy16-protos.h
19385 (xstormy16_preferred_reload_class): Remove.
19386 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19387 static. Change 'rclass' argument and return type to reg_class_t.
19388 (TARGET_PREFERRED_RELOAD_CLASS,
19389 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19390
19391 2011-02-24 Richard Guenther <rguenther@suse.de>
19392
19393 * lto-streamer-in.c (input_bb): Do not find referenced vars
19394 in debug statements.
19395
19396 2011-02-23 Jason Merrill <jason@redhat.com>
19397
19398 * common.opt (fabi-version): Document v5 and v6.
19399
19400 2011-02-23 Richard Guenther <rguenther@suse.de>
19401
19402 PR tree-optimization/47849
19403 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
19404
19405 2011-02-23 Jie Zhang <jie@codesourcery.com>
19406
19407 * opts-common.c (decode_cmdline_option): Print empty string
19408 argument as "" in decoded->orig_option_with_args_text.
19409 * gcc.c (execute): Print empty string argument as ""
19410 in the verbose output.
19411 (do_spec_1): Keep empty string argument.
19412
19413 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
19414
19415 * config.gcc: Declare score-* and crx-* obsolete.
19416
19417 2011-02-23 Jie Zhang <jie@codesourcery.com>
19418
19419 PR rtl-optimization/47763
19420 * web.c (web_main): Ignore naked clobber when replacing register.
19421
19422 2011-02-22 Anatoly Sokolov <aesok@post.ru>
19423
19424 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19425 Remove.
19426
19427 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
19428
19429 PR doc/47848
19430 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19431
19432 2011-02-22 Mike Stump <mikestump@comcast.net>
19433
19434 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19435 assembler.
19436 * configure: Regenerate.
19437
19438 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
19439
19440 PR rtl-optimization/46002
19441 * ira-color.c (update_copy_costs): Change class intersection
19442 test to reg_class_contents[] test of 'hard_regno'.
19443
19444 2011-02-21 Joseph Myers <joseph@codesourcery.com>
19445
19446 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19447 than Driver option.
19448 * config/hpux11.opt (mt): Likewise.
19449 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19450 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19451 * config/vax/elf.opt (mno-asm-pic): Likewise.
19452 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19453
19454 2011-02-21 Mike Stump <mikestump@comcast.net>
19455
19456 PR target/47822
19457 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19458 tree so we can get save the type.
19459 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19460 for CFString instead of trying to use past the end of the builtins.
19461 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19462 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19463 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19464 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19465 Rename to darwin_builtin_cfstring.
19466 (darwin_init_cfstring_builtins): Return the built type.
19467
19468 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
19469
19470 PR target/47840
19471 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19472 (_mm256_insert_epi64): Use _mm_insert_epi64.
19473
19474 2011-02-21 Anatoly Sokolov <aesok@post.ru>
19475
19476 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19477 * config/stormy16/stormy16-protos.h
19478 (xstormy16_mode_dependent_address_p): Remove.
19479 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19480 Make static. Change return type to bool. Change argument type to
19481 const_rtx. Remove dead code.
19482 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19483
19484 2011-02-21 Richard Guenther <rguenther@suse.de>
19485
19486 PR lto/47820
19487 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19488 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19489 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19490 TUs context.
19491 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19492 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19493
19494 2011-02-20 Richard Guenther <rguenther@suse.de>
19495
19496 PR lto/47822
19497 * tree.c (free_lang_data_in_decl): Clean builtins from
19498 the TU decl BLOCK_VARS.
19499
19500 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
19501
19502 PR debug/47620
19503 PR debug/47630
19504 * haifa-sched.c (fix_tick_ready): Skip tick computation
19505 for debug insns.
19506
19507 2011-02-19 Richard Guenther <rguenther@suse.de>
19508
19509 PR lto/47647
19510 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19511 Remove lazy BLOCK_VARS streaming.
19512 (lto_input_ts_block_tree_pointers): Likewise.
19513 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19514
19515 2011-02-19 Joseph Myers <joseph@codesourcery.com>
19516
19517 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19518
19519 2011-02-19 Joseph Myers <joseph@codesourcery.com>
19520
19521 * config/i386/biarch32.h, config/i386/mach.h,
19522 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19523
19524 2011-02-19 Jakub Jelinek <jakub@redhat.com>
19525
19526 PR target/47800
19527 * config/i386/i386.md (peephole2 for shift and plus): Use
19528 operands[1] original mode in the first insn.
19529
19530 2011-02-18 Mike Stump <mikestump@comcast.net>
19531
19532 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
19533
19534 2011-02-18 Jan Hubicka <jh@suse.cz>
19535
19536 PR middle-end/47788
19537 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19538 to zero when the function is not inlinable at all.
19539
19540 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19541
19542 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19543 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19544 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19545 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19546 * config/pa/t-pa64: Likewise.
19547 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19548
19549 2011-02-18 Jakub Jelinek <jakub@redhat.com>
19550
19551 PR driver/47787
19552 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19553
19554 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19555
19556 PR target/47792
19557 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19558
19559 2011-02-18 Anatoly Sokolov <aesok@post.ru>
19560
19561 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19562 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19563 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19564 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19565 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19566 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19567 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19568 m32r_load_postinc_p, m32r_store_preinc_predec_p,
19569 m32r_legitimate_address_p): New functions.
19570 * config/m32r/constraints.md (constraint "S"): Don't use
19571 STORE_PREINC_PREDEC_P.
19572 (constraint "U"): Don't use LOAD_POSTINC_P.
19573
19574 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
19575
19576 PR rtl-optimization/46178
19577 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19578 compute ira_hard_regno_cover_class[].
19579
19580 2011-02-18 Richard Guenther <rguenther@suse.de>
19581
19582 PR lto/47798
19583 * lto-streamer.h (lto_global_var_decls): Declare.
19584 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19585 statics for global var processing.
19586
19587 2011-02-18 Richard Guenther <rguenther@suse.de>
19588
19589 PR tree-optimization/47737
19590 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19591 edge dominance check.
19592
19593 2011-02-18 Jakub Jelinek <jakub@redhat.com>
19594
19595 PR debug/47780
19596 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19597 avoid invalid rtx sharing.
19598
19599 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
19600
19601 * doc/cpp.texi (Obsolete Features): Add background on the
19602 origin of assertions.
19603
19604 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
19605
19606 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
19607 objc_abi == 2.
19608 * config/darwin.c (output_objc_section_asm_op): Added support for
19609 ABI v1 and v2.
19610 (is_objc_metadata): New.
19611 (darwin_objc2_section): New.
19612 (darwin_objc1_section): New.
19613 (machopic_select_section): Added support for ABI v1 and v2.
19614 (darwin_emit_objc_zeroed): New.
19615 (darwin_output_aligned_bss): Detect objc metadata and treat it
19616 appropriately.
19617 (darwin_asm_output_aligned_decl_common): Same.
19618 (darwin_asm_output_aligned_decl_local): Same.
19619 * config/darwin-sections.def: Updated for ABI v1 and v2.
19620 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19621 compiling Objective-C code for the NeXT runtime, default to using
19622 ABI version 0 for 32-bit, and version 2 for 64-bit.
19623
19624 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19625
19626 * common.opt (optimize_fast): New Variable.
19627 * opts.c (default_options_optimization): Use opts->x_optimize_fast
19628 instead of local variable ofast.
19629
19630 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
19631
19632 * doc/invoke.texi (fobjc-abi-version): Documented.
19633 (fobjc-nilcheck): Documented.
19634 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19635 version.
19636
19637 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19638
19639 PR driver/47390
19640 * common.opt (export-dynamic): New Driver option.
19641 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19642
19643 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19644
19645 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19646
19647 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
19648 Jan Hubicka <jh@suse.cz>
19649
19650 PR debug/47106
19651 PR debug/47402
19652 * cfgexpand.c (account_used_vars_for_block): Remove.
19653 (estimated_stack_frame_size): Use referenced vars.
19654 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19655 that were referenced in the original function. Test src_fn
19656 rather than cfun. Drop redundant get_var_ann.
19657 (setup_one_parameter): Drop redundant get_var_ann.
19658 (declare_return_variable): Likewise.
19659 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19660 (copy_arguments_for_versioning): Drop redundant get_var_ann.
19661 * ipa-inline.c (compute_inline_parameters): Do not compute
19662 disregard_inline_limits here.
19663 (compute_inlinable_for_current, pass_inlinable): New.
19664 (pass_inline_parameters): Require PROP_referenced_vars.
19665 * cgraphunit.c (cgraph_process_new_functions): Don't run
19666 compute_inline_parameters explicitly unless function is in SSA form.
19667 (cgraph_analyze_function): Set .disregard_inline_limits.
19668 * tree-sra.c (convert_callers): Compute inliner parameters
19669 only for functions already in SSA form.
19670
19671 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19672
19673 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19674 -mlittle-endian-data.
19675
19676 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19677
19678 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19679 -mno-fpu, not -fpu and -no-fpu.
19680 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19681 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19682
19683 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
19684
19685 PR target/43653
19686 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19687 input reload with PLUS RTX.
19688
19689 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19690
19691 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19692 of InverseVar(MDMX).
19693
19694 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19695
19696 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19697 --m4-340.
19698
19699 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19700
19701 * config/mn10300/mn10300.opt (mno-crt0): New.
19702
19703 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19704
19705 * config/m68k/uclinux.opt (static-libc): New Driver option.
19706
19707 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19708
19709 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
19710
19711 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19712
19713 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
19714 %{muser-extend-enabled}.
19715
19716 2011-02-16 Richard Guenther <rguenther@suse.de>
19717
19718 PR tree-optimization/47738
19719 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
19720 the TODO from tree_predictive_commoning.
19721
19722 2011-02-15 Jeff Law <law@redhat.com>
19723
19724 Revert
19725 2011-01-25 Jeff Law <law@redhat.com>
19726
19727 PR rtl-optimization/37273
19728 * ira-costs.c (scan_one_insn): Detect constants living in memory and
19729 handle them like argument loads from stack slots. Do not double
19730 count memory for memory constants and argument loads from stack slots.
19731
19732 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
19733
19734 PR middle-end/47725
19735 * combine.c (cant_combine_insn_p): Revert the last change.
19736
19737 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
19738
19739 PR target/47755
19740 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
19741 mode for vector constants. Remove code that checks for TImode.
19742
19743 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
19744
19745 PR debug/47106
19746 PR debug/47402
19747 * cgraph.h (compute_inline_parameters): Return void.
19748 * ipa-inline.c (compute_inline_parameters): Adjust.
19749
19750 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
19751
19752 PR debug/47106
19753 PR debug/47402
19754 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
19755 rather than decl.
19756 * cfgexpand.c (estimated_stack_frame_size): Likewise.
19757 * ipa-inline.c (compute_inline_parameters): Adjust.
19758
19759 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
19760
19761 PR debug/47106
19762 PR debug/47402
19763 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
19764 Adjust all users. Pass FN to...
19765 * tree-flow-inline.h (first_referenced_var): ... this. Add
19766 fn argument.
19767 * ipa-struct-reorg.c: Adjust.
19768 * tree-dfa.c: Adjust.
19769 * tree-into-ssa.c: Adjust.
19770 * tree-sra.c: Adjust.
19771 * tree-ssa-alias.c: Adjust.
19772 * tree-ssa-live.c: Adjust.
19773 * tree-ssa.c: Adjust.
19774 * tree-ssanames.c: Adjust.
19775 * tree-tailcall.c: Adjust.
19776
19777 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
19778
19779 PR debug/47106
19780 PR debug/47402
19781 * tree-flow.h (referenced_var_lookup): Add fn parameter.
19782 Adjust all callers.
19783 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
19784 * tree-flow-inline.h: Adjust.
19785 * gimple-pretty-print.c: Adjust.
19786 * tree-into-ssa.c: Adjust.
19787 * tree-ssa.c: Adjust.
19788 * cfgexpand.c: Adjust.
19789
19790 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19791
19792 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
19793 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19794 (EXTRA_CONSTRAINT): Delete.
19795 * config/iq2000/constraints.md: New file.
19796 * config/iq2000/iq2000.md: Include it.
19797 (define_insn ""): Delete.
19798 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
19799 unsupported constraint letters from patterns.
19800 (call_value, call_value_internal1): Likewise.
19801 (call_value_multiple_internal1): Likewise.
19802
19803 2011-02-15 Nick Clifton <nickc@redhat.com>
19804
19805 * config/mn10300/mn10300.c: Include tm-constrs.h.
19806 (struct liw_data): New data structure describing an LIW candidate
19807 instruction.
19808 (extract_bundle): Use struct liw_data. Allow small integer
19809 operands for some instructions.
19810 (check_liw_constraints): Use struct liw_data. Remove swapped
19811 parameter. Add comments describing the checks. Fix bug when
19812 assigning the source of liw1 to the source of liw2.
19813 (liw_candidate): Delete. Code moved into extract_bundle.
19814 (mn10300_bundle_liw): Use struct liw_data. Check constraints
19815 before swapping.
19816 * config/mn10300/predicates.md (liw_operand): New predicate.
19817 Allows registers and small integer constants.
19818 * config/mn10300/constraints.md (O): New constraint. Accetps
19819 integers in the range -8 to +7 inclusive.
19820 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
19821 for moving a small integer into a register. Give this alternative
19822 LIW attributes.
19823 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
19824 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
19825 using the J,K,L and M constraints,
19826 (liw): Remove SI mode on second operands to allow for HI and QI
19827 mode values.
19828 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
19829 instruction.
19830
19831 2011-02-15 H.J. Lu <hongjiu.lu@intel.com>
19832
19833 PR middle-end/47725
19834 * combine.c (cant_combine_insn_p): Check zero/sign extended
19835 hard registers.
19836
19837 2011-02-15 Richard Guenther <rguenther@suse.de>
19838
19839 PR tree-optimization/47743
19840 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
19841 for a non-type-compatible VN lookup bail out.
19842
19843 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19844
19845 * config/fr30/constraints.md: New file.
19846 * config/fr30/fr30.md: Include it.
19847 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
19848 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19849 (EXTRA_CONSTRAINT): Delete.
19850
19851 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19852
19853 * config/frv/constraints.md: New file.
19854 * config/frv/predicates.md: Include it.
19855 * config/frv/frv.c (reg_class_from_letter): Delete.
19856 (frv_option_override): Don't initialize it.
19857 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
19858 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
19859 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
19860 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19861 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
19862 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19863 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
19864 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
19865 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
19866 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
19867 (REG_CLASS_FROM_CONSTRAINT): Delete.
19868
19869 2011-02-15 Jakub Jelinek <jakub@redhat.com>
19870
19871 PR middle-end/47581
19872 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
19873 if frame size is 0 in a leaf function.
19874
19875 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19876
19877 PR pch/14940
19878 * config/alpha/host-osf.c: New file.
19879 * config/alpha/x-osf: New file.
19880 * config.host (alpha*-dec-osf*): Use it.
19881
19882 2011-02-14 Anatoly Sokolov <aesok@post.ru>
19883
19884 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19885 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
19886 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
19887 (rx_mode_dependent_address_p): ...this. Make static. Change argument
19888 type to const_rtx.
19889 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19890
19891 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19892
19893 * config/stormy16/constraints.md: New file.
19894 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
19895 Use satisfies_constraint_Q and satisfies_constraint_R.
19896 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
19897 Delete.
19898 (xstormy16_legitiamte_address_p): Declare.
19899 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
19900 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19901 (EXTRA_CONSTRAINT): Delete.
19902 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
19903 Un-staticize.
19904 (xstormy16_extra_constraint_p): Delete.
19905
19906 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
19907
19908 PR tree-optimization/46494
19909 * loop-unroll.c (split_edge_and_insert): Adjust comment.
19910 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
19911 (pass_rtl_loop_done): Add TODO_verify_flow.
19912 * fwprop.c (pass_rtl_fwprop): Likewise.
19913 * modulo-sched.c (pass_sms): Likewise.
19914 * tree-ssa-dom.c (pass_dominator): Likewise.
19915 * tree-ssa-loop-ch.c (pass_ch): Likewise.
19916 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
19917 (pass_tree_loop_done): Likewise.
19918 * tree-ssa-pre.c (execute_pre): Likewise.
19919 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
19920 * tree-ssa-sink.c (pass_sink_code): Likewise.
19921 * tree-vrp.c (pass_vrp): Likewise.
19922
19923 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19924
19925 * config/v850/constraints.md: New file.
19926 * config/v850/v850.md: Include it.
19927 * config/v850/predicates.md (reg_or_0_operand): Use
19928 satisfies_constraint_G.
19929 (special_symbolref_operand): Use satisfies_constraint_K.
19930 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
19931 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
19932 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
19933 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19934 (EXTRA_CONSTRAINT): Delete.
19935 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
19936 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
19937 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
19938
19939 2011-02-14 Anatoly Sokolov <aesok@post.ru>
19940
19941 PR target/47696
19942 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
19943 description.
19944
19945 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19946
19947 * config/mcore/constraints.md: New file.
19948 * config/mcore/mcore.md: Include it.
19949 * config/mcore/mcore.c (reg_class_from_letter): Delete.
19950 * config/mcore/mcore.h (reg_class_from_letter): Delete.
19951 (REG_CLASS_FROM_LETTER): Delete.
19952 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
19953 insn_const_int_ok_for_constraint.
19954 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
19955 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
19956 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19957 (EXTRA_CONSTRAINT): Delete.
19958
19959 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19960
19961 PR ada/41929
19962 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
19963 (IS_SIGHANDLER): Define.
19964 (sparc64_is_sighandler): New function, split off from
19965 sparc64_fallback_frame_state.
19966 (sparc_is_sighandler): New function, split off from
19967 sparc_fallback_frame_state.
19968 (sparc64_fallback_frame_state): Merge with ...
19969 (sparc_fallback_frame_state): ... this into ...
19970 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
19971 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
19972 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
19973 stack instead of hardcoded offsets.
19974
19975 2011-02-14 Andriy Gapon <avg@freebsd.org>
19976
19977 PR target/45808
19978 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
19979
19980 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19981
19982 * configure: Regenerate.
19983
19984 2011-02-12 Joseph Myers <joseph@codesourcery.com>
19985
19986 PR driver/45731
19987 * gcc.c (asm_options): Correct spec matching --target-help.
19988
19989 2011-02-12 Martin Jambor <mjambor@suse.cz>
19990
19991 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
19992 to gimple call error.
19993
19994 2011-02-12 Mike Stump <mikestump@comcast.net>
19995
19996 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
19997 comments in backslash regions.
19998
19999 2011-02-12 Mike Stump <mikestump@comcast.net>
20000 Jakub Jelinek <jakub@redhat.com>
20001 Iain Sandoe <iains@gcc.gnu.org>
20002
20003 PR target/47324
20004 * dwarf2out.c (output_cfa_loc): When required, apply the
20005 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20006 (output_loc_sequence): Likewise.
20007 (output_loc_operands_raw): Likewise.
20008 (output_loc_sequence_raw): Likewise.
20009 (output_cfa_loc): Likewise.
20010 (output_loc_list): Suppress register number adjustment when
20011 calling output_loc_sequence()
20012 (output_die): Likewise.
20013
20014 2011-02-12 Anatoly Sokolov <aesok@post.ru>
20015
20016 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20017 Remove macros.
20018 * config/xtensa/xtensa.c (xtensa_register_move_cost,
20019 xtensa_memory_move_cost): New functions.
20020 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20021
20022 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
20023
20024 PR lto/47225
20025 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20026 in the current directory.
20027 * configure: Rebuilt.
20028
20029 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20030
20031 * config/darwin.c (darwin_override_options): Add a hunk missed
20032 from the commit of r168571. Trim comment line lengths and
20033 correct indents of the preceding block.
20034
20035 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20036
20037 * gcc.c (driver_handle_option): Concatenate the argument to -F with
20038 the switch.
20039
20040 2011-02-11 Joseph Myers <joseph@codesourcery.com>
20041
20042 * common.opt (nostartfiles): New Driver option.
20043
20044 2011-02-11 Xinliang David Li <davidxl@google.com>
20045
20046 PR tree-optimization/47707
20047 * tree-chrec.c (convert_affine_scev): Keep type precision.
20048
20049 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
20050
20051 PR tree-optimization/47420
20052 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20053
20054 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
20055
20056 PR rtl-optimization/47614
20057 * rtl.h (check_for_inc_dec): Declare.
20058 * dse.c (check_for_inc_dec): Externalize...
20059 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20060 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20061
20062 2011-02-11 Joseph Myers <joseph@codesourcery.com>
20063
20064 PR driver/47678
20065 * gcc.c (main): Do not compile inputs if there were errors in
20066 option handling.
20067 * opts-common.c (read_cmdline_option): Check for wrong language
20068 after other error checks.
20069
20070 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
20071
20072 * cgraph.c: Fix comment typos.
20073 * cgraph.h: Likewise.
20074 * cgraphunit.c: Likewise.
20075 * ipa-cp.c: Likewise.
20076 * ipa-inline.c: Likewise.
20077 * ipa-prop.c: Likewise.
20078 * ipa-pure-const.c: Likewise.
20079 * ipa-ref.c: Likewise.
20080 * ipa-reference.c: Likewise.
20081
20082 2011-02-11 Jakub Jelinek <jakub@redhat.com>
20083
20084 PR debug/47684
20085 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
20086
20087 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20088
20089 PR testsuite/47400
20090 * doc/sourcebuild.texi (Require Support): Document
20091 dg-require-ascii-locale.
20092
20093 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
20094
20095 * doc/lto.texi (Write summary): Fix missing parentheses.
20096
20097 2011-02-10 DJ Delorie <dj@redhat.com>
20098
20099 * config/m32c/m32c.c (m32c_option_override): Disable
20100 -fcombine-stack-adjustments until flag value tracking and compare
20101 optimization can be rewritten.
20102
20103 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
20104
20105 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20106 PROCESSOR_POWER7.
20107 (PROCESSOR_DEFAULT64): Likewise.
20108
20109 2011-02-10 Richard Henderson <rth@redhat.com>
20110
20111 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20112 change from 2011-02-03.
20113 * config/rx/rx.c (flags_from_code): Likewise.
20114 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20115 is valid, n/pz otherwise.
20116 (rx_select_cc_mode): Return CCmode if Y is not zero.
20117
20118 2011-02-10 Richard Guenther <rguenther@suse.de>
20119
20120 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
20121
20122 2011-02-10 Richard Guenther <rguenther@suse.de>
20123
20124 PR tree-optimization/47677
20125 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20126
20127 2011-02-10 Jakub Jelinek <jakub@redhat.com>
20128
20129 PR target/47665
20130 * combine.c (make_compound_operation): Only change shifts into
20131 multiplication for SCALAR_INT_MODE_P.
20132
20133 2011-02-10 Jie Zhang <jie@codesourcery.com>
20134
20135 PR testsuite/47622
20136 Revert
20137 2011-02-05 Jie Zhang <jie@codesourcery.com>
20138 PR debug/42631
20139 * web.c (entry_register): Don't clobber the number of the
20140 first uninitialized reference in used[].
20141
20142 2011-02-09 Richard Guenther <rguenther@suse.de>
20143
20144 PR tree-optimization/47664
20145 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20146 all edges again.
20147
20148 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
20149
20150 PR target/46481
20151 PR target/47032
20152 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20153 PROCESSOR_POWER7.
20154 (PROCESSOR_DEFAULT64): Same.
20155 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20156
20157 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20158
20159 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20160
20161 2011-02-09 Martin Jambor <mjambor@suse.cz>
20162
20163 PR middle-end/45505
20164 * tree-sra.c (struct access): New flags grp_scalar_read and
20165 grp_scalar_write. Changed description of assignment read and write
20166 flags.
20167 (dump_access): Dump new flags, reorder all of them.
20168 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20169 to detect multiple scalar reads.
20170 (analyze_access_subtree): Use the new scalar read write flags instead
20171 of the old flags. Adjusted comments.
20172
20173 2011-02-08 DJ Delorie <dj@redhat.com>
20174
20175 PR target/47548
20176 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20177 patterns.
20178
20179 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20180
20181 * config/m68k/uclinux.opt: New.
20182 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20183
20184 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20185
20186 * config/cris/elf.opt (sim): New Driver option.
20187
20188 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20189
20190 * config/xtensa/elf.opt: New.
20191 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20192
20193 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20194
20195 * config/vax/elf.opt: New.
20196 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20197
20198 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20199
20200 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20201
20202 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20203
20204 * config/gnu-user.opt: New.
20205 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20206 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20207 *-*-uclinux*): Use gnu-user.opt.
20208
20209 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
20210
20211 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20212 * config/i386/gnu.h (CPP_SPEC): Likewise.
20213
20214 2011-02-08 Ian Lance Taylor <iant@google.com>
20215
20216 * common.opt (fcx-limited-range): Add SetByCombined flag.
20217 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20218 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20219 (fassociative-math, freciprocal-math): Likewise.
20220 (funsafe-math-optimizations): Likewise.
20221 * opth-gen.awk: Handle SetByCombined.
20222 * optc-gen.awk: Likewise.
20223 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
20224 (set_unsafe_math_optimizations_flags): Likewise.
20225 * doc/options.texi (Option properties): Document SetByCombined.
20226
20227 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20228
20229 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20230 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20231 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20232 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20233 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20234
20235 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
20236
20237 PR tree-optimization/46834
20238 PR tree-optimization/46994
20239 PR tree-optimization/46995
20240 * graphite-sese-to-poly.c (used_outside_reduction): New.
20241 (detect_commutative_reduction): Call used_outside_reduction.
20242 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20243 translate_scalar_reduction_to_array only when at least one
20244 loop-phi/close-phi tuple has been detected.
20245
20246 2011-02-08 Richard Guenther <rguenther@suse.de>
20247
20248 PR middle-end/47639
20249 * tree-vect-generic.c (expand_vector_operations_1): Update
20250 stmts here ...
20251 (expand_vector_operations): ... not here. Cleanup EH info
20252 and the CFG if required.
20253
20254 2011-02-08 Richard Guenther <rguenther@suse.de>
20255
20256 PR tree-optimization/47641
20257 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20258 require type compatibility.
20259
20260 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20261
20262 * gimple-low.c (lower_function_body): Don't remove the location of
20263 the return statement here.
20264 (lower_gimple_return): Do it here instead but only if the return
20265 statement is actually used twice.
20266
20267 2011-02-08 Richard Guenther <rguenther@suse.de>
20268
20269 PR tree-optimization/47632
20270 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20271 unused up_to_stmt parameter, return whether cfg-cleanup is
20272 necessary, remove EH info properly.
20273 (forward_propagate_into_gimple_cond): Adjust caller.
20274 (forward_propagate_into_cond): Likewise.
20275 (forward_propagate_comparison): Likewise.
20276 (tree_ssa_forward_propagate_single_use_vars): Make
20277 forward_propagate_comparison case similar to the two others.
20278
20279 2011-02-08 Nick Clifton <nickc@redhat.com>
20280
20281 * config/mn10300/mn10300.opt (mliw): New command line option.
20282 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20283 (liw_bundling): New automaton.
20284 (liw): New attribute.
20285 (liw_op): New attribute.
20286 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20287 (movsi_internal): Add LIW attributes.
20288 (andsi3): Likewise.
20289 (iorsi3): Likewise.
20290 (xorsi3): Likewise.
20291 (addsi3): Separate register and immediate alternatives.
20292 Add LIW attributes.
20293 (subsi3): Likewise.
20294 (cmpsi): Likewise.
20295 (aslsi3): Likewise.
20296 (lshrsi3): Likewise.
20297 (ashrsi3): Likewise.
20298 (liw): New pattern.
20299 * config/mn10300/mn10300.c (liw_op_names): New
20300 (mn10300_print_operand): Handle 'W' operand descriptor.
20301 (extract_bundle): New function.
20302 (check_liw_constraints): New function.
20303 (liw_candidate): New function.
20304 (mn10300_bundle_liw): New function.
20305 (mn10300_reorg): New function.
20306 (TARGET_MACHINE_DEPENDENT_REORG): Define.
20307 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20308 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20309 __LIW__ or __NO_LIW__.
20310 * doc/invoke.texi: Describe the -mliw command line option.
20311
20312 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20313
20314 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20315 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20316 pthread_mutex_unlock): Remove.
20317 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20318 * config/pa/t-pa64: Likewise.
20319 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20320 shared libc if not linking against libpthread.
20321 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20322
20323 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
20324
20325 PR target/47558
20326 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20327 on 10.6 and later to ensure that we always use the unwinder from
20328 the system. Only add -no_compact_unwind when tarteting darwin
20329 10.6 or later.
20330
20331 2011-02-07 Steve Ellcey <sje@cup.hp.com>
20332
20333 PR target/46997
20334 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20335 (vec_interleave_lowv2sf): Ditto.
20336 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20337 (vec_extract_oddv2sf): Ditto.
20338
20339 2011-02-07 Mike Stump <mikestump@comcast.net>
20340
20341 PR target/42333
20342 Add __ieee_divdc3 entry point.
20343 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20344 entry point.
20345 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20346 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20347 * config/darwin.c (darwin_rename_builtins): Add.
20348 * config/darwin-protos.h (darwin_rename_builtins): Add.
20349
20350 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
20351
20352 PR target/47636
20353 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20354 for the condition.
20355
20356 2011-02-07 Mike Stump <mikestump@comcast.net>
20357
20358 * config/darwin.opt (mmacosx-version-min): Update default OS version.
20359
20360 2011-02-07 Denis Chertykov <chertykov@gmail.com>
20361
20362 PR target/47534
20363 * config/avr/libgcc.S (exit): Move .endfunc
20364
20365 2011-02-07 Richard Guenther <rguenther@suse.de>
20366
20367 PR tree-optimization/47615
20368 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20369 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20370 (run_scc_vn): Initialize it.
20371 (visit_reference_op_load): Use it.
20372 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20373
20374 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20375
20376 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20377 DImode trapping arithmetic libfuncs.
20378
20379 2011-02-07 Richard Guenther <rguenther@suse.de>
20380
20381 PR tree-optimization/47621
20382 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20383 two duplicates ...
20384 (execute_update_addresses_taken): ... here. Make it more
20385 conservative in what we accept.
20386
20387 2011-02-06 Joseph Myers <joseph@codesourcery.com>
20388
20389 * config/sparc/freebsd.h (ASM_SPEC): Define.
20390 * config/sparc/vxworks.h (ASM_SPEC): Define.
20391
20392 2011-02-06 Joseph Myers <joseph@codesourcery.com>
20393
20394 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20395
20396 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
20397
20398 * doc/invoke.texi: Remove reference to compiler internals from
20399 user documentation.
20400
20401 * reg-notes.def: Remove REG_VALUE_PROFILE.
20402 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20403
20404 2011-02-05 Jakub Jelinek <jakub@redhat.com>
20405
20406 PR middle-end/47610
20407 * varasm.c (default_section_type_flags): If decl is NULL,
20408 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
20409
20410 2011-02-05 Jie Zhang <jie@codesourcery.com>
20411
20412 PR debug/42631
20413 * web.c (entry_register): Don't clobber the number of the
20414 first uninitialized reference in used[].
20415
20416 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
20417
20418 PR tree-optimization/46194
20419 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
20420 (build_classic_dist_vector_1): Do not represent classic distance
20421 vectors when the access functions are variating in different loops.
20422
20423 2011-02-04 Joseph Myers <joseph@codesourcery.com>
20424
20425 * config/mips/iris6.opt: New.
20426 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20427
20428 2011-02-04 Richard Henderson <rth@redhat.com>
20429 Steve Ellcey <sje@cup.hp.com>
20430
20431 PR target/46997
20432 * config/ia64/predicates.md (mux1_brcst_element): New.
20433 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20434 * config/ia64/ia64.c (ia64_unpack_assemble): New.
20435 (ia64_unpack_sign): New.
20436 (ia64_expand_unpack): Rewrite using new routines.
20437 (ia64_expand_widen_sum): Ditto.
20438 (ia64_expand_dot_prod_v8qi): Ditto.
20439 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20440 routines, add endian check.
20441 (pmpy2_even): Rename from pmpy2_r, add endian check.
20442 (pmpy2_odd): Rename from pmpy2_l, add endian check.
20443 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20444 (vec_widen_smult_hi_v4hi): Ditto.
20445 (vec_widen_umult_lo_v4hi): Ditto.
20446 (vec_widen_umult_hi_v4hi): Ditto.
20447 (mulv2si3): Change endian checks.
20448 (sdot_prodv4hi): Rewrite with new calls.
20449 (udot_prodv4hi): New.
20450 (vec_pack_ssat_v4hi): Add endian check.
20451 (vec_pack_usat_v4hi): Ditto.
20452 (vec_pack_ssat_v2si): Ditto.
20453 (max1_even): Rename from max1_r, add endian check.
20454 (max1_odd): Rename from max1_l, add endian check.
20455 (*mux1_rev): Format change.
20456 (*mux1_mix): Ditto.
20457 (*mux1_shuf): Ditto.
20458 (*mux1_alt): Ditto.
20459 (*mux1_brcst_v8qi): Use new predicate.
20460 (vec_extract_evenv8qi): Remove endian check.
20461 (vec_extract_oddv8qi): Ditto.
20462 (vec_interleave_lowv4hi): Format change.
20463 (vec_interleave_highv4hi): Ditto.
20464 (mix2_even): Rename from mix2_r, add endian check.
20465 (mix2_odd): Rename from mux2_l, add endian check.
20466 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20467 (vec_extract_evenodd_helper): Format change.
20468 (vec_extract_evenv4hi): Remove endian check.
20469 (vec_extract_oddv4hi): Remove endian check.
20470 (vec_interleave_lowv2si): Format change.
20471 (vec_interleave_highv2si): Format change.
20472 (vec_initv2si): Remove endian check.
20473 (vecinit_v2si): Add endian check.
20474 (reduc_splus_v2sf): Add endian check.
20475 (reduc_smax_v2sf): Ditto.
20476 (reduc_smin_v2sf): Ditto.
20477 (vec_initv2sf): Remove endian check.
20478 (fpack): Add endian check.
20479 (fswap): Add endian check.
20480 (vec_interleave_highv2sf): Add endian check.
20481 (vec_interleave_lowv2sf): Add endian check.
20482 (fmix_lr): Add endian check.
20483 (vec_setv2sf): Format change.
20484 (*vec_extractv2sf_0_be): Use shift to extract operand.
20485 (*vec_extractv2sf_1_be): New.
20486 (vec_pack_trunc_v4hi): Add endian check.
20487 (vec_pack_trunc_v2si): Format change.
20488
20489 2011-02-04 Jakub Jelinek <jakub@redhat.com>
20490
20491 PR inline-asm/23200
20492 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
20493 do bb, locus and block comparison and disallow loads if it is not set.
20494 (stmt_is_replaceable_p): New function.
20495 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20496 callers.
20497 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20498 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20499 SSA_NAME_DEF_STMT.
20500 * tree-flow.h (stmt_is_replaceable_p): New prototype.
20501
20502 2011-02-04 Joseph Myers <joseph@codesourcery.com>
20503
20504 * config/rs6000/xilinx.opt: New.
20505 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20506
20507 2011-02-04 Joseph Myers <joseph@codesourcery.com>
20508
20509 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20510
20511 2011-02-03 Anatoly Sokolov <aesok@post.ru>
20512
20513 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20514 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20515 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20516 secondary_reload_info, xtensa_secondary_reload): Remove.
20517 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20518 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20519 (xtensa_preferred_reload_class): Make static. Change return and
20520 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20521 Use CONST_DOUBLE_P predicate.
20522 (xtensa_preferred_output_reload_class): New function.
20523 (xtensa_secondary_reload): Make static.
20524
20525 2011-02-03 Joseph Myers <joseph@codesourcery.com>
20526
20527 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20528 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20529 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20530
20531 2011-02-03 Jakub Jelinek <jakub@redhat.com>
20532
20533 PR middle-end/31490
20534 * output.h (SECTION_RELRO): Define.
20535 (SECTION_MACH_DEP): Adjust.
20536 (get_variable_section): New prototype.
20537 * varpool.c (varpool_finalize_named_section_flags): New function.
20538 (varpool_assemble_pending_decls): Call it.
20539 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20540 * cgraphunit.c (cgraph_output_in_order): Call
20541 varpool_finalize_named_section_flags.
20542 * varasm.c (get_section): Allow section flags conflicts between
20543 relro and read-only sections if the section hasn't been declared yet.
20544 Set SECTION_OVERRIDE after diagnosing section type conflict.
20545 (get_variable_section): No longer static.
20546 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20547 readonly sections that need relocations.
20548 (decl_readonly_section_1): New function.
20549 (decl_readonly_section): Use it.
20550
20551 Revert:
20552 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
20553 Steve Ellcey <sje@cup.hp.com>
20554
20555 PR middle-end/31490
20556 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20557 if section attribute used.
20558
20559 2011-02-03 Jakub Jelinek <jakub@redhat.com>
20560
20561 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20562 * config/darwin.c (SECTION_NO_ANCHOR): Define.
20563 (darwin_init_sections): Remove assertion.
20564
20565 2011-02-03 Nick Clifton <nickc@redhat.com>
20566
20567 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20568 lt and ge.
20569 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
20570 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20571 instead of "n" and "pz".
20572 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20573 CC_FLAG_S.
20574
20575 2011-02-03 Jakub Jelinek <jakub@redhat.com>
20576
20577 PR target/47312
20578 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20579 fma, expand FMA_EXPR as fma{,f,l} call.
20580
20581 PR lto/47274
20582 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20583 copy them into a unsigned char variable and pass address of it to
20584 lto_output_data_stream.
20585
20586 PR target/47564
20587 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20588 around backend_init_target and lang_dependent_init_target calls.
20589 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20590 (verify_cgraph_node): Don't call set_cfun here. Use
20591 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20592 Set error_found for incorrectly represented calls to thunks.
20593
20594 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
20595
20596 PR debug/43092
20597 PR rtl-optimization/43494
20598 * rtl.h (for_each_inc_dec_fn): New type.
20599 (for_each_inc_dec): Declare.
20600 * rtlanal.c (struct for_each_inc_dec_ops): New type.
20601 (for_each_inc_dec_find_inc_dec): New fn.
20602 (for_each_inc_dec_find_mem): New fn.
20603 (for_each_inc_dec): New fn.
20604 * dse.c (struct insn_size): Remove.
20605 (replace_inc_dec, replace_inc_dec_mem): Remove.
20606 (emit_inc_dec_insn_before): New fn.
20607 (check_for_inc_dec): Use it, along with for_each_inc_dec.
20608 (canon_address): Pass mem modes to cselib_lookup.
20609 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
20610 (cselib_lookup_from_insn): Likewise.
20611 (cselib_subst_to_values): Likewise.
20612 * cselib.c (find_slot_memmode): New var.
20613 (cselib_find_slot): New fn. Use it instead of
20614 htab_find_slot_with_hash everywhere.
20615 (entry_and_rtx_equal_p): Use find_slot_memmode.
20616 (autoinc_split): New fn.
20617 (rtx_equal_for_cselib_p): Rename and implement in terms of...
20618 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
20619 Deal with autoinc. Special-case recursion into MEMs.
20620 (cselib_hash_rtx): Likewise.
20621 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
20622 address and MEM modes.
20623 (cselib_subst_to_values): Add memmode, pass it on.
20624 Deal with autoinc.
20625 (cselib_lookup): Add memmode argument, pass it on.
20626 (cselib_lookup_from_insn): Add memmode.
20627 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20628 (struct cselib_record_autoinc_data): New.
20629 (cselib_record_autoinc_cb): New fn.
20630 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
20631 mode to cselib_lookup. Reset autoinced REGs here instead of...
20632 (cselib_process_insn): ... here.
20633 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20634 to cselib_lookup.
20635 (add_uses): Likewise, also to cselib_subst_to_values.
20636 (add_stores): Likewise.
20637 * sched-deps.c (add_insn_mem_dependence): Pass mode to
20638 cselib_subst_to_values.
20639 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
20640 * gcse.c (do_local_cprop): Adjusted.
20641 * postreload.c (reload_cse_simplify_set): Adjusted.
20642 (reload_cse_simplify_operands): Adjusted.
20643 * sel-sched-dump (debug_mem_addr_value): Pass mode.
20644
20645 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
20646
20647 PR tree-optimization/45122
20648 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20649 unsafe assumptions when there's more than one loop exit.
20650
20651 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
20652
20653 PR target/47272
20654 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20655 Document using vector double with the load/store builtins, and
20656 that the load/store builtins always use Altivec instructions.
20657
20658 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20659 to use altivec memory instructions, even on VSX.
20660 (vector_altivec_store_<mode>): Ditto.
20661
20662 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20663 function.
20664
20665 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20666 V2DF, V2DI support to load/store overloaded builtins.
20667
20668 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20669 altivec load/store builtins for V2DF/V2DI types.
20670
20671 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20672 set avoid indexed addresses on power6 if -maltivec.
20673 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20674 vector_altivec_load/vector_altivec_store builtins.
20675 (altivec_expand_st_builtin): Ditto.
20676 (altivec_expand_builtin): Add VSX memory builtins.
20677 (rs6000_init_builtins): Add V2DI types to internal types.
20678 (altivec_init_builtins): Add support for V2DF/V2DI altivec
20679 load/store builtins.
20680 (rs6000_address_for_altivec): Insure memory address is appropriate
20681 for Altivec.
20682
20683 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20684 vec_vsx_ld and vec_vsx_st.
20685 (vsx_store_<mode>): Ditto.
20686
20687 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20688 variables to hold long long types for VSX vector memory builtins.
20689 (RS6000_BTI_unsigned_long_long): Ditto.
20690 (long_long_integer_type_internal_node): Ditti.
20691 (long_long_unsigned_type_internal_node): Ditti.
20692
20693 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20694 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20695 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20696
20697 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20698 short cuts.
20699 (vec_vsx_st): Ditto.
20700
20701 2011-02-02 Joseph Myers <joseph@codesourcery.com>
20702
20703 * config/pa/pa-hpux10.opt: New.
20704 * config/hpux11.opt (pthread): New Driver option.
20705 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20706 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20707
20708 2011-02-02 Joseph Myers <joseph@codesourcery.com>
20709
20710 * config/ia64/vms.opt: New.
20711 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
20712
20713 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
20714
20715 PR target/47580
20716 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
20717 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
20718 generator functions.
20719 (vsx_floatuns<VSi><mode>2): Ditto.
20720 (vsx_fix_trunc<mode><VSi>2): Ditto.
20721 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
20722
20723 2011-02-02 Joseph Myers <joseph@codesourcery.com>
20724
20725 * config/i386/djgpp.opt (posix): New Driver option.
20726
20727 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
20728
20729 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
20730 Move to the unsupported targets list.
20731
20732 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
20733
20734 PR rtl-optimization/47525
20735 * df-scan.c: Update copyright years.
20736 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
20737 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
20738
20739 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20740
20741 * config/i386/sysv4.h (TARGET_VERSION): Remove.
20742 (SUBTARGET_RETURN_IN_MEMORY): Remove.
20743 (ASM_OUTPUT_ASCII): Remove.
20744 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
20745
20746 2011-02-02 Jeff Law <law@redhat.com>
20747
20748 PR middle-end/47543
20749 * reload.c (find_reloads_address): Handle reg+d address where both
20750 components are invalid by reloading the entire address.
20751
20752 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
20753 Richard Guenther <rguenther@suse.de>
20754
20755 PR tree-optimization/40979
20756 PR bootstrap/47044
20757 * passes.c (init_optimization_passes): After LIM call copy_prop
20758 and DCE to clean up.
20759 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
20760
20761 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
20762
20763 PR tree-optimization/47576
20764 PR tree-optimization/47555
20765 * doc/invoke.texi (scev-max-expr-complexity): Documented.
20766 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20767 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
20768 * tree-scalar-evolution.c (follow_ssa_edge): Use
20769 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
20770
20771 2011-02-02 Richard Guenther <rguenther@suse.de>
20772
20773 PR tree-optimization/47566
20774 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
20775
20776 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
20777
20778 PR debug/47106
20779 PR debug/47402
20780 * tree-inline.c (declare_return_variable): Remove unused caller
20781 variable.
20782
20783 PR debug/47106
20784 PR debug/47402
20785 * tree-flow-inline.h (clear_is_used, is_used_p): New.
20786 * cfgexpand.c (account_used_vars_for_block): Use them.
20787 * tree-nrv.c (tree_nrv): Likewise.
20788 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
20789 (dump_scope_block): Likewise.
20790 (remove_unused_locals): Likewise.
20791
20792 PR debug/47106
20793 PR debug/47402
20794 * tree-inline.c (declare_return_variable): Add result decl to
20795 local decls only once.
20796 * gimple-low.c (record_vars_into): Mark newly-created variables
20797 as referenced.
20798
20799 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
20800
20801 PR debug/47498
20802 PR debug/47501
20803 PR debug/45136
20804 PR debug/45130
20805 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20806 debug insns.
20807 (no_real_insns_p, schedule_block, set_priorities): Drop special
20808 treatment of boundary debug insns.
20809 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20810 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
20811 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20812 (BOUNDARY_DEBUG_INSN_P): Likewise.
20813 (SCHEDULE_DEBUG_INSN_P): Likewise.
20814 * sched-rgn.c (init_ready_list): Drop special treatment of
20815 boundary debug insns.
20816 * final.c (rest_of_clean_state): Clear notes' BB.
20817
20818 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20819
20820 * config/openbsd.opt (assert=): New Driver option.
20821
20822 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20823
20824 * config/i386/nto.opt: New.
20825 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
20826
20827 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20828
20829 * config/i386/netware.opt: New.
20830 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
20831
20832 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20833
20834 * config/interix.opt (posix): New Driver option.
20835
20836 2011-02-01 DJ Delorie <dj@redhat.com>
20837
20838 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
20839
20840 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
20841 class for A0/A1.
20842
20843 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
20844
20845 PR tree-optimization/47561
20846 * toplev.c (process_options): Print the Graphite flags. Add
20847 flag_loop_flatten to the list of options requiring Graphite.
20848
20849 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20850
20851 * config/i386/cygming.opt (posix): New Driver option.
20852
20853 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20854
20855 * config/arm/vxworks.opt: New.
20856 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
20857
20858 2011-02-01 Joseph Myers <joseph@codesourcery.com>
20859
20860 * config/alpha/elf.opt: New.
20861 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
20862 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
20863
20864 2011-02-01 Richard Guenther <rguenther@suse.de>
20865
20866 PR tree-optimization/47559
20867 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
20868 store-motion on references that can throw.
20869
20870 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
20871
20872 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
20873 * tree-pass.h (TDF_CSELIB): New macro.
20874 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
20875 cselib_lookup): Check for it rather than for TDF_DETAILS.
20876
20877 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
20878
20879 PR driver/47547
20880 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
20881 is HOST_BIT_BUCKET.
20882
20883 * opts.c (finish_options): Don't add x_aux_base_name if it is
20884 HOST_BIT_BUCKET.
20885
20886 2011-02-01 Richard Guenther <rguenther@suse.de>
20887
20888 PR tree-optimization/47555
20889 Revert
20890 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
20891
20892 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20893
20894 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
20895
20896 PR gcc/46692
20897 * config/lm32/t-lm32: Add multilib for all CPU options.
20898
20899 2011-02-01 Richard Guenther <rguenther@suse.de>
20900
20901 PR tree-optimization/47541
20902 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20903 sure to have a field at offset zero.
20904
20905 2011-01-31 Joseph Myers <joseph@codesourcery.com>
20906
20907 * config/arc/arc.opt (EB, EL): New Driver options.
20908
20909 2011-01-31 Joseph Myers <joseph@codesourcery.com>
20910
20911 * config/alpha/osf5.opt: New.
20912 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
20913
20914 2011-01-31 Joseph Myers <joseph@codesourcery.com>
20915
20916 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
20917
20918 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
20919
20920 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
20921 -floop-interchange.
20922 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
20923 is an alias of -floop-interchange and that it requires the
20924 Graphite infrastructure.
20925 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
20926 flag_loop_interchange based on the value of flag_tree_loop_linear.
20927
20928 2011-01-31 Jakub Jelinek <jakub@redhat.com>
20929 Richard Guenther <rguenther@suse.de>
20930
20931 PR tree-optimization/47538
20932 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
20933 type instead of r1type, except for comparisons. For right
20934 shifts and comparisons punt if there are mismatches in
20935 sizetype vs. non-sizetype types.
20936
20937 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20938
20939 * doc/sourcebuild.texi (Effective-Target Keywords): Document
20940 avx_runtime.
20941
20942 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20943
20944 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
20945 version number.
20946 * configure: Regenerate.
20947
20948 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20949
20950 * configure.ac (gcc_cv_ld_static_option): Define.
20951 (gcc_cv_ld_dynamic_option): Define.
20952 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
20953 instead.
20954 (HAVE_LD_STATIC_DYNAMIC): Update message.
20955 (LD_STATIC_OPTION): Define.
20956 (LD_DYNAMIC_OPTION): Define.
20957 * configure: Regenerate.
20958 * config.in: Regenerate.
20959 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
20960 HAVE_LD_STATIC_DYNAMIC]: Use them.
20961
20962 2011-01-31 Nick Clifton <nickc@redhat.com>
20963
20964 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
20965 registers inside interrupt handlers if the handler is not a leaf
20966 function.
20967
20968 2011-01-31 Nick Clifton <nickc@redhat.com>
20969
20970 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
20971 reg_renumber returning an INVALID_REGNUM.
20972
20973 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
20974
20975 PR libgcj/44341
20976 * doc/install.texi: Document host options discarded when cross
20977 configuring target libraries.
20978
20979 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
20980
20981 Reverted:
20982 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
20983 PR debug/45136
20984 PR debug/45130
20985 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20986 debug insns.
20987 (no_real_insns_p, schedule_block, set_priorities): Drop special
20988 treatment of boundary debug insns.
20989 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
20990 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20991 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20992 (BOUNDARY_DEBUG_INSN_P): Likewise.
20993 (SCHEDULE_DEBUG_INSN_P): Likewise.
20994 * sched-rgn.c (init_ready_list): Drop special treatment of
20995 boundary debug insns.
20996 * final.c (rest_of_clean-state): Clear notes' BB.
20997
20998 2011-01-31 Alan Modra <amodra@gmail.com>
20999
21000 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21001 toc relative expressions as we do in print_operand_address.
21002
21003 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
21004
21005 * doc/extend.texi: Follow spelling conventions.
21006 * doc/invoke.texi: Fix a typo.
21007
21008 2011-01-30 Joseph Myers <joseph@codesourcery.com>
21009
21010 * config/hpux11.opt: New.
21011 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21012 ia64*-*-hpux*): Use hpux11.opt.
21013
21014 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
21015
21016 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21017 to tmake_file.
21018
21019 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21020
21021 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21022 support sites.
21023
21024 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21025
21026 * doc/install.texi (Binaries): Remove outdated reference for
21027 Motorola 68HC11/68HC12 downloads.
21028
21029 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21030
21031 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21032 Drepper's paper.
21033
21034 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
21035
21036 PR bootstrap/47147
21037 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21038 used by NetBSD.
21039
21040 2011-01-28 Ahmad Sharif <asharif@google.com>
21041
21042 * value-prof.c (check_counter): Corrected error message.
21043
21044 2011-01-29 Jie Zhang <jie@codesourcery.com>
21045
21046 * config/arm/arm.c (arm_legitimize_reload_address): New.
21047 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21048 arm_legitimize_reload_address.
21049 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
21050
21051 2011-01-28 Ian Lance Taylor <iant@google.com>
21052
21053 * godump.c (go_define): Ignore macros whose definitions include
21054 two adjacent operands.
21055
21056 2011-01-28 Jakub Jelinek <jakub@redhat.com>
21057
21058 PR target/42894
21059 * varasm.c (force_const_mem): Store copy of x in desc->constant
21060 instead of x itself.
21061 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21062 itself into REG_EQUAL note.
21063
21064 2011-01-28 Joseph Myers <joseph@codesourcery.com>
21065
21066 * config/freebsd.opt (posix, rdynamic): New Driver options.
21067
21068 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21069
21070 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21071 -Bstatic/-Bdynamic.
21072 * configure: Regenerate.
21073
21074 2011-01-27 Joseph Myers <joseph@codesourcery.com>
21075
21076 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21077 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21078
21079 2011-01-27 Anatoly Sokolov <aesok@post.ru>
21080
21081 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21082 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21083 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21084 (s390_preferred_reload_class): Make static. Change return and
21085 'rclass' argument type to reg_class_t.
21086
21087 2011-01-27 Jan Hubicka <jh@suse.cz>
21088
21089 PR middle-end/46949
21090 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21091 (process_function_and_variable_attributes): Check defined weakrefs.
21092
21093 2011-01-27 Martin Jambor <mjambor@suse.cz>
21094
21095 PR tree-optimization/47228
21096 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21097 build_ref_for_offset.
21098
21099 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21100
21101 * config/spu/spu-elf.h (ASM_SPEC): Remove.
21102
21103 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
21104
21105 PR rtl-optimization/46856
21106 * postreload.c (reload_combine_recognize_const_pattern): Do not
21107 separate cc0 setter and user on cc0 targets.
21108
21109 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
21110
21111 PR c/43082
21112 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21113 passed a VOID_TYPE expression, immediately emit an error and
21114 return error_mark_node.
21115
21116 2011-01-26 Jeff Law <law@redhat.com>
21117
21118 PR rtl-optimization/47464
21119 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21120 rather than may_trap_p as needed.
21121
21122 2011-01-26 DJ Delorie <dj@redhat.com>
21123
21124 PR rtl-optimization/46878
21125 * combine.c (insn_a_feeds_b): Check for the implicit cc0
21126 setter/user dependency as well.
21127
21128 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
21129
21130 PR rtl-optimization/44469
21131 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21132 after removing trivially dead basic blocks.
21133
21134 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21135
21136 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21137 * config/frv/frv.h (LINK_SPEC): Likewise.
21138 * config/i386/netware.h (LINK_SPEC): Likewise.
21139 * config/m68k/linux.h (ASM_SPEC): Likewise.
21140 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21141 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21142 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21143 * config/sparc/linux.h (ASM_SPEC): Likewise.
21144 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21145 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21146
21147 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21148
21149 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21150 * config/frv/frv.h (ASM_SPEC): Likewise.
21151 * config/m68k/linux.h (ASM_SPEC): Likewise.
21152 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21153 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21154 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21155 * config/sparc/linux.h (ASM_SPEC): Likewise.
21156 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21157 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21158
21159 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21160
21161 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21162 * config/frv/frv.h (LINK_SPEC): Likewise.
21163 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21164
21165 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21166
21167 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21168 * config/frv/frv.h (ASM_SPEC): Likewise.
21169 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21170 * config/m68k/linux.h (ASM_SPEC): Likewise.
21171 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21172 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21173 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21174 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21175 * config/sparc/linux.h (ASM_SPEC): Likewise.
21176 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21177 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21178 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21179
21180 2011-01-26 Steve Ellcey <sje@cup.hp.com>
21181
21182 PR target/46997
21183 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21184 (*mux2): Ditto.
21185 (vec_extract_evenodd_help): Ditto.
21186 (vec_extract_evenv4hi): Ditto.
21187 (vec_extract_oddv4hi): Ditto.
21188 (vec_interleave_lowv2si): Ditto.
21189 (vec_interleave_highv2si): Ditto.
21190 (vec_extract_evenv2si): Ditto.
21191 (vec_extract_oddv2si: Ditto.
21192 (vec_pack_trunc_v2si): Ditto.
21193
21194 2011-01-22 Jan Hubicka <jh@suse.cz>
21195
21196 PR target/47237
21197 * cgraph.h (cgraph_local_info): New field can_change_signature.
21198 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21199 signature can change.
21200 (ipcp_estimate_growth): Call sequence simplify only if calle signature
21201 can change.
21202 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21203 (cgraph_function_versioning): We can not change signature of functions
21204 that don't allow that.
21205 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21206 (lto_input_node): Likewise.
21207 * ipa-inline.c (compute_inline_parameters): Compute
21208 local.can_change_signature.
21209 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
21210 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21211 functions that can not change signature.
21212 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
21213 init_cumulative_args): Do not use local calling conventions
21214 for functions that can not change signature.
21215
21216 2011-01-22 Jan Hubicka <jh@suse.cz>
21217
21218 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21219
21220 2011-01-26 Richard Guenther <rguenther@suse.de>
21221
21222 PR tree-optimization/47190
21223 * cgraphunit.c (process_common_attributes): New function.
21224 (process_function_and_variable_attributes): Use it.
21225
21226 2011-01-26 Richard Guenther <rguenther@suse.de>
21227
21228 PR lto/47423
21229 * cgraphbuild.c (record_eh_tables): Record reference to personality
21230 function.
21231
21232 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
21233
21234 PR debug/45454
21235 * sel-sched.c (moveup_expr): Don't let debug insns prevent
21236 non-debug insns from moving up.
21237
21238 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21239
21240 PR target/40125
21241 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21242 t-dlldir{,-x} fragment for build and add it to tmake_file.
21243 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21244 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21245 * config/i386/t-dlldir: New file.
21246 (SHLIB_DLLDIR): Define.
21247 * config/i386/t-dlldir-x: New file.
21248 (SHLIB_DLLDIR): Define.
21249 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21250 (SHLIB_INSTALL): Use it.
21251
21252 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
21253
21254 PR target/47246
21255 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21256 lower bound of the allowed Thumb-2 coprocessor load/store
21257 index range to -256. Add explaining comment.
21258
21259 2011-01-25 Ian Lance Taylor <iant@google.com>
21260
21261 * godump.c (go_define): Improve lexing of macro expansion to only
21262 accept expressions which match Go spec.
21263
21264 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21265
21266 PR c++/43601
21267 * tree.c (handle_dll_attribute): Handle it.
21268 * doc/extend.texi (@item dllexport): Mention it.
21269 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21270
21271 2011-01-25 Ian Lance Taylor <iant@google.com>
21272
21273 PR tree-optimization/26854
21274 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21275 (decl_jump_unsafe): Move higher in file, with no other change.
21276 (bind): Set has_jump_unsafe_decl if appropriate.
21277 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21278 (check_earlier_gotos): Likewise.
21279 (c_check_switch_jump_warnings): Likewise.
21280
21281 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
21282
21283 * doc/invoke.texi (Warning Options): Add missing hyphen.
21284 (-fprofile-dir): Minor grammatical fixes.
21285 (-fbranch-probabilities): Likewise.
21286
21287 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
21288
21289 PR debug/45136
21290 PR debug/45130
21291 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21292 debug insns.
21293 (no_real_insns_p, schedule_block, set_priorities): Drop special
21294 treatment of boundary debug insns.
21295 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21296 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21297 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21298 (BOUNDARY_DEBUG_INSN_P): Likewise.
21299 (SCHEDULE_DEBUG_INSN_P): Likewise.
21300 * sched-rgn.c (init_ready_list): Drop special treatment of
21301 boundary debug insns.
21302 * final.c (rest_of_clean-state): Clear notes' BB.
21303
21304 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21305
21306 * Makefile.in (LAMBDA_H): Removed.
21307 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21308 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21309 lambda-trans.o, and tree-loop-linear.o.
21310 (lto-symtab.o): Remove dependence on LAMBDA_H.
21311 (tree-loop-linear.o): Remove rule.
21312 (lambda-mat.o): Same.
21313 (lambda-trans.o): Same.
21314 (lambda-code.o): Same.
21315 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21316 (tree-vect-slp.o): Same.
21317 * hwint.h (gcd): Moved here.
21318 (least_common_multiple): Same.
21319 * lambda-code.c: Removed.
21320 * lambda-mat.c: Removed.
21321 * lambda-trans.c: Removed.
21322 * lambda.h: Removed.
21323 * tree-loop-linear.c: Removed.
21324 * lto-symtab.c: Do not include lambda.h.
21325 * omega.c (gcd): Removed.
21326 * passes.c (init_optimization_passes): Remove pass_linear_transform.
21327 * tree-data-ref.c (print_lambda_vector): Moved here.
21328 (lambda_vector_copy): Same.
21329 (lambda_matrix_copy): Same.
21330 (lambda_matrix_id): Same.
21331 (lambda_vector_first_nz): Same.
21332 (lambda_matrix_row_add): Same.
21333 (lambda_matrix_row_exchange): Same.
21334 (lambda_vector_mult_const): Same.
21335 (lambda_vector_negate): Same.
21336 (lambda_matrix_row_negate): Same.
21337 (lambda_vector_equal): Same.
21338 (lambda_matrix_right_hermite): Same.
21339 * tree-data-ref.h: Do not include lambda.h.
21340 (lambda_vector): Moved here.
21341 (lambda_matrix): Same.
21342 (dependence_level): Same.
21343 (lambda_transform_legal_p): Removed declaration.
21344 (lambda_collect_parameters): Same.
21345 (lambda_compute_access_matrices): Same.
21346 (lambda_vector_gcd): Same.
21347 (lambda_vector_new): Same.
21348 (lambda_vector_clear): Same.
21349 (lambda_vector_lexico_pos): Same.
21350 (lambda_vector_zerop): Same.
21351 (lambda_matrix_new): Same.
21352 * tree-flow.h (least_common_multiple): Removed declaration.
21353 * tree-parloops.c (lambda_trans_matrix): Moved here.
21354 (LTM_MATRIX): Same.
21355 (LTM_ROWSIZE): Same.
21356 (LTM_COLSIZE): Same.
21357 (LTM_DENOMINATOR): Same.
21358 (lambda_trans_matrix_new): Same.
21359 (lambda_matrix_vector_mult): Same.
21360 (lambda_transform_legal_p): Same.
21361 * tree-pass.h (pass_linear_transform): Removed declaration.
21362 * tree-ssa-loop.c (tree_linear_transform): Removed.
21363 (gate_tree_linear_transform): Removed.
21364 (pass_linear_transform): Removed.
21365 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21366 flag_loop_interchange.
21367
21368 2011-01-25 Jakub Jelinek <jakub@redhat.com>
21369
21370 PR tree-optimization/47265
21371 PR tree-optimization/47443
21372 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21373 if name still has some uses.
21374
21375 2011-01-25 Martin Jambor <mjambor@suse.cz>
21376
21377 PR tree-optimization/47382
21378 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21379 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21380
21381 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
21382
21383 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21384 sjlj_except_unwind_info.
21385
21386 2011-01-25 Richard Guenther <rguenther@suse.de>
21387
21388 PR tree-optimization/47426
21389 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21390 visible functions results escape.
21391
21392 2011-01-25 Jakub Jelinek <jakub@redhat.com>
21393
21394 PR target/45701
21395 * config/arm/arm.c (any_sibcall_uses_r3): New function.
21396 (arm_get_frame_offsets): Use it.
21397
21398 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21399 Jakub Jelinek <jakub@redhat.com>
21400
21401 PR tree-optimization/47271
21402 * tree-if-conv.c (bb_postdominates_preds): New.
21403 (if_convertible_bb_p): Call bb_postdominates_preds.
21404 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21405 (predicate_scalar_phi): Call bb_postdominates_preds.
21406
21407 2011-01-25 Nick Clifton <nickc@redhat.com>
21408
21409 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
21410 * config/rx/rx.c (rx_function_value): Likewise.
21411 (rx_promote_function_mode): Likewise.
21412 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
21413 in order to make it legitimate.
21414 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
21415 make sure that the first operand is the same as the result register.
21416 (addsi3_unspec): Delete.
21417 (subdi3): Do not accept immediate operands.
21418 (subdi3_internal): Likewise.
21419
21420 2011-01-25 Jeff Law <law@redhat.com>
21421
21422 PR rtl-optimization/37273
21423 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21424 handle them like argument loads from stack slots. Do not double
21425 count memory for memory constants and argument loads from stack slots.
21426
21427 2011-01-25 Jakub Jelinek <jakub@redhat.com>
21428
21429 PR tree-optimization/47427
21430 PR tree-optimization/47428
21431 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21432 coalesce if the new root var would be TREE_READONLY.
21433
21434 2011-01-25 Richard Guenther <rguenther@suse.de>
21435
21436 PR middle-end/47414
21437 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21438 correct type for TBAA.
21439
21440 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21441
21442 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21443 (close_phi_written_to_memory): Call for_each_index with
21444 dr_indices_valid_in_loop.
21445
21446 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21447
21448 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21449 when it is initialized.
21450
21451 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21452
21453 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21454 call to graphite_find_data_references_in_stmt.
21455 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21456 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
21457 call to graphite_find_data_references_in_stmt.
21458 (analyze_drs_in_stmts): Same.
21459 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21460 in which the scalar analysis of indices is performed.
21461 (create_data_ref): Same. Update call to dr_analyze_indices.
21462 (find_data_references_in_stmt): Update call to create_data_ref.
21463 (graphite_find_data_references_in_stmt): Same.
21464 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21465 declaration.
21466 (create_data_ref): Same.
21467 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21468 call to create_data_ref.
21469
21470 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21471
21472 * graphite-sese-to-poly.c (build_poly_scop): Move
21473 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
21474
21475 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21476
21477 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21478 VAR_DECL, PARM_DECL, and RESULT_DECL.
21479
21480 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21481
21482 * graphite-dependences.c (reduction_dr_1): Allow several reductions
21483 in a reduction PBB.
21484 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21485 that have already been marked as PBB_IS_REDUCTION.
21486
21487 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21488
21489 * graphite-scop-detection.c (same_close_phi_node): New.
21490 (remove_duplicate_close_phi): New.
21491 (make_close_phi_nodes_unique): New.
21492 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21493
21494 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21495
21496 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21497 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21498 of both data references to be the same.
21499
21500 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21501
21502 * graphite-dependences.c (build_lexicographical_constraint): Remove
21503 the gdim parameter.
21504 (build_lexicographical_constraint): Adjust call to
21505 ppl_powerset_is_empty.
21506 (dependence_polyhedron): Same.
21507 (graphite_legal_transform_dr): Same.
21508 (graphite_carried_dependence_level_k): Same.
21509 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21510 parameter.
21511 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21512
21513 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21514
21515 * graphite-sese-to-poly.c
21516 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21517 (close_phi_written_to_memory): New.
21518 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21519 and unshare_expr.
21520
21521 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21522
21523 * doc/install.texi: Update the expected version number of PPL to 0.11.
21524 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21525 #if PPL_VERSION_MINOR < 11.
21526
21527 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21528
21529 * graphite-dependences.c: Include graphite-cloog-util.h.
21530 (new_poly_ddr): Inlined into dependence_polyhedron.
21531 (free_poly_ddr): Moved close by new_poly_ddr.
21532 (dependence_polyhedron_1): Renamed dependence_polyhedron.
21533 Early return NULL when ppl_powerset_is_empty returns true.
21534 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
21535 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
21536 (graphite_legal_transform_dr): Call new_poly_ddr.
21537 (graphite_carried_dependence_level_k): Same.
21538 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
21539 (dot_transformed_deps_stmt_1): Removed.
21540 (dot_deps_stmt_1): Call dot_deps_stmt_2.
21541 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
21542 (dot_deps_1): Call dot_deps_2.
21543 * Makefile.in (graphite-dependences.o): Add missing dependence on
21544 graphite-cloog-util.h.
21545
21546 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21547
21548 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21549 (build_lexicographical_constraint): Same.
21550 (dependence_polyhedron_1): Same.
21551 (graphite_legal_transform_dr): Same.
21552 (graphite_carried_dependence_level_k): Same.
21553 * graphite-ppl.c (ppl_powerset_is_empty): New.
21554 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21555 * tree-data-ref.c (dump_data_reference): Print the basic block index.
21556
21557 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21558
21559 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21560 the "a followed by b" relation and document it.
21561
21562 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21563
21564 * graphite-dependences.c (build_lexicographical_constraint): Stop the
21565 iteration when the bag of constraints is empty.
21566
21567 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21568
21569 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21570
21571 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21572
21573 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21574 nest and two loop depths as parameters.
21575 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21576 lst_perfect_nestify.
21577
21578 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21579
21580 * graphite-dependences.c (print_pddr): Call
21581 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21582
21583 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21584
21585 * graphite-ppl.c (debug_gmp_value): New.
21586 * graphite-ppl.h (debug_gmp_value): Declared.
21587
21588 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
21589
21590 * doc/install.texi: Document availability of cloog-0.16.
21591
21592 2011-01-25 Vladimir Kargov <kargov@gmail.com>
21593
21594 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21595 invalid postdominance info.
21596
21597 2011-01-24 Jan Hubicka <jh@suse.cz>
21598
21599 PR c/21659
21600 * doc/extend.texi (weak pragma): Drop claim that it must
21601 appear before definition.
21602 * varasm.c (merge_weak, declare_weak): Only sanity check
21603 that DECL is not output at a time it is declared weak.
21604
21605 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
21606
21607 * machmode.def: Fixed comments.
21608
21609 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
21610
21611 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21612
21613 2011-01-24 Paul Koning <ni1d@arrl.net>
21614
21615 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
21616 WORDS_BIG_ENDIAN.
21617
21618 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
21619
21620 PR target/46519
21621 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21622 (block_info): Add scanned and prev.
21623 (move_or_delete_vzeroupper_2): Return if the basic block
21624 has been scanned and the upper 128bit state is unchanged
21625 from the last scan.
21626 (move_or_delete_vzeroupper_1): Return true if the exit
21627 state is changed.
21628 (move_or_delete_vzeroupper): Visit basic blocks using the
21629 work-list based algorithm based on vt_find_locations in
21630 var-tracking.c.
21631
21632 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21633
21634 2011-01-24 Nick Clifton <nickc@redhat.com>
21635
21636 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21637 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21638 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
21639 then define __v850e1__.
21640 * doc/invoke.texi: Document -mv850es.
21641
21642 2011-01-24 Richard Henderson <rth@redhat.com>
21643
21644 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21645 compound unordered comparisons.
21646 * config/rx/rx.c (rx_split_fp_compare): Remove.
21647 * config/rx/rx-protos.h: Update.
21648 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21649 (cbranchsf4): Don't call rx_split_fp_compare.
21650 (*cbranchsf4): Use rx_split_cbranch.
21651 (*cmpsf): Don't accept "i" constraint.
21652 (*conditional_branch): Only valid after reload.
21653 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
21654
21655 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21656
21657 PR target/47385
21658 * config/rs6000/altivec.md (vector constant splitters): Add
21659 support for creating vector single precision constants if -mvsx is
21660 used and we would create the constant using Altivec primitives.
21661
21662 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
21663 Richard Sandiford <rdsandiford@googlemail.com>
21664
21665 PR rtl-optimization/47166
21666 * reload1.c (emit_reload_insns): Disable the spill_reg_store
21667 mechanism for PRE_MODIFY and POST_MODIFY.
21668 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21669 reloadreg.
21670
21671 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
21672
21673 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
21674
21675 2011-01-22 Jan Hubicka <jh@suse.cz>
21676
21677 PR lto/47333
21678 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21679
21680 2011-01-22 Jan Hubicka <jh@suse.cz>
21681
21682 PR tree-optimization/43884
21683 PR lto/44334
21684 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
21685 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21686
21687 2011-01-22 Anatoly Sokolov <aesok@post.ru>
21688
21689 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21690 * config/s390/s390.c (s390_register_move_cost,
21691 s390_memory_move_cost): New.
21692 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21693
21694 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21695
21696 PR middle-end/47401
21697 * except.c (sjlj_assign_call_site_values): Move setting the
21698 crtl->uses_eh_lsda flag to ...
21699 (sjlj_mark_call_sites): ... here.
21700 (sjlj_emit_function_enter): Support NULL dispatch label.
21701 (sjlj_build_landing_pads): In a function with no landing pads
21702 that still has must-not-throw regions, generate code to register
21703 a personality function with empty LSDA.
21704
21705 2011-01-21 Richard Henderson <rth@redhat.com>
21706
21707 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21708
21709 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21710
21711 * compare-elim.c: New file.
21712 * Makefile.in (OBJS-common): Add it.
21713 (compare-elim.o): New.
21714 * common.opt (fcompare-elim): New.
21715 * opts.c (default_options_table): Add OPT_fcompare_elim.
21716 * tree-pass.h (pass_compare_elim_after_reload): New.
21717 * passes.c (init_optimization_passes): Add it.
21718 * recog.h: Protect against re-inclusion.
21719 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
21720 * doc/invoke.texi (-fcompare-elim): Document it.
21721 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
21722 * doc/tm.texi: Rebuild.
21723
21724 2011-01-22 Nick Clifton <nickc@redhat.com>
21725
21726 * config/rx/rx.md (cstoresf4): Pass comparison operator to
21727 rx_split_fp_compare.
21728
21729 2011-01-22 Nick Clifton <nickc@redhat.com>
21730
21731 * config/rx/rx.md (UNSPEC_CONST): New.
21732 (deallocate_and_return): Wrap the amount popped off the stack in
21733 an UNSPEC_CONST in order to stop it being rejected by
21734 -mmax-constant-size.
21735 (pop_and_return): Add a "(return)" rtx.
21736 (call): Drop the immediate operand.
21737 (call_internal): Likewise.
21738 (call_value): Likewise.
21739 (call_value_internal): Likewise.
21740 (sibcall_internal): Likewise.
21741 (sibcall_value_internal): Likewise.
21742 (sibcall): Likewise. Generate an explicit call using
21743 sibcall_internal.
21744 (sibcall_value): Likewise.
21745 (mov<>): FAIL if a constant operand is not legitimate.
21746 (addsi3_unpsec): New pattern.
21747
21748 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
21749 (ok_for_max_constant): New function.
21750 (gen_safe_add): New function.
21751 (rx_expand_prologue): Use gen_safe_add.
21752 (rx_expand_epilogue): Likewise.
21753 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
21754 UNSPEC CONSTs.
21755
21756 2011-01-21 Jeff Law <law@redhat.com>
21757
21758 PR tree-optimization/47053
21759 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
21760 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
21761 statements are deleted.
21762 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
21763 is nonempty, then purge dead edges and cleanup the CFG.
21764
21765 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
21766
21767 PR debug/47402
21768 Temporarily revert:
21769 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
21770 PR debug/47106
21771 * tree-dfa.c (create_var_ann): Mark variable as used.
21772
21773 2011-01-21 Jakub Jelinek <jakub@redhat.com>
21774
21775 PR middle-end/45566
21776 * except.c (convert_to_eh_region_ranges): Emit queued no-region
21777 notes from other section in hot/cold partitioning even if
21778 last_action is -3. Increment call_site_base.
21779
21780 PR rtl-optimization/47366
21781 * fwprop.c (forward_propagate_into): Return bool. If
21782 any changes are made, -fnon-call-exceptions is used and
21783 REG_EH_REGION note is present, call purge_dead_edges
21784 and return true if it purged anything.
21785 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
21786 any EH edges were purged.
21787
21788 2011-01-21 Jeff Law <law@redhat.com>
21789
21790 PR rtl-optimization/41619
21791 * caller-save.c (setup_save_areas): Break out code to determine
21792 which hard regs are live across calls by examining the reload chains
21793 so that it is always used.
21794 Eliminate code which checked REG_N_CALLS_CROSSED.
21795
21796 2011-01-21 Jakub Jelinek <jakub@redhat.com>
21797
21798 PR tree-optimization/47355
21799 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
21800 NOP has non-debug uses beyond PHIs in new_bb.
21801
21802 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
21803
21804 PR debug/47106
21805 * cfgexpand.c (account_used_vars_for_block): Only account vars
21806 that are annotated as used.
21807 (estimated_stack_frame_size): Don't set TREE_USED.
21808 * tree-dfa.c (create_var_ann): Mark variable as used.
21809
21810 2011-01-21 Richard Guenther <rguenther@suse.de>
21811
21812 PR middle-end/47395
21813 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
21814
21815 2011-01-21 Richard Guenther <rguenther@suse.de>
21816
21817 PR tree-optimization/47365
21818 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
21819 (vn_reference_lookup_pieces): Adjust.
21820 (vn_reference_lookup): Likewise.
21821 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
21822 (vn_reference_lookup_3): Only look through kills if in
21823 VN_WALKREWRITE mode.
21824 (vn_reference_lookup_pieces): Adjust.
21825 (vn_reference_lookup): Likewise.
21826 (visit_reference_op_load): Likewise.
21827 (visit_reference_op_store): Likewise.
21828 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
21829 (compute_avail): Likewise.
21830 (eliminate): Likewise.
21831
21832 2011-01-21 Jakub Jelinek <jakub@redhat.com>
21833
21834 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
21835 DECL_IGNORED_P non-reg vars if they are used.
21836
21837 PR tree-optimization/47391
21838 * varpool.c (const_value_known_p): Return false if
21839 decl is volatile.
21840
21841 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
21842
21843 PR bootstrap/47215
21844 * config/i386/i386.c (ix86_local_alignment): Handle
21845 case for va_list_type_node is nil.
21846 (ix86_canonical_va_list_type): Likewise.
21847
21848 2011-01-21 Alan Modra <amodra@gmail.com>
21849
21850 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
21851 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
21852
21853 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21854
21855 * config/arm/arm.md (define_attr type): Rename f_load
21856 and f_store to f_fpa_load and f_fpa_store. Update.
21857 (write_conflict): Deal with rename fallout.
21858 (*push_fp_multi): Likewise.
21859 * config/arm/fpa.md (f_load): Use f_fpa_load.
21860 (f_store): Use f_fpa_store.
21861 (*movsf_fpa): Likewise.
21862 (*movdf_fpa): Likewise.
21863 (*movxf_fpa): Likewise.
21864 (*thumb2_movsf_fpa): Likewise.
21865 (*thumb2_movdf_fpa): Likewise.
21866 (*thumb2_movxf_fpa): Likewise.
21867 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
21868 f_loadd and f_stored.
21869 (*thumb2_movdi_vfp): Likewise.
21870 (*thumb2_movsf_vfp): Fix attribute to f_loads.
21871 (*thumb2_movsi_vfp): Likewise.
21872 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
21873 Use f_loads instead of f_load.
21874 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
21875
21876 2011-01-20 Anatoly Sokolov <aesok@post.ru>
21877
21878 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21879 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
21880 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21881 (xtensa_mode_dependent_address_p): New function.
21882 (constantpool_address_p): Make static. Change return type to bool.
21883 Change argument type to const_rtx. Use CONST_INT_P predicate.
21884
21885 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
21886
21887 PR debug/46583
21888 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
21889
21890 2011-01-20 Jakub Jelinek <jakub@redhat.com>
21891
21892 PR debug/47283
21893 * cfgexpand.c (expand_debug_expr): Instead of generating
21894 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
21895 etc. handling.
21896
21897 2011-01-20 Richard Guenther <rguenther@suse.de>
21898
21899 PR middle-end/47370
21900 * tree-inline.c (remap_gimple_op_r): Recurse manually for
21901 the pointer operand of MEM_REFs.
21902
21903 2011-01-20 Jakub Jelinek <jakub@redhat.com>
21904
21905 PR tree-optimization/46130
21906 * ipa-split.c (consider_split): If return_bb contains non-virtual
21907 PHIs other than for retval or if split_function would not adjust it,
21908 refuse to split.
21909
21910 2011-01-20 Richard Guenther <rguenther@suse.de>
21911
21912 PR tree-optimization/47167
21913 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
21914 Revert previous change, only avoid enumeral type changes.
21915
21916 2011-01-19 Mike Stump <mikestump@comcast.net>
21917
21918 * doc/tm.texi.in (BRANCH_COST): Englishify.
21919 * doc/tm.texi (BRANCH_COST): Likewise.
21920
21921 2011-01-19 Dodji Seketeli <dodji@redhat.com>
21922
21923 PR c++/47291
21924 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
21925 (gen_scheduled_generic_parms_dies): New functions.
21926 (gen_struct_or_union_type_die): Schedule template parameters DIEs
21927 generation for the end of CU compilation.
21928 (dwarf2out_finish): Generate template parameters DIEs here.
21929
21930 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
21931
21932 PR debug/46240
21933 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
21934 debug bind stmt on merge edges.
21935
21936 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
21937
21938 PR debug/47079
21939 PR debug/46724
21940 * function.c (instantiate_expr): Instantiate incoming rtl of
21941 implicit arguments, and recurse on VALUE_EXPRs.
21942 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
21943 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
21944
21945 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
21946
21947 * c-parser.c (c_parser_for_statement): Initialize
21948 collection_expression.
21949
21950 2011-01-19 Joseph Myers <joseph@codesourcery.com>
21951
21952 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
21953
21954 2011-01-19 Joseph Myers <joseph@codesourcery.com>
21955
21956 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
21957 (LINK_SHLIB_SPEC): Don't use %(link_path).
21958 (SUBTARGET_EXTRA_SPECS): Remove link_path.
21959
21960 2011-01-19 Joseph Myers <joseph@codesourcery.com>
21961
21962 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
21963 (NO_SHARED_LIB_SUPPORT): Remove.
21964 (LINK_SHLIB_SPEC): Remove one conditional definition.
21965
21966 2011-01-19 Joseph Myers <joseph@codesourcery.com>
21967
21968 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
21969 %{call_shared}.
21970 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
21971 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
21972 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
21973 %{call_shared} and conditionals on these options not being passed.
21974 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
21975 %{call_shared}.
21976
21977 2011-01-19 Jakub Jelinek <jakub@redhat.com>
21978
21979 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
21980 simplify.
21981
21982 * ipa-split.c: Spelling fixes.
21983
21984 2011-01-19 Richard Henderson <rth@redhat.com>
21985
21986 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
21987 (*mulsi3): Likewise.
21988
21989 * longlong.h [__mn10300__] (count_leading_zeros): New.
21990 [__mn10300__] (umul_ppmm, smul_ppmm): New.
21991 [__mn10300__] (add_ssaaaa, subddmmss): New.
21992 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
21993 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
21994
21995 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21996
21997 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
21998
21999 2011-01-19 Richard Henderson <rth@redhat.com>
22000
22001 * config/mn10300/mn10300.md (addsi3_flags): New.
22002 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22003 (subsi3_flags, subc_internal, subdi3): New.
22004 (subdi3_internal, *subdi3_degenerate): New.
22005 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22006
22007 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22008 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22009 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
22010 * config/mn10300/mn10300-protos.h: Update.
22011 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22012 (return_ret): Likewise. Rename from return_internal_regs.
22013 (return_internal): Remove.
22014
22015 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22016 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22017 (mn10300_legitimate_constant_p): Likewise.
22018 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22019 (mn10300_frame_size): New.
22020 (mn10300_expand_prologue): Use it.
22021 (mn10300_expand_epilogue): Likewise.
22022 (mn10300_initial_offset): Likewise.
22023 * config/mn10300/mn10300-protos.h: Update.
22024 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22025 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22026 (prologue, epilogue, return_internal): Tidy output code.
22027 (mn10300_store_multiple_operation, return): Likewise.
22028 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22029 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22030 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22031 (load_pic, am33_load_pic): New.
22032 (mn10300_load_pic0, mn10300_load_pic1): New.
22033
22034 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22035 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22036 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22037 (cc_flags_for_mode, cc_flags_for_code): New.
22038 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22039 overflow flag is not valid. Validate that the flags we need
22040 for the comparison are valid.
22041 (mn10300_output_cmp): Remove.
22042 (mn10300_output_add): New.
22043 (mn10300_select_cc_mode): Use cc_flags_for_code.
22044 (mn10300_split_cbranch): New.
22045 (mn10300_match_ccmode): New.
22046 (mn10300_split_and_operand_count): New.
22047 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22048 to the function.
22049 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22050 (addsi3): ... here. Use mn10300_output_add.
22051 (*addsi3_flags): New.
22052 (*am33_subsi3, *mn10300_subsi3): Merge...
22053 (subsi3): ... here. Use attribute isa.
22054 (*subsi3_flags): New.
22055 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
22056 when possible.
22057 (*am33_andsi3, *mn10300_andsi3): Merge...
22058 (andsi3): ... here.
22059 (*andsi3_flags): New.
22060 (andsi3 splitters): New.
22061 (*am33_iorsi3, *mn10300_iorsi3): Merge...
22062 (iorsi3): ... here.
22063 (*iorsi3_flags): New.
22064 (*am33_xorsi3, *mn10300_xorsi3): Merge...
22065 (xorsi3): ... here.
22066 (*xorsi3_flags): New.
22067 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22068 (one_cmplsi2): ... here.
22069 (*one_cmplsi2_flags): New.
22070 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
22071 instead of "dax" in constraints. Use mn10300_split_cbranch.
22072 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
22073 use matching constraints to eliminate a self-comparison.
22074 (*integer_conditional_branch): Rename from integer_conditional_branch.
22075 Use int_mode_flags to match CC_REG.
22076 (*cbranchsi4_btst, *btstsi): New.
22077 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
22078 mn10300_split_cbranch.
22079 (*am33_cmpsf): Rename from am33_cmpsf.
22080 (*float_conditional_branch): Rename from float_conditional_branch.
22081 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22082 (zero_extendqisi2): ... here.
22083 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22084 (zero_extendhisi2): ... here.
22085 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22086 (extendqisi2): ... here.
22087 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22088 (extendhisi2): ... here.
22089 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22090 (ashlsi3): ... here.
22091 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22092 (lshrsi3): ... here.
22093 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22094 (ashrsi3): ... here.
22095 (consecutive add peephole): Remove.
22096 * config/mn10300/predicates.md (label_ref_operand): New.
22097 (int_mode_flags): New.
22098 (CCZN_comparison_operator): New.
22099
22100 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22101 (throughput_42_latency_43): New reservation.
22102 (mulsidi3, umulsidi3): New expanders.
22103 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
22104 the MDR register to allocation; separately allocate the low and
22105 high parts of the DImode result.
22106 (umulsidi3_internal): Similarly.
22107 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22108 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
22109 (udivsi3, umodsi3): Remove.
22110 (udivmodsi4, divmodsi4): New expanders.
22111 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
22112 (*divmodsi4): Simiarly.
22113 (ext_internal): New.
22114
22115 * config/mn10300/constraints.md ("z"): New constraint.
22116 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22117 (FIXED_REGISTERS): Don't fix MDR.
22118 (CALL_USED_REGSITERS): Reformat nicely.
22119 (REG_ALLOC_ORDER): Add MDR.
22120 (enum regclass): Add MDR_REGS.
22121 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22122 (IRA_COVER_CLASSES): Add MDR_REGS.
22123 (REGNO_REG_CLASS): Handle MDR_REG.
22124 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22125 (mn10300_register_move_cost): Likewise.
22126 * config/mn10300/mn10300.md (MDR_REG): New.
22127 (*movsi_internal): Handle moves to/from MDR_REGS.
22128
22129 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22130 POST_MODIFY.
22131 (mn10300_secondary_reload): Tidy combination reload classes.
22132 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22133 addresses for AM33. Allow symbolic offsets for reg+imm.
22134 (mn10300_regno_in_class_p): New.
22135 (mn10300_legitimize_reload_address): New.
22136 * config/mn10300/mn10300.h (enum reg_class): Remove
22137 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22138 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
22139 SP_OR_GENERAL_REGS.
22140 (REG_CLASS_NAMES): Update to match.
22141 (REG_CLASS_CONTENTS): Likewise.
22142 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22143 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22144 (REGNO_IN_RANGE_P): Remove.
22145 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22146 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22147 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22148 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22149 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22150 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22151 (REGNO_GENERAL_P): New.
22152 (HAVE_POST_MODIFY_DISP): New.
22153 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22154 (LEGITIMIZE_RELOAD_ADDRESS): New.
22155 * config/mn10300/mn10300-protos.h: Update.
22156
22157 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22158 DATA_REGS for AM33 stack-pointer destination.
22159 (mn10300_preferred_output_reload_class): Likewise.
22160 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22161 into a form appropriate for ...
22162 (TARGET_SECONDARY_RELOAD): New.
22163 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22164 * config/mn10300/mn10300-protos.h: Update.
22165 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22166 reload_insi; use the "A" constraint for the scratch; handle AM33
22167 moves of sp to non-address registers.
22168
22169 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22170 (*movqi_internal): ... here.
22171 (*am33_movhi, *mn10300_movhi): Merge into...
22172 (*movhi_internal): ... here.
22173 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
22174 as the source/destination of moves from/to SP.
22175 (movsf): Only allow for AM33-2.
22176 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
22177 any integer constant constraint. Only allow for AM33-2. Tidy
22178 all of the alternative outputs.
22179 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22180 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
22181 for MN103.
22182 (udivsi3, umodsi3): New patterns for MN103 only.
22183
22184 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
22185
22186 * doc/tm.texi.in: Spell out that a lack of register class unions
22187 can lead to ICEs.
22188 * doc/tm.texi: Regenerate.
22189
22190 2011-01-19 Jakub Jelinek <jakub@redhat.com>
22191
22192 PR rtl-optimization/47337
22193 * dce.c (check_argument_store): New function.
22194 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
22195
22196 PR tree-optimization/47290
22197 * tree-eh.c (infinite_empty_loop_p): New function.
22198 (cleanup_empty_eh): Use it.
22199
22200 2011-01-18 Steve Ellcey <sje@cup.hp.com>
22201
22202 PR target/46997
22203 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22204 (a64_expand_widen_sum): Ditto.
22205 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22206 (vec_extract_evenodd_help): Ditto.
22207 (vec_extract_evenv4hi): Ditto.
22208 (vec_extract_oddv4hi): Ditto.
22209 (vec_extract_evenv2si): Ditto.
22210 (vec_extract_oddv2si): Ditto.
22211 (vec_extract_evenv2sf): Ditto.
22212 (vec_extract_oddv2sf): Ditto.
22213 (vec_pack_trunc_v4hi: Ditto.
22214 (vec_pack_trunc_v2si): Ditto.
22215 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22216 (vec_interleave_highv8qi): Ditto.
22217 (mix1_r): Ditto.
22218 (vec_extract_oddv8qi): Ditto.
22219 (vec_interleave_lowv4hi): Ditto.
22220 (vec_interleave_highv4hi): Ditto.
22221 (vec_interleave_lowv2si): Ditto.
22222 (vec_interleave_highv2si): Ditto.
22223
22224 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22225
22226 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22227 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22228 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
22229 (pa_c_mode_for_suffix): New.
22230 (TARGET_EXPAND_BUILTIN): Define.
22231 (TARGET_C_MODE_FOR_SUFFIX): Define.
22232 (pa_builtins): Define.
22233 (pa_init_builtins): Register __float128 type and init new support
22234 builtins.
22235 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22236 * config/pa/quadlib.c (_U_Qfcopysign): New.
22237
22238 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
22239
22240 PR middle-end/46894
22241 * explow.c (allocate_dynamic_stack_space): Do not assume more than
22242 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22243 are defined.
22244
22245 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22246
22247 PR tree-optimization/47179
22248 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22249 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22250
22251 2011-01-18 Richard Guenther <rguenther@suse.de>
22252
22253 PR rtl-optimization/47216
22254 * emit-rtl.c: Include tree-flow.h.
22255 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22256 of replicating it with different semantics.
22257 * Makefile.in (emit-rtl.o): Adjust.
22258
22259 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22260
22261 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
22262 (cortex_a9_dp): Handle neon types correctly.
22263
22264 2011-01-18 Jakub Jelinek <jakub@redhat.com>
22265
22266 PR rtl-optimization/47299
22267 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
22268 subtarget. Use normal multiplication if both operands are constants.
22269 * expmed.c (expand_widening_mult): Don't try to optimize constant
22270 multiplication if op0 has VOIDmode. Convert op1 constant to mode
22271 before using it.
22272
22273 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22274
22275 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
22276 spacing after 'e.g.', typos, comma, hyphenation.
22277
22278 2011-01-17 Richard Henderson <rth@redhat.com>
22279
22280 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22281 (rx_restricted_mem_operand): New.
22282 (rx_shift_operand): Use register_operand.
22283 (rx_source_operand, rx_compare_operand): Likewise.
22284 * config/rx/rx.md (addsi3_flags): New expander.
22285 (adddi3): Rewrite as expander.
22286 (adc_internal, *adc_flags, adddi3_internal): New patterns.
22287 (subsi3_flags): New expander.
22288 (subdi3): Rewrite as expander.
22289 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22290
22291 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22292 (rx_init_builtins): Remove sat builtin.
22293 (rx_expand_builtin): Likewise.
22294 * config/rx/rx.md (ssaddsi3): New.
22295 (*sat): Rename from sat. Represent the CC_REG input.
22296
22297 * config/rx/predicates.md (rshift_operator): New.
22298 * config/rx/rx.c (rx_expand_insv): Remove.
22299 * config/rx/rx-protos.h: Update.
22300 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
22301 operand to the canonical position.
22302 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22303 (*bitclr, *bitclr_in_memory): Similarly.
22304 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22305 (insv): Retain the zero_extract in the expansion.
22306
22307 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22308 (bswaphi2, bitinvert, revw): Likewise.
22309
22310 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22311 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22312 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22313 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22314 (bitset, bitset_in_memory): Likewise.
22315 (bitinvert, bitinvert_in_memory): Likewise.
22316 (bitclr, bitclr_in_memory): Likewise.
22317 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22318 (rx_strend, rx_cmpstrn): Likewise.
22319 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
22320 (bitop peep2 patterns): Remove.
22321
22322 * config/rx/rx.c (rx_match_ccmode): New.
22323 * config/rx/rx-protos.h: Update.
22324 * config/rx/rx.md (abssi2): Clobber, don't set flags.
22325 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22326 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22327 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22328 (fix_truncsfsi2, floatsisf2): Likewise.
22329 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22330 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22331 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22332 (*subsi3_flags, *xorsi3_flags): New.
22333
22334 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22335
22336 * config/rx/rx.c (rx_print_operand): Remove workaround for
22337 unsplit comparison operations.
22338
22339 * config/rx/rx.md (movsicc): Split after reload.
22340 (*movsicc): Merge *movsieq and *movsine via match_operator.
22341 (*stcc): New pattern.
22342
22343 * config/rx/rx.c (rx_float_compare_mode): Remove.
22344 * config/rx/rx.h (rx_float_compare_mode): Remove.
22345 * config/rx/rx.md (cstoresi4): Split after reload.
22346 (*sccc): New pattern.
22347
22348 * config/rx/predicates.md (label_ref_operand): New.
22349 (rx_z_comparison_operator): New.
22350 (rx_zs_comparison_operator): New.
22351 (rx_fp_comparison_operator): New.
22352 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22353 Validate that the flags are set properly for the comparison.
22354 (rx_gen_cond_branch_template): Remove.
22355 (rx_cc_modes_compatible): Remove.
22356 (mode_from_flags): New.
22357 (flags_from_code): Rename from flags_needed_for_conditional.
22358 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22359 (rx_select_cc_mode): Likewise.
22360 (rx_split_fp_compare): New.
22361 (rx_split_cbranch): New.
22362 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22363 (*cbranchsi4): Use match_operator and rx_split_cbranch.
22364 (*cbranchsf4): Similarly.
22365 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
22366 match_operator and rx_split_cbranch.
22367 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22368 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
22369 (*cmpsi): Rename from cmpsi.
22370 (*tstsi): Rename from tstsi.
22371 (*cmpsf): Rename from cmpsf; use CC_Fmode.
22372 (*conditional_branch): Rename from conditional_branch.
22373 (*reveresed_conditional_branch): Remove.
22374 (b<code>): Remove expander.
22375 * config/rx/rx-protos.h: Update.
22376
22377 * config/rx/rx.c (rx_compare_redundant): Remove.
22378 * config/rx/rx.md (cmpsi): Don't use it.
22379 * config/rx/rx-protos.h: Update.
22380
22381 * config/rx/rx-modes.def (CC_F): New mode.
22382 * config/rx/rx.c (rx_select_cc_mode): New.
22383 * config/rx/rx.h (SELECT_CC_MODE): Use it.
22384 * config/rx/rx-protos.h: Update.
22385
22386 2011-01-17 Richard Henderson <rth@redhat.com>
22387
22388 * except.c (dump_eh_tree): Fix stray ; after for statement.
22389
22390 2011-01-17 Richard Guenther <rguenther@suse.de>
22391
22392 PR tree-optimization/47313
22393 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22394 handling before copying the body. Properly deal with
22395 by-reference result in SSA form.
22396
22397 2011-01-17 Ian Lance Taylor <iant@google.com>
22398
22399 PR target/47219
22400 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22401 (struct_value_alias_set): Don't define.
22402 (sparc_option_override): Don't set sparc_sr_alias_set and
22403 struct_value_alias_set.
22404 (save_or_restore_regs): Use gen_frame_mem rather than calling
22405 set_mem_alias_set.
22406 (sparc_struct_value_rtx): Likewise.
22407
22408 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
22409
22410 PR target/47318
22411 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
22412 (_mm_maskstore_pd): Likewise.
22413 (_mm_maskload_ps): Likewise.
22414 (_mm_maskstore_ps): Likewise.
22415 (_mm256_maskload_pd): Change mask to __m256i.
22416 (_mm256_maskstore_pd): Likewise.
22417 (_mm256_maskload_ps): Likewise.
22418 (_mm256_maskstore_ps): Likewise.
22419
22420 * config/i386/i386-builtin-types.def: Updated.
22421 (ix86_expand_special_args_builtin): Likewise.
22422
22423 * config/i386/i386.c (bdesc_special_args): Update
22424 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22425 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22426 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22427 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22428
22429 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22430 Use <avxpermvecmode> on mask register.
22431 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22432
22433 2011-01-17 Olivier Hainque <hainque@adacore.com>
22434 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22435 Eric Botcazou <ebotcazou@adacore.com>
22436
22437 PR target/46655
22438 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22439 if <= USHRT_MAX in 32-bit mode.
22440
22441 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22442
22443 * doc/install.texi (Configuration, Specific): Wrap long
22444 lines in examples. Allow line wrapping in long options
22445 and URLs where beneficial for PDF output.
22446
22447 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
22448
22449 * config/mips/mips.c (mips_classify_symbol): Don't return
22450 SYMBOL_PC_RELATIVE for nonlocal labels.
22451
22452 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
22453
22454 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22455
22456 2011-01-15 Jan Hubicka <jh@suse.cz>
22457
22458 PR tree-optimization/47276
22459 * ipa.c (function_and_variable_visibility): Do not try to mark alias
22460 declarations as needed.
22461
22462 2011-01-15 Martin Jambor <mjambor@suse.cz>
22463
22464 * common.opt (fdevirtualize): New flag.
22465 * doc/invoke.texi (Option Summary): Document it.
22466 * opts.c (default_options_table): Add devirtualize flag.
22467 * ipa-prop.c (detect_type_change): Return immediately if
22468 devirtualize flag is not set.
22469 (detect_type_change_ssa): Likewise.
22470 (compute_known_type_jump_func): Likewise.
22471 (ipa_analyze_virtual_call_uses): Likewise.
22472
22473 2011-01-14 Martin Jambor <mjambor@suse.cz>
22474
22475 PR tree-optimization/45934
22476 PR tree-optimization/46302
22477 * ipa-prop.c (type_change_info): New type.
22478 (stmt_may_be_vtbl_ptr_store): New function.
22479 (check_stmt_for_type_change): Likewise.
22480 (detect_type_change): Likewise.
22481 (detect_type_change_ssa): Likewise.
22482 (compute_complex_assign_jump_func): Check for dynamic type change.
22483 (compute_complex_ancestor_jump_func): Likewise.
22484 (compute_known_type_jump_func): Likewise.
22485 (compute_scalar_jump_functions): Likewise.
22486 (ipa_analyze_virtual_call_uses): Likewise.
22487 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22488
22489 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22490
22491 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22492 * config/i386/i386.opt (msse5): New Alias.
22493
22494 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22495
22496 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22497 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22498 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22499 * config/sparc/sparc.h (CC1_SPEC): Likewise.
22500
22501 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22502
22503 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22504 -mcpu options.
22505 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22506 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22507 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22508 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22509 Likewise.
22510 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22511
22512 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22513
22514 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
22515
22516 2011-01-14 Mike Stump <mikestump@comcast.net>
22517
22518 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22519 * config/fr30/fr30.md: Likweise
22520 (movsi_push): Likewise.
22521 (movsi_pop): Likewise.
22522 (enter_func): Likewise.
22523 * config/moxie/moxie.md (movsi_push): Likewise.
22524 (movsi_pop): Likewise.
22525
22526 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22527
22528 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22529 %{no_archive} %{exact_version}.
22530 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22531 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22532 %{no_archive} %{exact_version}.
22533 * config/mips/openbsd.h (LINK_SPEC): Likewise.
22534 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22535 * config/mips/vxworks.h: Likewise.
22536
22537 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22538
22539 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
22540
22541 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22542
22543 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22544 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22545
22546 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22547
22548 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22549 -nodefaultlib.
22550
22551 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22552
22553 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22554 for mcpu not cpu.
22555 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22556 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22557 not cpu.
22558 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22559 Don't handle -shlib.
22560
22561 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22562
22563 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22564 (CC1_SPEC): Don't handle -profile.
22565
22566 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22567
22568 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22569 * config/mips/mips.h (CC1_SPEC): Likewise.
22570
22571 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22572
22573 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22574 * config/mips/mips.h (CC1_SPEC): Likewise.
22575
22576 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22577
22578 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22579 * config/m32r/linux.h (LINK_SPEC): Likewise.
22580 * config/mips/linux.h (LINK_SPEC): Likewise.
22581 * config/mips/linux64.h (LINK_SPEC): Likewise.
22582 * config/sparc/linux.h (LINK_SPEC): Likewise.
22583 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22584 LINK_SPEC): Likewise.
22585 * config/xtensa/linux.h (LINK_SPEC): Likewise.
22586
22587 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22588
22589 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22590 %{version:-v}.
22591 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22592
22593 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22594
22595 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22596 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22597
22598 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22599
22600 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22601
22602 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22603
22604 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22605 supports -Bstatic/-Bdynamic.
22606 * configure: Regenerate.
22607
22608 2011-01-14 Jan Hubicka <jh@suse.cz>
22609 Jack Howarth <howarth@bromo.med.uc.edu>
22610
22611 PR target/46037
22612 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22613 when checking debug_info_level. Test write_symbols instead of
22614 debug_hooks->var_location when setting flag_var_tracking_uninit.
22615
22616 2011-01-14 Richard Guenther <rguenther@suse.de>
22617
22618 PR tree-optimization/47179
22619 * target.def (ref_may_alias_errno): New target hook.
22620 * targhooks.h (default_ref_may_alias_errno): Declare.
22621 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22622 (default_ref_may_alias_errno): New function.
22623 * target.h (struct ao_ref_s): Declare.
22624 * tree-ssa-alias.c: Include target.h.
22625 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22626 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22627 (targhooks.o): Likewise.
22628 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22629 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22630
22631 2011-01-14 Richard Guenther <rguenther@suse.de>
22632
22633 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
22634
22635 2011-01-14 Richard Guenther <rguenther@suse.de>
22636
22637 PR tree-optimization/47280
22638 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22639 return CFG changes.
22640 (tree_ssa_forward_propagate_single_use_vars): Deal with
22641 CFG changes from associate_plusminus.
22642
22643 2011-01-14 Richard Guenther <rguenther@suse.de>
22644
22645 PR middle-end/47281
22646 Revert
22647 2011-01-11 Richard Guenther <rguenther@suse.de>
22648
22649 PR tree-optimization/46076
22650 * tree-ssa.c (useless_type_conversion_p): Conversions from
22651 unprototyped to empty argument list function types are useless.
22652
22653 2011-01-14 Richard Guenther <rguenther@suse.de>
22654
22655 PR tree-optimization/47286
22656 * tree-ssa-structalias.c (new_var_info): Register variables are global.
22657
22658 2011-01-14 Martin Jambor <mjambor@suse.cz>
22659
22660 PR middle-end/46823
22661 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22662
22663 2011-01-13 Anatoly Sokolov <aesok@post.ru>
22664
22665 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22666 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22667 * config/xtensa/xtensa.c (xtensa_libcall_value,
22668 xtensa_function_value_regno_p): New functions.
22669 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22670
22671 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
22672
22673 PR c++/47213
22674 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22675 PE specific hook.
22676 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22677 New function prototype.
22678 * config/i386/winnt.c (i386_pe_assemble_visibility):
22679 Warn only if attribute was specified by user.
22680
22681 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
22682
22683 PR target/47251
22684 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22685 floating point.
22686 (floatunsdidf2_fcfidu): Ditto.
22687
22688 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22689
22690 * config/s390/s390.c (print_operand_address): Replace 'error' with
22691 'output_operand_lossage'.
22692 (print_operand): Likewise.
22693
22694 2011-01-13 Jeff Law <law@redhat.com>
22695
22696 PR rtl-optimization/39077
22697 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22698 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22699 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22700 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22701 * gcse.c (prune_insertions_deletions): New function.
22702 (compute_pre_data): Use it.
22703
22704 2011-01-13 Dodji Seketeli <dodji@redhat.com>
22705
22706 PR debug/PR46973
22707 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22708 static function.
22709 (prune_unused_types_mark): Use it.
22710
22711 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
22712
22713 PR rtl-optimization/45352
22714 * sel-sched.c: Update copyright years.
22715 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
22716 in the advancing loop when we have issued issue_rate insns.
22717
22718 2011-01-12 Richard Henderson <rth@redhat.com>
22719
22720 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
22721 (TARGET_MD_ASM_CLOBBERS): New.
22722
22723 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
22724 (TARGET_DELEGITIMIZE_ADDRESS): New.
22725
22726 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
22727 (clzsi2, *bsch): New patterns.
22728
22729 * config/mn10300/mn10300.md (INT): New mode iterator.
22730 (*mov<INT>_clr): New pattern, and peep2 to generate it.
22731
22732 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
22733 flag_split_wide_types.
22734
22735 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
22736 (mn10300_trampoline_init): Rewrite without a template, an immediate
22737 load and a direct branch.
22738 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
22739
22740 2011-01-12 Anatoly Sokolov <aesok@post.ru>
22741
22742 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22743 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
22744 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
22745 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22746
22747 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
22748
22749 PR debug/47209
22750 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
22751 of type.
22752
22753 2011-01-12 Jan Hubicka <jh@suse.cz>
22754
22755 PR driver/47244
22756 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
22757 (PLUGIN_COND_CLOSE): New macro.
22758 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
22759
22760 2011-01-12 Richard Guenther <rguenther@suse.de>
22761
22762 PR lto/47259
22763 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
22764 register variables in a MEM_REF.
22765
22766 2011-01-12 Joseph Myers <joseph@codesourcery.com>
22767
22768 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
22769 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
22770 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
22771 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22772 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22773 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
22774 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
22775 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
22776 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
22777 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
22778 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
22779 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
22780 * config/gnu-user.h: New. Copied from linux.h.
22781 (LINUX_TARGET_STARTFILE_SPEC): Rename to
22782 GNU_USER_TARGET_STARTFILE_SPEC.
22783 (LINUX_TARGET_ENDFILE_SPEC): Rename to
22784 GNU_USER_TARGET_ENDFILE_SPEC.
22785 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
22786 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
22787 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
22788 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
22789 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
22790 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
22791 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
22792 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
22793 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
22794 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
22795 * config/arm/linux-eabi.h (CC1_SPEC): Use
22796 GNU_USER_TARGET_CC1_SPEC.
22797 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
22798 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
22799 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
22800 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
22801 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
22802 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
22803 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
22804 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
22805
22806 2011-01-12 Richard Guenther <rguenther@suse.de>
22807
22808 PR other/46946
22809 * doc/invoke.texi (ffast-math): Document it is turned on
22810 with -Ofast.
22811
22812 2011-01-12 Jan Hubicka <jh@suse.cz>
22813
22814 PR tree-optimization/47233
22815 * opts.c (common_handle_option): Disable ipa-reference with profile
22816 feedback.
22817
22818 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
22819
22820 * c-parser.c (c_parser_objc_at_property_declaration): Improved
22821 error message.
22822
22823 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
22824
22825 * c-parser.c (c_lex_one_token): Updated and reindented some
22826 comments. No changes in code.
22827
22828 2011-01-11 Ian Lance Taylor <iant@google.com>
22829
22830 * godump.c (go_output_var): Don't output the variable if there is
22831 already a type with the same name.
22832
22833 2011-01-11 Ian Lance Taylor <iant@google.com>
22834
22835 * godump.c (go_format_type): Don't generate float80.
22836
22837 2011-01-11 Richard Henderson <rth@redhat.com>
22838
22839 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
22840 declaration. Rewrite for both speed and size.
22841 (mn10300_address_cost_1): Remove.
22842 (mn10300_register_move_cost): New.
22843 (mn10300_memory_move_cost): New.
22844 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
22845 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
22846 extensions, shifts, BSWAP, CLZ.
22847 (mn10300_wide_const_load_uses_clr): Remove.
22848 (TARGET_REGISTER_MOVE_COST): New.
22849 (TARGET_MEMORY_MOVE_COST): New.
22850 * config/mn10300/mn10300-protos.h: Update.
22851 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
22852
22853 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
22854 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
22855 * config/mn10300/mn10300-protos.h: Update.
22856 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
22857 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
22858 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
22859 (*test_int_bitfield, *test_byte_bitfield): Remove.
22860 (*bit_test, *subreg_bit_test): Remove.
22861 * config/mn10300/predicates.md (const_8bit_operand): Remove.
22862
22863 * config/mn10300/constraints.md ("c"): Rename from "A".
22864 ("A", "D"): New constraint letters.
22865 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
22866 (fmssf4, fnmasf4, fnmssf4): Likewise.
22867
22868 * config/mn10300/mn10300.md (isa): New attribute.
22869 (enabled): New attribute.
22870
22871 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
22872 (abssf2, negsf2): Define only for hardware fp.
22873 (sqrtsf2): Reformat.
22874 (addsf3, subsf3, mulsf3): Merge expander and insn.
22875
22876 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
22877 (DEBUGGER_AUTO_OFFSET): Remove.
22878 (DEBUGGER_ARG_OFFSET): Remove.
22879
22880 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
22881 Emit register stores with the same offsets as the hardware.
22882 (mn10300_store_multiple_operation): Don't check that the register
22883 save offsets are monotonic.
22884 * config/mn10300/mn10300-protos.h: Update.
22885
22886 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
22887
22888 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
22889 in terms of the value on the stack, not the MDR register.
22890
22891 2011-01-11 Jan Hubicka <jh@suse.cz>
22892
22893 PR lto/45721
22894 PR lto/45375
22895 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
22896 (symbol_alias_set_destroy, symbol_alias_set_contains,
22897 propagate_aliases_backward): Declare.
22898 * lto-streamer-out.c (struct sets): New sturcture.
22899 (trivally_defined_alias): New function.
22900 (output_alias_pair_p): Rewrite.
22901 (output_unreferenced_globals): Fix output of alias pairs.
22902 (produce_symtab): Likewise.
22903 * ipa.c (function_and_variable_visibility): Set weak alias destination
22904 as needed in lto.
22905 * varasm.c (symbol_alias_set_t): Remove.
22906 (symbol_alias_set_destroy): Export.
22907 (propagate_aliases_forward, propagate_aliases_backward): New functions
22908 based on ...
22909 (compute_visible_aliases): ... this one; remove.
22910 (trivially_visible_alias): New
22911 (trivially_defined_alias): New.
22912 (remove_unreachable_alias_pairs): Rewrite.
22913 (finish_aliases_1): Reorganize code checking if alias is defined.
22914 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
22915 in LTO mode.
22916
22917 2011-01-11 Richard Guenther <rguenther@suse.de>
22918
22919 PR tree-optimization/46076
22920 * tree-ssa.c (useless_type_conversion_p): Conversions from
22921 unprototyped to empty argument list function types are useless.
22922
22923 2011-01-11 Richard Guenther <rguenther@suse.de>
22924
22925 PR middle-end/45235
22926 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
22927 volatile MEMs as MEM_READONLY_P.
22928
22929 2011-01-11 Richard Guenther <rguenther@suse.de>
22930
22931 PR tree-optimization/47239
22932 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
22933
22934 2011-01-11 Jeff Law <law@redhat.com>
22935
22936 PR tree-optimization/47086
22937 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
22938 IVs from statements that might throw.
22939
22940 2011-01-10 Jan Hubicka <jh@suse.cz>
22941
22942 PR lto/45375
22943 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
22944
22945 2011-01-10 Jan Hubicka <jh@suse.cz>
22946
22947 PR lto/45375
22948 * profile.c (read_profile_edge_counts): Ignore profile inconistency
22949 when correcting profile.
22950
22951 2011-01-10 Jan Hubicka <jh@suse.cz>
22952
22953 PR lto/46083
22954 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
22955 DECL_FINI_PRIORITY.
22956 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
22957 Restore DECL_FINI_PRIORITY.
22958
22959 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22960
22961 * doc/gimple.texi: Fix quoting of multi-word return values in
22962 @deftypefn statements. Ensure presence of return value. Wrap
22963 overlong @deftypefn lines.
22964 (is_gimple_operand, is_gimple_min_invariant_address): Remove
22965 descriptions of removed functions.
22966 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
22967 of multi-word return value in @deftypefn statement.
22968
22969 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22970
22971 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
22972 (Conditional Expressions, Logical Operators)
22973 (Statement and operand traversals): Do not indent smallexample
22974 code. Fix duplicate function argument in example.
22975
22976 2011-01-10 Jeff Law <law@redhat.com>
22977
22978 PR tree-optimization/47141
22979 * ipa-split.c (split_function): Handle case where we are
22980 returning a value and the return block has a virtual operand phi.
22981
22982 2011-01-10 Jan Hubicka <jh@suse.cz>
22983
22984 PR tree-optimization/47234
22985 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
22986 (pass_feedback_split_functions): Declare.
22987 * passes.c (init_optimization_passes): Add ipa-split as subpass of
22988 tree-profile.
22989 * ipa-split.c (gate_split_functions): Update comments; disable
22990 split-functions for profile_arc_flag and branch_probabilities.
22991 (gate_feedback_split_functions): New function.
22992 (execute_feedback_split_functions): New function.
22993 (pass_feedback_split_functions): New global var.
22994
22995 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
22996
22997 PR lto/46760
22998 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
22999 calling gimple_call_set_cannot_inline.
23000
23001 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
23002
23003 * config/darwin-sections.def: Remove unused section.
23004
23005 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
23006
23007 PR c++/47218
23008 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23009
23010 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
23011
23012 PR objc/47232
23013 * c-parser.c (c_parser_declaration_or_fndef): Improved
23014 error message.
23015
23016 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
23017
23018 * config/i386/winnt.c (i386_pe_start_function): Make sure
23019 to switch back to function's section.
23020
23021 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
23022
23023 PR gcc/46902
23024 PR testsuite/46912
23025 * plugin.c: Move include of dlfcn.h from here...
23026 * system.h: ... to here.
23027
23028 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23029
23030 * doc/cpp.texi (C++ Named Operators): Fix markup for header
23031 file name.
23032 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23033 two extra empty pages in PDF output.
23034
23035 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
23036
23037 PR objc/47078
23038 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23039 for error recovery purposes behave as if it was not specified so
23040 that the default type is usd.
23041
23042 2011-01-07 Jan Hubicka <jh@suse.cz>
23043
23044 PR tree-optmization/46469
23045 * ipa.c (function_and_variable_visibility): Clear needed flags on
23046 nodes with external decls; handle weakrefs merging correctly.
23047
23048 2011-01-07 Joseph Myers <joseph@codesourcery.com>
23049
23050 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23051 not false.
23052
23053 2011-01-07 Jan Hubicka <jh@suse.cz>
23054
23055 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
23056 and no longer claim that gold is required for linker plugin.
23057 * configure: Regenerate.
23058 * gcc.c (PLUGIN_COND): New macro.
23059 (LINK_COMMAND_SPEC): Use it.
23060 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23061 * config.in (HAVE_LTO_PLUGIN): New.
23062 * configure.ac (--with-lto-plugin): New parameter; autodetect
23063 HAVE_LTO_PLUGIN.
23064
23065 2011-01-07 Jan Hubicka <jh@suse.cz>
23066
23067 PR tree-optimization/46367
23068 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23069 when we can update original.
23070 (cgraph_mark_inline_edge): Sanity check.
23071 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23072
23073 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23074
23075 * config/spu/spu.h (ASM_COMMENT_START): Define.
23076
23077 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
23078
23079 PR driver/42445
23080 * gcc.c (%>S): New.
23081 (SWITCH_KEEP_FOR_GCC): Likewise.
23082 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23083 (do_spec_1): Handle "%>".
23084
23085 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23086
23087 2011-01-07 Jakub Jelinek <jakub@redhat.com>
23088
23089 PR target/47201
23090 * config/i386/i386.c (ix86_delegitimize_address): If
23091 simplify_gen_subreg fails, return orig_x.
23092
23093 PR bootstrap/47187
23094 * value-prof.c (gimple_stringop_fixed_value): Handle
23095 lhs of the call properly.
23096
23097 2011-01-07 Jan Hubicka <jh@suse.cz>
23098
23099 PR lto/45375
23100 * lto-opt.c (lto_reissue_options): Set flag_shlib.
23101
23102 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23103
23104 * target.def (function_switched_text_sections): New hook.
23105 * doc/tm.texi: Regenerated.
23106 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23107 * final.c (default_function_switched_text_sections): New.
23108 (final_scan_insn): Call function_switched_text_sections when a
23109 mid-function section change occurs.
23110 * output.h (default_function_switched_text_sections): Declare.
23111 * config/darwin-protos.h (darwin_function_switched_text_sections):
23112 Likewise.
23113 * config/darwin.c (darwin_function_switched_text_sections): New.
23114 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23115
23116 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23117
23118 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
23119 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
23120 the secondary code fragment when outputting for DWARF == 2.
23121
23122 2011-01-07 Anatoly Sokolov <aesok@post.ru>
23123
23124 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23125 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23126 Remove.
23127 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23128 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23129
23130 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
23131
23132 PR debug/46704
23133 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23134 when it is not empty.
23135
23136 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
23137
23138 Bobcat Enablement
23139 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
23140 (case ${target}): Add btver1.
23141 * config/i386/driver-i386.c (host_detect_local_cpu): Let
23142 -march=native recognize btver1 processors.
23143 * config/i386/i386-c.c (ix86_target_macros_internal): Add
23144 btver1 def_and_undef
23145 * config/i386/i386.c (struct processor_costs btver1_cost): New
23146 btver1 cost table.
23147 (m_BTVER1): New definition.
23148 (m_AMD_MULTIPLE): Includes m_BTVER1.
23149 (initial_ix86_tune_features): Add btver1 tune.
23150 (processor_target_table): Add btver1 entry.
23151 (static const char *const cpu_names): Add btver1 entry.
23152 (software_prefetching_beneficial_p): Add btver1.
23153 (ix86_option_override_internal): Add btver1 instruction sets.
23154 (ix86_issue_rate): Add btver1.
23155 (ix86_adjust_cost): Add btver1.
23156 * config/i386/i386.h (TARGET_BTVER1): New definition.
23157 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23158 (enum processor_type): Add PROCESSOR_BTVER1.
23159 * config/i386/i386.md (define_attr "cpu"): Add btver1.
23160
23161 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23162
23163 PR target/43309
23164 * config/i386/i386.c (legitimize_tls_address)
23165 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23166 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23167 (tls_initial_exec_64_sun): New pattern.
23168
23169 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
23170
23171 * doc/invoke.texi (Overall Options): Improve wording and markup
23172 of the description of -wrapper.
23173
23174 2011-01-06 Joseph Myers <joseph@codesourcery.com>
23175
23176 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23177 rdynamic, threads): New Driver options.
23178
23179 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23180
23181 PR target/38118
23182 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23183 if coming from .tdata.
23184 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23185
23186 2011-01-06 Jan Hubicka <jh@suse.cz>
23187
23188 PR lto/47188
23189 * collect2.c (main): Do not enable LTOmode when plugin is active.
23190
23191 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23192
23193 PR other/45915
23194 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23195 --version output if supported.
23196 * configure: Regenerate.
23197
23198 2011-01-06 Joseph Myers <joseph@codesourcery.com>
23199
23200 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23201 Driver options.
23202
23203 2011-01-06 Jakub Jelinek <jakub@redhat.com>
23204
23205 PR c/47150
23206 * c-convert.c (convert): When converting a complex expression
23207 other than COMPLEX_EXPR to a different complex type, ensure
23208 c_save_expr is called instead of save_expr, unless in_late_binary_op.
23209 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23210 when converting COMPLEX_TYPE.
23211
23212 2011-01-06 Ira Rosen <irar@il.ibm.com>
23213
23214 PR tree-optimization/47139
23215 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23216 only the last reduction value is used outside the loop. Update
23217 documentation.
23218
23219 2011-01-05 Joseph Myers <joseph@codesourcery.com>
23220
23221 * config/rtems.opt: New.
23222 * config.gcc (*-*-rtems*): Use rtems.opt.
23223
23224 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
23225
23226 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23227 processors do not support 3DNow instructions.
23228
23229 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23230
23231 * config/spu/spu.c (spu_option_override): Set parameter
23232 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23233
23234 2011-01-05 Jan Hubicka <jh@suse.cz>
23235
23236 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23237 at the command line.
23238
23239 2011-01-05 Martin Jambor <mjambor@suse.cz>
23240
23241 PR lto/47162
23242 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23243 deltas on streamed outgoing edges.
23244 (output_node_opt_summary): Output info for outgoing edges only when
23245 the node is in new parameter set.
23246 (output_cgraph_opt_summary): New parameter set, passed to the two
23247 aforementioned functions. Update its forward declaration and its
23248 callee too.
23249
23250 2011-01-05 Tom Tromey <tromey@redhat.com>
23251
23252 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23253 operator to c_finish_omp_atomic.
23254 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23255 (build_unary_op): Update.
23256 (build_modify_expr): Update.
23257 (build_asm_expr): Update.
23258
23259 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23260
23261 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23262 newly inserted insns.
23263 (pad_bb): Likewise.
23264 (spu_emit_branch_hint): Likewise.
23265 (insert_hbrp_for_ilb_runout): Likewise.
23266 (spu_machine_dependent_reorg): Call df_finish_pass after
23267 schedule_insns returns.
23268
23269 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23270
23271 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23272
23273 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
23274
23275 PR tree-optimization/47005
23276 * tree-sra.c (struct access): Add 'non_addressable' bit.
23277 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23278 (decide_one_param_reduction): Return 0 if the parameter is passed by
23279 reference and one of the accesses in the group is non_addressable.
23280
23281 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23282
23283 PR tree-optimization/47056
23284 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23285 (mark_load): Likewise. Handle FUNCTION_DECL specially.
23286 (mark_store): Likewise. Pass STMT to ipa_record_reference.
23287
23288 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23289
23290 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23291 initializer. Skip view conversions from aggregate types.
23292
23293 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
23294
23295 PR bootstrap/47055
23296 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23297
23298 2011-01-04 Philipp Thomas <pth@suse.de>
23299
23300 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23301 obvious typo.
23302
23303 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23304
23305 * function.c (thread_prologue_and_epilogue_insns): Do not crash
23306 on empty epilogue sequences.
23307
23308 2011-01-04 Joseph Myers <joseph@codesourcery.com>
23309
23310 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23311 non-static): New Driver options.
23312
23313 2011-01-04 Jie Zhang <jie@codesourcery.com>
23314
23315 PR driver/47137
23316 * gcc.c (default_compilers[]): Set combinable field to 0
23317 for all assembly languages.
23318
23319 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
23320
23321 * config/mips/loongson3a.md: New file.
23322 * config/mips/mips.md: Include loongson3a.md.
23323 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23324 TUNE_LOONGSON_3A.
23325
23326 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
23327
23328 PR middle-end/47017
23329 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23330 instead of convert_memory_address_addr_space on the base expression.
23331
23332 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23333
23334 * config/spu/spu.c (spu_option_override): Update error text
23335 for bad -march= / -mtune= values.
23336
23337 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23338
23339 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23340 if branch-hint optimization will be performed.
23341
23342 2011-01-03 Jakub Jelinek <jakub@redhat.com>
23343
23344 PR tree-optimization/47148
23345 * ipa-split.c (split_function): Convert arguments to
23346 DECL_ARG_TYPE if possible.
23347
23348 PR tree-optimization/47155
23349 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23350 when computing uns.
23351
23352 PR rtl-optimization/47157
23353 * combine.c (try_combine): If undobuf.other_insn becomes
23354 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23355 and set *new_direct_jump_p too.
23356
23357 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
23358
23359 PR tree-optimization/47021
23360 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23361
23362 2011-01-03 Jakub Jelinek <jakub@redhat.com>
23363
23364 * gcc.c (process_command): Update copyright notice dates.
23365 * gcov.c (print_version): Likewise.
23366 * gcov-dump.c (print_version): Likewise.
23367 * mips-tfile.c (main): Likewise.
23368 * mips-tdump.c (main): Likewise.
23369
23370 2011-01-03 Martin Jambor <mjambor@suse.cz>
23371
23372 PR tree-optimization/46801
23373 * tree-sra.c (type_internals_preclude_sra_p): Check whether
23374 aggregate fields start at byte boundary instead of the bit-field flag.
23375
23376 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
23377
23378 PR driver/47137
23379 * gcc.c (main): Revert revision 168407.
23380
23381 2011-01-03 Martin Jambor <mjambor@suse.cz>
23382
23383 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23384
23385 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23386
23387 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23388 vector optab to expand vector/scalar shift, update gimple to vector.
23389
23390 2011-01-03 Martin Jambor <mjambor@suse.cz>
23391
23392 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23393 a thunk.
23394
23395 2011-01-03 Martin Jambor <mjambor@suse.cz>
23396
23397 PR tree-optimization/46984
23398 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23399 HOST_WIDE_INT.
23400 (cgraph_create_indirect_edge): Fixed line length.
23401 (cgraph_indirect_call_info): Declare.
23402 (cgraph_make_edge_direct) Update declaration.
23403 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23404 (cgraph_create_indirect_edge): Use it.
23405 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
23406 callees.
23407 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
23408 the new thunk_delta representation.
23409 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
23410 HOST_WIDE_INT.
23411 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
23412 (ipa_read_indirect_edge_info): Likewise.
23413 * lto-cgraph.c (output_edge_opt_summary): New function.
23414 (output_node_opt_summary): Call it on all outgoing edges.
23415 (input_edge_opt_summary): New function.
23416 (input_node_opt_summary): Call it on all outgoing edges.
23417
23418 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
23419
23420 PR driver/47137
23421 * gcc.c (main): Don't check have_o when settting combine_inputs.
23422
23423 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
23424
23425 * regrename.c: Add general comment describing the pass.
23426 (struct du_head): Remove 'length' field.
23427 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23428 (regrename_optimize): Do not sort chains. Rework comments, add others.
23429 Force renaming to the preferred class (if any) in the first pass and do
23430 not consider registers that belong to it in the second pass.
23431 (create_new_chain): Do not set 'length' field.
23432 (scan_rtx_reg): Likewise.
23433
23434 2011-01-02 Jakub Jelinek <jakub@redhat.com>
23435
23436 PR tree-optimization/47140
23437 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23438 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23439 to bit_value_binop.
23440
23441 PR rtl-optimization/47028
23442 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23443 parm_birth_insn instead of at the beginning of first bb.
23444
23445 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
23446
23447 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23448 Remove the word "see" before "@pxref".
23449 * doc/rtl.texi: Remove the word "see" before "@pxref".
23450
23451 2011-01-01 Jan Hubicka <jh@suse.cz>
23452
23453 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23454 memory.
23455
23456 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
23457
23458 PR target/38662
23459 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
23460
23461 \f
23462 Copyright (C) 2011 Free Software Foundation, Inc.
23463
23464 Copying and distribution of this file, with or without modification,
23465 are permitted in any medium without royalty provided the copyright
23466 notice and this notice are preserved.