]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
init.c (__gnat_error_handler): Cast reason to int.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
40b9321d
L
12011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2
3 PR target/47364
4 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
5
95f89bb3
RR
62011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7
8 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
9 before the core constraints. Adjust attributes.
10 (*thumb2_movdf_vfp"): Likewise.
11
98958241
KT
122011-07-28 Kai Tietz <ktietz@redhat.com>
13
14 * tree-vrp.c (simplify_stmt_using_ranges): Remove
15 TRUTH_NOT_EXPR case.
16 (simplify_truth_ops_using_ranges): Likewise.
17 (build_assert_expr_for): Likewise.
18 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
19 and handle BIT_NOT_EXPR for truth-operation.
20
f627fef2
GJL
212011-07-28 Georg-Johann Lay <avr@gjlay.de>
22
23 PR target/49313
24 Undo r176835 from trunk
25 2011-07-27 Georg-Johann Lay
26
296799ba
GJL
272011-07-28 Georg-Johann Lay <avr@gjlay.de>
28
29 PR target/49687
30 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
31 Add _muluhisi3, _mulshisi3, _usmulhisi3.
32 * config/avr/libgcc.S (__mulsi3): Rewrite.
33 (__mulhisi3): Rewrite.
34 (__umulhisi3): Rewrite.
35 (__usmulhisi3): New.
36 (__muluhisi3): New.
37 (__mulshisi3): New.
38 (__mulohisi3): New.
39 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
40 declare.
41 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
42 (pseudo_register_or_const_int_operand): New.
43 (combine_pseudo_register_operand): New.
44 (u16_operand): New.
45 (s16_operand): New.
46 (o16_operand): New.
47 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
48 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
49 (any_extend, any_extend2): New code iterators.
50 (extend_prefix): New code attribute.
51 (mulsi3): Rewrite. Turn insn to expander.
52 (mulhisi3): Ditto.
53 (umulhisi3): Ditto.
54 (usmulhisi3): New expander.
55 (*mulsi3): New insn-and-split.
56 (mulu<mode>si3): New insn-and-split.
57 (muls<mode>si3): New insn-and-split.
58 (mulohisi3): New insn-and-split.
59 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
60 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
61 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
62 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
63 insn-and-split.
64 (*mulsi3_call): Rewrite.
65 (*mulhisi3_call): Rewrite.
66 (*umulhisi3_call): Rewrite.
67 (*usmulhisi3_call): New insn.
68 (*muluhisi3_call): New insn.
69 (*mulshisi3_call): New insn.
70 (*mulohisi3_call): New insn.
71 (extendqihi2): Use combine_pseudo_register_operand as predicate
72 for operand 1.
73 (extendqisi2): Ditto.
74 (zero_extendqihi2): Ditto.
75 (zero_extendqisi2): Ditto.
76 (zero_extendhisi2): Ditto.
77 (extendhisi2): Ditto. Don't early-clobber operand 0.
78
d8fa1b73
UB
792011-07-28 Uros Bizjak <ubizjak@gmail.com>
80
81 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
82
3689198d
SP
832011-07-27 Sebastian Pop <sebastian.pop@amd.com>
84
85 PR tree-optimization/49471
86 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
87 iv only when the largest type is unsigned. Do not call
88 lang_hooks.types.type_for_size.
89
27165edd
SP
902011-07-27 Sebastian Pop <sebastian.pop@amd.com>
91
92 PR middle-end/45450
93 * graphite-poly.c (apply_poly_transforms): Disable legality check
94 after an openscop read.
95
bd4a54da
SP
962011-07-27 Sebastian Pop <sebastian.pop@amd.com>
97
98 PR middle-end/47691
99 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
100 copy_bb_and_scalar_dependences.
101 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
102 (graphite_copy_stmts_from_block): Update call to rename_uses.
103 (copy_bb_and_scalar_dependences): Update call to
104 graphite_copy_stmts_from_block.
105 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
106
04c9ea12 1072011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 108
04c9ea12
GJL
109 PR target/49313
110 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
111 (__ctzsi2): Result for 0 may be undefined.
112 (__ctzhi2): Result for 0 may be undefined.
113 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
114 (__popcountsi2): Ditto. And don't clobber r26.
115 (__popcountdi2): Ditto. And don't clobber r27.
116 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
117 (parityhi2): New expand.
118 (paritysi2): New expand.
119 (popcounthi2): New expand.
120 (popcountsi2): New expand.
121 (clzhi2): New expand.
122 (clzsi2): New expand.
123 (ctzhi2): New expand.
124 (ctzsi2): New expand.
125 (ffshi2): New expand.
126 (ffssi2): New expand.
127 (copysignsf3): New insn.
128 (bswapsi2): New expand.
129 (*parityhi2.libgcc): New insn.
130 (*parityqihi2.libgcc): New insn.
131 (*paritysihi2.libgcc): New insn.
132 (*popcounthi2.libgcc): New insn.
133 (*popcountsi2.libgcc): New insn.
134 (*popcountqi2.libgcc): New insn.
135 (*popcountqihi2.libgcc): New insn-and-split.
136 (*clzhi2.libgcc): New insn.
137 (*clzsihi2.libgcc): New insn.
138 (*ctzhi2.libgcc): New insn.
139 (*ctzsihi2.libgcc): New insn.
140 (*ffshi2.libgcc): New insn.
141 (*ffssihi2.libgcc): New insn.
142 (*bswapsi2.libgcc): New insn.
143
479a4921
UB
1442011-07-27 Uros Bizjak <ubizjak@gmail.com>
145
146 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
147 the mode of symbolic_opreand RTXes.
148
7aecd4e8
UB
1492011-07-27 Uros Bizjak <ubizjak@gmail.com>
150
151 * config/i386/predicates.md (x86_64_movabs_operand): Reject
479a4921 152 pic32_bit_operand RTXes.
7aecd4e8
UB
153 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
154 in DImode.
155
eb9820c0
KT
1562011-07-27 Kai Tietz <ktietz@redhat.com>
157
2fe83a0c
KT
158 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
159 for 32-bit, too.
160 (ix86_handle_abi_attribute): Allow function attributes
161 ms_abi/sysv_abi in 32-bit mode, too.
162 * doc/extend.texi: Adjust attribute documentation.
163
eb9820c0
KT
164 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
165 expression handling.
166 (and_var_with_comparison_1): Likewise.
167
1169e45d
AH
1682011-07-27 Aldy Hernandez <aldyh@redhat.com>
169
170 * params.h (ALLOW_STORE_DATA_RACES): New.
171 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
172 * Makefile.in (expr.o): Depend on PARAMS_H.
173 * machmode.h (get_best_mode): Add argument.
174 * fold-const.c (optimize_bit_field_compare): Add argument to
175 get_best_mode.
176 (fold_truthop): Same.
177 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
178 * expr.c (emit_group_store): Same.
179 (copy_blkmode_from_reg): Same.
180 (write_complex_part): Same.
181 (optimize_bitfield_assignment_op): Add argument.
182 Add argument to get_best_mode.
183 (get_bit_range): New.
7aecd4e8 184 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 185 (store_field): New argument.
7aecd4e8 186 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
187 * expr.h (store_bit_field): New argument.
188 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
189 into account maxbits.
190 * calls.c (store_unaligned_arguments_into_pseudos): New argument
191 to store_bit_field.
192 * expmed.c (store_bit_field_1): New argument. Use it.
193 (store_bit_field): Same.
194 (store_fixed_bit_field): Same.
195 (store_split_bit_field): Same.
196 (extract_bit_field_1): Pass new argument to get_best_mode.
197 (extract_bit_field): Same.
198 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
199 * doc/invoke.texi: Document parameter allow-store-data-races.
200
7bbdd4e9
JJ
2012011-07-27 Jakub Jelinek <jakub@redhat.com>
202
7aecd4e8 203 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 204
aebf4828
KT
2052011-07-27 Kai Tietz <ktietz@redhat.com>
206
207 * tree-vrp.c (extract_range_from_binary_expr): Remove
208 TRUTH-binary cases and add new bitwise-cases.
209 (extract_range_from_assignment): Likewise.
210 (register_edge_assert_for_1): Likeiwise.
211 (register_edge_assert_for): Likewise.
212 (simplify_truth_ops_using_ranges): Likewise.
213 (simplify_stmt_using_ranges): Likewise.
214
65ceed36
L
2152011-07-26 H.J. Lu <hongjiu.lu@intel.com>
216
217 PR target/47372
218 * config/i386/i386.c (ix86_delegitimize_address): Call
219 simplify_gen_subreg for PIC with mode of x only if modes of
220 x and orig_x are different.
221
b56bc05b
JJ
2222011-07-26 Jakub Jelinek <jakub@redhat.com>
223
224 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
225 to GC allocated copy of the string.
226 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
227 before .debug_line, not after it.
228
bce26def
SP
2292011-07-26 Sebastian Pop <sebastian.pop@amd.com>
230
231 PR middle-end/47046
232 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
233 evolution_function_is_affine_p on CHREC_RIGHT.
234
5f72e02d
SP
2352011-07-26 Sebastian Pop <sebastian.pop@amd.com>
236
237 * tree-data-ref.c (max_stmt_executions_tree): Do not call
238 lang_hooks.types.type_for_size.
239
cbc1994b
SP
2402011-07-26 Sebastian Pop <sebastian.pop@amd.com>
241
242 PR middle-end/47653
243 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
244 loops using wrapping semantics.
245
4c7d6755
SP
2462011-07-26 Sebastian Pop <sebastian.pop@amd.com>
247
248 PR middle-end/48805
249 * tree-scalar-evolution.c (instantiate_scev_r): Return
250 chrec_dont_know for ADDR_EXPR.
251
e207e41f
UB
2522011-07-26 Uros Bizjak <ubizjak@gmail.com>
253 H.J. Lu <hongjiu.lu@intel.com>
254
255 PR target/47369
256 PR target/49853
257 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
258 if legitimize_tls_address returned operand in wrong mode. Allow
259 SImode and DImode symbolic operand for PIC. Call convert_to_mode
260 if legitimize_pic_address returned operand in wrong mode.
261
842eeb9b
MJ
2622011-07-26 Martin Jambor <mjambor@suse.cz>
263
264 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
265 return false for invariants.
266
98d2c0ad
UB
2672011-07-26 Uros Bizjak <ubizjak@gmail.com>
268
269 * config/i386/i386.md (add->lea splitter): Implement using SWI
270 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
271 (add->lea zext splitter): Change operand 2 predicate to
272 x86_64_nonmemory_operand.
273
c21510a9
RG
2742011-07-26 Richard Guenther <rguenther@suse.de>
275
276 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
277 frequency makes everything hot.
278
9f61fd17
RG
2792011-07-26 Richard Guenther <rguenther@suse.de>
280
281 PR tree-optimization/49840
282 * tree-vrp.c (range_fits_type_p): Properly handle full
283 double-int precision.
284
5bf3d50d
MJ
2852011-07-26 Martin Jambor <mjambor@suse.cz>
286
287 PR bootstrap/49786
288 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
289 counts.
290 (update_specialized_profile): Likewise.
291
536e3f49
UB
2922011-07-26 Uros Bizjak <ubizjak@gmail.com>
293 H.J. Lu <hongjiu.lu@intel.com>
294
295 PR target/47381
296 PR target/49832
297 PR target/49833
298 * config/i386/i386.md (i): Change SImode attribute to "e".
299 (g): Change SImode attribute to "rme".
300 (di): Change SImode attribute to "nF".
301 (general_operand): Change SImode attribute to x86_64_general_operand.
302 (general_szext_operand): Change SImode attribute to
303 x86_64_szext_general_operand.
304 (immediate_operand): Change SImode attribute to
305 x86_64_immediate_operand.
306 (nonmemory_operand): Change SImode attribute to
307 x86_64_nonmemory_operand.
308 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
309 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
310 (*lea_1): Use SWI48 mode iterator.
311 (*lea_1_zext): New insn pattern.
312 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
313 (*bt<mode>): Ditto.
314 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
315 Update operand constraints.
316 (addsi_1_zext): Ditto.
317 (*add<mode>2): Ditto.
318 (*addsi_3_zext): Ditto.
319 (*subsi_1_zext): Ditto.
320 (*subsi_2_zext): Ditto.
321 (*subsi_3_zext): Ditto.
322 (*addsi3_carry_zext): Ditto.
323 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
324 (*mulsi3_1_zext): Ditto.
325 (*andsi_1): Ditto.
326 (*andsi_1_zext): Ditto.
327 (*andsi_2_zext): Ditto.
328 (*<any_or:code>si_1_zext): Ditto.
329 (*<any_or:code>si_2_zext): Ditto.
330 (*test<mode>_1): Use <general_operand> predicate for operand 1.
331 (*and<mode>_2): Ditto.
332 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
333 (add->lea splitter): Check operand modes in insn constraint. Extend
334 operands less than SImode wide to SImode.
335 (add->lea zext splitter): Do not extend input operands to DImode.
336 (*lea_general_1): Handle only QImode and HImode operands.
337 (*lea_general_2): Ditto.
338 (*lea_general_3): Ditto.
339 (*lea_general_1_zext): Remove.
340 (*lea_general_2_zext): Ditto.
341 (*lea_general_3_zext): Ditto.
342 (*lea_general_4): Check operand modes in insn constraint. Extend
343 operands less than SImode wide to SImode.
344 (ashift->lea splitter): Ditto.
345 * config/i386/i386.c (ix86_print_operand_address): Print address
346 registers with 'q' modifier on 64bit targets.
347 * config/i386/predicates.md (pic_32bit_opreand): Define as special
348 predicate. Reject non-SI and non-DI modes.
349
0de204de
AP
3502011-07-25 Andrew Pinski <apinski@cavium.com>
351
352 PR tree-opt/49671
353 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
354 TREE_THIS_NOTRAP into the inner most MEM_REF.
355 Always copy TREE_THIS_VOLATILE.
356 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
357 arguments are not volatile references.
358
104fcc7a
RH
3592011-07-25 Richard Henderson <rth@redhat.com>
360
361 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
362 * final.c (final_scan_insn): Don't test for it.
363 (rest_of_clean_state): Likewise.
364
c24a6738
RH
3652011-07-25 Richard Henderson <rth@redhat.com>
366
367 PR debug/49841
368 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
369 (emit_frame_save): Likewise.
370 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
371 insn onto a dummy blockage insn after the join label.
372
200e10dc
RH
3732011-07-25 Richard Henderson <rth@redhat.com>
374
375 * dwarf2cfi.c (dw_trace_info): Add ID member.
376 (get_trace_index): Remove. Change users to use ID member.
377 (before_next_cfi_note): New.
378 (connect_traces): Remove unreachable traces before the main loop.
379 Look across one trace and generate remember/restore_state if needed.
380
a5d0ce89
RH
3812011-07-25 Richard Henderson <rth@redhat.com>
382
383 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
384
c344a866
JR
3852011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
386
387 * genattr.c (write_upcase, gen_attr <enum definition writing>):
388 Move to ...
389 * genattr-common.c ... here.
390 (main): Call gen_attr.
391 * optc-gen.awk: Make generated program include insn-attr-common.h .
392 * Makefile.in (oprions.o): Depend on insn-attr-common.h
393
4645179e
AS
3942011-07-25 Anatoly Sokolov <aesok@post.ru>
395
396 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
397 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
398 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
399 m32c_print_operand, m32c_print_operand_address): Remove.
400 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
401 Change return type to bool. Change argument type to bool.
402 (m32c_print_operand, m32c_print_operand_address): Make static.
403 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
404 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
405
8175c19c
RO
4062011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
407
408 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
409 attributes): Document mmap.
410
5057fa13
AS
4112011-07-25 Anatoly Sokolov <aesok@post.ru>
412
413 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
414 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
415 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
416 mmix_print_operand, mmix_print_operand_address): Remove.
417 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
418 Change return type to bool. Change argument type to bool.
419 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 420 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
421 to const_rtx.
422 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
423 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
424
f4da258f 4252011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 426
f4da258f
GJL
427 PR target/39386
428 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
429 shift counter for x << x and x >> x shifts.
430
1500b428
RO
4312011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
432
433 PR target/47124
434 * config.gcc: Reject *-*-solaris2 configuration.
435
59daeef4
RS
4362011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
437
438 PR tree-optimization/49809
439 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
440 gimple_get_lhs instead of gimple_assign_lhs.
441
4d1c7421
RO
4422011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
443
444 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
445
7fdab8d4
RG
4462011-07-25 Richard Guenther <rguenther@suse.de>
447
448 PR tree-optimization/49822
449 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
450 more. Make sure to preserve stmts with side-effects. Properly
451 handle virtual defs, follow a longer def chain.
452
1baae426
RG
4532011-07-22 Romain Geissler <romain.geissler@gmail.com>
454
455 PR plugins/45348
456 PR plugins/48425
457 PR plugins/46577
458 * Makefile.in: Do not flatten c-family directory when installing
459 plugin headers.
460
264b47b0
EB
4612011-07-25 Eric Botcazou <ebotcazou@adacore.com>
462
463 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
464 original nodes if we are dealing with virtual clones.
465
3d02ae65
BS
4662011-07-25 Bernd Schmidt <bernds@codesourcery.com>
467
468 * common/config/c6x/c6x-common.c: New file.
469
2eaa698b
RZ
4702011-07-25 Roman Zhuykov <zhroma@ispras.ru>
471
472 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
473
ebeadd91
RG
4742011-07-25 Richard Guenther <rguenther@suse.de>
475
476 PR tree-optimization/49715
477 * tree-vrp.c: Include expr.h and optabs.h.
478 (range_fits_type_): New function.
479 (simplify_float_conversion_using_ranges): Likewise.
480 (simplify_stmt_using_ranges): Call it.
481 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
482 * optabs.c (can_float_p): Export.
483 * optabs.h (can_float_p): Declare.
484
d9256277
RG
4852011-07-25 Richard Guenther <rguenther@suse.de>
486
487 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
488 (get_value_range): For out-of-range SSA names or names created
489 after propagation return a read-only varying range.
490 (dump_all_value_ranges): Adjust.
491 (vrp_initialize): Likewise.
492 (vrp_finalize): Likewise.
493
149e741d
RH
4942011-07-24 Richard Henderson <rth@redhat.com>
495
496 PR debug/49831
497 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
498 them entirely.
499
981dc735
RH
5002011-07-24 Richard Henderson <rth@redhat.com>
501
502 PR debug/49825
503 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
504 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
505
3382318a
RH
5062011-07-24 Richard Henderson <rth@redhat.com>
507
508 PR debug/49827
509 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
510
2f23f97a
RH
5112011-07-24 Richard Henderson <rth@redhat.com>
512
513 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
514 Zero args_size for abnormal edges. Adjust all callers.
515
2edb462e
RH
5162011-07-24 Richard Henderson <rth@redhat.com>
517
518 PR debug/49825
519 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
520
96d5384b
L
5212011-07-24 H.J. Lu <hongjiu.lu@intel.com>
522
523 PR bootstrap/49835
524 * collect2.c (demangle_flag): Removed.
525
df45fc34
SL
5262011-07-24 Sandra Loosemore <sandra@codesourcery.com>
527
528 * configure.ac (demangler_in_ld): Default to yes.
529 * configure: Regenerated.
530 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
531 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
532 --no-demangle options straight through to ld. When
533 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
534 way that has the intended effect on Windows.
535
829bdd4b
RH
5362011-07-23 Richard Henderson <rth@redhat.com>
537
538 * dwarf2cfi.c: Include basic-block.h.
539 (dw_label_info): Remove.
540 (trace_work_list, trace_index): New.
541 (remember_row, emit_cfa_remember): Remove.
542 (dw_trace_info_hash, dw_trace_info_eq): New.
543 (get_trace_index, get_trace_info): New.
544 (save_point_p): New.
545 (free_cfi_row): Remove.
546 (add_cfi): Do not emit DW_CFA_remember_state.
547 (cfa_row_equal_p): New.
548 (barrier_args_size): Remove.
549 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
550 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
551 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
552 (dwarf2out_cfi_begin_epilogue): Remove.
553 (dwarf2out_frame_debug_restore_state): Remove.
554 (connect_traces, create_pseudo_cfg): New.
555 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
556 * Makefile.in (dwarf2cfi.o): Update.
557
43215a89
RH
5582011-07-23 Richard Henderson <rth@redhat.com>
559
560 * dwarf2cfi.c (dw_trace_info): New.
561 (dw_label_info): New.
562 (cie_return_save): New.
563 (cur_trace): New.
564 (queued_args_size): Rename from args_size. Update all users.
565 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
566 (def_cfa_1): Use cur_trace instead of cfa_*.
567 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
568 (clobbers_queued_reg_save, reg_saved_in): Likewise.
569 (dwarf2out_frame_debug_expr): Likewise.
570 (create_cie_data): Split out from ...
571 (execute_dwarf2_frame): ... here. Initialize cur_trace.
572
6ffc63e1
RH
5732011-07-23 Richard Henderson <rth@redhat.com>
574
575 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
576 Update all users to match.
577 (execute_dwarf2_frame): Free reg_saved_in_data.
578
999646c1
RH
5792011-07-23 Richard Henderson <rth@redhat.com>
580
581 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
582 (queued_reg_saves): Don't GTY. Change to a VEC.
583 (queue_reg_save): Update to match.
584 (dwarf2out_flush_queued_reg_saves): Likewise.
585 (clobbers_queued_reg_save): Likewise.
586 (reg_saved_in): Likewise.
587 (execute_dwarf2_frame): Free queued_reg_saves.
588
ce363ef2
RH
5892011-07-23 Richard Henderson <rth@redhat.com>
590
591 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
592
57e16c96
RH
5932011-07-23 Richard Henderson <rth@redhat.com>
594
595 * dwarf2cfi.c (add_cfi_args_size): Split out from...
596 (dwarf2out_args_size): ... here.
597 (add_cfi_restore): Split out from ...
598 (dwarf2out_frame_debug_cfa_restore): ... here.
599 (def_cfa_0): Split out from ...
600 (def_cfa_1): ... here.
601 (cfi_oprnd_equal_p, cfi_equal_p): New.
602 (change_cfi_row): New.
603 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
604 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
605 (output_cfis): Remove.
606 * dwarf2out.c (output_fde): Simplify output_cfi loop.
607 (dwarf2out_switch_text_section): Don't call output_cfis.
608 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
609 * dwarf2out.h: Update decls.
610 (enum dw_val_class): Add dw_val_class_none.
611
f1a0e830
RH
6122011-07-23 Richard Henderson <rth@redhat.com>
613
614 * dwarf2cfi.c (update_row_reg_save): New.
615 (dwarf2out_frame_debug_cfa_expression): Use it.
616 (dwarf2out_frame_debug_cfa_restore): Likewise.
617 (reg_save): Likewise. Do not emit DW_CFA_same_value.
618
141618e2
RH
6192011-07-23 Richard Henderson <rth@redhat.com>
620
621 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
622
f17d3401
RH
6232011-07-23 Richard Henderson <rth@redhat.com>
624
625 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
626 (cie_cfi_row): New.
627 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
628 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
629 (cur_row, remember_row): New.
630 (def_cfa_1): Use cur_row instead of the old_* variables.
631 (dwarf2out_frame_debug_restore_state): Similarly.
632 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
633 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
634 (dwarf2out_frame_debug_adjust_cfa): Likewise.
635 (dwarf2out_frame_debug_cfa_offset): Likewise.
636 (dwarf2out_frame_debug_expr): Likewise.
637 (execute_dwarf2_frame): Set up cur_row.
638 * dwarf2out.h (struct cfa_loc): Mark for GTY.
639
0be7e7a6
RH
6402011-07-23 Richard Henderson <rth@redhat.com>
641
642 * basic-block.h (EDGE_PRESERVE): New.
643 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
644 * bb-reorder.c: Include except.h.
645 (fix_up_crossing_landing_pad): New.
536e3f49 646 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
647 landing pads in the right partition. Duplicate as necessary.
648 (partition_hot_cold_basic_blocks): Fix up DF info after
649 duplicating landing pads.
650 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
651 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
652 is set properly. Validate that EH edges are not CROSSING.
653 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
654 (dw2_build_landing_pads): ... here.
655 (convert_to_eh_region_ranges): Remove code to fixup crossing
656 landing pads.
657 * except.h (expand_dw2_landing_pad_for_region): Declare.
658 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
659
e0170551
RE
6602011-07-23 Richard Earnshaw <rearnsha@arm.com>
661
662 PR target/49816
663 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
664
15c2ccba
JM
6652011-07-22 Jason Merrill <jason@redhat.com>
666
667 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
668
295331a4
RH
6692011-07-22 Richard Henderson <rth@redhat.com>
670
671 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
672
5f93b30a
RH
6732011-07-22 Richard Henderson <rth@redhat.com>
674
675 * jump.c (maybe_propagate_label_ref): Split out of...
676 (mark_all_labels): ... here. Do not attempt label_ref
677 propagation while in cfglayout mode.
678
e967adf4
JJ
6792011-07-22 Jakub Jelinek <jakub@redhat.com>
680
520cda8c
JJ
681 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
682 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
683 (dwarf_attr_name): Handle DW_AT_GNU_macros.
684 (dwarf2out_define): If the vector is empty and
685 lineno is 0, emit a dummy entry first.
686 (dwarf2out_undef): Likewise. Remove redundant semicolon.
687 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
688 optimize_macinfo_range): New functions.
689 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
690 mergeable, optimize longer strings using
691 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
692 optimize longer sequences of define/undef ops from headers
693 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
694 emit a section headers.
695 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
696 and macinfo_section_label to DEBUG_MACRO_SECTION
697 resp. DEBUG_MACRO_SECTION_LABEL.
698 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
699 instead of DW_AT_macro_info.
700
e967adf4
JJ
701 PR other/32998
702 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
703 options.
704 * dwarf2out.c: Include opts.h.
705 (dchar_p): New typedef. Define heap VEC for it.
706 (producer_string): New variable.
707 (gen_producer_string): New function.
708 (gen_compile_unit_die): Use it.
536e3f49 709 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
710 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
711 * doc/invoke.texi: Document -grecord-gcc-switches and
712 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
713 to -frecord-gcc-switches description.
714
3a636414
JM
7152011-07-22 Jason Merrill <jason@redhat.com>
716
717 PR c++/30112
718 * c-decl.c (c_linkage_bindings): Define.
719
8b9b2275
EB
7202011-07-22 Eric Botcazou <ebotcazou@adacore.com>
721
722 PR debug/49815
723 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
724
3de69514
L
7252011-07-22 H.J. Lu <hongjiu.lu@intel.com>
726
727 * config/i386/i386.c (ix86_option_override_internal): Disallow
728 MS ABI in x32 mode.
729 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
730 only for TARGET_LP64.
536e3f49 731 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 732
49f6f4f7 7332011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
734
735 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
736 avoid warnings when GCC is built with a C++ compiler.
737
b75d1e21
MJ
7382011-07-22 Martin Jambor <mjambor@suse.cz>
739
740 PR lto/49796
741 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 742 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 743
63708bf5
UB
7442011-07-22 Uros Bizjak <ubizjak@gmail.com>
745
e3c666fd 746 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
747 default_gnu_indirect_function to yes.
748
27315aa6
RG
7492011-07-22 Richard Guenther <rguenther@suse.de>
750
751 PR tree-optimization/45819
752 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
753 preserve volatile and notrap flags.
754
5b6d595b
RO
7552011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
756 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
757
758 PR bootstrap/49794
759 * configure.ac: Test AM_ICONV with CXX.
760 * configure: Regenerate.
761 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
762
7e2fe488
RO
7632011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
764
765 PR bootstrap/49797
766 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
767 (set_cloog_options): Use it.
768
d423df48
JJ
7692011-07-22 Jakub Jelinek <jakub@redhat.com>
770
771 PR c++/49756
772 * gcc.c (main): Call stack_limit_increase (64MB).
773 * toplev.c (toplev_main): Likewise.
774
7fd72c6f
L
7752011-07-21 H.J. Lu <hongjiu.lu@intel.com>
776
777 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
778 instead of force_reg.
779
96f0b772
L
7802011-07-21 H.J. Lu <hongjiu.lu@intel.com>
781
782 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
783 needed and use force_reg after convert.
784 (ix86_expand_call): Likewise.
785 (ix86_expand_special_args_builtin): Likewise.
786 (ix86_expand_builtin): Likewise.
787
ef74e2ba
SP
7882011-07-21 Sebastian Pop <sebastian.pop@amd.com>
789
790 PR middle-end/47654
791 PR middle-end/49649
792 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
793 in parameter. Initialize v1 and v2 based on the values returned
794 by clast_name_to_lb_ub.
795 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
796 values.
797 (type_for_clast_bin): Same.
798 (type_for_clast_expr): Same.
799 (type_for_clast_eq): Update calls to type_for_clast_expr.
800 (type_for_clast_for): Same.
801 (build_iv_mapping): Same.
802 * graphite-ppl.h (value_min): New.
803
84f2ffea
SP
8042011-07-21 Sebastian Pop <sebastian.pop@amd.com>
805
806 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
807 types whenever possible.
808
3d9784cb
SP
8092011-07-21 Sebastian Pop <sebastian.pop@amd.com>
810
811 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
812 and ub fields.
813 (new_clast_name_index): Add lb and ub parameters.
814 (free_clast_name_index): New.
815 (clast_name_to_lb_ub): New.
816 (save_clast_name_index): Add lb and ub parameters.
817 (compute_bounds_for_param): New.
818 (type_for_level): Removed.
819 (type_for_clast_for): Removed level parameter. Do not call
820 type_for_level.
821 (graphite_create_new_loop): Store the lb and ub for the clast_name
822 of the iterator of the loop that has been generated.
823 (graphite_create_new_loop_guard): Remove parameter level.
824 (create_params_index): Store the lb and ub of each parameter.
825 (gloog): Use free_clast_name_index. Pass to create_params_index
826 the current scop.
827
12b30e6d
SP
8282011-07-21 Sebastian Pop <sebastian.pop@amd.com>
829
830 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
831 (max_precision_type): Inline max_signed_precision_type.
832 (type_for_clast_red): Use max_precision_type.
833 (type_for_clast_bin): Same.
834 (type_for_clast_for): Same.
835
0cdd9dcf
SP
8362011-07-21 Sebastian Pop <sebastian.pop@amd.com>
837
838 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
839 type_for_interval.
840 (gcc_type_for_value): Renamed type_for_value.
841 (gcc_type_for_clast_term): Renamed type_for_clast_term.
842 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
843 (gcc_type_for_clast_red): Renamed type_for_clast_red.
844 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
845 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
846 (graphite_translate_clast_equation): Update calls.
847 (compute_type_for_level): Renamed type_for_level.
848 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
849 (build_iv_mapping): Update calls.
850 (graphite_create_new_loop_guard): Same.
851
8aab43a0
SP
8522011-07-21 Sebastian Pop <sebastian.pop@amd.com>
853
854 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
855 comment.
856
cf7eab7d
SP
8572011-07-21 Sebastian Pop <sebastian.pop@amd.com>
858
859 * graphite-clast-to-gimple.c (struct ivs_params): New.
860 (clast_name_to_gcc): Use ivs_params to pass around parameters.
861 (clast_to_gcc_expression): Same.
862 (clast_to_gcc_expression_red): Same.
863 (gcc_type_for_clast_term): Same.
864 (gcc_type_for_clast_expr): Same.
865 (gcc_type_for_clast_red): Same.
866 (gcc_type_for_clast_bin): Same.
867 (gcc_type_for_clast_eq): Same.
868 (graphite_translate_clast_equation): Same.
869 (graphite_create_guard_cond_expr): Same.
870 (graphite_create_new_guard): Same.
871 (graphite_create_new_loop): Same.
872 (build_iv_mapping): Same.
873 (translate_clast_user): Same.
874 (graphite_create_new_loop_guard): Same.
875 (translate_clast): Same.
876 (translate_clast_for_loop): Same.
877 (translate_clast_for): Same.
878 (translate_clast_guard): Same.
879 (initialize_cloog_names): Fix typo.
880 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
881
7b1e9596
SP
8822011-07-21 Sebastian Pop <sebastian.pop@amd.com>
883
884 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
885 (new_clast_name_index): Add level parameter.
886 (clast_name_to_level): New.
887 (save_clast_name_index): Add level parameter.
888 (newivs_to_depth_to_newiv): Removed.
889 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
890 (graphite_create_new_loop): Add level parameter. Pass level to
891 save_clast_name_index.
892 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
893 (create_params_index): Pass level to save_clast_name_index.
894
6e6568db
SP
8952011-07-21 Sebastian Pop <sebastian.pop@amd.com>
896
897 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
898 recompute type, lb, and ub. Get them from...
899 (graphite_create_new_loop_guard): ...here. Pass in parameter
900 pointers to type, lb, and ub.
901 (translate_clast_for_loop): Update function calls.
902 (translate_clast_for): Same.
903
dff62090
SP
9042011-07-21 Sebastian Pop <sebastian.pop@amd.com>
905
906 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
907 psct_dynamic_dim.
908 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
909 (gcc_type_for_iv_of_clast_loop): Update use of level.
910 (gloog): Start counting nesting level from 0.
911 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
912 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
913 psct_dynamic_dim on level.
914
628c1ac9
L
9152011-07-21 H.J. Lu <hongjiu.lu@intel.com>
916
917 * config/i386/i386.c (ix86_legitimize_address): Convert to
918 Pmode if needed.
919
08a8923e
L
9202011-07-21 H.J. Lu <hongjiu.lu@intel.com>
921
922 * config/i386/i386.c (function_value_64): Always return pointers
923 in Pmode.
924 (ix86_promote_function_mode): New.
925 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
926
777a4e9a
BS
9272011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
928
929 PR tree-optimization/49749
930 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
931 remove no-longer-used maxrank variable.
63708bf5 932
e9514725 9332011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 934
e9514725
GJL
935 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
936
9ca1483b
JM
9372011-07-21 Jason Merrill <jason@redhat.com>
938
939 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
940 * recog.h (struct insn_data_d): Check it instead of
941 HAVE_DESIGNATED_INITIALIZERS.
942 * genoutput.c (output_insn_data): Likewise.
943
3ceaf2f5
RG
9442011-07-21 Richard Guenther <rguenther@suse.de>
945
946 PR tree-optimization/49770
947 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
948 valueized any operand. Renamed from ...
949 (valueize_refs): ... this. New wrapper around valueize_refs_1.
950 (valueize_shared_reference_ops_from_ref): Return whether we
951 valueized any operand.
952 (vn_reference_lookup): Only when we valueized any operand
953 use the valueized reference for alias analysis. Do not preserve
954 the original reference tree in this case.
955
7c53a140
UB
9562011-07-21 Uros Bizjak <ubizjak@gmail.com>
957
958 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 959 register operands and subregs of DImode hard registers in index.
7c53a140 960
7f3ff782
KT
9612011-07-21 Kai Tietz <ktietz@redhat.com>
962
963 * fold-const.c (fold_unary_loc): Preserve indirect
964 comparison cast to none-boolean type.
965 * tree-ssa.c (useless_type_conversion_p): Preserve cast
966 from/to boolean-type.
7c53a140
UB
967 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
968 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
969 * tree-cfg.c (verify_gimple_comparison): Check result
970 type of comparison expression.
7c53a140
UB
971 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
972 of condition result and disallow type-cast sinking into comparison.
7f3ff782 973
91bc6112
RG
9742011-07-21 Richard Guenther <rguenther@suse.de>
975
976 * tree-ssa-forwprop.c (combine_conversions): Return whether
977 we have to run cfg-cleanup. Properly remove dead stmts.
978 (ssa_forward_propagate_and_combine): Adjust.
979
d6f23738
RS
9802011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
981
982 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
983
fec3cad3
KT
9842011-07-21 Kai Tietz <ktietz@redhat.com>
985
986 * tree-ssa-propagate.c (substitute_and_fold): Use
987 do_dce flag to deside, if BB's statements are scanned
988 in last to first, or first to last order.
989
21f3ae2f 9902011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 991
21f3ae2f
GJL
992 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
993
6025b127
L
9942011-07-20 H.J. Lu <hongjiu.lu@intel.com>
995 Uros Bizjak <ubizjak@gmail.com>
996 Richard Henderson <rth@redhat.com>
997
998 * config/i386/constraints.md (w): New.
999
1000 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1001 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1002
1003 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1004 instead of TARGET_64BIT.
1005
1006 * config/i386/i386.md (indirect_jump): Replace
1007 nonimmediate_operand with indirect_branch_operand.
1008 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
1009 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1010 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
1011 (*tablejump_1): Replace nonimmediate_operand with
1012 indirect_branch_operand. Replace constraint "m" with "w".
1013 (*call_vzeroupper): Replace constraint "m" with "w".
1014 (*call): Likewise.
1015 (*call_rex64_ms_sysv_vzeroupper): Likewise.
1016 (*call_rex64_ms_sysv): Likewise.
1017 (*call_value_vzeroupper): Likewise.
1018 (*call_value): Likewise.
1019 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1020 (*call_value_rex64_ms_sysv): Likewise.
a4235495 1021 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
1022
1023 * config/i386/predicates.md (indirect_branch_operand): New.
1024 (call_insn_operand): Support x32.
1025
7f8925a1
ME
10262011-07-20 Michael Eager <eager@eagercon.com>
1027
1028 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1029
510a442a
RH
10302011-07-20 Richard Henderson <rth@redhat.com>
1031
1032 * cfg.c (dump_bb_info): Dump basic_block->flags.
1033 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1034
00b40d0d
UB
10352011-07-20 Uros Bizjak <ubizjak@gmail.com>
1036
1037 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1038 of DImode hard registers in index.
1039 (ix86_legitimate_address_p): Allow subregs of base and index to span
1040 more than a word. Assert that subregs of base and index satisfy
1041 register_no_elim_operand predicates. Reject addresses where
1042 base and index have different modes.
1043
87f53554
RM
10442011-07-20 Robert Millan <rmh@gnu.org>
1045
1046 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1047
742f29ab
UW
10482011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1049
1050 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1051 removing now-unnecessary assignment.
1052
d05f3564
UW
10532011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1054
1055 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1056 memory address space to the type's address space.
1057
8c352fa8 10582011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 1059
8c352fa8
GJL
1060 PR target/36467
1061 PR target/49687
00b40d0d
UB
1062 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1063 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
1064 (usmulqihi3): New insn.
1065 (*sumulqihi3): New insn.
1066 (*osmulqihi3): New insn.
1067 (*oumulqihi3): New insn.
1068 (*muluqihi3.uconst): New insn_and_split.
1069 (*muluqihi3.sconst): New insn_and_split.
1070 (*mulsqihi3.sconst): New insn_and_split.
1071 (*mulsqihi3.uconst): New insn_and_split.
1072 (*mulsqihi3.oconst): New insn_and_split.
1073 (*ashifthi3.signx.const): New insn_and_split.
1074 (*ashifthi3.signx.const7): New insn_and_split.
1075 (*ashifthi3.zerox.const): New insn_and_split.
1076 (mulsqihi3): New insn.
1077 (muluqihi3): New insn.
1078 (muloqihi3): New insn.
1079 * config/avr/predicates.md (const_2_to_7_operand): New.
1080 (const_2_to_6_operand): New.
1081 (u8_operand): New.
1082 (s8_operand): New.
1083 (o8_operand): New.
1084 (s9_operand): New.
1085 (register_or_s9_operand): New.
1086
be31603a
KT
10872011-07-20 Kai Tietz <ktietz@redhat.com>
1088
1089 * builtins.c (fold_builtin_expect): See through the cast
1090 from truthvalue_type_node to long.
1091
c36193c6
MM
10922011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1093
1094 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1095 where we can use them from the standard and altivec instruction
1096 sets, instead of always using the 3 operand VSX forms that require
1097 the destination to overlap one of the inputs.
1098 (vsx_fms*): Ditto.
1099 (vsx_fnma*): Ditto.
1100 (vsx_fnms*): Ditto.
1101
1102 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1103 for DF types.
1104 (fmsdf4_fpr): Ditto.
1105 (nfmadf4_fpr): Ditto.
1106 (nfmsdf4_fpr): Ditto.
1107
02aec184
SL
11082011-07-20 Sandra Loosemore <sandra@codesourcery.com>
1109
1110 * genrecog.c (make_insn_sequence): Correct position numbering
1111 when filtering out match_scratch and match_dup.
1112
f8ecf734
RG
11132011-07-20 Richard Guenther <rguenther@suse.de>
1114
1115 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1116 against already removed statements.
1117 (forward_propagate_into_comparison): Remove dead defining stmts.
1118 (forward_propagate_into_gimple_cond): Likewise.
1119 (forward_propagate_into_cond): Simplify.
1120 (ssa_forward_propagate_and_combine): Handle changed cfg from
1121 forward_propagate_into_comparison.
1122 * tree-ssa-phiopt.c (conditional_replacement): Use proper
1123 locations for newly built statements.
1124
73451ae7
GJL
11252011-07-20 Georg-Johann Lay <avr@gjlay.de>
1126
1127 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1128
c4100a35
AK
11292011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1130
1131 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1132 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1133
dca412a1
RG
11342011-07-20 Richard Guenther <rguenther@suse.de>
1135
1136 PR middle-end/18908
1137 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1138 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1139 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
1140
73d7e266
VM
11412011-07-20 Vladimir Makarov <vmakarov@redhat.com>
1142
1143 * config/frv/frv.c (frv_register_move_cost): Define explicitly
1144 costs for subclasses of GR_REGS.
1145
5e27a6d4
UB
11462011-07-20 Uros Bizjak <ubizjak@gmail.com>
1147
1148 PR target/49780
1149 * config/i386/predicates.md (no_seg_addres_operand): No more special.
1150 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1151 of DImode hard registers in base.
1152 (ix86_legitimate_address_p): Allow SImode and DImode base and index
1153 registers.
1154
74d8fa44
RG
11552011-07-20 Richard Guenther <rguenther@suse.de>
1156
5e27a6d4 1157 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
1158 (unify_nodes): Deal with that.
1159 (solve_graph): Likewise.
1160
b0e43da8
CLT
11612011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
1162
1163 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1164 canonicalize left operand from ZERO_EXTEND to AND.
1165
a8c44c52
AS
11662011-07-20 Anatoly Sokolov <aesok@post.ru>
1167
1168 * target.def (class_max_nregs): New hook.
1169 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1170 * doc/tm.texi: Regenerate.
1171 * targhooks.c (default_class_max_nregs): New function.
1172 * targhooks.h (default_class_max_nregs): Declare.
1173 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1174 x_ira_reg_class_min_nregs arrays to unsigned char.
1175 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1176 hook instead of CLASS_MAX_NREGS macro.
1177 * reginfo.c (restore_register_info): Ditto.
1178 * ira-conflicts.c (process_regs_for_copy): Use
1179 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1180 Change type rclass and aclass vars to reg_class_t.
1181 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1182 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1183 reg_class_t.
1184 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1185 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1186
1187 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1188 * config/i386/i386.c (ix86_class_max_nregs): New function.
1189 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1190 instead of CLASS_MAX_NREGS macro.
1191 (TARGET_CLASS_MAX_NREGS): Define.
1192 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1193 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1194 * config/avr/avr.c (class_max_nregs): Remove function.
1195 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1196 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1197 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1198 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1199 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1200 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1201 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1202 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1203 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1204 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1205 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1206 * config/score/score.h (CLASS_MAX_NREGS): Remove.
1207 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1208 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1209 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1210
fd811f03
EB
12112011-07-19 Eric Botcazou <ebotcazou@adacore.com>
1212
1213 * cif-code.def (OVERWRITABLE): Fix typo and move around.
1214 (TARGET_OPTIMIZATION_MISMATCH): Delete.
1215 (EH_PERSONALITY): Fix typo.
1216 (NON_CALL_EXCEPTIONS): Fix message.
1217 (OPTIMIZATION_MISMATCH): Adjust message.
1218 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1219
78767fd9
ILT
12202011-07-19 Ian Lance Taylor <iant@google.com>
1221
1222 * doc/install.texi (Configuration): Document
1223 --enable-build-poststage1-with-cxx.
1224
0baeec1b
RM
12252011-07-19 Robert Millan <rmh@gnu.org>
1226
1227 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
1228 (GLIBC_DYNAMIC_LINKER): Remove.
1229
1230 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
1231 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1232 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1233 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1234 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1235 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1236
1237 * config/mips/linux.h: Remove everything except for ...
1238 (GLIBC_DYNAMIC_LINKER): ... this macro.
1239
1240 * config/mips/linux64.h: Remove everything except for ...
1241 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1242 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1243 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1244 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1245 (GNU_USER_LINK_EMULATIONN32): New macros.
1246
5e27a6d4
UB
1247 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1248 Use the new headers.
0baeec1b 1249
754c3d5d
RS
12502011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1251
1252 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1253 Add offset_known_p and size_known_p fields.
1254 (MEM_OFFSET_KNOWN_P): Update accordingly.
1255 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1256 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1257 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1258 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1259 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1260 (init_emit_regs): Likewise.
1261
527210c4
RS
12622011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1263
1264 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1265 (MEM_OFFSET): Change from returning an rtx to returning a
1266 HOST_WIDE_INT.
1267 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1268 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1269 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1270 (clear_mem_offset): Declare.
1271 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1272 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1273 MEM_OFFSET to get a HOST_WIDE_INT offset.
1274 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
1275 (adjust_offset_for_component_ref): Take a bool "known_p"
1276 parameter and a HOST_WIDE_INT "offset" parameter.
1277 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1278 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1279 than an rtx. Use clear_mem_offset to clear the offset.
1280 * cfgcleanup.c (merge_memattrs): Likewise.
1281 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1282 * function.c (assign_parm_find_stack_rtl): Likewise.
1283 (assign_parm_setup_stack): Likewise.
1284 * print-rtl.c (print_rtx): Likewise.
1285 * reload.c (find_reloads_subreg_address): Likewise.
1286 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1287 * var-tracking.c (INT_MEM_OFFSET): Likewise.
1288 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1289 (get_mem_align_offset): Likewise.
1290 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1291 (clear_mem_offset): New function.
1292 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1293 offset rather than an rtx. Assume both the expressio and offset
1294 are available.
1295 (r10k_needs_protection_p_1): Update accordingly, checking the
1296 expression and offset availability here instead.
1297
f5541398
RS
12982011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1299
1300 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1301 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1302 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1303 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1304 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1305 (clear_mem_size): Declare.
1306 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1307 (clear_mem_size): New function.
1308 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1309 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1310 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
1311 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
1312 to clear the size.
1313 (nonoverlapping_memrefs_p): Likewise.
1314 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1315 (expand_builtin_init_trampoline): Likewise.
1316 * calls.c (compute_argument_addresses): Likewise.
1317 * cfgcleanup.c (merge_memattrs): Likewise.
1318 * dce.c (find_call_stack_args): Likewise.
1319 * dse.c (record_store, scan_insn): Likewise.
1320 * dwarf2out.c (dw_sra_loc_expr): Likewise.
1321 * expr.c (emit_block_move_hints): Likewise.
1322 * function.c (assign_parm_find_stack_rtl): Likewise.
1323 * print-rtl.c (print_rtx): Likewise.
1324 * reload.c (find_reloads_subreg_address): Likewise.
1325 * rtlanal.c (may_trap_p_1): Likewise.
1326 * var-tracking.c (track_expr_p): Likewise.
1327 * varasm.c (assemble_trampoline_template): Likewise.
1328 * config/arm/arm.c (arm_print_operand): Likewise.
1329 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1330 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1331 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1332 (expand_constant_setmem_prologue): Likewise.
1333 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1334 * config/rs6000/rs6000.c (expand_block_move): Likewise.
1335 (adjacent_mem_locations): Likewise.
1336 * config/s390/s390.c (s390_expand_setmem): Likewise.
1337 (s390_expand_insv): Likewise.
1338 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1339 (*extendqi<mode>2_short_displ): Likewise.
1340 * config/sh/sh.c (expand_block_move): Likewise.
1341 * config/sh/sh.md (extv, extzv): Likewise.
1342
f12144dd
RS
13432011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1344
1345 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1346 (mem_attrs_htab_eq): ...here.
1347 (find_mem_attrs): Replace with...
1348 (set_mem_attrs): ...this function. Take a mem_attrs structure
1349 rather than individual fields.
1350 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1351 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1352 (set_mem_size, change_address, adjust_address_1, offset_address)
1353 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1354 Update accordingly.
1355
1c3f523e
RS
13562011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1357
1358 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
1359 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
1360 Provide a dummy definition of MEM_ADDR_SPACE for generators.
1361 (target_rtl): Add x_mode_mem_attrs.
1362 (mode_mem_attrs): New macro.
1363 (get_mem_attrs): New function.
1364 * emit-rtl.c (get_mem_attrs): Rename to...
1365 (find_mem_attrs): ...this.
1366 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1367 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1368 (set_mem_size, change_address, adjust_address_1, offset_address)
1369 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1370 Update accordingly.
1371 (init_emit_regs): Initialize mode_mem_attrs.
1372
3046b1a9
RG
13732011-07-19 Richard Guenther <rguenther@suse.de>
1374
1375 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
1376 TRUTH_*_EXPR handling.
1377 * tree-ssa-operands.c (get_expr_operands): Likewise.
1378 * tree-ssa-pre.c (fully_constant_expression): Likewise.
1379 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
1380 Likewise.
1381 (is_and_or_or): Likewise.
1382 (is_norm_cond_subset_of): Likewise.
1383
5d49b6a7
RG
13842011-07-19 Richard Guenther <rguenther@suse.de>
1385
1386 * tree.h (fold_build_pointer_plus_loc): New helper function.
1387 (fold_build_pointer_plus_hwi_loc): Likewise.
1388 (fold_build_pointer_plus): Define.
1389 (fold_build_pointer_plus_hwi): Likewise.
1390 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
1391 (fold_builtin_memory_op): Likewise.
1392 (fold_builtin_stpcpy): Likewise.
1393 (fold_builtin_memchr): Likewise.
1394 (fold_builtin_strstr): Likewise.
1395 (fold_builtin_strchr): Likewise.
1396 (fold_builtin_strrchr): Likewise.
1397 (fold_builtin_strpbrk): Likewise.
1398 (fold_builtin_strcat): Likewise.
1399 (expand_builtin_memory_chk): Likewise.
1400 (fold_builtin_memory_chk): Likewise.
1401 * c-typeck.c (build_unary_op): Likewise.
1402 * cgraphunit.c (thunk_adjust): Likewise.
1403 * fold-const.c (build_range_check): Likewise.
1404 (fold_binary_loc): Likewise.
1405 * omp-low.c (extract_omp_for_data): Likewise.
1406 (expand_omp_for_generic): Likewise.
1407 (expand_omp_for_static_nochunk): Likewise.
1408 (expand_omp_for_static_chunk): Likewise.
1409 * tree-affine.c (add_elt_to_tree): Likewise.
1410 * tree-data-ref.c (split_constant_offset_1): Likewise.
1411 * tree-loop-distribution.c (generate_memset_zero): Likewise.
1412 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1413 * tree-predcom.c (ref_at_iteration): Likewise.
1414 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1415 (add_to_parts): Likewise.
1416 (create_mem_ref): Likewise.
1417 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1418 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1419 (number_of_iterations_le): Likewise.
1420 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1421 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1422 (vect_create_addr_base_for_vector_ref): Likewise.
1423 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1424 (vect_create_cond_for_alias_checks): Likewise.
1425 * tree-vrp.c (extract_range_from_assert): Likewise.
1426 * config/alpha/alpha.c (alpha_va_start): Likewise.
1427 (alpha_gimplify_va_arg_1): Likewise.
1428 * config/i386/i386.c (ix86_va_start): Likewise.
1429 (ix86_gimplify_va_arg): Likewise.
1430 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1431 * config/mep/mep.c (mep_expand_va_start): Likewise.
1432 (mep_gimplify_va_arg_expr): Likewise.
1433 * config/mips/mips.c (mips_va_start): Likewise.
1434 (mips_gimplify_va_arg_expr): Likewise.
1435 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1436 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1437 (rs6000_gimplify_va_arg): Likewise.
1438 * config/s390/s390.c (s390_va_start): Likewise.
1439 (s390_gimplify_va_arg): Likewise.
1440 * config/sh/sh.c (sh_va_start): Likewise.
1441 (sh_gimplify_va_arg_expr): Likewise.
1442 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1443 * config/spu/spu.c (spu_va_start): Likewise.
1444 (spu_gimplify_va_arg_expr): Likewise.
1445 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1446 Likewise.
1447 (xstormy16_gimplify_va_arg_expr): Likewise.
1448 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1449 (xtensa_gimplify_va_arg_expr): Likewise.
1450
d906fd7f
RG
14512011-07-19 Richard Guenther <rguenther@suse.de>
1452
1453 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1454 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1455 handling.
1456
1457 PR middle-end/18908
1458 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1459 result of BIT_*_EXPR to bitfield precision.
1460
1b14d815
RS
14612011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
1462
1463 PR tree-optimization/49742
1464 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1465 as a potential write.
1466
d906fd7f
RG
14672011-07-19 Richard Guenther <rguenther@suse.de>
1468
1469 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1470 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1471 (forward_propagate_comparison): Simplify, remove obsolete code.
1472
53020648
RG
14732011-07-19 Richard Guenther <rguenther@suse.de>
1474
1475 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1476 BIT_XOR_EXPR, same as the RTL expander does.
1477 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1478 (verify_gimple_assign_unary): Likewise.
1479 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1480 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1481 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1482
b8b2b009
JJ
14832011-07-19 Jakub Jelinek <jakub@redhat.com>
1484
1485 PR tree-optimization/49768
1486 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1487 if offset is smaller than bitoffset, but offset+size is bigger
1488 than bitoffset.
1489
338f655d
IR
14902011-07-19 Ira Rosen <ira.rosen@linaro.org>
1491
1492 PR tree-optimization/49771
1493 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1494 zero step, set segment length to the size of the data-ref's type.
1495
310bc633
MJ
14962011-07-18 Martin Jambor <mjambor@suse.cz>
1497
1498 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1499 comments.
1500 (ipcp_values_pool): Declare.
1501 (ipcp_sources_pool): Likewise.
1502 (ipcp_lattice): Changed to forward declaration.
1503 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1504 cannot_devirtualize.
1505 (ipa_node_params): New fields descriptors, lattices, known_vals,
1506 clone_for_all_contexts and node dead, removed fields params and
1507 count_scale.
1508 (ipa_set_param_count): Removed.
1509 (ipa_get_param_count): Made to work with descriptors vector.
1510 (ipa_get_param): Updated.
1511 (ipa_param_cannot_devirtualize_p): Removed.
1512 (ipa_param_types_vec_empty): Likewise.
1513 (ipa_set_param_used): New function.
1514 (ipa_get_param_used): Updated to use descriptors vector.
1515 (ipa_func_list): Removed.
1516 (ipa_init_func_list): Removed declaration.
1517 (ipa_push_func_to_list_1): Likewise.
1518 (ipa_pop_func_from_list): Likewise.
1519 (ipa_push_func_to_list): Removed.
1520 (ipa_lattice_from_jfunc): Remove declaration.
1521 (ipa_get_jf_pass_through_result): Declare.
1522 (ipa_get_jf_ancestor_result): Likewise.
1523 (ipa_value_from_jfunc): Likewise.
1524 (ipa_get_lattice): Update.
1525 (ipa_lat_is_single_const): New function.
1526 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1527 (ipa_init_func_list): Likewise.
1528 (ipa_pop_func_from_list): Likewise.
1529 (ipa_get_param_decl_index): Fix coding style.
1530 (count_formal_params): Removed.
1531 (count_formal_params_1): Renamed to count_formal_params.
1532 (ipa_populate_param_decls): Update to use descriptors vector.
1533 (ipa_initialize_node_params): Likewise.
1534 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1535 (ipa_analyze_params_uses): Likewise.
1536 (ipa_free_node_params_substructures): Likewise and free also lattices
1537 and known values.
1538 (duplicate_array): Removed.
1539 (ipa_edge_duplication_hook): Add the new edge to the list of edge
1540 clones.
1541 (ipa_node_duplication_hook): Update to use new lattices.
1542 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1543 (ipa_free_all_structures_after_iinln): Likewise.
1544 (ipa_write_node_info): Update to use new lattices.
1545 (ipa_read_node_info): Likewise.
1546 (ipa_get_jf_pass_through_result): New function.
1547 (ipa_get_jf_ancestor_result): Likewise.
1548 (ipa_value_from_jfunc): Likewise.
1549 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1550 * ipa-cp.c: Reimplemented.
1551 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1552 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1553 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1554 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1555 * doc/invoke.texi (devirt-type-list-size): Removed description.
1556 (ipa-cp-value-list-size): Added description.
1557
6774a66f
RH
15582011-07-18 Richard Henderson <rth@redhat.com>
1559
1560 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1561 before calling create_basic_block.
1562
8b316874
JJ
15632011-07-18 Jakub Jelinek <jakub@redhat.com>
1564
1565 PR middle-end/49675
1566 * tree.c (build_common_builtin_nodes): Register
1567 __builtin_return_address, __cyg_profile_func_enter
1568 and __cyg_profile_func_exit.
1569
9f68560b
RH
15702011-07-18 Richard Henderson <rth@redhat.com>
1571
1572 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1573 (add_labels_and_missing_jumps): ... here.
1574 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1575
03126412
UB
15762011-07-18 Uros Bizjak <ubizjak@gmail.com>
1577
1578 PR target/47744
1579 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1580 of DImode hard registers in PLUS address chains.
1581
fbf80ef7
RO
15822011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1583
1584 PR bootstrap/49769
1585 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1586 (alpha*-*-freebsd*): Likewise.
1587 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1588 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1589 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1590 crtprec80.o, crtfastmath.o to extra_parts for all targets.
1591 (ia64*-*-elf*): Remove extra_parts.
1592 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1593 (sparc64-*-linux*): Likewise.
1594 (sparc64-*-freebsd*): Likewise.
1595
1596 Revert:
1597 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1598 (ia64*-*-linux*): Likewise.
1599 (mips64*-*-linux*): Likewise.
1600 (mips*-*-linux*): Likewise.
1601
daf633ba
DE
16022011-07-18 David Edelsohn <dje.gcc@gmail.com>
1603
1604 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1605
4b4455e5
RG
16062011-07-18 Richard Guenther <rguenther@suse.de>
1607
1608 * gimplify.c (gimplify_expr): Use input_location, not saved_location
1609 when building new trees.
1610
e002c7cb
RG
16112011-07-18 Richard Guenther <rguenther@suse.de>
1612
1613 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1614 expansion result to bitfield precision if required.
1615
e44dbbe1
RO
16162011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1617
1618 * config.gcc (i[3456x]86-*-netware*): Remove.
1619
1620 * gthr-nks.h: Remove.
1621 * configure.ac (enable_threads): Remove nks.
1622 * configure: Regenerate.
1623
1624 * config/i386/i386.c (ix86_encode_section_info): Remove netware
1625 reference.
1626 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1627 <netware.h> reference.
1628
1629 * config/i386/netware-libgcc.c,
1630 gcc/config/i386/netware-libgcc.def,
1631 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1632 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1633 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1634 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1635
1636 * doc/extend.texi (Function Attributes,
1637 callee_pop_aggregate_return): Remove i?86-netware reference.
1638 * doc/install.texi (Configuration, --enable-threads): Remove nks.
1639
fd862017
JDA
16402011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1641
1642 PR target/49746
1643 Revert:
1644 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1645
1646 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1647 patterns.
1648
1ff24749
EB
16492011-07-17 Eric Botcazou <ebotcazou@adacore.com>
1650
1651 PR middle-end/49732
1652 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1653
a4a2c37d
MK
16542011-07-16 Matthias Klose <doko@ubuntu.com>
1655
1656 * doc/install.texi: Document --enable-static-libjava.
1657
ea6136a2
RH
16582011-07-15 Richard Henderson <rth@redhat.com>
1659
1660 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1661 Replace all three arguments by returning a VEC of edges.
1662 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
1663 pointers and counts.
1664 (fix_edges_for_rarely_executed_code): Merge ...
1665 (rest_of_handle_partition_blocks): ... into...
1666 (partition_hot_cold_basic_blocks): ... here. Return todo items if
1667 any work was performed.
1668 (pass_partition_blocks): Clear todo_flags_finish.
1669
6545e33e
PC
16702011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
1671 Jakub Jelinek <jakub@redhat.com>
1672 Jonathan Wakely <jwakely.gcc@gmail.com>
1673
1674 PR libstdc++/49745
1675 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
1676 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
1677
6feeed06
JM
16782011-07-15 Jason Merrill <jason@redhat.com>
1679
1680 PR testsuite/49741
1681 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
1682 rather than --tool_opts.
1683
44762055
BS
16842011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
1685
1686 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 1687 corresponding gtype.state.
44762055 1688
1be0310c
JDA
16892011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1690
1691 PR target/49723
1692 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
1693
12c5ffe5
EB
16942011-07-15 Eric Botcazou <ebotcazou@adacore.com>
1695
1696 PR target/48220
1697 * doc/md.texi (Standard Names): Document window_save.
1698 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
1699 expand_debug_expr and expand_debug_source_expr. If the target has
1700 a window_save instruction, adjust the ENTRY_VALUE_EXP.
1701 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
1702 SSA_NAME_VAR is a parameter.
1703 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
1704 * var-tracking.c (parm_reg_t): New type and associated vector type.
1705 (windowed_parm_regs): New variable.
1706 (adjust_insn): If the target has a window_save instruction and this
1707 is the instruction, make its effect on parameter registers explicit.
1708 (next_non_note_insn_var_location): New function.
1709 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
1710 (vt_add_function_parameter): If the target has a window_save insn,
1711 adjust the incoming RTL and record that in windowed_parm_regs.
1712 (vt_finalize): Free windowed_parm_regs.
1713
bcead286
BS
17142011-07-15 Bernd Schmidt <bernds@codesourcery.com>
1715
1716 * doc/invoke.texi (C6X Options): New section.
1717 * doc/md.texi (TI C6X family): New section.
1718 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
1719 tic6x-*-uclinux.
1720 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
1721 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
1722 Provide C6X definitions.
1723 * config/c6x/c6x.md: New file.
1724 * config/c6x/constraints.md: New file.
1725 * config/c6x/predicates.md: New file.
1726 * config/c6x/c6x-sched.md.in: New file.
1727 * config/c6x/c6x-sched.md: New file.
1728 * config/c6x/gensched.sh: New file.
1729 * config/c6x/c6x-mult.md.in: New file.
1730 * config/c6x/genmult.sh: New file.
1731 * config/c6x/c6x-mult.md: New file.
1732 * config/c6x/sync.md: New file.
1733 * config/c6x/c6x-protos.h: New file.
1734 * config/c6x/sfp-machine.h: New file.
1735 * config/c6x/c6x.c: New file.
1736 * config/c6x/c6x.h: New file.
1737 * config/c6x/crti.s: New file.
1738 * config/c6x/crtn.s: New file.
1739 * config/c6x/lib1funcs.asm: New file.
1740 * config/c6x/c6x-modes.def: New file.
1741 * config/c6x/genopt.sh: New file.
1742 * config/c6x/c6x.opt: New file.
1743 * config/c6x/c6x-tables.opt: New file.
1744 * config/c6x/c6x-opts.h: New file.
1745 * config/c6x/c6x-isas.def: New file.
1746 * config/c6x/elf.h: New file.
1747 * config/c6x/elf-common.h: New file.
1748 * config/c6x/uclinux-elf.h: New file.
1749 * config/c6x/t-c6x: New file.
1750 * config/c6x/t-c6x-elf: New file.
1751 * config/c6x/t-c6x-uclinux: New file.
1752 * config/c6x/t-c6x-softfp: New file.
1753 * config/c6x/gtd.c: New file.
1754 * config/c6x/gtf.c: New file.
1755 * config/c6x/ltd.c: New file.
1756 * config/c6x/ltf.c: New file.
1757 * config/c6x/ged.c: New file.
1758 * config/c6x/gef.c: New file.
1759 * config/c6x/led.c: New file.
1760 * config/c6x/lef.c: New file.
1761 * config/c6x/eqd.c: New file.
1762 * config/c6x/eqf.c: New file.
1763 * config/c6x/libgcc-c6xeabi.ver: New file.
1764
aef0e7a8
BS
1765 Revert
1766 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1767 PR rtl-optimization/11320
1768 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
1769 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
1770 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
1771 current_sched_info->compute_jump_reg_dependencies. Record which
1772 registers are used and which registers are set by the jump.
1773 Clear deps->reg_conditional_sets after a barrier.
1774 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
1775 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
1776 (init_deps): Initialize reg_conditional_sets.
1777 (free_deps): Clear reg_conditional_sets.
1778 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
1779 Mark registers live on entry of the fallthrough block and conditionally
1780 set as set by the jump. Mark registers live on entry of non-fallthrough
1781 blocks as used by the jump.
1782 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
1783 Mark new parameters as unused.
1784
9bed2f0d
AP
17852011-07-14 Andrew Pinski <pinskia@gmail.com>
1786
1787 PR tree-opt/49309
1788 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
1789 Use fold_build2_loc instead of build2.
1790 Use the correct type for the new tree.
1791
1f88caaa
BS
17922011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1793
1794 PR rtl-optimization/11320
1795 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
1796 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
1797
d772f97c 17982011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 1799
d772f97c
GJL
1800 PR target/49487
1801 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
1802 of REG.
1803 (*rotw<mode>): Use const_int_operand for operand2.
1804 Use match_scatch for operand3.
1805 (*rotb<mode>): Ditto
1806 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
1807
1a5d20a4
RG
18082011-07-14 Richard Guenther <rguenther@suse.de>
1809
1810 PR tree-optimization/49651
1811 * tree-ssa-structalias.c (get_constraint_for_1): Properly
1812 handle dereferences with subvariables.
1813
5fbcc0ed
RG
18142011-07-14 Richard Guenther <rguenther@suse.de>
1815
1816 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
1817 (fold_stmt_1): Do it here directly on gimple and as a first thing.
1818
fbf3fee2
RG
18192011-07-14 Richard Guenther <rguenther@suse.de>
1820
1821 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
1822 not bool_var when folding bool_var != 1 or bool_var == 0.
1823
b953c2b8
BS
18242011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1825
1826 * haifa-sched.c (schedule_insns): Remove outdated comment.
1827 (schedule_block): When computing a known value for TODO_SPEC,
1828 just set it rather than using logical operations.
1829 (try_ready): Likewise. Use a local variable rather than a
1830 pointer to TODO_SPEC. Reorder an if statement to move the
1831 easy case to the then block.
1832 * sched-deps.c (dep_spec_p): New static function.
1833 (update_dep): Use it to decide whether to call
1834 change_spec_dep_to_hard.
1835 (get_back_and_forw_lists): Use it.
1836 (sd_resolve_dep): Likewise.
1837 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
1838 (haifa_note_mem_dep): Likewise.
1839 (check_dep): Likewise.
1840 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
1841 (sched_free_deps): Free in two passes.
1842
1f098f07
RS
18432011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
1844
1845 PR middle-end/49736
1846 * expr.c (all_zeros_p): Undo bogus part of last change.
1847
73059910
MK
18482011-07-14 Matthias Klose <doko@ubuntu.com>
1849
1850 * doc/extend.texi (optimize attribute): Fix typo.
1851
bd5d002e
RG
18522011-07-14 Richard Guenther <rguenther@suse.de>
1853
1854 * gimplify.c (gimplify_expr): Only do required conversions.
1855
eb1dcdff
GJL
18562011-07-14 Georg-Johann Lay <avr@gjlay.de>
1857
1858 PR target/43746
1859 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
1860 i.e. use default_elf_select_section.
1861 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
1862 (READONLY_DATA_SECTION_ASM_OP): Remove.
1863 (TARGET_ASM_NAMED_SECTION): Move from here...
1864 * config/avr/avr.c: ...to here.
03126412 1865 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
1866 (avr_asm_named_section): Make static.
1867
d31fb329
RO
18682011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1869
1870 PR bootstrap/49739
03126412
UB
1871 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
1872 and crtfastmath.o for Linux/x86.
d31fb329 1873
26965010
BS
18742011-07-14 Bernd Schmidt <bernds@codesourcery.com>
1875
1876 * haifa-sched.c: Include "hashtab.h"
1877 (sched_no_dce): New global variable.
1878 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
1879 SHADOW_P): New macros.
1880 (last_clock_var, cycle_issued_insns): Move declarations.
1881 (must_backtrack): New static variable.
1882 (struct delay_pair): New structure.
1883 (delay_htab, delay_htab_i2): New static variables.
1884 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
1885 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
1886 functions.
1887 (dep_cost_1): If delay pairs exist, try to look up the insns and
1888 use the correct pair delay if we find them.
1889 (rank-for_schedule): Tweak priority for insns that must be scheduled
1890 soon to avoid backtracking.
1891 (queue_insn): Detect conditions which force backtracking.
1892 (ready_add): Likewise.
1893 (struct sched_block_state): Add member shadows_only_p.
1894 (struct haifa_save_data): New structure.
1895 (backtrack_queue): New static variable.
1896 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
1897 unschedule_insns_until, restore_last_backtrack_point,
1898 free_topmost_backtrack_point, free_backtrack_queue,
1899 estimate_insn_tick, estimate_shadow_tick): New functions.
1900 (prune_ready_list): New arg shadows_only_p. All callers changed.
1901 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 1902 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
1903 (verify_shadows): New function.
1904 (schedule_block): Add machinery to enable backtracking.
1905 (sched_init): Take sched_no_dce into account when setting
1906 DF_LR_RUN_DCE.
1907 (free_delay_pairs): New function.
1908 (init_h_i_d): Initialize INSN_EXACT_TICK.
1909 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
1910 * sched-deps.c (sd_unresolve_dep): New function.
1911 * sched-int. (struct haifa_sched_info): New fields save_state
1912 and restore_state.
1913 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
1914 feeds_backtrack_insn and shadow_p.
1915 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
1916 (sched_no_dce): Declare variable.
1917 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
1918 sd_unresolve_dep): Declare functions.
1919 * modulo-sched.c (sms_sched_info): Clear the two new fields.
1920 * sched-rgn.c (rgn_const_sched_info): Likewise.
1921 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
1922 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
1923 (ebb_sched_info): Add them for the two new fields.
1924 (add_deps_for_risky_insns): Call add_delay_dependencies.
1925
1db75f6c
MM
19262011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
1927
1928 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
1929 Rename -mr11.
1930 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
1931 (rs6000_call_indirect_aix): Ditto.
1932 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
1933 (call_indirect_aix<ptrsize>_internal): Ditto.
1934 (call_indirect_aix<ptrsize>_nor11): Ditto.
1935 (call_indirect_aix<ptrsize>_internal2): Ditto.
1936 (call_value_indirect_aix<ptrsize>): Ditto.
1937 (call_value_indirect_aix<ptrsize>_internal): Ditto.
1938 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
1939 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
1940 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
1941
e2995714
JM
19422011-07-13 Jason Merrill <jason@redhat.com>
1943
1944 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
1945
4dfe3ad5
UW
19462011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1947
1948 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
1949 * config/spu/spu.md ("clrsb<mode>2"): New expander.
1950
dddc6762
TS
19512011-07-13 Thomas Schwinge <thomas@schwinge.name>
1952
1953 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
1954 * configure: Regenerate.
1955
b4d80e56
UW
19562011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1957
1958 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
1959 (asm_file_start): Remove.
1960 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
1961 free_bb_for_insn around code that modifies insns before
1962 restarting df analysis.
1963
9e34e53f
RO
19642011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1965
1966 PR target/49541
03126412 1967 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
1968 (LINK_SPEC): ... here.
1969
51564684
BS
19702011-07-13 Bernd Schmidt <bernds@codesourcery.com>
1971
1972 * haifa-sched.c (struct sched_block_state): New.
1973 (schedule_block): Move some local variables into such a structure.
1974
b3fe1584
RO
19752011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1976
1977 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
1978 * config/i386/t-crtpc: Remove.
1979 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
1980 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
1981 tmake_file.
1982 (x86_64-*-darwin*): Likewise.
1983 (i[34567]86-*-linux*): Likewise.
1984 (x86_64-*-linux*): Likewise.
1985
1986 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
1987 Handle -mpc32, -mpc64, -mpc80.
1988
35d8090d
RO
19892011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1990
1991 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
1992 * config/alpha/t-crtfm: Remove.
1993 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
1994 * config/i386/t-crtfm: Remove.
1995 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
1996 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
1997 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
1998 * config/sparc/t-crtfm: Remove.
1999
2000 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2001 (alpha*-*-freebsd*): Likewise.
2002 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2003 (x86_64-*-darwin*): Likewise.
2004 (i[34567]86-*-linux*): Likewise.
2005 (x86_64-*-linux*): Likewise.
2006 (x86_64-*-mingw*): Likewise.
2007 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2008 (ia64*-*-freebsd*): Likewise.
2009 (ia64*-*-linux*): Likewise.
2010 (mips64*-*-linux*): Likewise.
2011 (mips*-*-linux*): Likewise.
2012 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2013 (sparc64-*-linux*): Likewise.
2014 (sparc64-*-freebsd*): Likewise.
2015
e141542e
RO
20162011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2017
2018 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2019 * config/darwin-crt3.c: Move to ../libgcc/config.
2020 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2021 ($(T)crt3$(objext)): Remove.
2022 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2023 ($(T)crt2$(objext)): Remove.
2024 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2025 (powerpc64-*-darwin*): Likewise.
2026
72fbc381
L
20272011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2028
03126412 2029 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
2030
2031 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2032 (addsi_1_zext): This.
2033
727a65e6
BS
20342011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2035
2036 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2037 * doc/tm.texi: Regenerate.
73451ae7 2038 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
2039 * varasm.c (mergeable_string_section, mergeable_constant_section):
2040 Use it. Allocate name with alloca.
2041
cb77b6cf
L
20422011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2043
2044 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2045
36fc3799
RS
20462011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2047
2048 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2049 overlap check.
2050
953d0c90
RS
20512011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2052
2053 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
2054 (count_type_elements): Delete.
2055 (complete_ctor_at_level_p): Declare.
2056 * expr.c (flexible_array_member_p): New function, split out from...
2057 (count_type_elements): ...here. Make static. Replace allow_flexarr
2058 parameter with for_ctor_p. When for_ctor_p is true, return the
2059 number of elements that should appear in the top-level constructor,
2060 otherwise return an estimate of the number of scalars.
2061 (categorize_ctor_elements): Replace p_must_clear with p_complete.
2062 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
2063 (complete_ctor_at_level_p): New function, borrowing union logic
2064 from old categorize_ctor_elements_1.
2065 (mostly_zeros_p): Return true if the constructor is not complete.
2066 (all_zeros_p): Update call to categorize_ctor_elements.
2067 * gimplify.c (gimplify_init_constructor): Update call to
2068 categorize_ctor_elements. Don't call count_type_elements.
2069 Unconditionally prevent clearing for variable-sized types,
2070 otherwise rely on categorize_ctor_elements to detect
2071 incomplete initializers.
2072
9111c715
RG
20732011-07-13 Richard Guenther <rguenther@suse.de>
2074
2075 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2076 the final type is integral.
2077
a19af9c4
BS
20782011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2079
2080 * sched-int.h (struct _dep): Add member cost.
2081 (DEP_COST, UNKNOWN_DEP_COST): New macros.
2082 * sched-deps.c (init_dep_1): Initialize DEP_COST.
2083 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2084 (sched_change_pattern): Reset it for dependent insns.
2085
2d1efe2d
RO
20862011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2087
2088 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2089 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2090 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2091 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2092 (CRT0_S, MCRT0_S): Remove.
2093 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2094 Remove.
2095 (s-crt0): Remove.
2096 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2097
e84a58ff
EB
20982011-07-12 Eric Botcazou <ebotcazou@adacore.com>
2099
2100 * cse.c (insert_with_costs): Put semi-colon after empty loop body
2101 on the next line.
2102 * emit-rtl.c (push_to_sequence): Likewise.
2103 * haifa-sched.c (max_issue): Likewise.
2104 * matrix-reorg.c (add_allocation_site): Likewise.
2105 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2106 * reload.c (alternative_allows_const_pool_ref): Likewise.
2107 * sched-rgn.c (rgn_add_block): Likewise.
2108 (rgn_fix_recovery_cfg): Likewise.
2109 * tree.c (attribute_list_contained): Likewise.
2110
3a4ffde6
UB
21112011-07-12 Uros Bizjak <ubizjak@gmail.com>
2112
2113 * config/i386/i386.c: Tidy processor feature bitmasks.
2114 (m_P4_NOCONA): New.
2115
10b75750
AP
21162011-07-12 Andrew Pinski <pinskia@gmail.com>
2117
2118 PR rtl-opt/49474
2119 * cprop.c (find_implicit_sets): Correct the condition.
2120
4f42d714
RH
21212011-07-12 Richard Henderson <rth@redhat.com>
2122
2123 PR target/49713
2124 * dwarf2out.h (dwarf_frame_regnum): Remove.
2125 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
2126 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
2127 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2128 (execute_dwarf2_frame): Initialize them.
2129 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2130 users of the macros with the variables.
2131 (expand_builtin_dwarf_sp_column): Revert last change.
2132 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
2133 result of DWARF_FRAME_REGNUM into a local variable.
2134
3a5e4ad6
RH
21352011-07-12 Richard Henderson <rth@redhat.com>
2136
2137 PR target/49714
2138 * config/i386/i386.c (x86_output_mi_thunk): Use
2139 machopic_indirect_call_target instead of machopic_indirection_name
2140 directly.
2141
9e9bd455
LG
21422011-07-12 Laurent GUERBY <laurent@guerby.net>
2143 Eric Botcazou <ebotcazou@adacore.com>
2144
2145 * prefix.h: Wrap up in extern "C" block.
2146
4d652a18
HJ
21472011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
2148
2149 AMD bdver2 Enablement
2150 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2151 (case ${target}): Add bdver2.
2152 * config/i386/driver-i386.c (host_detect_local_cpu): Let
2153 -march=native recognize bdver2 processors.
2154 * config/i386/i386-c.c (ix86_target_macros_internal): Add
2155 bdver2 def_and_undef
2156 * config/i386/i386.c (struct processor_costs bdver2_cost): New
2157 bdver2 cost table.
2158 (m_BDVER2): New definition.
2159 (m_AMD_MULTIPLE): Includes m_BDVER2.
2160 (initial_ix86_tune_features): Add bdver2 tuning.
2161 (processor_target_table): Add bdver2 entry.
2162 (static const char *const cpu_names): Add bdver2 entry.
2163 (ix86_option_override_internal): Add bdver2 instruction sets.
2164 (ix86_issue_rate): Add bdver2.
2165 (ix86_adjust_cost): Add bdver2.
2166 (has_dispatch): Add bdver2.
2167 * config/i386/i386.h (TARGET_BDVER2): New definition.
2168 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2169 (enum processor_type): Add PROCESSOR_BDVER2.
2170 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2171 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2172 description.
2173
5756d08c
RH
21742011-07-12 Richard Henderson <rth@redhat.com>
2175
2176 PR target/49714
2177 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2178 destination address in memory on some paths.
2179
123148b5
BS
21802011-07-12 Bernd Schmidt <bernds@codesourcery.com>
2181
2182 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2183 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2184 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2185 * function.c (locate_and_pad_parm): Take it into account.
2186 * target.def (function_arg_round_boundary): New hook.
2187 * targhooks.c (default_function_arg_round_boundary): New function.
2188 * targhooks.h (default_function_arg_round_boundary): Declare.
2189 * doc/tm.texi: Regenerate.
2190
b7a83ad8
RG
21912011-07-12 Richard Guenther <rguenther@suse.de>
2192
2193 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2194 Do not perform no-op changes.
2195
12c4ecb1
RS
21962011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
2197
2198 * config/arm/predicates.md (neon_struct_operand): Make a normal
2199 predicate.
2200 (neon_struct_or_register_operand): New predicate.
2201 * config/arm/neon.md (movmisalign<mode>): Replace predicates
2202 with neon_struct_or_register_operand.
2203 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2204 neon_struct_operand instead of memory_operand.
2205
ab079773
MJ
22062011-07-12 Martin Jambor <mjambor@suse.cz>
2207
2208 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2209 * cgraph.c (cgraph_get_node_or_alias): Removed.
2210 (change_decl_assembler_name): Changed all calls to
2211 cgraph_get_node_or_alias to a call to cgraph_get_node.
2212 (cgraph_make_decl_local): Likewise.
2213 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2214 * varasm.c (default_binds_local_p_1): Likewise.
2215 (decl_binds_to_current_def_p): Likewise.
2216
d5fed62d
JJ
22172011-07-12 Jakub Jelinek <jakub@redhat.com>
2218
2219 PR tree-optimization/49712
2220 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2221
c0b6224a
BS
22222011-07-11 Bernd Schmidt <bernds@codesourcery.com>
2223
2224 * genautomata.c (add_arc): Return void. All callers changed.
2225 (make_automaton): Remove dead code.
2226
7263c6d7
RH
22272011-07-11 Richard Henderson <rth@redhat.com>
2228
2229 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2230 (DW_FRAME_POINTER_REGNUM): New.
2231 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2232 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2233 (dwf_regno): New.
2234 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2235 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2236 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2237 Use it.
2238 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2239 * dwarf2out.h (dwarf_frame_regnum): New.
2240 (struct cfa_loc): Document the domain of the reg member.
2241
f9610d20
UB
22422011-07-11 Uros Bizjak <ubizjak@gmail.com>
2243
2244 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2245 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
2246
96ae7458
JJ
22472011-07-11 Jakub Jelinek <jakub@redhat.com>
2248
2249 PR debug/49676
2250 * dwarf2out.c (int_shift_loc_descriptor): New function.
2251 (int_loc_descriptor): If shorter, emit i as
2252 (i >> shift), shift, DW_OP_shl for suitable shift value.
2253 Similarly, try to optimize large negative values using
2254 DW_OP_neg of a positive value if shorter.
2255 (size_of_int_shift_loc_descriptor): New function.
2256 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2257 changes.
2258 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2259 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2260 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2261 is shorter.
2262 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2263 addend as added DW_OP_plus if it is shorter.
2264
feffaec4
RO
22652011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2266
2267 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2268 (DTORS_SECTION_ASM_OP): Define.
2269
2d8d5935
RO
22702011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2271
2272 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2273 * config/t-dfprules: Move to ../libgcc/config.
2274 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2275 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2276 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2277 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2278 Likewise.
2279 (i[34567]86-*-cygwin*): Likewise.
2280 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2281 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2282 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2283 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2284 D64PBIT_FUNCS, D128PBIT_FUNCS.
2285
dcc95c20
RG
22862011-07-11 Richard Guenther <rguenther@suse.de>
2287
2288 * tree-vrp.c (simplify_conversion_using_ranges): Manually
2289 translate the source value-range through the conversion chain.
2290
28164eed
RS
22912011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
2292
2293 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2294
f3054223
AL
22952011-07-11 Arthur Loiret <aloiret@debian.org>
2296
2297 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2298 a bi-arch compiler defaulting to 31-bit. In this case:
2299 (tmake_file): Add s390/t-linux64.
2300 * doc/install.texi: Add s390-linux to the list of targets supporting
2301 --enable-targets=all.
2302
bd5ab709
AL
23032011-07-11 Arthur Loiret <aloiret@debian.org>
2304 Matthias Klose <doko@debian.org>
2305
2306 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2307 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2308 (tm_file): Add mips/linux64.h.
2309 (tmake_file): Add mips/t-linux64.
2310 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2311 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2312 instead of hardcoded mabi=n32.
2313 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2314 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2315 convention.
2316
d3b7e946
AK
23172011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2318
2319 * passes.c (init_optimization_passes): Add invariant motion pass
2320 after induction variable optimization.
2321
7e4ec472 23222011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2323
7e4ec472
GJL
2324 PR target/39633
2325 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2326 offsets 1..5 set cc0 in a usable way.
2327
0e65e631
RG
23282011-07-11 Romain Geissler <romain.geissler@gmail.com>
2329
2330 * tree.h (call_expr_arg): Remove.
2331 (call_expr_argp): Likewise.
2332
18970372
EB
23332011-07-11 Eric Botcazou <ebotcazou@adacore.com>
2334
2335 * config/sparc/sparc.md (save_register_window_1): Rename to...
2336 (window_save): ...this.
2337 * config/sparc/sparc.c (emit_save_register_window): Rename to...
2338 (emit_window_save): ...this.
2339 (sparc_expand_prologue): Adjust to above renaming.
2340
9e419e38
L
23412011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2342
2343 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2344 of movabs for x32.
2345
3db72de3
RH
23462011-07-10 Richard Henderson <rth@redhat.com>
2347
2348 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2349 run final, instead of emitting text directly.
2350
a1f91bca
L
23512011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2352
2353 * config/i386/i386.c (ix86_option_override_internal): Turn on
2354 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
2355 small PIC models for TARGET_X32.
2356
a50023f9
HPN
23572011-07-10 Hans-Peter Nilsson <hp@axis.com>
2358
9a0b29f0
HPN
2359 PR target/49684
2360 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
2361 $(LIBGCC2_CFLAGS).
2362
a50023f9
HPN
2363 PR bootstrap/49680
2364 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
2365 stray notes and debug insns by using prev_nonnote_nondebug_insn
2366 instead of PREV_INSN.
2367
948d330e
RH
23682011-07-09 Richard Henderson <rth@redhat.com>
2369
2370 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
2371 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
2372 * dwarf2out.c: ... here.
2373 (output_all_cfis): Remove.
2374 (dwarf2out_switch_text_section): Use output_cfis directly.
2375 (size_of_locs): Export.
2376 (output_loc_sequence, output_loc_sequence_raw): Export.
2377 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
2378 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
2379 output_cfa_loc_raw): Move to ...
2380 * dwarfcfi.c: ... here.
2381 * dwarf2out.h: Update decls.
2382
db42e39d
RH
23832011-07-09 Richard Henderson <rth@redhat.com>
2384
2385 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
2386 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
2387 * dwarf2cfi.c: ... here.
2388 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
2389 (DWARF_ROUND, DWARF_CIE_ID): Remove.
2390 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
2391 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
2392 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2393
a8e5c0e7
RH
23942011-07-09 Richard Henderson <rth@redhat.com>
2395
2396 * dwarf2cfi.c (cie_return_save): New.
2397 (queue_reg_save): Use compare_reg_or_pc.
2398 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
2399 (dwarf2out_frame_debug_expr): Likewise.
2400 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
2401 (initial_return_save): Likewise.
2402 (execute_dwarf2_frame): Save and restore initial return save from
2403 the cie to the fde.
2404 * config/mips/mips.c (mips_frame_set): Remove special case for
2405 DWARF_FRAME_RETURN_COLUMN.
2406
4a8ee122
RH
24072011-07-09 Richard Henderson <rth@redhat.com>
2408
2409 * dwarf2cfi.c (lookup_cfa): Remove.
2410 (execute_dwarf2_frame): Assert queues are empty on entry.
2411 Setup initial cfa directly, not via lookup_cfa.
2412 Don't clear args_size state here.
2413
3edb53aa
RH
24142011-07-09 Richard Henderson <rth@redhat.com>
2415
2416 * dwarf2cfi.c (add_cfi_vec): New.
2417 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
2418 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
2419 (execute_dwarf2_frame): Set add_cfi_vec.
2420
ded49a7f
RH
24212011-07-09 Richard Henderson <rth@redhat.com>
2422
2423 * defaults.h (ASM_COMMENT_START): Move here...
2424 * dwarf2asm.c: ... from here.
2425 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2426 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2427 * varasm.c: Likewise.
2428
45fba6d1
RH
24292011-07-09 Richard Henderson <rth@redhat.com>
2430
2431 PR debug/49686
2432 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2433 (create_cfi_notes): ... do it here instead.
2434
5b696ba2
JJ
24352011-07-09 Jakub Jelinek <jakub@redhat.com>
2436
2437 PR debug/49676
2438 * dwarf2out.c (size_of_int_loc_descriptor): New function.
2439 (address_of_int_loc_descriptor): Use it.
f9610d20 2440 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 2441
8662b2ba
RH
24422011-07-09 Richard Henderson <rth@redhat.com>
2443
2444 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2445 (prologue, epilogue): New.
2446 (return, *rts): New.
2447 (blockage, setd, seti): New.
2448 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2449 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2450 (pdp11_saved_regno): New.
2451 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2452 generate rtl instead of text.
2453 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2454 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
2455 * config/pdp11/pdp11-protos.h: Update.
2456
28b21ebb
RH
24572011-07-09 Richard Henderson <rth@redhat.com>
2458
2459 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2460 try to insert an rtl prologue here.
2461 (rs6000_output_function_epilogue): Similarly.
2462 * config/rs6000/rs6000.md (prologue): Emit a barrier to
2463 satisfy !TARGET_SCHED_PROLOG.
2464 (epilogue, sibcall_epilogue): Likewise.
2465
0a222ba7
EB
24662011-07-09 Eric Botcazou <ebotcazou@adacore.com>
2467
2468 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2469 (FP_REG_P): Delete.
2470 (IN_OR_GLOBAL_P): Likewise.
2471
2fda8e14
JM
24722011-07-08 Jason Merrill <jason@redhat.com>
2473
4063e61b
JM
2474 PR c++/45437
2475 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2476 compound assignment.
2477
2fda8e14
JM
2478 * cgraph.c (cgraph_add_to_same_comdat_group): New.
2479 * cgraph.h: Declare it.
2480 * ipa.c (function_and_variable_visibility): Make sure thunks
2481 have the right visibility.
2482
830f11fe
RH
24832011-07-08 Richard Henderson <rth@redhat.com>
2484
2485 PR bootstrap/49680
2486 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2487 any tablejump vector.
2488
965b2557
RH
2489 PR bootstrap/49680
2490 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2491 end of the prologue.
2492
70db9095
JJ
24932011-07-08 Jakub Jelinek <jakub@redhat.com>
2494
2495 PR target/49621
2496 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 2497 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
2498 * config/rs6000/vector.md (vector_select_<mode>,
2499 vector_select_<mode>_uns): Change second operand of NE to
2500 CONST0_RTX (<MODE>mode) instead of const0_rtx.
2501 * config/rs6000/altivec.md (*altivec_vsel<mode>,
2502 *altivec_vsel<mode>_uns): Expect second operand of NE to be
2503 zero_constant of the corresponding vector mode.
2504 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2505 Likewise.
2506
e92c5020
SP
25072011-07-08 Sebastian Pop <sebastian.pop@amd.com>
2508
2509 * graphite-dependences.c (build_alias_set_powerset): Remove
2510 continue from loop, add one more assert.
2511
3e4f8484 25122011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2513
3e4f8484
GJL
2514 PR target/46779
2515 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2516 In particular, allow 8-bit values in r28 and r29.
2517 (avr_hard_regno_scratch_ok): Disallow any register that might be
2518 part of the frame pointer.
2519 (avr_hard_regno_rename_ok): Same.
2520 (avr_legitimate_address_p): Don't allow SUBREGs.
2521
0094f21b
JB
25222011-07-08 Julian Brown <julian@codesourcery.com>
2523
2524 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2525 big-endian mode.
2526 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2527 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2528 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2529 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2530 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2531 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2532 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2533 registers in big-endian mode.
2534
9ae60101
BS
25352011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2536
2537 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2538 in terms of another.
2539 (write_attr_value): Write a cast if necessary.
2540
c0a6a1ef
BS
2541 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2542 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2543 (REG_WORDS_BIG_ENDIAN): Document.
2544 * doc/tm.texi: Regenerate.
2545 * reload.c (operands_match_p): Take it into account.
2546 (reload_adjust_reg_for_mode): Likewise.
2547 * rtlanal.c (subreg_get_info): Likewise.
2548
b862187a
RG
25492011-07-08 Richard Guenther <rguenther@suse.de>
2550
2551 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2552 folding.
2553
e8e8c74b
KT
25542011-07-08 Kai Tietz <ktietz@redhat.com>
2555
2556 * fold-const.c (fold_truth_andor): Factored out truth_andor
2557 label from fold_binary as function.
2558 (fold_binary_loc): Replace truth_andor lable
2559 by function fold_truth_andor.
2560
6c3cb698
KY
25612011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
2562
2563 PR middle-end/49519
2564 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2565 check if address is stored in register. If so - give up.
2566 (check_sibcall_argument_overlap_1): Do not perform check of
2567 overlapping when it is call to address.
2568
7d8d6d73 25692011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 2570
7d8d6d73
GJL
2571 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2572 of magic '31'.
2573
69660a70
BS
25742011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2575
2576 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2577 GET_MODE_BITSIZE where appropriate.
2578 (widen_leading, expand_parity, expand_ctz, expand_ffs,
2579 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2580 expand_float, expand_fix): Likewise.
2581 * expr.c (convert_move, convert_modes, expand_expr_real_2,
2582 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2583 * stor-layout.c (get_mode_bounds): Likewise.
2584 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2585 Likewise.
2586 * convert.c (convert_to_integer): Likewise.
2587 * expmed.c (expand_shift_1): Likewise.
2588
86cdf393
BS
2589 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2590 a bitsize.
2591
0d44736e
BS
2592 * optabs.c (expand_binop): Tighten conditions for doubleword
2593 expansions.
f9610d20 2594 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
2595 * stor-layout.c (get_best_mode): Skip modes that have lower
2596 precision than bitsize.
2597 * recog.c (simplify_while_replacing): Assert that bitsize and
2598 precision are the same.
2599
2c50b2c3
RO
26002011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2601
2602 * Makefile.in (LIBGCOV): Remove.
2603 (libgcc.mvars): Remove LIBGCOV.
2604 * libgov.c: Move to ../libgcc.
2605
a039d7c2
RO
26062011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2607
2608 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2609
e923ef41
MJ
26102011-07-08 Martin Jambor <mjambor@suse.cz>
2611
2612 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2613 is too big for total scalarization.
2614
b709e189
RH
26152011-07-07 Richard Henderson <rth@redhat.com>
2616
2617 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2618 (DBX_DEBUGGING_INFO): Undef.
2619
2867fa7c
RH
26202011-07-07 Richard Henderson <rth@redhat.com>
2621
2622 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
2623 Handle some opcodes specially for debugging.
2624 * print-rtl.c: Include dwarf2out.h
2625 (print_rtx): Handle NOTE_INSN_CFI.
2626 * Makefile.in (print-rtl.o): Update.
2627
7644b3c7
RH
26282011-07-07 Richard Henderson <rth@redhat.com>
2629
2630 * tree-pass.h (pass_dwarf2_frame): Declare.
2631 * passes.c (init_optimization_passes): Add it.
2632 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2633 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2634 make static, do not call add_cfis_to_fde.
2635 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2636 dwarf2out_frame_init): Merge into...
2637 (execute_dwarf2_frame): ... here. New function.
2638 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
2639 saved_do_cfi_asm to a tri-state variable.
2640 (gate_dwarf2_frame, pass_dwarf2_frame): New.
2641 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2642 if it has yet to be done. Don't call dwarf2cfi_function_init.
2643 * dwarf2out.h, debug.h: Update decls.
2644 * final.c (final_start_function): Don't call
2645 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2646 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2647 * toplev.c (lang_dependent_init): Likewise.
2648
a518b996
RH
26492011-07-07 Richard Henderson <rth@redhat.com>
2650
2651 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2652 FDE_TABLE_INCREMENT): Replace with...
2653 (fde_vec): ... this, a new vector.
2654 (current_fde): Remove. Replace all users with cfun->fde.
2655 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2656 (size_of_aranges, dwarf2out_finish): Likewise.
2657 (dwarf2out_alloc_current_fde): Break out from ...
2658 (dwarf2out_begin_prologue): ... here.
2659 (dwarf2out_frame_init): Remove.
2660 * dwarf2cfi.c: Update all users of current_fde.
2661 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
2662 * dwarf2out.h: Update decls.
2663 (dw_fde_node): Add fde_index member.
2664 * function.h (struct function): Add fde member.
2665
89e25f95
BS
26662011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2667 Richard Henderson <rth@redhat.com>
2668
2669 * dwarf2cfi.c (add_cfi): Remove.
2670 (dwarf2out_cfi_label): Remove force argument. Only generate the
2671 label name.
2672 (add_fde_cfi): Simplify the different code paths.
2673 (add_cie_cfi): New.
2674 (old_cfa, old_cfa_remember): New.
2675 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
2676 (last_reg_save_label): Remove.
2677 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
2678 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2679 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2680 dwarf2out_frame_debug_cfa_expression,
2681 dwarf2out_frame_debug_cfa_restore,
2682 dwarf2out_frame_debug_cfa_window_save,
2683 dwarf2out_frame_debug_expr): Remove label parameter.
2684 (cfi_label_required_p, add_cfis_to_fde): New.
2685 (dwarf2out_frame_debug_after_prologue): New.
2686 (dwarf2cfi_frame_init): Initialize old_cfa.
2687 (dwarf2out_frame_debug_restore_state): Likewise.
2688 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
2689 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
2690 * final.c (final_start_function): Call
2691 dwarf2out_frame_debug_after_prologue.
2692
bc5612ed
BS
26932011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2694 Richard Henderson <rth@redhat.com>
2695
2696 * dwarf2cfi.c (cfi_insn): New.
2697 (dwarf2out_cfi_label): Don't emit cfi label here.
2698 (add_fde_cfi): Create a NOTE_INSN_CFI.
2699 (dwarf2out_frame_debug): Setup cfi_insn.
2700 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
2701 (dwarf2out_cfi_begin_epilogue): Make static.
2702 (dwarf2out_frame_debug_restore_state): Make static.
2703 * dwarf2out.c (output_cfi_directive): Make static.
2704 (dwarf2out_emit_cfi): New.
2705 * dwarf2out.h: Update.
2706 * final.c (final): Remove CFI notes.
2707 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
2708 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
2709 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
2710 * insn-notes.def (NOTE_INSN_CFI): New.
2711 (NOTE_INSN_CFI_LABEL): New.
2712 * rtl.h (union rtunion_def): Add rt_cfi member.
2713 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
2714
647a1567
RH
27152011-07-07 Richard Henderson <rth@redhat.com>
2716
2717 * dwarf2cfi.c: New file.
2718 * Makefile.in (OBJS): Add it.
2719 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
2720 * gengtype.c (open_base_files): Include dwarf2out.h.
2721 * coretypes.h (enum var_init_status): Move from ...
2722 * rtl.h: ... here.
2723 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
2724 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
2725 expand_builtin_dwarf_sp_column, init_return_column_size,
2726 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
2727 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
2728 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
2729 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
2730 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
2731 compute_barrier_args_size, dwarf2out_args_size,
2732 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
2733 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
2734 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
2735 queue_reg_save, dwarf2out_flush_queued_reg_saves,
2736 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
2737 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
2738 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
2739 dwarf2out_frame_debug_cfa_expression,
2740 dwarf2out_frame_debug_cfa_restore,
2741 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
2742 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
2743 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
2744 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
2745 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
2746 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
2747 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
2748 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
2749 dw_loc_descr_node): Move to dwarf2out.h.
2750 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
2751 mem_loc_descriptor): Export.
2752 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
2753 (dwarf2out_frame_init): Extract CIE generation code to
2754 dwarf2cfi_frame_init.
2755
b286d9ed
EB
27562011-07-07 Eric Botcazou <ebotcazou@adacore.com>
2757
2758 PR target/49660
2759 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
2760 MASK_V8PLUS, remove commented out flag and reorder.
2761
c4603e7c
JJ
27622011-07-07 Jakub Jelinek <jakub@redhat.com>
2763
2764 PR c/49644
2765 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
2766 one non-complex and one complex argument, call c_save_expr on both
2767 operands.
2768
81361831
MJ
27692011-07-07 Martin Jambor <mjambor@suse.cz>
2770
2771 PR middle-end/49495
2772 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
2773 (verify_cgraph_node): Some functinality moved to
2774 verify_edge_corresponds_to_fndecl, call it.
2775
1e4b2746
JM
27762011-07-07 Joseph Myers <joseph@codesourcery.com>
2777
2778 * config.gcc (*local*): Remove.
2779 * doc/install-old.texi: Don't mention local configurations.
2780
d7ff1e11
JJ
27812011-07-07 Jakub Jelinek <jakub@redhat.com>
2782
2783 PR debug/49522
2784 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
2785 referencing debug insns that have been reset.
2786 (dead_debug_insert_before): Don't assert reg is non-NULL,
2787 instead return immediately if it is NULL.
2788
2492731a
JM
27892011-07-07 Joseph Myers <joseph@codesourcery.com>
2790
f9610d20 2791 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 2792
9d9c740d
BS
27932011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2794
2795 * hw-doloop.c: New file.
2796 * hw-doloop.h: New file.
2797 * Makefile.in (OBJS): Add hw-doloop.o.
2798 (hw-doloop.o): New rule.
2799 ($(obj_out_file)): Add hw-doloop.h dependency.
2800 * config/bfin/bfin.c: Include "hw-doloop.h".
2801 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
2802 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
2803 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
2804 type changed to hwloop_info. Return bool, true if the loop was
2805 successfully optimized. Remove code that was moved to
2806 hw-doloop.c, and adjust other parts.
2807 (hwloop_fail): New static function, containing parts that used
2808 to be in bfin_optimize_loop.
2809 (bfin_discover_loop, bfin_discover_loops, free_loops,
2810 bfin_reorder_loops): Remove.
2811 (hwloop_pattern_reg): New static function.
2812 (bfin_doloop_hooks): New variable.
2813 (bfin_reorg_loops): Remove most code, call reorg_loops.
2814 * config/bfin/bfin.md (doloop_end splitter): Also enable if
2815 loop counter is a memory_operand.
2816
f0ea7581
L
28172011-07-07 H.J. Lu <hongjiu.lu@intel.com>
2818
f9610d20 2819 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
2820
2821 * configure.ac: Mention x86-64 for --with-multilib-list.
2822 * configure: Regenerated.
2823
2824 * config/i386/gnu-user64.h (SPEC_64): Support x32.
2825 (SPEC_32): Likewise.
2826 (ASM_SPEC): Likewise.
2827 (LINK_SPEC): Likewise.
2828 (TARGET_THREAD_SSP_OFFSET): Likewise.
2829 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
2830 (SPEC_X32): New.
2831
2832 * config/i386/i386.h (TARGET_X32): New.
2833 (TARGET_LP64): New.
2834 (LONG_TYPE_SIZE): Likewise.
2835 (POINTER_SIZE): Likewise.
2836 (POINTERS_EXTEND_UNSIGNED): Likewise.
2837 (OPT_ARCH64): Support x32.
2838 (OPT_ARCH32): Likewise.
2839
2840 * config/i386/i386.opt (mx32): New.
2841
2842 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
2843 (GLIBC_DYNAMIC_LINKERX32): Likewise.
2844 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
2845 (GLIBC_DYNAMIC_LINKERX32): Likewise.
2846
2847 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
2848 (BIONIC_DYNAMIC_LINKERX32): Likewise.
2849 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
2850
2851 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
2852
f9610d20 2853 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
2854
2855 * doc/invoke.texi: Document -mx32.
2856
38460025
RS
28572011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
2858
2859 * doc/invoke.texi (mwords-little-endian): Deprecate.
2860 * config/arm/arm.opt (mwords-little-endian): Likewise.
2861 * config/arm/arm.c (arm_option_override): Warn about the deprecation
2862 of -mwords-little-endian.
2863
3f125532
RS
28642011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
2865
2866 * reload1.c (choose_reload_regs): Use mode sizes to check whether
2867 an old reload register completely defines the required value.
2868
bbc210ab
RG
28692011-07-07 Richard Guenther <rguenther@suse.de>
2870
2871 * fold-const.c (fold_unary_loc): Do not strip sign-changes
2872 for NEGATE_EXPR.
2873
29c5134a
RG
28742011-07-07 Richard Guenther <rguenther@suse.de>
2875
2876 * tree-vrp.c (simplify_conversion_using_ranges): New function.
2877 (simplify_stmt_using_ranges): Call it.
2878
0816a42a
KT
28792011-07-07 Kai Tietz <ktietz@redhat.com>
2880
2881 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
2882 (lookup_logical_inverted_value): Likewise.
2883 (simplify_bitwise_binary_1): Likewise.
2884 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
2885
3ce9f090
JM
28862011-07-07 Joseph Myers <joseph@codesourcery.com>
2887
2888 * gcc.c (%[Spec]): Don't document.
2889 (struct spec_list): Update comment.
2890 (do_spec_1): Don't handle %[Spec].
2891 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
2892
41dfca87
JM
28932011-07-07 Joseph Myers <joseph@codesourcery.com>
2894
2895 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
2896 default based on TARGET_ASM_NAMED_SECTION.
2897 * common/common-target.def (have_named_sections): Default to true.
2898 * common/config/default-common.c: Don't include tm.h.
2899 * common/config/picochip/picochip-common.c
2900 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
2901 * common/config/m32c/m32c-common.c: Remove.
2902 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
2903 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2904 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2905 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 2906 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
2907 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2908 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 2909
19c44640
JJ
29102011-07-07 Jakub Jelinek <jakub@redhat.com>
2911
2912 PR middle-end/49640
f9610d20
UB
2913 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
2914 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 2915
891a2e42
RO
29162011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2917
2918 PR libmudflap/49550
2919 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
2920
fbdd5d87
RO
29212011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2922
2923 PR target/39150
2924 * configure.ac (gcc_cv_as_hidden): Also accept
2925 x86_64-*-solaris2.1[0-9]*.
2926 (gcc_cv_as_cfi_directive): Likewise.
2927 (gcc_cv_as_comdat_group_group): Likewise.
2928 (set_have_as_tls): Likewise.
2929 * configure: Regenerate.
2930 * config.gcc (i[34567]86-*-solaris2*): Also handle
2931 x86_64-*-solaris2.1[0-9]*.
2932 * config.host (i[34567]86-*-solaris2*): Likewise.
2933 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
2934 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
2935 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
2936 (TARGET_LD_EMULATION): Use it.
2937 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
2938 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
2939 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
2940 (ASM_CPU64_DEFAULT_SPEC): Define.
2941 (ASM_CPU_SPEC): Use %(asm_cpu_default).
2942 (ASM_SPEC): Redefine.
2943 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
2944 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 2945 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
2946 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
2947 configuration.
2948 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
2949
fcf7471a
RO
29502011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2951
2952 * config/sol2.h (ASM_SPEC): Split into ...
2953 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
2954 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
2955 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
2956 (ASM_SPEC): Use ASM_SPEC_BASE.
2957 * config/sparc/sol2.h (ASM_SPEC): Redefine.
2958
1e6a67d1 29592011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 2960
1e6a67d1
GJL
2961 * config/avr/avr.md (*reload_insi): Change predicate #1 to
2962 const_int_operand. Ditto for peep2 producing this insn.
2963 Add argument to output_reload_insisf call.
2964 (*movsi,*movsf): Add argument to output_movsisf call.
2965 (*reload_insf): New insn and new peep2 to produce it.
2966 * config/avr/avr-protos.h (output_movsisf): Change prototype.
2967 (output_reload_insisf): Change prototype.
2968 * config/avr/avr.c (avr_asm_len): New function.
2969 (output_reload_insisf): Rewrite.
2970 (output_movsisf): Change prototype. output_reload_insisf for
2971 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
2972 (adjust_insn_length): Add argument to output_movsisf and
2973 output_reload_insisf call.
2974
6a4bdc79
BS
29752011-07-07 Bernd Schmidt <bernds@codesourcery.com>
2976
2977 * emit-rtl.c (paradoxical_subreg_p): New function.
2978 * rtl.h (paradoxical_subreg_p): Declare.
2979 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
2980 apply_distributive_law, simplify_comparison, simplify_set): Use it.
2981 * cse.c (record_jump_cond, cse_insn): Likewise.
2982 * expr.c (force_operand): Likewise.
2983 * rtlanal.c (num_sign_bit_copies1): Likewise.
2984 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
2985 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
2986 (push_reload): Use precision to check for paradoxical subregs.
2987 * expmed.c (extract_bit_field_1): Likewise.
2988
46c9550f
BS
2989 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
2990 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
2991 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
2992 simplify_set, simplify_logical, expand_compound_operation,
2993 make_extraction, force_to_mode, if_then_else_cond, extended_count,
2994 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
2995 record_value_for_reg): Likewise.
2996 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
2997 * simplify-rtx. c (simplify_unary_operation_1,
2998 simplify_binary_operation_1, simplify_const_relational_operation):
2999 Likewise.
3000
5511bc5a
BS
3001 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3002 instead of GET_MODE_BITSIZE where appropriate.
3003 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3004 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3005 init_num_sign_bit_copies_in_rep): Likewise.
3006 * cse.c (fold_rtx, cse_insn): Likewise.
3007 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3008 * simplify-rtx.c (simplify_unary_operation_1,
3009 simplify_const_unary_operation, simplify_binary_operation_1,
3010 simplify_const_binary_operation, simplify_ternary_operation,
3011 simplify_const_relational_operation, simplify_subreg): Likewise.
3012 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3013 simplify_if_then_else, simplify_set, expand_compound_operation,
3014 expand_field_assignment, make_extraction, if_then_else_cond,
3015 make_compound_operation, force_to_mode, make_field_assignment,
3016 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3017 extended_count, try_widen_shift_mode, simplify_shift_const_1,
3018 simplify_comparison, record_promoted_value, simplify_compare_const,
3019 record_dead_and_set_regs_1): Likewise.
3020
d58c1a38
BS
3021 Revert:
3022 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3023 shift_truncation_mask hook instead of performing modulo by width.
3024 Compare against mode precision, not bitsize.
d58c1a38 3025 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3026 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 3027
76594d53
MM
30282011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3029
3030 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3031 declaration.
3032 (rs6000_save_toc_in_prologue_p): Ditto.
3033
3034 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3035 up the static chain (r11) during indirect function calls.
3036 (-msave-toc-indirect): New undocumented debug switch.
3037
3038 * config/rs6000/rs6000.c (struct machine_function): Add
3039 save_toc_in_prologue field to note whether the prologue needs to
3040 save the TOC value in the reserved stack location.
3041 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
3042 to save the TOC in the prologue, do so.
3043 (rs6000_trampoline_init): Don't allow creating AIX style
3044 trampolines if -mno-r11 is in effect.
3045 (rs6000_call_indirect_aix): New function to create AIX style
3046 indirect calls, adding support for -mno-r11 to suppress loading
3047 the static chain, and saving the TOC in the prologue instead of
3048 the call body.
3049 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3050 TOC in the prologue.
3051
3052 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3053 register numbers.
3054 (TOC_REGNUM): Ditto.
3055 (STATIC_CHAIN_REGNUM): Ditto.
3056 (ARG_POINTER_REGNUM): Ditto.
3057 (SFP_REGNO): Delete, unused.
3058 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3059 function descriptor offsets.
3060 (TOC_SAVE_OFFSET_64BIT): Ditto.
3061 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3062 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3063 (AIX_FUNC_DESC_SC_32BIT): Ditto.
3064 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
3065 (ptrload): New mode attribute for the appropriate load of a pointer.
3066 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
3067 (call_indirect_aix64): Ditto.
3068 (call_value_indirect_aix32): Ditto.
3069 (call_value_indirect_aix64): Ditto.
3070 (call_indirect_nonlocal_aix32_internal): Ditto.
3071 (call_indirect_nonlocal_aix32): Ditto.
3072 (call_indirect_nonlocal_aix64_internal): Ditto.
3073 (call_indirect_nonlocal_aix64): Ditto.
3074 (call): Rewrite AIX indirect function calls. Add support for
3075 eliminating the static chain, and for moving the save of the TOC
3076 to the function prologue.
3077 (call_value): Ditto.
3078 (call_indirect_aix<ptrsize>): Ditto.
3079 (call_indirect_aix<ptrsize>_internal): Ditto.
3080 (call_indirect_aix<ptrsize>_internal2): Ditto.
3081 (call_indirect_aix<ptrsize>_nor11): Ditto.
3082 (call_value_indirect_aix<ptrsize>): Ditto.
3083 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3084 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3085 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3086 (call_nonlocal_aix32): Relocate in the rs6000.md file.
3087 (call_nonlocal_aix64): Ditto.
3088
3089 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3090 -mno-r11 documentation.
3091
49d6830d
JW
30922011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3093
3094 PR other/49658
3095 * doc/extend.texi (Compound Literals): Fix typo.
3096
c884924f
JG
30972011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
3098
f9610d20 3099 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 3100
bf588455
BS
31012011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
3102
3103 * configure.ac (plugin-version.h): Generate
3104 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3105 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3106 macros.
3107
3108 * configure: Regenerate.
3109
3110 * doc/plugins.texi (Building GCC plugins): Mention
3111 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3112
d0edd768
BS
31132011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3114
3115 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3116 * combine.c (make_extraction, gen_lowpart_or_truncate,
3117 apply_distributive_law, simplify_comparison,
3118 reg_truncated_to_mode, record_truncated_value): Use it.
3119 * cse.c (notreg_cost): Likewise.
3120 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3121 * expr.c (convert_move, convert_modes): Likewise.
3122 * optabs.c (expand_binop, expand_unop): Likewise.
3123 * postreload.c (move2add_last_label): Likewise.
3124 * regmove.c (optimize_reg_copy_3): Likewise.
3125 * rtlhooks.c (gen_lowpart_general): Likewise.
3126 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3127
e5cabdfb
JM
31282011-07-06 Joseph Myers <joseph@codesourcery.com>
3129
3130 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3131
2d0c270f
BS
31322011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3133
3134 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3135 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3136 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3137 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
3138 simplify_const_binary_operation, simplify_const_relational_operation):
3139 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
3140 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3141 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3142 simplify_shift_const_1, simplify_comparison): Likewise.
3143 * expr.c (convert_modes): Likewise.
3144 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 3145 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
3146 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3147
f9c08345
BS
3148 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3149
6d6c9525
RG
31502011-07-06 Richard Guenther <rguenther@suse.de>
3151
3152 PR tree-optimization/49645
3153 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3154 register variables.
3155 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3156 in type qualification here ...
3157 (copy_reference_ops_from_ref): ... not here.
3158 (vn_reference_lookup_3): ... or here.
3159 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3160 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3161
d1a6ec10
ILT
31622011-07-06 Ian Lance Taylor <iant@google.com>
3163
3164 * doc/install.texi (Configuration): It's
3165 --enable-gnu-indirect-function, not --enable-indirect-function.
3166
ff3e08af
BS
31672011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3168
3169 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
3170 shift_truncation_mask hook instead of performing modulo by width.
3171 Compare against mode precision, not bitsize.
ff3e08af 3172 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 3173 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 3174
a369b639
L
31752011-07-06 H.J. Lu <hongjiu.lu@intel.com>
3176
3177 PR middle-end/47383
3178 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3179 address computation and convert to address_mode if needed.
3180
1a072294
RG
31812011-07-06 Richard Guenther <rguenther@suse.de>
3182
3183 * tree.c (build_common_tree_nodes_2): Merge with
3184 build_common_tree_nodes.
3185 * tree.h (build_common_tree_nodes): Adjust prototype.
3186 (build_common_tree_nodes_2): Remove.
3187 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3188 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3189
f2c3a8ce
JJ
31902011-07-05 Jakub Jelinek <jakub@redhat.com>
3191
3192 PR tree-optimization/49618
3193 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3194 t recurse on the decl.
3195 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3196 return true if expr isn't known to be defined in current
3197 TU or some other LTO partition.
3198
3aa439ed
MM
31992011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3200
3201 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3202 override CASE_VALUES_THRESHOLD.
3203
3204 * stmt.c (toplevel): Include params.h.
3205 (case_values_threshold): Use the --param case-values-threshold
3206 value if non-zero, otherwise use machine dependent value.
3207 (expand_case): Use case_values_threshold.
3208
3209 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3210
3211 * doc/invoke.texi (--param case-values-threshold): Document.
3212
49956667
RH
32132011-07-05 Richard Henderson <rth@redhat.com>
3214
3215 * dwarf2out.c (dwarf2out_cfi_label): Make static.
3216 (dwarf2out_flush_queued_reg_saves): Make static.
3217 (dwarf2out_reg_save): Remove.
3218 (dwarf2out_return_save): Remove.
3219 (dwarf2out_return_reg): Remove.
3220 (dwarf2out_reg_save_reg): Remove.
3221 (dwarf2out_def_cfa): Merge into ...
3222 (dwarf2out_frame_init): ... here.
3223 * dwarf2out.h, tree.h: Remove declarations as necessary.
3224
9f2ff8e5
RH
32252011-07-05 Richard Henderson <rth@redhat.com>
3226
c2b40eba
RH
3227 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3228 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3229 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3230 the alloc insn.
3231
7d3c6cd8
RH
3232 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3233 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3234 (process_epilogue): Don't call dwarf2out_def_cfa.
3235
5f740973
RH
3236 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3237 indicate the return address save.
3238 (process_cfa_register): Likewise.
3239
a1880147
RH
3240 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3241 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3242
9f2ff8e5
RH
3243 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3244 for ar.pfs save at alloc insn.
3245
ddc6e7d6
RH
32462011-07-05 Richard Henderson <rth@redhat.com>
3247
3248 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3249 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3250 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3251 stack pointer save.
3252 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3253 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
3254 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3255 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3256
a3515605
RH
32572011-07-05 Richard Henderson <rth@redhat.com>
3258
3259 * config/vax/vax.md (define_c_enum unspecv): New. Define the
3260 VUNSPEC_* constants here instead of via define_constants.
3261 (VUNSPEC_PEM): New constant.
3262 (procedure_entry_mask): New insn.
3263 (prologue): New expander.
3264 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3265 (vax_expand_prologue): Rename from vax_output_function_prologue;
3266 emit rtl instead of text.
3267 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3268 (print_operand): Add 'x' prefix.
3269
a7adbbcb
L
32702011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3271
3272 PR middle-end/47715
3273 * calls.c (precompute_register_parameters): Promote the function
3274 argument before checking non-legitimate constant.
3275
cec11ec4
SP
32762011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3277
3278 PR tree-optimization/47654
3279 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3280 (lst_do_strip_mine_loop): Return an int.
3281 (lst_do_strip_mine): Same.
3282 (scop_do_strip_mine): Same.
3283 (scop_do_block): Loop blocking should strip-mine at least two loops.
3284 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3285 (scop_do_interchange): Same.
3286 * graphite-poly.h (scop_do_interchange): Update declaration.
3287 (scop_do_strip_mine): Same.
3288
9b0d314a
SP
32892011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3290
3291 * graphite-clast-to-gimple.c (precision_for_value): Removed.
3292 (precision_for_interval): Removed.
3293 (gcc_type_for_interval): Use mpz_sizeinbase.
3294
81d6d080
SP
32952011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3296
3297 * graphite-ppl.h (value_max): Correct computation of max.
3298
369e3430
SP
32992011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3300
3301 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3302
fce5dddd
RG
33032011-07-05 Richard Guenther <rguenther@suse.de>
3304
3305 * c-decl.c (c_init_decl_processing): Defer building common
3306 tree nodes to c_common_nodes_and_builtins.
3307
12037899
RL
33082011-07-05 Razya Ladelsky <razya@il.ibm.com>
3309
3310 PR tree-optimization/49580
f9610d20 3311 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 3312 the loop's number of iterations.
f9610d20
UB
3313 * tree-parloops.c (transform_to_exit_first_loop): Add the
3314 handling of the loop's number of iterations before the call
12037899 3315 to gimple_duplicate_sese_tail.
28b21ebb 3316 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
3317 condition stmt to the preheader instead of iters_bb.
3318
509a31f8
L
33192011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3320
3321 PR rtl-optimization/47449
3322 * fwprop.c (forward_propagate_subreg): Don't propagate hard
3323 register nor zero/sign extended hard register.
3324
39becbac
RG
33252011-07-05 Richard Guenther <rguenther@suse.de>
3326
3327 PR tree-optimization/49518
3328 PR tree-optimization/49628
3329 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3330 irrelevant and invariant data-references.
3331 (vect_analyze_data_ref_access): For invariant loads clear the
3332 group association.
3333
15923c25
JJ
33342011-07-04 Jakub Jelinek <jakub@redhat.com>
3335
af421d9c
JJ
3336 PR rtl-optimization/49619
3337 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3338 pass VOIDmode as op0_mode to recursive call, and return temp even
3339 when different from tor, just if it is not IOR of the original
3340 PLUS arguments.
3341
707f9919
JJ
3342 PR rtl-optimization/49472
3343 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3344 negating MULT, negate the second operand instead of first.
3345 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
3346 a NEG and the other is MULT, don't attempt to optimize by negation
3347 of the MULT operand if it only moves the NEG operation around.
707f9919 3348
15923c25
JJ
3349 PR debug/49602
3350 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3351 get_current_def return value if it can't be trusted to be
3352 the current value of the variable in the current bb.
3353
0d5e0c1b
UB
33542011-07-04 Uros Bizjak <ubizjak@gmail.com>
3355
3356 PR target/49600
3357 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3358 general register to memory for !TARGET_INTER_UNIT_MOVES.
3359
db297e20
GJL
33602011-07-04 Georg-Johann Lay <avr@gjlay.de>
3361
3362 PR target/44643
3363 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
3364 instead of TREE_READONLY.
3365
f451d14d
GJL
33662011-07-04 Georg-Johann Lay <avr@gjlay.de>
3367
3368 * doc/extend.texi (AVR Built-in Functions): Update documentation
3369 of __builtin_avr_fmul*.
0d5e0c1b 3370 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
3371 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
3372 * config/avr/avr.md (fmul): Rename to fmul_insn.
3373 (fmuls): Rename to fmuls_insn.
3374 (fmulsu): Rename to fmulsu_insn.
3375 (fmul,fmuls,fmulsu): New expander.
3376 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
3377 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
3378 * config/avr/libgcc.S (__fmul): New function.
3379 (__fmuls): New function.
3380 (__fmulsu,__fmulsu_exit): New function.
3381
30f1e6de
RG
33822011-07-04 Richard Guenther <rguenther@suse.de>
3383
3384 PR tree-optimization/49615
3385 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
3386 basic-block index check.
3387
6dab9931
GJL
33882011-07-04 Georg-Johann Lay <avr@gjlay.de>
3389
3390 * longlong.h (count_leading_zeros, count_trailing_zeros,
3391 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
3392 resp. 64.
3393
b5066d8b
IR
33942011-07-03 Ira Rosen <ira.rosen@linaro.org>
3395
3396 PR tree-optimization/49610
3397 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
3398 a basic block.
3399
bc712852
EB
34002011-07-02 Eric Botcazou <ebotcazou@adacore.com>
3401 Olivier Hainque <hainque@adacore.com>
3402 Nicolas Setton <setton@adacore.com>
3403
3404 * tree.h (TYPE_ARTIFICIAL): New flag.
3405 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
3406 the DIE of the type if it is artificial.
3407 (gen_array_type_die): Likewise.
3408 (gen_enumeration_type_die): Likewise.
3409 (gen_struct_or_union_type_die): Likewise.
3410 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3411 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3412
8b1bdcc5
JJ
34132011-07-01 Jakub Jelinek <jakub@redhat.com>
3414
3415 * tree-object-size.c (pass_through_call): Handle
3416 BUILT_IN_ASSUME_ALIGNED.
3417
06e88d73
MJ
34182011-07-01 Martin Jambor <mjambor@suse.cz>
3419
3420 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3421
6bbec3e1
L
34222011-07-01 H.J. Lu <hongjiu.lu@intel.com>
3423
3424 PR middle-end/48016
3425 * explow.c (update_nonlocal_goto_save_area): Use proper mode
3426 for stack save area.
3427 * function.c (expand_function_start): Likewise.
3428
e8fdf1cd
RG
34292011-07-01 Richard Guenther <rguenther@suse.de>
3430
3431 PR middle-end/49596
3432 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3433 may have unknown refs.
3434
80d3dd38
KT
34352011-07-01 Kai Tietz <ktietz@redhat.com>
3436
3437 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3438
179fc656
RO
34392011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3440
3441 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3442 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3443 (Specific, mips-sgi-irix6): Likewise.
3444
14a393a3
RO
34452011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3446
3447 PR libmudflap/49549
3448 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3449
3aecd443
JJ
34502011-07-01 Jakub Jelinek <jakub@redhat.com>
3451
3452 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3453 [idx]= and [idx1 ... idx2]= before initializers if needed for
3454 array initializers.
3455
7474f719
CL
34562011-07-01 Chen Liqin <liqin.gcc@gmail.com>
3457
3458 * config.gcc (score-*-elf): Remove score7.o.
3459 * config/score/t-score-elf: Likewise.
3460 * config/score/score.c: Merge score7 to score.c and
3461 remove forwarding functions.
3462 * config/score/score7.c: Deleted.
3463 * config/score/score7.h: Deleted.
3464
ab70d825
RG
34652011-07-01 Richard Guenther <rguenther@suse.de>
3466
3467 PR tree-optimization/49603
0d5e0c1b 3468 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 3469
1ac93f10
MJ
34702011-06-30 Martin Jambor <mjambor@suse.cz>
3471
3472 * tree-sra.c (struct access): Rename total_scalarization to
3473 grp_total_scalarization
3474 (completely_scalarize_var): New function.
3475 (sort_and_splice_var_accesses): Set total_scalarization in the
3476 representative access.
3477 (analyze_access_subtree): Propagate total scalarization accross the
3478 tree, no holes in totally scalarized trees, simplify coverage
3479 computation.
3480 (analyze_all_variable_accesses): Call completely_scalarize_var instead
3481 of completely_scalarize_record.
3482
97f309c3
RH
34832011-06-30 Richard Henderson <rth@redhat.com>
3484
3485 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3486 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3487 * config/i386/i386.c: Don't include dwarf2out.h.
3488 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3489 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3490 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
3491 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3492 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3493
ef284364
RH
34942011-06-30 Richard Henderson <rth@redhat.com>
3495
3496 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3497 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3498 * final.c (final_scan_insn): Look for it, and invoke
3499 dwarf2out_frame_debug before the insn if found.
3500
c8412f97
RH
35012011-06-30 Richard Henderson <rth@redhat.com>
3502
3503 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3504 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3505
e3f903d8
RH
35062011-06-30 Richard Henderson <rth@redhat.com>
3507
3508 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3509 Define a vector of this type.
3510 (regs_saved_in_regs): Use a VEC.
3511 (num_regs_saved_in_regs): Remove.
3512 (compare_reg_or_pc): New.
3513 (record_reg_saved_in_reg): Split out from...
3514 (dwarf2out_flush_queued_reg_saves): ... here.
3515 (clobbers_queued_reg_save): Update for VEC.
3516 (reg_saved_in): Likewise.
3517 (dwarf2out_frame_debug_init): Likewise.
3518 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3519 (dwarf2out_frame_debug_cfa_register): Likewise.
3520
e2c9010a
EB
35212011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3522
3523 PR tree-optimization/49572
3524 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3525 type of the RHS instead of that of the LHS for the expression type.
3526
dbb07bbc
EB
35272011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3528
3529 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3530 unconditionally.
3531
1565af08
RG
35322011-06-30 Richard Guenther <rguenther@suse.de>
3533
3534 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3535 * tree-ssa-structalias.c (create_variable_info_for): Do not
3536 add initial constraints for non-var-decls. Properly handle
3537 globals in other ltrans partitions.
3538 (intra_create_variable_infos): Manually create constraints for
3539 the fake no-alias parameter.
3540 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3541 and assert there are no clones.
3542
42373e0b
RG
35432011-06-30 Richard Guenther <rguenther@suse.de>
3544
3545 PR tree-optimization/46787
3546 * tree-data-ref.c (dr_address_invariant_p): Remove.
3547 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 3548 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
3549 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3550 invariant loads.
3551
7aa62ea1
MJ
35522011-06-30 Martin Jambor <mjambor@suse.cz>
3553
3554 PR tree-optimization/49094
3555 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3556 (build_accesses_from_assign): Use it.
3557
f60f32b3
JJ
35582011-06-30 Jakub Jelinek <jakub@redhat.com>
3559
d9048d16
JJ
3560 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3561 handling of BUILT_IN_ASSUME_ALIGNED.
3562
f60f32b3
JJ
3563 PR debug/49364
3564 * dwarf2out.c (output_abbrev_section): Don't return early
3565 if abbrev_die_table_in_use is 1.
3566 (dwarf2out_finish): Instead don't call output_abbrev_section
3567 nor emit abbrev_section_label in that case.
3568
7cce15d4
NC
35692011-06-30 Nick Clifton <nickc@redhat.com>
3570
3571 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3572 for the V850E.
3573
ce7e54ff
JJ
35742011-06-30 Jakub Jelinek <jakub@redhat.com>
3575
3576 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3577 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3578
83197f37
IR
35792011-06-30 Ira Rosen <ira.rosen@linaro.org>
3580
3581 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3582 both pattern and original statements if necessary.
3583 (vect_transform_loop): Likewise.
3584 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3585 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3586 Mark the pattern statement only if the original statement doesn't
3587 have its own uses.
3588 (process_use): Call vect_mark_relevant with additional parameter.
3589 (vect_mark_stmts_to_be_vectorized): Likewise.
3590 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3591 (vect_analyze_stmt): Handle both pattern and original statements
3592 if necessary.
3593 (vect_transform_stmt): Don't store vectorized pattern statement
3594 in the original statement.
3595 (vect_is_simple_use_1): Use related pattern statement only if the
3596 original statement is irrelevant.
3597 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3598
dbb07bbc 35992011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 3600
dbb07bbc
EB
3601 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3602 option.
3603 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3604 entry.
5c0d88e6
CF
3605 (TARGET_AVX128_OPTIMAL): New definition.
3606 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3607 X86_TUNE_AVX128_OPTIMAL entry.
3608 (ix86_option_override_internal): Enable the generation
3609 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3610 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3611 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3612
931050d0
EB
36132011-06-29 Eric Botcazou <ebotcazou@adacore.com>
3614
3615 PR tree-optimization/49539
3616 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3617 names by means of stmt_references_abnormal_ssa_name.
3618 (associate_plusminus): Call can_propagate_from before propagating
3619 from definition statements.
3620 (ssa_forward_propagate_and_combine): Remove superfluous newline.
3621
dfedbe40
RG
36222011-06-29 Richard Guenther <rguenther@suse.de>
3623
3624 * doc/invoke.texi: Document -scev dump modifier.
3625 * tree-pass.h (TDF_SCEV): New dump flag.
3626 * tree-dump.c (dump_option_value_in): Add scev.
3627 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3628 * tree-scalar-evolution.c: Likewise.
3629
3a86cfeb
NS
36302011-06-29 Nathan Sidwell <nathan@codesourcery.com>
3631
3632 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3633 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
3634 (__gnu_unwind_pr_common): Reconstruct additional indirection
3635 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 3636
f3678bfb
UW
36372011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3638
3639 PR rtl-optimization/49114
3640 * reload.c (struct replacement): Remove SUBREG_LOC member.
3641 (push_reload): Do not set it.
3642 (push_replacement): Likewise.
3643 (subst_reload): Remove dead code.
3644 (copy_replacements): Remove assertion.
3645 (copy_replacements_1): Do not handle SUBREG_LOC.
3646 (move_replacements): Likewise.
3647 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
3648 Detect subregs via recursive descent instead of via SUBREG_LOC.
3649
433ba0a5 36502011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 3651
433ba0a5
GJL
3652 * config/avr/avr.c (avr_encode_section_info): Dispatch to
3653 default_encode_section_info.
3654
73f6eabc
RS
36552011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
3656
3657 PR tree-optimization/49545
3658 * builtins.c (get_object_alignment_1): Update function comment.
3659 Do not use DECL_ALIGN for functions, but test
3660 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3661 * fold-const.c (get_pointer_modulus_and_residue): Don't check
3662 for functions here.
3663 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
3664
a0f33d3a
JJ
36652011-06-29 Jakub Jelinek <jakub@redhat.com>
3666
3667 PR debug/49567
0d5e0c1b
UB
3668 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
3669 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 3670
946c8b23 36712011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 3672
946c8b23 3673 PR target/34734
0d5e0c1b 3674 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
3675 about uninitialized data attributed 'progmem' from here...
3676 (avr_encode_section_info): ...to this new function.
3677 (TARGET_ENCODE_SECTION_INFO): New define.
3678 (avr_section_type_flags): For data in ".progmem.data", remove
3679 section flag SECTION_WRITE.
3680
9a63dee4 36812011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 3682
9a63dee4
GJL
3683 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
3684 _xmulhisi3_exit.
3685 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
3686 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
3687 (__umulhisi3): Ditto.
3688 * config/avr/avr.md (mulhisi3): New insn expender.
3689 (umulhisi3): New insn expender.
3690 (*mulhisi3_call): New insn.
3691 (*umulhisi3_call): New insn.
3692
4374ce45
JM
36932011-06-28 Joseph Myers <joseph@codesourcery.com>
3694
3695 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
3696
94759030
RH
36972011-06-28 Richard Henderson <rth@redhat.com>
3698
3699 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
3700 all code and arguments that handled pushes. Update all callers.
3701
d018b46e
RH
37022011-06-28 Richard Henderson <rth@redhat.com>
3703
3704 * config/arm/arm.c (arm_output_function_prologue): Don't call
3705 thumb1_output_function_prologue.
3706 (arm_expand_prologue): Avoid dead store.
3707 (number_of_first_bit_set): Use ctz_hwi.
3708 (thumb1_emit_multi_reg_push): New.
3709 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
3710 to emit the entire prologue as rtl.
3711 (thumb1_output_interwork): Split out from
3712 thumb1_output_function_prologue.
3713 (thumb1_output_function_prologue): Remove.
3714 (arm_attr_length_push_multi): Handle thumb1.
3715 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
3716 (prologue_thumb1_interwork): New.
3717 (*push_multi): Allow thumb1; use push_mult_memory_operand.
3718 * config/arm/predicates.md (push_mult_memory_operand): New.
3719
97269a23
EB
37202011-06-28 Eric Botcazou <ebotcazou@adacore.com>
3721
3722 * config/sparc/sync.md (*stbar): Delete.
3723 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
3724
4a9206ce
EB
37252011-06-28 Eric Botcazou <ebotcazou@adacore.com>
3726
3727 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
3728
6138f9bd
RO
37292011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3730
3731 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
3732 (TARGET_64BIT_DEFAULT): Define.
3733 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
3734 of tm_file.
3735 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
3736
a7d0d30f
JM
37372011-06-28 Joseph Myers <joseph@codesourcery.com>
3738
3739 * common.opt (in_lto_p): New Variable entry.
3740 * flags.h (in_lto_p): Move to common.opt.
3741 * gcc.c: Include params.h.
3742 (set_option_handlers): Also use common_handle_option and
3743 target_handle_option.
0d5e0c1b 3744 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
3745 * opts.c (debug_type_names): Move from toplev.c.
3746 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
3747 (common_handle_option): Return early in the driver for some options.
3748 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
3749 opts pointer.
a7d0d30f
JM
3750 * toplev.c (in_lto_p): Move to common.opt.
3751 (debug_type_names): Move to opts.c.
3752 * Makefile.in (OBJS): Remove opts.o.
3753 (OBJS-libcommon-target): Add opts.o.
3754 (gcc.o): Update dependencies.
3755
420863a9
KT
37562011-06-28 Kai Tietz <ktietz@redhat.com>
3757
0d5e0c1b 3758 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 3759
0498a2be
RR
37602011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3761
3762 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
3763 with '=' constraint modifier.
3764 (*divdf3_vfp): Likewise.
3765 ("*mulsf3_vfp"): Likewise.
3766 ("*muldf3_vfp"): Likewise.
3767 ("*mulsf3negsf_vfp"): Likewise.
3768 ("*muldf3negdf_vfp"): Likewise.
3769
4a68b724
NC
37702011-06-28 Nick Clifton <nickc@redhat.com>
3771
3772 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
3773 relaxation when performing an incremental link.
3774
72a32729
KT
37752011-06-28 Kai Tietz <ktietz@redhat.com>
3776
3777 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
3778 within BB from last to first.
3779
88a00ef7
JM
37802011-06-28 Joseph Myers <joseph@codesourcery.com>
3781
3782 * genattr-common.c: New. Based on genattr.c.
3783 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
3784 (MOSTLYCLEANFILES): Add insn-attr-common.h.
3785 (opts.o): Update dependencies.
3786 (.PRECIOUS): Add insn-attr-common.h.
3787 (simple_rtl_generated_h): Add insn-attr-common.h.
3788 (build/genattr-common.o): New.
3789 (genprogrtl): Add attr-common.
3790 * genattr.c (main): Include insn-attr-common.h. Don't generate
3791 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 3792 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 3793
880962ac
GJL
37942011-06-28 Georg-Johann Lay <avr@gjlay.de>
3795
4a68b724 3796 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 3797 avr-*-* and avr-*-rtems* targets.
4a68b724 3798
880962ac
GJL
3799 * config/avr/elf.h: New file.
3800 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
3801 (TARGET_ASM_SELECT_SECTION): Define.
3802 (INIT_SECTION_ASM_OP): Undefine.
3803 (FINI_SECTION_ASM_OP): Undefine.
3804 (READONLY_DATA_SECTION_ASM_OP): Undefine.
3805 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
3806 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
3807 * config/avr/avr.h:
3808 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
3809 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
3810 (MAX_OFILE_ALIGNMENT): Move to elf.h.
3811 (STRING_LIMIT): Move to elf.h.
3812 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
3813 (ASM_DECLARE_OBJECT_NAME): Remove.
3814 (ESCAPES): Remove.
3815 (ASM_OUTPUT_SKIP): Remove.
3816 (DWARF2_DEBUGGING_INFO): Remove.
3817 (OBJECT_FORMAT_ELF): Remove.
3818 (USER_LABEL_PREFIX): Remove.
3819 (ASM_OUTPUT_EXTERNAL): Remove.
3820 (ASM_OUTPUT_ASCII): Remove.
3821 (TYPE_ASM_OP): Remove.
3822 (SIZE_ASM_OP): Remove.
3823 (WEAK_ASM_OP): Remove.
3824 (STRING_ASM_OP): Remove.
3825 (SET_ASM_OP): Remove.
3826 (ASM_WEAKEN_LABEL): Remove.
3827 (TYPE_OPERAND_FMT): Remove.
3828 (ASM_DECLARE_FUNCTION_SIZE): Remove.
3829 (ASM_FINISH_DECLARE_OBJECT): Remove.
3830 (NO_DOLLAR_IN_LABEL): Remove.
3831 (ASM_GENERATE_INTERNAL_LABEL): Remove.
3832 (ASM_OUTPUT_CASE_LABEL): Remove.
3833 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
3834 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
3835 (gas_output_ascii): Remove.
3836 (gas_output_limited_string): Remove.
3837 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
3838 * config/avr/avr-protos.h
3839 (gas_output_ascii): Remove prototye.
3840 (gas_output_limited_string): Remove prototype.
3841
a1b5eb93
RE
38422011-06-27 Richard Earnshaw <rearnsha@arm.com>
3843
3844 PR target/48637
3845 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
3846 asm operands.
3847
310e71a8
JH
38482011-06-27 Jan Hubicka <jh@suse.cz>
3849
4a9206ce
EB
3850 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
3851 node instead of references in node.
310e71a8 3852
171da07a
RH
38532011-06-27 Richard Henderson <rth@redhat.com>
3854
3855 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
3856 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
3857 inside ifdef.
3858
dc2a58da
JJ
38592011-06-27 Jakub Jelinek <jakub@redhat.com>
3860
56300785
JJ
3861 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
3862
45d439ac
JJ
3863 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
3864 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
3865 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
3866 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
3867 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
3868 (evaluate_stmt, execute_fold_all_builtins): Handle
3869 BUILT_IN_ASSUME_ALIGNED.
3870 * tree-ssa-dce.c (propagate_necessity): Likewise.
3871 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3872 call_may_clobber_ref_p_1): Likewise.
3873 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
3874 (expand_builtin_assume_aligned): New function.
3875 * doc/extend.texi (__builtin_assume_aligned): Document.
3876
dc2a58da
JJ
3877 PR debug/49544
3878 * cselib.c (promote_debug_loc): If cselib_preserve_constants
3879 and l has two DEBUG_INSN owned locs instead of just one, adjust
3880 the second location's setting_insn too.
3881
0d72f628
RO
38822011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3883
3884 PR libmudflap/38738
3885 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
3886
bebd619e
NC
38872011-06-27 Nick Clifton <nickc@redhat.com>
3888
0d5e0c1b
UB
3889 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
3890 bit position of highest bit set into a count of the high zero bits.
bebd619e 3891
353b39fa
EB
38922011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3893
3894 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
3895
a7af037b
EB
38962011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3897
3898 PR lto/48492
3899 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
3900 to a NULL parent.
3901
1c86160a
RG
39022011-06-27 Richard Guenther <rguenther@suse.de>
3903
3904 PR tree-optimization/49394
3905 * passes.c (execute_one_pass): Restore current_pass after
3906 applying IPA transforms.
3907
5da49a9d
KT
39082011-06-27 Kai Tietz <ktietz@redhat.com>
3909
3910 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
3911 out of type precision after operation.
0d5e0c1b
UB
3912 (find_bswap): Take for limit value the integer auto-promotion
3913 into account.
5da49a9d 3914
9242213f
EB
39152011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3916
3917 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
3918 forward scan as well.
3919
db8b22ef
TG
39202011-06-27 Tristan Gingold <gingold@adacore.com>
3921
3922 PR target/44241
3923 * config/vms/vms-protos.h: New file.
3924 * config/vms/vms-crtlmap.map: New file.
3925 * config/vms/vms.c: New file.
3926 * config/vms/make-crtlmap.awk: New file.
3927 * config/vms/vms-crtl.h: File removed.
3928 * config/vms/vms-crtl-64.h: File removed.
3929 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
3930 * config/alpha/vms64.h: Do not include vms-crtl-64.h
3931 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
3932 clear some builtins on VMS. Calls vms_patch_builtins.
3933 (avms_asm_output_external): Remove.
3934 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
3935 (struct crtl_name_spec): Remove
3936 (DO_CTRL_NAMES): Remove.
3937 * config/ia64/vms.h (struct crtl_name_spec): Remove
3938 (DO_CTRL_NAMES): Remove.
3939 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
3940 clear some builtins on VMS. Calls vms_patch_builtins.
3941 (ia64_asm_output_external): Remove DO_CRTL_NAME.
3942 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 3943 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 3944
b213221d
TG
39452011-06-27 Tristan Gingold <gingold@adacore.com>
3946
3947 * config/alpha/alpha.c (alpha_end_function): Always generate .end
3948 directive on VMS.
3949
157b9300
EB
39502011-06-27 Eric Botcazou <ebotcazou@adacore.com>
3951
3952 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
3953 the function receives nonlocal gotos.
3954
ccbf5bb4
RG
39552011-06-27 Richard Guenther <rguenther@suse.de>
3956
3957 PR tree-optimization/49536
3958 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
3959 For non-scalar inner types use a scalar type according to
3960 the scalar inner mode.
3961
fe4cd14b
RG
39622011-06-27 Richard Guenther <rguenther@suse.de>
3963
3964 PR tree-optimization/49365
3965 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
3966
afc3f22f
RS
39672011-06-27 Richard Guenther <rguenther@suse.de>
3968
3969 PR tree-optimization/49169
3970 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
3971 the alignment of function decls.
3972
92590751 39732011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
3974
3975 PR target/47997
3976 * config/darwin.c (darwin_mergeable_string_section): Place string
3977 constants in '.cstring' rather than '.const' when CF/NSStrings are
3978 active.
3979
605354f3
EB
39802011-06-26 Eric Botcazou <ebotcazou@adacore.com>
3981
3982 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
3983 (emit_save_register_window): Likewise.
3984 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
3985 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
3986 Swap back %o7/%i7 in register naming.
3987
0e9197f5
IS
39882011-06-25 Iain Sandoe <iains@gcc.gnu.org>
3989
3990 PR driver/49371
3991 * config/darwin.c (darwin_override_options): Improve warning when
3992 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
3993 is given with fpie/fPIE.
3994 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
3995 * config/darwin9.h (PIE_SPEC): New.
53461199 3996
605354f3 39972011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
3998
3999 * timevar.c (timevar_print): Increase width for display of timevar
4000 name.
4001
f796c438
JJ
40022011-06-24 Jakub Jelinek <jakub@redhat.com>
4003
4004 PR c++/46400
4005 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4006 instead of TYPE_CHAIN for chain_next for types.
4007
a7289eaf
RH
40082011-06-24 Richard Henderson <rth@redhat.com>
4009
4010 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4011 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4012 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4013 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4014 (sparc_flat_expand_prologue): Emit individual instructions
4015 instead of one of the above.
4016
c4b9a87e
ER
40172011-06-24 Easwaran Raman <eraman@google.com>
4018
4019 PR rtl-optimization/49429
4020 PR target/49454
4021 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
4022 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4023 used to copy y into x.
4024 * calls.c (initialize_argument_information): Mark
4025 an argument addressable if it is passed by invisible reference.
4026 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
4027 if it is passed by reference.
4028
5ac6c59e
L
40292011-06-24 H.J. Lu <hongjiu.lu@intel.com>
4030
4031 PR rtl-optimization/49504
4032 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
4033 subtraction of a pointer in Pmode if pointers extend unsigned.
4034 (num_sign_bit_copies1): Likewise.
5ac6c59e 4035
b807e627
MJ
40362011-06-24 Martin Jambor <mjambor@suse.cz>
4037
4038 PR tree-optimizations/49516
4039 * tree-sra.c (sra_modify_assign): Choose the safe path for
4040 aggregate copies if we also did scalar replacements.
4041
9a1ea4b9
RR
40422011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4043
4044 PR target/49335
4045 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 4046 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 4047
949cfd0a
AK
40482011-06-24 Andi Kleen <ak@linux.intel.com>
4049
4050 * tree-sra.c (type_internals_preclude_sra_p): Add msg
4051 parameter. Split up ifs and report reason in *msg.
4052 (reject): Add.
4053 (find_var_candiate): Add msg variable.
4054 Split up ifs and report reason to reject.
4055 (find_param_candidates): Add msg variable.
4056 Pass msg to type_internals_preclude_sra_p.
4057
49e9c661 40582011-06-23 Jeff Law <law@redhat.com>
ad3577df 4059
b0c11403
JL
4060 PR middle-end/48770
4061 * reload.h (reload): Change to return a bool.
4062 * ira.c (ira): If requested by reload, run a fast DCE pass after
4063 reload has completed. Fix comment typo.
4064 * reload1.c (need_dce): New file scoped static.
4065 (reload): Set reload_completed here. Return whether or not a DCE
4066 pass after reload is needed.
4067 (delete_dead_insn): Set need_dce as needed.
4068
ad3577df
JL
4069 PR middle-end/49465
4070 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4071 to detect threading through joiner block. If there was already
4072 an edge to the new target, then do not change the PHI nodes.
4073
7cf64710
JJ
40742011-06-23 Jakub Jelinek <jakub@redhat.com>
4075
4076 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4077 get_pointer_alignment to see if base isn't sufficiently aligned.
4078
febb1302
JH
40792011-06-23 Jan Hubicka <jh@suse.cz>
4080
4081 PR tree-optimize/49373
4082 * tree-pass.h (all_late_ipa_passes): Declare.
4083 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
4084 (cgraph_optimize): Execute late passes; remove unreachable funcions
4085 after materialization.
4086 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4087 LTOing.
febb1302
JH
4088 * passes.c (all_late_ipa_passes): Declare.
4089 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
4090 (init_optimization_passes): Move ipa_pta to late passes; schedule
4091 fixup_cfg at beggining of all_passes.
febb1302
JH
4092 (apply_ipa_transforms): New function.
4093 (execute_one_pass): When doing simple ipa pass, apply all transforms.
4094
4c77620d
JM
40952011-06-23 Joseph Myers <joseph@codesourcery.com>
4096
4097 * params.c: Include common/common-target.h. Don't include tm.h.
4098 (lang_independent_params): Move from toplev.c.
4099 (global_init_params): New.
4100 * params.h (global_init_params): Declare.
4101 * target.def (default_params): Move to common-target.def.
4102 * toplev.c (lang_independent_options): Remove.
4103 (lang_independent_params): Move to params.c.
4104 (general_init): Use global_init_params.
4105 * common/common-target.def (option_default_params): Move from
4106 target.def.
4107 * common/config/ia64/ia64-common.c: Include params.h.
4108 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4109 from ia64.c.
4110 * common/config/rs6000/rs6000-common.c: Include params.h.
4111 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4112 from rs6000.c.
4113 * common/config/sh/sh-common.c: Include params.h.
4114 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4115 from sh.c.
4116 * common/config/spu/spu-common.c: Include params.h.
4117 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4118 from spu.c.
4119 * config/ia64/ia64.c (ia64_option_default_params,
4120 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4121 * config/rs6000/rs6000.c (rs6000_option_default_params,
4122 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4123 * config/sh/sh.c (sh_option_default_params,
4124 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4125 * config/spu/spu.c (spu_option_default_params,
4126 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4127 * Makefile.in (OBJS): Remove params.o.
4128 (OBJS-libcommon-target): Add params.o.
4129 (params.o, $(common_out_object_file)): Update dependencies.
4130 * doc/tm.texi: Regenerate.
4131
6aad1e38
AM
41322011-06-23 Alan Modra <amodra@gmail.com>
4133
4134 PR bootstrap/49383
4135 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4136 invocation for 2011-06-09 changes.
4137
4fb489e7
JJ
41382011-06-22 Jakub Jelinek <jakub@redhat.com>
4139
fb79f500
JJ
4140 PR libgomp/49490
4141 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
4142 use n ceil/ nthreads size for the first n % nthreads threads in the
4143 team instead of all threads except for the last few ones which
fb79f500
JJ
4144 get less work or none at all.
4145
4fb489e7
JJ
4146 PR debug/49496
4147 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4148 uses.
4149
9c7c9f10
RG
41502011-06-22 Richard Guenther <rguenther@suse.de>
4151
4152 PR tree-optimization/49493
4153 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4154 Refer to the alias target of variables.
4155 (associate_varinfo_to_alias_1): Remove.
4156 (ipa_pta_execute): Do not associate aliases with anything.
4157 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4158 (cgraph_function_node): Likewise.
4159 (cgraph_function_or_thunk_node): Likewise.
4160 (varpool_variable_node): Likewise.
4161
7cf13d1f
NS
41622011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4163
0d5e0c1b 4164 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
4165 * config.gcc (arm*-*-linux*): Default to gnu tls.
4166 (arm*-*-*): Add --with-tls option.
4167 (all_defaults): Add 'tls'.
4168
78a8eb4e
RH
41692011-06-22 Richard Henderson <rth@redhat.com>
4170
4171 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4172 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4173 (dwarf2out_frame_debug_cfa_window_save): Rename from
4174 dwarf2out_window_save; make static.
4175 * tree.h (dwarf2out_window_save): Don't declare.
4176
4177 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4178 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4179 (emit_save_register_window): Rename from gen_save_register_window;
4180 emit the insn and add REG_CFA_* notes.
4181 (sparc_expand_prologue): Update to match.
4182 * config/sparc/sparc.md (save_register_window_1): Simplify from
4183 save_register_window<P:mode>.
4184
3b4c46d7
L
41852011-06-22 H.J. Lu <hongjiu.lu@intel.com>
4186
4187 PR target/49497
4188 * config/i386/i386.md (*lea_general_2): Always allow SImode.
4189 (*lea_general_2_zext): Likewise.
4190 (imul to lea peepholes): Use const359_operand and check
4191 TARGET_PARTIAL_REG_STALL.
4192
4193 * config/i386/predicates.md (const359_operand): New.
4194
4399cf59
MM
41952011-06-22 Michael Matz <matz@suse.de>
4196
4197 * cgraphunit.c (assemble_thunk): Use correct return type.
4198
31a0c825 41992011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 4200 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
4201
4202 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4203 (neon_output_shift_immediate): Ditto.
4204 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4205 prototype.
4206 (neon_output_shift_immediate): Ditto.
4207 * config/arm/neon.md (vashl<mode>3): Modified constraint.
4208 (vashr<mode>3_imm): New insn pattern.
4209 (vlshr<mode>3_imm): Ditto.
4210 (vashr<mode>3): Modified constraint.
4211 (vlshr<mode>3): Ditto.
4212 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4213 predicate.
4214 (imm_for_neon_rshift_operand): Ditto.
4215 (imm_lshift_or_reg_neon): Ditto.
4216 (imm_rshift_or_reg_neon): Ditto.
4217
4218 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4219
ddb555ed
JJ
42202011-06-22 Jakub Jelinek <jakub@redhat.com>
4221
36dc1a88
JJ
4222 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4223 builtin calls even if likelyvalue is not CONSTANT.
4224 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4225 Return get_value_for_expr of first operand
4226 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4227 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4228 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4229 their non-checking counterparts.
4230 (call_may_clobber_ref_p_1): Likewise.
4231 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4232 like their non-checking counterparts.
4233 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4234 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4235 like their non-checking counterparts.
4236 (find_func_clobbers): Likewise.
4237 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4238 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4239
41cd4957
JJ
4240 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4241 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4242 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4243 of base type reference as argument.
4244 (resolve_addr_in_expr): Likewise. Fix keep computation.
4245 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
4246 (convert_descriptor_to_mode): ... this. For wider types convert to
4247 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
4248 (typed_binop): New function.
4249 (scompare_loc_descriptor, ucompare_loc_descriptor,
4250 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4251 default to unsigned type instead of signed.
4252
ddb555ed
JJ
4253 PR debug/47858
4254 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4255 (gimple_build_debug_source_bind_stat): New prototype.
4256 (gimple_build_debug_source_bind): Define.
4257 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4258 gimple_debug_source_bind_get_value,
4259 gimple_debug_source_bind_get_value_ptr,
4260 gimple_debug_source_bind_set_var,
4261 gimple_debug_source_bind_set_value): New inlines.
4262 * gimple.c (gimple_build_debug_source_bind_stat): New function.
4263 * gimple-pretty-print.c (dump_gimple_debug): Handle
4264 GIMPLE_DEBUG_SOURCE_BIND.
4265 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4266 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4267 * tree-parloops.c (eliminate_local_variables,
4268 separate_decls_in_region): Likewise.
4269 (separate_decls_in_region_debug): Renamed from
4270 separate_decls_in_region_debug_bind. Handle
4271 gimple_debug_source_bind_p.
4272 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4273 prototypes.
4274 (DECL_HAS_DEBUG_ARGS_P): Define.
4275 (struct tree_function_decl): Add has_debug_args_flag field.
4276 * tree.c (debug_args_for_decl): New variable.
4277 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4278 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4279 (rewrite_debug_stmt_uses): New function.
4280 (rewrite_stmt): Use it to rewrite debug stmt uses.
4281 * rtl.def (DEBUG_PARAMETER_REF): New.
4282 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4283 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4284 DEBUG_PARAMETER_REF.
4285 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4286 * print-rtl.c (print_rtx): Likewise.
4287 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4288 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4289 debug stmts in the first bb.
4290 * tree-inline.c (remap_ssa_name): If remapping default def
4291 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4292 a source bind debug stmt.
4293 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4294 (maybe_move_debug_stmts_to_successors): Likewise.
4295 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
4296 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4297 debug args vector from old_decl to new_decl.
4298 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4299 or modified parameters, add debug bind stmts before call
0d5e0c1b 4300 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
4301 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4302 on DECL_DEBUG_EXPRs from debug args vector.
4303 (expand_debug_source_expr): New function.
4304 (expand_debug_locations): Use it for source bind insns.
4305 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4306 * var-tracking.c (prepare_call_arguments): Add debug args
4307 to call_arguments if any.
4308 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
4309 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4310 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
4311 (get_ref_die_offset, parameter_ref_descriptor): New functions.
4312 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4313 (gen_subprogram_die): Handle parameters identified by
4314 DEBUG_PARAMETER_REF.
4315
ccdc2164
NS
43162011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4317
4318 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4319 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
4320 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4321 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4322 (arm_tls_descseq_addr): New.
4323 (legitimize_tls_address): Add tlsdesc support.
4324 (arm_cannot_copy_insn_p): Check for tlscall.
4325 (arm_emit_tls_decoration): Likewise.
4326 * config/arm/arm.h (TARGET_GNU2_TLS): New.
4327 (OPTION_DEFAULT_SPECS): Add with-tls support.
4328 * config/arm/arm.md (R1_REGNUM): Define.
4329 (tlscall): New.
4330 * config/arm/arm.opt (tls_type): New enumeration type and values.
4331 (mtls-dialect): New switch.
4332 * config/arm/arm-opts.h (enum tls_type): New.
4333
70e41a6a
NP
43342011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
4335
4336 * attribs.c (register_attribute): Added assert to check that all
4337 attribute specs are registered with a name that is not empty and
4338 does not start with '_'.
4339 (decl_attributes): Avoid the lookup of the "naked" attribute spec
4340 if the function has no attributes.
4341 * tree.c (is_attribute_with_length_p): Removed.
4342 (is_attribute_p): Removed.
0d5e0c1b 4343 (private_is_attribute_p): New.
70e41a6a
NP
4344 (private_lookup_attribute): New.
4345 (lookup_attribute): Removed.
4346 (lookup_ident_attribute): New.
4347 (remove_attribute): Require the first argument to be in the form
4348 'text', not '__text__'. Updated asserts.
4349 (merge_attributes): Use lookup_ident_attributes instead of
4350 lookup_attribute.
4351 (merge_dllimport_decl_attributes): Use remove_attribute.
4352 (attribute_list_contained): Likewise.
4353 (attribute_list_equal): Immediately return 1 if the arguments are
4354 identical pointers.
4355 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
4356 'int'. Require the first argument to be in the form 'text', not
4357 '__text__'. Require the second argument to be an identifier.
4358 (lookup_attribute): Made inline. Require the first argument to be
4359 in the form 'text', not '__text__'.
4360 (private_is_attribute_p, private_lookup_attribute): New.
4361 Updated comments.
0d5e0c1b 4362
e0a8ecf2
AM
43632011-06-21 Andrew MacLeod <amacleod@redhat.com>
4364
4365 * builtins.c: Add sync_ or SYNC__ to builtin names.
4366 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
4367 * omp-low.c: Add sync_ or SYNC__ to builtin names.
4368
663827d3 43692011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 4370
663827d3
GJL
4371 PR target/33049
4372 * config/avr/avr.md (extzv): New expander.
4373 (*extzv): New insn.
4374 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
4375 * config/avr/constraints.md (C04): New constraint.
4376 * doc/md.texi (Machine Constraints): Document it.
4377
146aef0b
JJ
43782011-06-21 Jakub Jelinek <jakub@redhat.com>
4379
4380 PR middle-end/49489
4381 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
4382 unsignedp argument instead of 1 for clrsb_optab.
4383 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
4384 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
4385 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
4386 * optabs.c (widen_leading): Call widen_operand and expand_unop
4387 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 4388 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 4389
c0503294
GJL
43902011-06-21 Georg-Johann Lay <avr@gjlay.de>
4391
4392 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
4393
3801c801
BS
43942011-06-21 Bernd Schmidt <bernds@codesourcery.com>
4395
0bddee8e
BS
4396 * gensupport.c (add_define_attr): New static function.
4397 (is_predicable): Allow multi-alternative lists for the "predicable"
4398 attribute.
4399 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
4400 (process_one_cond_exec): Call alter_attrs_for_insn.
4401 * doc/md.texi (Defining Attributes): Mention some standard names.
4402 (Conditional Execution): Update documentation for "predicable".
4403
3801c801
BS
4404 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
4405 __builtin_clrsbll): Document.
4406 * doc/rtl.texi (clrsb): New entry.
4407 * optabs.c (widen_leading): Renamed from widen_clz. New argument
4408 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
4409 (expand_unop): Handle clrsb_optab.
4410 (init_optabs): Initialize it.
4411 * optabs.h (enum optab_index): New entry OTI_clrsb.
4412 (clrsb_optab): Define.
4413 * genopinit.c (optabs): Add an entry for it.
4414 * builtins.c (expand_builtin): Handle clrsb builtin functions.
4415 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4416 BUILT_IN_CLRSBLL): New.
4417 * rtl.def (CLRSB): New code.
4418 * dwarf2out.c (mem_loc_descriptor): Handle it.
4419 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4420 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4421 and popcount.
4422 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4423 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4424 (__ctzDI2): Move declaration.
4425 * config/bfin/bfin.md (clrsbsi2): New expander.
4426 (signbitssi2): Use the CLRSB rtx.
4427 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
4428 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4429
55f01229
RG
44302011-06-21 Richard Guenther <rguenther@suse.de>
4431
637c11bd 4432 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 4433
5181cd6a
IR
44342011-06-21 Ira Rosen <ira.rosen@linaro.org>
4435
4436 PR tree-optimization/49478
4437 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4438 with constant operand.
4439
e4ee3d70
RG
44402011-06-21 Richard Guenther <rguenther@suse.de>
4441
4442 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 4443
7b7ec6c5
RG
44442011-06-21 Richard Guenther <rguenther@suse.de>
4445
4446 PR tree-optimization/49483
4447 * tree-vect-stmts.c (vectorizable_assignment): Also handle
4448 VIEW_CONVERT_EXPR conversions.
4449
1b916ca6
JM
44502011-06-21 Joseph Myers <joseph@codesourcery.com>
4451
4452 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4453 * config/avr/avr-tables.opt: New file (generated).
4454 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4455 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4456 avr-mcus.def.
4457 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4458 (avr_option_override): Don't process -mmcu= argument here. Set
4459 avr_current_device using avr_mcu_index.
637c11bd 4460 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
4461 * config/avr/avr.opt (mmcu=): Use Enum.
4462 * config/avr/t-avr (avr-devices.o): Update dependencies.
4463 ($(srcdir)/config/avr/avr-tables.opt): New.
4464 * target.def (help): Remove.
4465 * doc/tm.texi.in (TARGET_HELP): Remove.
4466 * doc/tm.texi: Regenerate.
4467 * opts.c: Don't include target.h.
4468 (common_handle_option): Don't call targetm.help.
4469 * system.h (TARGET_HELP): Poison.
4470 * Makefile.in (opts.o): Update dependencies.
4471
7ecfa34f
RO
44722011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4473
4474 * config/usegld.h: New file.
4475 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4476 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 4477 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
4478 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4479 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
4480 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4481 Define.
7ecfa34f
RO
4482 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4483 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4484 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4485 (STACK_CHECK_STATIC_BUILTIN): Define.
4486 * config/sol2.opt (compat-bsd): Remove.
4487 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4488 * config/sol2-bi.h: New file.
4489 * config/sol2-gld.h: Remove.
4490 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4491 (NO_DBX_BNSYM_ENSYM): Remove.
4492 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4493 (STACK_CHECK_STATIC_BUILTIN): Remove.
4494 Test USE_GLD instead of TARGET_GNU_LD.
4495 * config/i386/sol2-10.h: Rename to ...
4496 * config/i386/sol2-bi.h .. this.
4497 (SUBTARGET_EXTRA_SPECS): Redefine.
4498 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4499 (MULTILIB_DEFAULTS): Remove.
4500 (DEFAULT_ARCH32_P): Define.
4501 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4502 (ARCH64_SUBDIR): Define.
4503 Test USE_GLD instead of TARGET_GNU_LD.
4504 (I386_EMULATION): Rename to ...
4505 (ARCH32_EMULATION): ... this.
4506 (X86_64_EMULATION): Rename to ...
4507 (ARCH64_EMULATION): ... this.
4508 (TARGET_LD_EMULATION): Remove.
4509 (LINK_ARCH_SPEC): Remove.
4510 * config/i386/sol2-gas.h: Remove.
4511 * config/i386/t-sol2-10: Rename to ...
4512 * config/i386/t-sol2-64: ... this.
4513 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4514 (AS_SPARC64_FLAG): Define.
4515 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4516 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4517 depending on TARGET_CPU_DEFAULT.
4518 (CPP_CPU_SPEC): Redefine.
4519 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4520 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4521 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4522 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4523 ASM_ARCH_DEFAULT_SPEC): Redefine.
4524 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4525 LINK_ARCH_DEFAULT_SPEC.
4526 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4527 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4528 (ARCH64_SUBDIR): Define.
4529 (LINK_ARCH64_SPEC): Redefine.
4530 (CC1_SPEC): Redefine.
4531 (OPTION_DEFAULT_SPECS): Redefine.
4532 (MULTILIB_DEFAULTS): Define.
4533 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4534 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4535 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4536 (NO_DBX_BNSYM_ENSYM): Remove.
4537 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4538 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4539 (TARGET_ASM_NAMED_SECTION): Likewise.
4540 (STACK_CHECK_STATIC_BUILTIN): Remove.
4541 * config/sparc/sol2-bi.h: Remove.
4542 * config/sparc/sol2-gas-bi.h: Remove.
4543 * config/sparc/sol2-gas.h: Remove.
4544 * config/sparc/sol2-gld-bi.h: Remove.
4545 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4546 common parts ...
4547 (*-*-solaris2*): ... here.
4548
4b583c43 45492011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 4550
4b583c43 4551 PR other/43564
637c11bd
UB
4552 * ipa-inline.c (can_inline_edge_p): Check
4553 !DECL_DISREGARD_INLINE_LIMITS.
4554
3bb556ad 45552011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 4556
3bb556ad
CB
4557 PR middle-end/49139
4558 * cgraphunit.c (process_function_and_variable_attributes): warn when
4559 always_inline functions that are not inline.
637c11bd
UB
4560 * ipa-inline-transform.c (inline_transform): Always call
4561 optimize_inline.
4562 * tree-inline.c (tree_inlinable_function_p): Use error instead
4563 of sorry.
3bb556ad 4564 (expand_call_inline): Likewise.
637c11bd 4565
f1ee724c
JJ
45662011-06-21 Jakub Jelinek <jakub@redhat.com>
4567
4568 * Makefile.in (dg_target_exps): Set.
4569 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4570 instead of 7, try to divide it more evenly.
4571
45722011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 4573
931050d0 4574 PR target/49089
97ef5ae6
CF
4575 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4576 (avx256_split_unaligned_store): New definition.
4577 (ix86_option_override_internal): Enable avx256 unaligned load/store
4578 splitting only when avx256_split_unaligned_load/store is set.
4579
998c75b6
BS
45802011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4581
4582 * regrename.c (scan_rtx_reg): Handle the case where we write to an
4583 open chain in a smaller mode without failing the entire block.
4584
83a8cbda
L
45852011-06-20 H.J. Lu <hongjiu.lu@intel.com>
4586
4587 PR middle-end/47725
4588 * combine.c (cant_combine_insn_p): Don't check zero/sign
4589 extended hard registers.
4590
3a769784
AM
45912011-06-21 Alan Modra <amodra@gmail.com>
4592
4593 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4594 CONST high part large-toc address.
4595 (rs6000_tls_referenced_p): Make static.
4596 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4597
d1e32c4a
L
45982011-06-20 H.J. Lu <hongjiu.lu@intel.com>
4599
4600 PR middle-end/47725
4601 * combine.c (cant_combine_insn_p): Check zero/sign extended
4602 hard registers.
4603
c2954af9
RR
46042011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4605
4606 PR target/49385
4607 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4608 one of the operands is a register.
4609
a95015b6
KT
46102011-06-20 Kai Tietz <ktietz@redhat.com>
4611
637c11bd
UB
4612 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4613 operations in combination with binary and.
a95015b6 4614
49a30d00
BS
46152011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4616
4617 * regrename.c (do_replace): Don't update notes.
4618
3bae1d98
AM
46192011-06-20 Alan Modra <amodra@gmail.com>
4620
4621 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4622 of toc-relative address in CONST.
4623 (rs6000_delegitimize_address): Recognize changed address.
4624 (rs6000_legitimize_reload_address): Likewise.
4625 (rs6000_emit_move): Don't force these constants to memory.
4626 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4627 toc-relative address in CONST.
4628 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4629 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4630
10937b0c
L
46312011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4632
637c11bd 4633 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
4634 (count_trailing_zeros): Likewise.
4635
0c587260
L
46362011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4637
4638 PR other/49325
4639 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4640 .init_array can be used with .ctors on targets.
4641 * configure: Regenerated.
4642
c020c92b
EB
46432011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4644
4645 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4646 if the element type is volatile.
4647
cd35bcf7
JH
46482011-06-18 Jan Hubicka <jh@suse.cz>
4649
4650 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4651 extra name aliases.
4652 (lto_symtab_resolve_can_prevail_p): Likewise.
4653 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4654 * cgraphbuild.c (record_reference): Remove extra body alias code.
4655 (mark_load): Likewise.
4656 (mark_store): Likewise.
4657 * cgraph.h (varpool_node): Remove extra_name filed;
4658 add alias_of and extraname_alias.
4659 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4660 (varpool_alias_aliased_node): New inline function.
4661 (varpool_variable_node): New function.
4662 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4663 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4664 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4665 (input_varpool_node): Likewise.
4666 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4667 (varpool_externally_visible_p): Remove extra body alias code.
4668 (function_and_variable_visibility): Likewise.
4669 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4670 (ipa_pta_execute): Use it.
4671 * varpool.c (varpool_remove_node): Remove extra name alias code.
4672 (varpool_mark_needed_node): Likewise.
4673 (varpool_analyze_pending_decls): Analyze aliases.
4674 (assemble_aliases): New functoin.
4675 (varpool_assemble_decl): Use it.
4676 (varpool_create_variable_alias): New function.
4677 (varpool_extra_name_alias): Rewrite.
4678 (varpool_for_node_and_aliases): New function.
4679
c96b4102
JJ
46802011-06-18 Jakub Jelinek <jakub@redhat.com>
4681
4682 PR target/49411
4683 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
4684 last_arg_constant and last argument doesn't match its predicate,
4685 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
4686 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
4687 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
4688 spelling of error message.
4689 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
4690 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
4691 const_0_to_255_operand instead of const_int_operand.
4692
4693 Revert:
4694 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
4695
4696 * config/i386/sse.md (blendbits): Remove mode attribute.
4697 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
4698 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
4699 Check integer value of operand 3 in insn constraint.
4700
9a2091cd
HPN
47012011-06-17 Hans-Peter Nilsson <hp@axis.com>
4702
4703 PR rtl-optimization/48542
4704 * reload.c (find_equiv_reg): Stop looking when finding a
4705 setjmp-type call.
4706 * reload1.c (reload_as_needed): Invalidate all reload
4707 registers when crossing a setjmp-type call.
4708
361b51c0
JL
47092011-06-16 Jeff Law <law@redhat.com>
4710
4711 * tree-ssa-threadupdate.c (struct redirection_data): New field
4712 intermediate_edge.
4713 (THREAD_TARGET2): Define.
637c11bd 4714 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
4715 (lookup_redirection_data): Drop useless argument. Extract the
4716 outgoing_edge and intermediate edge from E. Callers updated.
4717 (copy_phi_args, update_destination_phis): New functions.
4718 (fix_duplicate_block_edges): Likewise.
4719 (create_edge_and_update_destination_phis): Duplicate all the edges
4720 hung off e->aux. Use copy_phi_args.
4721 (create_duplicates): Use fix_duplicate_block_edges.
4722 (fixup_template_block): Likewise.
4723 (redirect_edges): If necessary, redirect the joiner block's incoming
4724 edge to the duplicate of the joiner block.
4725 (thread_block): Don't muck up loops when threading through a joiner
4726 block.
637c11bd 4727 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
4728 (mark_threaded_blocks, register_jump_thread): Likewise.
4729 * tree-flow.h (register_jump_thread): Add new argument. Callers
4730 updated.
4731 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
4732 (thread_across_edge): Handle threading through a joiner block.
637c11bd 4733
ee460e75
MJ
47342011-06-16 Martin Jambor <mjambor@suse.cz>
4735
4736 PR tree-optimization/49343
4737 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
4738 calculate offset, provide 2nd operand for the new COMPONENT_REF.
4739
a285ba2e
IS
47402011-06-16 Iain Sandoe <iains@gcc.gnu.org>
4741
4742 * config/darwin-protos.h (machopic_select_rtx_section): Move to
4743 inside RTX_CODE ifdef.
4744
0703f020
TV
47452011-06-16 Tom de Vries <tom@codesourcery.com>
4746
4747 PR target/45098
637c11bd
UB
4748 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
4749 Disallow NULL pointer for pointer arithmetic.
0703f020 4750
900c07da
RR
47512011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4752
4753 PR target/49398
4754 Revert.
4755 2011-06-10 Wei Guozhi <carrot@google.com>
4756
4757 PR target/45335
4758 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
4759 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
4760 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
4761 related peephole2.
4762 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
4763 related peephole2.
4764 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
4765 (arm_legitimate_ldrd_p): New prototype.
4766 (arm_output_ldrd): New prototype.
4767 * config/arm/arm.c (arm_check_ldrd_operands): New function.
4768 (arm_legitimate_ldrd_p): New function.
4769 (arm_output_ldrd): New function.
4770
c020c92b 47712011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
4772
4773 PR middle-end/46500
4774 * doc/tm.texi.in: Update Copyright date.
4775 * doc/tm.texi: Regenerate.
4776 * targhooks.c (default_setup_incoming_varargs): Replace
4777 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4778 (default_pretend_outgoing_varargs_named): Likewise.
4779 (hook_pass_by_reference_must_pass_in_stack): Likewise.
4780 (hook_callee_copies_named): Likewise.
4781 (default_function_arg_advance): Likewise.
4782 (default_function_arg): Likewise.
4783 (default_function_incoming_arg): Likewise.
4784 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4785 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4786 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4787 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4788 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4789 * targhooks.h (default_setup_incoming_varargs): Likewise.
4790 (default_pretend_outgoing_varargs_named): Likewise.
4791 (hook_pass_by_reference_must_pass_in_stack): Likewise.
4792 (hook_callee_copies_named): Likewise.
4793 (default_function_arg_advance): Likewise.
4794 (default_function_arg): Likewise.
4795 (default_function_incoming_arg): Likewise.
4796 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
4797 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
4798 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
4799 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
4800 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
4801 * target.def (pass_by_reference): Likewise.
4802 (setup_incoming_varargs, strict_argument_naming): Likewise.
4803 (pretend_outgoing_varargs_named, callee_copies): Likewise.
4804 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
4805 (function_incoming_arg): Likewise.
4806 * target.h: Don't include "tm.h" .
4807 (cumulative_args_t): New typedef.
4808 [GCC_TM_H] (get_cumulative_args): New static inline function.
4809 [GCC_TM_H] (pack_cumulative_args): Likewise.
4810 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
4811 argument type with cumulative_args_t.
4812 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
4813 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
4814 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
4815 (frv_arg_partial_bytes, frv_function_arg): Likewise.
4816 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
4817 (frv_function_arg_1): Likewise.
4818 * config/s390/s390.c (s390_pass_by_reference): Likewise.
4819 (s390_function_arg_advance, s390_function_arg): Likewise.
4820 * config/m32c/m32c.c (m32c_function_arg): Likewise.
4821 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
4822 (m32c_strict_argument_naming): Likewise.
4823 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
4824 (spu_function_arg_advance): Likewise.
4825 (spu_setup_incoming_varargs): Likewise. Make static.
4826 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
4827 Remove prototype.
4828 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
4829 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4830 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
4831 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
4832 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
4833 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
4834 (mep_pass_by_reference, mep_function_arg): Likewise.
4835 (mep_function_arg_advance): Likewise.
4836 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
4837 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
4838 (m32r_function_arg, m32r_function_arg_advance): Likewise.
4839 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
4840 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
4841 (ix86_function_arg, ix86_pass_by_reference): Likewise.
4842 (ix86_setup_incoming_varargs): Likewise.
4843 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
4844 (sh_strict_argument_naming): Likewise.
4845 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
4846 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
4847 (sh_function_arg_advance, sh_function_arg): Likewise.
4848 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
4849 (pdp11_function_arg_advance): Likewise.
4850 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
4851 Likewise.
4852 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
4853 * config/avr/avr.c (avr_function_arg): Likewise.
4854 (avr_function_arg_advance): Likewise.
4855 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
4856 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
4857 (xtensa_function_arg_1): Likewise.
637c11bd
UB
4858 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
4859 Likewise.
d5cc9181
JR
4860 (xstormy16_function_arg): Likewise.
4861 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
4862 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
4863 (fr30_function_arg_advance): Likewise.
4864 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4865 (lm32_function_arg, lm32_function_arg_advance): Likewise.
4866 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
4867 (moxie_function_arg, moxie_function_arg_advance): Likewise.
4868 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
4869 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
4870 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
4871 (cris_function_arg, cris_function_incoming_arg): Likewise.
4872 (cris_function_arg_advance, cris_function_arg_1): Likewise.
4873 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
4874 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
4875 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
4876 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
4877 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
4878 (mn10300_arg_partial_bytes): Likewise.
4879 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
4880 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
4881 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
4882 (ia64_function_arg_1): Likewise.
4883 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
4884 (m68k_function_arg): Likewise.
4885 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
4886 (rs6000_function_arg, setup_incoming_varargs): Likewise.
4887 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
4888 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
4889 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
4890 (picochip_arg_advance): Likewise.
4891 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
4892 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
4893 (mcore_function_arg_advance): Likewise.
4894 * config/score/score.c (score_pass_by_reference): Likewise.
4895 (score_function_arg_advance): Likewise.
4896 (score_arg_partial_bytes): Likewise. Make static.
4897 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
4898 * config/arm/arm.c (arm_arg_partial_bytes): Replace
4899 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4900 (arm_function_arg, arm_function_arg_advance): Likewise.
4901 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
4902 * config/pa/pa.c (pa_pass_by_reference): Likewise.
4903 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
4904 (pa_function_arg): Likewise.
4905 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
4906 (mips_function_arg, mips_function_arg_advance): Likewise.
4907 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
4908 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
4909 * config/vax/vax.c (vax_function_arg): Likewise.
4910 (vax_function_arg_advance): Likewise.
4911 * config/h8300/h8300.c (h8300_function_arg): Likewise.
4912 (h8300_function_arg_advance): Likewise.
4913 * config/v850/v850.c (v850_pass_by_reference): Likewise.
4914 (v850_strict_argument_naming, v850_function_arg): Likewise.
4915 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
4916 (v850_setup_incoming_varargs): Likewise.
4917 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
4918 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
4919 (mmix_function_arg, mmix_pass_by_reference): Likewise.
4920 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
4921 with const void *.
4922 * config/bfin/bfin.c (setup_incoming_varargs): Replace
4923 CUMULATIVE_ARGS* argument type with cumulative_args_t.
4924 (bfin_function_arg_advance, bfin_function_arg): Likewise.
4925 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
4926 * calls.c (emit_call_1): Change type of args_so_far to
4927 cumulative_args_t. Changed all callers.
4928 (initialize_argument_information): Likewise.
4929 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
4930 * dse.c (get_call_args): Likewise.
4931 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
4932 * function.c (pass_by_reference, reference_callee_copied): Likewise.
4933 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
4934 New member args_so_far_v. Changed all users.
4935 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
4936 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4937 * config/mips/mips.c (mips_output_args_xfer): Likewise.
4938 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
4939 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
4940 * config/microblaze/microblaze.c (microblaze_expand_prologue):
4941 Likewise.
d5cc9181
JR
4942 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
4943 m32r_pass_by_reference.
4944
51312233
IR
49452011-06-16 Ira Rosen <ira.rosen@linaro.org>
4946
4947 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
4948 argument to be a VEC of statements.
637c11bd
UB
4949 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
4950 assert that pattern statements have to have their vector type set.
51312233
IR
4951 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
4952 Change the first argument to be a VEC of statements. Update
4953 documentation.
4954 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
4955 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
4956 (vect_recog_widen_mult_pattern): Change the first argument to be a
4957 VEC of statements. Update documentation. Check that the constant is
4958 INTEGER_CST. Support multiplication by a constant that fits an
4959 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
4960 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
4961 call. Handle additional pattern statements if necessary.
4962
fd4df33d
NC
49632011-06-16 Nick Clifton <nickc@redhat.com>
4964
4965 PR target/49427
4966 * config.gcc: Set cpu_type to v850 for any V850 architecture.
4967 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
4968 md_file, extra_modes, out_file and extra_options are these are all
4969 deduced from cpu_type.
4970
fbd05da0
GJL
49712011-06-16 Georg-Johann Lay <avr@gjlay.de>
4972
4973 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
4974 truncation mask to 63.
4975
0ad8bb3b
GJL
49762011-06-16 Georg-Johann Lay <avr@gjlay.de>
4977
4978 PR target/49313
4979 PR target/29524
4980 * longlong.h: Add AVR support:
4981 (count_leading_zeros): New macro.
4982 (count_trailing_zeros): New macro.
4983 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
4984 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
4985 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
4986 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
4987 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
4988 (LIB2FUNCS_EXCLUDE): Add _clz.
4989 * config/avr/libgcc.S (XCALL): Move up in file.
4990 (XJMP): New C Macro.
4991 (DEFUN): New asm macro.
4992 (ENDF): New asm macro.
4993 (__ffssi2): New function.
4994 (__ffshi2): New function.
4995 (__loop_ffsqi2): New function.
4996 (__ctzsi2): New function.
4997 (__ctzhi2): New function.
4998 (__clzdi2): New function.
4999 (__clzsi2): New function.
5000 (__clzhi2): New function.
5001 (__paritydi2): New function.
5002 (__paritysi2): New function.
5003 (__parityhi2): New function.
59c1e10b 5004 (__parityqi2): New function.
0ad8bb3b
GJL
5005 (__popcounthi2): New function.
5006 (__popcountsi2): New function.
5007 (__popcountdi2): New function.
5008 (__popcountqi2): New function.
5009 (__bswapsi2): New function.
5010 (__bswapdi2): New function.
5011 (__ashldi3): New function.
5012 (__ashrdi3): New function.
5013 (__lshrdi3): New function.
5014 Fix suspicous lines.
5015
12430896
RG
50162011-06-16 Richard Guenther <rguenther@suse.de>
5017
5018 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5019 the same as x != 0.
637c11bd
UB
5020 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5021 to (bool) X & 1.
12430896
RG
5022 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5023 equality compares against zero for the lower bit.
5024
09302442
JJ
50252011-06-16 Jakub Jelinek <jakub@redhat.com>
5026
5027 PR tree-optimization/49419
5028 * tree-vrp.c (execute_vrp): Call init_range_assertions
5029 before estimate_numbers_of_iterations, call
5030 free_number_of_iterations_estimates before calling
5031 remove_range_assertions.
5032
81c41166
RE
50332011-06-16 Revital Eres <revital.eres@linaro.org>
5034
5035 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5036 (struct partial_schedule): Add rows_length field.
5037 (verify_partial_schedule): Check rows_length.
5038 (ps_insert_empty_row): Handle rows_length.
5039 (create_partial_schedule): Likewise.
5040 (free_partial_schedule): Likewise.
5041 (reset_partial_schedule): Likewise.
5042 (create_ps_insn): Remove rest_count argument.
5043 (remove_node_from_ps): Update rows_length.
5044 (add_node_to_ps): Update rows_length and call create_ps_insn
5045 without passing row_rest_count.
5046 (rotate_partial_schedule): Update rows_length.
5047
d24dc7b3
RE
50482011-06-16 Revital Eres <revital.eres@linaro.org>
5049
5050 * ddg.c (add_intra_loop_mem_dep): New function.
5051 (build_intra_loop_deps): Call it.
5052
361b51c0 50532011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
5054
5055 * df-problems.c (df_lr_local_compute): Manually CSE
5056 PIC_OFFSET_TABLE_REGNUM.
5057 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5058 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5059
85ce9375
JH
50602011-06-13 Jan Hubicka <jh@suse.cz>
5061
5062 * cgraphunit.c (handle_alias_pairs): New function.
5063 (cgraph_finalize_compilation_unit): Use it.
5064 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5065 as externally visible.
5066
a577c405
RG
50672011-06-15 Richard Guenther <rguenther@suse.de>
5068
5069 * expr.c (expand_expr_real_2): Reduce all integral types to
5070 bitfield precision.
5071 (expand_expr_real_1): Likewise.
5072
93536c97
MJ
50732011-06-15 Martin Jambor <mjambor@suse.cz>
5074
5075 PR tree-optimization/48613
5076 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5077 ipa_node_params_vector is NULL.
fd4df33d 5078
ba45cfc4
JJ
50792011-06-15 Jakub Jelinek <jakub@redhat.com>
5080
5081 PR debug/49382
5082 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
5083 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5084 location in the list, even if it is modified before first real insn.
ba45cfc4 5085 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 5086 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 5087
6fc5966f
AM
50882011-06-15 Alexander Monakov <amonakov@ispras.ru>
5089
5090 PR target/49349
5091 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5092 (fence_to_rewind). Use it to notice when bookkeeping will be placed
5093 above a fence. Update comments.
5094 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5095 placed just above it. Do not allow NULL place_to_insert.
5096
9d5e7640
IR
50972011-06-15 Ira Rosen <ira.rosen@linaro.org>
5098
5099 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5100 (slpeel_tree_peel_loop_to_edge): Don't call
5101 remove_dead_stmts_from_loop.
5102 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5103 remove irrelevant pattern statements. For irrelevant statements
5104 check if it is the last statement of a detected pattern, use
5105 corresponding pattern statement instead.
5106 (destroy_loop_vec_info): No need to remove pattern statements,
5107 only free stmt_vec_info.
5108 (vect_transform_loop): For irrelevant statements check if it is
5109 the last statement of a detected pattern, use corresponding
5110 pattern statement instead.
5111 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5112 pattern statements. Set basic block for the new statement.
5113 (vect_pattern_recog): Update documentation.
5114 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5115 operands of pattern statements.
5116 (vectorizable_call): Fix printing. In case of a pattern statement
5117 use the lhs of the original statement when creating a dummy
5118 statement to replace the original call.
5119 (vect_analyze_stmt): For irrelevant statements check if it is
5120 the last statement of a detected pattern, use corresponding
5121 pattern statement instead.
5122 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5123 statements use gsi of the original statement.
5124
677f3fa8
JM
51252011-06-14 Joseph Myers <joseph@codesourcery.com>
5126
5127 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5128 common/common-target-def.h.
5129 * target.def (default_target_flags, handle_option,
5130 supports_split_stack, optimization_table, init_struct,
5131 except_unwind_info, unwind_tables_default, have_named_sections):
5132 Move to common/common-target.def.
5133 * target.h (enum opt_levels, struct default_options): Move to
5134 common/common-target.h.
5135 * targhooks.c (default_except_unwind_info,
5136 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5137 default_target_handle_option, empty_optimization_table): Move to
5138 common/common-targhooks.c.
5139 * targhooks.h (default_except_unwind_info,
5140 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5141 default_target_handle_option, empty_optimization_table): Move to
5142 common/common-targhooks.h.
5143 * common/common-target-def.h: Include common/common-targhooks.h.
5144 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5145 defined.
5146 * common/common-target.def (handle_option, option_init_struct,
5147 option_optimization_table, default_target_flags,
5148 except_unwind_info, supports_split_stack, unwind_tables_default,
5149 have_named_sections): Move from target.def.
5150 (HOOK_PREFIX): Undefine at end of file.
5151 * common/common-target.h: Include input.h.
5152 (enum opt_levels, struct default_options): Move from target.h.
5153 * common/common-targhooks.c, common/common-targhooks.h: New.
5154 * config.gcc (target_has_targetm_common): Default to yes.
5155 (moxie*): Set target_has_targetm_common=no.
5156 (hppa*-*-*): Don't set target_has_targetm_common=yes.
5157 * doc/tm.texi: Regenerate.
5158 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5159 (C_TARGET_DEF_H): Add common/common-targhooks.h.
5160 (GCC_OBJS): Remove vec.o.
5161 (OBJS): Remove hooks.o and vec.o.
5162 (OBJS-libcommon-target): Add vec.o, hooks.o and
5163 common/common-targhooks.o.
5164 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5165 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5166 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5167 cfglayout.o, $(out_object_file), $(common_out_object_file)):
5168 Update dependencies.
5169 (common/common-targhooks.o): New.
637c11bd 5170 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
5171 * common/config/pa/pa-common.c: Include more headers. Take
5172 copyright dates from pa.c.
5173 (pa_option_optimization_table, pa_handle_option,
5174 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5175 TARGET_HANDLE_OPTION): Move from pa.c.
5176 * common/config/alpha/alpha-common.c,
5177 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5178 common/config/bfin/bfin-common.c,
5179 common/config/cris/cris-common.c,
5180 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5181 common/config/h8300/h8300-common.c,
5182 common/config/i386/i386-common.c,
5183 common/config/ia64/ia64-common.c,
5184 common/config/iq2000/iq2000-common.c,
5185 common/config/lm32/lm32-common.c,
5186 common/config/m32c/m32c-common.c,
5187 common/config/m32r/m32r-common.c,
5188 common/config/m68k/m68k-common.c,
5189 common/config/mcore/mcore-common.c,
5190 common/config/mep/mep-common.c,
5191 common/config/microblaze/microblaze-common.c,
5192 common/config/mips/mips-common.c,
5193 common/config/mmix/mmix-common.c,
5194 common/config/mn10300/mn10300-common.c,
5195 common/config/pdp11/pdp11-common.c,
5196 common/config/picochip/picochip-common.c,
5197 common/config/rs6000/rs6000-common.c,
5198 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5199 common/config/score/score-common.c, common/config/sh/sh-common.c,
5200 common/config/sparc/sparc-common.c,
5201 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5202 common/config/vax/vax-common.c,
5203 common/config/xstormy16/xstormy16-common.c,
5204 common/config/xtensa/xtensa-common.c: New.
5205 * config/alpha/alpha.c: Include common/common-target.h.
5206 (alpha_option_optimization_table, alpha_handle_option,
5207 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5208 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5209 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5210 * config/arm/arm.c (arm_option_optimization_table,
5211 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5212 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5213 arm-common.c.
5214 * config/avr/avr.c (avr_option_optimization_table,
5215 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5216 to avr-common.c.
5217 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5218 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5219 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5220 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5221 * config/cris/cris.c (cris_option_optimization_table,
5222 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5223 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5224 cris-common.c.
5225 * config/fr30/fr30.c (fr30_option_optimization_table,
5226 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5227 to fr30-common.c.
5228 * config/frv/frv.c (frv_option_optimization_table,
5229 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5230 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5231 * config/h8300/h8300.c (h8300_option_optimization_table,
5232 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5233 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5234 * config/i386/i386-protos.h (ix86_handle_option): Declare.
5235 * config/i386/i386.c: Include common/common-target.h.
5236 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5237 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5238 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5239 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5240 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5241 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5242 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5243 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5244 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5245 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5246 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5247 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5248 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5249 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5250 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5251 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5252 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5253 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5254 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5255 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5256 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5257 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5258 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5259 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5260 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5261 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5262 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5263 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5264 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5265 ix86_option_optimization_table, ix86_option_init_struct,
5266 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5267 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5268 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5269 i386-common.c.
5270 * config/i386/t-i386 (i386.o): Update dependencies.
5271 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5272 * config/ia64/ia64.c (ia64_option_optimization_table,
5273 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5274 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5275 ia64_handle_option): Move to ia64-common.c.
5276 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5277 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5278 * config/lm32/lm32.c (lm32_option_optimization_table,
5279 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5280 to lm32-common.c.
5281 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5282 m32c-common.c.
5283 * config/m32r/m32r.c (m32r_option_optimization_table,
5284 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5285 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5286 m32r_handle_option): Move to m32r-common.c.
5287 (m32r_memory_move_cost): Remove comment referring to
5288 TARGET_HANDLE_OPTION.
5289 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5290 Move to m68k-common.c.
5291 * config/mcore/mcore.c (mcore_option_optimization_table,
5292 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5293 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5294 * config/mep/mep.c (mep_option_optimization_table,
5295 mep_handle_option, TARGET_HANDLE_OPTION,
5296 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5297 Move to mep-common.c.
5298 * config/microblaze/microblaze.c
5299 (microblaze_option_optimization_table,
5300 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5301 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5302 * config/mips/mips.c (mips_handle_option,
5303 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5304 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5305 mips-common.c.
5306 * config/mmix/mmix.c (mmix_option_optimization_table,
5307 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5308 Move to mmix-common.c.
5309 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5310 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5311 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5312 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5313 * config/pa/pa.c: Include common/common-target.h.
5314 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5315 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5316 pa_handle_option): Move to pa-common.c.
5317 (pa_option_override): Use targetm_common.except_unwind_info.
5318 (pa_asm_output_mi_thunk, pa_function_section): Use
5319 targetm_common.have_named_sections.
5320 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5321 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5322 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5323 pdp11_handle_option, pdp11_option_init_struct): Move to
5324 pdp11-common.c.
5325 * config/picochip/picochip.c (picochip_option_optimization_table,
5326 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5327 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5328 * config/rs6000/rs6000.c: Include common/common-target.h.
5329 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5330 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5331 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5332 rs6000_handle_option): Move to rs6000-common.c.
5333 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5334 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5335 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5336 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5337 * config/s390/s390.c (processor_flags_table,
5338 s390_option_optimization_table, s390_option_init_struct,
5339 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5340 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5341 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5342 * config/s390/s390.h (processor_flags_table): Declare.
5343 * config/score/score.c (score_option_optimization_table,
5344 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5345 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5346 score_handle_option): Move to score-common.c.
5347 * config/sh/sh.c (sh_option_optimization_table,
5348 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5349 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5350 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5351 * config/sparc/sparc.c: Include common/common-target.h.
5352 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5353 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5354 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5355 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5356 spu_option_init_struct): Move to spu-common.c.
5357 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5358 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5359 * config/v850/v850.c (small_memory_physical_max,
5360 v850_handle_memory_optionn v850_handle_option,
5361 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5362 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5363 v850-common.c.
637c11bd 5364 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
5365 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5366 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5367 Move to xtensa-common.c.
5368 * cfglayout.c: Include common/common-target.h.
5369 (fixup_reorder_chain): Use targetm_common.have_named_sections.
5370 * cfgrtl.c: Include common/common-target.h.
5371 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
5372 targetm_common.have_named_sections.
5373 * dbxout.c: Include common/common-target.h.
5374 (dbxout_function_end): Use targetm_common.have_named_sections.
5375 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
5376 targetm_common.except_unwind_info.
5377 * dwarf2out.c: Include common/common-target.h.
5378 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
5379 dwarf2out_begin_prologue, dwarf2out_frame_init,
5380 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
5381 targetm_common.except_unwind_info.
5382 * except.c: Include common/common-target.h.
5383 (init_eh, finish_eh_generation,
5384 output_one_function_exception_table): Use
5385 targetm_common.except_unwind_info.
637c11bd 5386 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
5387 * explow.c: Include common/common-target.h.
5388 * expr.c: Include common/common-target.h.
637c11bd 5389 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
5390 * function.c: Include common/common-target.h.
5391 (expand_function_end): Use targetm_common.except_unwind_info.
5392 * haifa-sched.c: Include common/common-target.h.
637c11bd 5393 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
5394 * lto-opts.c: Include common/common-target.h instead of target.h.
5395 (lto_reissue_options): Use targetm_common.handle_option.
5396 * opts.c: Include common/common-target.h.
5397 (target_handle_option): Use targetm_common.handle_option.
5398 (init_options_struct): Update comment referring to
5399 targetm.target_option.optimization. Use
5400 targetm_common.default_target_flags,
5401 targetm_common.unwind_tables_default and
5402 targetm_common.option_init_struct.
5403 (default_options_optimization): Use
5404 targetm_common.option_optimization_table.
5405 (finish_options): Use targetm_common.except_unwind_info,
5406 targetm_common.unwind_tables_default,
5407 targetm_common.have_named_sections and
5408 targetm_common.supports_split_stack.
5409 * toplev.c: Include common/common-target.h.
5410 (process_options): Use targetm_common.have_named_sections.
5411 * tree-tailcall.c: Include common/common-target.h.
637c11bd 5412 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 5413 * tree.c: Include common/common-target.h.
637c11bd 5414 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
5415 * varasm.c: Include common/common-target.h.
5416 (resolve_unique_section, hot_function_section,
5417 default_function_section): Use targetm_common.have_named_sections.
5418
d26c7090
ER
54192011-06-14 Easwaran Raman <eraman@google.com>
5420
5421 PR rtl-optimization/44194
5422 * dse.c: Include tree-flow.h
5423 (insn_info): Add new field non_frame_wild_read.
5424 (group_info): Add new fields escaped_n and escaped_p.
5425 (kill_on_calls): New variable.
5426 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5427 (dse_step0): Initialize kill_on_calls.
5428 (can_escape): New function.
5429 (set_usage_bits): Add additional parameter; record information
5430 about escaped locations.
637c11bd 5431 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
5432 (dse_step2_nospill): Set kill_on_calls based on
5433 group->escaped_n and group->escaped_n.
5434 (add_wild_read): Refactor into...
5435 (reset_active_stores): ... New function, and
5436 (free_read_records): ... New function.
5437 (add_non_frame_wild_read): New function.
5438 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 5439 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
5440 (dse_step5_nospill): Call scan_reads_nospill for instructions
5441 marked as non_frame_wild_read.
637c11bd 5442 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 5443
c49a6962
JM
54442011-06-14 Joseph Myers <joseph@codesourcery.com>
5445
5446 * common/common-target-def.h, common/common-target.def,
5447 common/common-target.h, common/config/default-common.c,
5448 common/config/pa/pa-common.c: New files.
5449 * Makefile.in (common_out_file, common_out_object_file,
5450 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5451 (OBJS-libcommon-target): Include $(common_out_object_file).
5452 (prefix.o): Update dependencies.
5453 ($(common_out_object_file), common/common-target-hooks-def.h,
5454 s-common-target-hooks-def-h): New.
5455 (s-tm-texi): Also check timestamp on common-target.def.
5456 (build/genhooks.o): Update dependencies.
5457 * config.gcc (common_out_file, target_has_targetm_common): Define.
5458 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5459 TARGET_ALWAYS_STRIP_DOTDOT.
5460 * configure.ac (common_out_object_file): Define.
5461 (common_out_file, common_out_object_file): Substitute.
5462 (common): Create directory.
5463 * configure: Regenerate.
5464 * doc/tm.texi.in (targetm_common): Document.
5465 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5466 * doc/tm.texi: Regenerate.
5467 * genhooks.c (hook_array): Also include common/common-target.def.
5468 * prefix.c (tm.h): Don't include.
5469 (common/common-target.h): Include.
5470 (ALWAYS_STRIP_DOTDOT): Don't define.
5471 (update_path): Use targetm_common.always_strip_dotdot instead of
5472 ALWAYS_STRIP_DOTDOT.
5473 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5474
22c5fa5f
DL
54752011-06-14 David Li <davidxl@google.com>
5476
5477 * passes.c (execute_function_todo): Remove TODO_dump_func.
5478 (execute_one_pass): Remove TODO_dump_func.
5479 (execute_function_dump): New function.
5480 * tree-vrp.c: Remove TODO_dump_func.
5481 * regrename.c: Remove TODO_dump_func.
5482 * fwprop.c: Remove TODO_dump_func.
5483 * tree-into-ssa.c: Remove TODO_dump_func.
5484 * tree-complex.c: Remove TODO_dump_func.
5485 * tracer.c: Remove TODO_dump_func.
5486 * tree-loop-distribution.c: Remove TODO_dump_func.
5487 * postreload-gcse.c: Remove TODO_dump_func.
5488 * postreload.c: Remove TODO_dump_func.
5489 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5490 * tree-tailcall.c: Remove TODO_dump_func.
5491 * ipa-cp.c: Remove TODO_dump_func.
5492 * final.c: Remove TODO_dump_func.
5493 * tree-emutls.c: Remove TODO_dump_func.
5494 * omp-low.c: Remove TODO_dump_func.
5495 * tree-ssa-dse.c: Remove TODO_dump_func.
5496 * tree-ssa-uncprop.c: Remove TODO_dump_func.
5497 * auto-inc-dec.c: Remove TODO_dump_func.
5498 * reorg.c: Remove TODO_dump_func.
5499 * tree-ssa-copyrename.c: Remove TODO_dump_func.
5500 * tree-ssa-ccp.c: Remove TODO_dump_func.
5501 * compare-elim.c: Remove TODO_dump_func.
5502 * mode-switching.c: Remove TODO_dump_func.
5503 * modulo-sched.c: Remove TODO_dump_func.
5504 * tree-call-cdce.c: Remove TODO_dump_func.
5505 * cse.c: Remove TODO_dump_func.
5506 * web.c: Remove TODO_dump_func.
5507 * tree-stdarg.c: Remove TODO_dump_func.
5508 * lto-streamer-out.c: Remove TODO_dump_func.
5509 * tree-ssa-math-opts.c: Remove TODO_dump_func.
5510 * tree-ssa-dom.c: Remove TODO_dump_func.
5511 * tree-nrv.c: Remove TODO_dump_func.
5512 * loop-init.c: Remove TODO_dump_func.
5513 * gimple-low.c: Remove TODO_dump_func.
5514 * ipa-inline.c: Remove TODO_dump_func.
5515 * tree-ssa-sink.c: Remove TODO_dump_func.
5516 * jump.c: Remove TODO_dump_func.
5517 * ifcvt.c: Remove TODO_dump_func.
5518 * tree-ssa-loop.c: Remove TODO_dump_func.
5519 * recog.c: Remove TODO_dump_func.
5520 * dse.c: Remove TODO_dump_func.
5521 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5522 * matrix-reorg.c: Remove TODO_dump_func.
5523 * tree-eh.c: Remove TODO_dump_func.
5524 * regmove.c: Remove TODO_dump_func.
5525 * function.c: Remove TODO_dump_func.
5526 * tree-vectorizer.c: Remove TODO_dump_func.
5527 * ipa-split.c: Remove TODO_dump_func.
5528 * gcse.c: Remove TODO_dump_func.
5529 * tree-if-conv.c: Remove TODO_dump_func.
5530 * init-regs.c: Remove TODO_dump_func.
5531 * tree-ssa-phiopt.c: Remove TODO_dump_func.
5532 * implicit-zee.c: Remove TODO_dump_func.
5533 * lower-subreg.c: Remove TODO_dump_func.
5534 * bt-load.c: Remove TODO_dump_func.
5535 * tree-dfa.c: Remove TODO_dump_func.
5536 * except.c: Remove TODO_dump_func.
5537 * emit-rtl.c: Remove TODO_dump_func.
5538 * store-motion.c: Remove TODO_dump_func.
5539 * cfgexpand.c: Remove TODO_dump_func.
5540 * tree-cfgcleanup.c: Remove TODO_dump_func.
5541 * cfgcleanup.c: Remove TODO_dump_func.
5542 * tree-ssa-pre.c: Remove TODO_dump_func.
5543 * tree-sra.c: Remove TODO_dump_func.
5544 * tree-mudflap.c: Remove TODO_dump_func.
5545 * tree-ssa-copy.c: Remove TODO_dump_func.
5546 * cfglayout.c: Remove TODO_dump_func.
5547 * tree-ssa-forwprop.c: Remove TODO_dump_func.
5548 * tree-ssa-dce.c: Remove TODO_dump_func.
5549 * ira.c: Remove TODO_dump_func.
5550 * tree-ssa.c: Remove TODO_dump_func.
5551 * integrate.c: Remove TODO_dump_func.
5552 * tree-optimize.c: Remove TODO_dump_func.
5553 * tree-ssa-phiprop.c: Remove TODO_dump_func.
5554 * tree-object-size.c: Remove TODO_dump_func.
5555 * combine.c: Remove TODO_dump_func.
5556 * bb-reorder.c: Remove TODO_dump_func.
5557 * cprop.c: Remove TODO_dump_func.
5558 * var-tracking.c: Remove TODO_dump_func.
5559 * tree-profile.c: Remove TODO_dump_func.
5560 * tree-vect-generic.c: Remove TODO_dump_func.
5561 * reg-stack.c: Remove TODO_dump_func.
5562 * sched-rgn.c: Remove TODO_dump_func.
5563 * tree-ssa-structalias.c: Remove TODO_dump_func.
5564 * tree-switch-conversion.c: Remove TODO_dump_func.
5565 * tree-cfg.c: Remove TODO_dump_func.
5566 * tree-ssa-reassoc.c: Remove TODO_dump_func.
5567 * combine-stack-adj.c: Remove TODO_dump_func.
5568 * dce.c: Remove TODO_dump_func.
5569 * tree-ssanames.c: Remove TODO_dump_func.
5570 * regcprop.c: Remove TODO_dump_func.
5571
fa465762
L
55722011-06-14 H.J. Lu <hongjiu.lu@intel.com>
5573
5574 PR middle-end/47364
5575 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5576 and properly handle result not in Pmode.
5577
7d8d16c3
RM
55782011-06-14 Robert Millan <rmh@gnu.org>
5579
5580 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5581 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5582 `config/linux.h'.
5583
5584 * config/i386/kfreebsd-gnu64.h: New file.
5585 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5586 with `i386/kfreebsd-gnu64.h'.
5587
5588 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5589 (GNU_USER_LINK_EMULATION64): New macros.
5590 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5591 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5592 of hardcoding `elf_i386' and `elf_x86_64'.
5593
0ccef3d2
NC
55942011-06-14 Nick Clifton <nickc@redhat.com>
5595
5596 PR target/49403
5597 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5598
5599 PR target/49402
5600 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5601
8a76c4a0
JJ
56022011-06-14 Jakub Jelinek <jakub@redhat.com>
5603
1ace6185
JJ
5604 PR fortran/49103
5605 * tree.h (DECL_NONSHAREABLE): Define.
5606 (struct tree_decl_common): Change decl_common_unused to
5607 decl_nonshareable_flag.
5608 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5609 Ignore vars with DECL_NONSHAREABLE bit set.
5610 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5611 on stores to automatic aggregate vars.
5612
8a76c4a0
JJ
5613 PR rtl-optimization/49390
5614 Revert:
5615 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
5616
5617 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5618 MEM_ALIAS_SET.
5619
b4a9343c
ZD
56202011-06-14 Zdenek Dvorak <ook@ucw.cz>
5621 Tom de Vries <tom@codesourcery.com>
5622
5623 PR target/45098
5624 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5625 Document changed semantics.
5626 (max_stmt_executions, max_stmt_executions_int): Declare.
5627 * tree-data-ref.c (estimated_loop_iterations)
5628 (estimated_loop_iterations_int): Move functions...
5629 * tree-ssa-loop-niter.c (estimated_loop_iterations)
5630 (estimated_loop_iterations_int): here.
5631 (record_estimate): Change nb_iterations_upper_bound and
5632 nb_iterations_estimate semantics.
5633 (max_stmt_executions, max_stmt_executions_int): New function.
5634 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5635 (max_stmt_executions_tree): this.
5636 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5637 estimated_loop_iterations_tree.
5638 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5639 max_stmt_executions_int instead of estimated_loop_iterations_int.
5640 * predict.c (predict_loops): Idem.
5641 * tree-parloops.c (parallelize_loops): Idem.
5642 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5643 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5644 (init_omega_for_ddr_1): Idem.
5645 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5646 (loop_prefetch_arrays): Idem
5647 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5648 max_stmt_executions instead of estimated_loop_iterations.
5649 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5650 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5651 instead of nb_iterations_upper_bound.
5652
d2640c43
JH
56532011-06-13 Jan Hubicka <jh@suse.cz>
5654
5655 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5656
40873cdd
RH
56572011-06-14 Richard Henderson <rth@redhat.com>
5658
5659 PR debug/48459
5660 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5661 (based_loc_descr): Assert it's true.
5662 (compute_frame_pointer_to_fb_displacement): Set it, rather than
5663 aborting immediately.
5664
73e8cb24
SL
56652011-06-14 Sanjin Liu <scliu@faraday-tech.com>
5666 Mingfeng Wu <mingfeng@faraday-tech.com>
5667
5668 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5669
f835f0a7
JH
56702011-06-13 Jan Hubicka <jh@suse.cz>
5671
5672 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5673
ee6f1177
JH
56742011-06-13 Jan Hubicka <jh@suse.cz>
5675
5676 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
5677 similarly to DECL_COMDAT.
5678 * cgraphunit.c (cgraph_analyze_function): Likewise.
5679 * ipa.c (function_and_variable_visibility): Likewise.
5680
618abf9a
JH
56812011-06-13 Jan Hubicka <jh@suse.cz>
5682
5683 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
5684 BINFO_VIRTUALS when streaming for ltrans unit.
5685
a45fe02f
DE
56862011-06-13 David Edelsohn <dje.gcc@gmail.com>
5687
5688 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
5689 (movdi_internal64): Same.
5690
56912011-06-13 Edmar Wienskoski <edmar@freescale.com>
5692
e641e495 5693 PR target/44618
7d8d16c3
RM
5694 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
5695 a set of similar patterns, where the MATCH_OPERAND for the function
5696 argument is replaced with individual references to hardware registers.
a45fe02f
DE
5697 (save_fpregs_<mode>): Ditto
5698 (restore_gpregs_<mode>): Ditto
5699 (return_and_restore_gpregs_<mode>): Ditto
5700 (return_and_restore_fpregs_<mode>): Ditto
5701 (return_and_restore_fpregs_aix_<mode>): Ditto
5702
8775a18b
JH
57032011-06-13 Jan Hubicka <jh@suse.cz>
5704
5705 * ipa-utils.c (postorder_stack): New structure.
5706 (ipa_reverse_postorder): Handle aliases.
5707
57082011-06-13 Jan Hubicka <jh@suse.cz>
5709
5710 * ipa-inline.c (reset_edge_caches): Walk aliases.
5711 (update_caller_keys): Do not test inlinability of aliases.
5712 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
5713 (do_estimate_growth): Fix typo.
5714
6c69a029
JH
57152011-06-13 Jan Hubicka <jh@suse.cz>
5716
5717 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
5718 (can_remove_node_now_p): ... here; handle same comdat groups.
5719 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
5720 (inline_call): Update use of can_remove_node_now_p.
5721
10c63ba4 57222011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 5723
10c63ba4 5724 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
5725 condition to disallow non-identical memory locations.
5726 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
5727 preference to bit manipulation instructions.
495f8c14 5728
9aa3f5c5
JH
57292011-06-13 Jan Hubicka <jh@suse.cz>
5730
5731 * cgraph.c (cgraph_for_node_thunks_and_aliases,
5732 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
5733 (nonremovable_p): New function.
5734 (cgraph_can_remove_if_no_direct_calls_p): New function.
5735 (used_from_object_file_p): New functoin.
10c63ba4
EB
5736 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
5737 references from aliases.
9aa3f5c5
JH
5738 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
5739 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
5740 (want_inline_function_called_once_p): Use it; accept aliases called
5741 once, too.
9aa3f5c5
JH
5742 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
5743
30cecf17
RR
57442011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5745
5746 PR target/48454
5747 * config/arm/neon.md (vec_pack_trunc): Set the lengths
5748 correctly for the case with Quad vectors.
5749
29f85237
JJ
57502011-06-13 Jakub Jelinek <jakub@redhat.com>
5751 Ira Rosen <ira.rosen@linaro.org>
5752
5753 PR tree-optimization/49352
5754 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
5755 all, make sure loop_use_stmt after the loop is a def stmt of a used
5756 SSA_NAME that is the only one defined inside of the loop. Don't
5757 check for COND_EXPR and GIMPLE_BINARY_RHS.
5758 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
5759 check_reduction is true.
5760
c3e3f090
JH
57612011-06-11 Jan Hubicka <jh@suse.cz>
5762
5763 PR middle-end/49373
5764 * ipa.c (cgraph_externally_visible_p): Check resolution info.
5765
516e0768
JH
57662011-06-11 Jan Hubicka <jh@suse.cz>
5767
5768 PR middle-end/48836
5769 * ipa-inline-transform.c: Include tree-pass.h
5770 (inline_transform): Set TODO_update_ssa_only_virtuals.
5771 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
5772
903b0a8b
JH
57732011-06-11 Jan Hubicka <jh@suse.cz>
5774
5775 PR middle-end/49378
5776 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
5777 aliases and thunks.
5778
44542f8e
IR
57792011-06-12 Ira Rosen <ira.rosen@linaro.org>
5780
5781 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
5782 Take number of iterations to peel into account for equally frequent
5783 misalignment values.
5784
ea89702b
JH
57852011-06-11 Jan Hubicka <jh@suse.cz>
5786
637c11bd
UB
5787 * lto-streamer-out.c (produce_symtab): Stream out the newly
5788 represented aliases.
ea89702b 5789
380ed5ed
JH
57902011-06-11 Jan Hubicka <jh@suse.cz>
5791
637c11bd
UB
5792 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
5793 varying args.
380ed5ed
JH
5794 (ipa_update_after_lto_read): Likewise.
5795 (ipa_write_node_info): Do not sream call_with_var_arguments.
5796 (ipa_read_node_info): Likewise.
5797
00cfc363
JH
57982011-06-11 Jan Hubicka <jh@suse.cz>
5799
5800 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
5801
39e2db00
JH
58022011-06-11 Jan Hubicka <jh@suse.cz>
5803
5804 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
5805 (lto_symtab_resolve_can_prevail_p): Likewise.
5806 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
5807 * cgraph.c (same_body_aliases_done): New global var.
5808 (cgraph_same_body_alias_1): Rename to ...
5809 (cgraph_create_function_alias): ... this one; reorg to new
5810 representation.
5811 (cgraph_same_body_alias): Use cgraph_create_function_alias;
5812 record references when asked to.
5813 (cgraph_add_thunk): Fix formating.
5814 (cgraph_get_node): Kill same body alias code.
5815 (cgraph_node_for_asm): Likewise.
5816 (cgraph_remove_same_body_alias): Remove.
5817 (cgraph_remove_node): Kill same body alias code.
5818 (cgraph_mark_address_taken_node): Mark also the aliased function
5819 as having address taken.
5820 (dump_cgraph_node): Dump same body aliases.
5821 (cgraph_for_node_thunks_and_aliases): Update for new alias
5822 representation.
5823 (cgraph_for_node_and_aliases): Likewise.
5824 * cgraph.h (same_body): Kll pointer.
5825 (same_body_alias): Update comment.
5826 (same_body_aliases_done): Declare.
5827 (cgraph_remove_same_body_alias): Remove declaration.
5828 (cgraph_create_function_alias): Declare.
5829 (cgraph_process_same_body_aliases): Declare.
5830 (cgraph_function_with_gimple_body_p): Check for alias.
5831 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
5832 (cgraph_alias_aliased_node): New function.
5833 (cgraph_function_node): Update for new aliases.
5834 (cgraph_function_or_thunk_node): Likewise.
5835 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
5836 (inline_call): Remove dead aliases.
10c63ba4
EB
5837 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
5838 name hack for same body aliases.
39e2db00
JH
5839 (clone_of_p): Look through aliases.
5840 (verify_cgraph_node): Verify aliases.
5841 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
5842 (cgraph_process_same_body_aliases): New function.
5843 (process_function_and_variable_attributes): Disable weakref warning on
5844 alias.
5845 (cgraph_analyze_functions): Handle aliases.
5846 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
5847 (assemble_thunks): Rename to ...
5848 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
5849 (cgraph_expand_function): Remove alias output code.
5850 (cgraph_output_in_order): Skip aliases.
5851 (cgraph_preserve_function_body_p): Aliases don't need preserving.
5852 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
5853 (ipa_record_reference): Do not assert on alias references.
5854 (ipa_ref_has_aliases_p): New function.
5855 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
5856 (ipa_ref_has_aliases_p): Declare.
5857 * lto-cgraph.c (lto_output_node): Handle aliases.
5858 (input_node): Likewise.
5859 * lto-streamer-out.c (lto_output): Skip aliases.
5860 (produce_symtab): Kill same_body_alias code.
5861 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
5862 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
5863 * ipa-inline.c (update_caller_keys): Walk aliases.
5864 (inline_small_functions): Fix thinko in previous patch.
5865 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
5866 (function_and_variable_visibility): Do not walk same body aliases.
5867 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
5868 (ipa_pta_execute): Use it.
5869
9ee65b55
UB
58702011-06-11 Uros Bizjak <ubizjak@gmail.com>
5871
5872 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
5873 (*vec_dupv2df): Rename from vec_dupv2df.
5874 (vec_dupv2df): New expander.
5875
58762011-06-11 Uros Bizjak <ubizjak@gmail.com>
5877
5878 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
5879
58802011-06-11 Uros Bizjak <ubizjak@gmail.com>
5881
5882 * config/i386/i386.md: Use default value in "isa" attribute.
5883 * config/i386/sse.md: Ditto.
5884 * config/i386/mmx.md: Ditto.
5885
ba68a139
WG
58862011-06-10 Wei Guozhi <carrot@google.com>
5887
5888 PR target/45335
5889 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5890 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5891 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5892 related peephole2.
5893 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5894 related peephole2.
5895 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5896 (arm_legitimate_ldrd_p): New prototype.
5897 (arm_output_ldrd): New prototype.
5898 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5899 (arm_legitimate_ldrd_p): New function.
5900 (arm_output_ldrd): New function.
5901
deced1e2
XDL
59022011-06-10 David Li <davidxl@google.com>
5903
5904 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
5905 * passes.c (passr_eq): New function.
5906 (create_pass_tab): New function.
5907 (pass_traverse): New function.
5908 (dump_one_pass): New function.
5909 (dump_pass_list): New function.
5910 (dump_passes): New function.
5911
71fb4f92
JH
59122011-06-10 Jan Hubicka <jh@suse.cz>
5913
5914 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
5915 setting the nothrow flag.
5916 * ipa-reference.c (propagate): Skip aliases.
5917 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
5918 (propagate_nothrow): Skip aliases; do not update cgraph.
5919 (local_pure_const): Do not update cgraph.
5920 * tree-profile.c (tree_profiling): Do fixup_cfg.
5921
41817394
JH
59222011-06-10 Jan Hubicka <jh@suse.cz>
5923
5924 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
5925 (cgraph_local_node_p): ... here; handle aliases.
5926 (has_addr_references_p): Break out from ...;
5927 (cgraph_remove_unreachable_nodes) ... here.
5928
fb37c1de
JH
59292011-06-10 Jan Hubicka <jh@suse.cz>
5930
5931 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
5932 * common.opt (flag_inline_functions_called_once): Do not
5933 initialize to 1.
fb37c1de 5934
0818c24c
JH
59352011-06-10 Jan Hubicka <jh@suse.cz>
5936
5937 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
5938 (ipcp_initialize_node_lattices): Do not deal with aliases;
5939 Do not try to propagate through thunks.
0818c24c
JH
5940 (ipcp_change_tops_to_bottom): Do not deal with aliases.
5941
c8246dbe
JH
59422011-06-10 Jan Hubicka <jh@suse.cz>
5943
9ee65b55
UB
5944 * ipa-prop.c (ipa_write_node_info): Stream jump functions
5945 for indirect calls.
c8246dbe
JH
5946 (ipa_read_node_info): Likewise.
5947
d7e2a1c1
BS
59482011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5949
5950 PR lto/49302
5951 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
5952 (build_and_insert_call): Likewise.
5953 (build_and_insert_ref): New.
5954 (gimple_expand_builtin_pow): Minor cleanup.
5955 (gimple_expand_builtin_cabs): New.
5956 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 5957
749f25d8
JH
59582011-06-10 Jan Hubicka <jh@suse.cz>
5959
5960 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
5961 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
5962 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
5963 (ipcp_propagate_stage): Skip aliases when propagating.
5964 (ipcp_need_redirect_p): Skip aliases.
5965 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
5966 collect_callers_of_node.
5967 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
5968 for aliases.
5969 (ipa_compute_jump_functions): Look through aliases.
5970
8340fbd7
RO
59712011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5972
5973 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
5974
9aaa7e47
HPN
59752011-06-10 Hans-Peter Nilsson <hp@axis.com>
5976
5977 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
5978 Adjust comments.
5979 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
5980
f1724940
JH
59812011-06-10 Jan Hubicka <jh@suse.cz>
5982
5983 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
5984 Update call of gimple_get_virt_method_for_binfo.
5985 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
5986 refuse_thunks parameter.
5987 (gimple_fold_call): Update.
5988 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
5989
a6f834c5
JH
59902011-06-10 Jan Hubicka <jh@suse.cz>
5991
5992 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
5993 (not_all_callers_have_enough_arguments_p): ... this one; turn into
5994 worker for cgraph_for_node_and_aliases.
5995 (convert_callers_for_node): Break out from ...
5996 (convert_callers): ... here.
5997 (modify_function): Use collect_callers_of_node.
5998 (ipa_early_sra): Use cgraph_for_node_and_aliases.
5999
7871eee3
RG
60002011-06-10 Richard Guenther <rguenther@suse.de>
6001
6002 PR tree-optimization/49361
6003 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6004 when not already in gimple form.
6005
dae957ae
RG
60062011-06-10 Richard Guenther <rguenther@suse.de>
6007
6008 PR bootstrap/49344
6009 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6010 FOR_EACH_PHI_OR_STMT_USE.
6011
a5b1779f
JH
60122011-06-10 Jan Hubicka <jh@suse.cz>
6013
6014 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6015 (clone_inlined_nodes): ... here.
6016 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6017 to real destination prior inlining.
6018 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6019 can_early_inline_edge_p, want_early_inline_function_p,
6020 want_early_inline_function_p, want_inline_small_function_p,
6021 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6022 edge_badness, update_all_callee_keys, lookup_recursive_calls,
6023 add_new_edges_to_heap, inline_small_functions, flatten_function,
6024 inline_always_inline_functions, early_inline_small_functions): Use
6025 cgraph_function_or_thunk_node.
6026 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6027 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6028 (do_estimate_edge_growth_1): Break out from ...
6029 (do_estimate_growth) ... here; walk aliases.
6030 (inline_generate_summary): Skip aliases.
6031
c1ae3ca5
RG
60322011-06-10 Richard Guenther <rguenther@suse.de>
6033
9ee65b55
UB
6034 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6035 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 6036
b504a918
PC
60372011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
6038
6039 * tree.h (error_operand_p): Add.
6040 * dbxout.c (dbxout_type_fields): Use the latter.
6041 * c-decl.c (add_stmt): Likewise.
6042 * gimplify.c (omp_add_variable, omp_notice_variable,
6043 gimplify_scan_omp_clauses): Likewise.
6044
3f5ea9dc 60452011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 6046
3f5ea9dc
GJL
6047 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6048 when a value is actually passed in regs.
6049
b11b0904 60502011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 6051 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
6052
6053 * doc/invoke.texi (SPARC options): Add -mflat.
6054 * config/sparc/sparc.opt: Likewise.
6055 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6056 (sparc_flat_expand_prologue): Declare.
6057 (sparc_flat_expand_epilogue): Likewise.
6058 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6059 (CPP_ENDIAN_SPEC): Replace with...
6060 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
6061 (CPP_SPEC): Adjust to above change.
6062 (EXTRA_SPECS): Likewise.
6063 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6064 (INCOMING_REGNO): Likewise.
6065 (OUTGOING_REGNO): Likewise.
6066 (LOCAL_REGNO): Likewise.
6067 (SETUP_FRAME_ADDRESSES): Likewise.
6068 (FIXED_REGISTERS): Set 0 for %fp.
6069 (CALL_USED_REGISTERS): Likewise.
6070 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6071 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6072 (RETURN_ADDR_REGNUM): Define.
6073 (RETURN_ADDR_RTX): Use it.
6074 (INCOMING_RETURN_ADDR_REGNUM): Define.
6075 (INCOMING_RETURN_ADDR_RTX): Use it.
6076 (DWARF_FRAME_RETURN_COLUMN): Likewise.
6077 (EH_RETURN_REGNUM): Define.
6078 (EH_RETURN_STACKADJ_RTX): Use it.
6079 (EH_RETURN_HANDLER_RTX): Delete.
6080 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6081 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6082 Delete.
6083 (struct machine_function): Add frame_size, apparent_frame_size,
6084 frame_base_reg, frame_base_offset, n_global_fp_regs and
6085 save_local_in_regs_p fields.
6086 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6087 sparc_frame_base_offset, sparc_n_global_fp_regs,
6088 sparc_save_local_in_regs_p): New macros.
6089 (sparc_option_override): Error out if -fcall-saved-REG is specified
6090 for Out registers.
6091 (eligible_for_restore_insn): Fix formatting.
6092 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
6093 (eligible_for_sibcall_delay): Likewise.
6094 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6095 (sparc_legitimate_address_p): Adjust to above change.
6096 (save_global_or_fp_reg_p): New predicate.
6097 (return_addr_reg_needed_p): Likewise.
6098 (save_local_or_in_reg_p): Likewise.
6099 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
6100 (SORR_SAVE, SORR_RESTORE): Delete.
6101 (sorr_pred_t): New typedef.
6102 (sorr_act_t): New enum.
6103 (save_or_restore_regs): Rename to...
6104 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
6105 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6106 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
6107 mechanism. Add CFI information for double-word saves in 32-bit mode.
6108 (emit_adjust_base_to_offset): New function extracted from...
6109 (emit_save_or_restore_regs): ...this. Rename the rest to...
6110 (emit_save_or_restore_regs_global_fp_regs): ...this.
6111 (emit_save_or_restore_regs_local_in_regs): New function.
6112 (gen_create_flat_frame_[123]): New functions.
6113 (sparc_expand_prologue): Use SIZE local variable. Adjust.
6114 (sparc_flat_expand_prologue): New function.
6115 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6116 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
6117 (sparc_flat_expand_epilogue): New function.
6118 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6119 (output_return): Likewise.
6120 (output_sibcall): Likewise.
6121 (sparc_output_mi_thunk): Likewise.
6122 (sparc_frame_pointer_required): Likewise.
6123 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6124 function optimization.
6125 * config/sparc/sparc.md (flat): New attribute.
6126 (prologue): Add TARGET_FLAT handling.
6127 (save_register_window): Disable if TARGET_FLAT.
6128 (create_flat_frame_[123]): New patterns.
6129 (epilogue): Add TARGET_FLAT handling.
6130 (sibcall_epilogue): Likewise.
6131 (eh_return): New expander.
6132 (eh_return_internal): New insn and splitter.
6133 (return_internal): Add TARGET_FLAT handling.
6134 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6135 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6136 (nonlocal_goto): Add TARGET_FLAT handling.
6137 * config/sparc/t-elf: Add -mflat multilib.
6138 * config/sparc/t-leon: Likewise.
6139
fede8efa
JH
61402011-06-10 Jan Hubicka <jh@suse.cz>
6141
6142 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6143 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6144 (self_recursive_p): Use cgraph_function_node.
6145 (propagate_pure_const): Likewise.
6146 (propagate_nothrow): Likewise.
6147 * ipa-reference.c (ipa_reference_get_not_read_global): Use
6148 cgraph_function_node.
6149 (propagate_bits): Likewise.
6150 (propagate): Likewise.
6151
0127c76f
RR
61522011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6153 Richard Earnshaw <rearnsha@arm.com>
6154
9ee65b55 6155 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
6156 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6157 (*thumb2_movdi_vfp): Delete.
6158 (*arm_movdi_vfp_cortexa8): Delete.
6159 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6160 (*movdi_vfp_cortexa8): Likewise.
6161
f93fe5a0
RG
61622011-06-10 Richard Guenther <rguenther@suse.de>
6163
6164 * stor-layout.c (initialize_sizetypes): Give names to all
6165 sizetype kinds.
6166
f2164f87
IR
61672011-06-10 Ira Rosen <ira.rosen@linaro.org>
6168
6169 PR tree-optimization/49318
6170 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6171 irrelevant pattern statements.
6172
3f91c962
HPN
61732011-06-10 Hans-Peter Nilsson <hp@axis.com>
6174
3d223145
HPN
6175 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6176
3f91c962
HPN
6177 PR bootstrap/49354
6178 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6179 to last assignment.
6180
b125ad45
JH
61812011-06-09 Jan Hubicka <jh@suse.cz>
6182
6183 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6184 do not recompute reachable flag.
6185 (cgraph_finalize_function, cgraph_analyze_functions): Set
6186 redefined_extern_inline here.
6187
be330ed4
JH
61882011-06-09 Jan Hubicka <jh@suse.cz>
6189
6190 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6191 (cgraph_only_called_directly_p): ... this one; bring offline.
6192 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6193 varpool_used_from_object_file_p): Drop names from the declaratoin.
6194 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6195 collect_callers_of_node): New.
6196 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6197 (cgraph_edge_recursive_p): Use cgraph_function_node.
6198 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6199 (cgraph_node_cannot_be_local_p_1): Break out from ...
6200 (cgraph_node_can_be_local_p): ... here; walk aliases.
6201 (cgraph_for_node_thunks_and_aliases): New function.
6202 (cgraph_for_node_and_aliases): New function.
6203 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
6204 (cgraph_make_node_local) ... here; use
6205 cgraph_for_node_thunks_and_aliases.
be330ed4 6206 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
6207 (cgraph_set_nothrow_flag) ... here;
6208 use cgraph_for_node_thunks_and_aliases.
be330ed4 6209 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
6210 (cgraph_set_const_flag) ... here;
6211 use cgraph_for_node_thunks_and_aliases.
be330ed4 6212 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
6213 (cgraph_set_pure_flag) ... here;
6214 use cgraph_for_node_thunks_and_aliases.
be330ed4 6215 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
6216 (cgraph_propagate_frequency) ... here; use
6217 cgraph_for_node_thunks_and_aliases.
be330ed4 6218 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
6219 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6220 New functions.
be330ed4
JH
6221 (collect_callers_of_node_1, collect_callers_of_node): New functions.
6222
2ea91d6b
HPN
62232011-06-10 Hans-Peter Nilsson <hp@axis.com>
6224
6225 PR rtl-optimization/49154
6226 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6227 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6228 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6229 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6230 * config/cris/cris.h (cris_register_move_cost): Remove
6231 !TARGET_V32 code. Tweak comments.
6232
9cf4fb5a
JH
62332011-06-09 Jan Hubicka <jh@suse.cz>
6234
6235 * cgraphbuild.c (record_eh_tables): Mark personality function as having
6236 address taken.
6237
6049a4c8
HPN
62382011-06-10 Hans-Peter Nilsson <hp@axis.com>
6239
c577822e 6240 PR rtl-optimization/49154
9ee65b55
UB
6241 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6242 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 6243
54e1e4f7 6244 PR rtl-optimization/49154
6049a4c8
HPN
6245 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6246 register classes.
6247 * doc/tm.texi: Regenerate.
6248
3be68b64
KK
62492011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
6250
6251 PR target/49307
6252 * config/sh/sh.md (UNSPEC_CHKADD): New.
6253 (chk_guard_add): New define_insn_and_split.
6254 (symGOT_load): Use chk_guard_add instead of blockage.
6255
bf806a90
KT
62562011-06-09 Kai Tietz <ktietz@redhat.com>
6257
6258 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6259
d5a9738b
EB
62602011-06-09 Eric Botcazou <ebotcazou@adacore.com>
6261
6262 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6263
527e82c2
WG
62642011-06-09 Wei Guozhi <carrot@google.com>
6265
6266 PR target/46975
6267 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6268 (peephole2 for conditional move): Generate 16 bit instructions.
6269
b8bc3a43
UB
62702011-06-09 Uros Bizjak <ubizjak@gmail.com>
6271
6272 * config/i386/i386.md (*movdi_internal_rex64): Merge
6273 alternatives 6 and 8.
6274
4745da6e
DL
62752011-06-09 David Li <davidxl@google.com>
6276
6277 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6278 * passes.c (passr_eq): New function.
6279 (create_pass_tab): New function.
6280 (pass_traverse): New function.
6281 (dump_one_pass): New function.
6282 (dump_pass_list): New function.
6283 (dump_passes): New function.
6284
bdf67bcb
DL
62852011-06-09 David Li <davidxl@google.com>
6286
6287 * tree-complex.c (tree_lower_complex): Gate cleanup.
6288 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6289 (execute_optimize_stdarg): Ditto.
6290 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6291 (execute_cleanup_eh_1): Ditto.
6292 (execute_cleanup_eh): Ditto.
6293 * gcse.c (gate_rtl_pre): Ditto.
6294 (execute_rtl_pre): Ditto.
6295 * except.c (finish_eh_generation): Ditto.
6296 (convert_to_eh_region_ranges): Ditto.
6297 * cprop.c (one_cprop_pass): Ditto.
6298
547fdef8
BS
62992011-06-09 Bernd Schmidt <bernds@codesourcery.com>
6300
6301 PR target/48673
6302 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6303 in all basic blocks.
6304
10e48e39
RO
63052011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6306
6307 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6308 (HAVE_ENABLE_EXECUTE_STACK): Define.
6309 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6310 (HAVE_ENABLE_EXECUTE_STACK): Define.
6311 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6312 (HAVE_ENABLE_EXECUTE_STACK): Define.
6313 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6314 (ENABLE_EXECUTE_STACK): Remove.
6315 (HAVE_ENABLE_EXECUTE_STACK): Define.
6316 [IN_LIBGCC2]: Don't include <windows.h>.
6317 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6318 (HAVE_ENABLE_EXECUTE_STACK): Define.
6319 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6320 (HAVE_ENABLE_EXECUTE_STACK): Define.
6321 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6322 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6323 (HAVE_ENABLE_EXECUTE_STACK): Define.
6324 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6325 (HAVE_ENABLE_EXECUTE_STACK): Define.
6326 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6327 (HAVE_ENABLE_EXECUTE_STACK): Define.
6328 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6329 (HAVE_ENABLE_EXECUTE_STACK): Define.
6330 * config/alpha/alpha.c (alpha_trampoline_init): Test
6331 HAVE_ENABLE_EXECUTE_STACK.
6332 * config/i386/i386.c (ix86_trampoline_init): Likewise.
6333 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6334 (sparc64_initialize_trampoline): Likewise.
6335 * libgcc2.c [L_enable_execute_stack]: Remove.
6336 * system.h (ENABLE_EXECUTE_STACK): Poison.
6337 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6338 * doc/tm.texi: Regenerate.
6339 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6340
8ced31fe
JJ
63412011-06-09 Jakub Jelinek <jakub@redhat.com>
6342
6343 PR middle-end/49308
6344 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6345 variable. After resetting and rescanning insn continue with previous
6346 statement.
6347
ee610fcd
RO
63482011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6349
6350 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6351 (gcc_cv_ld_hidden): Likewise.
6352 * configure: Regenerate.
6353 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6354 (ix86_stack_protect_fail): Mark unused.
6355 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6356 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6357 [TARGET_MACHO]: Don't define.
6358 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6359 (TARGET_STACK_PROTECT_FAIL): Likewise.
6360 (rs6000_stack_protect_fail): Mark unused.
6361 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 6362 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 6363
8f2e22ff
AK
63642011-06-08 Andi Kleen <ak@linux.intel.com>
6365
6366 * varasm.c (get_section): Print location of other conflict
6367 for section conflicts.
6368
815cecbe
AK
63692011-06-08 Andi Kleen <ak@linux.intel.com>
6370
6371 * config/i386/driver-i386.c (host_detect_local_cpu):
6372 Add model 0x2d Intel CPU.
6373
1460ec5c
AK
63742011-06-08 Andi Kleen <ak@linux.intel.com>
6375
6376 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
6377 (globalize_reg): Add decl parameter. Compute location. Pass location
6378 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
6379 * rtl.h (globalize_reg): Update prototype.
6380 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
6381
df17530a
MX
63822011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
6383
6384 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
6385
409fed48
KK
63862011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6387
6388 PR target/49305
6389 * config/sh/predicates.md (general_movsrc_operand): Check
6390 mode for memory with indexed address for QI and HImode.
6391 (general_movdst_operand): Likewise.
6392
87c16a45
NP
63932011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
6394
b8bc3a43 6395 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 6396
49931fcb
AO
63972011-06-08 Alexandre Oliva <aoliva@redhat.com>
6398
6399 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
6400 (num_ssa_operands): Likewise.
6401 (op_iter_init_phiuse): Forward-declare.
6402 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
6403
29494d1f
NC
64042011-06-08 Nick Clifton <nickc@redhat.com>
6405
6406 * doc/invoke.texi (ARM Options): Update description of
6407 -mthumb-interwork.
6408
4ffae7ff
L
64092011-06-08 H.J. Lu <hongjiu.lu@intel.com>
6410
6411 * config/i386/driver-i386.c (host_detect_local_cpu): Support
6412 unknown Intel family 0x6 CPUs.
6413
d9c77712
MJ
64142011-06-08 Martin Jambor <mjambor@suse.cz>
6415
6416 * tree-sra.c (mark_rw_status): Removed.
6417 (analyze_access_subtree): New parameter parent instead of
6418 mark_read and mark_write, propagate from that.
6419
b1def36c
JB
64202011-06-08 Julian Brown <julian@codesourcery.com>
6421
6422 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6423 for double-precision helper functions in hard-float mode if only
6424 single-precision arithmetic is supported in hardware.
6425
6c8e9fc9
AM
64262011-06-08 Alexander Monakov <amonakov@ispras.ru>
6427
6428 PR rtl-optimization/49303
6429 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
6430 code_motion_path_driver returned 0 or 1.
6431 (sel_region_finish): Clear h_d_i_d.
6432
c2bbcb0d
KK
64332011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6434
6435 * config/sh/sh.c (prepare_move_operands): Set pic register
6436 appropriately for global and local dynamic tls models even
6437 if flag_pic is unset.
6438
6976ae51
JM
64392011-06-07 Jason Merrill <jason@redhat.com>
6440
6441 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6442
bb5b1f5e
XDL
64432011-06-07 Xinliang David Li <davidxl@google.com>
6444 * passes.c (enable_disable_pass): Handle assembler name.
6445 (is_pass_explicitly_enabled_or_disabled): Ditto.
6446
91ffe356
RO
64472011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6448
6449 PR tree-optimization/48497
6450 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6451
06bc3ec7
BS
64522011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6453
6454 PR tree-optimization/46728
6455 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6456 to use gimple_val_nonnegative_real_p.
6457 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6458 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 6459
c074d740
L
64602011-06-07 H.J. Lu <hongjiu.lu@intel.com>
6461
6462 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6463
8973b112
SG
64642011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
6465
6466 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6467 constant vectors.
6468
67b88453
RG
64692011-06-07 Richard Guenther <rguenther@suse.de>
6470
6471 * stor-layout.c (initialize_sizetypes): Initialize all
6472 sizetypes based on target definitions.
6473 (set_sizetype): Remove.
6474 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6475 * tree.h (set_sizetype): Remove.
6476
1dcad079
NC
64772011-06-07 Nick Clifton <nickc@redhat.com>
6478
6479 * config.gcc: Unify V850 architecture options and add support for
6480 newer V850 architectures.
6481 * config/v850/t-v850e: Delete.
6482
009db074
RG
64832011-06-07 Richard Guenther <rguenther@suse.de>
6484
6485 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6486 Call set_sizetype from here.
6487
f373314f
AS
64882011-06-07 Andrew Stubbs <ams@codesourcery.com>
6489
6490 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6491 (*maddhisi4tb, *maddhisi4tt): New define_insns.
6492
c536876e
AS
64932011-06-07 Bernd Schmidt <bernds@codesourcery.com>
6494 Andrew Stubbs <ams@codesourcery.com>
6495
6496 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6497 multiplies.
6498 * doc/md.texi (Canonicalization of Instructions): Document widening
6499 multiply canonicalization.
6500
308dc890
JJ
65012011-06-07 Jakub Jelinek <jakub@redhat.com>
6502
6503 PR gcov-profile/49299
b8bc3a43 6504 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 6505
383d9c83
IR
65062011-06-07 Ira Rosen <ira.rosen@linaro.org>
6507
6508 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6509 a pointer.
6510 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6511 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6512 vect_recog_pow_pattern): Likewise.
6513 (vect_pattern_recog_1): Remove declaration.
6514 (widened_name_p): Remove declaration. Add new argument to specify
6515 whether to check that both types are either signed or unsigned.
6516 (vect_recog_widen_mult_pattern): Update documentation. Handle
6517 unsigned patterns and multiplication by constants.
6518 (vect_pattern_recog_1): Update vect_recog_func references. Use
6519 statement information from the statement returned from pattern
6520 detection functions.
6521 (vect_pattern_recog): Update vect_recog_func reference.
6522 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6523 multiplication by a constant use the type of the other operand.
6524
4de4b0f2
RS
65252011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
6526
6527 PR rtl-optimization/49145
6528 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6529
a9d24544
JJ
65302011-06-06 Jakub Jelinek <jakub@redhat.com>
6531
99a5e049
JJ
6532 PR debug/49262
6533 * dwarf2out.c (native_encode_initializer): Decrement count in each
6534 iteration.
6535
04902d4c
JJ
6536 PR debug/49294
6537 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6538 non-MODE_INT modes.
6539
a9d24544
JJ
6540 PR c++/49264
6541 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6542 if stmt folded into nothing.
b8bc3a43
UB
6543 * tree-inline.c (fold_marked_statements): If a builtin at the end of
6544 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
6545 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6546 to be NULL. Don't compute count and frequency if new_call is NULL.
6547
47c79d56
DN
65482011-06-04 Diego Novillo <dnovillo@google.com>
6549
6550 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6551 (cgraph.o): Likewise.
6552 (cgraphunit.o): Likewise.
6553 * cgraphunit.c: Include lto-streamer.h
6554 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6555 if LTO is enabled.
6556 * lto-streamer-in.c (unpack_value_fields): Call
6557 streamer_hooks.unpack_value_fields if set.
6558 (lto_materialize_tree): For unhandled nodes, first try to
6559 call lto_streamer_hooks.alloc_tree, if it exists.
6560 (lto_input_ts_decl_common_tree_pointers): Move reading of
6561 DECL_INITIAL to lto_streamer_read_tree.
6562 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6563 (lto_streamer_read_tree): New.
6564 (lto_reader_init): Rename from lto_init_reader.
6565 Move initialization code to lto/lto.c.
6566 * lto-streamer-out.c (pack_value_fields): Call
6567 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
6568 (lto_output_tree_ref): For tree nodes that are not normally indexable,
6569 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 6570 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
6571 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6572 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6573 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
6574 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
6575 (lto_streamer_write_tree): New.
6576 (lto_output): Call lto_streamer_init directly.
6577 (lto_writer_init): Remove.
6578 * lto-streamer.c (streamer_hooks): New.
6579 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6580 instead of lto_preload_common_nodes.
6581 (lto_is_streamable): Move from lto-streamer.h
6582 (lto_streamer_hooks_init): New.
6583 (streamer_hooks): New.
6584 (streamer_hooks_init): New.
6585 * lto-streamer.h (struct output_block): Forward declare.
6586 (struct lto_input_block): Likewise.
6587 (struct data_in): Likewise.
6588 (struct bitpack_d): Likewise.
6589 (struct streamer_hooks): Declare.
6590 (streamer_hooks): Declare.
6591 (lto_streamer_hooks_init): Declare.
6592 (lto_streamer_write_tree): Declare.
6593 (lto_streamer_read_tree): Declare.
6594 (streamer_hooks_init): Declare.
6595 (lto_is_streamable): Move to lto-streamer.c
6596
22afe143
AK
65972011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6598
6599 * longlong.h (smul_ppmm): The resulting register pair contains the
6600 higher order word first.
6601
3906ea1b
BS
66022011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6603
6604 PR tree-optimization/46728
6605 * builtins.c (powi_table): Remove.
6606 (powi_lookup_cost): Remove.
6607 (powi_cost): Remove.
6608 (expand_powi_1): Remove.
6609 (expand_powi): Remove.
6610 (expand_builtin_pow_root): Remove.
6611 (expand_builtin_pow): Remove.
6612 (expand_builtin_powi): Eliminate handling of constant exponent.
6613 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 6614
3598cabd
AO
66152011-06-06 Alexandre Oliva <aoliva@redhat.com>
6616
6617 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6618
a7a110bb
AO
66192011-06-06 Alexandre Oliva <aoliva@redhat.com>
6620
6621 * dce.c (reset_unmarked_insns_debug_uses): New.
6622 (delete_unmarked_insns): Skip debug insns.
6623 (prescan_insns_for_dce): Likewise.
6624 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6625 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6626 active reg can be found.
6627 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
6628 (convert_regs_1): Use it.
6629
6d8402ac
AO
66302011-06-06 Alexandre Oliva <aoliva@redhat.com>
6631
6632 * tree-pretty-print.c (dump_function_header): Add flags.
6633 Don't dump decl_uid with nouid.
6634 * tree-pretty-print.h (dump_function_header): Adjust.
6635 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6636 * passes.c (pass_init_dump_file): Pass dump_flags on.
6637 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6638
f75e1f1e
AO
66392011-06-06 Alexandre Oliva <aoliva@redhat.com>
6640
6641 PR bootstrap/49270
6642 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6643
275311c4
MP
66442011-06-06 Mikael Pettersson <mikpe@it.uu.se>
6645
6646 PR tree-optimization/49243
6647 * calls.c (setjmp_call_p): Also check if fndecl has the
6648 returns_twice attribute.
6649
aa4203e7
RO
66502011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6651
6652 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6653 -ffast-math etc.
6654
48f9d59a
RH
66552011-06-06 Richard Henderson <rth@redhat.com>
6656 Georg-Johann Lay <avr@gjlay.de>
6657
6658 PR target/42210
6659 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6660 New predicates.
6661 * config/avr/avr.md ("insv"): New insn expander.
6662 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6663 "*insv.not.io", "*insv.reg"): New insns.
6664
11494830
HPN
66652011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
6666
6667 PR target/49285
b8bc3a43
UB
6668 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6669 to nonimmediate_operand from memory_operand for the operand that is to
6670 be forced to memory by the expander. Lose the constraints.
11494830 6671
679e70df
EB
66722011-06-05 Eric Botcazou <ebotcazou@adacore.com>
6673
6674 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
6675 EH return when delayed branches are disabled.
6676
4d3d7f15
UB
66772011-06-05 Uros Bizjak <ubizjak@gmail.com>
6678
6679 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
6680 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
6681 calculation.
6682 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
6683 Simplify MODE_V1DF and MODE_V2SF handling.
6684 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
6685 Simplify MODE_SF handling.
6686
a45c0557
JH
66872011-06-04 Jan Hubicka <jh@suse.cz>
6688
6689 PR tree-optimization/48893
6690 PR tree-optimization/49091
6691 PR tree-optimization/49179
6692 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
6693 Bounds check.
6694
26740835
JH
66952011-06-04 Jan Hubicka <jh@suse.cz>
6696
6697 PR lto/48954
b8bc3a43
UB
6698 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
6699 bitmaps.
26740835 6700
014ab419
JW
67012011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
6702
6703 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
6704
407bcba7
JJ
67052011-06-04 Jakub Jelinek <jakub@redhat.com>
6706
6707 PR target/49281
6708 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
6709 to be strictly smaller than 1 << shiftcount.
6710
e3195c52
JH
67112011-06-04 Jan Hubicka <jh@suse.cz>
6712
6713 PR tree-optimize/48929
6714 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
6715 of empty predicate.
6716
047d33a0
AO
67172011-06-04 Alexandre Oliva <aoliva@redhat.com>
6718
6719 PR debug/48333
6720 * calls.c (emit_call_1): Prefer the __builtin declaration of
6721 builtin functions.
6722
dc587809
DN
67232011-06-03 Diego Novillo <dnovillo@google.com>
6724
6725 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
6726 (lto_input_tree_pointers): Likewise.
6727 * lto-streamer-out.c (pack_value_fields): Likewise.
6728 (lto_output_tree_pointers): Likewise.
6729 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
6730 and OPTIMIZATION_NODE.
6731
58cd1d70
RO
67322011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6733
6734 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
6735 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
6736 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
6737 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
6738 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
6739 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
6740 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
6741 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
6742 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
6743 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
6744 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
6745 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
6746 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
6747 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
6748 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
6749 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
6750 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
6751 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
6752 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
6753 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
6754 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
6755 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
6756 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
6757 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
6758 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
6759 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
6760 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
6761 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
6762 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
6763 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
6764 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
6765 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
6766 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
6767 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
6768 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
6769 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
6770 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
6771 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
6772 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
6773 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
6774 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
6775 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
6776 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
6777 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
6778 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
6779 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
6780 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
6781 * system.h (MD_UNWIND_SUPPORT): Poison.
6782 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
6783 * doc/tm.texi: Regenerate.
6784 * unwind-dw2.c: Include md-unwind-support.h instead of
6785 MD_UNWIND_SUPPORT.
6786 * config/ia64/unwind-ia64.c: Likewise.
6787 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6788
10c63ba4 67892011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
6790
6791 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
6792
1b7a0148
RH
67932011-06-03 Richard Henderson <rth@redhat.com>
6794 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6795
6796 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
6797 (sigill_hdlr): Correct insn, insn size.
6798 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
6799
737346fa
RO
68002011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6801
6802 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
6803 t-slibgcc-dummy.
6804 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
6805 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
6806 * config/mips/t-iris: Remove.
6807 * config/mips/t-irix6: New file.
6808 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
6809
c192cee6
RO
68102011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6811
6812 * Makefile.in (LIB2ADDEHDEP): Remove.
6813 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
6814 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
6815 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
6816 * config/t-darwin (LIB2ADDEHDEP): Remove.
6817 * config/t-freebsd (LIB2ADDEHDEP): Remove.
6818 * config/t-linux (LIB2ADDEHDEP): Remove.
6819
d5828cc7
DN
68202011-06-03 Diego Novillo <dnovillo@google.com>
6821
6822 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
6823 (lto_register_var_decl_in_symtab): Likewise.
6824 (lto_register_function_decl_in_symtab): Likewise.
6825 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 6826 logic to uniquify_nodes.
d5828cc7 6827
ee33b5f0
RO
68282011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6829
6830 * config/alpha/t-osf5: Remove.
6831 * config/alpha/t-osf-pthread: Remove.
6832 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
6833 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
6834
16868d84
JB
68352011-06-03 Julian Brown <julian@codesourcery.com>
6836
6837 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
6838 (strongarm1110): Use strongarm tuning.
4d3d7f15 6839 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
6840 * config/arm/arm.c (arm_strongarm_tune): New.
6841 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6842 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
6843 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
6844 setting, using previous defaults or 1 for Cortex-A5.
6845 (arm_option_override): Set max_insns_skipped from current tuning.
6846
1cec1285
NS
68472011-06-03 Nathan Sidwell <nathan@codesourcery.com>
6848
6849 * doc/install.texi (Options specification): Document --with-specs.
6850
eed55426
RR
68512011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6852
6853 * config/arm/neon.md (orndi3_neon): Actually split it.
6854
d5b6cc25
AO
68552011-06-02 Alexandre Oliva <aoliva@redhat.com>
6856
6857 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
6858 * var-tracking.c (reverse_op): Limite recurse depth to 5.
6859
2ba42841
AO
68602011-06-02 Alexandre Oliva <aoliva@redhat.com>
6861
6862 PR debug/47590
6863 * target.def (delay_sched2, delay_vartrack): New.
6864 * doc/tm.texi.in: Update.
6865 * doc/tm.texi: Rebuild.
6866 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
6867 * var-tracking.c (gate_handle_var_tracking): Likewise.
6868 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
6869 (bfin_flag_var_tracking): Drop.
6870 (output_file_start): Don't save and override flag_var_tracking.
6871 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
6872 (bfin_reorg): Test original variables.
6873 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6874 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
6875 (ia64_flag_var_tracking): Drop.
6876 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6877 (ia64_file_start): Don't save and override flag_var_tracking.
6878 (ia64_override_options_after_change): Ditto
6879 flag_schedule_insns_after_reload.
6880 (ia64_reorg): Test original variables.
6881 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
6882 (picochip_flag_var_tracking): Drop.
6883 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
6884 (picochip_option_override): Don't save and override
6885 flag_schedule_insns_after_reload.
6886 (picochip_asm_file_start): Ditto flag_var_tracking.
6887 (picochip_reorg): Test original variables.
6888 * config/spu/spu.c (spu_flag_var_tracking): Drop.
6889 (TARGET_DELAY_VARTRACK): Define.
6890 (spu_var_tracking): New.
6891 (spu_machine_dependent_reorg): Call it.
6892 (asm_file_start): Don't save and override flag_var_tracking.
6893
a700b5f0
KK
68942011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
6895
6896 PR target/49163
6897 * config/sh/predicates.md (general_movsrc_operand): Return 0
6898 for memory and memory subreg of which address is an invalid
6899 indexed address for QI and HImode.
6900 (general_movdst_operand): Likewise.
6901
76015c34
EB
69022011-06-02 Eric Botcazou <ebotcazou@adacore.com>
6903
6904 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
6905 edges only, when there is a non-local label in the function.
6906 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
6907
4e76acd2
UB
69082011-06-02 Uros Bizjak <ubizjak@gmail.com>
6909
6910 * config/i386/constraints.md (Y3): New register constraint.
6911 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
6912 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
6913 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
6914 *sse2_interleave_lowv2df.
6915
288f605f
JB
69162011-06-02 Julian Brown <julian@codesourcery.com>
6917
6918 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
6919 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
6920 (arm_cortex_a5_tune): New.
6921
7ec70105
JB
69222011-06-02 Julian Brown <julian@codesourcery.com>
6923
153668ec
JB
6924 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
6925 * config/arm/arm.c (arm_default_branch_cost): New.
6926 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
6927 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
6928 (arm_fa726_tune): Set branch_cost field using
6929 arm_default_branch_cost.
6930 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
6931 current_tune structure.
6932 * dojump.c (tm_p.h): Include file.
6933
69342011-06-02 Julian Brown <julian@codesourcery.com>
6935
6936 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
6937 tuning.
7ec70105
JB
6938 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
6939 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
6940 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
6941 field.
6942 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
6943 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
6944 (arm_fa726te_tune): Add prefer_constant_pool setting.
6945 (arm_v6t2_tune, arm_cortex_tune): New.
6946 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
6947 prefer_constant_pool setting.
6948
aad61732
UB
69492011-06-02 Uros Bizjak <ubizjak@gmail.com>
6950
4e76acd2
UB
6951 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
6952 switch statement.
aad61732
UB
6953 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
6954 (*movdf_internal) <case 6,7,8>: Ditto.
6955
4e76acd2 6956 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
6957 * config/i386/sse.md (vec_set<mode>_0): Merge with
6958 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
6959 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
6960 *vec_extractv2di_1_sse.
6961 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
6962 and *vec_concatv2di_rex64_sse.
6963
6e588138
SH
69642011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
6965
6966 PR target/48807
6967 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
6968 of cgraph_local_info for null before attempting to use it.
6969
bc6d3f91
EB
69702011-06-02 Eric Botcazou <ebotcazou@adacore.com>
6971
6972 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
6973 (current_function_dynamic_alloc_count): Delete.
6974 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
6975 (expand_builtin_nonlocal_goto): Remove obsolete comment.
6976 (expand_builtin_update_setjmp_buf): Remove dead code.
6977 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
6978 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
6979 support.
6980 * function.c (instantiate_virtual_regs): Likewise.
6981 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
6982 for a block with a single abnormal incoming edge.
6983 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 6984 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
6985 * config/sparc/sparc-protos.h (load_got_register): Declare.
6986 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
6987 (load_got_register): Make global.
6988 (sparc_frame_pointer_required): Add 'static'.
6989 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
6990 (sparc_builtin_setjmp_frame_value): New function.
6991 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
6992 (save_stack_nonlocal): New expander.
6993 (restore_stack_nonlocal): Likewise.
6994 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
6995 (nonlocal_goto_internal): New insn.
6996 (goto_handler_and_restore): Delete.
6997 (builtin_setjmp_setup): Likewise.
6998 (do_builtin_setjmp_setup): Likewise.
6999 (setjmp): Likewise.
7000 (builtin_setjmp_receiver): New expander.
7001
69282fee
DL
70022011-06-01 David Li <davidxl@google.com>
7003
7004 PR middle-end/49261
7005 * tree-pretty-print.c (dump_function_header): Format cleanup.
7006
e95873dd
KK
70072011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7008
7009 PR target/49238
7010 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7011 needed when original operands are used for msw_skip comparison.
7012
88c15821
JJ
70132011-06-01 Jakub Jelinek <jakub@redhat.com>
7014
7015 PR debug/49250
7016 * var-tracking.c (add_uses, add_stores): Don't call
7017 cselib_subst_to_values on ENTRY_VALUE.
7018
07233947
DN
70192011-06-01 Diego Novillo <dnovillo@google.com>
7020
7021 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7022 output_record_start with LTO_null instead of output_zero.
7023 (lto_output_ts_binfo_tree_pointers): Likewise.
7024 (lto_output_tree): Likewise.
7025 (output_eh_try_list): Likewise.
7026 (output_eh_region): Likewise.
7027 (output_eh_lp): Likewise.
7028 (output_eh_regions): Likewise.
7029 (output_bb): Likewise.
7030 (output_function): Likewise.
7031 (output_unreferenced_globals): Likewise.
7032 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7033 instead of NUM_TREE_CODES.
7034 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7035 (lto_output_int_in_range): Change << to >> when shifting VAL.
7036
4ee3537a
DN
70372011-06-01 Diego Novillo <dnovillo@google.com>
7038
7039 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7040 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7041
02972eaf
RS
70422011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7043
7044 PR target/45074
7045 * optabs.h (valid_multiword_target_p): Declare.
7046 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7047 doing multi-word operations.
7048 * optabs.c (expand_binop): Likewise.
7049 (expand_doubleword_bswap): Likewise.
7050 (expand_absneg_bit): Likewise.
7051 (expand_unop): Likewise.
7052 (expand_copysign_bit): Likewise.
7053 (multiword_target_p): New function.
7054
4d41c2d1
RS
70552011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7056
7057 PR rtl-optimization/48830
7058 PR rtl-optimization/48808
7059 PR rtl-optimization/48792
7060 * reload.c (push_reload): Check contains_reg_of_mode.
7061 * reload1.c (strip_paradoxical_subreg): New function.
7062 (gen_reload_chain_without_interm_reg_p): Use it to handle
7063 paradoxical subregs.
7064 (emit_output_reload_insns, gen_reload): Likewise.
7065
5f57dccb
DL
70662011-06-01 David Li <davidxl@google.com>
7067
7068 * predict.c : Change pass name
7069 * ipa.c: Ditto.
7070 * dce.c: Ditto.
7071 * tree-profile.c: Ditto.
7072 * except.c: Ditto.
7073
ea6cf778
DL
70742011-06-01 David Li <davidxl@google.com>
7075
7076 * tree-pretty-print.c (dump_function_header): New function.
7077 * final.c (rest_of_clean_state): Use header dumper.
7078 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7079 * passes.c (pass_init_dump_file): Use header dumper.
7080
ebdc0d4b
JJ
70812011-06-01 Jakub Jelinek <jakub@redhat.com>
7082
eeeb9b49
JJ
7083 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7084 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7085 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7086 New functions.
7087 (mem_loc_descriptor): Use them.
7088
ebdc0d4b
JJ
7089 * var-tracking.c (create_entry_value): New function.
7090 (vt_add_function_parameter): Use it.
7091
0699e415
RO
70922011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7093
7094 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7095 Include <signal.h>, <ucontext.h>.
7096 (sigill_caught): Define.
7097 (sigill_hdlr): New function.
7098 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7099 insns can be executed.
aad61732 7100 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
7101 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7102
ca24c5ad
RO
71032011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7104
7105 * config/t-slibgcc-darwin: Move to ...
aad61732 7106 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
7107 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7108 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7109 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 7110 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
7111 Remove i386/t-crtstuff from tmake_file.
7112 (i[34567]86-*-solaris2*): Remove t-svr4,
7113 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7114 t-slibgcc-dummy.
7115 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7116 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7117 sparc/t-crtfm from tmake_file.
7118 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7119 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7120 Remove extra_parts.
7121 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7122 * config/i386/t-nwld (SHLIB_LINK): Remove.
7123 * config/i386/t-rtems-i386: Rename to ...
7124 * config/i386/t-rtems: ... this.
7125 ($(T)crti.o, $(T)crtn.o): Remove.
7126 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7127 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7128 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7129 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7130 EXTRA_MULTILIB_PARTS): Remove.
7131 * config/sparc/t-sol2-64: Likewise.
7132 * config/sparc/t-sol2: Remove.
7133 * config/sparc/t-crtin: Remove.
7134 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7135 * config/i386/gmon-sol2.c: Remove.
7136 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7137 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7138 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7139 * config/i386/sol2-gc1.asm: Remove.
7140 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7141 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7142 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7143 * config/t-slibgcc-sld: Remove.
7144
a78d13c3
JJ
71452011-06-01 Jakub Jelinek <jakub@redhat.com>
7146
7147 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7148 base_type_for_mode with op_mode instead of mode.
7149
572070ef
PB
71502011-06-01 Paul Brook <paul@cpodesourcery.com>
7151
7152 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
7153 Cortex-A15.
7154 * config/arm/arm-tune.md: Regenerate.
7155 * config/arm/arm-tables.opt: Regenerate.
7156 * config/arm/arm.c (FL_DIV): Rename...
7157 (FL_THUMB_DIV): ... to this.
7158 (FL_ARM_DIV): Define.
7159 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7160 (arm_arch_hwdiv): Remove.
7161 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7162 (arm_issue_rate): Add cortexr5.
7163 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7164 __ARM_ARCH_EXT_IDIV__.
7165 (TARGET_IDIV): Define.
7166 (arm_arch_hwdiv): Remove.
7167 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7168 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7169 (divsi3, udivsi3): New patterns.
7170 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7171 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7172
11026b51
MJ
71732011-06-01 Martin Jambor <mjambor@suse.cz>
7174
7175 * ipa-utils.c (ipa_dfs_info): New field scc_no.
7176 * ipa-utils.c (searchc): Set scc_no.
7177
b6156cf2
MJ
71782011-06-01 Martin Jambor <mjambor@suse.cz>
7179
7180 * ipa-utils.c (searchc_env): New field allow_overwritable.
7181 (searchc): do not ignore edges to overwritable nodes if indicated
7182 by env->allow_overwritable.
7183 (ipa_reduced_postorder): Set env.allow_overwritable.
7184
6807da97
RG
71852011-06-01 Richard Guenther <rguenther@suse.de>
7186
7187 * tree.c (free_lang_data): Do not reset boolean_type_node nor
7188 char_type_node.
7189 * lto-streamer.c (lto_record_common_node): Take node pointer,
7190 do not register types.
7191 (lto_preload_common_nodes): Explicitly skip preloading nodes
7192 that differ between frontends.
7193
66bd20e7 71942011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
7195
7196 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7197 NON_FLOAT_REGS.
7198
66bd20e7 71992011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
7200
7201 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7202 parameter value for dump. Dump cost on outermost call only.
7203 (rs6000_memory_move_cost): Dump cost on outermost call only.
7204
7351d8da
JJ
72052011-05-31 Jakub Jelinek <jakub@redhat.com>
7206
ead7c399
JJ
7207 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7208 DW_OP_GNU_convert ops.
7209
509f4495
JJ
7210 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7211 cselib_preserve_constants.
7212 (cselib_lookup_1): If cselib_preserve_constants,
7213 a new VALUE is being created for REG and there is a VALUE for the
7214 same register in wider mode, add another loc with lowpart SUBREG of
7215 the wider VALUE.
7216 (cselib_subst_to_values): Handle ENTRY_VALUE.
7217 * var-tracking.c (replace_expr_with_values): Return NULL for
7218 ENTRY_VALUE too.
7219 * dwarf2out.c (convert_descriptor_to_signed): New function.
7220 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7221 instead of two shifts.
7222 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7223 the right mode if needed.
7224 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7225 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7226 convert_descriptor_to_signed.
7227 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7228 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7229
7351d8da
JJ
7230 PR target/48688
7231 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7232
5cc93ee0
UB
72332011-05-31 Uros Bizjak <ubizjak@gmail.com>
7234
7235 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7236 of X87MODEI12 and SWI48x instead of SSEMODEI24.
7237 (SWI248x): New mode iterator, rename from X87MODEI.
7238 (X87MODEI): Remove mode iterator.
7239 (X87MODEI12): Ditto.
7240 (SSEMODEI24): Ditto.
7241
f0686e78
AO
72422011-05-31 Alexandre Oliva <aoliva@redhat.com>
7243
7244 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7245 * doc/invoke.texi: Document max-vartrack-expr-depth.
7246 * var-tracking.c (EXPR_DEPTH): New.
7247 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7248
f3308413
AO
72492011-05-31 Alexandre Oliva <aoliva@redhat.com>
7250
7251 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7252 * config/i386/sse.md: Add n to negated FMA pattern names.
7253
28c14a04
AO
72542011-05-31 Alexandre Oliva <aoliva@redhat.com>
7255
7256 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7257
70efc82d
AO
72582011-05-31 Alexandre Oliva <aoliva@redhat.com>
7259
5cc93ee0 7260 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 7261
6ba5d856
UB
72622011-05-31 Uros Bizjak <ubizjak@gmail.com>
7263
7264 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7265 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7266
72672011-05-31 Uros Bizjak <ubizjak@gmail.com>
7268
7269 * config/i386/i386.md (*movtf_internal): Avoid allocating general
7270 registers. Penalize F*r->o alternative to prevent partial memory
7271 stalls. Slightly penalize *roF->*r alternative. Generate SSE
7272 CONST_DOUBLE immediates when optimizing function for size. Do not move
7273 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7274 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7275 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7276 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7277 alternatives.
7278 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7279
7280 (fp_register_operand splitters): Use fp_register_operand
7281 constraint. Do not use FP_REG_P in insn condition.
7282 (any_fp_register_operand splitters): Use any_fp_register_operand
7283 constraint. Do not use ANY_FP_REG_P in insn condition.
7284
533c07c5
JH
72852011-05-31 Jan Hubicka <jh@suse.cz>
7286
7287 * cgraph.h (cgraph_inline_failed_t): Give enum a name
7288 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7289 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7290 (lto_output_edge): Use output_enum and var_len_unsigned.
7291 (lto_output_varpool_node): Likewise.
7292 (input_overwrite_node): Do not take resolution parameter;
7293 extract it from a bitpack.
7294 (input_node): Do not read resolution; use input_enum and
7295 var_len_unsigned.
7296 (input_varpool_node): Likewise.
7297 (input_edge): Likewise.
7298 (input_cgraph_1): Likewise.
7299
2611db71
RG
73002011-05-31 Richard Guenther <rguenther@suse.de>
7301
7302 * gimple.c (gimple_register_canonical_type): Do not register
7303 any types via gimple_register_type.
7304
b9e57365
JH
73052011-05-31 Jan Hubicka <jh@suse.cz>
7306
7307 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7308 of thunks.
7309
35979cc2
JJ
73102011-05-31 Jakub Jelinek <jakub@redhat.com>
7311
7312 PR rtl-optimization/49235
7313 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7314 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7315
8f7de592
IR
73162011-05-31 Ira Rosen <ira.rosen@linaro.org>
7317
7318 PR tree-optimization/49093
7319 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7320 data references.
7321
8d8a3bda
DS
73222011-05-31 Dodji Seketeli <dodji@redhat.com>
7323
7324 PR debug/49047
7325 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 7326 for concrete functions containing the code of cloned functions.
8d8a3bda 7327
2e87621c
RG
73282011-05-31 Richard Guenther <rguenther@suse.de>
7329
7330 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7331 to ...
7332 (forward_propagate_into_comparison_1): ... this.
7333 (forward_propagate_comparison): Rename to ...
7334 (forward_propagate_into_comparison): ... this. Split out
7335 real forward propagation code to ...
7336 (forward_propagate_comparison): ... this.
7337 (forward_propagate_into_gimple_cond): Remove looping.
7338 (forward_propagate_into_cond): Likewise.
7339 (simplify_not_neg_expr): Return whether we have done something.
7340 (simplify_gimple_switch): Likewise.
7341 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7342 (ssa_forward_propagate_and_combine): ... this. Re-structure
7343 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 7344 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
7345 (pass_forwprop): Adjust.
7346
5a880d5d
ILT
73472011-05-30 Ian Lance Taylor <iant@google.com>
7348
7349 * godump.c (go_format_type): Correct length of name added to
7350 obstack for anonymous field.
7351
5f133038
KK
73522011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
7353
7354 PR target/49186
7355 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7356 part of the second operand is 0.
7357
b17d5426
UB
73582011-05-30 Uros Bizjak <ubizjak@gmail.com>
7359
7360 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7361 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
7362 to memory for !TARGET_MEMORY_MISMATCH_STALL.
7363 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 7364 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
7365 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
7366 when optimizing function for size. Do not move CONST_DOUBLEs
7367 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
7368 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
7369 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
7370 check for ANY_FP_REGNO_P instead.
7371 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
7372 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
7373 function for speed.
7374 * config/i386/i386.c (ix86_option_override_internal): Do not
7375 set TARGET_INTEGER_DFMODE_MOVES here.
7376
a0cd843f
L
73772011-05-30 H.J. Lu <hongjiu.lu@intel.com>
7378
7379 PR target/49168
aad61732 7380 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 7381
006a5f38
JJ
73822011-05-30 Jakub Jelinek <jakub@redhat.com>
7383
7384 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
7385 DW_TAG_rvalue_reference_type even for
7386 -gdwarf-4 -fno-debug-types-section.
7387
6e96f98a
BS
73882011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7389
7390 PR tree-optimization/46728
7391 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
7392 (build_and_insert_binop): New.
7393 (gimple_expand_builtin_pow): Reorder args for
7394 build_and_insert_call; use build_and_insert_binop; add more
7395 optimizations for fractional exponents.
b17d5426 7396
4f60111f
NF
73972011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
7398
7399 PR bootstrap/49190
7400
7401 Revert:
7402 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7403
7404 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7405 tree_common.
7406 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7407 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7408 TS_BASE instead of TS_COMMON.
7409 * varasm.c (assemble_name): Remove assert.
7410
3fd7879d
RS
74112011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
7412
7413 * config.gcc: Keep obselete list sorted.
7414
80060f7a
JJ
74152011-05-30 Jakub Jelinek <jakub@redhat.com>
7416 Eric Botcazou <ebotcazou@adacore.com>
7417
7418 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7419 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7420 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7421 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7422 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7423
17e99cdb
RG
74242011-05-30 Richard Guenther <rguenther@suse.de>
7425
7426 * gimple.c (gimple_types_compatible_p_1): Compare record
7427 and union type members properly.
7428
42b05b6e
RG
74292011-05-30 Richard Guenther <rguenther@suse.de>
7430
7431 PR tree-optimization/49210
6ba5d856
UB
7432 * ipa-split.c (split_function): Care for the case where the call
7433 result is not trivially convertible to the result holding variable.
42b05b6e 7434
f3321158
RG
74352011-05-30 Richard Guenther <rguenther@suse.de>
7436
7437 PR tree-optimization/49218
7438 * tree-vrp.c (adjust_range_with_scev): Properly check whether
7439 overflow occured.
7440
d12d8efe
RG
74412011-05-30 Richard Guenther <rguenther@suse.de>
7442
7443 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7444 New function split out from ...
7445 (forward_propagate_into_gimple_cond): ... here. Adjust.
7446 (forward_propagate_into_cond): Likewise.
7447 (forward_propagate_comparison): Also propagate into
7448 comparisons on assignment RHS. Change return value to
7449 behave similar to forward_propagate_into_cond.
7450 (tree_ssa_forward_propagate_single_use_vars): Handle
7451 strict-overflow warnings properly for forward_propagate_comparison.
7452
df33b41f
RO
74532011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7454
7455 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7456 from plugin linker.
7457 * configure: Regenerate.
7458
69940d4d
IR
74592011-05-30 Ira Rosen <ira.rosen@linaro.org>
7460
7461 PR tree-optimization/49199
7462 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 7463 non-reduction operands are either defined in the loop or by induction.
69940d4d 7464
226c52aa
XDL
74652011-05-29 Xinliang David Li <davidxl@google.com>
7466
7467 * opts-global.c (handle_common_deferred_options): Handle new options.
7468 * passes.c (register_one_dump_file): Call register_pass_name.
7469 (execute_one_pass): Check explicit enable/disable flag.
7470 (passr_hash): New function.
7471 (passr_eq): Ditto.
7472 (register_pass_name): Ditto.
7473 (get_pass_by_name): Ditto.
7474 (pass_hash): Ditto.
7475 (pass_eq): Ditto.
7476 (enable_pass): Ditto.
7477 (disable_pass): Ditto.
7478 (is_pass_explicitly_enabled_or_disabled): Ditto.
7479
491d8eed
UB
74802011-05-29 Uros Bizjak <ubizjak@gmail.com>
7481
7482 * config/i386/i386.md (*movoi_internal_avx): Use
7483 standard_sse_constant_opcode for alternative 0.
7484 (*movti_internal_sse): Ditto.
7485 (*movti_internal_rex64): Use standard_sse_constant_opcode for
7486 alternative 2.
7487 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7488 sselog1 type moves.
7489 (*movsi_internal): Ditto.
7490 (*movdi_internal): Ditto. Add ssecvt type moves.
7491
eb93b31f
EB
74922011-05-29 Eric Botcazou <ebotcazou@adacore.com>
7493
7494 PR target/48830
7495 * rtlanal.c (simplify_subreg_regno): Adjust comment.
7496
3f831b7d
JJ
74972011-05-29 Jakub Jelinek <jakub@redhat.com>
7498
7499 PR rtl-optimization/49095
7500 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7501 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7502
ee3ee488
RS
75032011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7504
7505 PR target/43995
7506 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7507 recurse_p argument. Only follow register copies if it is set,
7508 and prevent mips_find_pic_call_symbol from recursing.
7509 (mips_find_pic_call_symbol): Add a recurse_p argument.
7510 Pass it to mips_pic_call_symbol_from_set.
7511 (mips_annotate_pic_calls): Update accordingly.
7512
65f3dedb
RS
75132011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7514
7515 * emit-rtl.c (try_split): Use a loop to search for
7516 NOTE_INSN_CALL_ARG_LOCATIONs.
7517
61e374ab
RG
75182011-05-29 Richard Guenther <rguenther@suse.de>
7519
7520 PR tree-optimization/49217
7521 * ipa-pure-const.c (propagate_pure_const): Fix typos.
7522
fac009a8
JH
75232011-05-28 Jan Hubicka <jh@suse.cz>
7524
7525 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7526 length.
7527 (string_slot_free): Remove
7528 (create_output_block): Initialize obstack.
7529 (destroy_output_block): Free obstack.
7530 (lto_string_index): Add PERSISTENT parameter; do not duplicate
7531 the string unless it needs to be added into the hash.
7532 (lto_output_string_with_length): Add persistent attribute;
7533 handle NULL strings.
7534 (lto_output_string): Add PERSISTENT parameter.
7535 (output_string_cst, output_identifier): Simplify.
7536 (lto_output_location_bitpack): Update.
7537 (lto_output_builtin_tree): Update.
7538 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
7539 (lto_output_string, lto_output_string_with_length): Remove
7540 declarations; functions are static now.
fac009a8 7541
fa766006
JH
75422011-05-28 Jan Hubicka <jh@suse.cz>
7543
7544 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7545 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7546 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7547 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7548 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7549 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7550 unpack_ts_decl_with_vis_value_fields,
7551 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7552 lto_get_builtin_tree): Use enum and variable length i/o.
7553 * basic-block.h (profile_status_d): Add PROFILE_LAST.
7554 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7555 New functions.
7556 (bp_pack_enum, bp_unpack_enum): New macros.
7557
e092158b
RS
75582011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7559
7560 * genrecog.c: Remove redundant forward declarations.
7561
7ca2afa0
RS
75622011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7563
7564 * config.gcc: Deprecate mips*-*-openbsd*.
7565
a601a53a
RS
75662011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7567
7568 PR bootstrap/49195
7569 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7570 for match_op_dup.
7571
fc64b448
AP
75722011-05-27 Andrew Pinski <pinskia@gmail.com>
7573
7574 PR middle-end/48981
7575 * gengtype.c (vec_prefix_type): New function.
7576 (note_def_vec): Use vec_prefix_type and change the length
7577 attribute to be based on the prefix.
7578 * vec.c: Include coretypes.h before vec.h.
7579 (struct vec_prefix): Remove.
7580 (vec_gc_p_reserve): Change the offsetof to sizeof.
7581 (vec_gc_p_reserve_exact): Likewise.
7582 (vec_heap_p_reserve): Likewise.
7583 (vec_heap_p_reserve_exact): Likewise.
7584 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7585 (vec_stack_p_reserve): Change the offsetof to sizeof.
7586 (vec_stack_p_reserve_exact): Likewise.
7587 * vec.h (struct vec_prefix): New struct definition.
7588 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7589 (VEC_T_GTY(T,B)): Likewise.
7590 (DEF_VEC_FUNC_P(T)): Use prefix field.
7591 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7592 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7593
ba869341
BS
75942011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7595
7596 PR tree-optimization/46728
7597 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7598 (powi_as_mults): Add gimple_set_location.
7599 (build_and_insert_call): New.
7600 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7601 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 7602
d296760d
AM
76032011-05-27 Alexander Monakov <amonakov@ispras.ru>
7604
7605 * doc/contrib.texi: Update copyright years.
7606 (Contributors): Add Zdenek Sojka.
7607
38e01f9e
NF
76082011-05-27 Nathan Froyd <froydnj@codesourcery.com>
7609
7610 * c-decl.c (c_push_function_context): Copy the current statement
7611 list stack.
7612 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7613 (finish_struct): Call building_stmt_list_p instead of checking
7614 cur_stmt_list.
7615 * c-parser.c (c_parser_postfix_expression): Likewise.
7616 * c-typeck.c (c_end_compound_stmt): Likewise.
7617 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7618 * tree-iterator.c (stmt_list_cache): Change to a VEC.
7619 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7620 (free_stmt_list): Likewise.
7621 * tree.h (struct tree_statement_list): Include typed_tree instead
7622 of tree_common.
7623 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7624 as TS_TYPED instead of TS_COMMON.
7625
8950516e 76262011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 7627 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
7628
7629 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7630 (HAVE_AS_IX86_TLSGDPTL): Define.
7631 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7632 (HAVE_AS_IX86_TLSLDMPLT): Define.
7633 * configure: Regenerate.
7634 * config.in: Regenerate.
7635 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7636 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7637 TARGET_SUN_TLS, use @tlsgdplt or @plt.
7638 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7639 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7640 @tlsldmplt or @plt.
7641 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7642
b0bd15f7
BS
76432011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7644
7645 * sched-int.h (struct _haifa_deps_insn_data): New members cond
7646 and reverse_cond.
7647 (INSN_COND, INSN_REVERSE_COND): New macros.
7648 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7649 once.
7650 (sched_get_condition_with_rev): Cache the results, and look them up
7651 if possible.
7652 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7653 are clobbered by the current insn.
7654 * target.def (exposed_pipline): New sched data hook.
7655 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7656 * doc/tm.texi: Regenerate.
7657
fa65a9cf
BS
76582011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7659
7660 PR tree-optimization/49170
7661 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
7662 sincos or cexp.
b0bd15f7 7663
c2299dfe
RG
76642011-05-27 Richard Guenther <rguenther@suse.de>
7665
7666 PR middle-end/49189
7667 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7668 of comparisons.
7669
a95b23b4
BS
76702011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7671
7672 * haifa-sched.c (sched_scan_info): Remove.
7673 (schedule_block): Call sched_extend_luids rather than sched_init_luids
7674 with NULL args.
7675 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
7676 Remove functions.
7677 (sched_scan): Remove.
7678 (sched_extend_luids): Renamed from luids_extend_insn and no longer
7679 static. All callers changed.
7680 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
7681 static. All callers changed.
7682 (sched_init_luids): Remove all arguments except the first. All
7683 callers changed. Don't use sched_scan.
7684 (haifa_init_h_i_d): Likewise.
7685 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
7686 manually rather than using sched_init_luids. Likewise with
7687 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
7688 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
7689 rather than sched_init_luids with NULL args.
7690 * sel-sched-ir.c (new_insns): Remove variable.
7691 (sched_scan): New static function, previously in haifa-sched.c. Remove
7692 all arguments but the first two; all callers changed.
7693 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
7694 rather than sched_init_luids.
7695 (sel_init_bbs): Remove second argument. All callers changed.
7696 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
7697 with NULL arguments.
7698 (create_insn_rtx_from_pattern): Likewise.
7699 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
7700 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
7701 (sched_init_insn_luid, sched_extend_luids): Declare.
7702 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
7703 declarations.
7704
f8f972fc
RB
77052011-05-27 Richard Guenther <rguenther@suse.de>
7706
7707 PR middle-end/49177
7708 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
7709 A CMP B ? (T) true : (T) false for non-integral types T again.
7710
51a9ed47
JH
77112011-05-27 Jan Hubicka <jh@suse.cz>
7712
7713 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
7714 so 0 means NULL string.
7715 (lto_output_string_with_length): ... here.
f8f972fc
RB
7716 (lto_output_string, output_string_cst, output_identifier): Update
7717 handling of NULL strings.
51a9ed47
JH
7718 (lto_output_location_bitpack): New function.
7719 (lto_output_location): Use it.
7720 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
7721 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
7722 len values.
7723 * lto-streamer-in.c (string_for_index): Break out from ...; offset
7724 values by 1.
491d8eed 7725 (input_string_internal): ... here;
f8f972fc
RB
7726 (input_string_cst, input_identifier, lto_input_string): Update handling
7727 of NULL strings.
51a9ed47
JH
7728 (lto_input_location_bitpack): New function
7729 (lto_input_location): Use it.
f8f972fc
RB
7730 (unpack_ts_type_common_value_fields): Pack align & alias in var len
7731 values.
51a9ed47
JH
7732 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
7733 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
7734 (bp_pack_value): Sanity check the value range.
7735 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
7736 New functions.
7737 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
7738 New functions.
7739
66bd20e7 77402011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
7741
7742 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
7743 call_arg_location instructions down the floor.
7744
574e418a
VM
77452011-05-26 Vladimir Makarov <vmakarov@redhat.com>
7746
7747 PR rtl-optimization/49154
7748 * ira.c (setup_pressure_classes): Process class without sublcasses
7749 as a candidate for pressure classes.
7750
6a1a787e
RS
77512011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
7752
7753 PR rtl-optimization/48575
7754 * genrecog.c (position_type): New enum.
7755 (position): New structure.
7756 (decision): Use position structure instead of a string.
7757 (root_pos, peep2_insn_pos_list): New variables.
7758 (next_position, compare_positions): New functions.
7759 (new_decision): Use position structures instead of strings.
7760 (maybe_both_true): Likewise.
7761 (change_state): Likewise.
7762 (write_tree): Likewise.
7763 (make_insn_sequence): Likewise.
7764
92e948a8
NF
77652011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7766
7767 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
7768 TS_BASE instead of TS_COMMON.
7769 (find_decls_types_r): Check for TS_TYPED structure before looking at
7770 TREE_TYPE.
7771 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
7772 Add chain field.
7773 (BLOCK_CHAIN): Use new chain field.
7774
66bd20e7 77752011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
7776
7777 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
7778 moves expensive on Power7 also.
7779
1f498652
RG
77802011-05-26 Richard Guenther <rguenther@suse.de>
7781
7782 * fold-const.c (fold_unary_loc): Remove bogus code.
7783
a2fc3e63
NF
77842011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7785
7786 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7787 tree_common.
7788 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7789 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7790 TS_BASE instead of TS_COMMON.
7791 * varasm.c (assemble_name): Remove assert.
7792
d11bf18f
BS
77932011-05-26 Bernd Schmidt <bernds@codesourcery.com>
7794
7795 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
7796 substituted first.
7797 * libgcc-std.ver: Delete file.
7798
ac8e1875
RG
77992011-05-26 Richard Guenther <rguenther@suse.de>
7800
7801 PR tree-optimization/48702
7802 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
7803 only when we know the base address is within bounds.
7804 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
7805 assume the base address of TARGET_MEM_REFs is in bounds.
7806
7e32e652
RO
78072011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7808
7809 PR target/49099
7810 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
7811 declaration in TARGET_SOLARIS.
7812
66bd20e7 78132011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
7814
7815 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 7816 The instruction is then expanded explicitly.
43660e0b
HS
7817 (supported_compare): Callable instruction.
7818 (compare): Likewise.
7819
1537737f
JJ
78202011-05-26 Jakub Jelinek <jakub@redhat.com>
7821
7822 PR c++/49165
7823 * gimplify.c (shortcut_cond_r): Don't special case
7824 COND_EXPRs if they have void type on one of their arms.
7825
7b1ac803
BS
78262011-05-26 Bernd Schmidt <bernds@codesourcery.com>
7827
7828 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
7829 to reduce duplication, and to achieve a slightly more logical order
7830 of operations.
7831
1aa9438f
JJ
78322011-05-26 Jakub Jelinek <jakub@redhat.com>
7833
7834 PR tree-optimization/49161
7835 * tree-vrp.c (struct case_info): New type.
7836 (compare_case_labels): Sort case_info structs instead of
7837 trees, and not primarily by CASE_LABEL uids but by
7838 label_for_block indexes.
7839 (find_switch_asserts): Put case labels into struct case_info
7840 array instead of TREE_VEC, adjust sorting, compare label_for_block
7841 values instead of CASE_LABELs.
7842
50fed7bf
RR
78432011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7844
7845 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
7846 ("orndi3_neon"): Likewise.
7847 ("bic<mode>3_neon"): Likewise.
7848
48df3fa6
IR
78492011-05-26 Ira Rosen <ira.rosen@linaro.org>
7850
7851 PR tree-optimization/49038
7852 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
7853 Ensure at least one epilogue iteration if required by data
7854 accesses with gaps.
7855 * tree-vectorizer.h (struct _loop_vec_info): Add new field
7856 to mark loops that require peeling for gaps.
7857 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
7858 (vect_get_known_peeling_cost): Take peeling for gaps into
7859 account.
7860 (vect_transform_loop): Generate epilogue if required by data
7861 access with gaps.
7862 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
7863 loop as requiring an epilogue if there are gaps in the end of
7864 the strided group.
7865
53febcba
ILT
78662011-05-25 Ian Lance Taylor <iant@google.com>
7867
7868 * godump.c (go_format_type): Output the first field with a usable
7869 Go type, if any.
7870
dbbc4d4c
ILT
78712011-05-25 Ian Lance Taylor <iant@google.com>
7872
7873 * godump.c (go_format_type): Check for invalid type names, pointer
7874 target types, and struct field types.
7875
f03a5402
JM
78762011-05-25 Jason Merrill <jason@redhat.com>
7877
7878 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
7879
c497c412
UB
78802011-05-25 Uros Bizjak <ubizjak@gmail.com>
7881
7882 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
7883
e470affe
L
78842011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7885
7886 * config/i386/i386.md (*movqi_extv_1)): Put back
7887 "register_operand" check in "type" calculation.
7888 (*movqi_extzv_2): Likewise.
7889
6c81b2bc
L
78902011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7891
c497c412 7892 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 7893
0c007eb2
BS
78942011-05-25 Bernd Schmidt <bernds@codesourcery.com>
7895
7896 PR bootstrap/49160
7897 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
7898 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
7899 __divxc3, __divtc3): Wrap definitions in #ifndef.
7900
521ca78e
L
79012011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7902
7903 PR target/49142
7904 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
7905 "register_operand" check and replace q_regs_operand with
7906 QIreg_operand in "type" calculation.
7907 (*movqi_extv_1): Likewise.
7908 (*movqi_extzv_2_rex64): Likewise.
7909 (*movqi_extzv_2): Likewise.
7910
7911 * config/i386/predicates.md (QIreg_operand): New.
7912
29f8b844
RG
79132011-05-25 Richard Guenther <rguenther@suse.de>
7914
7915 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7916 type-based offset disambiguation, streamline MEM_REF and
7917 TARGET_MEM_REF handling.
7918
74838de3
L
79192011-05-25 H.J. Lu <hongjiu.lu@intel.com>
7920
7921 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
7922 (bdesc_special_args): Add pause intrinsic.
7923
7924 * config/i386/i386.md (UNSPEC_PAUSE): New.
7925 (pause): Likewise.
7926 (*pause): Likewise.
7927 * config/i386/ia32intrin.h (__pause): Likewise.
7928
7929 * doc/extend.texi (X86 Built-in Functions): Add documentation for
7930 pause intrinsic.
7931
d24ad7d6
BS
79322011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7933
7934 PR tree-optimization/46728
7935 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
7936 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 7937
d9f8303f
NF
79382011-05-25 Nathan Froyd <froydnj@codesourcery.com>
7939
7940 * tree.h (struct tree_exp): Inherit from struct tree_typed.
7941 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
7942 instead of TS_COMMON.
7943
cdbf4541
BS
79442011-05-25 Bernd Schmidt <bernds@codesourcery.com>
7945
7946 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
7947 LIBGCC2_GNU_PREFIX is defined.
7948 (__N): New macro.
7949 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
7950 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
7951 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
7952 __clz_tab): Define using __N.
7953 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
7954 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
7955 * target.def (libfunc_gnu_prefix): New hook.
7956 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
7957 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
7958 * doc/tm.texi: Regenerate.
7959 * system.h (LIBGCC2_GNU_PREFIX): Poison.
7960 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
7961 account.
7962 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
7963 (init_optabs): Likewise for the bswap libfuncs.
7964 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
7965 and divide.
7966 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
7967 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
7968 * libgcc-std.ver: Remove.
7969 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
7970 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
7971 libgcc-std.ver.
7972 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7973 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
7974 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
7975 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
7976 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
7977 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7978 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
7979 * config/fixed-bit.h (FIXED_OP): Define differently depending on
7980 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
7981 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
7982
f242c0a5
JH
79832011-05-25 Jan Hubicka <jh@suse.cz>
7984
7985 * lto-streamer-out.c (output_record_start): Use lto_output_enum
7986 (lto_output_tree): Use output_record_start.
7987 * lto-streamer-in.c (input_record_start): Use lto_input_enum
7988 (lto_get_pickled_tree): Use input_record_start.
7989 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
7990 (lto_value_range_error): New function.
7991 * lto-streamer.h (lto_value_range_error): Declare.
7992 (lto_output_int_in_range, lto_input_int_in_range): New functions.
7993 (lto_output_enum, lto_input_enum): New macros.
7994
a11e0df4
EB
79952011-05-25 Eric Botcazou <ebotcazou@adacore.com>
7996
7997 * common.opt (flag_stack_usage_info): New variable.
7998 (-Wstack-usage): New option.
7999 * doc/invoke.texi (Warning options): Document -Wstack-usage.
8000 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8001 <OPT_fstack_usage>: Likewise.
8002 * toplev.c (output_stack_usage): Handle -Wstack-usage.
8003 * calls.c (expand_call): Test flag_stack_usage_info variable instead
8004 of flag_stack_usage.
8005 (emit_library_call_value_1): Likewise.
8006 * explow.c (allocate_dynamic_stack_space): Likewise.
8007 * function.c (instantiate_virtual_regs ): Likewise.
8008 (prepare_function_start): Likewise.
8009 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8010 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8011 * config/arm/arm.c (arm_expand_prologue): Likewise.
8012 (thumb1_expand_prologue): Likewise.
8013 * config/avr/avr.c (expand_prologue): Likewise.
8014 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8015 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8016 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8017 * config/mips/mips.c (mips_expand_prologue): Likewise.
8018 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8019 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8020 * config/s390/s390.c (s390_emit_prologue): Likewise.
8021 * config/sh/sh.c (sh_expand_prologue): Likewise.
8022 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8023 * config/spu/spu.c (spu_expand_prologue): Likewise.
8024
e7cfe241
RG
80252011-05-25 Richard Guenther <rguenther@suse.de>
8026
8027 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8028 (gimple_canonical_types_compatible_p): Likewise.
8029
c5235f4c
JH
80302011-05-25 Jan Hubicka <jh@suse.cz>
8031
8032 PR middle-end/49062
8033 * ipa.c (function_and_variable_visibility): Only add to same
8034 comdat group list if DECL_ONE_ONLY.
8035
8242a0f6
AB
80362011-05-25 Andrey Belevantsev <abel@ispras.ru>
8037
8038 PR rtl-optimization/49014
8039 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8040
642a011d
JJ
80412011-05-25 Jakub Jelinek <jakub@redhat.com>
8042
8043 PR target/49128
8044 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8045
30a435d8
VM
80462011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8047
8048 PR rtl-optimization/48757
8049 * ira-build.c (loop_with_eh_edge_p): Rename to
8050 loop_with_complex_edge_p, check edges on complexity, make function
8051 conditional.
8052 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8053 conditional.
8054
24d1bbc7
EB
80552011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8056
8057 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8058 force flag_ira_share_save_slots to 0.
8059
65773087
EB
80602011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8061
8062 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8063 (vt_initialize): Set PROLOGUE_BB unconditionally.
8064 Add block comment about CFA_BASE_RTX machinery.
8065 Reset FP_CFA_OFFSET to -1 on all invalid paths.
8066 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8067
4e26ba90
NP
80682011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
8069
8070 PR objc/48187
8071 * c-parser.c (c_parser_objc_class_instance_variables): More robust
8072 parsing of syntax error in ObjC instance variable lists. In
8073 particular, avoid an infinite loop if there is a stray ']'.
8074 Updated error message.
8075
936fd13c
ILT
80762011-05-24 Ian Lance Taylor <iant@google.com>
8077
8078 * godump.c (go_define): Don't accept a string immediately after
8079 another operand.
8080
f17333e3
ILT
80812011-05-24 Ian Lance Taylor <iant@google.com>
8082
8083 * godump.c (struct godump_container): Add invalid_hash field.
8084 (go_format_type): Return false if type is found in invalid_hash.
8085 (go_output_typedef): Add invalid type to invalid_hash.
8086 (go_finish): Create and delete invalid_hash.
8087
d24ad7d6 80882011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 8089
78be79d5
BS
8090 PR tree-optimization/46728
8091 * tree-ssa-math-opts.c (powi_table): New.
8092 (powi_lookup_cost): New.
8093 (powi_cost): New.
8094 (powi_as_mults_1): New.
8095 (powi_as_mults): New.
8096 (gimple_expand_builtin_powi): New.
8097 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8098 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 8099
caee412b
RO
81002011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8101
8102 PR target/3746
8103 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8104 mips-tdump native.
8105 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8106 * mips-tdump.c: Likewise.
8107
5eed4f27
L
81082011-05-24 H.J. Lu <hongjiu.lu@intel.com>
8109
8110 PR target/49128
8111 * config/i386/driver-i386.c (host_detect_local_cpu): Always
8112 add -mno-XXX. Handle FMA.
8113
8c5fdaae
VM
81142011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8115
8116 PR rtl-optimization/48633
8117 * ira-build.c (loop_with_eh_edge_p): New function.
8118 (mark_loops_for_removal): Use it.
8119
81202011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
8121
8122 PR rtl-optimization/48971
8123 * ira.c (setup_pressure_classes): Don't check register move cost
8124 for classes with one registers. Don't add pressure class if there
8125 is a pressure class with the same available hard registers.
8126 Check contains_reg_of_mode. Fix a typo in collecting
8127 temp_hard_regset. Ignore hard registers not belonging to a class.
8128
df1f7315
UB
81292011-05-24 Uros Bizjak <ubizjak@gmail.com>
8130
8131 PR target/49133
8132 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8133
ee0cb37c
EB
81342011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8135 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8136
8137 PR gcov-profile/48845
8138 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8139
6a20ce76
RG
81402011-05-24 Richard Guenther <rguenther@suse.de>
8141
8142 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8143 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8144 (gimple_types_compatible_p_1): Adjust.
8145 (iterative_hash_canonical_type): Do not bother about complete vs.
8146 incomplete types.
8147 (gimple_canonical_types_compatible_p): Likewise.
8148
2fcb858c
RO
81492011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8150
8151 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8152
96d91dcf
RG
81532011-05-24 Richard Guenther <rguenther@suse.de>
8154
8155 PR bootstrap/49078
8156 * gimple.c (gimple_register_canonical_type): Revert
8157 previous change.
8158 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8159 does not for a tree for the case where it matters. Cache
8160 pointer-type alias-sets.
8161
1ed1641d
JM
81622011-05-24 Joseph Myers <joseph@codesourcery.com>
8163
8164 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8165 (OBJS): Remove options.o, opts-common.o and prefix.o.
8166 (OBJS-libcommon-target): New.
8167 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8168 (BACKEND): Include libcommon-target.a.
8169 (MOSTLYCLEANFILES): Include libcommon-target.a.
8170 (libcommon-target.a): New.
8171 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8172 prefix.o.
8173
57dfdff0
JM
81742011-05-23 Joseph Myers <joseph@codesourcery.com>
8175
8176 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
8177 parts of output shared with the driver.
8178 * optc-gen.awk: Don't generate parts of output not shared with the
8179 driver.
8180 * opth-gen.awk: Remove GCC_DRIVER conditionals.
8181 * doc/options.texi (SourcerInclude): Mention options-save.c.
8182 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8183 (OBJS): Add options-save.o.
8184 (options-save.c, options-save.o): New.
8185 (options.o): Update dependencies.
8186 (gcc-options.o): Remove.
8187 (mostlyclean): Remove options-save.c.
8188
0e0d82a7
JJ
81892011-05-23 Jakub Jelinek <jakub@redhat.com>
8190
9166988f
JJ
8191 PR debug/49032
8192 * dbxout.c: Include cgraph.h.
8193 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8194 and without value expr, return NULL if no varpool node exists for
8195 it or if it is not needed.
8196 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8197
0e0d82a7
JJ
8198 PR c/49120
8199 * c-decl.c (start_decl): Convert expr to void_type_node.
8200
65712d5c
RS
82012011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
8202
8203 PR rtl-optimization/48826
8204 * emit-rtl.c (try_split): When splitting a call that is followed
8205 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8206
9025085e
JJ
82072011-05-23 Jakub Jelinek <jakub@redhat.com>
8208
8209 * cfgexpand.c (expand_debug_expr): For unused non-addressable
8210 parameters passed in memory prefer using DECL_INCOMING_RTL over
8211 the pseudos it will be copied into.
8212
34a061be
L
82132011-05-23 H.J. Lu <hongjiu.lu@intel.com>
8214
8215 PR target/47315
8216 * config/i386/i386.c (ix86_option_override_internal): Save the
8217 initial options after checking vzeroupper.
8218
c375a3a4
DL
82192011-05-23 David Li <davidxl@google.com>
8220
8221 PR tree-optimization/48988
8222 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8223 Initialize has_valid_pred for each pred chain.
8224
e1caba18
RG
82252011-05-23 Richard Guenther <rguenther@suse.de>
8226
8227 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8228 (iterative_hash_gimple_type): Always hash type names.
8229
dde05067
NF
82302011-05-23 Nathan Froyd <froydnj@codesourcery.com>
8231
8232 * c-typeck.c (build_function_call_vec): Tweak call to
8233 check_function_arguments.
8234
094f6ab3
RG
82352011-05-23 Richard Guenther <rguenther@suse.de>
8236
8237 PR tree-optimization/49115
8238 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8239 is not necessarily carried out, do not claim it kills the ref.
8240 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8241
9a9822e1
RG
82422011-05-23 Richard Guenther <rguenther@suse.de>
8243
8244 PR middle-end/15419
8245 * builtins.c (fold_builtin_memory_op): Be less restrictive about
8246 what pointer types we accept for folding.
8247
c8028650
RO
82482011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8249
8250 * gthr-gnat.c: Remove.
8251 * gthr-gnat.h: Remove.
8252 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8253 * config/t-freebsd (LIB2ADDEH): Likewise.
8254 * config/t-linux (LIB2ADDEH): Likewise.
8255 * config/t-sol2 (LIB2ADDEH): Likewise.
8256 * config/ia64/t-vms (LIB2ADDEH): Likewise.
8257 * configure.ac (target_thread_file): Remove gnat handling.
8258 * configure: Regenerate.
8259 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8260
15882fe9
TG
82612011-05-23 Tristan Gingold <gingold@adacore.com>
8262 Eric Botcazou <ebotcazou@adacore.com>
8263
8264 * gcov.c (create_file_names): If no object directory is specified,
8265 keep the directory of the file.
8266
da90c957
RO
82672011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8268
8269 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8270 * configure: Regenerate.
8271
7bba408b
JJ
82722011-05-23 Jakub Jelinek <jakub@redhat.com>
8273
8274 PR middle-end/48973
8275 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8276 failed and the comparison has a single bit signed type, use
8277 constm1_rtx instead of const1_rtx for true value.
8278 (do_store_flag): If ops->type is single bit signed type, disable
8279 signel bit test optimization and pass -1 instead of 1 as last
8280 parameter to emit_store_flag_force.
8281
bc69f7ff
TV
82822011-05-23 Tom de Vries <tom@codesourcery.com>
8283
8284 PR target/45098
8285 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8286 function.
8287 (infer_loop_bounds_from_undefined): Use new function.
8288
29cedf8e
RS
82892011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8290
8291 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8292 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
8293 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8294 and -O0 otherwise.
8295 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8296
afe8b6ec
EB
82972011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8298
8299 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8300 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8301 returns true.
8302
872dab53
RS
83032011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8304
8305 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8306
145f6c5b
EB
83072011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8308
8309 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8310 UNSPEC_MOVE_PIC pattern.
8311
8ac79835
EB
83122011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8313
8314 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8315 (sparc-*-rtems*): Likewise.
8316 (sparc64-*-elf*): Likewise.
8317 (sparc64-*-rtems*): Likewise.
8318 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
8319 * config/sparc/t-crtin: New file.
8320 * config/sparc/t-sol2 (crti.o): Delete rule.
8321 (crtn.o): Likewise.
8322 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8323 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8324 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8325 (ENDFILE_SPEC): Add crtn.o.
8326
5fb43dd8
TV
83272011-05-22 Tom de Vries <tom@codesourcery.com>
8328
8329 PR middle-end/48689
8330 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8331 CODE_CONTAINS_STRUCT (TS_COMMON).
8332
ccb1b17b
JJ
83332011-05-22 Jakub Jelinek <jakub@redhat.com>
8334
8335 PR middle-end/49029
8336 * expmed.c (extract_fixed_bit_field): Test whether target can be used
8337 only after deciding which mode to use.
8338
50ad7db2
TV
83392011-05-22 Tom de Vries <tom@codesourcery.com>
8340
8341 PR target/45098
dc0a3366 8342 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
8343 for call to get_shiftadd_cost.
8344
ef230b38
UB
83452011-05-22 Uros Bizjak <ubizjak@gmail.com>
8346
8347 PR target/49104
8348 * config/i386/cpuid.h (bit_MMXEXT): New define.
8349
15f072f9
NC
83502011-05-22 Nick Clifton <nickc@redhat.com>
8351
8352 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8353 initialisation of non-existant args[2] element. Use args[] array
8354 not arg[] array to pass arguments to build_function_type_list.
8355
e38fdc94
IR
83562011-05-22 Ira Rosen <ira.rosen@linaro.org>
8357
8358 PR tree-optimization/49087
ef230b38 8359 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 8360
5b018c65
JM
83612011-05-21 Jason Merrill <jason@redhat.com>
8362
8363 PR c++/49092
8364 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8365 static storage duration.
8366
abd9a770
EB
83672011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8368
8369 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8370 frame pointer.
8371
bd9a3248
EB
83722011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8373
8374 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
8375 false if there are call-saved registers here...
8376 (sparc_can_use_return_insn_p): ...but here instead.
8377 (save_or_restore_regs): Fix thinko.
8378 (sparc_expand_prologue): Use current_function_is_leaf.
8379 (sparc_frame_pointer_required): Likewise.
8380
a5dfec9a
NC
83812011-05-21 Nick Clifton <nickc@redhat.com>
8382
8383 PR target/49098
8384 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
8385
555c3771
NP
83862011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
8387
8388 * gengtype.c (walk_type): Implemented "atomic" GTY option.
8389 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
8390
86fa5de4
JM
83912011-05-21 Joseph Myers <joseph@codesourcery.com>
8392
8393 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
8394 * optc-gen.awk: Move common code to opt-read.awk.
8395 * opth-gen.awk: Likewise.
ef230b38 8396 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 8397
bce33ab2
NF
83982011-05-20 Nathan Froyd <froydnj@codesourcery.com>
8399
8400 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
8401
e6450c11
TV
84022011-05-20 Tom de Vries <tom@codesourcery.com>
8403
8404 PR target/45098
8405 * tree-ssa-loop-ivopts.c: Include expmed.h.
8406 (get_shiftadd_cost): New function.
8407 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
8408
0e8b84ec
JJ
84092011-05-20 Jakub Jelinek <jakub@redhat.com>
8410
8411 PR bootstrap/49086
8412 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8413 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8414
946bdf67
JM
84152011-05-20 Joseph Myers <joseph@codesourcery.com>
8416
8417 * Makefile.in: Update comment referring to $(OBJS-common).
8418
c53aafdf
ILT
84192011-05-20 Ian Lance Taylor <iant@google.com>
8420
8421 * godump.c (go_output_typedef): Put enum constants in the macro
8422 hash table to avoid duplicate Go const definitions.
8423
2691e6d7
JM
84242011-05-20 Joseph Myers <joseph@codesourcery.com>
8425
8426 * Makefile.in (LIBDEPS): Add libcommon.a.
8427 (LIBS): Likewise.
8428 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8429 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8430 pretty-print.o and version.o.
8431 (OBJS-libcommon): New.
8432 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8433 (BACKEND): Add libcommon.a.
8434 (MOSTLYCLEANFILES): Likewise.
8435 (libcommon.a): New.
8436 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8437 (cpp$(exeext)): Likewise.
8438 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8439 pretty-print.o and input.o.
8440 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8441 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8442 (errors.o): Remove.
8443 (mips-tfile): Don't explicitly use version.o.
8444 (mips-tdump): Likewise.
8445 (gcov.o): Depend on $(DIAGNOSTIC_H).
8446 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8447 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8448 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8449 * gcov-dump.c: Include intl.h and diagnostic.h.
8450 (main): Initialize diagnostics.
8451 * gcov.c: Include diagnostic.h.
8452 (fnotice): Remove.
8453 (main): Initialize diagnostics.
8454 * lto-wrapper.c: Include diagnostic.h.
8455 (main): Initialize diagnostics.
8456
252b3e8c
MM
84572011-05-20 Michael Matz <matz@suse.de>
8458
8459 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8460
2ee36ba6
MM
84612011-05-20 Michael Matz <matz@suse.de>
8462 Richard Guenther <rguenther@suse.de>
8463
8464 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8465 use lto_streamer_cache_append directly instead of returning a VEC.
8466 (preload_common_node): Remove.
8467 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8468 track seen nodes.
8469 (lto_streamer_cache_create): Call lto_preload_common_nodes.
8470
90ff582f
RG
84712011-05-20 Richard Guenther <rguenther@suse.de>
8472
8473 PR tree-optimization/49079
8474 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8475 MEM_REFs correctly for the trailing array access detection.
8476 Special case constants the same way as decls for overall size
8477 constraining.
8478
3cda91d8
UB
84792011-05-20 Uros Bizjak <ubizjak@gmail.com>
8480
8481 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8482 argument expansion.
8483
6c66f733
JJ
84842011-05-20 Jakub Jelinek <jakub@redhat.com>
8485
8486 PR tree-optimization/49073
3cda91d8
UB
8487 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8488 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
8489 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8490
0ea80a16
RG
84912011-05-20 Richard Guenther <rguenther@suse.de>
8492
8493 PR middle-end/48849
8494 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8495 of pointer types the same way the middle-end does.
8496
fb291a1e
RG
84972011-05-20 Richard Guenther <rguenther@suse.de>
8498
3cda91d8
UB
8499 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8500 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 8501
37cb25ed
QN
85022011-05-19 Quentin Neill <quentin.neill@amd.com>
8503
8504 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8505 (fma4_fmaddsub): Likewise
8506
a30726a4
JH
85072011-05-19 Jan Hubicka <jh@suse.cz>
8508
8509 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8510 (GIMPLE_TYPE_PAIR_SIZE): New macro.
8511 (type_pair_cache): New static var.
8512 (lookup_type_pair): Use fixed sized custom hash; make inline.
8513 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8514 calls of lookup_type_pair.
8515 (print_gimple_types_stats): Remove cache stats.
8516 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8517 and gtc_ob.
8518
0955cf61
UB
85192011-05-19 Uros Bizjak <ubizjak@gmail.com>
8520
8521 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8522 when TARGET_RDRND is active.
8523 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8524 Generate dummy SImode target register when target is NULL.
8525
12d844c8
JM
85262011-05-19 Joseph Myers <joseph@codesourcery.com>
8527
8528 * config/arm/arm-fpus.def: New.
8529 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8530 arm-fpus.def.
8531 * config/arm/arm-tables.opt: Regenerate.
8532 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8533 (arm_option_override): Don't decode FPU name to string here.
8534 * config/arm/arm.opt (mfpu=): Use Enum.
8535 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8536 Update dependencies.
8537
9e350e99
JM
85382011-05-19 Joseph Myers <joseph@codesourcery.com>
8539
8540 * collect2.c: Include diagnostic.h.
8541 (fatal_perror, fatal, error, fancy_abort): Remove.
8542 (main): Set progname. Call xmalloc_set_program_name and
8543 diagnostic_initialize.
8544 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8545 scan_libraries, resolve_lib_name): Call fatal_error instead of
8546 fatal and fatal_perror.
8547 * collect2.h (error, fatal, fatal_perror): Don't declare.
8548 * tlink.c: Include diagnostic-core.h.
8549 (recompile_files): Call fatal_error instead of fatal_perror.
8550 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8551 pretty-print.o and input.o.
8552 (collect2.o, tlink.o): Update dependencies.
8553
86ff4081
RO
85542011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8555
8556 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8557
2ca48caa
RO
85582011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8559
8560 PR target/40483
8561 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8562 COMDAT group syntax, both SPARC and x86 variants.
8563 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8564 * configure: Regenerate.
8565 * config/sol2.h (TARGET_SOLARIS): Define.
8566 (PUSHSECTION_FORMAT): Remove.
8567 (SECTION_NAME_FORMAT): Define.
8568 * config/sol2.c: Include hashtab.h.
8569 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8570 expansion, using SECTION_NAME_FORMAT.
8571 (solaris_comdat_htab): New variable.
8572 (struct comdat_entry): Define.
8573 (comdat_hash): New function.
8574 (comdat_eq): New function.
8575 (solaris_elf_asm_comdat_section): New function.
8576 (solaris_define_comdat_signature): New function.
8577 (solaris_code_end): New function.
8578 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8579 (solaris_code_end): Declare.
8580 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8581 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8582 solaris_code_end.
8583 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8584 Remove ATTRIBUTE_UNUSED.
8585 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8586 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 8587 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
8588 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8589 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8590 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8591 (PUSHSECTION_FORMAT): Remove.
8592 (SECTION_NAME_FORMAT): Redefine.
8593
da5fb469
KT
85942011-05-19 Kai Tietz <ktietz@redhat.com>
8595
8596 * tree-cfg.c (verify_gimple_assign_binary): Barf on
8597 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8598 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8599
1651e703 86002011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
8601 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8602
8603 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8604
e497b9bd
RG
86052011-05-19 Richard Guenther <rguenther@suse.de>
8606
8607 PR middle-end/48985
8608 * tree-object-size.c (addr_object_size): If the pointed-to
8609 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8610
31b3ca64
RG
86112011-05-19 Richard Guenther <rguenther@suse.de>
8612
8613 * gimple.c (gimple_types_compatible_p_1): Compare names of
8614 the types themselves.
8615 (iterative_hash_gimple_type): And hash them that way.
8616 (gimple_register_type_1): If we register a main variant properly
8617 initialize the leader to ourselves.
8618
bb8d292d
TV
86192011-05-19 Tom de Vries <tom@codesourcery.com>
8620
8621 PR target/45098
8622 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8623 get_loop_invariant_expr_id.
8624 (get_loop_invariant_expr_id): Use get_expr_id.
8625 (parm_decl_cost): New function.
8626 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8627 Improve bound cost estimation. Use different inv_expr_id for elim and
8628 express cases.
8629
a53c5024
TV
86302011-05-19 Tom de Vries <tom@codesourcery.com>
8631
8632 PR target/45098
8633 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8634 cost_base.cost == 0.
8635
31f9eb59
L
86362011-05-18 H.J. Lu <hongjiu.lu@intel.com>
8637
8638 PR target/49002
66bd20e7
EB
8639 * config/i386/sse.md
8640 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8641 load cast.
31f9eb59 8642
681056ae
JJ
86432011-05-18 Jakub Jelinek <jakub@redhat.com>
8644
8645 PR tree-optimization/49039
8646 * tree-vrp.c (extract_range_from_binary_expr): For
8647 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8648 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8649
b5ee6752
TV
86502011-05-18 Tom de Vries <tom@codesourcery.com>
8651
8652 PR target/45098
8653 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8654
0bda47a3
UB
86552011-05-18 Uros Bizjak <ubizjak@gmail.com>
8656
8657 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8658 (*tls_global_dynamic_64): Ditto.
8659 (*tls_local_dynamic_base_32_gnu): Ditto.
8660 (*tls_local_dynamic_base_64): Ditto.
8661 (tls_initial_exec_64_sun): Ditto.
8662
033b0805
SH
86632011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
8664
8665 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8666 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8667 bf592-none.
8668 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8669 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8670 * config/bfin/bfin.c (bfin_cpus): Add bf592.
8671 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 8672 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
8673 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
8674 * config/bfin/elf.h (LIB_SPEC): Add bf592.
8675
ba163417
JM
86762011-05-18 Joseph Myers <joseph@codesourcery.com>
8677
8678 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 8679 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
8680 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
8681 target_thread_pointer, arm_structure_size_boundary, struct
8682 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
8683 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
8684 (arm_option_override) Don't process most enumerated option values here.
8685 Don't process target_fpe_name here. Work with integer not string for
8686 structure size boundary; use separate diagnostics for each case.
ba163417
JM
8687 * config/arm/arm.h (enum float_abi_type, enum
8688 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
8689 to arm-opts.h.
8690 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
8691 arm_structure_size_boundary): Remove.
8692 * config/arm/arm.opt (mabi=): Use Enum and Init.
8693 (arm_abi_type): New Enum and EnumValue entries.
8694 (mfloat-abi=): Use Enum and Init.
8695 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 8696 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
8697 (mfp16-format=): Use Enum and Init.
8698 (arm_fp16_format_type): New Enum and EnumValue entries.
8699 (mstructure-size-boundary=): Use UInteger and Init.
8700 (mtp=): Use Enum and Init.
8701 (arm_tp_type): New Enum and EnumValue entries.
8702
179184e3
RG
87032011-05-18 Richard Guenther <rguenther@suse.de>
8704
8705 PR tree-optimization/49018
8706 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
8707 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
8708 gimple_has_side_effects.
8709
93b2a207
RG
87102011-05-18 Richard Guenther <rguenther@suse.de>
8711
8712 * gimple.c (gimple_register_type_1): New function, split out from ...
8713 (gimple_register_type): ... here. Avoid infinite recursion.
8714
b010117a
IR
87152011-05-18 Ira Rosen <ira.rosen@linaro.org>
8716
8717 PR tree-optimization/41881
8718 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8719 reduction_chains along with a macro for its access.
8720 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
8721 (destroy_loop_vec_info): Free reduction chains.
8722 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
8723 (vect_is_slp_reduction): New function.
8724 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
8725 (vect_create_epilog_for_reduction): Support SLP reduction chains.
8726 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
8727 definition types for reduction chains.
8728 (vect_supported_load_permutation_p): Don't allow permutations for
8729 reduction chains.
8730 (vect_analyze_slp_instance): Support reduction chains.
8731 (vect_analyze_slp): Try to build SLP instance from reduction chains.
8732 (vect_get_constant_vectors): Handle reduction chains.
8733 (vect_schedule_slp_instance): Mark the first statement of the
8734 reduction chain as reduction.
8735
e14c1050
IR
87362011-05-18 Ira Rosen <ira.rosen@linaro.org>
8737
8738 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
8739 names for group elements access.
8740 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
8741 reduction chains as well. Remove data reference and interleaving
8742 related words from the fields names.
8743 * tree-vect-loop.c (vect_transform_loop): Use new names for group
8744 elements access.
8745 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
8746 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
8747 vect_update_interleaving_chain, vect_same_range_drs,
8748 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
8749 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
8750 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
8751 vect_analyze_group_access, vect_analyze_data_ref_access,
8752 vect_create_data_ref_ptr, vect_transform_strided_load,
8753 vect_record_strided_load_vectors): Likewise.
8754 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
8755 vect_model_load_cost, vectorizable_store, vectorizable_load,
8756 vect_remove_stores, new_stmt_vec_info): Likewise.
8757 * tree-vect-slp.c (vect_build_slp_tree,
8758 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
8759
51c213f7
RG
87602011-05-18 Richard Guenther <rguenther@suse.de>
8761
8762 PR middle-end/48989
8763 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
8764 operand verification.
8765 (verify_gimple_assign_binary): Likewise.
8766 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
8767 to non-1-precision BOOLEAN_TYPEs.
8768
8f5e5434
TV
87692011-05-18 Tom de Vries <tom@codesourcery.com>
8770
8771 PR target/45098
8772 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
8773
116bc3a4
JJ
87742011-05-18 Jakub Jelinek <jakub@redhat.com>
8775
8776 PR tree-optimization/49000
8777 * tree-ssa.c (execute_update_addresses_taken): Call
8778 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
8779 be rewritten and decl has been marked for renaming, reset
8780 the debug stmt.
8781
26a8964c
JM
87822011-05-17 Joseph Myers <joseph@codesourcery.com>
8783
8784 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
8785 enum_opts_set when testing if attributes have set -mfpmath=.
8786
82bd45d7
RS
87872011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
8788
8789 * config/mips/mips.c (mips_handle_option): Remove unused variable.
8790
267ffce3
UB
87912011-05-17 Uros Bizjak <ubizjak@gmail.com>
8792
8793 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
8794 info->entry with 0
8795 * tree-inline.c (maybe_inline_call_in_expr): Initialize
8796 id.transform_lang_insert_block with NULL.
8797
87982011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
8799
8800 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
8801 (output_fp_compare): Change args 3 and 4 to bool.
8802 (ix86_expand_call): Change arg 6 to bool.
8803 (ix86_attr_length_immediate_default): Change arg 2 to bool.
8804 (ix86_attr_length_vex_default): Change arg 3 to bool.
8805 * config/i386/i386.md: Update all uses.
8806 * config/i386/i386.c: Ditto.
8807 (ix86_flags_dependent): Change return type to bool.
8808
5beaf664
RG
88092011-05-17 Richard Guenther <rguenther@suse.de>
8810
8811 * gimple.c (type_hash_pair_compare): Fix comparison.
8812
008bad7a
RG
88132011-05-17 Richard Guenther <rguenther@suse.de>
8814
8815 * gimple.c (iterative_hash_gimple_type): Simplify singleton
8816 case some more, fix final hash value of the non-singleton case.
8817
36461340
RG
88182011-05-17 Richard Guenther <rguenther@suse.de>
8819
8820 PR bootstrap/49013
8821 Revert
8822 2011-05-16 Richard Guenther <rguenther@suse.de>
8823
8824 * gimple.c (gimple_types_compatible_p_1): Use names of the
8825 type itself, not its main variant.
8826 (iterative_hash_gimple_type): Likewise.
8827
6b6a59f3
RG
88282011-05-17 Richard Guenther <rguenther@suse.de>
8829
8830 * gimple.c (gimple_register_canonical_type): Use the main-variant
8831 leader for computing the canonical type.
8832
4ffc4134
NC
88332011-05-17 Nick Clifton <nickc@redhat.com>
8834
a1d8754e
NC
8835 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
8836 moves.
8837
4ffc4134
NC
8838 * config/rx/rx.md: Add peephole to remove redundant extensions
8839 after loads.
39960f7a
NC
8840 (bitset_in_memory): Use rx_restricted_mem_operand.
8841 (bitinvert_in_memory): Likewise.
8842 (bitclr_in_memory): Likewise.
4ffc4134 8843
b3db92ac
KI
88442011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
8845 Nick Clifton <nickc@redhat.com>
8846
8847 * config/rx/rx.md: Add peepholes to match a register move followed
8848 by a comparison of the moved register. Replace these with an
8849 addition of zero that does both actions in one instruction.
8850
8637e32a
JJ
88512011-05-17 Jakub Jelinek <jakub@redhat.com>
8852
8853 PR target/48986
8854 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
8855 predicate to allow CONST_INT.
8856 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
8857
8023568e
JM
88582011-05-16 Joseph Myers <joseph@codesourcery.com>
8859
8860 * opts-common.c (opt_enum_arg_to_value): New.
8861 * opts.h (opt_enum_arg_to_value): Declare.
8862 * config/i386/i386.opt (fpmath): Remove.
8863 (mfpmath=): Use Enum, Init and Save.
8864 (fpmath_unit): New Enum and EnumValue entries.
8865 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
8866 name for function fpmath state.
8867 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
8868 * config/i386/i386.c: Include diagnostic.h.
8869 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 8870 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 8871 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 8872 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
8873 (x86_function_specific_save, ix86_function_specific_restore):
8874 Don't handle fpmath state specially.
8875 (ix86_function_specific_print): Pass fpmath state to
8876 ix86_target_string instead of printing in this function.
8877 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
8878 Handle enum attributes.
8879 (IX86_ATTR_ENUM, ix86_opt_enum): New.
8880 (ix86_valid_target_attribute_tree): Update option_strings
8881 handling. Handle fpmath as enum option.
8882 (ix86_can_inline_p): Update field names for function fpmath state.
8883 (ix86_expand_builtin): Update call to ix86_target_string.
8884 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
8885 (ix86_fpmath): Remove.
8886 * config/i386/t-i386 (i386.o): Update dependencies.
8887
9e8d926e
JM
88882011-05-16 Joseph Myers <joseph@codesourcery.com>
8889
8890 PR preprocessor/48677
8891 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
8892 from decoded_options[0], not from itself.
8893
f6449011
UB
88942011-05-16 Uros Bizjak <ubizjak@gmail.com>
8895
8896 * config/i386/constraints.md (z): New constraint.
8897 * config/i386/i386.c (c): New mode attribute.
8898 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
8899 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
8900 constraint for operand 0.
8901 (*call_vzeroupper): Ditto.
8902 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
8903 (*call_rex64_ms_sysv_vzeroupper): Ditto.
8904 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
8905 Use "lzm" constraint for operand 0.
8906 (*call_pop_vzeroupper): Ditto.
8907 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
8908 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
8909 constraint for operand 0.
8910 (*sibcall_vzeroupper): Ditto.
8911 (*sibcall_rex64_ms_sysv): Ditto.
8912 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
8913 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
8914 *sibcall_pop_1. Use "Uz" constraint for operand 0.
8915 (*sibcall_pop_vzeroupper): Ditto.
8916 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
8917 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
8918 mode iterator. Use "<c>zm" constraint for operand 1.
8919 (*call_value_vzeroupper): Ditto.
8920 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 8921 for operand 1.
f6449011
UB
8922 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
8923 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
8924 *call_value_pop_1. Use "lzm" constraint for operand 1.
8925 (*call_value_pop_vzeroupper): Ditto.
8926 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
8927 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
8928 mode iterator. Use "Uz" constraint for operand 1.
8929 (*sibcall_value_vzeroupper): Ditto.
8930 (*sibcall_value_rex64_ms_sysv): Ditto.
8931 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
8932 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
8933 constraint for operand 1.
8934 (*sibcall_value_pop_vzeroupper): Ditto.
8935 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
8936 and "z" constraint for operand 2.
8937 (*tls_global_dynamic_32_gnu): Ditto.
8938 (*tls_local_dynamic_base_32_gnu): Ditto.
8939 (*tls_local_dynamic_base_64): Ditto.
8940 (*tls_local_dynamic_32_once): Ditto.
8941 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
8942 Update all callers.
8943 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
8944
c11b6902
RG
89452011-05-16 Richard Guenther <rguenther@suse.de>
8946
8947 * gimple.c (gimple_types_compatible_p_1): Use names of the
8948 type itself, not its main variant.
8949 (iterative_hash_gimple_type): Likewise.
8950
1e83b5f1
RG
89512011-05-16 Richard Guenther <rguenther@suse.de>
8952
f6449011
UB
8953 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
8954 always visit pointer target and function result and argument types.
1e83b5f1 8955
62e36382
JM
89562011-05-16 Jason Merrill <jason@redhat.com>
8957
8958 PR c++/48999
8959 * tree-inline.c (copy_statement_list): Put back recursion.
8960
687027a4
GJL
89612011-05-16 Georg-Johann Lay <avr@gjlay.de>
8962
8963 PR target/27663
8964 PR target/41076
8965 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
8966 * config/avr/avr.md ("*ior<mode>qi.byte0",
8967 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
8968
f24a5190
GJL
89692011-05-16 Georg-Johann Lay <avr@gjlay.de>
8970
8971 PR target/45099
8972 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
8973 register is needed for a function argument.
8974
3066f593
RG
89752011-05-16 Richard Guenther <rguenther@suse.de>
8976
8977 * gimple.c (struct type_hash_pair): New type.
8978 (type_hash_pair_compare): New function.
f6449011 8979 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 8980
b2ab2cf4
RE
89812011-05-16 Revital Eres <revital.eres@linaro.org>
8982
f6449011 8983 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 8984
dfb737fc
UB
89852011-05-15 Uros Bizjak <ubizjak@gmail.com>
8986
8987 * config/i386/i386.md (floating point move splitters): Fix
8988 usage of standard_80387_constant_p.
f6449011 8989 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 8990
8caa1de0
UB
89912011-05-15 Uros Bizjak <ubizjak@gmail.com>
8992
8993 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
8994
8a519095
EB
89952011-05-14 Eric Botcazou <ebotcazou@adacore.com>
8996
8997 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
8998 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
8999 (tree_ssa_lim_finalize): Likewise.
9000
479fecd3
UB
90012011-05-14 Uros Bizjak <ubizjak@gmail.com>
9002
9003 * config/i386/constraint.md (Yd, Yx): New register constraints.
9004 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
9005 Yd conditional register constraint.
9006 (*movtf_internal): Use standard_sse_constant_opcode.
9007 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
9008 Yx conditional register constraint.
9009 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
9010 Yd conditional register constraint. Use standard_sse_constant_p to
9011 check for valid SSE constants and call standard_sse_constant_opcode to
9012 output SSE insn.
9013 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9014 constants and call standard_sse_constant_opcode to output SSE insn.
9015 * config/i386/i386.c (ix86_option_ovverride_internal): Set
9016 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
9017 optimize_size is set.
9018 (standard_sse_constant_opcode): Output conditional AVX insn templates.
9019
2d8c9ad5
TB
90202011-05-14 Tobias Burnus <burnus@net-b.de>
9021
9022 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9023
411a20d6
MJ
90242011-05-13 Martin Jambor <mjambor@suse.cz>
9025
9026 * ipa-prop.c (ipa_cst_from_jfunc): New function.
9027 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9028 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9029 (evaluate_conditions_for_ipcp_clone): Removed.
9030 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9031 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9032 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9033
dc764d10
EB
90342011-05-13 Eric Botcazou <ebotcazou@adacore.com>
9035
9036 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9037 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9038 lieu of MAY_HAVE_DEBUG_STMTS.
9039 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9040 debug statements if !MAY_HAVE_DEBUG_STMTS.
9041
9f47a24e
MT
90422011-05-13 Martin Thuresson <martint@google.com>
9043
9044 PR gcov-profile/47793
9045 * libgcov.c (gcov_exit): Support relative profile paths.
9046 * doc/invoke.texi (-fprofile-dir): Update for above change.
9047
b8a71aed
RG
90482011-05-13 Richard Guenther <rguenther@suse.de>
9049
9050 * gimple.c (gimple_canonical_types_compatible_p): Do not use
9051 type-pair caching, do not compare hashes.
9052
eb9f9259
NF
90532011-05-13 Nathan Froyd <froydnj@codesourcery.com>
9054
9055 PR middle-end/48965
9056 * tree-cfg.c (edge_to_cases_cleanup): Return true.
9057 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9058
3c6cbf7a
KT
90592011-05-13 Kai Tietz <ktietz@redhat.com>
9060
9061 * gimplify.c (gimplify_expr): Make sure operand is boolified.
9062 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9063 compatible type for TRUTH_NOT_EXPR.
9064
2e7f5dc0
L
90652011-05-13 H.J. Lu <hongjiu.lu@intel.com>
9066
dc764d10 9067 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
9068 (ix86_hard_regno_mode_ok): Change return value to bool. Use
9069 can_create_pseudo_p ().
9070
e834e95c
RG
90712011-05-13 Richard Guenther <rguenther@suse.de>
9072
9073 PR lto/48978
9074 * gimple.c (iterative_hash_gimple_type): Revert change in
9075 pointer target and function result and argument hashing.
9076
34203483
UB
90772011-05-13 Uros Bizjak <ubizjak@gmail.com>
9078
9079 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9080 (*movxf_internal_nointeger): Ditto.
9081 (*movdf_internal_rex64): Ditto.
9082 (*movdf_internal): Ditto.
9083 (*movdf_internal_nointeger): Ditto.
9084 (*movsf_internal): Ditto.
9085 (sincos splitters): Use can_create_pseudo ().
9086
7eb68c06
JM
90872011-05-13 Joseph Myers <joseph@codesourcery.com>
9088
9089 * config/i386/i386-opts.h: New.
9090 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9091 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9092 ix86_section_threshold): Remove.
9093 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
9094 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9095 OPT_mbranch_cost_.
9096 (ix86_option_override_internal): Don't decode strings for options
9097 other than -march=, -mtune= and -mfpmath=. Don't allow for
9098 __attribute__ uses in remaining diagnostics for options with
34203483 9099 string arguments. Don't check for integer arguments being negative.
7eb68c06 9100 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 9101 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
9102 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9103 ix86_branch_cost, ix86_section_threshold): Remove.
9104 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9105 HeaderInclude.
9106 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9107 but not Var.
9108 (masm=): Use Enum and Init.
9109 (asm_dialect): New Enum and EnumValue entries.
9110 (mbranch-cost=): Use UInteger.
9111 (mlarge-data-threshold=): Use UInteger and Init.
9112 (mcmodel=): Use Enum and Init.
9113 (cmodel): New Enum and EnumValue entries.
9114 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9115 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9116 mregparm=): Use UInteger.
9117 (mstringop-strategy=): Use Enum and Init.
9118 (stringop_alg): New Enum and EnumValue entries.
9119 (mtls-dialect=): Use Enum and Init.
9120 (tls_dialect): New Enum and EnumValue entries.
9121 (mabi=): Use Enum and Init.
9122 (calling_abi): New Enum and EnumValue entries.
9123 (mveclibabi=): Use Enum and Init.
9124 (ix86_veclibabi): New Enum and EnumValue entries.
9125
f67e203c
NC
91262011-05-13 Nick Clifton <nickc@redhat.com>
9127
34203483
UB
9128 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9129 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 9130
221df0b6
KT
91312011-05-13 Kai Tietz <ktietz@redhat.com>
9132
9133 PR middle-end/48984
9134 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9135 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9136 (gimple_boolify): Check for cast for boolean_type_node instead for
9137 BOOLEAN_TYPE.
9138
208cb8cb
RG
91392011-05-13 Richard Guenther <rguenther@suse.de>
9140
9141 PR tree-optimization/48172
9142 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9143 multiplying by number of iterations for equal step.
9144 (vect_create_cond_for_alias_checks): Likewise.
9145
b88ecf55
AS
91462011-05-13 Andreas Schwab <schwab@redhat.com>
9147
9148 * configure.ac: Use AS_HELP_STRING throughout.
9149 * configure: Regenerate.
9150
569b527e
L
91512011-05-12 H.J. Lu <hongjiu.lu@intel.com>
9152
34203483 9153 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
9154 (ix86_emit_restore_regs_using_mov): Likewise.
9155 (ix86_emit_restore_sse_regs_using_mov): Likewise.
9156
8b9a1428
AS
91572011-05-12 Anatoly Sokolov <aesok@post.ru>
9158
9159 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9160 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9161 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9162 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9163 RTX_OK_FOR_OLO10_P): ...here.
9164 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9165 SYMBOLIC_CONST.
9166
1d15f620
KT
91672011-05-12 Kai Tietz <ktietz@redhat.com>
9168
9169 * gimplify.c (gimple_boolify): Re-boolify expression
9170 arguments even if expression type is of kind BOOLEAN_TYPE.
9171 (gimplify_boolean_expr): Removed.
9172 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9173 and XOR. Additional take care that we keep expression's type.
9174 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9175 of TRUTH_AND|OR|XOR_EXPR.
9176
c2b5fc8d
JJ
91772011-05-12 Jakub Jelinek <jakub@redhat.com>
9178
9179 PR tree-optimization/48975
9180 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9181 on all bbs here and free and clear ifc_bbs at the end.
9182
61332f77
RG
91832011-05-12 Richard Guenther <rguenther@suse.de>
9184
9185 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9186 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
9187 until after simple checks.
9188 (gimple_types_compatible_p): Likewise.
9189 (iterative_hash_gimple_type): Always hash pointer targets
9190 and function return and argument types.
9191 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9192 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
9193 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9194 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
9195 completely in the simple compare section.
9196 (gimple_register_canonical_type): Query the cache again after
9197 registering.
9198
e2a3a5f1
RG
91992011-05-12 Richard Guenther <rguenther@suse.de>
9200
9201 PR tree-optimization/48172
9202 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9203 the number of iterations from the segment size calculation.
9204 (vect_create_cond_for_alias_checks): Adjust.
9205
2c703f3a
JJ
92062011-05-12 Jakub Jelinek <jakub@redhat.com>
9207
9208 PR debug/48967
9209 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9210 if validate_subreg fails.
9211
92122011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
9213
9214 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9215 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9216 early.
9217
87e91fca
DD
92182011-05-12 DJ Delorie <dj@redhat.com>
9219
d53903d6 9220 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
9221 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9222 created builtin into rx_builtins array.
9223 (rx_builtin_decl): New function.
34203483 9224 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 9225
5f2f13fd
DD
92262011-05-12 DJ Delorie <dj@redhat.com>
9227 Nick Clifton <nickc@redhat.com>
9228
9229 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9230 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9231 (rx_is_legitimate_address): Add pre-decrement and post-increment
9232 addressing in HImode and QImode. Fix test for out of range
9233 REG+INT addressing.
87e91fca 9234 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 9235 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 9236 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 9237 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 9238
57421f45
JM
92392011-05-11 Jason Merrill <jason@redhat.com>
9240
9241 * tree.c (type_hash_canon): Use struct tree_type_non_common.
9242
898c90c0
EB
92432011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9244
9245 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9246 reindent the subsequent block.
9247
79bec923
ST
92482011-05-11 Satoru Takabayashi <satorux@google.com>
9249 Paul Pluzhnikov <ppluzhnikov@google.com>
9250
34203483 9251 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
9252 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9253 * config.in: Add LINKER_HASH_STYLE.
9254 * configure.ac: Add --with-linker-hash-style.
9255 * configure: Regenerate.
79bec923 9256
d0340959
RG
92572011-05-11 Richard Guenther <rguenther@suse.de>
9258
9259 PR middle-end/48964
9260 * gimple.c (iterative_hash_canonical_type): Fix typo.
9261
cb032fee
UB
92622011-05-11 Uros Bizjak <ubizjak@gmail.com>
9263
9264 * config/i386/i386.c (legitimize_tls_address)
479fecd3 9265 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
9266 expanders directly for TARGET_GNU2_TLS. Determine pic and
9267 __tls_get_addr symbol reference here. Update call to
9268 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 9269 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
9270 expanders directly for TARGET_GNU2_TLS. Determine
9271 __tls_get_addr symbol reference here. Update call to
9272 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
9273 unique UNSPEC REG_EQUIV to libcall block.
9274 (ix86_tls_get_addr): Declare static.
9275 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9276 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9277 Do not determine pic and __tls_get_addr symbol reference here. Do not
9278 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9279 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9280 (tls_global_dynamic_64): Add operand 2. Do not determine
9281 __tls_get_addr symbol reference here. Do not call
9282 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9283 (tls_local_dynamic_base64): Ditto for operand 1.
9284
6d3cc8f0
EB
92852011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9286
9287 * function.c (expand_function_start): Initialize stack_check_probe_note
9288 only if the generic stack checking mechanism is used.
9289
51e020fc
RG
92902011-05-11 Richard Guenther <rguenther@suse.de>
9291
9292 PR tree-optimization/15256
9293 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9294 (A & B) | C, combine (A op CST1) op CST2.
9295 (tree_ssa_forward_propagate_single_use_vars): Only bother to
9296 visit assigns that have uses.
9297
51545682
NF
92982011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9299
cb032fee 9300 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
9301 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9302 (unpack_ts_type_common_value_fields): ...this. Update comment.
9303 (unpack_value_fields): Adjust for renaming.
9304 (lto_input_ts_type_tree_pointers): Split into...
9305 (lto_input_ts_type_common_tree_pointer): ...this and...
9306 (lto_input_ts_type_non_common_tree_pointers): ...this.
9307 (lto_input_tree_pointers): Adjust for above split.
9308 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9309 (pack_ts_type_common_value_fields): ...this. Update comment.
9310 (lto_output_ts_type_tree_pointers): Split into...
9311 (lto_output_ts_type_common_tree_pointers): ...this and...
9312 (lto_output_ts_type_non_common_tree_pointers): ...this.
9313 (lto_output_tree_pointers): Adjust for above split.
9314 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9315 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9316 * stor-layout.c (vector_type_mode): Adjust location of mode field.
9317 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9318 Define.
9319 (struct tree_type): Split into...
9320 (struct tree_type_common: ...this and...
9321 (struct tree_type_with_lang_specific): ...this and...
9322 (struct tree_type_non_common): ...this. Adjust accessor macros
9323 accordingly.
9324 (TYPE_VALUES_RAW): Define.
9325 (union tree_node): Update for above changes.
9326 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9327 TS_TYPE_NON_COMMON.
9328 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9329 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9330 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9331 * treestructu.def (TS_TYPE): Remove.
9332 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9333 Define.
9334
b03c3082
JJ
93352011-05-11 Jakub Jelinek <jakub@redhat.com>
9336
9337 PR debug/48159
9338 * tree-ssa.c (reset_debug_uses): New function.
9339 * tree-flow.h (reset_debug_uses): New prototype.
9340 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9341 * tree-loop-distribution.c (generate_loops_for_partition): Call
9342 reset_debug_uses on the stmts that will be removed. Keep around
9343 all debug stmts, don't count them as bits in partition bitmap.
9344 (generate_builtin): Don't count debug stmts or labels as bits in
9345 partition bitmap.
9346
b5e04de5
RG
93472011-05-11 Richard Guenther <rguenther@suse.de>
9348
9349 * gimple.c (gimple_type_hash_1): Merge with ...
9350 (gimple_type_hash): ... this.
9351 (gtc_visit): Remove mode parameter and simplify accordingly.
9352 (gimple_types_compatible_p_1): Likewise.
9353 (gimple_types_compatible_p): Likewise.
9354 (iterative_hash_gimple_type): Likewise.
9355 (visit): Likewise.
9356 (gimple_type_eq): Adjust.
9357
fc6970e4
RE
93582011-05-11 Revital Eres <revital.eres@linaro.org>
9359
9360 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9361 enters the branch create an anti edge in the opposite direction
9362 to prevent the creation of reg-moves.
9363 * modulo-sched.c: Adjust comment to reflect the fact we are
9364 scheduling closing branch.
9365 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9366 (stage_count): New field in struct partial_schedule.
9367 (calculate_stage_count): New function.
9368 (normalize_sched_times): Rename to reset_sched_times and handle
9369 incrementing the sched time of the nodes by a constant value
9370 passed as parameter.
9371 (duplicate_insns_of_cycles): Skip closing branch.
9372 (sms_schedule_by_order): Schedule closing branch.
9373 (ps_insn_find_column): Handle closing branch.
9374 (sms_schedule): Call reset_sched_times and adjust the code to
9375 support scheduling of the closing branch.
9376 (ps_insert_empty_row): Update calls to normalize_sched_times
9377 and rotate_partial_schedule functions.
9378
41a58a92
RG
93792011-05-11 Richard Guenther <rguenther@suse.de>
9380
9381 PR middle-end/48953
9382 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
9383
e9f8dcf9
JM
93842011-05-11 Joseph Myers <joseph@codesourcery.com>
9385
cb032fee
UB
9386 * opts.c (finish_options): Move warning settings from process_options.
9387 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 9388
10c224a9
RG
93892011-05-11 Richard Guenther <rguenther@suse.de>
9390
9391 PR tree-optimization/18041
9392 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
9393 (simplify_bitwise_binary): ... this. Handle operand conversions
9394 by applying them to the result instead.
9395 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
9396
825b27de
RG
93972011-05-11 Richard Guenther <rguenther@suse.de>
9398
9399 * gimple.c (gimple_canonical_types_compatible_p): Split out
9400 from gimple_types_compatible_p and friends. Do not recurse
9401 to pointed-to types.
9402 (gimple_canonical_type_eq): Use it.
9403 (iterative_hash_canonical_type): Split out from
9404 iterative_hash_gimple_type and friends. Do not recurse
9405 to pointed-to types.
9406 (gimple_canonical_type_hash): Use it, allocate the hash here.
9407
ca756625
RE
94082011-05-11 Revital Eres <revital.eres@linaro.org>
9409
9410 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9411 recognizing doloop.
9412
b8abece3
RE
94132011-05-11 Revital Eres <revital.eres@linaro.org>
9414
9415 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9416 instead of PREV_INSN.
9417
ce7b3761
RE
94182011-05-11 Revital Eres <revital.eres@linaro.org>
9419
9420 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9421 * loop-doloop.c (doloop_condition_get): Likewise.
9422 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9423 (doloop_end): New.
9424 * config/arm/arm.md (*addsi3_compare0): Remove "*".
9425
a9dc9d37
NF
94262011-05-10 Nathan Froyd <froydnj@codesourcery.com>
9427
9428 * tree.def (CASE_LABEL_EXPR): Add an operand.
9429 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9430
96703596
JM
94312011-05-10 Joseph Myers <joseph@codesourcery.com>
9432
9433 * c-decl.c (c_override_global_bindings_to_false): Remove.
9434 (global_bindings_p): Don't check
9435 c_override_global_bindings_to_false.
9436 * c-tree.h (c_override_global_bindings_to_false): Remove.
9437 * c-typeck.c (composite_type): Don't set
9438 c_override_global_bindings_to_false.
9439
dbcc9f08
MM
94402011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
9441
9442 PR target/48857, 48495
9443 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9444 (VSX_MODE): Ditto.
9445 (VSX_MOVE_MODE): Ditto.
9446 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9447 VSX vector types. Add V2DImode.
9448 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9449 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9450 (MODES_TIEABLE_P): Ditto.
9451
9452 * config/rs6000/rs6000.c (rs6000_emit_move): Use
9453 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9454 VSX_VECTOR_MODE.
9455 (init_cumulative_args): Ditto.
9456 (rs6000_function_arg_boundary): Ditto.
9457 (rs6000_function_arg_advance_1): Ditto.
9458 (rs6000_function_arg): Ditto.
9459 (rs6000_function_ok_for_sibcall): Ditto.
9460 (emit_frame_save): Ditto.
9461 (rs6000_function_value): Ditto.
9462 (rs6000_libcall_value): Ditto.
9463
4a68b4ca
JM
94642011-05-10 Joseph Myers <joseph@codesourcery.com>
9465
9466 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9467 i386/darwin-lib.h to $libgcc_tm_file.
9468 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9469
bcb521e9
JM
94702011-05-10 Joseph Myers <joseph@codesourcery.com>
9471
9472 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9473
f10d3ac9
JM
94742011-05-10 Joseph Myers <joseph@codesourcery.com>
9475
cb032fee 9476 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
9477 * config/rs6000/rs6000-tables.opt: New file (generated).
9478 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9479 rs6000/rs6000-tables.opt to extra_options.
9480 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9481 * config/rs6000/rs6000.c (rs6000_select): Remove.
9482 (processor_target_table): Move contents to rs6000-cpus.def.
9483 (darwin_rs6000_override_options): Check
9484 global_options_set.x_rs6000_cpu_index instead of
9485 rs6000_select[1].string.
9486 (rs6000_option_override_internal): Likewise.
9487 (rs6000_handle_option): Don't assert that global structures are in
9488 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
9489 (rs6000_default_cpu): New variable.
9490 (rs6000_file_start): Set it instead of local default_cpu. Check
9491 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9492 global_options_set.x_rs6000_tune_index instead of rs6000_select.
9493 (rs6000_darwin_file_start): Check rs6000_default_cpu and
9494 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9495 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9496 rs6000_select): Remove.
9497 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9498 Remove.
9499 (mcpu=, mtune=): Use Var, Init, Enum and Save.
9500 * config/rs6000/t-rs6000
9501 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9502 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9503 global_options_set.x_rs6000_cpu_index instead of
9504 rs6000_select[1].string.
9505 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9506 global_options_set.x_rs6000_cpu_index instead of
9507 rs6000_select[1].string.
9508
80cf2e08
JM
95092011-05-10 Joseph Myers <joseph@codesourcery.com>
9510
9511 * config.gcc (libgcc_tm_file): Define instead of including files
9512 from ../../libgcc/config/ in tm_file.
cb032fee 9513 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
9514 * configure: Regenerate.
9515 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9516 libgcc_tm.h, cs-libgcc_tm.h): New.
9517 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9518 (clean): Remove libgcc_tm.h.
9519 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9520 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9521 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9522
fd01a351
GJL
95232011-05-10 Georg-Johann Lay <avr@gjlay.de>
9524
9525 PR target/48896
9526 * config/avr/avr.c (avr_ret_register): Return unsigned int
9527 instead of int.
9528 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9529 it to avr_libcall_value.
9530 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9531 expand_expr.
9532 (avr_expand_binop_builtin): Ditto.
9533 (avr_expand_unop_builtin): Ditto.
9534
34cc3c86
DD
95352011-05-10 DJ Delorie <dj@redhat.com>
9536
9537 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9538 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9539 * config/rx/rx.c (rx_align_for_label): Add label and
9540 uses_threshold parameters. Do not align when the label is not
9541 used enough.
9542 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9543
be173289
RG
95442011-05-10 Richard Guenther <rguenther@suse.de>
9545
9546 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9547 a series of conversions and apply foldings similar to what
9548 fold-const does.
9549 (tree_ssa_forward_propagate_single_use_vars): Call it.
9550
e7f78021
JJ
95512011-05-10 Jakub Jelinek <jakub@redhat.com>
9552
6ae70ea2
JJ
9553 PR tree-optimization/48611
9554 PR tree-optimization/48794
9555 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9556 referenced from RESX or EH_DISPATCH arguments.
9557
e7f78021
JJ
9558 PR debug/48928
9559 * dfp.c (decimal_to_decnumber): Handle conversion from
9560 dconst{1,2,m1,half}.
9561
fca132b9
UB
95622011-05-09 Uros Bizjak <ubizjak@gmail.com>
9563
9564 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9565 for !flag_prefer_avx128.
9566 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9567
e4c03378
EB
95682011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9569
9570 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9571 (fold_ternary_loc): Use expr_location_or.
9572
805d6a75
L
95732011-05-09 H.J. Lu <hongjiu.lu@intel.com>
9574
9575 PR debug/48853
9576 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9577 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9578 Pmode and mem_mode is not VOIDmode.
9579
e4c03378 95802011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 9581
e4c03378
EB
9582 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9583 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 9584
51e7f377
UB
95852011-05-09 Uros Bizjak <ubizjak@gmail.com>
9586
9587 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9588 (const_pow2_1_to_8_operand): Ditto.
9589 (const_pow2_1_to_128_operand): Ditto.
9590 (const_pow2_1_to_32768_operand): Ditto.
9591 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9592 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
9593 in insn constraint to check integer value of operand 3.
9594 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9595
9596 (PINSR_MODE): New mode iterator.
9597 (sse2p4_1): New mode attribute.
9598 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9599 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9600 iterator. Use const_int_operand instead of
9601 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
9602 exact_log2 in insn constraint to check integer value of operand 3.
9603
96042011-05-09 Uros Bizjak <ubizjak@gmail.com>
9605
9606 * config/i386/sse.md (blendbits): Remove mode attribute.
9607 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9608 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9609 Check integer value of operand 3 in insn constraint.
9610
0ca8de87
RG
96112011-05-09 Richard Guenther <rguenther@suse.de>
9612
9613 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9614 for diagnostics.
9615 (lto_symtab_merge): Likewise. Do not register types here.
9616 (lto_symtab_merge_decls_2): Likewise.
9617 (lto_symtab_merge_decls_1): Likewise.
9618 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9619 * gimple.c (enum gtc_mode): Declare.
9620 (gimple_types_compatible_p): Make static.
9621
a9e6994a
AK
96222011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9623
9624 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9625 temporary register to match Pmode.
9626
fb55d62e
UB
96272011-05-09 Uros Bizjak <ubizjak@gmail.com>
9628
9629 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9630 and *vec_concatv4si_1_avx.
9631
eb1485a6
UB
96322011-05-09 Uros Bizjak <ubizjak@gmail.com>
9633
9634 PR rtl-optimization/48927
9635 * ira-conflicts.c (commutative_constraint_p): Use
9636 recog_data.alternative_enabled_p to disable alternatives where
9637 "enabled" attribute is false.
9638 (get_dup_num): Ditto.
9639 * ira-lives.c (single_reg_class): Ditto.
9640 (ira_implicitly_set_insn_hard_regs): Ditto.
9641
c46d001a
EB
96422011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9643
9644 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9645 (dataflow_set_preserve_mem_locs): Likewise.
9646
96472011-05-09 Philipp Thomas <pth@suse.de>
9648
6d9e7c41
PT
9649 * config/mep/mep.c (mep_validate_vliw): Syntax description
9650 should not be translated.
9651
d371df6f
JM
96522011-05-09 Joseph Myers <joseph@codesourcery.com>
9653
9654 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9655 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 9656 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
9657 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9658 MIPS_ARCH_OPTION_NATIVE): Define.
9659 * config/mips/mips.c (mips_cpu_info_table): Move contents to
9660 mips-cpus.def.
9661 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9662 mips_parse_cpu): Remove.
9663 (mips_cpu_info_from_opt, mips_default_arch): New.
9664 (mips_handle_option): Don't assert that global structures are in
9665 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9666 (mips_option_override): Use new variables and functions to set
eb1485a6 9667 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
9668 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9669 definition.
9670 * config/mips/mips.opt (march=): Use ToLower and Enum.
9671 (mips): Use ToLower, Enum and Var.
9672 (mtune=): Use ToLower and Enum.
9673 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
9674
4fc07af9
JH
96752011-05-08 Jan Hubicka <jh@suse.cz>
9676
9677 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
9678 Arrange type pairs to be UID ordered.
9679 (gimple_lookup_type_leader): Make inline.
9680
2cf320a8
NC
96812011-05-09 Nick Clifton <nickc@redhat.com>
9682
61d6def5
NC
9683 PR target/48899
9684 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
9685 PROCESSOR_DEFAULT.
9686
2cf320a8
NC
9687 PR target/48897
9688 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
9689 variable 's'.
9690
4f82319d
CLT
96912011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
9692
9693 * combine.c (simplify_comparison): Abstract out parts into...
9694 (simplify_compare_const): ... new function.
9695 (try_combine): Generalize parallel arithmetic/compare combining
9696 to call simplify_compare_const() and CANONICALIZE_COMPARE().
9697
74605a11
JH
96982011-05-08 Jan Hubicka <jh@suse.cz>
9699
9700 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
9701 (cgraph_create_virtual_clone): Call hooks once virtual clone
9702 is finished.
74605a11 9703 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
9704 * ipa-cp.c (ipcp_estimate_growth): Use
9705 estimate_ipcp_clone_size_and_time.
74605a11
JH
9706 * ipa-inline-transform.c (clone_inlined_nodes): Update.
9707 * lto-cgraph.c (input_node): Update.
9708 * ipa-inline.c (recursive_inlining): Update.
9709 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
9710 (evaluate_conditions_for_known_args): Break out from ...
9711 (evaluate_conditions_for_edge): ... here.
9712 (evaluate_conditions_for_ipcp_clone): New function.
9713 (inline_node_duplication_hook): Update clone summary based
9714 on parameter map.
9715 (estimate_callee_size_and_time): Rename to ...
9716 (estimate_node_size_and_time): take NODE instead of EDGE;
9717 take POSSIBLE_TRUTHS as argument.
9718 (estimate_callee_size_and_time): Update.
9719 (estimate_ipcp_clone_size_and_time): New function.
9720 (do_estimate_edge_time): Update.
9721
5c049507
RG
97222011-05-08 Richard Guenther <rguenther@suse.de>
9723
9724 PR middle-end/48908
9725 PR middle-end/48905
9726 * expmed.c (expand_shift_1): Compute adjusted constant shift
9727 amount manually.
9728
f64c36ba
EB
97292011-05-08 Eric Botcazou <ebotcazou@adacore.com>
9730
9731 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
9732
c461a957
EB
97332011-05-08 Eric Botcazou <ebotcazou@adacore.com>
9734
9735 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
9736
7c74e556
JW
97372011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
9738
9739 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
9740
b4c0a884
JH
97412011-05-07 Jan Hubicka <jh@suse.cz>
9742
a9bcb3f0
EB
9743 * ipa-inline-transform.c (inline_call): Account when program size
9744 decreases.
b4c0a884 9745 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
9746 (edge_badness): Reorganize to be power 2 based; fix thinko when
9747 computing badness for negative growth; update comments to match
9748 reality; better dumps.
b4c0a884 9749
c99c0026
EB
97502011-05-07 Eric Botcazou <ebotcazou@adacore.com>
9751
9752 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
9753 type to bool and adjust comment.
9754 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
9755 (fold_mathfn_compare): Remove calls to global_bindings_p.
9756 (fold_inf_compare): Likewise.
9757 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
9758 * c-tree.h (global_bindings_p): Adjust prototype.
9759 * c-decl.c (global_bindings_p): Return bool and simplify.
9760
1400c8e5
ZD
97612011-05-07 Zdenek Dvorak <ook@ucw.cz>
9762
9763 PR tree-optimization/48837
9764 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
9765 when accumulator transformation is performed.
9766
5d0878e7
JH
97672011-05-06 Jan Hubicka <jh@suse.cz>
9768
a9bcb3f0
EB
9769 * i386.h (ix86_tune_indices): Add
9770 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 9771 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
9772 * i386.c (initial_ix86_tune_features): Add
9773 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
9774 (software_prefetching_beneficial_p): Remove predicate.
9775 (ix86_option_override_internal): Use new macro.
9776
58696ce5
JH
97772011-05-06 Jan Hubicka <jh@suse.cz>
9778
9779 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
9780
c47d0034
JH
97812011-05-06 Jan Hubicka <jh@suse.cz>
9782
9783 * cgraph.c (cgraph_add_thunk): Create real function node instead
9784 of alias node; finalize it and mark needed/reachale; arrange visibility
9785 to be right and add it into the corresponding same comdat group list.
9786 (dump_cgraph_node): Dump thunks.
9787 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
9788 cgraph_function_with_gimple_body_p,
9789 cgraph_first_function_with_gimple_body,
c47d0034
JH
9790 cgraph_next_function_with_gimple_body): New functions.
9791 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
9792 New macros.
9793 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
9794 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9795 * cgraphunit.c (cgraph_finalize_function): Only look into possible
9796 devirtualization when optimizing.
9797 (verify_cgraph_node): Verify thunks.
9798 (cgraph_analyze_function): Analyze thunks.
9799 (cgraph_mark_functions_to_output): Output thunks only in combination
9800 with function they are assigned to.
9801 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
9802 alias into normal node.
9803 (assemble_thunks): New functoin.
9804 (cgraph_expand_function): Use it.
9805 * lto-cgraph.c (lto_output_node): Stream thunks.
9806 (input_overwrite_node): Stream in thunks.
9807 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
9808 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
9809 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
9810 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
9811 (inline_analyze_function): Do not care about thunk jump functions.
9812 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
9813 * ipa-prop.c (ipa_prop_write_jump_functions): Use
9814 cgraph_function_with_gimple_body_p.
9815 * passes.c (do_per_function_toporder): Use
9816 cgraph_function_with_gimple_body_p.
c47d0034
JH
9817 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
9818 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
9819 (function_called_by_processed_nodes_p): Likewise.
9820
d8f426ec
JM
98212011-05-06 Joseph Myers <joseph@codesourcery.com>
9822
9823 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
9824 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
9825 entries.
9826 (mabi=): Replace with separate entries for mabi=altivec,
9827 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
9828 mabi=ieeelongdouble and mabi=ibmlongdouble.
9829 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9830 check for -mabi=spe without SPE ABI support here.
9831 (rs6000_handle_option): Replace OPT_mabi_ handling with
9832 OPT_mabi_altivec and OPT_mabi_spe handling.
9833
80bde45b
CC
98342011-05-06 Cary Coutant <ccoutant@google.com>
9835
9836 * dwarf2out.c (contains_subprogram_definition): New function.
9837 (should_move_die_to_comdat): Call it.
9838
a91926b9
JL
98392011-05-06 Jeff Law <law@redhat.com>
9840
9841 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
9842 remove_ctrl_stmt_and_useless_edges.
9843 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
9844 (fixup_template_block, thread_single_edge): Likewise.
9845 (mark_threaded_blocks): Use THREAD_TARGET.
9846
1fc1b66d
AM
98472011-05-06 Alan Modra <amodra@gmail.com>
9848
9849 PR target/48900
9850 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
9851 const0_rtx as the arg to the dummy __tls_get_addr libcall.
9852
e194de64
UB
98532011-05-06 Uros Bizjak <ubizjak@gmail.com>
9854
9855 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
9856 constraint modifier to "r".
9857
d740dc9e
JM
98582011-05-06 Joseph Myers <joseph@codesourcery.com>
9859
9860 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
9861 fall through for OPT_mcmodel_.
9862
cab78b15
AK
98632011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9864
9865 * config/s390/s390.c (s390_asm_trampoline_template): Comment
9866 instruction sizes.
e194de64 9867 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 9868
ee6824ae
RR
98692011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9870
eb1485a6
UB
9871 PR target/47930
9872 * config/arm/arm.opt (marm): Document it.
9873 (mthumb): Reject negative variant.
ee6824ae 9874
9ef58464
UB
98752011-05-06 Uros Bizjak <ubizjak@gmail.com>
9876
9877 PR target/48898
9878 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
9879 Fix typo in "ccvt" variable name.
9880
155b6176
TG
98812011-05-06 Tristan Gingold <gingold@adacore.com>
9882
9883 PR target/48895
9884 * config/vms/vms-ar.c (main): Remove cwd variable.
9885
3becc47b
JJ
98862011-05-06 Jakub Jelinek <jakub@redhat.com>
9887
9888 PR debug/48902
9889 * var-tracking.c (prepare_call_arguments): Move else before #endif.
9890
3d528853
NF
98912011-05-05 Nathan Froyd <froydnj@codesourcery.com>
9892
9893 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
9894 * gimplify.c (gimplify_switch_expr): Likewise.
9895 * omp-low.c (expand_omp_sections): Likewise.
9896 * tree-eh.c (lower_try_finally_switch): Likewise.
9897 (lower_eh_dispatch): Likewise.
9898 * tree.h (build_case_label): Declare.
9899 * tree.c (build_case_label): Define.
9900
deb5046b
JM
99012011-05-05 Jason Merrill <jason@redhat.com>
9902
9903 PR c++/40975
9904 * tree-inline.c (copy_tree_r): Use copy_statement_list.
9905 (copy_statement_list): Don't recurse.
9906 * stor-layout.c (copy_self_referential_tree_r): Don't allow
9907 STATEMENT_LIST.
9908
013c0411
JM
99092011-05-05 Joseph Myers <joseph@codesourcery.com>
9910
9911 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
9912 through from -mfpu= handling.
9913 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
9914
a0905f8b
BS
99152011-05-05 Bernd Schmidt <bernds@codesourcery.com>
9916
9917 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
9918 POST_MODIFY.
9919
fc4538e4
SE
99202011-05-05 Steve Ellcey <sje@cup.hp.com>
9921
9922 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
9923 for 11.31.
9924 (hppa[12]*-*-hpux11*): Ditto.
9925 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
9926 * config/ia64/hpux-unix2003.h: New.
9927 * config/pa/pa-hpux1131.opt: New.
9928 * config/pa/pa-hpux1131.h: New.
9929 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
9930 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 9931 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 9932
1e30c578
JJ
99332011-05-05 Jakub Jelinek <jakub@redhat.com>
9934
9935 PR debug/48853
9936 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
9937 instead of mode as 3rd argument to recursive call.
9938 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
9939 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
9940 VOIDmode.
9941 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
9942 don't give up if mode is Pmode and mem_mode is not VOIDmode.
9943 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
9944 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
9945
d19eb620
JB
99462011-05-05 Julian Brown <julian@codesourcery.com>
9947
9948 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
9949 parenthesis in D-register case.
9950
c860fe8c
JM
99512011-05-05 Joseph Myers <joseph@codesourcery.com>
9952
9953 * opt-functions.awk (var_type_struct): Handle Enum options.
9954 * optc-gen.awk: Don't check range of variables of character type.
9955 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
9956 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
9957 rs6000_sdata_name, rs6000_explicit_options): Remove.
9958 (rs6000_option_override_internal): Check for -malign-power here.
9959 Use global_options_set instead of rs6000_explicit_options.
9960 (rs6000_parse_fpu_option): Remove.
9961 (rs6000_handle_option): Access variables via opts and opts_set
9962 pointers. Use error_at and warning_at. Add fall-through
9963 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
9964 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
9965 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
9966 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
9967 here. Don't use rs6000_parse_fpu_option.
9968 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
9969 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
9970 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
9971 (mrecip=): Use Var.
9972 (mspe): Use Var and Save.
9973 (mtraceback=): Use Enum and Var.
9974 (rs6000_traceback_type): New Enum and EnumValue entries.
9975 (mfloat-gprs=): Use Enum, Var and Save.
9976 (rs6000_float_gprs): New Enum and EnumValue entries.
9977 (mlong-double-): use Var and Save.
9978 (msched-costly-dep=, minsert-sched-nops=): Use Var.
9979 (malign-): Use Enum and Var.
9980 (rs6000_alignment_flags): New Enum and EnumValue entries.
9981 (mfpu=): Use Enum.
9982 (fpu_type_t): New Enum and EnumValue entries.
9983 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9984 global_options_set instead of rs6000_explicit_options.
9985 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9986 global_options_set instead of rs6000_explicit_options.
9987 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9988 global_options_set instead of rs6000_explicit_options.
9989 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
9990 global_options_set instead of rs6000_explicit_options.
9991 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
9992 global_options_set instead of rs6000_explicit_options.
9993 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9994 global_options_set instead of rs6000_explicit_options.
9995 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
9996 definition.
9997 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
9998 global_options_set instead of rs6000_explicit_options.
9999 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10000 (rs6000_cmodel): New Enum and EnumValue entries.
10001 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10002 global_options_set instead of rs6000_explicit_options.
10003 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10004 (mtls-size=): Use Enum and Var.
10005 (rs6000_tls_size): New Enum and EnumValue entries.
10006
0691dde9
MM
100072011-05-05 Michael Matz <matz@suse.de>
10008
10009 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10010 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10011 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10012 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10013 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10014 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10015 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10016 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10017 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10018 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10019 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10020 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10021 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10022 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10023 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10024 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10025
86529a49
RG
100262011-05-05 Richard Guenther <rguenther@suse.de>
10027
10028 * expmed.c (expand_variable_shift): Rename to ...
10029 (expand_shift_1): ... this. Take an expanded shift amount.
10030 For rotates recurse directly not building trees for the shift amount.
10031 (expand_variable_shift): Wrap around expand_shift_1.
10032 (expand_shift): Adjust.
10033
d0228c2e
JJ
100342011-05-05 Jakub Jelinek <jakub@redhat.com>
10035
10036 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10037
907a08d9
EB
100382011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10039
10040 * tree.h (get_pending_sizes): Remove prototype.
10041 (put_pending_size): Likewise.
10042 (put_pending_sizes): Likewise.
10043 * stor-layout.c (pending_sizes): Delete.
10044 (get_pending_sizes): Likewise.
10045 (put_pending_size): Likewise.
10046 (put_pending_sizes): Likewise.
10047 (variable_size): Do not call put_pending_size and tidy up.
10048 * function.h (struct function): Remove dont_save_pending_sizes_p.
10049 * lto-streamer-in.c (input_function): Do not stream it.
10050 * lto-streamer-out.c (output_function): Likewise.
10051 * tree-inline.c (initialize_cfun): Do not copy it.
10052 * c-decl.c (store_parm_decls): Do not set it.
10053 * omp-low.c (create_task_copyfn): Likewise.
10054 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10055
386d9c57
UB
100562011-05-05 Uros Bizjak <ubizjak@gmail.com>
10057
10058 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10059 conditions.
10060 (*movdf_internal): Ditto.
10061 (*movdf_internal_nointeger): Ditto.
10062 (*movsf_internal): Ditto.
10063
a04a722b
JM
100642011-05-05 Joseph Myers <joseph@codesourcery.com>
10065
10066 * c-decl.c (finish_decl): Don't call get_pending_sizes.
10067 (grokparm): Add parameter expr. Pass it to grokdeclarator.
10068 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
10069 (c_variable_size): Remove.
10070 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
10071 call put_pending_sizes.
10072 (get_parm_info): Add parameter expr. Use it to set
10073 arg_info->pending_sizes.
10074 (store_parm_decls): Use arg_info->pending_sizes instead or calling
10075 get_pending_sizes.
10076 * c-parser.c (c_parser_parms_declarator): Update call to
10077 c_parser_parms_list_declarator.
10078 (c_parser_parms_list_declarator): Take parameter expr. Update
10079 call to push_parm_decl. Update recursive call. Don't call
10080 get_pending_sizes. Update calls to get_parm_info.
10081 (c_parser_objc_method_definition): Update calls to
10082 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 10083 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
10084 (c_parser_objc_method_decl): Add parameter expr. Update call to
10085 grokparm.
386d9c57 10086 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
10087 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10088 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10089
c92a6f97
MH
100902011-05-05 Michael Hope <michael.hope@linaro.org>
10091
386d9c57
UB
10092 PR pch/45979
10093 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10094 __ARM_EABI__ hosts.
c92a6f97 10095
07ea0048
UW
100962011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10097
10098 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10099 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10100 (spu_output_mi_thunk): New function.
10101
d634bfa1
RO
101022011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10103
10104 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10105 targetm.asm_out.print_operand.
10106 * config/sol2.c: Include target.h.
10107
40fda55b
JH
101082011-05-04 Jan Hubicka <jh@suse.cz>
10109
10110 * ipa-inline.c (reset_edge_caches): New function.
10111 (update_caller_keys): Add check_inlinablity_for; do not
10112 reset edge caches; remove now unnecesary loop.
386d9c57 10113 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
10114 (update_all_callee_keys): Likewise.
10115 (inline_small_functions): Sanity check cache; update code
10116 recomputing it.
10117
0360f70d
BS
101182011-05-04 Bernd Schmidt <bernds@codesourcery.com>
10119
10120 PR rtl-optimization/47612
10121 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10122 as the last insn of the sequence to be moved.
10123
7a994646
TB
101242011-05-04 Tobias Burnus <burnus@net-b.de>
10125
10126 PR fortran/48864
10127 * doc/invoke.texi (Ofast): Document that it
10128 enables Fortran's -fno-protect-parens.
10129
7a2f7208
UB
101302011-05-04 Uros Bizjak <ubizjak@gmail.com>
10131
10132 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10133
a2d42931
EB
101342011-05-04 Eric Botcazou <ebotcazou@adacore.com>
10135
10136 * stor-layout.c (variable_size): Do not issue errors.
10137
f81b1a3d
RG
101382011-05-04 Richard Guenther <rguenther@suse.de>
10139
10140 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10141 for array-ref indices.
10142 (tree_coverage_counter_addr): Likewise.
10143 (build_fn_info_type): Use size_int for index types.
10144 (build_gcov_info): Likewise.
10145
c62c040f
RG
101462011-05-04 Richard Guenther <rguenther@suse.de>
10147
10148 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10149 to build_int_cst.
10150 * c-typeck.c (really_start_incremental_init): Use bitsize_int
10151 for constructor indices.
10152 (push_init_level): Likewise.
10153
1e3287d0
RG
101542011-05-04 Richard Guenther <rguenther@suse.de>
10155
10156 * explow.c (promote_mode): Move variable declarations before code.
10157
6c32445b
NF
101582011-05-04 Nathan Froyd <froydnj@codesourcery.com>
10159
10160 * tree.h (build_function_type_array): Declare.
10161 (build_varargs_function_type_array): Declare.
10162 (build_function_type_vec, build_varargs_function_type_vec): Define.
10163 * tree.c (build_function_type_array_1): New function.
10164 (build_function_type_array): New function.
10165 (build_varargs_function_type_array): New function.
10166
fdabf269
RS
101672011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
10168
10169 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10170 before setting STMT_VINFO_TYPE.
10171
a207915a
UW
101722011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10173
10174 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10175 instead of spu_pass_by_reference.
10176
5e617be8
AK
101772011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10178
10179 * calls.c (emit_library_call_value_1): Invoke
10180 promote_function_mode hook on libcall arguments.
10181 * explow.c (promote_function_mode, promote_mode): Handle TYPE
10182 argument being NULL.
10183 * targhooks.c (default_promote_function_mode): Lisewise.
10184 * config/s390/s390.c (s390_promote_function_mode): Likewise.
10185 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10186
10187 * doc/tm.texi: Document that TYPE argument might be NULL.
10188
486d04be
SH
101892011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10190
10191 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10192
9b19b026
SH
101932011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10194
10195 From Bernd Schmidt
10196 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10197
502bc3df
RO
101982011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10199
10200 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10201 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10202 Move ...
10203 * mips-tfile.c: ... here.
10204 Don't include coretypes.h, tm.h, filenames.h.
10205 (saber_stop): Remove definition and all calls.
10206 [__SABER__]: Remove.
10207 (__LINE__): Remove default.
10208 (Size_t, Ptrdiff_t): Remove definitions.
10209 Replace by size_t, ptrdiff_t.
10210 [!MIPS_DEBUGGING_INFO]: Remove.
10211 (SHASH_SIZE, THASH_SIZE): Remove defaults.
10212 (progname): Add const.
10213 (STATIC): Remove.
10214 Replace all uses by static.
10215 (ALIGN_SYMTABLE_OFFSET): Remove default.
10216 * mips-tdump.c: Don't include coretypes.h, tm.h.
10217 Remove !MIPS_IS_STAB guard.
10218 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10219 $(TM_H), filenames.h dependencies.
10220 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10221
991eb6ef
SH
102222011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10223
10224 From Jie Zhang
10225 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10226 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10227
420ccc84
SH
102282011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10229
10230 From Bernd Schmidt
10231 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10232 account and save/restore RETS.
10233 (PROFILE_BEFORE_PROLOGUE): Define.
10234 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
10235 the push insn to use predecrement.
10236
9f8d69ee
SH
102372011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10238
10239 From Jie Zhang
10240 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10241
662c03f4
NC
102422011-05-04 Nick Clifton <nickc@redhat.com>
10243
10244 * config/mn10300/mn10300.c: Include cfgloop.h.
10245 (DUMP): New macro.
10246 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
10247 Lcc or a FLcc insn into the instruction stream.
10248 (mn10300_block_contains_call): New function. Returns true if the
10249 given basic block contains a CALL insn.
10250 (mn10300_loop_contains_call_insn): New function. Returns true if
10251 the given loop contains a CALL insn.
10252 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
10253 to use the SETLB and Lcc or FLcc insns.
10254 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10255 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10256 * config/mn10300/mn10300.opt (msetlb): New option. Used to
10257 disable the SETLB optimization.
10258 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10259 __SETLB__ or __NO_SETLB__.
10260 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10261 (movsf_internal): Handle MDR register.
10262 (cmpsi): Make visible.
10263 (setlb): New pattern.
10264 (Lcc): New pattern.
10265 (FLcc): New pattern.
10266
843b6915
UB
102672011-05-04 Uros Bizjak <ubizjak@gmail.com>
10268
10269 PR target/48860
10270 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10271 for reg<->xmm moves.
10272 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10273 (vec_concatv2di_rex64_sse): Ditto.
10274 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10275 (*vec_extractv2di_1_rex64): Ditto.
10276
10277 Revert:
10278 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10279
10280 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10281 reg<->xmm moves.
10282 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10283
d35936ab
RG
102842011-05-04 Richard Guenther <rguenther@suse.de>
10285
10286 * tree.h (int_const_binop): Remove notrunc argument.
10287 * fold-const.c (int_const_binop): Remove notrunc argument. Always
10288 create integer constants that are properly truncated.
10289 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10290 (const_binop): Remove zero notrunc argument to int_const_binop.
10291 (size_binop_loc): Likewise.
10292 (fold_div_compare): Likewise.
10293 (maybe_canonicalize_comparison_1): Likewise.
10294 (fold_comparison): Likewise.
10295 (fold_binary_loc): Likewise.
10296 (multiple_of_p): Likewise.
10297 * expr.c (store_constructor): Likewise.
10298 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10299 (maybe_fold_stmt_addition): Likewise.
10300 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10301 * stor-layout.c (layout_type): Likewise.
10302 * tree-data-ref.c (tree_fold_divides_p): Likewise.
10303 * tree-sra.c (build_ref_for_offset): Likewise.
10304 (build_user_friendly_ref_for_offset): Likewise.
10305 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10306 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10307 * tree-ssa-loop-niter.c (inverse): Likewise.
10308 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10309 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10310 * tree-switch-conversion.c (check_range): Likewise.
10311 (build_constructors): Likewise.
10312 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10313 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10314 (extract_range_from_assert): Likewise.
10315 (vrp_int_const_binop): Likewise.
10316 (extract_range_from_binary_expr): Likewise.
10317 (extract_range_from_unary_expr): Likewise.
10318 (check_array_ref): Likewise.
10319 (find_case_label_range): Likewise.
10320 (simplify_div_or_mod_using_ranges): Likewise.
10321 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10322 comparing case labels for merging.
10323
8992c063
MW
103242011-05-03 Mark Wielaard <mjw@redhat.com>
10325
10326 * dwarf2out.c (debug_str_hash_forced): Removed.
10327 (gen_label_for_indirect_string): Removed.
10328 (get_debug_string_label): Removed.
10329 (AT_string_form): Generate label directly.
10330 (output_indirect_string): Test indirect_string_node for
10331 DW_FORM_strp instead of checking label and refcount.
10332 (prune_indirect_string): Removed.
10333 (prune_unused_types): Don't check debug_str_hash_forced or
10334 call prune_indirect_string.
10335
4868e6ea
AO
103362011-05-04 Alexandre Oliva <aoliva@redhat.com>
10337
10338 PR other/48093
10339 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10340
01a5c0ab
AO
103412011-05-04 Alexandre Oliva <aoliva@redhat.com>
10342
10343 PR debug/47994
10344 PR debug/47919
10345 * combine.c (try_combine): Skip debug insns at m_split tests.
10346
6ac00218
MW
103472011-04-26 Mark Wielaard <mjw@redhat.com>
10348
10349 PR42288
10350 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10351 when info_section_emitted.
10352
3af42a7b
JM
103532011-05-03 Joseph Myers <joseph@codesourcery.com>
10354
10355 * config/mips/mips-opts.h: New.
10356 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10357 to mips-opts.h.
10358 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10359 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10360 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
10361 via opts pointer.
10362 * config/mips/mips.h (enum mips_code_readable_setting): Move to
10363 mips-opts.h.
10364 (mips_abi, mips_code_readable): Don't declare.
843b6915 10365 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
10366 (mabi=): Use Enum and Var.
10367 (mips_abi): New Enum and EnumValue entries.
10368 (mcode-readable=): Use Enum and Var.
10369 (mips_code_readable_setting): New Enum and EnumValue entries.
10370 (mr10k-cache-barrier=): Use Enum and Var.
10371 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
10372
1cb1a99f
JH
103732011-05-03 Jan Hubicka <jh@suse.cz>
10374
10375 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
10376 replace hash by pointer map.
10377 (cgraph_node_set_element_def, cgraph_node_set_element,
10378 const_cgraph_node_set_element, varpool_node_set_element_def,
10379 varpool_node_set_element, const_varpool_node_set_element): Remove.
10380 (free_cgraph_node_set, free_varpool_node_set): New function.
10381 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
10382 * tree-emutls.c: Free varpool node set.
10383 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
10384 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10385 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
10386 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10387 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
10388 Move here from ipa.c; implement using pointer_map
10389 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
10390 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10391 debug_cgraph_node_set, varpool_node_set_new,
10392 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10393 dump_varpool_node_set, debug_varpool_node_set):
10394 Move to ipa-uitls.c.
10395 * passes.c (ipa_write_summaries): Update.
10396
7f31f4db
SH
103972011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10398
7a2f7208
UB
10399 From Mike Frysinger:
10400 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
10401 bf542/bf544/bf547/bf548/bf549.
7f31f4db 10402
b70fce6d
UB
104032011-05-03 Uros Bizjak <ubizjak@gmail.com>
10404
10405 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
10406
265b1d82
SH
104072011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10408
10409 From Bernd Schmidt:
10410 * config/bfin/bfin.md (MOVCC): New mode_macro.
10411 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10412 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
10413 comments from generated assembly.
10414
f0b568f3
SH
104152011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10416
10417 From Bernd Schmidt
10418 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10419 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10420 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10421 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10422 * config/bfin/lib1funcs.asm (___muldi3): New function.
10423
2c67cf6e
NF
104242011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10425
10426 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10427 build_function_type_list instead of build_function_type.
10428 Rearrange initialization of `args' to do so.
10429
f9ac28ad
NF
104302011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10431
10432 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10433 instead of build_function_type.
10434
22b8798c
NF
104352011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10436
10437 * config/rs6000/rs6000.c (spe_init_builtins): Call
10438 build_function_type_list instead of build_function_type.
10439 (paired_init_builtins, altivec_init_builtins): Likewise.
10440 (builtin_function_type): Likewise.
10441
4cb44528
NF
104422011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10443
10444 * config/sh/sh.c (sh_media_init_builtins): Call
10445 build_function_type_list instead of build_function_type.
10446
4c203a6a
NF
104472011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10448
10449 * config/sparc/sparc.c (sparc_file_end): Call
10450 build_function_type_list instead of build_function_type.
10451
d6a3d62b
NF
104522011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10453
10454 * config/alpha/alpha.c (alpha_init_builtins): Call
10455 build_function_type_list instead of build_function_type.
10456
de530b86
NF
104572011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10458
10459 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10460 build_function_type_list instead of build_function_type.
10461
baeec5f2
NF
104622011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10463
10464 * config/iq2000/i2000.c (iq2000_init_builtins): Call
10465 build_function_type_list instead of build_function_type.
10466 Delete `endlink' variable.
10467
c19afe52
NF
104682011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10469
10470 * config/avr/avr.c (avr_init_builtins): Call
10471 build_function_type_list instead of build_function_type.
10472
a341df0a
NF
104732011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10474
10475 * config/picochip/picochip.c (picochip_init_builtins): Call
10476 build_function_type_list instead of build_function_type.
10477 Delete `endlink' variable.
10478
2102b1e1
NF
104792011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10480
10481 * config/bfin/bfin.c (bfin_init_builtins): Call
10482 build_function_type_list instead of build_function_type.
10483
9f111209
SH
104842011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10485
10486 From Bernd Schmidt
10487 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10488 that's not CONST_INT. Seemingly redundant check is due to PR39768.
10489
7071d064
SH
104902011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10491
10492 From Jie Zhang:
10493 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10494 libbffastfp overrides libgcc when -mfast-fp.
10495
748f7574 104962011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
10497
10498 Originally from Bernd Schmidt
10499 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10500 * config/bfin/bfin.c (override_options): Test it and error if
10501 TARGET_FDPIC.
10502
1a3a9152
SH
105032011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10504
10505 Originally From Bernd Schmidt
10506 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10507 FD-PIC.
10508
7134c090
JL
105092011-05-03 Jeff Law <law@redhat.com>
10510
10511 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10512 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10513 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
10514 than accessing AUX field directly. Free the AUX field before
10515 clearing it.
7134c090
JL
10516 (thread_block, thread_through_loop_header): Likewise.
10517 (thread_single_edge, mark_threaded_blocks): Likewise.
10518 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
10519 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 10520
2c7eebae
BS
105212011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10522
10523 * function.c (init_function_start): Call decide_function_section.
10524 * varasm.c (decide_function_section): New function.
10525 (assemble_start_function): When not using
10526 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10527 or first_function_block_is_cold.
10528 * rtl.h (decide_function_section): Declare.
10529
17038fcf
JJ
105302011-05-03 Uros Bizjak <ubizjak@gmail.com>
10531 Jakub Jelinek <jakub@redhat.com>
10532
10533 PR target/48774
10534 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10535 only succeed if req_mode is the same as set_mode.
10536
3810076b
BS
105372011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10538
10539 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10540 * genemit.c (gen_exp): Handle RETURN.
10541 * emit-rtl.c (verify_rtx_sharing): Likewise.
10542 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10543 * rtl.c (copy_rtx): RETURN is shared.
10544 * rtl.h (enum global_rtl_index): Add GR_RETURN.
10545 (ret_rtx): New.
10546 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10547 * config/s390/s390.c (s390_emit_epilogue): Likewise.
10548 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10549 * config/cris/cris.c (cris_expand_return): Likewise.
10550 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10551 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10552 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10553 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10554 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10555 Likewise.
10556 * config/v850/v850.c (expand_epilogue): Likewise.
10557 * config/bfin/bfin.c (bfin_expand_call): Likewise.
10558 * config/arm/arm.md (epilogue): Likewise.
10559 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10560 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10561 variable to ret_reg.
10562
9efdb4ad
RG
105632011-05-03 Richard Guenther <rguenther@suse.de>
10564
10565 PR lto/48846
10566 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10567 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10568 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10569
60a45536
RG
105702011-05-03 Richard Guenther <rguenther@suse.de>
10571
10572 * c-decl.c (grokdeclarator): Instead of looking at
10573 TREE_OVERFLOW check if the constant fits in the index type.
10574
3188ed59
RS
105752011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10576
10577 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10578 (vec_store_lanes<mode><mode>): Likewise.
10579
272c6793
RS
105802011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10581
10582 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10583 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10584 convert_optab_index values.
10585 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10586 * genopinit.c (optabs): Initialize the new optabs.
10587 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10588 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10589 (expand_STORE_LANES): New functions.
10590 * tree.h (build_array_type_nelts): Declare.
10591 * tree.c (build_array_type_nelts): New function.
10592 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10593 (vect_model_load_cost): Likewise.
10594 (vect_store_lanes_supported, vect_load_lanes_supported)
10595 (vect_record_strided_load_vectors): Declare.
10596 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10597 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10598 (vect_transform_strided_load): Split out statement recording into...
10599 (vect_record_strided_load_vectors): ...this new function.
10600 * tree-vect-stmts.c (create_vector_array, read_vector_array)
10601 (write_vector_array, create_array_ref): New functions.
10602 (vect_model_store_cost): Add store_lanes_p argument.
10603 (vect_model_load_cost): Add load_lanes_p argument.
10604 (vectorizable_store): Try to use store-lanes functions for
10605 interleaved stores.
10606 (vectorizable_load): Likewise load-lanes and loads.
10607 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10608 to vect_model_store_cost.
10609 (vect_build_slp_tree): Likewise vect_model_load_cost.
10610
0f6d54f7
RS
106112011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10612
10613 * hooks.h (hook_bool_mode_uhwi_false): Declare.
10614 * hooks.c (hook_bool_mode_uhwi_false): New function.
10615 * target.def (array_mode_supported_p): New hook.
10616 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10617 * doc/tm.texi: Regenerate.
10618 * stor-layout.c (mode_for_array): New function.
10619 (layout_type): Use it.
10620 * config/arm/arm.c (arm_array_mode_supported_p): New function.
10621 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10622
b15eacc7
EB
106232011-05-03 Eric Botcazou <ebotcazou@adacore.com>
10624
10625 PR target/48723
10626 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10627 for -fstack-check if the size to allocate is negative.
10628
575bfb00
LC
106292011-05-02 Lawrence Crowl <crowl@google.com>
10630
10631 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10632 (timevar_cond_start): New for starting a timer only when it is not
10633 already running.
10634 (timevar_cond_stop): New for stopping a timer when it was not already
10635 running.
10636
10637 * timevar.c (timevar_stop): Enable start/stop timers to start again.
10638 (timevar_cond_start): New as above.
10639 (timevar_cond_stop): New as above.
10640
10641 * timevar.def: Add start/stop timers for compiler phases,
10642 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10643 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10644 and TV_PHASE_FINALIZE.
10645 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10646 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10647 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10648 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10649 Make unused TV_OVERLOAD into a start/stop timer.
10650
10651 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10652 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10653 to indicate that they are start/stop timers.
10654
10655 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10656 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10657 Move initialization to do_compile.
10658 (do_compile): Add initialization from above.
10659 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10660
10661 * c-decl.c (c_write_global_declarations): Add start/stop of
10662 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10663
10664 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10665 or TV_PARSE_INLINE, as appropriate.
10666 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10667 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10668
3533b943
JM
106692011-05-02 Jason Merrill <jason@redhat.com>
10670
10671 PR c++/40975
10672 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10673
2609a0ce
SM
106742011-05-02 Simon Martin <simartin@users.sourceforge.net>
10675
10676 PR c/35445
10677 * c-decl.c (finish_decl): Only create a composite if the types are
10678 compatible.
10679
6b0e4cbb
JM
106802011-05-02 Joseph Myers <joseph@codesourcery.com>
10681
10682 * config/fr30/fr30-protos.h (Mmode): Don't define.
10683 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
10684 definition where used.
10685 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
10686 define. Expand definitions where used.
10687 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
10688 Expand definitions where used.
10689 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
10690 rx_function_arg, rx_function_arg_advance,
10691 rx_function_arg_boundary): Expand definitions of those macros.
10692 * config/v850/v850-protos.h (Mmode): Don't define. Expand
10693 definition where used.
10694
4e938ce6
UB
106952011-05-02 Uros Bizjak <ubizjak@gmail.com>
10696
10697 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10698 reg<->xmm moves.
10699 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
10700 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
10701 with *movv2sf_internal_rex64_avx.
10702 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
10703 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
10704 Use %v prefix in insn mnemonic to handle TARGET_AVX.
10705 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
10706 "vex" in "prefix" attribute calculation.
10707 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
10708
36019c19
SH
107092011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
10710
7a2f7208
UB
10711 PR target/47951
10712 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
10713 inputs match the output.
36019c19 10714
f69ea688
AS
107152011-05-02 Andreas Schwab <schwab@linux-m68k.org>
10716
10717 PR target/47955
10718 * config/m68k/m68k.c (m68k_expand_prologue): Set
10719 current_function_static_stack_size.
10720
c33406f5
JH
107212011-05-02 Jan Hubicka <jh@suse.cz>
10722
10723 * lto-streamer.c (lto_streamer_cache_insert_1,
10724 lto_streamer_cache_lookup, lto_streamer_cache_create,
10725 lto_streamer_cache_delete): Use pointer map instead of hashtable.
10726 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
10727
47c94d21
JM
107282011-05-02 Joseph Myers <joseph@codesourcery.com>
10729
10730 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
10731 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
10732 config/m68k/t-opts: New files.
10733 * config/m68k/m68k-tables.opt: New file (generated).
10734 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
10735 extra_options and m68k/t-opts to tmake_file.
10736 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
10737 (all_isas): Initialize using m68k-isas.def.
10738 (all_microarchs): Initialize using m68k-microarchs.def.
10739 (m68k_find_selection): Remove.
10740 (m68k_handle_option): Don't assert that global structures are in
10741 use. Use error_at. Access variables via opts pointer. Don't
10742 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
10743 directly for -m68020-40 and -m68020-60.
10744 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
10745 m68k_tune_entry here.
10746 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
10747 to m68k-opts.h.
10748 (m68k_library_id_string): Remove declaration.
4e938ce6 10749 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
10750 (m68k_library_id_string): New Variable.
10751 (march=, mcpu=, mtune=): Use Enum and Var.
10752
e562bf36
RG
107532011-05-02 Richard Guenther <rguenther@suse.de>
10754
10755 * varasm.c (output_constructor_regular_field): Compute zero-based
10756 index with double-ints. Make sure to ICE instead of producing
10757 wrong code.
10758 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
10759 in asserts. Properly use a signed type.
10760
6bec6c98
UB
107612011-05-02 Uros Bizjak <ubizjak@gmail.com>
10762
10763 * config/i386/sse.md (V): New mode iterator.
10764 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
10765 TARGET_SSE2.
10766 (V_256): Rename from AVX256MODE.
10767 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
10768 condition to all users.
10769 (VF1): Ditto.
10770 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
10771 condition to all users.
10772 (VF_128): Make V4SF mode unconditional.
10773 (VF_256): Rename from AVX256MODEF2P.
10774 (VI4F_128): Rename from SSEMODE4S.
10775 (VI8F_128): Rename from SSEMODE2D.
10776 (VI4F_256): Rename from AVX256MODE8P.
10777 (VI8F_256): Rename from AVX256MODE4P.
10778 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
10779 (ssescalarmodesuffix): Remove SF and DF modes.
10780 (SSEMODE124): Remove.
10781 (SSEMODE1248): Ditto.
10782 (SSEMODEF2P): Ditto.
10783 (AVXMODEF2P): Ditto.
10784 (AVXMODEFDP): Ditto.
10785 (AVXMODEFSP): Ditto.
10786 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
10787 unconditional.
10788 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
10789 unconditional.
10790 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
10791 xop_pcmov_<mode>256. Use V mode iterator.
10792
10793 Adjust RTX patterns globally for renamed mode attributes.
10794
2dfdcb4b
UW
107952011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10796
10797 * haifa-sched.c (sched_emit_insn): Emit insn before first
10798 non-scheduled insn. Inform back-end about new insn. Add
10799 new insn to scheduled_insns list.
10800
90bc4623
RG
108012011-05-02 Richard Guenther <rguenther@suse.de>
10802
10803 PR tree-optimization/48822
10804 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
10805 (process_scc): Indicate which iteration we start.
10806
bc0fe8cb
JH
108072011-05-02 Jan Hubicka <jh@suse.cz>
10808
10809 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
10810 (lto_section_overrun): New.
10811 * lto-section-out.c (append_block): Rename to ...
10812 (lto_append_block): ... this one; export.
10813 (lto_output_1_stream): Move lto lto-streamer.h
10814 (lto_output_data_stream): Update.
10815 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
10816 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
10817 functions.
10818
f070a9d1
RG
108192011-05-02 Richard Guenther <rguenther@suse.de>
10820
10821 * tree.c (tree_code_counts): New global array.
10822 (record_node_allocation_statistics): Count individual tree codes.
10823 (dump_tree_statistics): Dump individual code stats.
10824
09dfe187
JH
108252011-05-01 Jan Hubicka <jh@suse.cz>
10826
10827 * ipa-inline.c (caller_growth_limits): Fix thinko when
10828 looking for largest stack frame.
10829 * ipa-inline.h (dump_inline_summary): Declare.
10830 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
10831 on stack usage.
10832 (dump_inline_summary): Export.
10833 (debug_inline_summary): Declare as DEBUG_FUNCTION.
10834
6f76a878
AS
108352011-05-01 Anatoly Sokolov <aesok@post.ru>
10836
10837 * reginfo.c (memory_move_cost): Change rclass argument type form
10838 'enum reg_class' to reg_class_t.
10839 * reload.h (memory_move_cost): Update prototype.
10840 * postreload.c reload_cse_simplify_set): Change type dclass var to
10841 reg_class_t.
10842 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
10843 Update prototype.
10844 (ira_allocate_and_set_costs): Change aclass argument type form
10845 'enum reg_class' to reg_class_t.
6bec6c98 10846 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
10847 Change aclass argument type to reg_class_t.
10848 (update_conflict_hard_reg_costs): Change type aclass and pref vars
10849 to reg_class_t.
10850 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
10851 memory_move_cost call.
10852
10853 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
10854 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
10855 Change type tmp var to reg_class_t.
10856
9a4ac625
JH
108572011-04-30 Jan Hubicka <jh@suse.cz>
10858
10859 * ipa-inline.c (can_inline_edge_p): Disregard limits when
10860 inlining into function with flatten attribute.
10861 (want_inline_small_function_p): Be more realistic about inlining
10862 cold calls where callee size grows.
10863
dd8352ee
JH
108642011-04-30 Jan Hubicka <jh@suse.cz>
10865
10866 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
10867 flags.
10868
46e43d2b
AS
108692011-04-30 Anatoly Sokolov <aesok@post.ru>
10870
10871 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
10872 PRINT_OPERAND_PUNCT_VALID_P): Remove.
10873 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
10874 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
10875 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
10876 (print_operand): Rename to...
10877 (sparc_print_operand): ...this. Make static. Adjust
10878 sparc_print_operand function call.
10879 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
10880 functions.
10881
ecb62563
JH
108822011-04-30 Jan Hubicka <jh@suse.cz>
10883
6bec6c98 10884 PR middle-end/48752
ecb62563
JH
10885 * ipa-inline.c (early_inliner): Disable when doing late
10886 addition of function.
10887
edb9b69e
JJ
108882011-04-30 Jakub Jelinek <jakub@redhat.com>
10889
be80a87e
JJ
10890 * dwarf2out.c (get_address_mode): New inline.
10891 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
10892 if not dwarf_strict emit
10893 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
10894 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
10895 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
10896 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
10897 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
10898 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
10899 mem_loc_descriptor callers.
10900 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
10901 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
10902 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
10903 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
10904 (base_types): New variable.
10905 (get_base_type_offset, calc_base_type_die_sizes,
10906 base_type_for_mode, mark_base_types, base_type_cmp,
10907 move_marked_base_types): New functions.
10908 (calc_die_sizes): Assert that die_offset is 0 or equal to
10909 next_die_offset.
10910 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
10911 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
10912 callers. If not dwarf_strict, call mem_loc_descriptor even for
10913 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
10914 (gen_subprogram_die): Don't give up on call site parameters
10915 with non-integral or large integral modes. Adjust
10916 mem_loc_descriptor callers.
10917 (prune_unused_types): Call prune_unused_types_mark on base_types
10918 vector entries.
10919 (resolve_addr): Call mark_base_types.
10920 (dwarf2out_finish): Call move_marked_base_types.
10921
edb9b69e
JJ
10922 PR tree-optimization/48809
10923 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
10924 type.
10925 (gen_inbound_check): Don't compute index_expr - range_min in utype
10926 again, instead reuse SSA_NAME initialized in build_arrays.
10927 Remove two useless gsi_for_stmt calls.
10928
a6545a3d
JL
109292011-04-29 Jeff Law <law@redhat.com>
10930
10931 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
10932
af8bca3c
MJ
109332011-04-29 Martin Jambor <mjambor@suse.cz>
10934
10935 * cgraph.h (cgraph_postorder): Remove declaration.
10936 * ipa-utils.h (ipa_free_postorder_info): Declare.
10937 (ipa_reverse_postorder): Likewise.
10938 * cgraphunit.c: Include ipa-utils.h.
10939 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
10940 * ipa-inline.c: Include ipa-utils.h.
10941 (ipa_inline): Update call to ipa_reverse_postorder.
10942 * ipa-pure-const.c (propagate_pure_const): Update call to
10943 ipa_reduced_postorder and ipa_print_order. Call
10944 ipa_free_postorder_info to clean up.
10945 (propagate_nothrow): Likewise.
10946 * ipa-reference.c (propagate): Removed a useless call to
10947 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
10948 and ipa_print_order. Call ipa_free_postorder_info to clean up.
10949 * ipa.c: Include ipa-utils.h.
10950 (ipa_profile): Update call to ipa_reverse_postorder.
10951 (cgraph_postorder): Moved to...
10952 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
10953 (ipa_utils_print_order): Renamed to ipa_print_order.
10954 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
10955 comments.
10956 (ipa_free_postorder_info): New function.
10957 * passes.c: Include ipa-utils.h.
10958 (do_per_function_toporder): Update call to ipa_reverse_postorder.
10959 (ipa_write_summaries): Likewise.
10960 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
10961 (cgraphunit.o): Likewise.
10962 (ipa.o): Likewise.
10963 (ipa-inline.o): Likewise.
10964
b15c64ee
JH
109652011-04-29 Jan Hubicka <jh@suse.cz>
10966
10967 * gcc.dg/tree-ssa/inline-10.c: New testcase.
10968 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
10969 * ipa-inline.h (clause_t): Turn into unsigned int.
10970 * ipa-inline-analysis.c (add_clause): Do more simplification.
10971 (and_predicates): Shortcut more cases.
10972 (predicates_equal_p): Move forward; check that clauses are properly
10973 ordered.
10974 (or_predicates): Shortcut more cases.
10975 (edge_execution_predicate): Rewrite as...
10976 (set_cond_stmt_execution_predicate): ... this function; handle
10977 __builtin_constant_p.
10978 (set_switch_stmt_execution_predicate): New .
10979 (compute_bb_predicates): New.
10980 (will_be_nonconstant_predicate): Update TODO.
10981 (estimate_function_body_sizes): Use compute_bb_predicates
10982 and free them later, always try to estimate if stmt is constant.
10983 (estimate_time_after_inlining, estimate_size_after_inlining):
10984 Gracefully handle optimized out edges.
10985 (read_predicate): Fix off by one error.
10986
a88fdc2a
NP
109872011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
10988
10989 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
10990
d984c8ef
XDL
109912011-04-27 Xinliang David Li <davidxl@google.com>
10992
10993 * tree-profile.c (init_ic_make_global_vars): Set
10994 tls attribute on ic vars.
10995 * coverage.c (coverage_end_function): Initialize
10996 function_list with zero.
10997
45a2c477
RG
109982011-04-29 Richard Guenther <rguenther@suse.de>
10999
11000 * builtins.c (fold_builtin_classify_type): Use integer_type_node
11001 for the type of the result.
11002 (fold_builtin_isascii): Likewise.
11003 (fold_builtin_toascii): Use integer_type_node where appropriate.
11004 (fold_builtin_logb): Likewise.
11005 (fold_builtin_frexp): Likewise.
11006 (fold_builtin_strstr): Likewise.
11007 (fold_builtin_strpbrk): Likewise.
11008 (fold_builtin_fputs): Likewise.
11009 (fold_builtin_sprintf): Likewise.
11010 (fold_builtin_snprintf): Likewise.
11011 (fold_builtin_printf): Likewise.
11012 (do_mpfr_remquo): Use a proper type for the assigned constant.
11013 (do_mpfr_lgamma_r): Likewise.
11014 * dwarf2out.c (resolve_one_addr): Use size_int.
11015 * except.c (init_eh): Likewise.
11016 (assign_filter_values): Use integer_type_node for filter values.
11017 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11018 indices.
11019 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11020 for EH region numbers.
11021 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11022 for the shift amount.
11023
eb6c3df1
RG
110242011-04-29 Richard Guenther <rguenther@suse.de>
11025
11026 * expr.h (expand_shift): Rename to ...
11027 (expand_variable_shift): ... this.
11028 (expand_shift): Take a constant shift amount.
11029 * expmed.c (expand_shift): Rename to ...
11030 (expand_variable_shift): ... this.
11031 (expand_shift): New wrapper around expand_variable_shift.
11032 * expr.c (convert_move, emit_group_load_1, emit_group_store,
11033 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11034 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11035 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11036 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11037 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11038 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11039 emit_store_flag_1, emit_store_flag): Likewise.
11040 * builtins.c (expand_builtin_signbit): Likewise.
11041 * calls.c (load_register_parameters): Likewise.
11042 * function.c (assign_parm_setup_block): Likewise.
11043 * lower-subreg.c (resolve_shift_zext): Likewise.
11044 * optabs.c (widen_bswap, expand_abs_nojump,
11045 expand_one_cmpl_abs_nojump, expand_float): Likewise.
11046 * spu/spu.c (spu_expand_extv): Likewise.
11047 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11048
9f616812
RG
110492011-04-29 Richard Guenther <rguenther@suse.de>
11050
11051 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11052 for the remapped region number.
11053 * predict.c (build_predict_expr): Use integer_type_node for the
11054 predict kind.
11055 * fold-const.c (fold_binary_loc): Use integer_type_node for
11056 the shift amount. Use a proper type for the PLUS_EXPR operand.
11057
b823cdfe
MM
110582011-04-29 Michael Matz <matz@suse.de>
11059
11060 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11061 other trees that just builtins.
11062 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11063
413581ba
RG
110642011-04-29 Richard Guenther <rguenther@suse.de>
11065
11066 * tree-nested.c (get_trampoline_type): Use size_int.
11067 (get_nl_goto_field): Likewise.
11068 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11069 for all indexes.
11070 (lower_eh_constructs_2): Likewise.
11071 (lower_resx): Likewise.
11072 (lower_eh_dispatch): Likewise.
11073 * tree-mudflap.c (mf_build_string): Use size_int.
11074 (mudflap_register_call): Use integer_type_node for the flag.
11075 (mudflap_enqueue_constant): Use size_int.
11076 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11077 instead of rebuilding it.
11078
5c04e9f4
RG
110792011-04-29 Richard Guenther <rguenther@suse.de>
11080
11081 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11082 Handle OBJ_TYPE_REF.
11083 (find_func_aliases_for_call): Use it more consistently.
11084
5c24671b
AO
110852011-04-29 Alexandre Oliva <aoliva@redhat.com>
11086
11087 * haifa-sched.c (last_nondebug_scheduled_insn): New.
11088 (rank_for_schedule): Use it.
11089 (schedule_block): Set it.
11090
10adac51
XDL
110912011-04-28 David Li <davidxl@google.com>
11092
11093 * tree.c (crc32_string): Use crc32_byte.
11094 (crc32_byte): New function.
11095 * tree.h (crc32_byte): New function.
11096 * gcov.c (read_graph_file): Handle new cfg_cksum.
11097 (read_count_file): Ditto.
11098 * profile.c (instrument_values): Ditto.
11099 (get_exec_counts): Ditto.
11100 (read_profile_edge_counts): Ditto.
11101 (compute_branch_probabilities): Ditto.
11102 (compute_value_histograms): Ditto.
11103 (branch_prob): Ditto.
11104 (end_branch_prob): Ditto.
11105 * coverage.c (read_counts_file): Ditto.
11106 (get_coverage_counts): Ditto.
11107 (tree_coverage_counter_addr): Ditto.
11108 (coverage_checksum_string): Ditto.
11109 (coverage_begin_output): Ditto.
11110 (coverage_end_function): Ditto.
11111 (build_fn_info_type): Ditto.
11112 (build_fn_info_value): Ditto.
11113 * libgcov.c (gcov_exit): Ditto.
11114 * gcov-dump.c (tag_function): Ditto.
11115 (compute_checksum): Remove.
11116
5d6358a5
AM
111172011-04-29 Alan Modra <amodra@gmail.com>
11118
11119 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11120 unspec plus offset. Tidy macho code.
11121
85ad2ef5
MJ
111222011-04-29 Martin Jambor <mjambor@suse.cz>
11123
11124 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11125 node instead of a decl. Update all callers.
11126 * cgraph.h: Update declaration.
11127
437f4a00
IR
111282011-04-28 Ira Rosen <ira.rosen@linaro.org>
11129
11130 PR tree-optimization/48765
11131 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11132 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11133 to indicate if loop aware SLP is being used. Scan the statements
11134 and update the vectorization factor according to the type of
11135 vectorization before statement analysis.
11136 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11137 pass it to vect_analyze_loop_operations.
11138 (vectorizable_reduction): Set number of copies to 1 in case of pure
11139 SLP statement.
11140 * tree-vect-stmts.c (vectorizable_conversion,
11141 vectorizable_assignment, vectorizable_shift,
11142 vectorizable_operation, vectorizable_type_demotion,
11143 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11144 Likewise.
11145 (vectorizable_condition): Move the check that it is not SLP
11146 vectorization before the number of copies check.
11147 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11148 to vectorize the loop using SLP.
11149
c6fc44f3
JJ
111502011-04-28 Jakub Jelinek <jakub@redhat.com>
11151
11152 PR middle-end/48597
11153 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11154 inline asm.
11155
6c0170ea
JM
111562011-04-28 Joseph Myers <joseph@codesourcery.com>
11157
11158 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11159 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11160 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11161 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11162 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11163 linux*.h headers.
6bec6c98 11164 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
11165 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11166 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11167 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 11168 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
11169 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11170 REG_NAME.
11171 * config/i386/linux.h (REG_NAME): Don't define.
11172 * config/i386/linux64.h (REG_NAME): Don't define.
11173 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11174 Undefine before defining.
11175
970dabbd
JH
111762011-04-28 Jan Hubicka <jh@suse.cz>
11177
6bec6c98
UB
11178 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11179 nonconstant_names array.
970dabbd
JH
11180 (estimate_function_body_sizes): Build nonconstant_names array; handle
11181 BUILT_IN_CONSTANT_P.
11182
8d3e3924
RG
111832011-04-28 Richard Guenther <rguenther@suse.de>
11184
11185 PR bootstrap/48804
11186 Revert
11187 2011-04-28 Richard Guenther <rguenther@suse.de>
11188
11189 * tree-ssa-structalias.c (solve_constraints): Build succ graph
11190 as late as possible.
6bec6c98 11191
8576f20a
RG
111922011-04-28 Richard Guenther <rguenther@suse.de>
11193
11194 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11195 (debug_constraint): Do it here.
11196 (dump_constraints): And here.
11197 (rewrite_constraints): And here.
11198 (dump_constraint_edge): Remove.
11199 (dump_constraint_graph): Rewrite to produce DOT output.
11200 (solve_constraints): Build succ graph as late as possible.
11201 Dump constraint graphs before and after solving.
11202
e38811ce
RG
112032011-04-28 Richard Guenther <rguenther@suse.de>
11204
11205 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11206 New function split out from ...
11207 (find_func_aliases): ... here. Call it.
11208 (find_func_aliases_for_call): Likewise.
11209
fbaf0d0c
GDR
112102011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
11211
11212 * internal-fn.h (internal_fn_name_array): Declare.
11213 (internal_fn_flags_array): Likewise.
11214
cbb734aa
UB
112152011-04-27 Uros Bizjak <ubizjak@gmail.com>
11216
11217 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
11218 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11219 Move from sse.md.
11220 (ssemodefsuffix): Remove.
11221 (ssevecmodesuffix): New mode attribute.
11222 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11223 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11224 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11225 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11226 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11227 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11228 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11229 ssemodesuffix mode attribute.
11230 (float splitters): Use ssevecmodesuffix mode attribute.
11231 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11232 (sseinsmode): Rename from avxvecmode.
11233 (avxsizesuffix): Rename from avxmodesuffix.
11234 (sseintvecmode): Rename from avxpermvecmode.
11235 (ssedoublevecmode): Rename from ssedoublesizemode.
11236 (ssehalfvecmode): Rename from avxhalfvecmode.
11237 (ssescalarmode): Rename from avxscalarmode.
11238 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11239 templates for ssemodesuffix mode attribute.
11240 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11241 mode attribute.
11242
11243 Adjust RTX patterns globally for renamed mode attributes.
11244
991278ab
JH
112452011-04-27 Jan Hubcika <jh@suse.cz>
11246
11247 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11248 * ipa-inline-analysis.c: Include alloc-pool.h.
11249 (edge_predicate_pool): New.
11250 (trye_predicate_p): New function
11251 (false_predicate_p): New function.
11252 (add_clause): Sanity check that false clauses are "optimized";
11253 never add clauses to predicate that is already known to be false.
11254 (and_predicate): Use flase_predicate_p.
11255 (evaulate_predicate): Rename to ...
11256 (evaluate_predicate): ... this one; update all callers; assert
11257 that false is not listed among possible truths.
11258 (dump_predicate): Use true_predicate_p.
11259 (account_size_time): Use false_predicate_p.
11260 (evaulate_conditions_for_edge): Rename to ...
11261 (evaluate_conditions_for_edge) ... this one.
11262 (edge_set_predicate): New function.
11263 (inline_edge_duplication_hook): Duplicate edge predicates.
11264 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 11265 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
11266 (dump_inline_summary): Update.
11267 (estimate_function_body_sizes): Set edge predicates.
11268 (estimate_calls_size_and_time): Handle predicates.
11269 (estimate_callee_size_and_time): Update.
11270 (remap_predicate): Add toplev_predicate; update comment.
11271 (remap_edge_predicates): New function.
11272 (inline_merge_summary): Compute toplev predicate; update.
11273 (read_predicate): New function.
11274 (read_inline_edge_summary): Use it.
11275 (inline_read_section): Likewise.
11276 (write_predicate): New function.
11277 (write_inline_edge_summary): Use it.
11278 (inline_write_summary): Likewise.
11279 (inline_free_summary): Free alloc pool and edge summary vec.
11280
648b5f85
RG
112812011-04-27 Richard Guenther <rguenther@suse.de>
11282
11283 * tree-ssa-structalias.c (changed_count): Remove.
11284 (changed): Use a bitmap.
11285 (unify_nodes): Adjust.
11286 (do_sd_constraint): Likewise.
11287 (do_ds_constraint): Likewise.
11288 (do_complex_constraint): Likewise.
11289 (solve_graph): Likewise.
11290
4d5dcfb2
JH
112912011-04-27 Jan Hubicka <jh@suse.cz>
11292
11293 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11294
200eb7d2
UB
112952011-04-27 Uros Bizjak <ubizjak@gmail.com>
11296
11297 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11298 (avx_vperm2f128_*_operand): Ditto.
11299 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11300 Use avx_vpermilp_parallel in insn condition.
11301 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11302 Use avx_vperm2f128_parallel in insn condition.
11303
7d6e2521
RG
113042011-04-27 Richard Guenther <rguenther@suse.de>
11305
11306 * Makefile.in (tree-ssa-structalias.o): Remove
11307 gt-tree-ssa-structalias.h dependency.
11308 (GTFILES): Remove tree-ssa-structalias.c.
11309 * tree.c (allocate_decl_uid): New function.
11310 (make_node_stat): Use it.
11311 (copy_node_stat): Likewise.
11312 * tree.h (allocate_decl_uid): Declare.
11313 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11314 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11315 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 11316 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
11317 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11318 (struct heapvar_map): Likewise.
11319 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11320 heapvar_insert): Likewise.
11321 (make_heapvar_for): Rename to ...
11322 (make_heapvar): ... this. Simplify.
11323 (fake_var_decl_obstack): New global var.
11324 (build_fake_var_decl): New function.
11325 (make_constraint_from_heapvar): Adjust.
11326 (handle_lhs_call): Likewise.
11327 (create_function_info_for): Likewise.
11328 (intra_create_variable_infos): Likewise.
11329 (init_alias_vars): Allocate fake_var_decl_obstack.
11330 (init_alias_heapvars, delete_alias_heapvars): Remove.
11331 (compute_points_to_sets): Do not call init_alias_heapvars.
11332 (ipa_pta_execute): Likewise.
11333 (delete_points_to_sets): Free fake_var_decl_obstack.
11334
526ed6c2
UW
113352011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11336
11337 * config/spu/divmovti4.c (union qword_UTItype): New data type.
11338 (si_from_UTItype, si_to_UTItype): New functions.
11339 (__udivmodti4): Use them to implement type-punning.
11340 * config/spu/multi3.c (union qword_TItype): New data type.
11341 (si_from_TItype, si_to_TItype): New functions.
11342 (__multi3): Use them to implement type-punning.
11343
c187d33c
UW
113442011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11345
11346 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11347
40982661
JH
113482011-04-27 Jan Hubicka <jh@suse.cz>
11349
11350 * ipa-prop.c (function_insertion_hook_holder): New holder.
11351 (ipa_add_new_function): New function.
200eb7d2
UB
11352 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11353 Register/deregister holder.
40982661 11354
9aef53ee
RG
113552011-04-27 Richard Guenther <rguenther@suse.de>
11356
11357 PR tree-optimization/48772
200eb7d2 11358 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 11359
f63d806d
RG
113602011-04-27 Richard Guenther <rguenther@suse.de>
11361
11362 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11363 TARGET_MEM_REF handling.
11364
e1ea7451
NC
113652011-04-27 Nick Clifton <nickc@redhat.com>
11366
9b5db25d
NC
11367 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11368 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11369 (REG_CLASS_NAMES): Likewise.
11370 (REG_CLASS_CONTENTS): Likewise.
11371 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11372 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11373 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
11374 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
11375 (EVEN_REGS): New macro. Alias for QUAD_REGS.
11376 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
11377 duplicate register classes.
97d20907 11378 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
11379 (frv_register_move_cost): Likewise.
11380
e1ea7451
NC
11381 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
11382 end of the regno_reg_class array.
11383
5c2f94b4
JJ
113842011-04-27 Jakub Jelinek <jakub@redhat.com>
11385
11386 PR c/48742
11387 * c-typeck.c (build_binary_op): Don't wrap arguments if
11388 int_operands is true.
11389
57a944d7
KK
113902011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
11391
11392 PR target/48767
11393 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
11394 targetm.calls.must_pass_in_stack for void type.
11395
898b8927
JH
113962011-04-26 Jan Hubicka <jh@suse.cz>
11397
11398 * cgraphbuild.c (build_cgraph_edges): Update call
11399 of cgraph_create_edge and cgraph_create_indirect_edge.
11400 * cgraph.c (cgraph_create_edge_including_clones,
11401 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
11402 cgraph_update_edges_for_call_stmt_node): Do not take nest
11403 argument; do not initialize call_stmt_size/time.
11404 (dump_cgraph_node): Do not dump nest.
11405 (cgraph_clone_edge): Do not take loop_nest argument;
11406 do not propagate it; do not clone call_stmt_size/time.
11407 (cgraph_clone_node): Likewise.
11408 (cgraph_create_virtual_clone): Update.
11409 * cgraph.h (struct cgraph_edge): Remove
11410 call_stmt_size/call_stmt_time/loop_nest.
11411 (cgraph_create_edge, cgraph_create_indirect_edge,
11412 cgraph_create_edge_including_clones, cgraph_clone_node): Update
11413 prototype.
11414 * tree-emutls.c (gen_emutls_addr): Update.
11415 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11416 loop_nest; handle indirect calls, too.
11417 (clone_inlined_nodes): Do not care about updating inline summaries.
11418 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11419 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11420 stream call_stmt_size/call_stmt_time/loop_nest.
11421 * ipa-inline.c (edge_badness): Update.
11422 (ipa_inline): dump summaries after inlining.
11423 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 11424 New.
898b8927
JH
11425 (inline_edge_summary): New function.
11426 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11427 (inline_edge_removal_hook): Handle edge summaries.
11428 (inline_edge_duplication_hook): New hook.
11429 (inline_summary_alloc): Alloc hooks.
11430 (initialize_growth_caches): Do not register removal hooks.
11431 (free_growth_caches); Do not free removal hook.
11432 (dump_inline_edge_summary): New function.
11433 (dump_inline_summary): Use it.
11434 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11435 (inline_update_callee_summaries): New function.
11436 (inline_merge_summary): Use it.
11437 (do_estimate_edge_time, do_estimate_edge_growth): Update.
11438 (read_inline_edge_summary): New function.
11439 (inline_read_section): Use it.
11440 (write_inline_edge_summary): New function.
11441 (inline_write_summary): Use it.
11442 (inline_free_summary): Free edge new holders.
11443 * tree-inline.c (copy_bb): Update.
11444
ffa03772
JM
114452011-04-26 Jason Merrill <jason@redhat.com>
11446
11447 * tree-eh.c (lower_try_finally_switch): Create the label along with
11448 the CASE_LABEL_EXPR.
11449
6d7b45ad
DM
114502011-04-26 David S. Miller <davem@davemloft.net>
11451 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11452
11453 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11454 * configure: Regenerate.
11455
df10b6d4
MM
114562011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11457
11458 PR target/48258
11459 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11460 reduction.
11461 (VEC_reduc): New code iterator and splitters for vector reduction.
11462 (VEC_reduc_name): Ditto.
11463 (VEC_reduc_rtx): Ditto.
11464 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11465 (reduc_<VEC_reduc_name>_v4sf): Ditto.
11466
11467 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11468 support for extracting SF on VSX.
11469
11470 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11471 generating xscvspdp.
11472 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11473 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11474 double add, minimum, maximum vector reduction.
11475 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11476 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11477 optimize double vector reduction.
11478 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11479
35a5db04
JM
114802011-04-26 Joseph Myers <joseph@codesourcery.com>
11481
11482 * config/fr30/fr30.h (inhibit_libc): Don't define.
11483 * config/m32r/m32r-protos.h: Correct comment.
11484 * config/v850/v850.h (GHS_default_section_names,
11485 GHS_current_section_names): Use tree, not union tree_node *.
11486
2f964ad6
XDL
114872011-04-26 Xinliang David Li <davidxl@google.com>
11488
200eb7d2 11489 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
11490 * c-family/c-opts.c (c_common_handle_option): Set
11491 warn_maybe_uninitialized.
11492 * opts.c (common_handle_option): Ditto.
11493 * common.opt: New option.
11494 * tree-ssa.c (warn_uninit): Add one more parameter.
11495 (warn_uninitialized_var): Pass warning code.
11496 * tree-flow.h: Interface change.
11497
9c7bd91a
RO
114982011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11499
200eb7d2 11500 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
11501 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11502 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11503
c2f36e21
RO
115042011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11505
11506 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11507 * config/mips/mips.opt (mmips-tfile): Remove.
11508
11509 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11510 mips-tdump reference to ...
200eb7d2 11511 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
11512 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11513 reference by Tru64 UNIX.
11514
2c9da85b
JJ
115152011-04-26 Jakub Jelinek <jakub@redhat.com>
11516
0c5f6539
JJ
11517 PR debug/48768
11518 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11519 is error_mark_node, set value to NULL.
11520
2c9da85b
JJ
11521 PR tree-optimization/48734
11522 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11523 if return value from maybe_fold_*_comparsions isn't something
11524 the code is prepared to handle.
11525
77fa1d54
UB
115262011-04-26 Uros Bizjak <ubizjak@gmail.com>
11527
11528 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11529 mode check.
11530 (ext_QIreg_nomode_operands): Remove.
11531 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11532 (*andsi_1): Ditto.
11533 (*andhi_1): Ditto.
11534
0e2a6c2b
AS
115352011-04-26 Andrew Stubbs <ams@codesourcery.com>
11536
11537 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11538
961562d8
RB
115392011-04-26 Richard Guenther <rguenther@suse.de>
11540
11541 * c-typeck.c (build_unary_op): Do not expand array-refs via
11542 pointer arithmetic. Only adjust qualifiers for function types.
11543
115442011-04-26 Richard Guenther <rguenther@suse.de>
11545
11546 PR middle-end/48694
11547 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11548 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
11549 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
11550 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 11551
a0d260fc
PC
115522011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
11553
6bec6c98 11554 * doc/extend.texi: Document __underlying_type.
a0d260fc 11555
4d583bb9
SB
115562011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
11557
11558 * config/rs6000/titan.md (automata_option "progress"): Remove.
11559
1f3fcdc3
JL
115602011-04-25 Jeff Law <law@redhat.com>
11561
11562 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11563
e5b0dad8
JK
115642011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
11565
11566 * system.h (ENUM_BITFIELD): Remove.
11567
5157a881 115682011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 11569 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
11570
11571 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11572 for STORE_FLAG_VALUE==-1 case.
11573
ed4c109e
RS
115742011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
11575
11576 PR target/43804
11577 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11578 LEGITIMATE_PIC_OPERAND_P.
11579
f3181aa2
JH
115802011-04-24 Jan Hubicka <jh@suse.cz>
11581
11582 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11583 WPA hack.
77fa1d54
UB
11584 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11585 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11586 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
11587 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11588 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11589 Sanity check predicate length.
11590 (remap_predicate): Likewise; sanity check jump functions.
11591 (inline_read_section, inline_write_summary): Sanity check
11592 predicate length.
11593
5307cbaa
PC
115942011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
11595
11596 PR other/48748
11597 * doc/extend.texi (Type Traits): Document __is_standard_layout,
11598 __is_literal_type, and __is_trivial; update throughout about
11599 possibly cv-qualified void types.
11600
bebd5f99
GP
116012011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
11602
11603 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11604 testsuite and make it version agnostic.
11605
7ee28a74
JH
116062011-04-22 Jan Hubicka <jh@suse.cz>
11607
11608 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11609
16997bc0
JJ
116102011-04-23 Jakub Jelinek <jakub@redhat.com>
11611
11612 PR c/48685
11613 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11614 to VOID_TYPE even around MODIFY_EXPR.
11615
f94d4ab1
MS
116162011-04-22 Mike Stump <mikestump@comcast.net>
11617
1a84c183 11618 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
11619 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11620 comment.
11621
632b4f8e
JH
116222011-04-22 Jan Hubicka <jh@suse.cz>
11623
11624 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
11625 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11626 ipa-prop.c; update all uses.
632b4f8e 11627 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
11628 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11629 merge summary of inlined function into former caller.
632b4f8e
JH
11630 * ipa-inline.c (max_benefit): Remove.
11631 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
11632 (update_caller_keys): Use
11633 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
11634 (update_callee_keys): Likewise.
11635 (update_all_callee_keys): Likewise.
77fa1d54
UB
11636 (inline_small_functions): Do not collect max_benefit; do not reset
11637 estimated_growth; call free_growth_caches and initialize_growth_caches.
11638 * ipa-inline.h (struct condition, type clause_t, struct predicate,
11639 struct size_time_entry): New structures.
632b4f8e 11640 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
11641 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11642 and estimated_growth.
632b4f8e
JH
11643 (edge_growth_cache_entry): New structure.
11644 (node_growth_cache, edge_growth_cache): New global vars.
11645 (estimate_growth): Turn into inline.
11646 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11647 initialize_growth_caches, free_growth_caches): Declare.
11648 (estimate_edge_growth): Rewrite.
11649 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
11650 (reset_node_growth_cache, reset_edge_growth_cache): New inline
11651 functions.
632b4f8e
JH
11652 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11653 (NUM_CONDITIONS): New constant.
11654 (predicate_conditions): New enum.
11655 (IS_NOT_CONSTANT): New constant.
11656 (edge_removal_hook_holder): New var.
11657 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
11658 (true_predicate, single_cond_predicate, false_predicate,
11659 not_inlined_predicate, add_condition, add_clause, and_predicates,
11660 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11661 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
11662 evaulate_conditions_for_edge): New functions.
11663 (inline_summary_alloc): Move to heap.
11664 (inline_node_removal_hook): Clear condition and entry vectors.
11665 (inline_edge_removal_hook): New function.
11666 (initialize_growth_caches, free_growth_caches): New function.
11667 (dump_inline_summary): Update.
11668 (edge_execution_predicate): New function.
11669 (will_be_nonconstant_predicate): New function.
11670 (estimate_function_body_sizes): Compute BB and constantness predicates.
11671 (compute_inline_parameters): Do not clear estimated_growth.
11672 (estimate_edge_size_and_time): New function.
11673 (estimate_calls_size_and_time): New function.
11674 (estimate_callee_size_and_time): New function.
11675 (remap_predicate): New function.
11676 (inline_merge_summary): New function.
11677 (do_estimate_edge_time): New function based on...
11678 (estimate_edge_time): ... this one.
11679 (do_estimate_edge_growth): New function.
11680 (do_estimate_growth): New function based on....
11681 (estimate_growth): ... this one.
11682 (inline_analyze_function): Analyze after deciding on jump functions.
11683 (inline_read_section): New function.
11684 (inline_read_summary): Use it.
11685 (inline_write_summary): Write all the new data.
11686 * ipa-prop.c (ipa_get_param_decl_index): Export.
11687 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
11688 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
11689 Declare.
11690 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
11691 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
11692 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
11693 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
11694 cgraph_edge_inlinable_p): Remove.
11695 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
11696 (cgraph_process_new_functions): Update call of
11697 compute_inline_parameters.
632b4f8e 11698
1df5b0db
RG
116992011-04-22 Richard Guenther <rguenther@suse.de>
11700
11701 * tree.c (build_int_cst): Properly create canonicalized integer
11702 constants.
11703 (build_int_cst_type): Remove scary comments.
11704
ae01169c
XDL
117052011-04-22 Xinliang David Li <davidxl@google.com>
11706
11707 * toplev.c (process_options): Enable -Werror=coverage-mismatch
11708 by default when -Wno-error is not specified.
11709 * opts-global.c (decode_options): Remove call to
11710 control_warning_options.
11711
93dfac24
JJ
117122011-04-22 Jakub Jelinek <jakub@redhat.com>
11713
11714 PR tree-optimization/48717
11715 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
11716 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
11717
1b5f5069
JM
117182011-04-22 Joseph Myers <joseph@codesourcery.com>
11719
11720 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
11721 definition where used.
11722
144f4153
JJ
117232011-04-22 Jakub Jelinek <jakub@redhat.com>
11724
11725 PR c/48716
11726 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
11727 TREE_STATIC variables declared inside of some OpenMP construct.
11728
f9fd305b
MJ
117292011-04-22 Martin Jambor <mjambor@suse.cz>
11730
11731 PR middle-end/48585
1d284ec5 11732 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 11733
49819fef
AM
117342011-04-22 Alexander Monakov <amonakov@ispras.ru>
11735
11736 PR c/36750
11737 * c-typeck.c (pop_init_level): Do not warn about initializing
11738 with ` = {0}'.
11739
401f6699
AM
117402011-04-22 Alan Modra <amodra@gmail.com>
11741
11742 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
11743 when returning call_cookie.
11744 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
11745 pointers, to functions with no more vector args than the current
11746 function, and some non-local calls for ABI_V4.
11747 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
11748 sibcall_nonlocal_aix64): Combine to ..
11749 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
11750 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
11751 (sibcall_value_nonlocal_aix<mode>): ..likewise.
11752 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
11753 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
11754 operand.
11755 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
11756 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
11757 sibcall_value_symbolic_64): Delete.
11758
903d1e67
XDL
117592011-04-21 Xinliang David Li <davidxl@google.com>
11760
11761 * cgraph.h: Remove pid.
11762 * cgraph.c: Remove pid.
11763 * value-prof.c (init_node_map): New function.
11764 (del_node_map): New function.
11765 (find_func_by_funcdef_no): New function.
11766 (gimple_ic_transform): Call new function.
11767 * cgraphunit.c (cgraph_finalize_function): Remove pid.
11768 * function.c (get_last_funcdef_no): New function.
11769 * function.h (get_last_funcdef_no): New function.
11770 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
11771 to libgcov function.
11772 (tree-profiling): Call node map init and delete function.
11773
7378e95f
ILT
117742011-04-21 Ian Lance Taylor <iant@google.com>
11775
11776 * godump.c (go_format_type): Use exported Go name for anonymous
11777 field name.
11778
e84a6fcf
NF
117792011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11780
11781 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
11782 Call builtin_function_type_list instead of builtin_function_type.
11783 (UNARY, BINARY, TRINARY, QUAD): Likewise.
11784
4fe058e2
NF
117852011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11786
11787 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
11788 build_function_type_list instead of build_function_type.
11789 Delete variable `endlink'.
11790
1ba0a2d2
NF
117912011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11792
11793 * config/s390/s390.c (s390_init_builtins): Call
11794 build_function_type_list instead of build_function_type.
11795
c0676219
NF
117962011-04-21 Nathan Froyd <froydnj@codesourcery.com>
11797
11798 * config/ia64/ia64.c (ia64_init_builtins): Call
11799 build_function_type_list instead of builtin_function_type.
11800
6ddfda8a
ER
118012011-04-21 Easwaran Raman <eraman@google.com>
11802
3a6448ea 11803 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
11804 (add_stack_var): ...and its reference here...
11805 (expand_stack_vars): ...and here.
11806 (stack_var_cmp): Sort by descending order of size.
11807 (partition_stack_vars): Change heuristic.
1d284ec5 11808 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
11809 (dump_stack_var_partition): Add newline after each partition.
11810
23756963
DA
118112011-04-21 Dimitrios Apostolou <jimis@gmx.net>
11812 Jeff Law <law@redhat.com>
11813
77fa1d54 11814 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
11815 * gengtype.c (matching_file_name_substitute): Likewise.
11816
aa2a43d2
RG
118172011-04-21 Richard Guenther <rguenther@suse.de>
11818
11819 PR lto/48703
1d284ec5 11820 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 11821
4d931f41
EB
118222011-04-21 Eric Botcazou <ebotcazou@adacore.com>
11823
11824 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
11825
f103fa7a
RG
118262011-04-21 Richard Guenther <rguenther@suse.de>
11827
11828 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
11829 file name.
11830
e19f6650
RG
118312011-04-21 Richard Guenther <rguenther@suse.de>
11832
11833 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
11834 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
11835 Use DECL_P, not SSA_VAR_P.
11836 (ptr_derefs_may_alias_p): Likewise.
11837 (ptr_deref_may_alias_ref_p_1): Likewise.
11838 (decl_refs_may_alias_p): Likewise.
11839 (refs_may_alias_p_1): Likewise.
11840 (ref_maybe_used_by_call_p_1): Likewise.
11841 (call_may_clobber_ref_p_1): Likewise.
11842 (indirect_ref_may_alias_decl_p): Assume indirect refrences
11843 are either MEM_REF or TARGET_MEM_REF.
11844 (indirect_refs_may_alias_p): Likewise.
11845 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
11846 for MEM_EXPR of indirect calls.
11847
9d1831bb
TG
118482011-04-21 Tristan Gingold <gingold@adacore.com>
11849
11850 * vmsdbgout.c (write_srccorr): Compute file length from the string.
11851 (dst_file_info_struct): Remove flen field.
11852 (lookup_filename): Remove code that set flen field.
11853
f199c029
TG
118542011-04-21 Tristan Gingold <gingold@adacore.com>
11855
11856 * config/ia64/ia64.c (ia64_start_function): Add a guard.
11857
2894086e
UB
118582011-04-21 Uros Bizjak <ubizjak@gmail.com>
11859
11860 PR target/48708
11861 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
11862 vec_extract and vec_concat for non-SSE4_1 targets.
11863
53f94a5c
RG
118642011-04-21 Richard Guenther <rguenther@suse.de>
11865
11866 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
11867 return statements.
11868
f0dca5ba
JM
118692011-04-21 Joseph Myers <joseph@codesourcery.com>
11870
11871 * config/i386/cygming.h (union tree_node, TREE): Don't define or
11872 undefine.
11873 (FILE): Don't undefine.
11874
984514ac
JM
118752011-04-21 Joseph Myers <joseph@codesourcery.com>
11876
11877 * config/alpha/alpha.c (struct machine_function): Use rtx, not
11878 struct rtx_def *.
11879 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
11880 struct rtx_def *.
11881 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 11882 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
11883 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
11884 rtx_def *.
11885 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
11886 definitions where used.
11887 * config/microblaze/microblaze.h (struct microblaze_args): Use
11888 rtx, not struct rtx_def *.
11889 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
11890 rtx_def *.
2894086e
UB
11891 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
11892 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
11893 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
11894 not struct rtx_def *.
11895 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
11896 struct rtx_def *.
11897 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
11898 rtx_def *.
2894086e 11899 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 11900
0b5a2724
RS
119012011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11902
11903 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
11904 operand_equal_p to compare DR_BASE_ADDRESSes.
11905 (vect_check_interleaving): Likewise.
11906
4b18d683
RS
119072011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11908
11909 PR target/46329
11910 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
11911 for all Neon struct constants.
11912
1a627b35
RS
119132011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
11914
11915 * target.def (legitimate_constant_p): New hook.
11916 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
11917 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
11918 * doc/tm.texi: Regenerate.
11919 * hooks.h (hook_bool_mode_rtx_true): Declare.
11920 * hooks.c (hook_bool_mode_rtx_true): Define.
11921 * system.h (LEGITIMATE_CONSTANT_P): Poison.
11922 * calls.c (precompute_register_parameters): Replace uses of
11923 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
11924 (emit_library_call_value_1): Likewise.
11925 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
11926 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
11927 * ira-costs.c (scan_one_insn): Likewise.
11928 * recog.c (general_operand, immediate_operand): Likewise.
11929 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
11930 * reload1.c (init_eliminable_invariants): Likewise.
11931
11932 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
11933 mode argument.
11934 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
11935 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
11936 argument.
11937 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11938 * config/alpha/predicates.md (input_operand): Update call to
11939 alpha_legitimate_constant_p.
11940
11941 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
11942 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
11943 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
11944 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11945 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
11946 (arm_legitimate_constant_p): New functions.
11947 (arm_cannot_force_const_mem): Make static.
11948
11949 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
11950
11951 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
11952 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
11953 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
11954 instead of bfin_legitimate_constant_p.
11955 (bfin_legitimate_constant_p): Make static. Add a mode argument.
11956 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11957
11958 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
11959
11960 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
11961
11962 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
11963 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
11964 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11965 (frv_legitimate_constant_p): Make static. Add a mode argument.
11966
11967 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
11968 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
11969 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
11970
11971 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
11972 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
11973 * config/i386/i386.c (legitimate_constant_p): Rename to...
11974 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
11975 argument.
11976 (ix86_cannot_force_const_mem): Update accordingly.
11977 (ix86_legitimate_address_p): Likewise.
11978 (TARGET_LEGITIMATE_CONSTANT_P): Define.
11979 * config/i386/i386.md: Update commentary.
11980
11981 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
11982 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
11983 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11984 (ia64_legitimate_constant_p): Make static. Add a mode argument.
11985
11986 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
11987
11988 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
11989 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
11990 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11991 (lm32_legitimate_constant_p): Make static. Add a mode argument.
11992
11993 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
11994 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
11995 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
11996
11997 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
11998 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
11999 (m32r_legitimate_constant_p): New function.
12000
12001 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12002 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12003 LEGITIMATE_CONSTANT_P.
12004 (LEGITIMATE_CONSTANT_P): Delete.
12005 * config/m68k/m68k.c (m68k_expand_prologue): Call
12006 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12007 (m68k_legitimate_constant_p): New function.
12008 * config/m68k/m68k.md: Update comments.
12009
12010 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12011 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12012 (mcore_legitimate_constant_p): New function.
12013
12014 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12015 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12016 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12017 Add a mode argument.
12018 (mep_legitimate_address): Update accordingly.
12019 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12020
12021 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12022 Delete.
12023 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12024 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12025 static. Check OP's mode for VOIDmode.
12026 (microblaze_legitimate_constant_p): New function.
12027 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12028
12029 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12030 * config/mips/mips.c (mips_legitimate_constant_p): New function.
12031 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12032 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12033 * config/mips/predicates.md: Update comments.
12034
12035 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12036 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12037 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12038 (mmix_legitimate_constant_p): Make static, return a bool, and take
12039 a mode argument.
12040 (mmix_print_operand_address): Update accordingly.
12041
12042 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12043 Delete.
12044 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
12045 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12046 static. Add a mode argument.
1a627b35
RS
12047 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12048
12049 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12050
12051 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12052 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12053 (pa_legitimate_constant_p): New function.
12054
12055 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12056
12057 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12058 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12059 (pdp11_legitimate_constant_p): New function.
12060
12061 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12062 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12063 (rs6000_legitimate_constant_p): New function.
12064
12065 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12066 (rx_legitimate_constant_p): ...this.
12067 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12068 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12069 (rx_legitimate_constant_p): ...this.
12070 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12071 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12072
12073 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12074 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12075 * config/s390/s390.c (legitimate_constant_p): Rename to...
12076 (s390_legitimate_constant_p): ...this. Make static, return a bool,
12077 and add a mode argument.
12078 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12079
12080 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12081
12082 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12083 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12084 (sh_legitimate_constant_p): New function.
12085
12086 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12087 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12088 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12089 (legitimate_constant_p): Rename to...
12090 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
12091 argument.
12092 (constant_address_p): Update accordingly.
12093
12094 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12095 argument and return a bool.
12096 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12097 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12098 (spu_legitimate_constant_p): Add a mode argument and return a bool.
12099 (spu_rtx_costs): Update accordingly.
12100 * config/spu/predicates.md (vec_imm_operand): Likewise.
12101
12102 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12103
12104 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12105 * config/v850/v850.c (v850_legitimate_constant_p): New function.
12106 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12107
12108 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12109 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12110 * config/vax/vax.c (legitimate_constant_p): Likewise.
12111
12112 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12113 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12114 (xtensa_legitimate_constant_p): New function.
12115
fbbf66e7
RS
121162011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12117
12118 * target.def (cannot_force_const_mem): Add a mode argument.
12119 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12120 * doc/tm.texi: Regenerate.
12121 * hooks.h (hook_bool_mode_rtx_false): Declare.
12122 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12123 (hook_bool_mode_const_rtx_true): Likewise.
12124 (hook_bool_mode_rtx_false): New function.
12125 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12126 to be non-VOID. Update call to cannot_force_const_mem.
12127 (find_reloads): Update accordingly.
12128 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12129 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12130 argument.
12131 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12132 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12133 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12134 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12135 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12136 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12137 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12138 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12139 (m68k_cannot_force_const_mem): ...this new function.
12140 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12141 argument.
12142 (mips_const_insns, mips_legitimize_const_move): Update calls.
12143 (mips_secondary_reload_class): Likewise.
12144 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12145 (pa_cannot_force_const_mem): ...this new function.
2894086e 12146 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
12147 (rs6000_cannot_force_const_mem): ...this new function.
12148 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12149 argument.
12150 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12151 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12152 to...
12153 (xtensa_cannot_force_const_mem): ...this new function.
12154
b861891b
NF
121552011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12156
12157 * config/mips/mips.c (mips16_build_function_stub): Call
12158 build_function_type_list instead of build_function_type.
12159 (mips16_build_call_stub): Likewise.
12160
34149ed5
NF
121612011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12162
12163 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12164 instead of build_function_type.
12165
12526412
NF
121662011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12167
12168 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12169 instead of build_function_type.
12170
3b84d61f
UB
121712011-04-20 Uros Bizjak <ubizjak@gmail.com>
12172
12173 PR target/48678
12174 * config/i386/i386.md (insv): Change operand 0 constraint to
12175 "register_operand". Change operand 1 and 2 constraint to
12176 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
12177 * config/i386/sse.md (sse4_1_pinsrb): Export.
12178 (sse2_pinsrw): Ditto.
12179 (sse4_1_pinsrd): Ditto.
12180 (sse4_1_pinsrq): Ditto.
12181 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12182 * config/i386/i386.c (ix86_expand_pinsr): New.
12183
4a25752b
ER
121842011-04-20 Easwaran Raman <eraman@google.com>
12185
12186 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12187 containing union type only with -fstrict-aliasing.
12188
04695783
JM
121892011-04-20 Jim Meyering <meyering@redhat.com>
12190
12191 Remove useless if-before-free tests.
12192 * calls.c (expand_call, save_area): Likewise.
12193 * cfgcleanup.c (try_forward_edges): Likewise.
12194 * collect2.c (collect_execute): Likewise.
12195 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12196 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12197 * coverage.c (coverage_checksum_string): Likewise.
12198 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12199 * cselib.c (cselib_init): Likewise.
12200 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12201 (df_set_clean_cfg): Likewise.
12202 * function.c (free_after_compilation): Likewise.
12203 * gcc.c (do_spec_1, main): Likewise.
12204 * gcov.c (create_file_names): Likewise.
12205 * gensupport.c (identify_predicable_attribute): Likewise.
12206 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12207 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12208 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12209 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12210 * ipa-pure-const.c (local_pure_const): Likewise.
12211 * ipa-reference.c (propagate): Likewise.
12212 * ira-costs.c (free_ira_costs): Likewise.
12213 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12214 * matrix-reorg.c (mat_free): Likewise.
12215 * prefix.c (get_key_value): Likewise.
12216 * profile.c (compute_value_histograms): Likewise.
12217 * reload1.c (free_reg_equiv): Likewise.
12218 * sched-deps.c (free_deps): Likewise.
12219 * sel-sched-ir.c (fence_clear): Likewise.
12220 * sese.c (set_rename, if_region_set_false_region): Likewise.
12221 * tree-data-ref.c (free_rdg): Likewise.
12222 * tree-eh.c (lower_try_finally): Likewise.
12223 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12224 * tree-ssa-live.c (delete_var_map): Likewise.
12225 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12226 * tree-ssa-pre.c (phi_trans_add): Likewise.
12227
6788475a
JJ
122282011-04-20 Jakub Jelinek <jakub@redhat.com>
12229
12230 PR tree-optimization/48611
12231 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12232 beyond ERT_MUST_NOT_THROW region.
12233
0eda4033
CM
122342011-04-20 Catherine Moore <clm@codesourcery.com>
12235
12236 * config/mips/mips.opt (mfix-24k): New.
12237 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12238 * config/mips/mips.md (length): Increase by 4 for stores if
12239 fixing 24K errata.
12240 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12241 all noreorder if fixing 24K errata.
12242 * doc/invoke.texi: Document mfix-24k.
12243
01475747
CLT
122442011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
12245
12246 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 12247 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 12248
bc2c1a60
AS
122492011-04-20 Andrew Stubbs <ams@codesourcery.com>
12250
12251 * config/arm/arm.c (arm_gen_constant): Move movw support ....
12252 (const_ok_for_op): ... to here.
12253
583722ee
KT
122542011-04-20 Kai Tietz <ktietz@redhat.com>
12255
2894086e
UB
12256 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12257 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 12258
422c0989
AS
122592011-04-20 Andrew Stubbs <ams@codesourcery.com>
12260
12261 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12262
d7978bff
RG
122632011-04-20 Richard Guenther <rguenther@suse.de>
12264
12265 PR tree-optimization/47892
12266 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12267 are if-convertible.
12268
818412ba
EB
122692011-04-20 Eric Botcazou <ebotcazou@adacore.com>
12270
12271 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12272
b501ce4e
TG
122732011-04-20 Tristan Gingold <gingold@adacore.com>
12274
12275 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12276
516edfdd
GJL
122772011-04-20 Georg-Johann Lay <avr@gjlay.de>
12278
12279 PR target/18145
12280
12281 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12282 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12283 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12284 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12285 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12286
12287 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12288 New prototype.
12289
12290 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12291 (avr_asm_named_section, avr_asm_output_aligned_common,
12292 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12293 New functions to update...
12294 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12295 (avr_asm_init_sections): Overwrite section callbacks for
12296 data_section, bss_section.
12297 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12298 from here to...
12299 (avr_file_end): ...here.
12300
dafc9511
RG
123012011-04-20 Richard Guenther <rguenther@suse.de>
12302
12303 PR middle-end/48695
12304 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 12305 objects and types here. Adjust for their offset before comparing.
dafc9511 12306
1da0876c
RS
123072011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12308
12309 * tree-vect-stmts.c (vectorizable_store): Only chain one related
12310 statement per copy.
12311
25583c4f
RS
123122011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12313
12314 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12315 (GIMPLE_H): Include $(INTERNAL_FN_H).
12316 (OBJS-common): Add internal-fn.o.
12317 (internal-fn.o): New rule.
12318 * internal-fn.def: New file.
12319 * internal-fn.h: Likewise.
12320 * internal-fn.c: Likewise.
12321 * gimple.h: Include internal-fn.h.
12322 (GF_CALL_INTERNAL): New gf_mask.
12323 (gimple_statement_call): Put fntype into a union with a new
12324 internal_fn field.
12325 (gimple_build_call_internal): Declare.
12326 (gimple_build_call_internal_vec): Likewise.
12327 (gimple_call_same_target_p): Likewise.
12328 (gimple_call_internal_p): New function.
12329 (gimple_call_internal_fn): Likewise.
12330 (gimple_call_fntype): Return null for internal calls.
12331 (gimple_call_set_fntype): Assert that the function is not internal.
12332 (gimple_call_set_fn): Likewise.
12333 (gimple_call_set_fndecl): Likewise.
12334 (gimple_call_set_internal_fn): New function.
12335 (gimple_call_addr_fndecl): Handle null functions.
12336 (gimple_call_return_type): Likewise null types.
12337 * gimple.c (gimple_build_call_internal_1): New function.
12338 (gimple_build_call_internal): Likewise.
12339 (gimple_build_call_internal_vec): Likewise.
12340 (gimple_call_same_target_p): Likewise.
12341 (gimple_call_flags): Handle calls to internal functions.
12342 (gimple_call_fnspec): New function.
12343 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12344 (gimple_has_side_effects): Handle null functions.
12345 (gimple_rhs_has_side_effects): Likewise.
12346 (gimple_call_copy_skip_args): Handle calls to internal functions.
12347 * cfgexpand.c (expand_call_stmt): Likewise.
12348 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12349 * gimple-fold.c (gimple_fold_call): Handle null functions.
12350 (gimple_fold_stmt_to_constant_1): Don't fold
12351 calls to internal functions.
12352 * gimple-low.c (gimple_check_call_args): Handle calls to internal
12353 functions.
12354 * gimple-pretty-print.c (dump_gimple_call): Likewise.
12355 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12356 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12357 (do_warn_unused_result): Likewise.
12358 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12359 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12360 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12361 the target of a call.
12362 (initialize_hash_element): Update accordingly.
12363 (hashable_expr_equal_p): Use gimple_call_same_target_p.
12364 (iterative_hash_hashable_expr): Handle calls to internal functions.
12365 (print_expr_hash_elt): Likewise.
12366 * tree-ssa-pre.c (can_value_number_call): Likewise.
12367 (eliminate): Handle null functions.
12368 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12369 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12370 (find_func_aliases): Likewise.
12371 * value-prof.c (gimple_ic_transform): Likewise.
12372 (gimple_indirect_call_to_profile): Likewise.
12373 * lto-streamer-in.c (input_gimple_stmt): Likewise.
12374 * lto-streamer-out.c (output_gimple_stmt): Likewise.
12375
1a3118e9
JH
123762011-04-19 Jan Hubicka <jh@suse.cz>
12377
12378 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
12379 * ipa-inline.c (inline_small_functions): Compute summaries first,
12380 populate heap later.
1a3118e9 12381
fee8b6da
JH
123822011-04-19 Jan Hubicka <jh@suse.cz>
12383
12384 * cgraph.h (save_inline_function_body): Remove.
12385 * ipa-inline-transform.c: New file, broke out of...
12386 * ipa-inline.c: ... this one; Update toplevel comment.
12387 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
12388 make global.
12389 (update_noncloned_frequencies): Move to ipa-inline-transform.c
12390 (cgraph_mark_inline_edge): Rename to inline_call; move to
12391 ipa-inline-transform.c.
12392 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
12393 move to ipa-inline-transform.c
12394 (recursive_inlining, inline_small_functions, flatten_function,
12395 ipa_inline, inline_always_inline_functions,
12396 early_inline_small_functions): Update.
12397 (inline_transform): Move to ipa-inline-transform.c.
12398 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
12399 Declare.
12400 * Makefile.in (ipa-inline-transform.o): New file.
12401 * cgraphunit.c (save_inline_function_body): Move to
12402 ipa-inline-transform.c
12403
f0679612
DD
124042011-04-19 DJ Delorie <dj@redhat.com>
12405
12406 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12407 registers if we already know there aren't any.
12408 (m32c_emit_epilogue): Don't emit a barrier here.
12409 (m32c_emit_eh_epilogue): Likewise.
12410 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12411 operands at expand time.
12412 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12413 int" wchar type.
12414 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12415 duplicates. Provide aliases instead.
12416 * config/m32c/prologue.md (eh_return): Emit a barrier here.
12417 (eh_epilogue): Add a "(return)" here as a hint to other parts of
12418 the compiler.
12419
32257ddc
AS
124202011-04-19 Anatoly Sokolov <aesok@post.ru>
12421
12422 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12423 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12424 (general_or_i64_p, sparc_register_move_cost): New function.
12425
60bea929
RO
124262011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12427
12428 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 12429 Add lynx, mipssde. Sort table.
60bea929 12430
444b3995 124312011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 12432
9d12f71a
EB
12433 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12434 not negative.
444b3995 12435
d708ce50
JJ
124362011-04-19 Jakub Jelinek <jakub@redhat.com>
12437
12438 PR target/48678
12439 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12440 is a SUBREG with non-MODE_INT mode inside of it.
12441
49c471e3
MJ
124422011-04-19 Martin Jambor <mjambor@suse.cz>
12443
12444 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12445 also according to actual contants.
12446 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12447 (gimple_fold_call): Use it.
12448 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12449
0004f992
MJ
124502011-04-19 Martin Jambor <mjambor@suse.cz>
12451
12452 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12453 non-pointer assignments.
12454
40591473
MJ
124552011-04-19 Martin Jambor <mjambor@suse.cz>
12456
12457 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12458 account anc_offset and otr_type from the indirect edge info.
12459 * ipa-prop.c (get_ancestor_addr_info): New function.
12460 (compute_complex_ancestor_jump_func): Assignment analysis moved to
12461 get_ancestor_addr_info, call it.
12462 (ipa_note_param_call): Do not initialize information about polymorphic
12463 calls, return the indirect call graph edge. Remove the last
12464 parameter, adjust all callers.
12465 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12466 parameters. Initialize polymorphic information in the indirect edge.
12467
abe36b81
EB
124682011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12469
12470 PR lto/48148
12471 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12472 the types if they have different enumeration identifiers.
12473
e6416b30
JH
124742011-04-19 Jan Hubicka <jh@suse.cz>
12475
12476 * cgraph.h (cgraph_optimize_for_size_p): Declare.
12477 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12478 * predict.c (cgraph_optimize_for_size_p): Break out from ...
12479 (optimize_function_for_size_p) ... here.
12480
d39132ea
RG
124812011-04-19 Richard Guenther <rguenther@suse.de>
12482
12483 PR lto/48207
12484 * tree.c (free_lang_data): Do not reset the decl-assembler-name
12485 langhook.
12486
ff7037dc
EB
124872011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12488
12489 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12490 if DECL_NO_INLINE_WARNING_P is set on the function.
12491
c1ee2892
BS
124922011-04-19 Bernd Schmidt <bernds@codesourcery.com>
12493
12494 PR fortran/47976
12495 * reload1.c (inc_for_reload): Return void. All callers changed.
12496 (emit_input_reload_insns): Don't try to delete previous output
12497 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
12498
124992011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
12500
12501 * gengtype.h: Updated copyright year.
12502 (struct input_file_st): Add inpisplugin field.
12503 (type_fileloc): New function.
12504 * gengtype.c
12505 (write_typed_struct_alloc_def): Add gcc_assert.
12506 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12507 (write_typed_alloc_defns): Don't output for plugin files.
12508 (input_file_by_name): Clear inpisplugin field.
12509 (main): Set inpisplugin field for plugin files.
12510
897e0a89
NP
125112011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
12512
12513 * gengtype-state.c (string_eq): New.
12514 (read_state): Use string_eq instead of strcmp when creating the
12515 state_ident_tab.
12516
363ee90e
WG
125172011-04-19 Wei Guozhi <carrot@google.com>
12518
12519 PR target/47855
12520 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12521 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12522 linkage.
12523 * config/arm/constraints.md (Uu): New constraint.
12524 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12525
18a24fed
TG
125262011-04-19 Tristan Gingold <gingold@adacore.com>
12527
12528 * config.gcc (-*-*-*vms): Added.
12529 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12530 definitions moved.
12531 * config/vms/vms-ld.c: New file.
12532 * config/vms/vms-ar.c: New file.
12533 * config/vms/t-vmsnative: New file.
12534
1c13f168
XDL
125352011-04-18 Xinliang David Li <davidxl@google.com>
12536
12537 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12538
84825707
JJ
125392011-04-18 Jakub Jelinek <jakub@redhat.com>
12540
12541 PR middle-end/48661
12542 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12543 if TREE_TYPE (v) is non-NULL.
12544
12545 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12546 gimple_get_virt_mehtod_for_binfo.
12547 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12548 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12549 callers.
12550 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12551
7d4f8d02 125522011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
12553 Steve Ellcey <sje@cup.hp.com>
12554
7d4f8d02
EB
12555 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12556 use its mode as source mode if it isn't VOIDmode.
7254cb57 12557
474e8e70
DCR
125582011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
12559
12560 * doc/passes.texi: Fill crossref nodes.
12561
cff41484
JM
125622011-04-18 Jim Meyering <meyering@redhat.com>
12563
7d4f8d02 12564 Fix doubled-word typos in comments and strings
cff41484
JM
12565 * config/alpha/vms-unwind.h: s/for for/for/
12566 * config/arm/unwind-arm.h: Likewise.
12567 * config/microblaze/microblaze.c: Likewise.
12568 * config/sh/constraints.md: s/in in/in/
12569 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12570
f60c2554
UB
125712011-04-18 Uros Bizjak <ubizjak@gmail.com>
12572
12573 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12574 (AVX_FLOAT_MODE_P): Ditto.
12575 (AVX128_VEC_FLOAT_MODE_P): Ditto.
12576 (AVX256_VEC_FLOAT_MODE_P): Ditto.
12577 (AVX_VEC_FLOAT_MODE_P): Ditto.
12578 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12579 (UNSPEC_MASKSTORE): Ditto.
12580 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12581 Merge from <sse>_movmsk<ssemodesuffix> and
12582 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
12583 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
12584 iterator.
12585 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12586 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12587 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12588
09a2806f
JH
125892011-04-18 Jan Hubicka <jh@suse.cz>
12590
8a8dccb2
JH
12591 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12592
09a2806f
JH
12593 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12594 (want_inline_function_called_once_p): Break out the logic from
12595 ipa_inline.
12596 (edge_badness): Ensure that profile is not misupdated.
12597 (lookup_recursive_calls): Prioritize by call frequencies.
12598 (inline_small_functions): Move program size estimates here;
12599 actually process whole queue even when unit growth has been
12600 met. (to properly compute inline_failed reasons and for the
f60c2554 12601 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
12602 (ipa_inline): Remove unit summary code; first inline hot calls
12603 of functions called once, cold calls next.
12604 (order, nnodes): Remove unused variables.
12605 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12606 (GTFILES): Remove ipa-inline.c
12607 * sel-sched.c (fill_insns): Silence uninitialized var warning.
12608
3eea52ef
EB
126092011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12610
12611 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12612
229a1c59 126132011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 12614 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
12615
12616 * arm.c (neon_builtin_type_bits): Remove.
12617 (typedef enum neon_builtin_mode): New.
12618 (T_MAX): Don't define.
12619 (typedef enum neon_builtin_datum): Remove bits, codes[],
12620 num_vars and base_fcode. Add mode, code and fcode.
12621 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12622 VAR10): Change accordingly.
12623 (neon_builtin_data[]): Change accordingly
12624 (arm_init_neon_builtins): Change accordingly.
12625 (neon_builtin_compare): Remove.
12626 (locate_neon_builtin_icode): Remove.
12627 (arm_expand_neon_builtin): Change accordingly.
12628
12629 * arm.h (enum arm_builtins): Move to ...
12630 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12631
12632 * arm.c (arm_builtin_decl): Declare.
12633 (TARGET_BUILTIN_DECL): Define.
12634 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12635 (arm_builtin_decls[]): New.
12636 (arm_init_neon_builtins): Store builtin declarations in
12637 arm_builtin_decls[].
12638 (arm_init_tls_builtins): Likewise.
12639 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
12640 (arm_builtin_decl): New.
12641
75e802cc
RG
126422011-04-18 Richard Guenther <rguenther@suse.de>
12643
12644 * tree.c (upper_bound_in_type): Build properly canonicalized
12645 INTEGER_CSTs.
12646 (lower_bound_in_type): Likewise.
12647
3b45a007
RG
126482011-04-18 Richard Guenther <rguenther@suse.de>
12649
12650 * gimple.h (gimple_call_addr_fndecl): New function.
12651 (gimple_call_fndecl): Use it.
12652 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12653 for direct calls.
12654 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12655 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12656
d25a79ea
RG
126572011-04-18 Richard Guenther <rguenther@suse.de>
12658
12659 PR middle-end/48650
12660 * tree.c (build_string): STRING_CST is now derived from tree_typed.
12661
7d5fc814
EB
126622011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12663
12664 PR lto/48492
12665 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12666 DECL_IN_CONSTANT_POOL without RTL.
12667
7e7cfcf6
UW
126682011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
12669 Ira Rosen <ira.rosen@linaro.org>
12670
12671 PR target/48252
12672 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12673 to match neon_vzip/vuzp/vtrn_internal.
12674 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
12675 outputs explicitly dependent on both inputs.
12676 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
12677
49eab32e
JJ
126782011-04-18 Jakub Jelinek <jakub@redhat.com>
12679
12680 PR tree-optimization/48616
12681 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
12682 whether the shift is by scalar or vector based on whether all SLP
12683 scalar stmts have the same rhs.
12684
e54170f4
CLT
126852011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
12686
12687 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
12688 memory operands.
12689
b14ee6c9
RS
126902011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
12691
269e0e18 12692 PR target/43700
b14ee6c9
RS
12693 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
12694 registers.
12695
10158cd3
JH
126962011-04-17 Jan Hubicka <jh@suse.cz>
12697
12698 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
12699 * cgrpahunit.c (cgraph_finalize_function): Do not set
12700 finalized_by_frontend.
10158cd3
JH
12701 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12702 finalized_by_frontend.
12703
2e9bb6ba
JH
127042011-04-17 Jan Hubicka <jh@suse.cz>
12705
12706 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
12707 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
12708 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
12709 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
12710 method.
2e9bb6ba
JH
12711 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
12712 gimple-fold.c
12713 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
12714
beb628e1
EB
127152011-04-17 Eric Botcazou <ebotcazou@adacore.com>
12716
12717 PR lto/48538
12718 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
12719 is non-null before accessing it.
12720 (input_cgraph): Remove trailing spaces.
12721
3e2fdd24
RE
127222011-04-17 Revital Eres <revital.eres@linaro.org>
12723
12724 * params.def (sms-min-sc): New param flag.
12725 * modulo-sched.c (sms_schedule): Use it.
12726 * doc/invoke.texi (sms-min-sc): Document it.
12727
4c0f7679
JH
127282011-04-17 Jan Hubicka <jh@suse.cz>
12729
12730 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
12731 present, also set gimple_call_set_cannot_inline.
12732 * ipa-inline.c: Update toplevel comment.
12733 (MAX_TIME): Remove.
12734 (cgraph_clone_inlined_nodes): Fix linebreaks.
12735 (cgraph_check_inline_limits): Restructure to ...
12736 (caller_growth_limits): ... this one; be more tolerant
12737 on growth in nested inline chains; add explanatory comment;
12738 fix stack accounting thinko introduced by previous patch.
12739 (cgraph_default_inline_p): Remove.
12740 (report_inline_failed_reason): New function.
12741 (can_inline_edge_p): New function.
12742 (can_early_inline_edge_p): New function.
12743 (leaf_node_p): Move upwards in file.
12744 (want_early_inline_function_p): New function.
12745 (want_inline_small_function_p): New function.
12746 (want_inline_self_recursive_call_p): New function.
12747 (cgraph_edge_badness): Rename to ...
12748 (edge_badness) ... this one; fix linebreaks.
12749 (update_edge_key): Update call of edge_baddness; add
12750 detailed dump about queue updates.
12751 (update_caller_keys): Use can_inline_edge_p and
12752 want_inline_small_function_p.
12753 (cgraph_decide_recursive_inlining): Rename to...
12754 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
12755 want_inline_self_recursive_call_p; simplify and remove no longer
12756 valid FIXME.
4c0f7679
JH
12757 (cgraph_set_inline_failed): Remove.
12758 (add_new_edges_to_heap): Use can_inline_edge_p and
12759 want_inline_small_function_p.
12760 (cgraph_decide_inlining_of_small_functions): Rename to ...
12761 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
12762 can/want predicates; cleanup debug ouput; work edges till fibheap
12763 is exhausted and do not stop once unit growth is reached; remove
12764 later loop processing remaining edges.
4c0f7679
JH
12765 (cgraph_flatten): Rename to ...
12766 (flatten_function): ... this one; use can_inline_edge_p
12767 and can_early_inline_edge_p predicates.
12768 (cgraph_decide_inlining): Rename to ...
12769 (ipa_inline): ... this one; remove unreachable nodes before
12770 inlining functions called once; simplify the pass.
12771 (cgraph_perform_always_inlining): Rename to ...
12772 (inline_always_inline_functions): ... this one; use
f60c2554 12773 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
12774 (cgraph_decide_inlining_incrementally): Rename to ...
12775 (early_inline_small_functions): ... this one; simplify
12776 using new predicates; cleanup; make dumps prettier.
12777 (cgraph_early_inlining): Rename to ...
12778 (early_inliner): newer inline regular functions into always-inlines;
12779 fix updating of call stmt summaries.
12780 (pass_early_inline): Update for new names.
12781 (inline_transform): Fix formating.
12782 (gate_cgraph_decide_inlining): Rename to ...
12783 (pass_ipa_inline): ... this one.
12784 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
12785 * ipa-inline-analysis.c (dump_inline_summary): Update.
12786 (compute_inline_parameters): Do not compute disregard_inline_limits;
12787 look for mismatching arguments.
12788 (estimate_growth): Fix handlig of non-trivial self recursion.
12789 (inline_read_summary): Do not read info->disregard_inline_limits.
12790 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
12791 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
12792 and move all checks into can_inline_edge_p predicate; re-enable code
12793 comparing optimization levels.
4c0f7679
JH
12794 (expand_call_inline): Do not test inline_forbidden_into_p.
12795 * Makefile.in (ipa-inline.o): Update arguments.
12796
54333b7c
RE
127972011-04-17 Revital Eres <revital.eres@linaro.org>
12798
12799 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
12800
42c2bf92
RE
128012011-04-17 Revital Eres <revital.eres@linaro.org>
12802
12803 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
12804
b183e9e0
MM
128052011-04-17 Michael Matz <matz@suse.de>
12806
12807 PR tree-optimization/48622
12808 PR lto/48645
12809 * ipa-inline-analysis.c (inline_read_summary): Read size/time
12810 in same order as they're written.
12811
b8a17fa2
JDA
128122011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12813
12814 * config/pa/predicates.md: Reorganize and simplify predicates.
12815 Eliminate duplicate code checks.
12816 (arith_operand): Rename to arith14_operand
12817 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
12818 * config/pa/pa.md: Use renamed operands.
12819 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
12820 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
12821 arith11_operand, adddi3_operand, indexed_memory_operand,
12822 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
12823 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
12824 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
12825 move_dest_operand, move_src_operand, prefetch_cc_operand,
12826 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
12827 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
12828 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
12829 div_operand, int5_operand, movb_comparison_operator,
12830 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
12831 arith_double_operand, ireg_operand, lhs_lshift_operand,
12832 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
12833 integer_store_memory_operand): Likewise.
12834 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
12835 (integer_store_memory_operand, read_only_operand,
12836 function_label_operand, borx_reg_operand,
12837 non_hard_reg_operand): Likewise.
12838 (eq_neq_comparison_operator): Delete unused operator.
12839 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
12840 function_label_operand.
12841 (emit_move_sequence): Likewise.
12842
8dfb9f16
UB
128432011-04-16 Uros Bizjak <ubizjak@gmail.com>
12844
12845 * config/i386/sse.md (sseunpackmode): New mode attribute.
12846 (ssepackmode): Ditto.
12847 (vec_pack_trunc_<mode>): Macroize expander from
12848 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
12849 (vec_unpacks_lo_<mode>): Macroize expander from
12850 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12851 (vec_unpacks_hi_<mode>): Macroize expander from
12852 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12853 (vec_unpacku_lo_<mode>): Macroize expander from
12854 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12855 (vec_unpacku_hi_<mode>): Macroize expander from
12856 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
12857 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
12858 ix86_expand_sse4_unpack.
12859 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
12860
e7f23018
JH
128612011-04-16 Jan Hubicka <jh@suse.cz>
12862
12863 * cgraphbuild.c: Include ipa-inline.h.
12864 (reset_inline_failed): Use initialize_inline_failed.
12865 * cgraph.c: Include ipa-inline.h.
12866 (cgraph_create_node_1): Do not initialize estimated_growth.
12867 (initialize_inline_failed): More to ipa-inline-analysis.c
12868 (dump_cgraph_node): Do not dump inline flags.
12869 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
12870 and disregard_inline_limits flags.
12871 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
12872 time, size, estimated_growth.
8dfb9f16
UB
12873 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
12874 Update.
e7f23018
JH
12875 * cgraphunit.c (cgraph_decide_is_function_needed): Use
12876 DECL_DISREGARD_INLINE_LIMITS.
12877 (cgraph_analyze_function): Do not initialize
12878 node->local.disregard_inline_limits.
12879 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
12880 inlinable, versionable and disregard_inline_limits.
12881 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
12882 cgraph_check_inline_limits, cgraph_default_inline_p,
12883 cgraph_edge_badness, update_caller_keys, update_callee_keys,
12884 add_new_edges_to_heap): Update.
12885 (cgraph_decide_inlining_of_small_function): Update; set
12886 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
12887 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
12888 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
12889 * ipa-inline.h (inline_summary): Add inlinable, versionable,
12890 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
12891 time, size and estimated_growth parameters.
e7f23018
JH
12892 (estimate_edge_growth): Update.
12893 (initialize_inline_failed): Declare.
12894 * ipa-split.c: Include ipa-inline.h
12895 (execute_split_functions): Update.
12896 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
12897 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
12898 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
12899 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
12900 estimated_growth to INT_MIN.
12901 (inline_node_duplication_hook): Likewise.
12902 (dump_inline_summary): Dump new fields.
12903 (compute_inline_parameters): Update.
12904 (estimate_edge_time, estimate_time_after_inlining,
12905 estimate_size_after_inlining, estimate_growth, inline_read_summary,
12906 inline_write_summary):
12907 (initialize_inline_failed): Move here from cgraph.c.
12908 * tree-sra.c: Include ipa-inline.h.
12909 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
12910 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
12911 ipa-inline.h.
e7f23018 12912
e81b8564
UB
129132011-04-16 Uros Bizjak <ubizjak@gmail.com>
12914
12915 * config/i386/sse.md (V16): New mode iterator.
12916 (VI1, VI8): Ditto.
12917 (AVXMODEQI, AVXMODEDI): Remove.
12918 (sse2, sse3): New mode attribute.
12919 (mov<mode>): Use V16 mode iterator.
12920 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
12921 (push<mode>1): Use V16 mode iterator.
12922 (movmisalign<mode>): Ditto.
12923 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12924 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
12925 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
12926 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
12927 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
12928 avx_movdqu<avxmodesuffix>.
12929 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
12930 *avx_movdqu<avxmodesuffix>.
12931 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
12932 avx_lddqu<avxmodesuffix>.
12933 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
12934 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
12935 avx_movnt<AVXMODEDI:mode>.
12936 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
12937 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
12938
4743d438
BS
129392011-04-16 Bernd Schmidt <bernds@codesourcery.com>
12940
12941 PR target/48629
12942 * haifa-sched.c (prune_ready_list, schedule_block): Use
12943 sched_pressure_p rather than flag_sched_pressure.
12944
748f7574 129452011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
12946
12947 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
12948 cgraph_get_node instead of cgraph_get_create_node.
12949
2ba172e0
JJ
129502011-04-15 Jakub Jelinek <jakub@redhat.com>
12951
12952 * cfgexpand.c (expand_debug_expr): Use
12953 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
12954
63d2a353
MM
129552011-04-15 Michael Matz <matz@suse.de>
12956
12957 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
12958 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
12959 * function.c (gimplify_parameters): Ditto.
12960 * gimplify.c (gimplify_vla_decl): Ditto.
12961
12962 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
12963 (gimple_call_set_alloca_for_var): New inline function.
12964 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
12965 * gimple.c (gimple_build_call_from_tree): Remember
12966 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
12967 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
12968
12969 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
12970 calls if they were for VLA objects.
12971
dee74c34
MJ
129722011-04-15 Martin Jambor <mjambor@suse.cz>
12973
12974 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
12975 of ADR_EXPRs.
12976
8e5837bc
MJ
129772011-04-15 Martin Jambor <mjambor@suse.cz>
12978
12979 PR middle-end/48601
12980 * tree-emutls.c (lower_emutls_function_body): Call
12981 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
12982 result is non-NULL.
12983
0dc33c3c
NP
129842011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
12985
12986 * c-decl.c (detect_field_duplicates): Call
12987 objc_detect_field_duplicates instead of objc_get_interface_ivars.
12988
edcdea5b
NF
129892011-04-15 Nathan Froyd <froydnj@codesourcery.com>
12990
12991 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
12992 * gimple.c (gimple_asm_clobbers_memory_p): Define.
12993 * ipa-pure-const.c (check_stmt): Call it.
12994 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
12995
8456558d
RG
129962011-04-15 Richard Guenther <rguenther@suse.de>
12997
12998 PR tree-optimization/48290
12999 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13000 Properly decide inhibiting propagation based on the valueized
13001 operand. Do loop-closed SSA form preserving here ...
13002 (init_copy_prop): ... not here.
13003
266446be
L
130042011-04-15 H.J. Lu <hongjiu.lu@intel.com>
13005
13006 PR target/48612
13007 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13008 (*ieee_smax<mode>3): Likewise.
13009
17465c6e
AK
130102011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13011
13012 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13013 Replace match_operand with match_dup for the third operand in
13014 these expanders.
13015
bce204e5
MK
130162011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13017
13018 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13019 to track processing of conditionals. Update all callers.
13020 (try_combine, simplify_if_then_else): Update.
13021
3162fdf4
MK
130222011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13023
13024 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13025 -fsched-pressure.
13026
79002a57 130272011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 13028
79002a57
GJL
13029 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13030 instead of match_operand for operand 3.
13031
4fd3a105
RS
130322011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
13033
13034 * recog.h (insn_operand_data): Add an "allows_mem" field.
13035 * genoutput.c (output_operand_data): Initialize it.
13036 * optabs.c (maybe_legitimize_operand_same_code): New function.
13037 (maybe_legitimize_operand): Use it when matching the original
13038 op->value.
13039
ad19c4be
EB
130402011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13041
13042 * gimplify.c: Fix issues in comments throughout.
13043 (voidify_wrapper_expr): Fix long line.
13044 (build_stack_save_restore): Likewise.
13045 (gimplify_loop_expr): Likewise.
13046 (gimplify_compound_lval): Likewise.
13047 (gimplify_init_ctor_eval): Likewise.
13048 (gimplify_modify_expr_rhs): Likewise.
13049 (omp_notice_threadprivate_variable): Likewise.
13050
b25aa0e8 130512011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 13052
b25aa0e8
EB
13053 * cfgexpand.c (expand_call_stmt): Convert the function type to the
13054 original one if this is not a builtin function.
e7925582 13055
09db7afe
JJ
130562011-04-14 Jakub Jelinek <jakub@redhat.com>
13057
13058 PR target/48605
13059 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13060 offset it as needed based on top 2 bits in operands[3], change
13061 MEM mode to SFmode and mask those 2 bits away from operands[3].
13062
c59633d9
NP
130632011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13064
13065 * c-parser.c (c_parser_objc_protocol_definition): Updated for
13066 change from objc_declare_protocols() to objc_declare_protocol().
13067
5e60198b
UB
130682011-04-14 Uros Bizjak <ubizjak@gmail.com>
13069
13070 * config/i386/sse.md (sse4_1): New mode attribute.
13071 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13072 avx_blend<ssemodesuffix><avxmodesuffix> and
13073 sse4_1_blend<ssemodesuffix> using VF mode iterator.
13074 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13075 avx_blendv<ssemodesuffix><avxmodesuffix> and
13076 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13077 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13078 avx_dp<ssemodesuffix><avxmodesuffix> and
13079 sse4_1_dp<ssemodesuffix> using VF mode iterator.
13080 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13081 (sse4_1_packusdw): Merge with *avx_packusdw.
13082 (sse4_1_pblendvb): Merge with *avx_pblendvb.
13083 (sse4_1_pblendw): Merge with *avx_pblendw.
13084 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13085 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13086 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13087 VF mode iterator.
13088 (sse4_1_round<ssescalarmodesuffix>): Merge with
13089 *avx_round<ssescalarmodesuffix>.
13090 (aesenc): Merge with *avx_aesenc.
13091 (aesenclast): Merge with *avx_aesenclast.
13092 (aesdec): Merge with *avx_aesdec.
13093 (aesdeclast): Merge with *avx_aesdeclast.
13094 (pclmulqdq): Merge with *pclmulqdq.
13095 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13096 New predicate.
13097 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13098
6f197850
L
130992011-04-14 H.J. Lu <hongjiu.lu@intel.com>
13100
13101 PR middle-end/48608
13102 * cfgexpand.c (get_decl_align_unit): Renamed to ...
13103 (align_local_variable): This. Update DECL_ALIGN.
13104 (add_stack_var): Updated.
13105 (expand_one_stack_var): Likewise.
13106
4a5ba3ed
RG
131072011-04-14 Richard Guenther <rguenther@suse.de>
13108
13109 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13110 Remove.
13111 (dse_initialize_block_local_data, dse_leave_block,
13112 record_voperand_set, get_stmt_uid): Likewise.
13113 (dse_possible_dead_store_p): Allow any kind of killing stmt.
13114 (dse_optimize_stmt): Remove voperand set handling code.
13115 Simplify and improve to handle any kind of killing stmt.
13116 (dse_record_phi): Remove.
13117 (dse_enter_block): Simplify.
13118 (tree_ssa_dse): Likewise.
13119 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13120
10a5dd5d
JH
131212011-04-14 Jan Hubicka <jh@suse.cz>
13122
13123 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13124 * cgraph.h (struct inline_summary): Move to ipa-inline.h
13125 (cgraph_local_info): Remove inline_summary.
13126 * ipa-cp.c: Include ipa-inline.h.
13127 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13128 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13129 accesor.
13130 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13131 (input_overwrite_node): Do not set inline summary.
13132 (input_node): Do not stream inline summary.
13133 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13134 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13135 growth; we do not have inline parameters computed for that anyway.
13136 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13137 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13138 (inline_summary_t): New type and VECtor.
13139 (debug_inline_summary, dump_inline_summaries): Declare.
13140 (inline_summary): Use VOCtor.
13141 (estimate_edge_growth): Kill hack computing call stmt size directly.
13142 * lto-section-in.c (lto_section_name): Add inline section.
13143 * ipa-inline-analysis.c: Include lto-streamer.h
13144 (node_removal_hook_holder, node_duplication_hook_holder): New holders
13145 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13146 (inline_summary_vec): Define.
13147 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13148 dump_inline_summaries): New functions.
5e60198b
UB
13149 (estimate_function_body_sizes): Properly compute size/time of outgoing
13150 calls.
13151 (compute_inline_parameters): Alloc inline_summary; do not compute
13152 size/time of incomming calls.
10a5dd5d
JH
13153 (estimate_edge_time): Avoid missing time summary hack.
13154 (inline_read_summary): Read inline summary info.
13155 (inline_write_summary): Write inline summary info.
13156 (inline_free_summary): Free all hooks and inline summary vector.
13157 * lto-streamer.h: Add LTO_section_inline_summary section.
13158 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13159 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13160
b602d918
RS
131612011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13162
13163 * tree-vectorizer.h (vect_strided_store_supported): Add a
13164 HOST_WIDE_INT argument.
13165 (vect_strided_load_supported): Likewise.
13166 (vect_permute_store_chain): Return void.
13167 (vect_transform_strided_load): Likewise.
13168 (vect_permute_load_chain): Delete.
13169 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13170 count argument. Check that the count is a power of two.
13171 (vect_strided_load_supported): Likewise.
13172 (vect_permute_store_chain): Return void. Update after above changes.
13173 Assert that the access is supported.
13174 (vect_permute_load_chain): Likewise.
13175 (vect_transform_strided_load): Return void.
13176 * tree-vect-stmts.c (vectorizable_store): Update calls after
13177 above interface changes.
13178 (vectorizable_load): Likewise.
13179 (vect_analyze_stmt): Don't check for strided powers of two here.
13180
ab4472fa
RG
131812011-04-14 Richard Guenther <rguenther@suse.de>
13182
13183 PR tree-optimization/48590
13184 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13185 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13186 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13187 BUILT_IN_STACK_SAVE.
13188 * tree-ssa-dce.c (propagate_necessity): Handle
13189 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13190
32dabdaf
NP
131912011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13192
13193 * c-parser.c (c_parser_objc_class_declaration): Updated call to
13194 objc_declare_class.
13195
daade206
RG
131962011-04-14 Richard Guenther <rguenther@suse.de>
13197
13198 * tree.h (get_object_alignment_1): Declare.
13199 * builtins.c (get_object_alignment_1): Split out worker from ...
13200 (get_object_alignment): ... here.
13201 * fold-const.c (get_pointer_modulus_and_residue): Use
13202 get_object_alignment_1.
13203
920e8172
RS
132042011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13205
13206 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13207 type parameter.
13208 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13209 parameter. Generalise code to handle arrays as well as vectors.
13210 (vect_setup_realignment): Update accordingly.
13211 * tree-vect-stmts.c (vectorizable_store): Likewise.
13212 (vectorizable_load): Likewise.
13213
5ce1ee7f
RS
132142011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13215
13216 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13217 within the per-copy loop.
13218
6438fe33 132192011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
13220
13221 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13222 in the dump file.
13223
6438fe33 132242011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
13225
13226 * doc/options.texi (Negative): Explicitly mention that the
13227 Negative chain must be circular.
13228
61e46a7d
NF
132292011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13230
13231 * function.h (block_chainon): Declare.
13232 * function.c (block_chainon): Define.
13233
43ea6502 132342011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 13235 Eric Weddington <eric.weddington@atmel.com>
748f7574 13236 Georg-Johann Lay <avr@gjlay.de>
5e60198b 13237
f60c2554 13238 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
13239 New Includes
13240 (avr_init_builtins, avr_expand_builtin,
13241 avr_expand_delay_cycles, avr_expand_unop_builtin,
13242 avr_expand_binop_builtin ): New functions.
13243 (avr_builtin_id): New enum
13244 (struct avr_builtin_description): New struct
13245 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13246 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 13247
43ea6502 13248 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 13249 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
13250 UNSPECV_DELAY_CYCLES): new enumeration values
13251 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13252 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13253 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13254 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13255 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13256 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13257 "fmulsu"): New insns
5e60198b 13258
43ea6502
AS
13259 * config/avr/avr-c.c: fix line endings
13260 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13261 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13262 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13263 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13264 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 13265
43ea6502
AS
13266 * doc/extend.texi (AVR Built-in Functions): New node
13267 (Target Builtins): Add documentation of AVR
13268 built-in functions.
13269
8a9b55f3
GJL
132702011-04-14 Georg-Johann Lay <avr@gjlay.de>
13271
13272 PR target/44643
13273 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13274 alone. Error if non-const data has attribute progmem.
13275
94bd1825
NF
132762011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13277
13278 * tree.h (struct tree_constructor): Include tree_typed instead of
13279 tree_common.
13280 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13281 TS_TYPED instead of TS_COMMON.
13282
5e60198b 132832011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
13284
13285 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13286 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13287 (sse2_psadbw): Merge with *avx_psadbw.
13288 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13289 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13290 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13291 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13292 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13293 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13294 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13295 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13296 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13297 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13298 (ssse3_palignrti): Merge with *avx_palignrti.
13299
4b1a4694
NF
133002011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13301
13302 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13303 * tree-ssanames.c (fini_ssanames): VEC_free it.
13304 (make_ssa_name_fn): Update for VECness of free_ssanames.
13305 (release_ssa_name, release_dead_ssa_names): Likewise.
13306 * tree.h (struct tree_ssa_name): Include tree_typed instead of
13307 tree_common.
13308 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13309 TS_TYPED instead of TS_COMMON.
13310
4da3b811
NF
133112011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13312
13313 * postreload-gcse.c (gcse_after_reload_main): Add calls to
13314 statistics_counter_event.
13315 * tree-ssa-copyrename.c (stats): Define.
13316 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
13317 statistics_counter_event.
13318 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13319 (bswap_stats, widen_mul_stats): Define.
13320 (insert_reciprocals): Increment rdivs_inserted.
13321 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
13322 rfuncs_inserted. Add calls to statistics_counter_event.
13323 (execute_cse_sincos_1): Increment inserted.
13324 (execute_cse_sincos): Zeroize sincos_stats. Add call to
13325 statistics_counter_event.
13326 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
13327 of bswap_stats. Add calls to statistics_counter_event.
13328 (convert_mult_to_widen): Increment widen_mults_inserted.
13329 (convert_plusminus_to_widen): Increment maccs_inserted.
13330 (convert_mult_to_fma): Increment fmas_inserted.
13331 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
13332 calls to statistics_counter_event.
13333
89fa552a
VM
133342011-04-13 Vladimir Makarov <vmakarov@redhat.com>
13335
13336 PR rtl-optimization/48455
13337 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13338 `temp_costs->mem_cost'.
13339
03dfc36d
JH
133402011-04-13 Jan Hubicka <jh@suse.cz>
13341
13342 * ipa-inline.h: New file.
13343 * ipa-inline-analysis.c: New file. Broken out of ...
13344 * ipa-inline.c: ... this file; update toplevel comment;
13345 include ipa-inline.h
13346 (inline_summary): Move to ipa-inline.h
13347 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13348 ipa-inline-analysis.c.
7d4f8d02
EB
13349 (cgraph_estimate_time_after_inlining): Rename to
13350 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
13351 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13352 to estimate_edge_growth.
13353 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13354 rename to estimate_size_after_inlining.
13355 (cgraph_mark_inline_edge): Update for new naming convention.
13356 (cgraph_check_inline_limits): Likewise.
13357 (cgraph_edge_badness): Likewise.
13358 (cgraph_decide_recursive_inlining): Likewise.
13359 (cgraph_decide_inlining_of_small_functions): Likewise.
13360 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
13361 (cgraph_estimate_growth): Rename to estimate_growth; move to
13362 ipa-inline-analysis.c.
03dfc36d
JH
13363 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13364 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13365 (compute_inline_parameters): Likewise.
13366 (compute_inline_parameters_for_current): Likewise.
13367 (pass_inline_parameters): Likewise.
13368 (inline_indirect_intraprocedural_analysis): Likewise.
13369 (analyze_function): Rename to inline_analyze_function; likewise.
13370 (add_new_function): Move to ipa-inline-analysis.c.
13371 (inline_generate_summary): Likewise.
13372 (inline_read_summary): Likewise.
13373 (inline_write_summary): Likewise.
13374 * Makefile.in (ipa-inline-analysis.c): New file.
13375
7673c962
RO
133762011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13377
13378 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
13379 * configure: Regenerate.
13380
9698252f
NF
133812011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13382
13383 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
13384 instead of tree_common.
13385 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
13386 Likewise.
13387 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
13388 TS_TYPED rather than TS_COMMON.
13389 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
13390
3a7bfdd5
GJL
133912011-04-01 Georg-Johann Lay <avr@gjlay.de>
13392
13393 PR target/45263
86d83530
GJL
13394 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
13395 r20 around calls of __tablejump_elpm__
3a7bfdd5 13396
20790697
JJ
133972011-04-13 Jakub Jelinek <jakub@redhat.com>
13398
13399 PR middle-end/48591
13400 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
13401 NULL.
13402 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
13403
094d7661
BS
134042011-04-13 Bernd Schmidt <bernds@codesourcery.com>
13405
13406 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13407 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13408 (cfi_vec): New typedef.
13409 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13410 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13411 (cie_cfi_vec): New static variable.
13412 (cie_cfi_head): Delete.
13413 (add_cfi): Accept a cfi_vec * as first argument. All callers and
13414 declaration changed. Use vector rather than list operations.
13415 (new_cfi): Don't initialize the dw_cfi_next field.
13416 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13417 rather than list operations.
13418 (lookup_cfa): Use vector rather than list operations.
13419 (output_cfis): New argument upto. Accept a cfi_vec rather than
13420 a dw_cfi_ref list head as argument. All callers changed.
13421 Iterate over the vector using upto as a maximum index.
13422 (output_all_cfis): New static function.
13423 (output_fde): Use vector rather than list operations. Use the
13424 new upto argument for output_cfis rather than manipulating a
13425 list.
13426 (dwarf2out_begin_prologue): Change initializations to match
13427 new struct members.
13428 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13429 from the vector length rather than searching for the end of a list.
13430 Use output_all_cfis.
13431 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13432
673a5740
NC
134332011-04-13 Nick Clifton <nickc@redhat.com>
13434
13435 * config/rx/rx.md (movmemsi): Do not use this pattern when
13436 volatile pointers are involved.
13437
1ee8b298
UB
134382011-04-13 Uros Bizjak <ubizjak@gmail.com>
13439
13440 * config/i386/sse.md (pinsrbits): Remove.
13441 (sse2_packsswb): Merge with *avx_packsswb.
13442 (sse2_packssdw): Merge with *avx_packssdw.
13443 (sse2_packuswb): Merge with *avx_packuswb.
13444 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13445 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13446 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13447 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13448 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13449 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13450 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13451 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13452 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13453 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13454 (sse2_loadld): Merge with *avx_loadld.
13455 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13456 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13457 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13458 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13459 (vec_concatv2di): Merge with *vec_concatv2di_avx.
13460
81f653d6
NF
134612011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13462
13463 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13464 calling TREE_CHAIN.
13465 * print-tree.c (print_node): Likewise.
13466 * tree-inline.c (copy_tree_r): Likewise.
13467 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13468 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13469 instead of TS_COMMON.
13470 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13471 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13472 (copy_node_stat): Zero TREE_CHAIN only if necessary.
13473 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13474 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13475 ...and these...
13476 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13477 * tree.h: ...here.
13478 (TREE_CHAIN): Check for a TS_COMMON structure.
13479 (TREE_TYPE): Check for a TS_TYPED structure.
13480
748f7574 134812011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
13482
13483 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13484 cgraph_get_create_node instead of cgraph_node.
13485
eb345401
NP
134862011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13487
13488 * c-parser.c (c_parser_initelt): Updated call to
13489 objc_build_message_expr.
13490 (c_parser_postfix_expression): Likewise.
13491
a6c46762
KT
134922011-04-12 Kai Tietz <ktietz@redhat.com>
13493
13494 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13495 MASK_MS_BITFIELD_LAYOUT bit.
13496
b4ccfed9
JJ
134972011-04-12 Jakub Jelinek <jakub@redhat.com>
13498
13499 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13500 assert it is always true.
13501 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13502 moves.
13503
0d8a2528
NP
135042011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13505
13506 * c-parser.c (c_lex_one_token): Rewritten conditional used when
13507 compiling Objective-C to be more efficient.
13508
06bd234a
AF
135092011-04-12 Axel Freyn <axel-freyn@gmx.de>
13510
13511 * opts-common.c (decode_cmdline_options_to_array): Remove variable
13512 argv_copied.
13513
28569ac3
RS
135142011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13515
13516 * recog.h, genoutput.c, optabs.c: Revert last patch.
13517
ae59e00d
RR
135182011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13519
81b1e7eb
UB
13520 PR target/48090
13521 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 13522
cff1b7e0
RS
135232011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13524
13525 * recog.h (insn_operand_data): Add an "allows_mem" field.
13526 * genoutput.c (output_operand_data): Initialize it.
13527 * optabs.c (maybe_legitimize_operand_same_code): New function.
13528 (maybe_legitimize_operand): Use it when matching the original
13529 op->value.
13530
77059241
RS
135312011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13532
13533 * genpreds.c (process_define_predicate): Move most processing
13534 to gensupport.c. Continue to validate the expression.
13535 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13536 (process_define_predicate): Move processing to gensupport.c.
13537 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13538 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13539 (compute_predicate_codes): Moved from genrecog.c. Add lineno
13540 argument.
13541 (valid_predicate_name_p): New function, split out from old
13542 genpreds.c:process_define_predicate.
13543 (process_define_predicate): New function, combining code from
13544 old genpreds.c and genrecog.c functions.
13545 (process_rtx): Call it for DEFINE_PREDICATE and
13546 DEFINE_SPECIAL_PREDICATE.
13547
6308e208
RS
135482011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13549
13550 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13551 size of a '%A' memory reference.
13552 (T_DREG, T_QREG): New neon_builtin_type_bits.
13553 (arm_init_neon_builtins): Assert that the load and store operands
13554 are neon_struct_operands.
13555 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13556 (NEON_ARG_MEMORY): New builtin_arg.
13557 (neon_dereference_pointer): New function.
13558 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13559 Handle NEON_ARG_MEMORY.
13560 (arm_expand_neon_builtin): Update after above interface changes.
13561 Use NEON_ARG_MEMORY for loads and stores.
13562 * config/arm/predicates.md (neon_struct_operand): New predicate.
13563 * config/arm/iterators.md (V_two_elem): Tweak formatting.
13564 (V_three_elem): Use BLKmode for accesses that have no associated mode.
13565 (V_four_elem): Tweak formatting.
13566 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13567 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13568 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13569 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13570 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13571 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13572 (neon_vst4<mode>): Replace pointer operand with a memory operand.
13573 Use %A in the output template.
13574 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13575 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13576 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13577 the width of the memory access. Remove post-increment.
13578 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13579
e5db8f2f
NC
135802011-04-12 Nick Clifton <nickc@redhat.com>
13581
13582 * config/v850/v850.c (expand_prologue): Do not use the CALLT
13583 instruction for interrupt handlers if the target is the basic V850
13584 architecture.
13585 (expand_epilogue): Likewise.
13586
74f091d6
JJ
135872011-04-12 Jakub Jelinek <jakub@redhat.com>
13588
13589 PR rtl-optimization/48549
13590 * combine.c (propagate_for_debug): Also stop after BB_END of
13591 this_basic_block. Process LAST and just stop processing after it.
13592 (combine_instructions): If last_combined_insn has been deleted,
13593 set last_combined_insn to its PREV_INSN.
13594
f20ca725
RG
135952011-04-12 Richard Guenther <rguenther@suse.de>
13596
13597 PR tree-optimization/46076
13598 * gimple.h (struct gimple_statement_call): Add fntype field.
13599 (gimple_call_fntype): Adjust.
13600 (gimple_call_set_fntype): New function.
13601 * gimple.c (gimple_build_call_1): Set the call function type.
13602 * gimplify.c (gimplify_call_expr): Preserve the function
13603 type the frontend used for the call.
13604 (gimplify_modify_expr): Likewise.
13605 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13606 function type.
13607 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13608 function type.
13609 * tree-ssa.c (useless_type_conversion_p): Function pointer
13610 conversions are useless.
13611
a358e188
MJ
136122011-04-12 Martin Jambor <mjambor@suse.cz>
13613
13614 * cgraph.h (cgraph_node): Remove function declaration.
13615 (cgraph_create_node): Declare.
13616 (cgraph_get_create_node): Likewise.
13617 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13618 Updated all callers.
13619 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13620 the decl does not already exist. Call cgraph_get_create_node instead
13621 of cgraph_node.
13622 (cgraph_get_create_node): New function.
13623 (cgraph_same_body_alias): Update comment.
13624 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13625 assert it does not return NULL.
13626 (cgraph_update_edges_for_call_stmt): Likewise.
13627 (cgraph_clone_edge): Likewise.
13628 (cgraph_create_virtual_clone): Likewise.
13629 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13630 instead of cgraph_node.
13631 (cgraph_add_new_function): Call cgraph_create_node or
13632 cgraph_get_create_node instead of cgraph_node.
13633 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13634 instead of cgraph_node.
13635 (record_eh_tables): Likewise.
13636 (mark_address): Likewise.
13637 (mark_load): Likewise.
13638 (build_cgraph_edges): Call cgraph_get_create_node instead
13639 of cgraph_node.
13640 (rebuild_cgraph_edges): Likewise.
13641 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13642 instead of cgraph_node.
13643 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13644 cgraph_node.
13645 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13646 cgraph_create_node instead of cgraph_node.
13647 * c-decl.c (finish_function): Call cgraph_get_create_node instead
13648 of cgraph_node.
13649 * lto-cgraph.c (input_node): Likewise.
13650 * lto-streamer-in.c (input_function): Likewise.
13651 * varasm.c (mark_decl_referenced): Likewise.
13652 (assemble_alias): Likewise.
13653
fe660d7b
MJ
136542011-04-12 Martin Jambor <mjambor@suse.cz>
13655
13656 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13657 instead of cgraph_node and assert it does not return NULL.
13658 * lto-streamer-in.c (lto_read_body): Likewise.
13659 * omp-low.c (new_omp_context): Likewise.
13660 (create_task_copyfn): Likewise.
13661 * tree-emutls.c (lower_emutls_function_body): Likewise.
13662 * matrix-reorg.c (transform_allocation_sites): Likewise.
13663
bae5cddf
JJ
136642011-04-12 Jakub Jelinek <jakub@redhat.com>
13665
13666 PR c/48552
13667 * c-typeck.c (build_asm_expr): Error out on attempts to use
13668 void type outputs or inputs for constraints that allow reg or
13669 don't allow memory.
13670
06eb52ca
CLT
136712011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
13672 Richard Earnshaw <rearnsha@arm.com>
13673
13674 PR target/48250
13675 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
13676 to use sign-magnitude offsets. Reject unsupported unaligned
13677 cases. Add detailed description in comments.
13678 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
13679 condition from TARGET_32BIT to TARGET_ARM.
13680
648a616b
NF
136812011-04-11 Nathan Froyd <froydnj@codesourcery.com>
13682
13683 * tree.h (struct typed_tree): New.
13684 (struct tree_common): Include it instead of tree_base.
13685 (TREE_TYPE): Update for new location of type field.
13686 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
13687 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
13688 (union tree_node): Add typed field.
13689 * treestruct.def (TS_TYPED): New.
13690 * lto-streamer.c (check_handled_ts_structures): Handle it.
13691 * tree.c (MARK_TS_TYPED): New macro.
13692 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
13693
1e6d1da0
EB
136942011-04-11 Eric Botcazou <ebotcazou@adacore.com>
13695
13696 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
13697 (force_nonfallthru): Do not alter the loop nest if no basic block
13698 was created.
13699
137002011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
13701
13702 * config/i386/sse.md (VI): New mode iterator.
13703 (SSEMODEI): Remove.
13704 (AVX256MODEI): Ditto.
13705 (AVXMODEF4P): Ditto.
13706 (avxvecpsmode): Ditto.
13707 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
13708 (sse2_andnot<mode>3): New expander.
13709 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
13710 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
13711 (<any_logic:code><mode>3): Use VI mode iterator.
13712 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
13713 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
13714 (*andnottf3): Handle AVX three-operand constraints.
13715 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
13716
b1372d5d 137172011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 13718 Robert Millan <rmh@gnu.org>
b1372d5d
JM
13719
13720 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
13721 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
13722 GNU_USER_DYNAMIC_LINKER64): Define.
13723 (REG_NAME): Don't undefine.
13724 (MD_UNWIND_SUPPORT): Undefine.
13725 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
13726 (REG_NAME): Don't undefine.
13727 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 13728 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 13729
761c0c6e
JM
137302011-04-11 Joseph Myers <joseph@codesourcery.com>
13731
13732 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
13733 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
13734
26e0228f
XDL
137352011-04-11 Xinliang David Li <davidxl@google.com>
13736
13737 * value-profile.c (check_ic_target): New function.
13738 (gimple_ic_transform): Sanity check indirect call target.
13739 * gimple-low.c (gimple_check_call_args): Interface change.
13740 (gimple_check_call_matching_types): New function.
13741 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
13742
137432011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
13744
13745 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
13746 tree-pretty-print.h & realmpfr.h.
13747
a58dfa49
VM
137482011-04-11 Vladimir Makarov <vmakarov@redhat.com>
13749
13750 PR middle-end/48464
13751 * ira.c (setup_pressure_classes): Fix typo in loop condition.
13752 (setup_allocno_and_important_classes): Ditto.
13753
107fd1c1
JM
137542011-04-11 Joseph Myers <joseph@codesourcery.com>
13755
13756 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
13757 GNU_USER_DYNAMIC_LINKER.
13758 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
13759 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13760 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
13761 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13762 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13763 GNU_USER_TARGET_OS_CPP_BUILTINS.
13764 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
13765 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13766 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13767 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13768 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
13769 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
13770 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13771 GNU_USER_TARGET_OS_CPP_BUILTINS.
13772 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13773 GNU_USER_DYNAMIC_LINKER.
13774 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13775 GNU_USER_TARGET_OS_CPP_BUILTINS.
13776 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
13777 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13778 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
13779 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13780 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
13781 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
13782 GNU_USER_DYNAMIC_LINKER64): Remove.
13783 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
13784 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13785 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13786 GNU_USER_DYNAMIC_LINKER.
13787 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13788 GNU_USER_TARGET_OS_CPP_BUILTINS.
13789 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13790 GNU_USER_TARGET_OS_CPP_BUILTINS.
13791 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
13792 to GNU_USER_TARGET_OS_CPP_BUILTINS.
13793 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
13794 GNU_USER_TARGET_OS_CPP_BUILTINS.
13795 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
13796 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
13797 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13798 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
13799 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13800 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13801 GNU_USER_DYNAMIC_LINKER.
13802 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
13803 GNU_USER_TARGET_OS_CPP_BUILTINS.
13804 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
13805 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13806 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13807 GNU_USER_DYNAMIC_LINKER.
13808 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13809 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13810 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
13811 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13812 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13813 GNU_USER_DYNAMIC_LINKER.
13814 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
13815 GNU_USER_DYNAMIC_LINKERN32.
13816 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
13817 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
13818 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
13819 GNU_USER_DYNAMIC_LINKER32.
13820 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
13821 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13822 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13823 GNU_USER_DYNAMIC_LINKER.
13824 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
13825 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13826 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
13827 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 13828 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
13829 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
13830 GNU_USER_DYNAMIC_LINKER32.
13831 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
13832 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
13833 GNU_USER_DYNAMIC_LINKER.
13834 * config/s390/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_LINKER32 to
13837 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
13838 GNU_USER_DYNAMIC_LINKER64.
13839 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
13840 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13841 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13842 GNU_USER_DYNAMIC_LINKER.
13843 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
13844 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13845 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
13846 GNU_USER_DYNAMIC_LINKER.
13847 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
13848 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13849 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
13850 GNU_USER_DYNAMIC_LINKER32.
13851 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13852 GNU_USER_DYNAMIC_LINKER64.
13853 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
13854 GNU_USER_DYNAMIC_LINKER64.
13855 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
13856 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
13857 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
13858 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 13859 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 13860
e24609cf
JM
138612011-04-11 Joseph Myers <joseph@codesourcery.com>
13862
13863 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
13864 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
13865 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
13866 GNU_USER_DYNAMIC_LINKER.
13867 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13868 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
13869 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
13870 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
13871 GNU_USER_DYNAMIC_LINKER64.
13872 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
13873 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
13874 GNU_USER_LINK_EMULATION.
13875 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
13876 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
13877 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
13878 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
13879 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
13880 CPP_SPEC, CC1_SPEC): Remove.
13881 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
13882 (GNU_USER_DYNAMIC_LINKER): Define.
13883 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
13884 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
13885 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
13886 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
13887 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
13888 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
13889 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13890 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
13891 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
13892 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
13893 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
13894 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
13895 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
13896 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
13897 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
13898 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
13899 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13900 GNU_USER_DYNAMIC_LINKER.
13901 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13902 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13903 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13904 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13905 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
13906 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
13907 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
13908 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
13909 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 13910 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 13911
b8ce4e94
KT
139122011-04-11 Kai Tietz <ktietz@redhat.com>
13913
13914 PR target/9601
13915 PR target/11772
13916 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
13917 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
13918 comment.
13919 (ix86_is_msabi_thiscall): Removed.
13920 (ix86_is_type_thiscall): Likewise.
13921 (ix86_get_callcvt): New function.
13922 (ix86_comp_type_attributes): Simplify check.
13923 (ix86_function_regparm): Use ix86_get_callcvt for calling
13924 convention attribute checks.
13925 (ix86_return_pops_args): Likewise.
13926 (ix86_static_chain): Likewise.
13927 (x86_this_parameter): Likewise.
13928 (x86_output_mi_thunk): Likewise.
13929 (ix86_function_type_abi): Optimize check for types without attributes.
13930 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
13931 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
13932 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
13933 by flag-values.
13934 (IX86_BASE_CALLCVT): Helper macro.
13935 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
13936 Use ix86_get_callcvt for calling convention attribute checks and avoid
13937 symbol-decoration for stdcall in TARGET_RTD case.
13938 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
13939 Likewise.
13940 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
13941 for declaration.
13942
798dd0ba
UB
139432011-04-11 Uros Bizjak <ubizjak@gmail.com>
13944
13945 * config/i386/sse.md (VI_128): New mode iterator.
13946 (VI12_128): Rename from SSEMODE12.
13947 (VI14_128): Rename from SSEMODE14.
13948 (VI124_128): New mode iterator.
13949 (VI24_128): Rename from SSEMODE248.
13950 (VI248_128): Rename from SSEMODE248.
13951 (SSEMODE124C8): Remove.
13952 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
13953 (*sse2_<plusminus_insn><mode>3): Merge with
13954 *avx_<plusminus_insn><mode>3.
13955 (*mulv8hi3): Merge with *avx_mulv8hi3.
13956 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
13957 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
13958 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
13959 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
13960 (ashr<mode>3): Merge with *avx_ashr<mode>3.
13961 (lshr<mode>3): Merge with *avx_lshr<mode>3.
13962 (ashl<mode>3): Merge with *avx_ashl<mode>3.
13963 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
13964 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
13965 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
13966 (*<smaxmin:code>v8hi3): Ditto.
13967 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
13968 (*<smaxmin:code>v16qi3): Ditto.
13969 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
13970 (*sse2_eq<mode>3): Ditto.
13971 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
13972 (*sse2_gt<mode>3): Ditto.
13973 (vcondv2di): Split out of vcond<mode>.
13974 (vconduv2di): Split out of vcondu<mode>.
13975
956011be
RG
139762011-04-11 Richard Guenther <rguenther@suse.de>
13977
13978 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
13979 before calling tree_low_cst.
13980
e6313a78
RG
139812011-04-11 Richard Guenther <rguenther@suse.de>
13982
13983 * stor-layout.c (layout_type): Compute all array index size operations
13984 in the original type.
13985 (initialize_sizetypes): Add comment.
13986 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
13987
e69d7376
JM
139882011-04-11 Joseph Myers <joseph@codesourcery.com>
13989
13990 * common.opt (Tbss=, Tdata=, Ttext=): New options.
13991
9f9ebcdf
MJ
139922011-04-11 Martin Jambor <mjambor@suse.cz>
13993
13994 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
13995 of cgraph_node, handle NULL return value.
13996 (cgraph_global_info): Likewise.
13997 (cgraph_rtl_info): Likewise.
13998 * tree-inline.c (estimate_num_insns): Likewise.
13999 * gimplify.c (unshare_body): Likewise.
14000 (unvisit_body): Likewise.
14001 (gimplify_body): Likewise.
14002 * predict.c (optimize_function_for_size_p): Likewise.
14003 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14004 (call_may_clobber_ref_p_1): Likewise.
14005 * varasm.c (function_section_1): Likewise.
14006 (assemble_start_function): Likewise.
14007
581985d7
MJ
140082011-04-11 Martin Jambor <mjambor@suse.cz>
14009
14010 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14011 of cgraph_node.
14012 * final.c (rest_of_clean_state): Likewise.
14013 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14014 * passes.c (pass_init_dump_file): Likewise.
14015 (execute_all_ipa_transforms): Likewise.
14016 (function_called_by_processed_nodes_p): Likewise.
14017 * predict.c (maybe_hot_frequency_p): Likewise.
14018 (probably_never_executed_bb_p): Likewise.
14019 (compute_function_frequency): Likewise.
14020 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14021 (unnest_nesting_tree_1): Likewise.
14022 (lower_nested_functions): Likewise.
14023 * tree-optimize.c (execute_fixup_cfg): Likewise.
14024 (tree_rest_of_compilation): Likewise.
14025 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14026 * tree-sra.c (ipa_early_sra): Likewise.
14027 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14028 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14029 * ipa.c (record_cdtor_fn): Likewise.
14030 * ipa-inline.c (cgraph_early_inlining): Likewise.
14031 (compute_inline_parameters_for_current): Likewise.
14032 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14033 * ipa-pure-const.c (local_pure_const): Likewise.
14034 * ipa-split.c (split_function): Likewise.
14035 (execute_split_functions): Likewise.
14036 * cgraphbuild.c (build_cgraph_edges): Likewise.
14037 (rebuild_cgraph_edges): Likewise.
14038 (cgraph_rebuild_references): Likewise.
14039 (remove_cgraph_callee_edges): Likewise.
14040 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14041 (verify_cgraph_node): Likewise.
14042 (cgraph_analyze_functions): Likewise.
14043 (cgraph_preserve_function_body_p): Likewise.
14044 (save_inline_function_body): Likewise.
14045 (save_inline_function_body): Likewise.
14046 * tree-inline.c (copy_bb): Likewise.
14047 (optimize_inline_calls): Likewise.
14048
57dbdc5a
MJ
140492011-04-11 Martin Jambor <mjambor@suse.cz>
14050
14051 PR tree-optimization/48195
14052 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14053 ipa_check_create_edge_args.
14054 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14055 ipa_check_create_edge_args.
14056 * ipa-inline.c (inline_generate_summary): Do not call
14057 ipa_check_create_node_params and ipa_check_create_edge_args.
14058 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14059 ipa_check_create_edge_args.
14060
d108e679
AS
140612011-04-09 Anatoly Sokolov <aesok@post.ru>
14062
14063 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14064 instead of loop.
14065 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14066 * function.c (record_hard_reg_sets): Likewise.
14067 * ira.c (compute_regs_asm_clobbered): Likewise.
14068 * sched-deps.c (sched_analyze_1): Likewise.
14069 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14070
3411bc59
XDL
140712011-04-09 Xinliang David Li <davidxl@google.com>
14072
14073 PR tree-optimization/PR48484
14074 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14075 has_valid_pred lazily
14076
b365495a
DS
140772011-04-09 Duncan Sands <baldrick@free.fr>
14078
14079 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14080
68bc509a
EB
140812011-04-08 Eric Botcazou <ebotcazou@adacore.com>
14082
14083 * combine.c (combine_validate_cost): Adjust comments. Set registered
14084 cost of I0 to zero at the end, if any.
14085
041e059f
XDL
140862011-04-08 Xinliang David Li <davidxl@google.com>
14087
68bc509a
EB
14088 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14089 to insane profile data.
041e059f 14090
444b3995
XDL
140912011-04-08 Xinliang David Li <davidxl@google.com>
14092
14093 * ipa-cp.c (ipcp_update_profiling): Correct
14094 negative scale factor due to insane profile data.
14095
6a801cf2
XDL
140962011-04-08 Xinliang David Li <davidxl@google.com>
14097
14098 * final.c (dump_basic_block_info): New function.
14099 (final): Dump basic block.
14100 (final_scan_insn): Remove old dump.
14101
d5f3624e
SK
141022011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
14103
68bc509a
EB
14104 PR target/47829
14105 * config.gcc (i386-*-freebsd): Disable unwind table generation for
14106 crtbegin/crtend.
d5f3624e 14107
42821aff
MM
141082011-04-08 Michael Matz <matz@suse.de>
14109
14110 PR middle-end/48389
14111 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14112 functions.
14113 (rebuild_jump_labels): Call rebuild_jump_labels_1.
14114 * rtl.h (rebuild_jump_labels_chain): Declare.
14115 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14116 insns inserted on edges.
14117
ad7be009
JM
141182011-04-08 Joseph Myers <joseph@codesourcery.com>
14119
14120 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14121 * config/arm/arm-arches.def: New.
14122 * config/arm/arm-opts.h: New.
14123 * config/arm/genopt.sh: New.
14124 * config/arm/arm-tables.opt: New (generated).
14125 * config/arm/arm.c (arm_handle_option, arm_target_help,
14126 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14127 (all_architectures): Get most table contents from arm-arches.def.
14128 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14129 arm_selected_tune here.
14130 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14131 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14132 (march=, mcpu=, mtune=): Use Enum and Var.
14133 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14134 (arm.o): Update dependencies.
ecbb6fb7 14135
42821aff 141362011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
14137
14138 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14139 of header_file.
14140 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14141 (write_typed_alloc_defns): Likewise.
14142 (main): Calls write_typed_alloc_defns with output_header.
14143
8d189b3f
VM
141442011-04-08 Vladimir Makarov <vmakarov@redhat.com>
14145
68bc509a 14146 PR inline-asm/48435
8d189b3f
VM
14147 * ira-color.c (setup_profitable_hard_regs): Add comments.
14148 Don't take prohibited hard regs into account.
14149 (setup_conflict_profitable_regs): Rename to
14150 get_conflict_profitable_regs.
14151 (check_hard_reg_p): Check prohibited hard regs.
14152
44f370bf
NF
141532011-04-08 Nathan Froyd <froydnj@codesourcery.com>
14154
14155 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14156 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14157 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14158
483d7ad3
JDA
141592011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14160
14161 PR target/48366
14162 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 14163 move from floating point to shift amount register.
483d7ad3
JDA
14164 (emit_move_sequence): Remove secondary reload support for floating
14165 point to shift amount amount register copies.
14166 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14167 amount register copies.
14168 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14169 register, return false if mode isn't a scalar integer mode.
14170 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14171
97e03fa1
RG
141722011-04-08 Richard Guenther <rguenther@suse.de>
14173
14174 * gimple.c (gimple_call_flags): Remove kludge.
14175
9d40778b
AM
141762011-04-08 Alexander Monakov <amonakov@ispras.ru>
14177
14178 * sel-sched.c (sel_region_init): Move call to
14179 sel_setup_region_sched_flags after setup_current_loop_nest.
14180
19ac7892
AB
141812011-04-08 Andrey Belevantsev <abel@ispras.ru>
14182
14183 PR rtl-optimization/48272
19ac7892
AB
14184 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14185 init_insn_reg_pressure_info. Adjust a caller.
14186 * sched-int.h (init_insn_reg_pressure_info): Declare.
14187 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14188 when sched-pressure is enabled.
14189
0f8c63cc
RG
141902011-04-08 Richard Guenther <rguenther@suse.de>
14191
14192 * gimple.c (gimple_set_modified): Do not queue calls to
14193 MODIFIED_NORETURN_CALLS here ...
14194 * tree-ssa-operands.c (update_stmt_operands): ... but here.
14195
5e5a425e
RG
141962011-04-08 Richard Guenther <rguenther@suse.de>
14197
14198 PR lto/48467
14199 * toplev.c (lang_dependent_init): Do not open asm_out_file
14200 in WPA mode, nor perform debug machinery initialization.
14201 (finalize): Do not unlink asm_out_file in WPA mode.
14202
9bfc434b
RG
142032011-04-08 Richard Guenther <rguenther@suse.de>
14204
14205 * gimple.h (gimple_call_fntype): New function.
14206 (gimple_call_return_type): Use it.
14207 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14208 * gimple-low.c (gimple_check_call_args): Likewise.
14209 * gimple.c (gimple_call_flags): Likewise.
14210 (gimple_call_arg_flags): Likewise.
14211 (gimple_call_return_flags): Likewise.
14212 * tree-cfg.c (verify_gimple_call): Likewise.
14213 (do_warn_unused_result): Likewise.
14214 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14215 * value-prof.c (gimple_ic_transform): Fix fndecl check.
14216
7c1f0b40
DM
142172011-04-08 Dmitry Melnik <dm@ispras.ru>
14218
14219 PR rtl-optimization/48235
14220 * sel-sched.c (code_motion_process_successors): Recompute the last
14221 insn in basic block if control flow changed.
14222 (code_motion_path_driver): Ditto. Recompute the first insn as well.
14223 Update condition for ilist_remove.
14224
ea4d630f
AM
142252011-04-08 Alexander Monakov <amonakov@ispras.ru>
14226
14227 PR rtl-optimization/48302
14228 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14229 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
14230 it to record added preheader blocks.
14231 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
14232 on to sel_add_loop_preheaders.
14233 (sel_region_init): Move call to setup_current_loop_nest after
14234 sel_init_bbs.
14235
07643d76
AM
142362011-04-08 Alexander Monakov <amonakov@ispras.ru>
14237
14238 PR target/48273
14239 * cfgloop.h (loop_has_exit_edges): New helper.
14240 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14241 non-clonable.
14242 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14243 that have no exit edges.
14244
1f3b2b4e
AM
142452011-04-08 Alexander Monakov <amonakov@ispras.ru>
14246
14247 PR rtl-optimization/48442
14248 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
14249 all callers. Adjust assert.
14250
554f1948
JJ
142512011-04-08 Jakub Jelinek <jakub@redhat.com>
14252
14253 PR tree-optimization/48377
14254 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14255 is_packed to true even for types with smaller TYPE_ALIGN than
14256 TYPE_SIZE.
14257
ddf72388
RG
142582011-04-08 Richard Guenther <rguenther@suse.de>
14259
14260 PR bootstrap/48513
14261 * doc/tm.texi: Re-generate.
14262
0c27e2d8
WG
142632011-04-08 Wei Guozhi <carrot@google.com>
14264
14265 PR target/47855
14266 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14267 * config/arm/arm.c (arm_attr_length_push_multi): New function.
14268 * config/arm/arm.md (*push_multi): Change the length computation to
14269 call a C function.
14270
07c5f94e
AS
142712011-04-08 Anatoly Sokolov <aesok@post.ru>
14272
14273 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14274 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14275 * doc/tm.texi: Regenerate.
14276 * system.h (ASM_OUTPUT_BSS): Poison.
14277 * varasm.c (asm_output_bss): Remove function.
14278 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 14279
07c5f94e
AS
14280 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14281 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14282 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14283 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14284 Likewise.
14285 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14286 Likewise.
14287 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14288 Likewise.
14289 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14290
5f2c36e1
JM
142912011-04-07 Joseph Myers <joseph@codesourcery.com>
14292
14293 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14294 EnumValue lines.
14295
39e7722b
JM
142962011-04-07 Joseph Myers <joseph@codesourcery.com>
14297
14298 * config/m68k/m68k.c (m68k_handle_option): Don't handle
14299 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14300 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14301 OPT_mcpu32.
14302 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14303 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14304 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14305 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14306 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14307 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14308 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14309 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14310 options. Don't map other m68k options manually. Don't handle
14311 old-style options as canonical.
14312 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 14313 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 14314
cf103ca4
EB
143152011-04-07 Eric Botcazou <ebotcazou@adacore.com>
14316
14317 * basic-block.h (force_nonfallthru): Move to...
14318 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14319 (force_nonfallthru): ...here.
14320 * cfghooks.c (force_nonfallthru): New function.
14321 * cfgrtl.c (force_nonfallthru): Rename into...
14322 (rtl_force_nonfallthru): ...this.
14323 (commit_one_edge_insertion): Do not set AUX field.
14324 (commit_edge_insertions): Do not discover new basic blocks.
14325 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14326 (cfg_layout_rtl_cfg_hooks): Likewise.
14327 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14328 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
14329 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14330
14431f58
AS
143312011-04-07 Anatoly Sokolov <aesok@post.ru>
14332
14333 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14334 Remove macros.
14335
3729983c
UB
143362011-04-07 Uros Bizjak <ubizjak@gmail.com>
14337
14338 * config/i386/sse.md: Update copyright year.
14339 (avxcvtvecmode): Remove.
14340 (sse_movhlps): Merge with *avx_movhlps.
14341 (sse_movlhps): Merge with *avx_movlhps.
14342 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14343 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14344 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14345 (sse_loadhps): Merge with *avx_loadhps.
14346 (sse_storelps): Merge with *avx_storelps.
14347 (sse_loadlps): Merge with *avx_loadlps.
14348 (sse_movss): Merge with *avx_movss.
14349 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14350 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14351 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14352 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14353 (vec_set<mode>_0): Ditto.
14354 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14355 (sse4_1_insertps): Merge with *avx_insertps.
14356 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14357 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14358 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14359 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14360 (sse2_storehpd): Merge with *avx_storehpd.
14361 (sse2_loadhpd): Merge with *avx_loadhpd.
14362 (sse2_loadlpd): Merge with *avx_loadlpd.
14363 (sse2_movsd): Merge with *avx_movsd.
14364 (*vec_concatv2df): Merge with *vec_concatv2df.
14365
4e626909
JJ
143662011-04-07 Jakub Jelinek <jakub@redhat.com>
14367
14368 PR debug/48343
14369 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 14370 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
14371 (try_combine): Add last_combined_insn parameter, pass it instead of
14372 i3 to propagate_for_debug.
14373
3729983c 143742011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
14375
14376 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
14377 to handle MDR <-> data register transfers.
14378 (movhi_internal): Likewise.
14379
20c03367
AM
143802011-04-07 Alan Modra <amodra@gmail.com>
14381
14382 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
14383 previous stack info.
14384
bf22920b
TV
143852011-04-07 Tom de Vries <tom@codesourcery.com>
14386
14387 PR target/43920
14388 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
14389 flow_find_cross_jump. Swap variables to implement backward replacement.
14390 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
14391
823918ae
TV
143922011-04-07 Tom de Vries <tom@codesourcery.com>
14393
14394 PR target/43920
14395 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
14396 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
14397 and bb2.
14398 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
14399 src1 or src2. Redirect edges to the last basic block. Update
14400 frequency and count on multiple basic blocks in case of fallthru.
823918ae 14401
472c95f5
TV
144022011-04-07 Tom de Vries <tom@codesourcery.com>
14403
14404 PR target/43920
14405 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
14406 function.
3729983c
UB
14407 (old_insns_match_p): Change return type. Replace return false/true
14408 with return dir_none/dir_both. Use can_replace_by.
14409 (flow_find_cross_jump): Add dir_p parameter. Init replacement
14410 direction from dir_p. Register replacement direction in dir, last_dir
14411 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
14412 merge_dir. Return replacement direction in dir_p.
14413 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14414 return type of old_insns_match_p.
14415 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14416 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14417 flow_find_cross_jump.
14418 * basic-block.h (enum replace_direction): New type.
14419 (flow_find_cross_jump): Add parameter to declaration.
14420
a95d4000
UB
144212011-04-06 Uros Bizjak <ubizjak@gmail.com>
14422
14423 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14424 (AVXMODEDCVTPS2DQ): Ditto.
14425 (VEC_FLOAT_MODE): Ditto.
14426 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
14427 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14428 (<any_logic:code><mode>3): Use VF mode iterator.
14429 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14430 Use VF mode iterator.
14431 (copysign<mode>3): Use VF mode iterator.
14432 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
14433 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14434 (*<any_logic:code><MODEF:mode>3): Merge with
14435 *avx_<any_logic:code><MODEF:mode>3.
14436 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14437 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14438 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14439 (avx_cvtdq2ps<avxmodesuffix>): Remove.
14440 (sse2_cvtdq2ps): Use %v modifier.
14441 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14442 (avx_cvtps2dq<avxmodesuffix>): Remove.
14443 (sse2_cvtps2dq): Use %v modifier.
14444 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14445 (avx_cvttps2dq<avxmodesuffix>): Remove.
14446 (sse2_cvttps2dq): Use %v modifier.
14447 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14448 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14449 (sse2_cvtsd2siq): Fix insn template.
14450 (sse2_cvtsd2siq_2): Ditto.
14451 (sse2_cvttsd2siq): Ditto.
14452 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14453 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14454
ad01c437
JM
144552011-04-06 Joseph Myers <joseph@codesourcery.com>
14456
14457 * gcov-io.c: Use GCC Runtime Library Exception.
14458
fe846284
JJ
144592011-04-06 Jakub Jelinek <jakub@redhat.com>
14460
14461 PR debug/48466
14462 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14463 as base_reg whatever register reg has been eliminated to, instead
14464 of hardcoding STACK_POINTER_REGNUM.
14465
acce4e77
JM
144662011-04-06 Joseph Myers <joseph@codesourcery.com>
14467
14468 * doc/tm.texi.in: Document C target hooks as separate from general
14469 target hooks.
14470 * doc/tm.texi: Regenerate.
14471 * genhooks.c (struct hook_desc): Add docname field.
14472 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
14473 docname field.
14474 (hook_array): Include c-target.def.
14475 (emit_documentation): Use docname field in output.
14476 (emit_init_macros): Take docname argument. Only emit definitions
14477 for hooks matching docname.
14478 (main): Expect additional arguments in all cases. Pass argument
14479 to emit_init_macros.
14480 * target.def: Move initial macro definitions and comments to
14481 target-hooks-macros.h.
14482 (gcc_targetcm): Move to c-family/c-target.def.
14483 * target.h (targetcm): Move declaration to c-family/c-target.h.
14484 * targhooks.c (default_handle_c_option): Move to
14485 c-family/c-opts.c.
14486 * targhooks.h (default_handle_c_option): Move declaration to
14487 c-family/c-common.h.
14488 * target-hooks-macros.h: New file.
14489 * config.gcc (target_has_targetcm): Define and use to add to
14490 c_target_objs and cxx_target_objs.
14491 * config/default-c.c: New file.
14492 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14493 of target.h and target-def.h.
14494 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14495 (darwin_objc_construct_string, darwin_cfstring_ref_p,
14496 darwin_check_cfstring_format_arg): Make static.
14497 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14498 TARGET_STRING_OBJECT_REF_TYPE_P,
14499 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14500 * config/darwin-protos.h (darwin_objc_construct_string,
14501 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14502 declare.
14503 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14504 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 14505 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
14506 * config/t-darwin (darwin-c.o): Update dependencies.
14507 * system.h (TARGET_HAS_TARGETCM): Poison.
14508 * Makefile.in (TARGET_H): Update.
14509 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14510 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14511 (default-c.o): New target.
14512 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 14513 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
14514 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
14515 c-target.def.
14516 (build/genhooks.o): Update dependencies.
14517
275b4baa 145182011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 14519
275b4baa
RG
14520 * ipa-inline.c (enum inlining_mode): Remove.
14521 (cgraph_flatten): Use some other token.
14522 (cgraph_edge_early_inlinable_p): New function, split out from ...
14523 (cgraph_perform_always_inlining): New function, split out from ...
14524 (cgraph_decide_inlining_incrementally): ... here.
14525 (cgraph_mark_inline_edge): Adjust.
14526 (cgraph_early_inlining): Re-structure.
14527 (pass_early_inline): Require SSA form.
14528
f15b8bdf 145292011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
14530 Julian Brown <julian@codesourcery.com>
14531 Mark Shinwell <shinwell@codesourcery.com>
14532
14533 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14534 LO_REGS only for Thumb-1.
14535 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14536 be used in short instructions when optimising for size on Thumb-2.
14537
516426da
EB
145382011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14539
14540 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14541 associated with user returns to be preserved.
14542
96621ebf
TG
145432011-04-06 Tristan Gingold <gingold@adacore.com>
14544
f15b8bdf
EB
14545 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14546 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
14547 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14548 if XCOFF_DEBUGGING_INFO.
14549
07c0852e
UB
145502011-04-06 Uros Bizjak <ubizjak@gmail.com>
14551
14552 * config/i386/i386.md (attribute isa): New.
14553 (attribute enabled): New.
14554 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14555 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14556 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14557 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14558 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14559 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14560 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14561 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14562
14563 * config/i386/sse.md (VF): New mode iterator.
14564 (VF1): Ditto.
14565 (VF2): Ditto.
14566 (VF_128): Ditto.
14567 (SSEMODEF4): Remove.
14568 (attribute sse): Handle V8SF and V4DF modes.
14569 (<absneg:code><mode>2): Use VF mode iterator.
14570 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
14571 mode iterator.
14572 (<plusminus_insn><mode>3): Use VF mode iterator.
14573 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14574 Use VF mode iterator.
14575 (<sse>_vm<plusminus_insn><mode>3): Merge with
14576 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
14577 (mul<mode>3): Use VF mode iterator.
14578 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
14579 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
14580 mode iterator.
14581 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14582 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14583 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
14584 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
14585 mode iterator.
14586 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14587 Use VF1 mode iterator.
14588 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14589 (sqrt<VF2:mode>2): New expander.
14590 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14591 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14592 and sqrtv2df2. Use VF mode iterator.
14593 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
14594 mode iterator.
14595 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14596 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14597 Use VF1 mode iterator.
14598 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14599 (<smaxmin:code><mode>3): Use VF mode iterator.
14600 (*<smaxmin:code><mode>3_finite): Merge with
14601 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
14602 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14603 (<sse>_vm<smaxmin:code><mode>2): Merge with
14604 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
14605 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
14606 mode iterator.
14607 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
14608 mode iterator.
14609 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14610 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14611 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14612 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14613 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
14614 VF mode iterator.
14615 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14616 Use VF_128 mode iterator.
14617 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
14618 mode iterator.
14619 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
14620 VF_128 mode iterator.
14621 (vcond<mode>): Use VF mode iterator.
14622 * config/i386/predicates.md (sse_comparison_operator): Merge with
14623 avx_comparison_float_operator. Do not declare as special_predicate.
14624 * config/i386/i386.c (struct builtin_description): Update for renamed
14625 compare patterns.
14626 (ix86_expand_args_builtin): Ditto.
14627 (ix86_expand_sse_compare_mask): Ditto.
14628
ff5d142c
RG
146292011-04-06 Richard Guenther <rguenther@suse.de>
14630
14631 * tree-inline.c (estimate_num_insns): For calls simply account
14632 for all passed arguments and a used return value.
14633
d7d1d041 146342011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 14635
d7d1d041
RG
14636 PR tree-optimization/47663
14637 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14638 call_stmt_time fields.
14639 (cgraph_edge_inlinable_p): Declare.
14640 (cgraph_edge_recursive_p): New inline function.
14641 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14642 (cgraph_clone_edge): Copy it.
14643 * ipa-inline.c (cgraph_estimate_edge_time): New function.
14644 Account for call stmt time.
14645 (cgraph_estimate_time_after_inlining): Take edge argument.
14646 (cgraph_estimate_edge_growth): Account call stmt size.
14647 (cgraph_estimate_size_after_inlining): Take edge argument.
14648 (cgraph_mark_inline_edge): Adjust.
14649 (cgraph_check_inline_limits): Likewise.
14650 (cgraph_recursive_inlining_p): Remove.
14651 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14652 (cgraph_decide_recursive_inlining): Take edge argument and
14653 adjust.
14654 (cgraph_decide_inlining_of_small_functions): Do not avoid
14655 diags for recursive inlining here.
14656 (cgraph_flatten): Adjust.
14657 (cgraph_decide_inlining_incrementally): Likewise.
14658 (estimate_function_body_sizes): Remove call cost handling.
14659 (compute_inline_parameters): Initialize caller edge call costs.
14660 (cgraph_estimate_edge_growth): New function.
14661 (cgraph_estimate_growth): Use it.
14662 (cgraph_edge_badness): Likewise.
14663 (cgraph_check_inline_limits): Take an edge argument.
14664 (cgraph_decide_inlining_of_small_functions): Adjust.
14665 (cgraph_decide_inlining): Likewise.
14666 * tree-inline.c (estimate_num_insns): Only account for call
14667 return value if it is used.
14668 (expand_call_inline): Avoid diagnostics on recursive inline
14669 functions here.
14670 * lto-cgraph.c (lto_output_edge): Output edge call costs.
14671 (input_edge): Input edge call costs.
14672
2feb95f7
RO
146732011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14674
14675 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
14676
26fbd9c2
JW
146772011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
14678
14679 * doc/invoke.texi (Spec Files): Fix typo.
14680
694dc0ca
EB
146812011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14682
14683 * profile.c (branch_prob): Move declaration of local variable. Remove
14684 obsolete ??? comment. Expand the location explicitly instead of using
14685 the LOCATION_FILE and LOCATION_LINE macros.
14686
4925d0d5
WG
146872011-04-06 Wei Guozhi <carrot@google.com>
14688
14689 PR target/47855
14690 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
14691 (arm_cond_branch): Likewise.
14692 (arm_cond_branch_reversed): Likewise.
14693 (arm_jump): Likewise.
14694 (push_multi): Likewise.
14695 * config/arm/constraints.md (Py): New constraint.
14696
f55dfa2f
NF
146972011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14698
14699 PR bootstrap/48471
14700 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
14701 Move these...
14702 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
14703 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
14704 #ifdef DBX_DEBUGGING_INFO.
14705
fca96842
BS
147062011-04-05 Bernd Schmidt <bernds@codesourcery.com>
14707
14708 PR bootstrap/48403
14709 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
14710 if old and new states differ.
14711
30b83e38
JM
147122011-04-05 Joseph Myers <joseph@codesourcery.com>
14713
14714 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
14715 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
14716 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14717 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
14718 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
14719 mcfv4e): Use Alias.
14720 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
14721 ColdFire options to -mcpu= options.
14722
277a9aa5
JL
147232011-04-05 Jeff Law <law@redhat.com>
14724
14725 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
14726 check if BB is a successor of LOOP->header and return
14727 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
14728
c1e2610e
SB
147292011-04-05 Steven Bosscher <steven@gcc.gnu.org>
14730
14731 * cprop.c (struct reg_use): Remove.
14732 (reg_use_table): Make an array of RTX.
14733 (find_used_regs, constprop_register, local_cprop_pass,
14734 bypass_block): Simplify users of reg_use_table.
14735 (cprop_insn): Likewise. Iterate if copy propagation succeeded
14736 on one of the uses found by find_used_regs.
14737
e532f586
NF
147382011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14739
14740 PR bootstrap/48469
14741 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
14742 declaration.
14743
3fb7c055
NF
147442011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14745
14746 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
14747 as an rtx.
14748 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
14749
b71b43d9
SB
147502011-04-05 Steven Bosscher <steven@gcc.gnu.org>
14751
14752 PR middle-end/48441
14753 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
14754
b405b274
NF
147552011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14756
14757 * combine.c: Include obstack.h.
14758 (struct insn_link): Define.
14759 (uid_log_links): Adjust type.
14760 (FOR_EACH_LOG_LINK): New macro.
14761 (insn_link_obstack): Declare.
14762 (alloc_insn_link): Define.
14763 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
14764 type of link variables.
14765 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
14766 (try_combine, record_promoted_values, distribute_notes): Likewise.
14767 (distribute_links): Likewise. Tweak prototype.
14768 (clear_log_links): Delete.
14769 (adjust_for_new_dest): Call alloc_insn_link.
14770 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
14771
6409abe3
NF
147722011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14773
14774 * gcse.c (modify_mem_list): Convert to an array of VECs.
14775 (canon_modify_mem_list, compute_transp): Tweak formatting.
14776 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
14777 (load_killed_in_block_p): Likewise.
14778 (record_last_mem_set_info): Likewise.
14779 (clear_modify_mem_tables): Likewise.
14780
170d8157
TV
147812011-04-05 Tom de Vries <tom@codesourcery.com>
14782
14783 PR middle-end/48461
14784 * function.c (emit_use_return_register_into_block): Only define if
14785 HAVE_return.
14786
c5911a55
EB
147872011-04-05 Eric Botcazou <ebotcazou@adacore.com>
14788
14789 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
14790
abd016e6
JM
147912011-04-05 Joseph Myers <joseph@codesourcery.com>
14792
14793 * config/rx/rx-opts.h: New.
14794 * config/rx/rx.c (rx_cpu_type): Remove.
14795 (rx_handle_option): Don't assert that global structures are in
14796 use. Access variables via opts pointer. Defer most handling of
14797 OPT_mint_register_. Use error_at.
14798 (rx_option_override): Handle deferred OPT_mint_register_ here.
14799 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
14800 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
14801 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
14802 (rx_cpu_types): New Enum and EnumValue entries.
14803 (mint-register=): Use Defer and use Var accordingly.
14804
1ed13f83
NF
148052011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14806
14807 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
14808 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
14809 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
14810 Move these...
14811 (debug_free_queue, debug_nesting, symbol_queue_index):
14812 ...and these...
14813 * dbxout.c: ...to here. Make static.
14814
6ce1edcf
NF
148152011-04-05 Nathan Froyd <froydnj@codesourcery.com>
14816
14817 * gcse.c (modify_pair): Define. Define a VEC of it.
14818 (canon_modify_mem_list): Convert to an array of VECs.
14819 (free_insn_expr_list_list): Delete.
14820 (clear_modify_mem_tables): Call VEC_free instead.
14821 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
14822 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
14823 (canon_list_insert, compute_transp): Likewise.
14824
c201ac94
TV
148252011-04-05 Tom de Vries <tom@codesourcery.com>
14826
14827 PR target/43920
14828 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
14829 for size.
14830
4c029f40
TV
148312011-04-05 Tom de Vries <tom@codesourcery.com>
14832
14833 PR target/43920
14834 * function.c (emit_use_return_register_into_block): New function.
14835 (thread_prologue_and_epilogue_insns): Use
14836 emit_use_return_register_into_block.
14837
2a562b0a
TV
148382011-04-05 Tom de Vries <tom@codesourcery.com>
14839
14840 PR target/43920
14841 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
14842 insn.
14843
0248bceb
TV
148442011-04-05 Tom de Vries <tom@codesourcery.com>
14845
14846 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
14847
ffa94123
YZ
148482011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
14849
798dd0ba
UB
14850 * config/arm/arm.md (define_constants for unspec): Replace with
14851 define_c_enum.
14852 (define_constants for unspecv): Replace with define_c_enum.
14853 * config/arm/neon.md (define_constants for unspec): Replace with
14854 define_c_enum.
ffa94123 14855
3b8f9b46
RH
148562011-04-04 Richard Henderson <rth@redhat.com>
14857
720cf80f 14858 PR bootstrap/48400
3b8f9b46
RH
14859 * dwarf2out.c (output_line_info): Always emit line info from
14860 at least one section.
14861 (dwarf2out_init): Create text_section_line_info here ...
14862 (set_cur_line_info_table): ... not here.
14863
720cf80f 148642011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
14865
14866 PR target/48380
14867 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 14868 not called.
e5b0e1ca 14869
720cf80f 14870 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 14871
196565d4
SB
148722011-04-04 Steven Bosscher <steven@gcc.gnu.org>
14873
b77f9eab
SB
14874 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
14875 (expr_equiv_p): Remove.
14876 (insert_set_in_table): Look at <dest, src> pair instead of expr.
14877 (hash_scan_set): Update call to insert_set_in_table.
14878 (dump_hash_table): Dump <dest, src> pair.
14879 (lookup_set): Simplify. Lookup <dest, src> pair.
14880 (compute_transp): Remove, fold heavily simplified code into...
14881 (compute_local_properties): ...here. Expect COMP and TRANSP
14882 unconditionally.
14883 (find_avail_set): Take set directly from struct expr.
14884 (find_bypass-set): Likewise.
14885 (bypass_block): Likewise.
14886 (cprop_insn): Likewise. Remove redundant INSN_P test.
14887
384d7a55
SB
14888 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
14889 checks on form of COND from find_implicit_sets to here.
14890 (find_implicit_sets): Cleanup control flow. Split critical edges
14891 if it exposes implicit sets. Allocate/resize implicit_sets as
14892 necessary.
14893 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
14894 changed something. Run df_analyze after find_implicit_sets if any
14895 edges were split. Do not allocate implicit_sets here.
14896
3084ce69
SB
14897 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
14898 (gcse_obstack): Renamed to cprop_obstack.
14899 (GNEW, GNEWVEC, GNEWVAR): Remove.
14900 (gmalloc): Remove.
14901 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
14902 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
14903 (gcse_alloc): Likewise, and rename to cprop_alloc.
14904 (alloc_gcse_men, free_gcse_mem): Remove.
14905 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
14906 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
14907 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
14908
196565d4
SB
14909 * cprop.c (oprs_not_set_p): Remove.
14910 (mark_set, mark_clobber): Remove.
14911 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
14912 (reg_not_set_p): New function.
14913 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
14914 (cprop_insn): Likewise.
14915 (cprop_jump): Use FOR_EACH_EDGE.
14916
9b69cf83
BS
149172011-04-04 Bernd Schmidt <bernds@codesourcery.com>
14918
14919 PR bootstrap/48403
14920 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
14921 (rank_for_schedule): Use scheduled_insns vector instead of
14922 last_scheduled_insn.
14923 (ok_for_early_queue_removal): Likewise.
14924 (queue_to_ready): Search forward in nonscheduled_insns_begin if
14925 we have a dbg_cnt.
14926 (choose_ready): Likewise.
14927 (commit_schedule): Use VEC_iterate.
14928 (schedule_block): Initialize nonscheduled_insns_begin. If we have
14929 a dbg_cnt, use it and ensure the first insn is in the ready list.
14930 (haifa_sched_init): Allocate scheduled_insns.
14931 (sched_extend_ready_list): Don't allocate it; reserve space.
14932 (haifa_sched_finish): Free it.
14933
24f48c2f
JM
149342011-04-04 Joseph Myers <joseph@codesourcery.com>
14935
14936 * optc-gen.awk: Always remove type from Variable entry before
14937 recording in var_seen.
14938
8effe856
EB
149392011-04-04 Eric Botcazou <ebotcazou@adacore.com>
14940
14941 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
14942 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
14943 call to tidy_fallthru_edges.
14944
413519ae
JM
149452011-04-04 Joseph Myers <joseph@codesourcery.com>
14946
14947 * doc/options.texi (ToLower): Document.
3729983c 14948 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
14949 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
14950 * opts.h (cl_option): Add cl_tolower field.
14951 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
14952 arguments with lowercase strings.
14953 * config/rx/rx.opt (mcpu=): Add ToLower.
14954 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
14955 argument.
14956
7d34a1b0
RS
149572011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
14958
14959 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
14960
c30e7434
RS
149612011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
14962
14963 * config/vax/vax.c: Include reload.h.
14964
112a861d
AS
149652011-04-04 Anatoly Sokolov <aesok@post.ru>
14966
14967 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
14968 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
14969 (sparc_preferred_reload_class): New function.
14970
e8c6bb74
JJ
149712011-04-04 Jakub Jelinek <jakub@redhat.com>
14972
2aeaa366 14973 PR debug/48401
e8c6bb74
JJ
14974 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
14975 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
14976
2c081caf
NF
149772011-04-03 Nathan Froyd <froydnj@codesourcery.com>
14978
14979 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
14980 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
14981
53802f27
AS
149822011-04-03 Anatoly Sokolov <aesok@post.ru>
14983
14984 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
14985 (ASM_OUTPUT_ALIGNED_BSS): Define.
14986
e89964e3
MM
149872011-04-03 Michael Matz <matz@suse.de>
14988
14989 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
14990 and next_slot members.
14991 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
14992 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
14993 (lto_streamer_cache_append): Declare.
14994 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
14995 unsigned index, remove offset parameter, ensure that we append
14996 or update existing entries.
14997 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
14998 parameter, update next_slot for append.
14999 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15000 parameter.
15001 (lto_streamer_cache_insert_at): Likewise.
15002 (lto_streamer_cache_append): New function.
15003 (lto_streamer_cache_lookup): Use unsigned index.
15004 (lto_streamer_cache_get): Likewise.
15005 (lto_record_common_node): Don't test tree_node_can_be_shared.
15006 (preload_common_node): Adjust call to lto_streamer_cache_insert.
15007 (lto_streamer_cache_delete): Don't free offsets member.
15008 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15009 (lto_output_string_with_length): Use lto_output_data_stream.
15010 (lto_output_tree_header): Remove ix parameter, don't write it.
15011 (lto_output_builtin_tree): Likewise.
15012 (lto_write_tree): Adjust callers to above, don't track and write
15013 offset, write unsigned index.
15014 (output_unreferenced_globals): Don't emit all global vars.
15015 (write_global_references): Use unsigned indices.
15016 (lto_output_decl_state_refs): Likewise.
15017 (write_symbol): Likewise.
15018 * lto-streamer-in.c (lto_input_chain): Move earlier.
15019 (input_function): Use unsigned index.
15020 (input_alias_pairs): Don't read and then ignore all global vars.
15021 (lto_materialize_tree): Remove ix_p parameter, don't read index,
15022 don't pass it back, use lto_streamer_cache_append.
15023 (lto_register_var_decl_in_symtab): Use unsigned index.
15024 (lto_register_function_decl_in_symtab): Likewise.
15025 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15026 index.
15027 (lto_get_builtin_tree): Don't read index, use
15028 lto_streamer_cache_append.
15029 (lto_read_tree): Adjust call to lto_materialize_tree.
15030
15031 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15032 don't use function calls in arguments to MIN.
15033
15034 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15035 twice.
15036
15037 * gimple.c (gimple_type_leader_entry): Mark deletable.
15038
b9a5b5b2
AM
150392011-04-03 Alan Modra <amodra@gmail.com>
15040
15041 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15042
ac6a641b
MM
150432011-04-03 Michael Matz <matz@suse.de>
15044
15045 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15046 an integer.
15047 * tree.h (tree_decl_non_common.vindex): Adjust comment.
15048
0038d4e0
MM
150492011-04-03 Michael Matz <matz@suse.de>
15050
e9c18386 15051 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
15052 * gimple-fold.c (canonicalize_constructor_val): Accept being called
15053 without function context.
15054 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15055 current_function_decl and cfun.
15056
91f2fae8
MM
150572011-04-03 Michael Matz <matz@suse.de>
15058
15059 * tree.c (decl_init_priority_insert): Don't create entry for
15060 default priority.
15061 (decl_fini_priority_insert): Ditto.
15062 (fields_compatible_p, find_compatible_field): Remove.
15063 * tree.h (fields_compatible_p, find_compatible_field): Remove.
15064 * gimple.c (gimple_compare_field_offset): Adjust block comment.
15065
da29e070
EB
150662011-04-03 Eric Botcazou <ebotcazou@adacore.com>
15067
15068 * combine.c (try_combine): Remove useless local variable.
15069
4979c28b 150702011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 15071 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
15072
15073 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15074 non-variable offsets and compare the remaining bases of the two
15075 accesses instead of looking for exact same data-ref.
15076
b4ddcaee
KT
150772011-04-02 Kai Tietz <ktietz@redhat.com>
15078
f90298e1
KT
15079 PR target/48416
15080 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15081
b4ddcaee
KT
15082 * i386.c (ix86_is_msabi_thiscall): New helper function.
15083 (ix86_is_type_thiscall): New helper function.
15084 (ix86_comp_type_attributes): Handle thiscall for method-functions
15085 special.
15086 (init_cumulative_args): Likewise.
15087 (find_drap_reg): Likewise.
15088 (ix86_static_chain): Likewise.
15089 (x86_this_parameter): Likewise.
15090 (x86_output_mi_thunk): Likewise.
15091
2a9d769a 150922011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
15093 Nicolas Setton <setton@adacore.com>
15094 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
15095
15096 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15097 (add_gnat_descriptive_type_attribute): New function.
15098 (gen_array_type_die): Call it.
15099 (gen_enumeration_type_die): Likewise.
15100 (gen_struct_or_union_type_die): Likewise.
15101 (modified_type_die): Likewise.
15102 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15103 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15104 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15105
15a03a11
JJ
151062011-04-01 Jakub Jelinek <jakub@redhat.com>
15107
15108 PR bootstrap/48148
15109 * dwarf2out.c (resolve_addr): Don't call force_decl_die
15110 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15111
15112 Revert:
15113 2011-03-17 Richard Guenther <rguenther@suse.de>
15114
15115 PR bootstrap/48148
15116 * lto-cgraph.c (input_overwrite_node): Clear the abstract
15117 origin for decls in other ltrans units.
15118 (input_varpool_node): Likewise.
15119
19228b93
JJ
151202011-04-01 Jakub Jelinek <jakub@redhat.com>
15121
15122 PR middle-end/48335
15123 * expr.c (expand_assignment): Handle all possibilities
15124 if TO_RTX is CONCAT.
e9c18386 15125 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
15126 (store_split_bit_field): If SUBREG_REG (op0) or
15127 op0 itself has smaller mode than word, return it
15128 for offset 0 and const0_rtx for out-of-bounds stores.
15129 If word is const0_rtx, skip it.
15130
88cb339e
N
151312011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
15132
15133 * config/h8300/h8300.c (print_operand_address): Rename to...
15134 (h8300_print_operand_address): ...this. Make static. Adjust comments.
15135 Call h8300_print_operand and h8300_print_operand_address instead of
15136 print_operand and print_operand_address. Declare.
15137 (print_operand): Renake to...
15138 (h8300_print_operand): ...this. Make static. Adjust comments.
15139 Call h8300_print_operand instead of print_operand. Declare.
15140 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15141 (h8300_register_move_cost): Likewise.
15142 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15143 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15144 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15145 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15146 * config/h8300/h8300-protos.h (print_operand): Delete.
15147 (print_operand_address): Delete.
15148
756d6ee9
RH
151492011-04-01 Richard Henderson <rth@redhat.com>
15150
15151 PR 48400
15152 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15153 in strict mode before dwarf4. Re-order tests to early out
15154 before switching sections.
15155
ceaaaeab
NF
151562011-04-01 Nathan Froyd <froydnj@codesourcery.com>
15157
15158 * config/h8300/constraints.md: New file.
15159 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
15160 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15161 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15162 * config/h8300/predicates.md (bit_operand): Likewise.
15163 (incdec_operand): Use satisfies_constraint_M and
15164 satisfies_constraint_O. Don't use C code block.
15165 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15166 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15167 (compute_mov_length): Use satisfies_constraint_G.
15168 (fix_bit_operand): Use satisfies_constraint_U.
15169 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15170 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15171 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15172 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15173 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15174 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15175 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15176 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15177 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15178 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15179 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15180 (EXTRA_MEMORY_CONSTRAINT): Delete.
15181
08ae38e0
AP
151822011-04-01 Andrew Pinski <pinskia@gmail.com>
15183 Michael Meissner <meissner@linux.vnet.ibm.com>
15184
15185 PR target/48262
15186 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15187 operands, as per the specifications.
15188
15189 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15190 (vec_extract_evenv4sf): Ditto.
15191 (vec_extract_evenv8hi): Ditto.
15192 (vec_extract_evenv16qi): Ditto.
15193 (vec_extract_oddv4si): Ditto.
15194
bdb0b0f6
MW
151952011-03-31 Mark Wielaard <mjw@redhat.com>
15196
15197 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15198 high_pc attribute if the CU has no associated code. Only output
15199 DW_AT_entry_pc for CU if not generating strict dwarf and
15200 dwarf_version < 4.
15201
722279e4
BS
152022011-04-01 Bernd Schmidt <bernds@codesourcery.com>
15203
15204 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15205 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15206 out of ...
15207 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15208 * final.c (final_start_function): Call the new function rather
15209 than using a NULL argument for dwarf2out_frame_debug.
15210
c5dd277d
BS
15211 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15212 that contains the prologue.
15213
ec4efea9
BS
15214 * haifa-sched.c (queue_insn): New arg REASON. All callers
15215 changed. Print it in debugging output.
15216
2a6a0d80
BS
15217 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15218
86014d07
BS
15219 * sched-ebb.c (begin_schedule_ready): Remove second argument.
15220 Split most of the code into...
15221 (begin_move_insn): ... here. New function.
15222 (ebb_sched_info): Add a pointer to it.
15223 * haifa-sched.c (scheduled_insns): New static variable.
15224 (sched_extend_ready_list): Allocate it.
15225 (schedule_block): Use it to record the order of scheduled insns.
15226 Perform RTL changes to move insns only after all scheduling
15227 decisions have been made.
15228 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15229 begin_move_insn field.
15230 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15231 * sched-int.h (struct haifa_sched_info): Remove second argument
15232 from begin_schedule_ready hook. Add new member begin_move_insn.
15233 * sched-rgn.c (begin_schedule_ready): Remove second argument.
15234 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15235
9d701248
BS
15236 * haifa-sched.c (prune_ready_list): New function, broken out of
15237 schedule_block.
15238 (schedule_block): Use it.
15239
1ca1dad5
UW
152402011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15241
15242 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15243
49568e45
KT
152442011-04-01 Kai Tietz <ktietz@redhat.com>
15245
15246 * config.gcc (*-*-mingw*): Allow as option the
15247 posix threading model.
07c0852e 15248 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
15249 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15250 definition.
15251 (CPP_SPEC): Add pthread/no-pthread handling.
15252 (LIB_SPEC): Likewise.
15253 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15254 (LIB_SPEC): Likewise.
15255 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15256 flag to pass -pthread option for shared libgcc build.
15257 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15258 for shared libgcc build.
15259 * config/i386/t-mingw-pthread: New file.
15260 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15261 New define to enable use of library pthread by default.
15262 * config/i386/mingw.opt (pthread): New driver option.
15263 (no-pthread): New driver option.
e9c18386 15264 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
15265 * config/i386/mingw-w64.opt: Likewise.
15266
748f7574 152672011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
15268
15269 * c-decl.c (grokdeclarator): Fix formatting.
15270
f04713ee
RS
152712011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15272
15273 * expr.c (emit_block_move_via_movmem): Use n_generator_args
15274 instead of n_operands.
15275 (set_storage_via_setmem): Likewise.
15276 * optabs.c (maybe_gen_insn): Likewise.
15277 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15278 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15279 (mips_expand_builtin_direct): Likewise.
15280 * config/spu/spu.c (expand_builtin_args): Likewise.
15281
b29387ee
RS
152822011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15283
15284 * recog.h (insn_data_d): Add n_generator_args.
15285 * genoutput.c (data): Likewise.
15286 (output_insn_data): Print it.
15287 (max_opno, num_dups): Delete.
15288 (scan_operands): Just fill in "d->operand[...]".
15289 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15290
e792559a
RS
152912011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15292
15293 * gensupport.h (pattern_stats): New structure.
15294 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15295 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15296 (max_operand_1, max_operand_vec): Delete.
15297 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15298
e8110d6f
NF
152992011-03-31 Nathan Froyd <froydnj@codesourcery.com>
15300
15301 * emit-rtl.c (emit_pattern_after_setloc): New function.
15302 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15303 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15304 (emit_pattern_after): New function.
15305 (emit_insn_after, emit_jump_insn_after): Call it.
15306 (emit_call_insn_after, emit_debug_insn_after): Likewise.
15307 (emit_pattern_before_setloc): New function.
15308 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15309 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15310 Likewise.
15311 (emit_pattern_before): New function.
15312 (emit_insn_before, emit_jump_insn_before): Call it.
15313 (emit_call_insn_before, emit_debug_insn_before): Likewise.
15314
576f85f1
RH
153152011-03-31 Richard Henderson <rth@redhat.com>
15316
15317 * dwarf2out.c (dw_separate_line_info_ref): Remove.
15318 (dw_separate_line_info_entry): Remove.
15319 (enum dw_line_info_opcode): New.
15320 (dw_line_info_entry): Use it.
15321 (dw_line_info_table, dw_line_info_table_p): New.
15322 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15323 (line_info_table, line_info_label_num): Remove.
15324 (line_info_table_in_use): Remove.
15325 (separate_line_info_table): Remove.
15326 (separate_line_info_table_allocated): Remove.
15327 (separate_line_info_table_in_use): Remove.
15328 (LINE_INFO_TABLE_INCREMENT): Remove.
15329 (line_info_label_num): New.
15330 (cur_line_info_table): New.
15331 (text_section_line_info, cold_text_section_line_info): New.
15332 (separate_line_info): New.
15333 (SEPARATE_LINE_CODE_LABEL): Remove.
15334 (print_dwarf_line_table): Remove.
15335 (debug_dwarf): Don't dump it.
15336 (output_one_line_info_table): New.
15337 (output_line_info): Use it.
15338 (new_line_info_table): New.
15339 (set_cur_line_info_table): New.
15340 (dwarf2out_switch_text_section): Use it.
15341 (dwarf2out_begin_function): Likewise.
15342 (push_dw_line_info_entry): New.
15343 (dwarf2out_source_line): Rewrite for new line info tables.
15344 (dwarf2out_init): Remove dead initailizations.
15345
300d83d9
JM
153462011-03-31 Joseph Myers <joseph@codesourcery.com>
15347
15348 * opts.h (cl_option): Add comments to fields. Add bit-fields for
15349 various flags.
15350 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15351 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15352 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15353 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15354 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15355 * opt-functions.awk (flag_init, switch_bit_fields): New.
15356 (switch_flags): Don't handle flags moved to bit-fields. Don't
15357 generate CL_MISSING_OK or CL_SAVE.
15358 * optc-gen.awk: Update to generate bit-field output as well as
15359 flags field.
15360 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15361 bit-field instead of CL_REJECT_DRIVER flag.
15362 * opts-common.c (generate_canonical_option,
15363 decode_cmdline_option): Use bit-fields instead of CL_* flags.
15364 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15365 instead of CL_REJECT_NEGATIVE flag.
15366 * toplev.c (print_switch_values): Use cl_report bit-field instead
15367 of CL_REPORT flag.
15368
d4d73ce2
EB
153692011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15370
15371 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
15372 a zero minimum index only if it is redundant.
15373
b8faca75
VM
153742011-03-31 Vladimir Makarov <vmakarov@redhat.com>
15375
15376 PR rtl-optimization/48381
15377 * ira-color.c (assign_hard_reg): Use hard reg set intersection
15378 instead of ira_class_hard_reg_index for calculating conflicting
15379 hard registers.
15380
7d11cebe
SB
153812011-03-31 Steven Bosscher <steven@gcc.gnu.org>
15382
15383 * cprop.c: Clean up hash table building.
15384 (reg_avail_info): Remove.
15385 (oprs_available_p): Remove.
15386 (record_last_reg_set_info): Remove.
15387 (record_last_set_info): Remove.
15388 (reg_available_p): New function.
15389 (gcse_constant_p): Do not treat unfolded conditions as constants.
15390 (make_set_regs_unavailable): New function.
15391 (hash_scan_set): Simplify with new reg_available_p.
15392 (compute_hash_table_work): Traverse insns stream only once.
15393 Do not compute reg_avail_info. Traverse insns in reverse order.
15394 Record implicit sets after recording explicit sets from the block.
15395
98faf84f
MM
153962011-03-31 Michael Matz <matz@suse.de>
15397
e9c18386 15398 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 15399
f52d97da
AS
154002011-03-31 Anatoly Sokolov <aesok@post.ru>
15401
15402 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
15403 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
15404 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15405 (h8300_mode_dependent_address_p): New function.
15406 (h8300_get_index): Make static.
15407
e16b6fd0
JL
154082011-03-31 Jeff Law <law@redhat.com>
15409
10c51983
JL
15410 * reload1.c (elimination_effects): Fix typo in recent change.
15411
e9c18386 15412 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
15413 typo potentially leading to null pointer dereference.
15414
15415 * caller-save.c (new_saved_hard_reg): Eliminate return value.
15416 (setup_save_areas): Corresponding changes to avoid useless
15417 assignments.
15418
15419 * jump.c (reversed_comparison_code_parts): Avoid successive return
15420 statements when REVERSE_CONDITION is defined.
15421
15422 * expr.c (expand_assignment): Avoid useless assignments.
15423 (expand_expr_real_1): Likewise.
15424 (expand_expr_real_2): Avoid useless statements.
15425
15426 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15427
15428 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15429
15430 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15431 statements.
15432
15433 * stmt.c (expand_expr_stmt): Avoid useless assignment.
15434
eb1eb914
JM
154352011-03-31 Joseph Myers <joseph@codesourcery.com>
15436
15437 PR target/47109
15438 * doc/tm.texi.in (TARGET_VERSION): Remove.
15439 * doc/tm.texi: Regenerate.
15440 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15441 * collect2.c (main): Don't use TARGET_VERSION.
15442 * mips-tdump.c (main): Don't use TARGET_VERSION.
15443 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 15444 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
15445 * config/rs6000/vxworksae.h: Remove.
15446 * config/alpha/alpha.h (TARGET_VERSION): Remove.
15447 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15448 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15449 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15450 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15451 * config/arm/arm.h (TARGET_VERSION): Remove.
15452 * config/arm/coff.h (TARGET_VERSION): Remove.
15453 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15454 * config/arm/elf.h (TARGET_VERSION): Remove.
15455 * config/arm/freebsd.h (TARGET_VERSION): Remove.
15456 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15457 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15458 * config/arm/pe.h (TARGET_VERSION): Remove.
15459 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15460 * config/arm/semi.h (TARGET_VERSION): Remove.
15461 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15462 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15463 * config/arm/vxworks.h (TARGET_VERSION): Remove.
15464 * config/avr/avr.h (TARGET_VERSION): Remove.
15465 * config/bfin/bfin.h (TARGET_VERSION): Remove.
15466 * config/fr30/fr30.h (TARGET_VERSION): Remove.
15467 * config/frv/frv.h (TARGET_VERSION): Remove.
15468 * config/h8300/h8300.h (TARGET_VERSION): Remove.
15469 * config/i386/cygwin.h (TARGET_VERSION): Remove.
15470 * config/i386/darwin.h (TARGET_VERSION): Remove.
15471 * config/i386/darwin64.h (TARGET_VERSION): Remove.
15472 * config/i386/djgpp.h (TARGET_VERSION): Remove.
15473 * config/i386/freebsd.h (TARGET_VERSION): Remove.
15474 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15475 * config/i386/gnu.h (TARGET_VERSION): Remove.
15476 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15477 * config/i386/i386elf.h (TARGET_VERSION): Remove.
15478 * config/i386/linux.h (TARGET_VERSION): Remove.
15479 * config/i386/linux64.h (TARGET_VERSION): Remove.
15480 * config/i386/lynx.h (TARGET_VERSION): Remove.
15481 * config/i386/mingw32.h (TARGET_VERSION): Remove.
15482 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15483 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15484 * config/i386/netware.h (TARGET_VERSION): Remove.
15485 * config/i386/nto.h (TARGET_VERSION): Remove.
15486 * config/i386/openbsd.h (TARGET_VERSION): Remove.
15487 * config/i386/vxworks.h (TARGET_VERSION): Remove.
15488 * config/ia64/elf.h (TARGET_VERSION): Remove.
15489 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15490 * config/ia64/hpux.h (TARGET_VERSION): Remove.
15491 * config/ia64/linux.h (TARGET_VERSION): Remove.
15492 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15493 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15494 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15495 * config/lm32/lm32.h (TARGET_VERSION): Remove.
15496 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15497 * config/m32c/m32c.h (TARGET_VERSION): Remove.
15498 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15499 * config/m32r/m32r.h (TARGET_VERSION): Remove.
15500 * config/m68k/linux.h (TARGET_VERSION): Remove.
15501 * config/m68k/m68k.h (TARGET_VERSION): Remove.
15502 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15503 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15504 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15505 * config/mep/mep.h (TARGET_VERSION): Remove.
15506 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15507 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15508 * config/mips/iris6.h (MACHINE_TYPE): Remove.
15509 * config/mips/linux.h (TARGET_VERSION): Remove.
15510 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15511 * config/mips/vxworks.h (TARGET_VERSION): Remove.
15512 * config/mmix/mmix.h (TARGET_VERSION): Remove.
15513 * config/mn10300/linux.h (TARGET_VERSION): Remove.
15514 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15515 * config/pa/pa.h (TARGET_VERSION): Remove.
15516 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15517 * config/picochip/picochip.h (TARGET_VERSION): Remove.
15518 * config/rs6000/aix.h (TARGET_VERSION): Remove.
15519 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15520 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15521 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15522 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15523 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15524 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15525 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15526 * config/rs6000/linux.h (TARGET_VERSION): Remove.
15527 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15528 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15529 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15530 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15531 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15532 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15533 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15534 * config/s390/linux.h (TARGET_VERSION): Remove.
15535 * config/s390/s390.h (TARGET_VERSION): Remove.
15536 * config/s390/tpf.h (TARGET_VERSION): Remove.
15537 * config/score/score.h (TARGET_VERSION): Remove.
15538 * config/sh/linux.h (TARGET_VERSION): Remove.
15539 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15540 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15541 * config/sh/sh.h (TARGET_VERSION): Remove.
15542 * config/sh/sh64.h (TARGET_VERSION): Remove.
15543 * config/sh/superh.h (TARGET_VERSION): Remove.
15544 * config/sh/vxworks.h (TARGET_VERSION): Remove.
15545 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15546 * config/sparc/linux.h (TARGET_VERSION): Remove.
15547 * config/sparc/linux64.h (TARGET_VERSION): Remove.
15548 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15549 TARGET_NAME32, TARGET_NAME): Remove.
15550 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15551 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15552 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15553 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15554 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15555 * config/spu/spu.h (TARGET_VERSION): Remove.
15556 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15557 * config/v850/v850.h (TARGET_VERSION): Remove.
15558 * config/vax/linux.h (TARGET_VERSION): Remove.
15559 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15560 * config/xtensa/elf.h (TARGET_VERSION): Remove.
15561 * config/xtensa/linux.h (TARGET_VERSION): Remove.
15562
ace31bca
EB
155632011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15564
15565 PR target/48142
15566 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15567 frame-related from frame-unrelated adjustments to the stack pointer.
15568
76f9db36
JJ
155692011-03-31 Jakub Jelinek <jakub@redhat.com>
15570
15571 * common.opt (fdebug-types-section): Move earlier.
15572 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15573
b7826465
AT
155742011-03-31 Andreas Tobler <andreast@fgznet.ch>
15575
15576 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15577 var.
15578
1290e54c
NF
155792011-03-30 Nathan Froyd <froydnj@codesourcery.com>
15580
15581 * tree.h (CASE_CHAIN): Define.
15582 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15583 (gimple_redirect_edge_and_branch): Likewise.
15584
bddc98e1
VM
155852011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15586
15587 PR middle-end/48367
15588 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15589 calculation.
15590
c865e437
JL
155912011-03-30 Jeff Law <law@redhat.com>
15592
b3750213 15593 * PR bootstrap/48371
c865e437
JL
15594 * reload1.c (reload): Fix botch in last change.
15595
15596 * reload.h (struct reload): Fix typo introduced in last change.
15597
2cdf9574
JM
155982011-03-30 Joseph Myers <joseph@codesourcery.com>
15599
15600 * config/arm/arm.opt (mhard-float, msoft-float): Mark
15601 Undocumented. Remove help text.
15602 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15603 -mhard-float.
15604
666a21a2
JM
156052011-03-30 Joseph Myers <joseph@codesourcery.com>
15606
15607 * doc/options.texi (NegativeAlias): Document.
15608 (Alias): Mention NegativeAlias.
15609 * opt-functions.awk: Handle NegativeAlias.
e9c18386 15610 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
15611 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15612 * opts.h (CL_NEGATIVE_ALIAS): Define.
15613 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15614 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15615 OPT_mspe_.
15616 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15617 Alias entries.
15618 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15619 mno-spe and mno-isel instead of mspe=no and -misel=no.
15620
0fa4e351
MW
156212011-03-29 Mark Wielaard <mjw@redhat.com>
15622
15623 * common.opt (fdebug-types-section): New flag.
15624 * doc/invoke.texi: Document new -fno-debug-types-section flag.
15625 * dwarf2out.c (use_debug_types): New define.
15626 (struct die_struct): Mark die_id with GTY desc use_debug_types.
15627 (print_die): Guard output of type unit signatures using
15628 use_debug_types.
15629 (build_abbrev_table): Replace assert of dwarf_version >= 4
15630 with assert on use_debug_types.
15631 (size_of_die): Likewise.
15632 (unmark_dies): Likewise.
15633 (value_format): Decide AT_ref_external form on use_debug_types.
15634 (output_die): Replace dwarf_version version check guard with
15635 use_debug_types where appropriate.
15636 (modified_type_die): Likewise.
15637 (gen_reference_type_die): Likewise.
15638 (dwarf2out_start_source_file): Likewise.
15639 (dwarf2out_end_source_file): Likewise.
15640 (prune_unused_types_walk_attribs): Likewise.
15641 (dwarf2out_finish): Likewise.
15642
4648deb4
VM
156432011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15644
15645 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15646
4f431835
RS
156472011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15648
15649 PR rtl-optimization/48332
15650 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15651 mode of input operand N and modeN to its actual mode.
15652
f2034d06
JL
156532011-03-30 Jeff Law <law@redhat.com>
15654
15655 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15656 define accessor macro.
15657 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15658 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15659 (reg_equiv_init): Likewise.
15660 (reg_equivs_size): New variable.
15661 (reg_equiv_init_size): Remove.
15662 (allocate_initial_values): Move prototype to here from....
15663 * integrate.h (allocate_initial_values): Remove prototype.
15664 * integrate.c: Include reload.h.
15665 (allocate_initial_values): Corresponding changes.
15666 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15667 (fix_reg_equiv_init, no_equiv): Corresponding changes.
15668 (update_equiv_regs): Corresponding changes.
15669 (ira): Corresponding changes.
15670 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15671 (push_secondary_reload): Corresponding changes.
15672 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15673 (make_memloc, find_reloads_address): Corresponding changes.
15674 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
15675 (find_reloads_address_1): Corresponding changes.
15676 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
15677 (refers_to_regno_for_reload_p): Corresponding changes.
15678 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
15679 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
15680 * reload1.c: Include ggc.h.
15681 (grow_reg_equivs): New function.
15682 (replace_pseudos_in, reload): Corresponding changes.
15683 (calculate_needs_all_insns, alter_regs): Corresponding changes.
15684 (eliminate_regs_1, elimination_effects): Corresponding changes.
15685 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
15686 (delete_output_reload): Likewise.
15687 * caller-save.c (mark_referenced_regs): Corresponding changes.
15688 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
15689 * frv/predicates.md (frv_load_operand): Corresponding changes.
15690 * microblaze/microblaze.c (double_memory_operand): Corresponding
15691 changes.
15692 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
15693 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 15694 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
15695 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
15696 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
15697 changes.
15698 * pa/pa.c (emit_move_sequence): Corresponding changes.
15699 * vax/vax.c (nonindexed_address_p): Corresponding changes.
15700
159b81b0
RS
157012011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15702
15703 PR target/47551
15704 * config/arm/arm.c (coproc_secondary_reload_class): Handle
15705 structure modes. Don't check neon_vector_mem_operand for
15706 vector or structure modes.
15707
a6217191
RS
157082011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15709 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15710
15711 PR target/43590
15712 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
15713 operand 1 and reshuffle the operands to match.
15714 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
15715
bd837408
CS
157162011-03-30 Christian Schüler <cschueler@gmx.de>
15717
6955d771 15718 PR driver/48208
bd837408 15719 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 15720
6955d771 15721 PR driver/48260
bd837408
CS
15722 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
15723 handler function.
15724 * config/darwin.opt: Added '-arch' option.
15725
e9c0470a
NC
157262011-03-30 Nick Clifton <nickc@redhat.com>
15727
15728 * config/rx/rx.md: Add peepholes and patterns to combine
15729 extending loads and simple arithmetic instructions.
15730 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
15731 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
15732 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 15733 modes to use pre-decrement and post-increment addressing.
e9c18386 15734 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 15735 addresses.
e9c18386
UB
15736 (rx_print_operand): Add support for %Q. Fix handling of %Q.
15737 (rx_memory_move_cost): Adjust cost of stores.
15738 (rx_adjust_insn_length): New function.
e9c0470a 15739
8a87e7ab
JJ
157402011-03-30 Jakub Jelinek <jakub@redhat.com>
15741
15742 PR c/48305
15743 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
15744 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
15745 matching arg00/arg01 types.
15746
12486e03
EB
157472011-03-30 Eric Botcazou <ebotcazou@adacore.com>
15748
15749 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
15750 last_location to UNKNOWN_LOCATION.
15751
0b99eef6
L
157522011-03-30 H.J. Lu <hongjiu.lu@intel.com>
15753
15754 PR target/48349
15755 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
15756 FLOAT_SSE_REGS.
15757
023592aa
JM
157582011-03-30 Joseph Myers <joseph@codesourcery.com>
15759 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15760
15761 PR bootstrap/48337
15762 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
15763 Init(PROCESSOR_V7).
15764 (sparc_cpu): Likewise.
15765 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
15766 PROCESSOR_V7.
15767
ad3b266b
VM
157682011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15769
15770 PR target/48336
15771 PR middle-end/48342
15772 PR rtl-optimization/48345
15773 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
15774 hard regs for given mode from profitable regs when doing secondary
15775 allocation.
15776
633c9126
JL
157772011-03-29 Jeff Law <law@redhat.com>
15778
15779 PR bootstrap/48327
15780 * tree-ssa-threadupdate.c (struct redirection_data): Remove
15781 do_not_duplicate field.
15782 (lookup_redirection_data): Corresponding changes.
15783 (create_duplicates): Always create a template block.
15784 (redirect_edges): Remove code which reused the original block
15785 when it was going to become unreachable code.
15786 (thread_block): Don't set do_not_duplicate field.
15787
eb50f63a
JM
157882011-03-29 Joseph Myers <joseph@codesourcery.com>
15789
15790 * lto-opts.c (register_user_option_p, lto_register_user_option):
15791 Make type argument unsigned.
15792 * lto-streamer.h (lto_register_user_option): Make type argument
15793 unsigned.
15794 * opth-gen.awk: Make CL_* macros unsigned.
15795 * opts-common.c (find_opt): Make lang_mask argument unsigned.
15796 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
15797 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
15798 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
15799 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
15800 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
15801 (find_opt): Make lang_mask argument unsigned.
15802
76763a6d
VM
158032011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15804
15805 PR rtl-optimization/48331
15806 PR rtl-optimization/48334
15807 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
15808 for any used algorithm.
15809
5c82436e
VM
158102011-03-29 Vladimir Makarov <vmakarov@redhat.com>
15811
15812 * ira-conflicts.c (build_object_conflicts): Add unused attribute
15813 to parent_max.
15814
7a81008b
UB
158152011-03-29 Uros Bizjak <ubizjak@gmail.com>
15816
15817 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
15818 (alpha_option_override): Don't set alpha_sr_alias_set.
15819 (emit_frame_store_1): Use gen_frame_mem rather than calling
15820 set_mem_alias_set.
15821 (alpha_expand_epilogue): Ditto.
15822
86c8d1f6
IR
158232011-03-29 Ira Rosen <ira.rosen@linaro.org>
15824
15825 PR tree-optimization/48290
15826 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
15827 vectorization, check that relevant phis in the basic block after
15828 the inner loop are really inner loop's exit phis.
15829
0d12220f
RS
158302011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
15831
e8cf17e7 15832 PR debug/48190
0d12220f
RS
15833 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
15834 (cached_dw_loc_list_def): New structure.
15835 (cached_dw_loc_list): New typedef.
15836 (cached_dw_loc_list_table): New variable.
15837 (cached_dw_loc_list_table_hash): New function.
15838 (cached_dw_loc_list_table_eq): Likewise.
15839 (add_location_or_const_value_attribute): Take a bool cache_p.
15840 Cache the list when the parameter is true.
15841 (gen_formal_parameter_die): Update caller.
15842 (gen_variable_die): Likewise.
15843 (dwarf2out_finish): Likewise.
15844 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
15845 while generating debug info for the decl.
15846 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
15847 (dwarf2out_init): Initialize cached_dw_loc_list_table.
15848 (resolve_addr): Cache the result of resolving a chain of
15849 location lists.
15850
1756cb66
VM
158512011-03-28 Vladimir Makarov <vmakarov@redhat.com>
15852
15853 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
15854 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 15855
1756cb66
VM
15856 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
15857 after regstat_init_n_sets_and_refs.
15858
15859 * ira.c: Add more comments at the top.
15860 (setup_stack_reg_pressure_class, setup_pressure_classes):
15861 Add comments how we compute the register pressure classes.
15862 (setup_allocno_and_important_classes): Add more comments.
15863 (setup_class_translate_array, reorder_important_classes)
15864 (setup_reg_class_relations): Add comments.
15865
15866 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
15867 start of the file.
15868
15869 * ira-color.c: Add 2011 to the Copyright line.
15870 (assign_hard_reg): Add more comments.
15871 (improve_allocation): Ditto.
15872
15873 * ira-costs.c: Add 2011 to the Copyright line.
15874 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
15875 comments.
15876 (setup_regno_cost_classes_by_mode): Ditto.
15877
15878 Initial patches from ira-improv branch:
15879
15880 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
15881
f60c2554 15882 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
15883 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
15884 (ira_create_allocno): Remove initialization of
15885 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
15886 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
15887 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15888 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
15889 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
15890 Initialize ALLOCNO_ADD_DATA.
15891 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
15892 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
15893 ALLOCNO_REG.
15894 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
15895 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
15896
15897 * ira.c (ira_reallocate): Remove.
15898 (setup_pressure_classes): Call
15899 ira_init_register_move_cost_if_necessary. Use
15900 ira_register_move_cost instead of ira_get_register_move_cost.
15901 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
15902 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
15903
15904 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
15905 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
15906 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
15907 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
15908 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
15909 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
15910 Fix formatting.
7a81008b 15911 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
15912 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
15913 (struct allocno_color_data): New.
15914 (allocno_color_data_t): New typedef.
15915 (allocno_color_data): New definition.
15916 (ALLOCNO_COLOR_DATA): New macro.
15917 (struct object_color_data): New.
15918 (object_color_data_t): New typedef.
15919 (object_color_data): New definition.
15920 (OBJECT_COLOR_DATA): New macro.
15921 (update_copy_costs, calculate_allocno_spill_cost): Call
15922 ira_init_register_move_cost_if_necessary. Use
15923 ira_register_move_cost instead of ira_get_register_move_cost.
15924 (move_spill_restore, update_curr_costs): Ditto.
15925 (allocno_spill_priority): Make it inline.
7a81008b 15926 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
15927 (struct coalesce_data, coalesce_data_t): New.
15928 (allocno_coalesce_data): New definition.
15929 (ALLOCNO_COALESCE_DATA): New macro.
15930 (merge_allocnos, coalesced_allocno_conflict_p): Use
15931 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
15932 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
15933 (coalesce_allocnos): Ditto.
15934 (setup_coalesced_allocno_costs_and_nums): Ditto.
15935 (collect_spilled_coalesced_allocnos): Ditto.
15936 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
15937 (setup_slot_coalesced_allocno_live_ranges): Ditto.
15938 (coalesce_spill_slots): Ditto.
15939 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
15940 free allocno_coalesce_data.
15941
15942 * ira-conflicts.c: Fix formatting.
15943 (process_regs_for_copy): Call
15944 ira_init_register_move_cost_if_necessary. Use
15945 ira_register_move_cost instead of ira_get_register_move_cost.
15946 (build_object_conflicts): Optimize.
15947
15948 * ira-costs.c (record_reg_classes): Optimize. Call
15949 ira_init_register_move_cost_if_necessary. Use
15950 ira_register_move_cost, ira_may_move_in_cost, and
15951 ira_may_move_out_cost instead of ira_get_register_move_cost and
15952 ira_get_may_move_cost.
15953 (record_address_regs): Ditto.
15954 (scan_one_insn): Optimize.
15955 (find_costs_and_classes): Optimize.
15956 (process_bb_node_for_hard_reg_moves): Call
15957 ira_init_register_move_cost_if_necessary. Use
15958 ira_register_move_cost instead of ira_get_register_move_cost.
15959
15960 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
15961 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
15962 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
15963 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
15964 definitions.
15965 (ira_initiate_emit_data, ira_finish_emit_data)
15966 (create_new_allocno): New functions.
7a81008b 15967 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
15968 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
15969 Use ira_register_move_cost instead of ira_get_register_move_cost.
15970
15971 * ira-int.h: Fix some comments.
7a81008b
UB
15972 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
15973 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
15974 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
15975 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
15976 add_data.
15977 (struct ira_allocno): Make mode and aclass a bitfield. Move other
15978 bitfield after mode. Make hard_regno a short int. Make
15979 hard_regno short. Remove first_coalesced_allocno and
15980 next_coalesced_allocno. Move mem_optimized_dest_p,
15981 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
15982 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
15983 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
15984 temp, colorable_p. Add new member add_data.
15985 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
15986 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
15987 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
15988 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
15989 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
15990 (ALLOCNO_ADD_DATA): New macro.
15991 (ira_emit_data_t): New typedef.
15992 (struct ira_emit_data): New. Move mem_optimized_dest_p,
15993 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
15994 from struct ira_allocno.
15995 (ALLOCNO_EMIT_DATA): New macro.
15996 (ira_allocno_emit_data, allocno_emit_reg): New.
15997 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 15998 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
15999 (OBJECT_ADD_DATA): New macro.
16000 (ira_reallocate): Remove.
16001 (ira_initiate_emit_data, ira_finish_emit_data): New.
16002 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16003 (ira_init_register_move_cost_if_necessary): New.
16004 (ira_object_conflict_iter_next): Merge into
16005 ira_object_conflict_iter_cond.
7a81008b 16006 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 16007
f60c2554 16008 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
16009 ira_init_register_move_cost_if_necessary. Use
16010 ira_register_move_cost instead of ira_get_register_move_cost.
16011
16012 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16013
16014 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16015
16016 * ira-costs.c: Fix formatting.
16017 (cost_classes, cost_classes_num): Remove.
16018 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16019 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16020 (cost_classes_del, cost_classes_htab): New.
16021 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16022 (initiate_regno_cost_classes, setup_cost_classes): New.
16023 (setup_regno_cost_classes_by_aclass): New.
7a81008b 16024 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
16025 (record_reg_classes): Use regno_cost_classes instead of
16026 cost_classes. Move checking opposite operand up.
16027 (record_address_regs): Use regno_cost_classes
16028 instead of cost_classes.
16029 (scan_one_insn): Ditto. Use always general register.
16030 (print_allocno_costs): Use regno_cost_classes instead of
16031 cost_classes.
16032 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
16033 (find_costs_and_classes): Set up cost classes for each registers.
16034 Use also their mode for this. Use regno_cost_classes instead of
16035 cost_classes.
16036 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16037 cost_classes.
16038 (free_ira_costs, ira_init_costs): Don't use cost_classes.
16039 (ira_costs, ira_set_pseudo_classes): Call
16040 initiate_regno_cost_classes and finish_regno_cost_classes.
16041
16042 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
16043
16044 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16045
16046 * target.def (ira_cover_classes): Remove.
16047
7a81008b 16048 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
16049
16050 * doc/tm.texi.in: Ditto.
16051
16052 * ira-conflicts.c: Remove mentioning cover classes from the file.
16053 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 16054 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
16055
16056 * targhooks.c (default_ira_cover_classes): Remove.
16057
16058 * targhooks.h (default_ira_cover_classes): Ditto.
16059
16060 * haifa-sched.c: Remove mentioning cover classes from the file.
16061 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16062 ira_pressure_classes and ira_pressure_classes_num instead of
16063 ira_reg_class_cover_size and ira_reg_class_cover. Use
16064 sched_regno_pressure_class instead of sched_regno_cover_class.
16065 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16066 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16067
16068 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
16069 classes from the file.
16070 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16071 (struct object_hard_regs, struct object_hard_regs_node): New.
16072 (struct ira_object): New members profitable_hard_regs,
16073 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16074 (struct ira_allocno): Rename cover_class to aclass. Rename
16075 cover_class_cost and updated_cover_class_cost to class_cost and
16076 updated_class_cost. Remove splay_removed_p and
16077 left_conflict_size. Add new members colorable_p.
16078 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16079 (ALLOCNO_COLORABLE_P): New macro.
16080 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16081 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16082 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16083 (OBJECT_...): Rename parameter C to O.
16084 (OBJECT_PROFITABLE_HARD_REGS): New macro.
16085 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16086 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16087 (struct target_ira_int): New members x_ira_max_memory_move_cost,
16088 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16089 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16090 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16091 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
16092 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
16093 x_ira_reg_class_subunion.
16094 (ira_max_memory_move_cost, ira_max_register_move_cost)
16095 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16096 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16097 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 16098 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
16099 (ira_reg_class_union): Rename to ira_reg_class_subunion.
16100 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16101 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16102 (ira_tune_allocno_costs_and_cover_classes): Rename to
16103 ira_tune_allocno_costs.
16104 (ira_debug_hard_regs_forest): New.
16105 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16106 (ira_object_conflict_iter_next): Fix comments.
7a81008b 16107 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
16108 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16109 cover_class to aclass.
16110 (ira_allocate_and_accumulate_costs): Ditto.
16111 (ira_allocate_and_set_or_copy_costs): Ditto.
16112
16113 * opts.c (decode_options): Remove ira_cover_class check.
16114
16115 * ira-color.c: Remove mentioning cover classes from the file. Use
16116 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16117 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16118 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16119 (splay-tree.h): Remove include.
16120 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16121 before copy_freq_compare_func.
16122 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16123 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16124 New definitions.
16125 (hard_regs_roots, hard_regs_node_vec): Ditto.
16126 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16127 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16128 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16129 (create_new_object_hard_regs_node): Ditto.
16130 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 16131 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
16132 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16133 Ditto.
16134 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16135 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16136 (remove_unused_object_hard_regs_nodes): Ditto.
16137 (enumerate_object_hard_regs_nodes): Ditto.
16138 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16139 (object_hard_regs_subnode_t): Ditto.
16140 (struct object_hard_regs_subnode): Ditto.
16141 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16142 (setup_object_hard_regs_subnode_index): Ditto.
16143 (get_object_hard_regs_subnodes_num): Ditto.
16144 (form_object_hard_regs_nodes_forest): Ditto.
16145 (finish_object_hard_regs_nodes_tree): Ditto.
16146 (finish_object_hard_regs_nodes_forest): Ditto.
16147 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 16148 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
16149 (pseudos_have_intersected_live_ranges_p): Rename to
16150 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16151 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16152 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16153 (update_copy_costs): Remove assert. Skip cost update if the hard
16154 reg does not belong the class.
16155 (assign_hard_reg): Process only profitable hard regs.
16156 (uncolorable_allocnos_num): Make it scalar.
16157 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16158 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16159 and ira_reg_class_max_nregs.
16160 (bucket_allocno_compare_func): Check frequency first.
16161 (sort_bucket): Add compare function as a parameter.
16162 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16163 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16164 (push_allocno_to_stack): Rewrite for checking new allocno
16165 colorability.
7a81008b 16166 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
16167 (push_only_colorable): Pass new parameter to sort_bucket.
16168 (push_allocno_to_spill): Remove.
16169 (allocno_spill_priority_compare): Make it inline and rewrite.
16170 (splay_tree_allocate, splay_tree_free): Remove.
16171 (allocno_spill_sort_compare): New function.
16172 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
16173 build and use splay tree. Choose first allocno in uncolorable
16174 allocno bucket to spill. Remove setting spill cost.
16175 (all_conflicting_hard_regs): Remove.
16176 (setup_allocno_available_regs_num): Check only profitable hard
16177 regs. Print info about hard regs nodes.
16178 (setup_allocno_left_conflicts_size): Remove.
16179 (put_allocno_into_bucket): Don't call
7a81008b 16180 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
16181 (improve_allocation): New.
16182 (color_allocnos): Call setup_profitable_hard_regs,
16183 form_object_hard_regs_nodes_forest, improve_allocation,
16184 finish_object_hard_regs_nodes_forest. Setup spill cost.
16185 (print_loop_title): Use pressure classes.
16186 (color_allocnso): Ditto.
16187 (do_coloring): Remove allocation and freeing splay_tree_node_pool
16188 and allocnos_for_spilling.
16189 (ira_sort_regnos_for_alter_reg): Don't setup members
16190 {first,next}_coalesced_allocno.
16191 (color): Remove allocating and freeing removed_splay_allocno_vec.
16192 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16193 prohibited_class_mode_regs.
16194
16195 * ira-lives.c: Remove mentioning cover classes from the file. Fix
16196 formatting.
16197 (update_allocno_pressure_excess_length): Use pressure classes.
16198 (inc_register_pressure, dec_register_pressure): Check for pressure
16199 class.
16200 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16201 pressure class. Use ira_reg_class_nregs instead of
16202 ira_reg_class_max_nregs.
16203 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16204 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16205 (single_reg_class): Use ira_reg_class_nregs instead of
16206 ira_reg_class_max_nregs.
16207 (process_bb_node_lives): Use pressure classes.
16208
16209 * ira-emit.c: Remove mentioning cover classes from the file. Use
16210 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
16211 (change_loop): Use pressure classes.
16212 (modify_move_list): Call ira_set_allocno_class instead of
16213 ira_set_allocno_cover_class.
16214
16215 * ira-build.c: Remove mentioning cover classes from the file. Use
16216 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16217 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
16218 ALLOCNO_UPDATED_CLASS_COST instead of
16219 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16220 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16221 (ira_create_allocno): Remove initialization of
16222 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
16223 ALLOCNO_COLORABLE_P.
16224 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16225 Update conflict regs for the objects.
16226 (create_cap_allocno): Remove assert. Don't propagate
16227 ALLOCNO_AVAILABLE_REGS_NUM.
16228 (ira_free_allocno_costs): New function.
16229 (finish_allocno): Change a part of code into call of
16230 ira_free_allocno_costs.
16231 (low_pressure_loop_node_p): Use pressure classes.
16232 (object_range_compare_func): Don't compare classes.
16233 (setup_min_max_conflict_allocno_ids): Ditto.
16234
16235 * loop-invariant.c: Remove mentioning cover classes from the file.
16236 Use ira_pressure_classes and ira_pressure_classes_num instead of
16237 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
16238 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16239 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16240 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
16241 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16242 STACK_REG_COVER_CLASS.
16243 (get_regno_cover_class): Rename to get_regno_pressure_class.
16244 (move_loop_invariants): Initialize and finalize regstat.
16245
16246 * ira.c: Remove mentioning cover classes from the file. Add
16247 comments about coloring without cover classes. Use ALLOCNO_CLASS
16248 instead of ALLOCNO_COVER_CLASS. Fix formatting.
16249 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16250 setup_class_subset_and_memory_move_costs.
16251 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16252 (setup_cover_and_important_classes): Rename to
16253 setup_allocno_and_important_classes.
16254 (setup_class_translate_array): New.
16255 (setup_class_translate): Call it for allocno and pressure classes.
16256 (cover_class_order): Rename to allocno_class_order.
16257 (comp_reg_classes_func): Use ira_allocno_class_translate instead
16258 of ira_class_translate.
16259 (reorder_important_classes): Set up ira_important_class_nums.
16260 (setup_reg_class_relations): Set up ira_reg_class_superunion.
16261 (print_class_cover): Rename to print_classes. Add parameter.
16262 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16263 Print pressure classes too.
16264 (find_reg_class_closure): Rename to find_reg_classes. Don't call
16265 setup_reg_subclasses.
7a81008b 16266 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
16267 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16268 (setup_prohibited_class_mode_regs): Use
7a81008b 16269 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
16270 (clarify_prohibited_class_mode_regs): New function.
16271 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16272 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16273 (ira_init_once): Initialize them.
16274 (free_register_move_costs): Process them.
16275 (ira_init): Move calls of find_reg_classes and
16276 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16277 Call clarify_prohibited_class_mode_regs.
16278 (ira_no_alloc_reg): Remove.
16279 (too_high_register_pressure_p): Use pressure classes.
16280
16281 * sched-deps.c: Remove mentioning cover classes from the file.
16282 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16283 ira_pressure_classes and ira_pressure_classes_num instead of
16284 ira_reg_class_cover_size and ira_reg_class_cover.
16285 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16286 sched_regno_pressure_class instead of sched_regno_cover_class.
16287 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
16288 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16289
16290 * ira.h: Add 2010 to Copyright.
16291 (ira_no_alloc_reg): Remove external.
16292 (struct target_ira): Rename x_ira_hard_regno_cover_class,
16293 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16294 x_ira_class_translate to x_ira_hard_regno_allocno_class,
16295 x_ira_allocno_classes_num, x_ira_allocno_classes, and
16296 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
16297 x_ira_pressure_classes, x_ira_pressure_class_translate, and
16298 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
16299 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
16300 x_ira_no_alloc_regs.
7a81008b 16301 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
16302 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16303 ira_allocno_classes_num and ira_allocno_classes.
16304 (ira_class_translate): Rename to ira_allocno_class_translate.
16305 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16306 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16307 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16308 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16309 (ira_no_alloc_regs): New.
16310
16311 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
16312 classes from the file. Use ALLOCNO_CLASS instead of
16313 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
16314 ALLOCNO_COVER_CLASS_COST.
16315 (regno_cover_class): Rename to regno_aclass.
16316 (record_reg_classes): Use ira_reg_class_subunion instead of
16317 ira_reg_class_union.
16318 (record_address_regs): Check overflow.
16319 (scan_one_insn): Ditto.
7a81008b 16320 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
16321 (print_pseudo_costs): Use REG_N_REFS.
16322 (find_costs_and_classes): Use classes intersected with them on the
16323 1st pass. Check overflow. Use ira_reg_class_subunion instead of
16324 ira_reg_class_union. Use ira_allocno_class_translate and
16325 regno_aclass instead of ira_class_translate and regno_cover_class.
16326 Modify code for finding regno_aclass. Setup preferred classes for
16327 the next pass.
16328 (setup_allocno_cover_class_and_costs): Rename to
16329 setup_allocno_class_and_costs. Use regno_aclass instead of
16330 regno_cover_class. Use ira_set_allocno_class instead of
16331 ira_set_allocno_cover_class.
16332 (init_costs, finish_costs): Use regno_aclass instead of
16333 regno_cover_class.
16334 (ira_costs): Use setup_allocno_class_and_costs instead of
16335 setup_allocno_cover_class_and_costs.
16336 (ira_tune_allocno_costs_and_cover_classes): Rename to
16337 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
16338 by processing objects. Use ira_reg_class_max_nregs instead of
16339 ira_reg_class_nregs.
16340
16341 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16342
16343 * sched-int.h: Remove mentioning cover classes from the file.
16344 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16345
16346 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
16347 classes from the file.
16348 (struct reg_pref): Rename coverclass into allocnoclass.
16349 (reg_cover_class): Rename to reg_allocno_class.
16350
7a81008b 16351 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
16352
16353 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16354
16355 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16356
16357 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16358
16359 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16360
16361 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16362
16363 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16364
16365 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16366
16367 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16368
16369 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16370
16371 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
16372 (i386_ira_cover_classes): Ditto.
16373
16374 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
16375
16376 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
16377
16378 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
16379
16380 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
16381
16382 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
16383
16384 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
16385
16386 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
16387 (mips_ira_cover_classes): Ditto.
16388
16389 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
16390
16391 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
16392
16393 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
16394
16395 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
16396
16397 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
16398
16399 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
16400 (IRA_COVER_CLASSES_VSX): Ditto.
16401
16402 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
16403 (rs6000_ira_cover_classes): Ditto.
16404
16405 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
16406
16407 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16408
16409 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16410
16411 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16412
16413 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16414
16415 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16416
16417 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16418
16419 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16420
16421 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16422
16423 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16424
2b80199f
JJ
164252011-03-29 Jakub Jelinek <jakub@redhat.com>
16426
71dae1fe
JJ
16427 PR debug/48253
16428 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16429 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16430 dw_fde_unlikely_section_end_label, cold_in_std_section,
16431 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16432 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16433 fields.
16434 (output_fde): Use dw_fde_second_{begin,end} if second is
16435 true, otherwise dw_fde_{begin,end}.
16436 (output_call_frame_info): Test dw_fde_second_begin != NULL
16437 instead of dw_fde_switched_sections.
16438 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16439 fields, initialize new fields. Initialize in_std_section
16440 unconditionally from the first partition.
16441 (dwarf2out_end_epilogue): Don't override dw_fde_end when
16442 dw_fde_second_begin is non-NULL.
16443 (dwarf2out_switch_text_section): Stop initializing removed
16444 dw_fde_struct fields, initialize new fields, initialize
16445 also dw_fde_end here. Set dw_fde_switch_cfi even when
16446 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
16447 (struct var_loc_list_def): Add last_before_switch field.
16448 (arange_table, arange_table_allocated, arange_table_in_use,
16449 ARANGE_TABLE_INCREMENT, add_arange): Removed.
16450 (size_of_aranges): Count !in_std_section and !second_in_std_section
16451 hunks in fdes, instead of looking at arange_table_in_use.
16452 (output_aranges): Add aranges_length argument, don't call
16453 size_of_aranges here. Instead of using aranges_table*
16454 emit ranges for fdes when !in_std_section resp.
16455 !second_in_std_section.
16456 (dw_loc_list): Break ranges crossing section switch.
16457 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 16458 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
16459 (gen_subprogram_die): Don't call add_arange. Use
16460 dw_fde_{begin,end} for first partition and if switched
16461 section dw_fde_second_{begin,end} for the second.
16462 (var_location_switch_text_section_1,
16463 var_location_switch_text_section): New functions.
16464 (dwarf2out_begin_function): Initialize cold_text_section even
16465 when function_section () isn't text_section.
16466 (prune_unused_types): Don't walk arange_table.
16467 (dwarf2out_finish): Don't needlessly test
16468 flag_reorder_blocks_and_partition when testing cold_text_section_used.
16469 If info_section_emitted, call size_of_aranges and if it indicates
16470 non-empty .debug_aranges, call output_aranges with the computed
16471 size. Stop using removed dw_fde_struct fields, use
16472 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16473 for second.
16474
2b80199f
JJ
16475 PR debug/48203
16476 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16477 create ENTRY_VALUE if incoming or address of incoming's MEM
16478 is a hard REG.
16479 * dwarf2out.c (mem_loc_descriptor): Don't emit
16480 DW_OP_GNU_entry_value of DW_OP_fbreg.
16481 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16482 on ENTRY_VALUE is able to find the canonical parameter VALUE.
16483 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16484 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16485 ENTRY_VALUE_EXPs.
16486 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16487 is a REG_P or MEM_P with REG_P address, compute hash directly
16488 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16489 (preserve_only_constants): Don't clear VALUES forwaring
16490 ENTRY_VALUE to some other VALUE.
16491
8a445129
RS
164922011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
16493
16494 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16495 instead of GEN_INT.
16496
c82fee88
EB
164972011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16498
16499 * cfgexpand.c (expand_gimple_cond): Always set the source location and
16500 block before expanding the statement.
16501 (expand_gimple_stmt_1): Likewise. Set them here...
16502 (expand_gimple_stmt): ...and not here. Tidy.
16503 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16504 unknown.
16505
e45425ec
SB
165062011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16507
16508 * Makefile.in: New rule for cprop.o.
16509 * gcse.c: Move constant/copy propagation to cprop.c.
16510 (compute_local_properties): Only handle expression tables.
16511 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16512 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16513 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16514 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 16515 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
16516 compute_cprop_data, find_used_regs, try_replace_reg,
16517 find_avail_set, cprop_jump, constprop_register, cprop_insn,
16518 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16519 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16520 find_bypass_set, reg_killed_on_edge, bypass_block,
16521 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16522 execute_rtl_cprop, pass_rtl_cprop): Move to...
16523 * cprop.c: ...here. New file, constant/copy propagation for RTL
16524 moved from gcse.c to here with minor cleanups in duplicated code.
16525
c09d5426
L
165262011-03-28 H.J. Lu <hongjiu.lu@intel.com>
16527
16528 * config/i386/i386.c (flag_opts): Fix a typo in
16529 -mavx256-split-unaligned-store.
16530
9eaa7740
AS
165312011-03-28 Anatoly Sokolov <aesok@post.ru>
16532
16533 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16534 LIBCALL_VALUE): Remove macros.
16535 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16536 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16537 (h8300_function_value, h8300_libcall_value,
16538 h8300_function_value_regno_p): New functions.
16539
dcec2be2
AS
165402011-03-28 Anatoly Sokolov <aesok@post.ru>
16541
16542 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16543
520af9ec
JL
165442011-03-28 Jeff Law <law@redhat.com>
16545
16546 * tree-ssa-threadupdate.c (redirect_edges): Call
16547 create_edge_and_update_destination_phis as needed.
16548 (create_edge_and_update_destination_phis): Accept new BB argument.
16549 All callers updated.
16550 (thread_block): Do not update the profile when threading around
16551 intermediate blocks.
16552 (thread_single_edge): Likewise.
16553 (determine_bb_domination_status): If BB is not a successor of the
16554 loop header, return NONDOMINATING.
16555 (register_jump_thread): Note when we register a jump thread around
16556 an intermediate block.
16557 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16558 (thread_across_edge): Use it.
16559
7450b54f
TG
165602011-03-28 Tristan Gingold <gingold@adacore.com>
16561
16562 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16563 when for_return is 2.
16564
649beb33
JL
165652011-03-28 Jeff Law <law@redhat.com>
16566
16567 * var-tracking.c (canonicalize_values_mark): Delete unused
16568 lhs assignment.
16569 (canonicalize_values_star, set_variable_part): Likewise.
16570 (clobber_variable_part, delete_variable_part): Likewise.
16571
d5b8da97
SB
165722011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16573
16574 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16575
322dd859
MJ
165762011-03-28 Martin Jambor <mjambor@suse.cz>
16577
16578 * tree-inline.c (expand_call_inline): Do not check that destination
16579 node is analyzed.
16580 (optimize_inline_calls): Assert that destination node is analyzed.
16581 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16582 not call tree_lowering_passes.
16583 * cgraph.h (cgraph_analyze_function): Declare.
16584 * cgraphunit.c (cgraph_analyze_function): Make public.
16585
aa53e58b
JM
165862011-03-28 Joseph Myers <joseph@codesourcery.com>
16587
16588 * config/sparc/sparc-opts.h: New.
16589 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16590 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16591 (sparc_option_override): Store processor_type enumeration rather
16592 than string in cpu_default. Remove name and enumeration from
16593 cpu_table. Directly default -mcpu then default -mtune from -mcpu
16594 without using sparc_select. Use target_flags_explicit instead of
16595 fpu_option_set.
16596 * config/sparc/sparc.h (enum processor_type): Move to
16597 sparc-opts.h.
16598 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16599 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16600 HeaderInclude entry.
16601 (mcpu=, mtune=): Use Var and Enum.
16602 (sparc_processor_type): New Enum and EnumValue entries.
16603
dd350eba
RO
166042011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16605 Iain Sandoe <iains@gcc.gnu.org>
16606
16607 PR target/48245
16608 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16609
1b29f05e
EB
166102011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16611
16612 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16613 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16614 Insert new statements at it in lieu of STMT.
16615 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16616 * tree-vect-stmts.c (vectorizable_store): Likewise.
16617 (vectorizable_load): Likewise.
16618
506e6808
UB
166192011-03-28 Uros Bizjak <ubizjak@gmail.com>
16620
16621 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16622 (divtf3): Ditto.
16623 (multf3): Ditto.
16624 (subtf3): Ditto.
16625
2e939ee9
L
166262011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16627
16628 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16629 unaligned 256bit load/store.
16630 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16631 (*avx_movdqu<avxmodesuffix>): Likewise.
16632
5e85ab88
JDA
166332011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16634
16635 PR target/48288
16636 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16637 * config/pa/pa.md (iordi3): Use new predicate in expander.
16638 (iorsi3): Likewise.
16639
47be3d6d
AS
166402011-03-27 Anatoly Sokolov <aesok@post.ru>
16641
506e6808 16642 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 16643 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
16644 * config/mips/mips-protos.h (mips_function_value): Remove.
16645 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
16646 (mips_function_value_1): ... this. Make static. Handle receiving
16647 the function type in 'fn_decl_or_type' argument.
16648 (mips_function_value, mips_libcall_value,
16649 mips_function_value_regno_p): New function.
16650 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16651 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16652
d253656a
L
166532011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16654
16655 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16656 and -mavx256-split-unaligned-store.
16657 (ix86_option_override_internal): Split 32-byte AVX unaligned
16658 load/store by default.
16659 (ix86_avx256_split_vector_move_misalign): New.
16660 (ix86_expand_vector_move_misalign): Use it.
16661
16662 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16663 -mavx256-split-unaligned-store.
16664
16665 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16666 256bit load/store. Generate unaligned store on misaligned memory
16667 operand.
16668 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16669 256bit load/store.
16670 (*avx_movdqu<avxmodesuffix>): Likewise.
16671
16672 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16673 -mavx256-split-unaligned-store.
16674
1ea9206a
RS
166752011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
16676
16677 PR target/38598
16678 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
16679 Update commentary.
16680
b99ce2a8
RS
166812011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
16682
16683 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
16684 opno arguments with an expand_operand. Use create_input_operand.
16685 (mips_prepare_builtin_target): Delete.
16686 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
16687 functions.
16688 (mips_expand_builtin_direct): Use create_output_operand and
16689 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
16690 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
16691 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
16692
69d52339
IR
166932011-03-27 Ira Rosen <ira.rosen@linaro.org>
16694
16695 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
16696 function.
16697 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16698
ba5e9aca
EB
166992011-03-26 Eric Botcazou <ebotcazou@adacore.com>
16700
16701 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
16702 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
16703 basic blocks and call commit_edge_insertions directly.
16704 (fixup_abnormal_edges): Move from here to...
16705 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
16706 on the edges and return whether some have actually been inserted.
16707 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
16708 compensation code.
16709
5d369d58
AB
167102011-03-26 Andrey Belevantsev <abel@ispras.ru>
16711
16712 PR rtl-optimization/48144
16713 * sel-sched-ir.c (merge_history_vect): Factor out from ...
16714 (merge_expr_data): ... here.
16715 (av_set_intersect): Rename to av_set_code_motion_filter.
16716 Update all callers. Call merge_history_vect when an expression
16717 is found in both sets.
16718 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
16719
f082c000
AM
167202011-03-26 Alan Modra <amodra@gmail.com>
16721
16722 * config/rs6000/predicates.md (word_offset_memref_op): Handle
16723 cmodel medium addresses.
16724 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
16725 64-bit gpr loads and stores.
16726 (rs6000_secondary_reload_ppc64): New function.
16727 * config/rs6000/rs6000-protos.h: Declare it.
16728 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
16729
8ac5e12e
AM
167302011-03-26 Alan Modra <amodra@gmail.com>
16731
16732 PR target/47487
16733 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
16734 GNU Go in traceback table.
16735
c2654ded
RH
167362011-03-25 Richard Henderson <rth@redhat.com>
16737
16738 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
16739 if there are exactly 6 operands.
16740 (set_storage_via_setmem): Similarly.
16741
ba78087b
KT
167422011-03-25 Kai Tietz <ktietz@redhat.com>
16743
16744 * collect2.c (write_c_file_stat): Handle backslash
16745 as right-hand directory separator.
16746 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
16747 checking just for slash.
16748 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
16749 instead of checking for trailing slash.
16750 * gcc.c (record_temp_file): Use filename_cmp instead
16751 of strcmp.
16752 (do_spec_1): Likewise.
16753 (replace_outfile_spec_function): Likewise.
16754 (is_directory): Use filename_ncmp instead of strncmp.
16755 (print_multilib_info): Likewise.
16756 * gcov.c (find_source): Use filename_cmp instead
16757 instead of strcmp.
16758 (make_gcov_file_name): Fix order of slash/backslash
16759 checks.
16760 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
16761 (add_standard_paths): Likewise.
16762 * mips-tfile.c (saber_stop): Handle backslash.
16763 * prefix.c (update_path): Use filename_ncmp instead of
16764 strncmp.
16765 * profile.c (output_location): Use filename_cmp instead
16766 of strcmp.
16767 * read-md.c (handle_toplevel_file): Handle backslash.
16768 * tlink.c (frob_extension): Likewise.
16769 * tree-cfg.c (same_line_p): Use filename_cmp instead of
16770 strcmp.
16771 * tree-dump.c (dequeue_and_dump): Handle backslash.
16772 * tree.c (get_file_function_name): Likewise.
16773 * gengtype.c (read_input_list): Likewise.
16774 (get_file_realbasename): Likewise.
16775 (get_output_file_with_visibility): Use filename_cmp
16776 instead of strcmp.
16777
75f6ec9a
RS
167782011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
16779
16780 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
16781 case to VFPv1.
16782
6c4e2997
NF
167832011-03-25 Nathan Froyd <froydnj@codesourcery.com>
16784
16785 * fold-const.c (expr_location_or): New function.
16786 (fold_truth_not_expr): Call it.
16787
0edf1bb2
JL
167882011-03-25 Jeff Law <law@redhat.com>
16789
16790 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
16791 va_end.
16792 * c-family/c-common.c (def_fn_type): Likewise.
16793 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
16794 * emit-rtl.c (gen_rtvec): Likewise.
16795 * lto/lto-lang.c (def_fn_type): Likewise.
16796
fdc2de95
RG
167972011-03-25 Richard Guenther <rguenther@suse.de>
16798
16799 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
16800 also generate copies.
16801 (fini_copy_prop): Handle constant values properly.
16802
21385db0
JJ
168032011-03-25 Jakub Jelinek <jakub@redhat.com>
16804
16805 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
16806 mode size instead of bitsize with DWARF2_ADDR_SIZE.
16807 (hash_loc_operands, compare_loc_operands): Handle
16808 DW_OP_GNU_entry_value.
16809
6510e8bb
KT
168102011-03-25 Kai Tietz <ktietz@redhat.com>
16811
16812 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
16813 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
16814 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
16815 comment and use macro TARGET_64BIT_MS_ABI instead.
16816 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
16817 and change default behavior for 32-bit MS_ABI.
16818 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
16819 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
16820 32-bit, too.
16821 (ix86_cfun_abi): Likewise.
16822 (ix86_maybe_switch_abi): Adjust comment.
16823 (init_cumulative_args): Check for bit-ness in MS_ABI case.
16824 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
16825 instead of checking for SYSV_ABI.
16826 (ix86_nsaved_sseregs): Likewise.
16827 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
16828 to 16 bytes.
16829 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
16830 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
16831 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
16832 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
16833 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
16834
34019e28
RG
168352011-03-25 Richard Guenther <rguenther@suse.de>
16836
16837 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
16838 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16839 (verify_gimple): Remove.
16840 * tree-cfg.c (verify_gimple_call): Merge verification
16841 from verify_stmts.
16842 (verify_gimple_phi): Merge verification from verify_stmts.
16843 (verify_gimple_label): New function.
16844 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
16845 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
16846 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
16847 (verify_stmts): Rename to verify_gimple_in_cfg.
16848 (verify_gimple_in_cfg): New function.
16849 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
16850 * tree-ssa.c (verify_ssa): Likewise.
16851 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
16852
605896f5
RG
168532011-03-25 Richard Guenther <rguenther@suse.de>
16854
16855 * passes.c (init_optimization_passes): Add FRE pass after
16856 early SRA.
16857
7baa7c13
BS
168582011-03-25 Bernd Schmidt <bernds@codesourcery.com>
16859 Andrew Stubbs <ams@codesourcery.com>
16860
16861 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
16862 for Cortex-A8.
16863 (arm_movdi_vfp_cortexa8): New pattern.
16864 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
16865 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
16866 instructions when tuning for Cortex-A8. Set attribute "arch".
16867 * config/arm/arm.md: Move include arm-tune.md up a bit.
16868 (define_attr "arch"): Add "onlya8" and "nota8" values.
16869 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
16870
45dbce1b
NF
168712011-03-25 Nathan Froyd <froydnj@codesourcery.com>
16872
4ff08abf 16873 PR bootstrap/48282
45dbce1b
NF
16874 Revert:
16875 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16876
16877 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16878 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
16879 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16880 * passes.c (init_optimization_passes): Move
16881 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16882
ac9a30ae
KT
168832011-03-25 Kai Tietz <ktietz@redhat.com>
16884
16885 * c-typeck.c (comptypes_internal): Replace target
16886 hook call of comp_type_attributes by version in tree.c file.
16887 * gimple.c (gimple_types_compatible_p_1): Likewise.
16888 * tree-ssa.c (useless_type_conversion_p): Likewise.
16889 * tree.c (build_type_attribute_qual_variant): Likewise.
16890 (attribute_value_equal): New static helper function.
16891 (comp_type_attributes): New function.
16892 (merge_attributes): Use attribute_value_equal for comparison.
16893 (attribute_list_contained): Likewise.
16894 * tree.h (comp_type_attributes): New prototype.
16895
afdac116
RG
168962011-03-25 Richard Guenther <rguenther@suse.de>
16897
16898 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
16899 of complex types at -O0.
16900 (verify_gimple_assign_binary): Likewise.
16901 (verify_gimple_assign_ternary): Likewise.
16902
ec6165f8
MW
169032011-03-24 Mark Wielaard <mjw@redhat.com>
16904
16905 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
16906 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
16907
2a5ac39a
MW
169082011-03-24 Mark Wielaard <mjw@redhat.com>
16909
16910 PR debug/48041
16911 * dwarf2out.c (output_abbrev_section): Only write table when
16912 abbrev_die_table_in_use > 1.
16913
e533b2a4
RH
169142011-02-24 Richard Henderson <rth@redhat.com>
16915
16916 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
16917 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
16918 (alpha_expand_unaligned_load_words): Use extql.
16919 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
16920 (emit_insxl): Handle all modes for consistency.
16921
0b2a7367
RH
169222011-02-24 Richard Henderson <rth@redhat.com>
16923
16924 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
16925 (alpha_expand_unaligned_load): Likewise.
16926 (alpha_expand_unaligned_store): Likewise.
16927 (alpha_expand_unaligned_load_words): Likewise.
16928 (alpha_expand_unaligned_store_words): Likewise.
16929 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
16930 (alpha_split_lock_test_and_set_12): Likewise.
16931 (print_operand, alpha_fold_builtin_extxx): Likewise.
16932 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
16933 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
16934 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
16935 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
16936 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
16937 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
16938 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
16939 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
16940 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
16941 (extwl, extll, extql): Similarly.
16942 (inswh, inslh, insqh): Similarly.
16943 (mskbl, mskwl, mskll, mskql): Similarly.
16944 (mskwh, msklh, mskqh): Similarly.
16945
315b2bef
RH
169462011-02-24 Richard Henderson <rth@redhat.com>
16947
16948 * config/alpha/alpha.md (attribute isa): Add er, ner.
16949 (attribute enabled): Handle them.
16950 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
16951
67102517
RH
169522011-02-24 Richard Henderson <rth@redhat.com>
16953
16954 * config/alpha/alpha.md (attribute isa): Add vms.
16955 (attribute enabled): Handle it.
16956 (*movsf): Merge *movsf_{nofix,fix,nofp}.
16957 (*movdf): Merge *movdf_{nofix,fix,nofp}.
16958 (*movtf): Rename from *movtf_internal for consistency.
16959 (*movsi): Merge with *movsi_nt_vms.
16960 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
16961 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
16962 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
16963 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
16964
6aba5cb4
RH
169652011-02-24 Richard Henderson <rth@redhat.com>
16966
16967 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
16968 (extendqisi2, extendhisi2): Likewise.
16969 (extendqidi2): Simplify BWX/non-BWX expansions.
16970 (extendhidi2): Similarly.
16971
bdfb351b
RH
169722011-02-24 Richard Henderson <rth@redhat.com>
16973
16974 * config/alpha/alpha.md (attribute isa): New.
16975 (attribute enabled): New.
16976 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
16977 (zero_extendqisi2, zero_extendqidi2): Similarly.
16978 (zero_extendhisi2, zero_extendhidi2): Similarly.
16979 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
16980
6abe71eb
RH
169812011-02-24 Richard Henderson <rth@redhat.com>
16982
16983 * config/alpha/predicates.md (input_operand): Revert last change;
16984 update comment to mention 32-bit VMS rather than Windows.
16985
7114321e
NF
169862011-03-24 Nathan Froyd <froydnj@codesourcery.com>
16987
16988 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
16989 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
16990 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
16991 * passes.c (init_optimization_passes): Move
16992 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
16993
c8679567
EB
169942011-03-24 Eric Botcazou <ebotcazou@adacore.com>
16995
16996 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
16997
27173058
UB
169982011-03-24 Uros Bizjak <ubizjak@gmail.com>
16999
17000 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17001 correctly.
17002
6f0c9f06
JJ
170032011-03-24 Jakub Jelinek <jakub@redhat.com>
17004
17005 PR debug/48204
17006 * simplify-rtx.c (simplify_const_unary_operation): Call
17007 real_convert when changing mode class with FLOAT_EXTEND.
17008
662666e5
NC
170092011-03-24 Nick Clifton <nickc@redhat.com>
17010
17011 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17012 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17013 * config/rx/rx.c (rx_option_override): Set align_jumps,
17014 align_loops and align_labels if not set by the user.
17015 (rx_align_for_label): New function.
17016 (rx_max_skip_for_label): New function.
17017 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17018 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17019 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17020 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17021 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17022
2b99b2b8
RS
170232011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17024
17025 PR rtl-optimization/48263
17026 * optabs.c (expand_binop_directly): Reinstate convert_modes code
17027 and original commutative_p handling. Use maybe_gen_insn.
17028
ccecd6ea
AK
170292011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17030
17031 * reload.c (find_reloads_subreg_address): Add address_reloaded
17032 parameter and return true there if the full address has been
17033 reloaded.
17034 (find_reloads_toplev): Pass address_reloaded flag.
17035 (find_reloads_address_1): Don't use address_reloaded parameter.
17036
67295642
JL
170372011-03-24 Jeff Law <law@redhat.com>
17038
17039 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17040 unused variable "ann".
17041 (remove_unused_locals): Likewise.
17042
17043 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17044 statement.
17045
17046 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17047 after it is freed.
17048
212aa74f
AK
170492011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17050
17051 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17052 for invalid symbolic addresses.
17053 (s390_secondary_reload): Don't use s390_check_symref_alignment for
17054 larl operands.
17055
fe784e0d
EB
170562011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17057
17058 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17059 the argument in calls to fold_truth_not_expr.
17060
63ee8641
NF
170612011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17062
17063 * tree.c (record_node_allocation_statistics): New function.
17064 (make_node_stat, copy_node_stat, build_string): Call it.
17065 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17066 (build1_stat, build_omp_clause): Likewise.
17067
61be2a1c
RS
170682011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17069
17070 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17071 last commit.
17072
a881aaa7
RG
170732011-03-24 Richard Guenther <rguenther@suse.de>
17074
17075 PR tree-optimization/48271
17076 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17077 blocks that still exist.
17078
dbaa912c
RG
170792011-03-24 Richard Guenther <rguenther@suse.de>
17080
17081 PR tree-optimization/48270
17082 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17083 not free datarefs before ddrs.
17084
1d60cc55
EB
170852011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17086
17087 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17088 from the address built for a reference with variable offset.
17089
c78dd519
UB
170902011-03-24 Uros Bizjak <ubizjak@gmail.com>
17091
17092 PR target/48237
17093 * config/i386/i386.md (*movdf_internal_rex64): Do not split
17094 alternatives that can be handled with movq or movabsq insn.
17095 (*movdf_internal): Disable for !TARGET_64BIT.
17096 (*movdf_internal_nointeger): Ditto.
17097 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17098
b25b9e8f
NF
170992011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17100
17101 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17102 (FUNCTION_ARG_ADVANCE): Likewise.
17103 * tm.texi.in: Change references to them to hook references.
17104 * tm.texi: Regenerate.
c78dd519 17105 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
17106 (default_function_incoming_arg): Likewise.
17107 (default_function_arg_advance): Likewise.
c78dd519 17108 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
17109 (function_arg_advance): Likewise.
17110 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17111
190b2187
RG
171122011-03-24 Richard Guenther <rguenther@suse.de>
17113
17114 PR middle-end/48269
17115 * tree-object-size.c (addr_object_size): Do not double-account
17116 for MEM_REF offsets.
17117
a183b5c7
DN
171182011-03-24 Diego Novillo <dnovillo@google.com>
17119
17120 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 17121 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
17122 (lto_input_data_block): Move from lto-opts.c. Make extern.
17123 Update all users.
17124 (lto_input_string): Rename from input_string. Make extern.
17125 Update all users.
17126 * lto-streamer-out.c (lto_output_string_with_length): Rename from
17127 output_string_with_length.
17128 Output 0 to indicate a non-NULL string. Update all callers to
17129 not emit 0.
17130 (lto_output_string): Rename from output_string. Make extern.
17131 Update all users.
17132 (lto_output_decl_state_streams): Make extern.
17133 (lto_output_decl_state_refs): Make extern.
17134 * lto-streamer.h (lto_input_string): Declare.
17135 (lto_input_data_block): Declare.
17136 (lto_output_string): Declare.
17137 (lto_output_string_with_length): Declare.
17138 (lto_output_decl_state_streams): Declare.
17139 (lto_output_decl_state_refs): Declare.
17140
cfef45c8
RG
171412011-03-24 Richard Guenther <rguenther@suse.de>
17142
17143 PR tree-optimization/46562
17144 * tree.c (build_invariant_address): New function.
17145 * tree.h (build_invariant_address): Declare.
17146 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17147 a renamed function moved ...
17148 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17149 Take valueization callback parameter.
17150 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17151 * gimple-fold.h: New file.
17152 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17153 (ccp_fold, fold_const_aggregate_ref,
17154 fold_ctor_reference, fold_nonarray_ctor_reference,
17155 fold_array_ctor_reference, fold_string_cst_ctor_reference,
17156 get_base_constructor): Move ...
17157 * gimple-fold.c: ... here.
17158 (gimple_fold_stmt_to_constant_1): New function
17159 split out from ccp_fold. Take a valueization callback parameter.
17160 Valueize all operands.
17161 (gimple_fold_stmt_to_constant): New wrapper function.
17162 (fold_const_aggregate_ref_1): New function split out from
17163 fold_const_aggregate_ref. Take a valueization callback parameter.
17164 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17165 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17166 invariant POINTER_PLUS_EXPRs to invariant form.
17167 (vn_valueize): New function.
17168 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17169 * tree-vrp.c (vrp_valueize): New function.
17170 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17171 to fold statements to constants.
17172 * tree-ssa-pre.c (eliminate): Properly guard propagation of
17173 function declarations.
17174 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17175 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17176
5e0a7e40
RS
171772011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17178
17179 * config/h8300/predicates.md (jump_address_operand): Fix register
17180 mode check.
17181
bfe068c3
IR
171822011-03-24 Ira Rosen <ira.rosen@linaro.org>
17183
17184 * doc/invoke.texi (max-stores-to-sink): Document.
17185 * params.h (MAX_STORES_TO_SINK): Define.
17186 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17187 if either vectorization or if-conversion is disabled.
17188 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17189 tree-vect-data-refs.c vect_equal_offsets.
17190 (dr_equal_offsets_p): New function.
17191 (find_data_references_in_bb): Remove static.
17192 * tree-data-ref.h (find_data_references_in_bb): Declare.
17193 (dr_equal_offsets_p): Likewise.
17194 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17195 (vect_drs_dependent_in_basic_block): Update calls to
17196 vect_equal_offsets.
17197 (vect_check_interleaving): Likewise.
17198 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17199 (cond_if_else_store_replacement): Rename to...
17200 (cond_if_else_store_replacement_1): ... this. Change arguments and
17201 documentation.
17202 (cond_if_else_store_replacement): New function.
17203 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17204 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17205
4908b0bf
CLT
172062011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
17207
17208 PR target/46934
17209 * config/arm/arm.md (casesi): Use the gen_int_mode() function
17210 to subtract lower bound instead of GEN_INT().
17211
2be478a2
JW
172122011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
17213
17214 PR other/48179
17215 PR other/48221
17216 PR other/48234
17217 * doc/extend.texi (Alignment): Move section to match order in TOC.
17218 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17219 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17220
0c617be4
JL
172212011-03-23 Jeff Law <law@redhat.com>
17222
17223 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17224 before removing the edge.
17225
17226 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17227 it may have been freed by redirect_branch_edge or
17228 redirect_edge_succ_nodup.
17229
58da96fe
RG
172302011-03-23 Richard Guenther <rguenther@suse.de>
17231
c78dd519 17232 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
17233 (check_va_list_escapes): Likewise.
17234 (check_all_va_list_escapes): Likewise.
17235
b8beb4d1
RG
172362011-03-23 Richard Guenther <rguenther@suse.de>
17237
17238 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17239 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17240 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17241 (alias.o): Likewise.
17242 (ipa-type-escape.o): Remove.
17243 (ipa-struct-reorg.o): Likewise.
17244 (GTFILES): Remove ipa-struct-reorg.c.
17245 * alias.c: Do not include ipa-type-escape.h.
17246 * tree-ssa-alias.c: Likewise.
17247 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17248 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17249 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17250 and ipa-type-escape passes.
17251 * tree-pass.h (pass_ipa_type_escape): Remove.
17252 (pass_ipa_struct_reorg): Likewise.
17253 * ipa-struct-reorg.h: Remove.
17254 * ipa-struct-reorg.c: Likewise.
17255 * ipa-type-escape.h: Likewise.
17256 * ipa-type-escape.c: Likewise.
17257 * doc/invoke.texi (-fipa-struct-reorg): Remove.
17258 (--param struct-reorg-cold-struct-ratio): Likewise.
17259 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17260 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17261 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17262
f137aa63
AK
172632011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17264
17265 * config/s390/2084.md: Enable all insn reservations also for z9_ec
17266 cpu attribute value.
17267 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17268 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17269 * config/s390/s390.c (processor_flags_table): New constant array.
17270 (s390_handle_arch_option): Remove.
17271 (s390_handle_option): Remove s390_handle_arch_option invocations
17272 and OPT_mwarn_framesize_ handling.
17273 (s390_option_override): Remove s390_handle_arch_option invocation.
17274 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17275 warnings.
17276 * config/s390/s390.md (cpu attribute): Add z9_ec value.
17277 * config/s390/s390.opt (s390_tune, s390_arch)
17278 (march=): Replace s390_arch_option enum and values with
17279 processor_type. Set variable name to s390_arch. Set
17280 initialization value.
17281 (mtune=): Replace s390_arch_option with processor_type. Set
17282 variable name to s390_tune. Set initialization value.
17283
bf90208f
JB
172842011-03-23 Julian Brown <julian@codesourcery.com>
17285
17286 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17287 accesses which are not naturally aligned.
17288
3460fdf3
RS
172892011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17290
17291 PR target/47553
17292 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17293
a5c7d693
RS
172942011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17295
17296 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17297 parameter from "int" to "enum insn_code".
17298 (expand_operand_type): New enum.
17299 (expand_operand): New structure.
17300 (create_expand_operand): New function.
17301 (create_fixed_operand, create_output_operand): Likewise
17302 (create_input_operand, create_convert_operand_to): Likewise.
17303 (create_convert_operand_from, create_address_operand): Likewise.
17304 (create_integer_operand): Likewise.
17305 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17306 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17307 (expand_insn, expand_jump_insn): Likewise.
17308 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17309 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17310 (expand_movstr, expand_builtin___clear_cache): Likewise.
17311 (expand_builtin_lock_release): Likewise.
17312 * explow.c (allocate_dynamic_stack_space): Likewise.
17313 (probe_stack_range): Likewise. Allow check_stack to FAIL,
17314 and use the default handling in that case.
17315 * expmed.c (check_predicate_volatile_ok): Delete.
17316 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17317 (emit_cstore): Likewise.
17318 * expr.c (emit_block_move_via_movmem): Likewise.
17319 (set_storage_via_setmem, expand_assignment): Likewise.
17320 (emit_storent_insn, try_casesi): Likewise.
17321 (emit_single_push_insn): Likewise. Allow the expansion to fail.
17322 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17323 (expand_vec_shift_expr, expand_binop_directly): Likewise.
17324 (expand_twoval_unop, expand_twoval_binop): Likewise.
17325 (expand_unop_direct, emit_indirect_jump): Likewise.
17326 (emit_conditional_move, vector_compare_rtx): Likewise.
17327 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17328 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17329 (expand_sync_lock_test_and_set): Likewise.
17330 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
17331 (emit_unop_insn): Likewise.
17332 (expand_copysign_absneg): Change icode to an insn_code.
17333 (create_convert_operand_from_type): New function.
17334 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17335 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17336 (expand_insn, expand_jump_insn): Likewise.
17337 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17338 than const_int_operand for operand 2.
17339
78fadbab
AK
173402011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17341
17342 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17343 if possible.
17344
5f02387d
NF
173452011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17346
17347 * emit-rtl.c (emit_pattern_before_noloc): New function.
17348 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17349 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17350 (emit_pattern_after_noloc): New function.
17351 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17352 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17353
fdf3e18a
NF
173542011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17355
17356 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17357 (__ffsDI2): Likewise.
17358
42d085c1
RH
173592011-03-22 Richard Henderson <rth@redhat.com>
17360
17361 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17362 of !TARGET_ABI_OPEN_VMS.
17363 (alpha_trampoline_init, alpha_start_function): Likewise.
17364 (alpha_expand_epilogue, alpha_file_start): Likewise.
17365 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17366 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17367 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17368 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17369 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17370
cabbe12a
JM
173712011-03-22 Joseph Myers <joseph@codesourcery.com>
17372
17373 * config/s390/s390-opts.h: New.
17374 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
17375 s390_arch_flags, s390_warn_framesize, s390_stack_size,
17376 s390_stack_guard): Remove.
17377 (s390_handle_arch_option): Return void. Take enum
17378 s390_arch_option value instead of string and searching array.
17379 (s390_handle_option): Don't assert that global structures are in
17380 use. Access variables via opts pointer. Use error_at. Don't use
17381 sscanf for -mstack-guard= or -mstack-size=. Update call to
17382 s390_handle_arch_option.
17383 (s390_option_override): Update call to s390_handle_arch_option.
17384 (s390_emit_prologue): Use %d format for s390_stack_size in
17385 diagnostic. Use %wd for HOST_WIDE_INT.
17386 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
17387 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
17388 * config/s390/s390.opt (config/s390/s390-opts.h): New
17389 HeaderInclude entry.
17390 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
17391 s390_arch_flags, s390_warn_framesize): New Variable entries.
17392 (s390_arch_option): New Enum and EnumValue entries.
17393 (march=): Use Enum instead of Var.
17394 (mstack-guard=, mstack-size=): Use UInteger and Var.
17395 (mtune=): Use Enum.
17396
05b12036
JM
173972011-03-22 Joseph Myers <joseph@codesourcery.com>
17398
17399 * config/score/score.c (score_handle_option): Don't assert that
17400 global structures are in use. Access target_flags via opts
17401 pointer. Use value of -march= option to determine target_flags
17402 settings.
17403 * config/score/score.opt (march=): Use Enum.
17404 (score_arch): New Enum and EnumValue entries.
17405
dd51e35a
JM
174062011-03-22 Joseph Myers <joseph@codesourcery.com>
17407
17408 * config/mep/mep.c (option_mtiny_specified): Remove.
17409 (mep_option_override): Move register handling for -mivc2 from
17410 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
17411 instead of option_mtiny_specified.
17412 (mep_handle_option): Access target_flags via opts pointer. Don't
17413 assert that global structures are in use. Defer part of -mivc2
17414 handling and move it to mep_option_override.
17415 * config/mep/mep.opt (IVC2): New Mask entry.
17416 (mivc2): Use Var and Defer instead of Mask.
17417
4a8d3d91
JM
174182011-03-22 Joseph Myers <joseph@codesourcery.com>
17419
17420 * config/v850/v850-opts.h: New.
17421 * config/v850/v850.c (small_memory): Replace with
17422 small_memory_physical_max array. Make that array static const.
17423 (v850_handle_memory_option): Take integer value of argument. Take
17424 gcc_options pointer, option text and location. Return void.
17425 Update for changes to small memory structures.
17426 (v850_handle_option): Access target_flags via opts pointer. Don't
17427 assert that global structures are in use. Update calls to
17428 v850_handle_memory_option.
c78dd519
UB
17429 (v850_encode_data_area): Update references to small memory settings.
17430 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
17431 (enum small_memory_type): Move to v850-opts.h.
17432 * config/v850/v850.opt (config/v850/v850-opts.h): New
17433 HeaderInclude entry.
17434 (small_memory_max): New Variable entry.
17435 (msda): Replace by pair of options msda= and msda-. Use UInteger.
17436 (mtda, mzda): Likewise.
17437
117fdbfa
JM
174382011-03-22 Joseph Myers <joseph@codesourcery.com>
17439
17440 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17441 pointer. Don't assert that global structures are in use.
17442
d715091c
JM
174432011-03-22 Joseph Myers <joseph@codesourcery.com>
17444
17445 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17446 via opts pointer. Don't assert that global structures are in use.
17447
1bb721dc
JM
174482011-03-22 Joseph Myers <joseph@codesourcery.com>
17449
17450 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17451 (munix=93): Use Var.
17452 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17453 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17454 * config/pa/pa-opts.h: New.
17455 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17456 (pa_handle_option): Don't assert that global structures are in
17457 use. Access target_flags via opts pointer. Don't handle
17458 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17459 OPT_munix_98 here.
17460 (pa_option_override): Handle deferred OPT_mfixed_range_.
17461
cd8d8754
JM
174622011-03-22 Joseph Myers <joseph@codesourcery.com>
17463
17464 * config/mn10300/mn10300-opts.h: New.
17465 * config/mn10300/mn10300.c (mn10300_processor,
17466 mn10300_tune_string): Remove.
17467 (mn10300_handle_option): Don't assert that global structures are
17468 in use. Access mn10300_processor via opts pointer. Don't handle
17469 OPT_mtune_ here.
17470 * config/mn10300/mn10300.h (enum processor_type): Move to
17471 mn10300-opts.h.
17472 (mn10300_processor): Remove.
17473 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17474 HeaderInclude entry.
17475 (mn10300_processor): New Variable entry.
17476 (mtune=): Use Var.
17477
24e6e6b1
JM
174782011-03-22 Joseph Myers <joseph@codesourcery.com>
17479
17480 * config/microblaze/microblaze.c: Don't include opts.h.
17481 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17482 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17483 (mno-clearbss): Use Var and Warn.
17484
8a784afb
JM
174852011-03-22 Joseph Myers <joseph@codesourcery.com>
17486
17487 * config/m32r/m32r-opts.h: New.
17488 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17489 (m32r_handle_option): Don't assert that global structures are in
17490 use. Access target_flags and m32r_cache_flush_func via opts
17491 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
17492 OPT_mno_flush_trap here.
17493 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17494 include of m32r-opts.h.
17495 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17496 HeaderInclude entry.
17497 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17498 (mmodel=): Use Enum and Var.
17499 (m32r_model): New Enum and EnumValue entries.
17500 (mno-flush-trap): Use Var.
17501 (msdata=): Use Enum and Var.
17502 (m32r_sdata): New Enum and EnumValue entries.
17503
bbfc9a8c
JM
175042011-03-22 Joseph Myers <joseph@codesourcery.com>
17505
17506 * config/m32c/m32c.c: Don't include opts.h.
17507 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17508 m32c_handle_option): Remove.
17509 (m32c_option_override): Check global_options_set.x_target_memregs
17510 instead of target_memregs_set.
17511 * config/m32c/m32c.h (target_memregs): Remove.
17512 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17513 variable.
17514
e24b8335
JM
175152011-03-22 Joseph Myers <joseph@codesourcery.com>
17516
17517 * config/iq2000/iq2000-opts.h: New.
17518 * config/iq2000/iq2000.c: Don't include opts.h.
17519 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 17520 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
17521 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17522 HeaderInclude entry.
17523 (iq2000_tune): New Variable entry.
17524 (march=): Add comment. Use Enum.
17525 (iq2000_arch): New Enum and EnumValue entries.
17526 (mcpu=): Use Enum and Var.
17527 (iq2000_tune): New Enum and EnumValue entries.
17528
e6cc0c98
JM
175292011-03-22 Joseph Myers <joseph@codesourcery.com>
17530
17531 * config/ia64/ia64-opts.h: New.
17532 * config/ia64/ia64.c (ia64_tune): Remove.
17533 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17534 here. Use error_at.
17535 (ia64_option_override): Handle deferred OPT_mfixed_range_.
17536 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17537 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17538 HeaderInclude entry.
17539 (ia64_tune): New Variable entry.
17540 (mfixed-range=): Use Defer and Var.
17541 (mtune=): Use Enum and Var.
17542 (ia64_tune): New Enum and EnumValue entries.
17543
db25893c
JM
175442011-03-22 Joseph Myers <joseph@codesourcery.com>
17545
17546 * config/frv/frv-opts.h: New.
17547 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17548 frv-opts.h.
17549 (frv_cpu_type): Remove.
17550 * config/frv/frv.c: Don't include opts.h.
17551 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 17552 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
17553 (frv_cpu_type): New Variable entry.
17554 (frv_cpu): New Enum and EnumValue entries.
17555
6c223f5d
JM
175562011-03-22 Joseph Myers <joseph@codesourcery.com>
17557
17558 * config/cris/cris.c (cris_handle_option): Access target_flags via
17559 opts pointer. Don't assert that global structures are in use.
17560 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17561 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17562
bbd399cf
JM
175632011-03-22 Joseph Myers <joseph@codesourcery.com>
17564
17565 * config/bfin/bfin-opts.h: New.
17566 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17567 bfin_si_revision, bfin_workarounds): Remove.
17568 (bfin_cpus): Make static const.
17569 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17570 not bfin_lib_id_given.
17571 (bfin_handle_option): Don't set bfin_lib_id_given. Access
17572 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 17573 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
17574 * config/bfin/bfin.h: Include bfin-opts.h.
17575 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17576 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17577 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17578 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17579 entries.
17580
5e1b4d5a
JM
175812011-03-22 Joseph Myers <joseph@codesourcery.com>
17582
17583 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17584 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17585 or -msoft-float here.
17586 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17587 -msoft-float and -mhard-float.
c78dd519 17588 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
17589 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17590 msoft-float.
17591 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17592 -msoft-float.
17593 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17594 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17595 not mhard-float.
17596 (LIBGCC_SPEC): Don't handle -msoft-float.
17597 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17598 -mhard-float.
17599 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17600 msoft-float.
17601 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17602 -mfloat-abi=*, not -msoft-float and -mhard-float.
17603 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17604 -msoft-float.
17605 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17606 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17607 mhard-float and msoft-float.
17608 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17609 mfloat-abi=soft in comments, not mhard-float and msoft-float.
17610 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17611 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17612 mhard-float.
17613 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17614 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17615 msoft-float.
17616 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17617 not mhard-float.
17618 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17619 not msoft-float.
17620
800d1de1
RH
176212011-03-22 Richard Henderson <rth@redhat.com>
17622
17623 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17624 TARGET_ABI_WINDOWS_NT.
17625 (alpha_output_function_end_prologue): Likewise.
17626 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17627 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17628 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17629 (trap, *movsi_nt_vms): Likewise.
17630 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17631 (*tablejump_osf_nt_internal): Remove.
17632 * config/alpha/predicates.md (input_operand): Only test Pmode.
17633
c59ddd2b
JM
176342011-03-22 Joseph Myers <joseph@codesourcery.com>
17635
17636 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17637 via opts pointer. Use error_at. Don't assert that global
17638 structures are in use.
17639
1333f97f
JM
176402011-03-22 Joseph Myers <joseph@codesourcery.com>
17641
17642 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17643 (ix86_handle_option): Access ix86_isa_flags and
17644 ix86_isa_flags_explicit via opts pointer. Don't assert that
17645 global structures are in use.
17646 (ix86_function_specific_save, ix86_function_specific_restore):
17647 Update ix86_isa_flags_explicit field name.
c78dd519 17648 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
17649 (ix86_isa_flags_explicit): Rename TargetSave entry to
17650 x_ix86_isa_flags_explicit.
17651
75db85d8
RH
176522011-03-22 Richard Henderson <rth@redhat.com>
17653
17654 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17655 (alpha_option_override, direct_return): Likewise.
17656 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17657 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17658 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17659 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17660 (alpha_expand_epilogue, alpha_end_function): Likewise.
17661 (alpha_init_libfuncs): Likewise.
17662 (struct machine_function): Remove unicosmk members.
17663 (print_operand) ['t']: Remove.
17664 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17665 unicosmk_output_module_name, unicosmk_output_common,
17666 current_section_align, unicosmk_output_text_section_asm_op,
17667 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17668 unicosmk_section_type_flags, unicosmk_unique_section,
17669 unicosmk_asm_named_section, unicosmk_insert_attributes,
17670 unicosmk_output_align, unicosmk_defer_case_vector,
17671 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17672 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17673 unicosmk_output_ssib, unicosmk_add_call_info_word,
17674 unicosmk_extern_head, unicosmk_output_default_externs,
17675 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
17676 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
17677 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
17678 * config/alpha/alpha-protos.h: Update.
17679 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
17680 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
17681 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
17682 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
17683 (*mulsi_se, mulvsi3): Likewise.
17684 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
17685 (*divmodsi_internal, call, call_value, realign): Likewise.
17686 (moddi3, umoddi3): Likewise; remove duplicate expander.
17687 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
17688 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
17689 (*movdi_nofix): Remove r/U alternative.
17690 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
17691 * config/alpha/constraints.md ("U"): Remove.
17692 * config/alpha/predicates.md (call_operand"): Don't test
17693 TARGET_ABI_UNICOSMK.
17694
96e45421
JM
176952011-03-22 Joseph Myers <joseph@codesourcery.com>
17696
17697 * target.def (handle_option): Take gcc_options and
17698 cl_decoded_option pointers and location_t.
17699 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
17700 * doc/tm.texi: Regenerate.
17701 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
17702 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
17703 * lto-opts.c (lto_reissue_options): Generate option structure for
17704 targetm.handle_option call.
17705 * opts.c (target_handle_option): Update call to
17706 targetm.handle_option. Remove assertions about values now passed
17707 down to hook.
17708 * targhooks.c (default_target_handle_option): New.
17709 * targhooks.h (default_target_handle_option): Declare.
17710 * config/alpha/alpha.c: Include opts.h.
17711 (alpha_handle_option): Update to new hook interface.
17712 * config/arm/arm.c: Include opts.h.
17713 (arm_handle_option): Update to new hook interface.
17714 * config/arm/t-arm (arm.o): Update dependencies.
17715 * config/bfin/bfin.c: Include opts.h.
17716 (bfin_handle_option): Update to new hook interface.
17717 * config/cris/cris.c: Include opts.h.
17718 (cris_handle_option): Update to new hook interface.
17719 * config/frv/frv.c: Include opts.h.
17720 (frv_handle_option): Update to new hook interface.
17721 * config/i386/i386.c: Include opts.h.
17722 (ix86_handle_option): Update to new hook interface.
17723 (ix86_valid_target_attribute_inner_p): Generate option structure
17724 for call to ix86_handle_option.
17725 * config/i386/t-i386 (i386.o): Update dependencies.
17726 * config/ia64/ia64.c: Include opts.h.
17727 (ia64_handle_option): Update to new hook interface.
17728 * config/ia64/t-ia64 (ia64.o): Update dependencies.
17729 * config/iq2000/iq2000.c: Include opts.h.
17730 (iq2000_handle_option): Update to new hook interface.
17731 * config/m32c/m32c.c: Include opts.h.
17732 (m32c_handle_option): Update to new hook interface.
17733 * config/m32r/m32r.c: Include opts.h.
17734 (m32r_handle_option): Update to new hook interface.
17735 * config/m68k/m68k.c: Include opts.h.
17736 (m68k_handle_option): Update to new hook interface.
17737 * config/mep/mep.c: Include opts.h.
17738 (mep_handle_option): Update to new hook interface.
17739 * config/microblaze/microblaze.c: Include opts.h.
17740 (microblaze_handle_option): Update to new hook interface.
17741 * config/mips/mips.c: Include opts.h.
17742 (mips_handle_option): Update to new hook interface.
17743 * config/mn10300/mn10300.c: Include opts.h.
17744 (mn10300_handle_option): Update to new hook interface.
17745 * config/pa/pa.c: Include opts.h.
17746 (pa_handle_option): Update to new hook interface.
17747 * config/pdp11/pdp11.c: Include opts.h.
17748 (pdp11_handle_option): Update to new hook interface.
17749 * config/rs6000/rs6000.c: Include opts.h.
17750 (rs6000_handle_option): Update to new hook interface.
17751 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
17752 * config/rx/rx.c: Include opts.h.
17753 (rx_handle_option): Update to new hook interface.
17754 * config/s390/s390.c: Include opts.h.
17755 (s390_handle_option): Update to new hook interface.
17756 * config/score/score.c: Include opts.h.
17757 (score_handle_option): Update to new hook interface.
17758 * config/sh/sh.c: Include opts.h.
17759 (sh_handle_option): Update to new hook interface.
17760 * config/sparc/sparc.c: Include opts.h.
17761 (sparc_handle_option): Update to new hook interface.
17762 * config/v850/v850.c: Include opts.h.
17763 (v850_handle_option): Update to new hook interface.
17764
66017846
JM
177652011-03-22 Joseph Myers <joseph@codesourcery.com>
17766
17767 * gcc.c (driver_unknown_option_callback): Only permit and save
17768 unknown -Wno- options.
17769 (driver_wrong_lang_callback): Save options directly instead of via
17770 driver_unknown_option_callback.
17771
e8b97ccd
EB
177722011-03-22 Eric Botcazou <ebotcazou@adacore.com>
17773
17774 * combine.c (simplify_set): Try harder to find the best CC mode when
17775 simplifying a nested COMPARE on the RHS.
17776
ebb9f8b0
JM
177772011-03-22 Joseph Myers <joseph@codesourcery.com>
17778
17779 * config/alpha/gnu.h: Remove.
17780 * config/arc: Remove directory.
17781 * config/arm/netbsd.h: Remove.
17782 * config/arm/t-pe: Remove.
17783 * config/crx: Remove directory.
17784 * config/i386/netbsd.h: Remove.
17785 * config/m68hc11: Remove directory.
17786 * config/m68k/uclinux-oldabi.h: Remove.
17787 * config/mcore/mcore-pe.h: Remove.
17788 * config/mcore/t-mcore-pe: Remove.
17789 * config/netbsd-aout.h: Remove.
17790 * config/rs6000/gnu.h: Remove.
17791 * config/sh/sh-symbian.h: Remove.
17792 * config/sh/symbian-base.c: Remove.
17793 * config/sh/symbian-c.c: Remove.
17794 * config/sh/symbian-cxx.c: Remove.
17795 * config/sh/symbian-post.h: Remove.
17796 * config/sh/symbian-pre.h: Remove.
17797 * config/sh/t-symbian: Remove.
17798 * config/svr3.h: Remove.
17799 * config/vax/netbsd.h: Remove.
17800 * config.build: Don't handle i[34567]86-*-pe.
17801 * config.gcc: Remove handling of deprecations for most deprecated
17802 targets.
17803 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
17804 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
17805 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
17806 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
17807 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
17808 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
17809 Remove cases.
17810 * config.host: Don't handle i[34567]86-*-pe.
17811 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
17812 (ASM_SPEC32): Don't handle -mcall-gnu.
17813 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
17814 -mcall-gnu.
17815 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
17816 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
17817 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
17818 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
17819 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
17820 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
17821 conditional on SYMBIAN.
17822 * configure.ac: Don't handle powerpc*-*-gnu*.
17823 * configure: Regenerate.
17824 * doc/extend.texi (interrupt attribute): Don't mention CRX.
17825 * doc/install-old.texi (m6811, m6812): Don't mention.
17826 * doc/install.texi (arc-*-elf*): Don't document multilib option.
17827 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
17828 (m68k-uclinuxoldabi): Don't mention.
17829 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
17830 Remove.
17831 (-mcall-gnu): Remove.
17832 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
17833 families): Remove constraint documentation.
17834
999a7d80
MS
178352011-03-22 Marius Strobl <marius@FreeBSD.org>
17836
17837 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
17838 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
17839 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
17840
45540bcf
MM
178412011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
17842
17843 PR target/48226
17844 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
17845 vector when peeking at the next token for vector, don't expand the
17846 keywords.
17847
980a0ff4
GJL
178482011-03-21 Georg-Johann Lay <avr@gjlay.de>
17849
17850 * config/avr/avr-protos.h (expand_epilogue): Change prototype
17851 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
17852 * config/avr/avr.c (init_cumulative_args)
17853 (avr_function_arg_advance): Use it.
17854 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
17855 sibcall epilogues.
17856 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
17857 (avr_function_ok_for_sibcall): ...this new function.
17858 (avr_lookup_function_attribute1): New static Function.
17859 (avr_naked_function_p, interrupt_function_p)
17860 (signal_function_p, avr_OS_task_function_p)
17861 (avr_OS_main_function_p): Use it.
17862 * config/avr/avr.md ("sibcall", "sibcall_value")
17863 ("sibcall_epilogue"): New expander.
17864 ("*call_insn", "*call_value_insn"): New insn.
17865 ("call_insn", "call_value_insn"): Remove
17866 ("call", "call_value", "epilogue"): Change expander to handle
17867 sibling calls.
17868
49168734
NC
178692011-03-21 Nick Clifton <nickc@redhat.com>
17870
17871 * doc/invoke.texi (Overall Options): Move closing brace to end of
17872 options list.
17873 (Optimization Options): Add missing @gol.
17874 (Directory Options): Likewise.
17875 (i386 and x86-64 Options): Likewise.
17876 (RS6000 and PowerPC Options): Likewise.
17877 (i386 and x86-64 Windows Options): Likewise.
17878 (V850 Options): Add text missing from descriptions.
17879
bdfe906f
RH
178802011-03-22 Richard Henderson <rth@redhat.com>
17881
17882 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
17883 (avr_incoming_return_addr_rtx): New.
17884 (emit_push_byte): New.
17885 (expand_prologue): Use it. Remove incorrect dwarf annotation for
17886 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
17887 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
17888 (emit_pop_byte): New.
17889 (expand_epilogue): Use it. Pop frame pointer by bytes.
17890 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
17891 (INCOMING_RETURN_ADDR_RTX): New.
17892 (INCOMING_FRAME_SP_OFFSET): New.
17893 (ARG_POINTER_CFA_OFFSET): New.
17894 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
17895 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
17896 (pophi): Remove.
17897
d090a5aa
RH
17898 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
17899
fdf3e18a
NF
179002011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17901
17902 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17903 (FUNCTION_ARG_ADVANCE): Likewise.
17904 * tm.texi.in: Change references to them to hook references.
17905 * tm.texi: Regenerate.
17906 * targhooks.c (default_function_arg): Eliminate check for target
17907 macro.
17908 (default_function_incoming_arg): Likewise.
17909 (default_function_arg_advance): Likewise.
c78dd519 17910 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
17911 (function_arg_advance): Likewise.
17912 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17913
009d3fcf
NF
179142011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17915
17916 * tree.c (build_call_1): New function.
17917 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
17918
7bec30e1
RG
179192011-03-22 Richard Guenther <rguenther@suse.de>
17920
17921 PR tree-optimization/48228
17922 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
17923 for single-arg PHIs.
17924
0b7e851b
AB
179252011-03-22 Andrey Belevantsev <abel@ispras.ru>
17926
17927 PR rtl-optimization/48143
17928 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
17929 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
17930 sse2_cvtps2pd): Likewise.
17931
d89afca5
AK
179322011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17933
17934 * recog.c (canonicalize_change_group): Use validate_unshare_change.
17935
f471fe72
RG
179362011-03-22 Richard Guenther <rguenther@suse.de>
17937
17938 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
17939 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
17940 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
17941 and REALIGN_LOAD_EXPR.
17942 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
17943 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
17944 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
17945 DOT_PROD_EXPR case ...
17946 (expand_expr_real_2): ... here.
17947 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
17948 and REALIGN_LOAD_EXPR.
17949 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
17950 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
17951 (vect_create_epilog_for_reduction): Likewise.
17952 (vectorizable_reduction): Likewise.
17953 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
17954 * tree-vect-stmts.c (vectorizable_load): Likewise.
17955
f2f81d57
EB
179562011-03-22 Eric Botcazou <ebotcazou@adacore.com>
17957
17958 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
17959
ab081dd6
AK
179602011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17961
17962 * config/s390/s390.c (s390_delegitimize_address): Fix offset
17963 handling for PLTOFF/GOTOFF.
17964
6fd5332b
NC
179652011-03-22 Nick Clifton <nickc@redhat.com>
17966
17967 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
17968 trailing backslash from the end of the macro definition.
17969
01841ac0
AK
179702011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17971
17972 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
17973 and PLT unspecs.
17974
2ef6ce06
RS
179752011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
17976
17977 * expr.h (prepare_operand): Move to...
17978 * optabs.h (prepare_operand): ...here and change the insn code
17979 parameter from "int" to "enum insn_code".
17980 (insn_operand_matches): Declare.
17981 * expr.c (init_expr_target): Use insn_operand_matches.
17982 (compress_float_constant): Likewise.
17983 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
17984 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
17985 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
17986 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
17987 Likewise.
2ef6ce06
RS
17988 (gen_cond_trap): Likewise.
17989 (prepare_operand): Likewise. Change icode to an insn_code.
17990 (insn_operand_matches): New function.
17991 * reload.c (find_reloads_address_1): Use insn_operand_matches.
17992 * reload1.c (gen_reload): Likewise.
17993 * targhooks.c (default_secondary_reload): Likewise.
17994
9e43ad68
UB
179952011-03-21 Uros Bizjak <ubizjak@gmail.com>
17996
9a96da32
UB
17997 * config/alpha/alpha.md (unspec): New define_c_enum.
17998 (unspecv): Ditto.
17999
180002011-03-21 Uros Bizjak <ubizjak@gmail.com>
18001
18002 PR debug/48214
9e43ad68
UB
18003 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18004 between a call and its CALL_ARG_LOCATION note.
18005
31408f60
EB
180062011-03-21 Eric Botcazou <ebotcazou@adacore.com>
18007
18008 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18009
180102011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
18011
18012 PR c/42544
18013 PR c/48197
18014 * c-common.c (shorten_compare): If primopN is first sign-extended
18015 to opN and then zero-extended to result type, set primopN to opN.
18016
9dfd55f5
DJ
180172011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
18018
18019 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18020 for barrier handlers.
18021
f3c33d9d
MM
180222011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18023
18024 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18025 UNSPEC constants to be in the unspec enumeration, and redefine
18026 all UNSPECV constants to be in the unspecv enumeration, so that
18027 dumps print which unspec/unspec_volatile this is.
18028 * config/rs6000/vector.md (UNSPEC_*): Ditto.
18029 * config/rs6000/paired.md (UNSPEC_*): Ditto.
18030 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18031 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18032 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18033
18034 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18035 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18036 UNSPECV_LWSYNC, since these are used as unspec_volatile.
18037 * config/rs6000/sync.md (isync, lwsync): Ditto.
18038
ac43f774
RG
180392011-03-21 Richard Guenther <rguenther@suse.de>
18040
18041 * params.def (lto-min-partition): Fix typo.
18042
411cdbd8
RG
180432011-03-21 Richard Guenther <rguenther@suse.de>
18044
18045 PR c/47939
18046 * c-decl.c (grokdeclarator): Drop to the main variant only
18047 for array types. Drop flag_gen_aux_info check.
18048
1cd9e416
RG
180492011-03-21 Richard Guenther <rguenther@suse.de>
18050
18051 PR translation/47911
18052 * params.def (lto-partitions): Fix typo.
18053 (lto-min-partition): Fix wording.
18054
ada5ad67
AT
180552011-03-21 Andreas Tobler <andreast@fgznet.ch>
18056
18057 * config/rs6000/t-freebsd: Remove duplication from file.
18058
f9613c9a
RG
180592011-03-21 Richard Guenther <rguenther@suse.de>
18060
18061 PR middle-end/47661
18062 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18063
9bfbc1eb
RG
180642011-03-21 Richard Guenther <rguenther@suse.de>
18065
18066 PR lto/48210
18067 * params.def (lto-partitions): Require at least 1 partition.
18068
a2268084
RO
180692011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18070
18071 * gthr-solaris.h: Remove.
18072 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18073 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18074 (LIB_SPEC): Likewise.
18075 * config/sol2.opt (threads): Remove.
9e43ad68 18076 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
18077 (sparc*-*-solaris2*): Likewise.
18078 * configure.ac (enable_threads): Enable solaris support.
18079 * configure: Regenerate.
9e43ad68 18080 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
18081 * doc/install.texi (Configuration, --enable-threads=lib): Remove
18082 solaris.
18083
c43d9a1b
RO
180842011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18085
18086 * config.gcc: Obsolete *-*-solaris2.8*.
18087 * doc/install.texi (Specific, *-*-solaris2*): Document it.
18088
084239f4
RO
180892011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18090
18091 PR bootstrap/48135
18092 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18093 reference. Solaris 8 perl works.
18094
64cadbe7
RO
180952011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18096
18097 PR bootstrap/48135
18098 * doc/install.texi (Prerequisites): Move jar etc. up.
18099 Explain support library version requirements.
18100
eb975109
RO
181012011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18102
18103 PR bootstrap/48135
18104 * doc/install.texi (Prerequisites): Move Perl to build
18105 requirements. Always necessary on Solaris 2 with Sun ld.
18106
8a509ffd
RO
181072011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18108
18109 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18110 binutils 2.21.
18111 (Specific, i?86-*-solaris2.[89]): Likewise.
18112 (Specific, i?86-*-solaris2.10): Likewise.
18113 (Specific, mips-sgi-irix6): Likewise.
18114 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18115 Update for binutils 2.21.
18116
8fbc58a1
RO
181172011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18118
18119 * configure.ac (gcc_cv_lto_plugin): Fix typo.
18120 Allow -fuse-linker-plugin for non-default plugin linker.
18121 * configure: Regenerate.
18122
7e84ad0b
NP
181232011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
18124
18125 PR bootstrap/48167
18126 * gengtype.c (files_rules): Added rule for cp/parser.h.
18127
2f36e14b
JJ
181282011-03-21 Jakub Jelinek <jakub@redhat.com>
18129
18130 PR target/48213
18131 * config/s390/s390.c (s390_delegitimize_address): Don't call
18132 lowpart_subreg if orig_x has BLKmode.
18133
62d784f7
KT
181342011-03-21 Kai Tietz <ktietz@redhat.com>
18135
18136 PR target/12171
9e43ad68
UB
18137 * doc/plugins.texi: Adjust documentation for plugin register_callback.
18138 * tree.h (attribute_spec): Add new member affects_type_identity.
18139 * attribs.c (empty_attribute_table): Adjust attribute_spec
18140 initializers.
62d784f7
KT
18141 * config/alpha/alpha.c: Likewise.
18142 * config/arc/arc.c: Likewise.
18143 * config/arm/arm.c: Likewise.
18144 * config/avr/avr.c: Likewise.
18145 * config/bfin/bfin.c: Likewise.
18146 * config/crx/crx.c: Likewise.
18147 * config/darwin.h: Likewise.
18148 * config/h8300/h8300.c: Likewise.
18149 * config/i386/cygming.h: Likewise.
18150 * config/i386/i386.c: Likewise.
18151 * config/ia64/ia64.c: Likewise.
18152 * config/m32c/m32c.c: Likewise.
18153 * config/m32r/m32r.c: Likewise.
18154 * config/m68hc11/m68hc11.c: Likewise.
18155 * config/m68k/m68k.c: Likewise.
18156 * config/mcore/mcore.c: Likewise.
18157 * config/mep/mep.c: Likewise.
18158 * config/microblaze/microblaze.c: Likewise.
18159 * config/mips/mips.c: Likewise.
18160 * config/rs6000/rs6000.c: Likewise.
18161 * config/rx/rx.c: Likewise.
18162 * config/sh/sh.c: Likewise.
18163 * config/sol2.h: Likewise.
18164 * config/sparc/sparc.c: Likewise.
18165 * config/spu/spu.c: Likewise.
18166 * config/stormy16/stormy16.c: Likewise.
18167 * config/v850/v850.c: Likewise.
18168
54833ec0
CLT
181692011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
18170
18171 * simplify-rtx.c (simplify_binary_operation_1): Handle
18172 (xor (and A B) C) case when B and C are both constants.
18173
14a41392
MX
181742011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
18175
18176 * tree-dfa.c (add_referenced_var): Fix typo in comment.
18177
806c3492
EB
181782011-03-20 Eric Botcazou <ebotcazou@adacore.com>
18179
18180 PR bootstrap/48168
18181 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18182
65e0a0f3
JJ
181832011-03-20 Jakub Jelinek <jakub@redhat.com>
18184
18185 PR rtl-optimization/48156
18186 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18187 assume df and df_lr are not NULL.
18188
b6a75dda
RR
181892011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18190
18191 PR debug/48023
18192 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18193 between a call and its CALL_ARG_LOCATION note.
18194
5969b52d
KK
181952011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
18196
18197 PR debug/48178
18198 * config/sh/sh.c (find_barrier): Don't emit a constant pool
18199 between a call and its corresponding CALL_ARG_LOCATION note.
18200
f773c2bd
AS
182012011-03-19 Anatoly Sokolov <aesok@post.ru>
18202
18203 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18204 instead of loop. Use HARD_REGISTER_NUM_P predicate.
18205 * haifa-sched.c (setup_ref_regs): Ditto.
18206 * caller-save.c (add_used_regs_1): Ditto.
18207 * dse.c (look_for_hardregs): Ditto.
18208 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18209 * sched-rgn.c (check_live_1): Ditto.
18210
8bf872f9
JM
182112011-03-18 Joseph Myers <joseph@codesourcery.com>
18212
18213 * c-decl.c (diagnose_mismatched_decls): Give an error for
18214 redefining a typedef with variably modified type.
18215
ff8e2159
JM
182162011-03-18 Joseph Myers <joseph@codesourcery.com>
18217
18218 * c-decl.c (grokfield): Don't allow typedefs for structures or
18219 unions with no tag by default.
18220 * doc/extend.texi (Unnamed Fields): Update.
18221
16cc4440
UB
182222011-03-18 Uros Bizjak <ubizjak@gmail.com>
18223
18224 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18225 Rewrite using indirect functions.
18226 (lwp_slwpcb): Ditto.
18227 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18228 (avx_vinsertf128<mode>): Ditto.
18229
e101e12e
AK
182302011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18231
18232 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18233 unspecs.
18234
4627c7fb
AK
182352011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18236
18237 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 18238 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 18239
2d36b47f
MK
182402011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
18241
18242 PR rtl-optimization/48170
18243 * gcse.c (hoist_code): Remove bogus asserts.
18244
2a3d7659
JL
182452011-03-18 Georg-Johann Lay <avr@gjlay.de>
18246
18247 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18248 computation for prologue/epilogue.
18249
34c3ef05
RO
182502011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18251
18252 * Makefile.in (check-consistency): Remove.
18253
81f2b976
JJ
182542011-03-18 Jakub Jelinek <jakub@redhat.com>
18255
18256 PR debug/48176
18257 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18258 arange_table_in_use is 0, but either text_section_used or
18259 cold_text_section_used is true. Don't call it if
18260 !info_section_emitted.
18261
68fd7765
AS
182622011-03-18 Anatoly Sokolov <aesok@post.ru>
18263
18264 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18265 FUNCTION_VALUE_REGNO_P): Remove.
18266 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18267 Remove.
18268 * config/avr/avr.c (avr_ret_register): Make static inline.
18269 (avr_function_value_regno_p): New function.
18270 (avr_libcall_value): Make static. Add 'func' argument.
18271 (avr_function_value): Make static. Rename 'func' argument to
18272 'fn_decl_or_type', forward it to avr_libcall_value. Call
18273 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 18274 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 18275
b4ef8aac
JM
182762011-03-18 Jason Merrill <jason@redhat.com>
18277
18278 PR c++/23372
18279 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18280
09a52fc3
RG
182812011-03-18 Richard Guenther <rguenther@suse.de>
18282
18283 * doc/install.texi (--enable-gold): Remove.
18284 (--with-plugin-ld): Document.
18285 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18286
2a3d7659 182872011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
18288
18289 PR middle-end/47790
18290 * expr.c (optimize_bitfield_assignment_op): Revamp to work
18291 again after expansion changes.
18292
2abbb0fe
CLT
182932011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
18294
18295 * combine.c (try_combine): Do simplification only call of
18296 subst() on i2 even when i1 is present. Update comments.
18297
2efd0aa6
KK
182982011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
18299
18300 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18301 and UNSPEC_PCREL_SYMOFF.
18302
30a49b23
AK
183032011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18304
18305 * config/s390/s390.md: Use define_c_enum for the unspec constant
18306 definitions.
18307
419e1853
JJ
183082011-03-18 Richard Henderson <rth@redhat.com>
18309 Jakub Jelinek <jakub@redhat.com>
18310
18311 PR bootstrap/48161
18312 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18313 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18314
37875856
L
183152011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18316
18317 PR middle-end/47725
18318 * combine.c (cant_combine_insn_p): Don't check zero/sign
18319 extended hard registers.
18320
76069764
L
183212011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18322
18323 PR middle-end/47725
18324 * combine.c (cant_combine_insn_p): Check zero/sign extended
18325 hard registers.
18326
24da2019
AS
183272011-03-17 Anatoly Sokolov <aesok@post.ru>
18328
18329 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18330 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18331 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18332 Change return type to bool.
18333 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18334
a82ff31f
JJ
183352011-03-17 Jakub Jelinek <jakub@redhat.com>
18336
8b29c87a
JJ
18337 PR debug/48163
18338 * var-tracking.c (prepare_call_arguments): If CALL target
18339 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18340 pc instead of looking it up using cselib_lookup and use
18341 Pmode for it if x has VOIDmode.
18342 * dwarf2out.c (gen_subprogram_die): If also both first and
18343 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18344
a82ff31f
JJ
18345 PR debug/48163
18346 * function.c (assign_parms): For data.passed_pointer parms
18347 use MEM of data.entry_parm instead of data.entry_parm itself
18348 as DECL_INCOMING_RTL.
18349 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18350 also when passed and declared mode is the same, DECL_RTL
18351 is a MEM with pseudo as address and DECL_INCOMING_RTL is
18352 a MEM too.
18353
82ce305c
JL
183542011-03-16 Jeff Law <law@redhat.com>
18355
18356 PR rtl-optimization/37273
18357 * ira-costs.c (scan_one_insn): Detect constants living in memory and
18358 handle them like argument loads from stack slots. Do not double
18359 count memory for memory constants and argument loads from stack slots.
18360
fe58e02b
L
183612011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18362
18363 PR debug/48160
18364 * var-tracking.c (prepare_call_arguments): Check SUBREG.
18365
6fc4dbc7
L
183662011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18367
18368 PR target/48171
18369 * config/i386/i386.opt: Add Save to -mavx and -mfma.
18370
db3ed0b3
JJ
183712011-03-17 Jakub Jelinek <jakub@redhat.com>
18372
8054a389
JJ
18373 PR bootstrap/48153
18374 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18375 if dwarf_strict.
18376 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18377 Clear call_arg_locations and call_arg_loc_last always.
18378
db3ed0b3
JJ
18379 PR middle-end/48152
18380 * var-tracking.c (prepare_call_arguments): If argument needs to be
18381 passed by reference, adjust argtype and mode.
18382
1bce4ff3
RG
183832011-03-17 Richard Guenther <rguenther@suse.de>
18384
18385 PR middle-end/48134
18386 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
18387 a value make sure to fold the statement.
18388
7c71147d
CLT
183892011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
18390
18391 PR target/43872
18392 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
18393 return condition with !cfun->calls_alloca.
18394
0e1ee172
RG
183952011-03-17 Richard Guenther <rguenther@suse.de>
18396
18397 PR bootstrap/48148
18398 * lto-cgraph.c (input_overwrite_node): Clear the abstract
18399 origin for decls in other ltrans units.
18400 (input_varpool_node): Likewise.
18401
f8bce518
RG
184022011-03-17 Richard Guenther <rguenther@suse.de>
18403
18404 PR middle-end/48165
18405 * tree-object-size.c (compute_object_offset): Properly return
18406 the offset operand of MEM_REFs as sizetype.
18407
1b6fa860
JJ
184082011-03-17 Jakub Jelinek <jakub@redhat.com>
18409
dabd47e7
JJ
18410 PR rtl-optimization/48141
18411 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18412 * dse.c: Include params.h.
18413 (active_local_stores_len): New variable.
18414 (add_wild_read, dse_step1): Clear it when setting active_local_stores
18415 to NULL.
18416 (record_store, check_mem_read_rtx): Decrease it when removing
18417 from the chain.
18418 (scan_insn): Likewise. Increase it when adding to chain, if it
18419 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18420 set active_local_stores to NULL before the addition.
18421 * Makefile.in (dse.o): Depend on $(PARAMS_H).
18422
1b6fa860
JJ
18423 PR rtl-optimization/48141
18424 * dse.c (record_store): If no positions are needed in an insn
18425 that cannot be deleted, at least unchain it from active_local_stores.
18426
7b5cb7d6
DS
184272011-03-16 Dodji Seketeli <dodji@redhat.com>
18428
18429 PR debug/47510
18430 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18431 (lookup_type_die_strip_naming_typedef): ... here.
18432 (get_context_die): Use it.
18433 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18434 the anonymous struct named by the naming typedef.
18435
585e9d9d
L
184362011-03-16 H.J. Lu <hongjiu.lu@intel.com>
18437
18438 PR target/48154
18439 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18440 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18441
6261ab0e
JL
184422011-03-16 Jeff Law <law@redhat.com>
18443
18444 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 18445 check for operands of conditional. Allow type to be a pointer.
6261ab0e 18446
0b0081ec
RG
184472011-03-16 Richard Guenther <rguenther@suse.de>
18448
18449 PR tree-optimization/48149
18450 * fold-const.c (fold_binary_loc): Fold
18451 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18452
64a3d647
RG
184532011-03-16 Richard Guenther <rguenther@suse.de>
18454
18455 PR tree-optimization/26134
18456 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18457 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18458 (non_rewritable_mem_ref_base): Handle complex type component
18459 accesses, constrain offsets for vector and complex extracts
18460 more properly.
18461
ef13324e
RG
184622011-03-16 Richard Guenther <rguenther@suse.de>
18463
18464 PR tree-optimization/48146
18465 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18466 operands avoiding the need for renaming.
18467
f0eddb90
RG
184682011-03-16 Richard Guenther <rguenther@suse.de>
18469
18470 * gimple-fold.c (maybe_fold_reference): Open-code relevant
18471 constant folding. Move MEM_REF canonicalization first.
18472 Rely on fold_const_aggregate_ref for initializer folding.
18473 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18474
e42348b8
JJ
184752011-03-16 Jakub Jelinek <jakub@redhat.com>
18476
29f10e71
JJ
18477 PR middle-end/48136
18478 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18479 arg0/arg1 or their arguments are always fold converted to matching
18480 types.
18481
e42348b8
JJ
18482 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18483 to nargs.
18484
55b46574
RO
184852011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18486
18487 PR lto/46944
18488 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18489 Handle in-tree gold.
18490 (ld_vers): Extract binutils version for gold.
18491 (gcc_cv_ld_hidden): Handle gold here.
18492 (gcc_cv_lto_plugin): Determine level of linker plugin support.
18493 * configure: Regenerate.
18494 * config.in: Regenerate.
18495 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18496 -fuse-linker-plugin otherwise.
18497 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
18498 (LINK_COMMAND_SPEC): Use it.
18499 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18500
2b1c5433
JJ
185012011-03-16 Jakub Jelinek <jakub@redhat.com>
18502
c2969d8e
JJ
18503 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18504 * calls.c: Remove debug.h include.
18505 (emit_call_1): Don't call virtual_call_token debug hook.
18506 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18507 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18508 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18509 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18510 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18511 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18512 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18513 dwarf2out_virtual_call): Remove.
18514 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18515 copy_call_info and virtual_call hooks.
18516 (dwarf2out_init): Don't initialize vcall_insn_table,
18517 debug_dcall_section and debug_vcall_section.
18518 (prune_unused_types): Don't mark nodes from dcall_table.
18519 (dwarf2out_finish): Don't output dcall or vcall tables.
18520 * final.c (final_scan_insn): Don't call direct_call or
18521 virtual_call debug hooks.
18522 * debug.h (struct gcc_debug_hooks): Remove direct_call,
18523 virtual_call_token, copy_call_info and virtual_call hooks.
18524 (debug_nothing_uid): Remove prototype.
18525 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18526 copy_call_info and virtual_call hooks.
18527 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18528 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18529 * debug.c (do_nothing_debug_hooks): Likewise.
18530 (debug_nothing_uid): Remove.
18531 * doc/invoke.texi (-fenable-icf-debug): Remove.
18532 * common.opt (-fenable-icf-debug): Likewise.
18533
325f5379
JJ
18534 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18535 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18536 call's MEM. Handle functions returning aggregate through a hidden
18537 first pointer. For virtual calls add clobbered pc to call arguments
18538 chain.
18539 * dwarf2out.c (gen_subprogram_die): Emit
18540 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18541 can't be emitted.
18542
a58a8e4b
JJ
18543 PR debug/45882
18544 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18545 * rtl.h (ENTRY_VALUE_EXP): Define.
18546 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18547 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18548 * print-rtl.c (print_rtx): Likewise.
18549 * gengtype.c (adjust_field_rtx_def): Likewise.
18550 * var-tracking.c (vt_add_function_parameter): Adjust
18551 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18552 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18553 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18554 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18555 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18556
2b1c5433
JJ
18557 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18558 Call var_location debug hook even on CALL_INSNs.
18559 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18560 * rtl.def (ENTRY_VALUE): New.
18561 * dwarf2out.c: Include cfglayout.h.
18562 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18563 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18564 (struct call_arg_loc_node): New type.
18565 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18566 tail_call_site_count): New variables.
18567 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18568 DW_TAG_GNU_call_site_parameter.
18569 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18570 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18571 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18572 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18573 and DW_AT_GNU_all_source_call_sites.
18574 (mem_loc_descriptor): Handle ENTRY_VALUE.
18575 (add_src_coords_attributes): Don't add enything if
18576 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18577 (dwarf2out_abstract_function): Save and clear call_arg_location,
18578 call_site_count and tail_call_site_count around dwarf2out_decl call.
18579 (gen_call_site_die): New function.
18580 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18581 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18582 (dwarf2out_function_decl): Clear call_arg_locations,
18583 call_arg_loc_last, set call_site_count and tail_call_site_count
18584 to -1 and free block_map.
18585 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18586 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
18587 followed by any real instructions.
18588 (dwarf2out_begin_function): Set call_site_count and
18589 tail_call_site_count to 0.
18590 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18591 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18592 attempt to force a DIE for it and worst case remove the attribute.
18593 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18594 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18595 the decl itself.
18596 * var-tracking.c: Include tm_p.h.
18597 (vt_stack_adjustments): For calls call note_register_arguments.
18598 (argument_reg_set): New variable.
18599 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18600 ensure the VALUE is resolved.
18601 (call_arguments): New variable.
18602 (prepare_call_arguments): New function.
18603 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18604 (struct expand_loc_callback_data): Add ignore_cur_loc field.
18605 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18606 always use the best expression.
18607 (vt_expand_loc): Add ignore_cur_loc argument.
18608 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18609 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18610 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18611 note for all calls.
18612 (vt_add_function_parameter): Use cselib_lookup_from_insn.
18613 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18614 argument. Don't call cselib_preserve_only_values and
18615 cselib_reset_table.
18616 (note_register_arguments): New function.
18617 (vt_initialize): Compute argument_reg_set. Call
18618 vt_add_function_parameters before processing basic blocks instead of
18619 afterwards. For calls call prepare_call_arguments before calling
18620 cselib_process_insn.
18621 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18622 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18623 (var-tracking.o): Depend on $(TM_P_H).
18624 * cfglayout.h (insn_scope): New prototype.
18625 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18626 * cfglayout.c (insn_scope): No longer static.
18627 * insn-notes.def (CALL_ARG_LOCATION): New.
18628 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18629 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18630 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18631 nothing for DECL_EXTERNAL BLOCK_VARS.
18632
9ef13bd0
AM
186332011-03-16 Alan Modra <amodra@gmail.com>
18634
18635 PR target/45844
18636 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18637 create invalid offset address for vsx splat insn.
18638 * config/rs6000/predicates.md (splat_input_operand): New.
18639 * config/rs6000/vsx.md (vsx_splat_*): Use it.
18640
56b67510
XDL
186412011-03-15 Xinliang David Li <davidxl@google.com>
18642
18643 PR c/47837
18644 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18645 (normalize_preds): New function.
18646 (is_use_properly_guarded): Normalize def predicates.
18647
80fffdef
RR
186482011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18649
732f37c6 18650 PR target/46788
80fffdef
RR
18651 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18652 in the output template.
18653
930672ad
RG
186542011-03-15 Richard Guenther <rguenther@suse.de>
18655
18656 PR middle-end/47650
18657 * tree-pretty-print.c (dump_function_declaration): Properly
18658 dump unprototyped and varargs function types.
18659
c7ee7b45
RG
186602011-03-15 Richard Guenther <rguenther@suse.de>
18661
18662 PR tree-optimization/13954
18663 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18664 and friends.
18665
b2ad5e37
RG
186662011-03-15 Richard Guenther <rguenther@suse.de>
18667
18668 PR tree-optimization/48037
18669 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18670 selects into BIT_FIELD_REFs.
18671 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18672 vector select.
18673
7ee93d4e
JJ
186742011-03-15 Jakub Jelinek <jakub@redhat.com>
18675
18676 PR tree-optimization/48129
18677 * builtins.c (fold_builtin_snprintf): Convert to type of
18678 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18679 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18680
e106efc7
RG
186812011-03-15 Richard Guenther <rguenther@suse.de>
18682
18683 PR tree-optimization/41490
18684 * tree-ssa-dce.c (propagate_necessity): Handle returns without
18685 value but with VUSE.
18686 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
18687 return statements.
18688 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
18689 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
18690 * tree-tailcall.c (find_tail_calls): Ignore returns.
18691
17dea42f
RG
186922011-03-15 Richard Guenther <rguenther@suse.de>
18693
18694 PR middle-end/48031
18695 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
18696 or variable-indexed array accesses when in gimple form.
18697
01c77a60
RG
186982011-03-15 Richard Guenther <rguenther@suse.de>
18699
16cc4440 18700 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 18701
77b0791e
AM
187022011-03-15 Alan Modra <amodra@gmail.com>
18703
18704 PR target/48032
18705 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
18706 presume symbol_refs without a symbol_ref_decl are suitably
18707 aligned, nor other trees we may see here. Handle anchor symbols.
18708 (legitimate_constant_pool_address_p): Comment. Add mode param.
18709 Check cmodel=medium addresses. Adjust all calls.
18710 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
18711 creating cmodel=medium optimized access to locals.
18712 * config/rs6000/constraints.md (R): Pass QImode to
18713 legitimate_constant_pool_address_p.
18714 * config/rs6000/predicates.md (input_operand): Pass mode to
18715 legitimate_constant_pool_address_p.
18716 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
18717 Update prototype.
18718
35f61ba4
MM
187192011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18720
18721 PR target/48053
18722 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
18723 64-bit constants being loaded into registers other than GPRs such
18724 as loading 0 into a VSX register.
18725
07332e6d
RO
187262011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18727
16cc4440 18728 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 18729
de888d90
JJ
187302011-03-14 Jakub Jelinek <jakub@redhat.com>
18731
ba3ceb2d
JJ
18732 PR middle-end/47917
18733 * builtins.c (fold_builtin_snprintf): New function.
18734 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
18735 (fold_builtin_4): Likewise.
18736
2e64f8b8
JJ
18737 PR middle-end/38878
18738 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
18739 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
18740 and C - X == X also strip nops from +/-/p+ operand.
18741 When optimizing -X == C, fold C to arg0's type.
18742
de888d90
JJ
18743 PR debug/47946
18744 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
18745 emit it as add_AT_int instead of add_AT_unsigned.
18746
187472011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
18748
18749 * unwind-dw2.c: Include sys/sdt.h if it exists.
18750 (_Unwind_DebugHook): Use STAP_PROBE2.
18751 * config.in, configure: Rebuild.
18752 * configure.ac: Check for sys/sdt.h.
18753
d34abfd2
UB
187542011-03-14 Uros Bizjak <ubizjak@gmail.com>
18755
18756 * config/i386/i386.md (ROUND_FLOOR): New constant.
18757 (ROUND_CEIL): Ditto.
18758 (ROUND_TRUNC): Ditto.
18759 (ROUND_MXCSR): Ditto.
18760 (ROUND_NO_EXC): Ditto.
18761 (rint<mode>2): Use new defines instead of numerical constants.
18762 (floor<mode>2): Ditto.
18763 (ceil<mode>2): Ditto.
18764 (btrunc<mode>2): Ditto.
18765 * config/i386/i386-builtin-types.def: Define ROUND function type
18766 aliases.
18767 * config/i386/i386.c (enum ix86_builtins): Add
18768 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
18769 (struct builtin_description): Add
18770 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
18771 (ix86_expand_sse_round): New static function.
18772 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
18773 function types.
18774 (ix86_builtin_vectorized_function): Handle
18775 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18776
87f9e23d
TT
187772011-03-14 Tom Tromey <tromey@redhat.com>
18778
18779 * c-parser.c (c_parser_asm_string_literal): Clear
18780 warn_overlength_strings.
18781
b3ab9ea2
TT
187822011-03-14 Tom Tromey <tromey@redhat.com>
18783
18784 * c-parser.c (disable_extension_diagnostics): Save
18785 warn_overlength_strings.
18786 (restore_extension_diagnostics): Restore warn_overlength_strings.
18787
6bd73dd8
JJ
187882011-03-14 Jakub Jelinek <jakub@redhat.com>
18789
18790 * BASE-VER: Change to 4.7.0.
18791
7f4d6e1b
RG
187922011-03-14 Richard Guenther <rguenther@suse.de>
18793
18794 PR middle-end/48098
18795 * tree.c (build_vector_from_val): Adjust assert to requirements
18796 and reality.
18797
c6104ef1
JJ
187982011-03-14 Jakub Jelinek <jakub@redhat.com>
18799
18800 PR bootstrap/48102
d34abfd2 18801 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 18802
dfa95e19
AT
188032011-03-14 Andreas Tobler <andreast@fgznet.ch>
18804
f60c2554 18805 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
18806 terms of target_flags_explicit. Adjust copyright year.
18807
18808 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
18809 * config/rs6000/t-freebsd: New file. Add override for
18810 LIB2FUNCS_EXTRA.
18811
bb322018
CD
188122011-03-13 Chris Demetriou <cgd@google.com>
18813
18814 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
18815 (-fno-diagnostics-show-option): this, to reflect current default.
18816 (-Werror=): Update text about -fno-diagnostics-show-option.
18817
12b1c80b
PB
188182011-03-12 Peter Bergner <bergner@vnet.ibm.com>
18819
18820 PR target/48053
18821 * config/rs6000/predicates.md (easy_vector_constant_add_self,
18822 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
18823 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
18824 mode is not V2DImode or V2DFmode.
18825 (vspltis_constant): Do not handle V2DImode and V2DFmode.
18826 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
18827 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
18828 registers to 0.
18829 (movdi_internal64): Likewise.
18830
57d598f7
SP
188312011-03-12 Sebastian Pop <sebastian.pop@amd.com>
18832
18833 PR tree-optimization/47127
18834 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
18835 parameter.
18836 (set_cloog_options): Same.
18837 (scop_to_clast): Same.
18838 (print_clast_stmt): Do not call cloog_state_malloc and
18839 cloog_state_free.
18840 (print_generated_program): Same.
18841 (gloog): Same.
18842 * graphite-clast-to-gimple.h (cloog_state): Declared.
18843 (scop_to_clast): Adjust declaration.
18844 * graphite.c (cloog_state): Defined here.
18845 (graphite_initialize): Call cloog_state_malloc.
18846 (graphite_finalize): Call cloog_state_free.
18847
f231b5ff
JM
188482011-03-11 Jason Merrill <jason@redhat.com>
18849
18850 * attribs.c (lookup_attribute_spec): Take const_tree.
18851 * tree.h: Adjust.
18852
6a4e2bd5
JM
188532011-03-11 Joseph Myers <joseph@codesourcery.com>
18854
18855 * config/sparc/sparc.c (sparc_option_override): Use
18856 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
18857
a758fd67
RG
188582011-03-11 Richard Guenther <rguenther@suse.de>
18859
18860 PR tree-optimization/48067
18861 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
18862 multiplication result will be only used once on the target
18863 stmt.
18864
03dfda54
RG
188652011-03-11 Richard Guenther <rguenther@suse.de>
18866
18867 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
18868
5f11a50a
RG
188692011-03-11 Richard Guenther <rguenther@suse.de>
18870
18871 PR lto/48073
18872 * tree.c (find_decls_types_r): Do not walk types only reachable
18873 from IDENTIFIER_NODEs.
18874
4074f163
JJ
188752011-03-11 Jakub Jelinek <jakub@redhat.com>
18876
18877 PR middle-end/48044
18878 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
18879 all vnode->force_output nodes as needed.
18880
30f7cdcd
JM
188812011-03-11 Jason Merrill <jason@redhat.com>
18882
18883 PR c++/48069
18884 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
18885 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
18886
62ecfeb8
MJ
188872011-03-11 Martin Jambor <mjambor@suse.cz>
18888
18889 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
18890 cgraph_node.
18891
e89e03ab
JJ
188922011-03-11 Jakub Jelinek <jakub@redhat.com>
18893
18894 PR tree-optimization/48063
18895 * ipa-inline.c (cgraph_decide_inlining): Don't try to
18896 inline functions called once if !tree_can_inline_p (node->callers).
18897
efbe978b 188982011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 18899
efbe978b
EB
18900 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
18901 extra_objs.
9d6193a7
CL
18902 * config/score/score3.c: Delete.
18903 * config/score/score3.h: Delete.
18904 * config/score/mul-div.S: Delete.
18905 * config/score/sfp-machine.h: Add new file.
18906 * config/score/constraints.md: Add new file.
18907 * config/score/t-score-softfp: Add new file.
efbe978b 18908 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
18909 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
18910 (score7_extra_constraint): Delete.
efbe978b 18911 (score7_option_override): Remove unused code.
9d6193a7
CL
18912 * config/score/score.c: Remove score3 and score5 define and code.
18913 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 18914 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
18915 * config/score/score.opt: Remove score3 and score5 options.
18916
5de27cca
JDA
189172011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18918
18919 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
18920 when _HPUX_SOURCE is defined.
18921 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
18922
18d92053
JM
189232011-03-10 Jason Merrill <jason@redhat.com>
18924
18925 PR c++/48029
18926 * stor-layout.c (layout_type): Don't set structural equality
18927 on arrays of incomplete type.
18928 * tree.c (type_hash_eq): Handle comparing them properly.
18929
67a2f76d
JJ
189302011-03-10 Jakub Jelinek <jakub@redhat.com>
18931
18932 PR debug/48043
18d92053 18933 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
18934 result mode matches original rtl mode.
18935
d845b2f9
NC
189362011-03-10 Nick Clifton <nickc@redhat.com>
18937
18938 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 18939 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 18940
db7ec035
JJ
189412011-03-09 Jakub Jelinek <jakub@redhat.com>
18942
18943 PR rtl-optimization/47866
18944 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
18945 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
18946 if target wasn't scalar.
18947 * function.c (assign_stack_temp_for_type): Assert that neither
18948 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
18949 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
18950 macro.
18951 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
18952
5d304e47
AK
189532011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18954
18955 * config/s390/s390-protos.h (s390_label_align): New prototype.
18956 * config/s390/s390.c (s390_label_align): New function.
18957 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
18958
93b826f0
MM
189592011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
18960
18961 PR target/47755
18962 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
18963 V2DI/V2DF constants. Only all 0's or all 1's are easy.
18964 (output_vec_const_move): Ditto.
18965
ef78aed6
AS
189662011-03-08 Anatoly Sokolov <aesok@post.ru>
18967
18968 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
18969 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
18970 * config/mips/mips.c (mips_preferred_reload_class): Make static.
18971 Change 'rclass' argument and result type to reg_class_t.
18972 (TARGET_PREFERRED_RELOAD_CLASS): Define.
18973
5f892aa0
GJL
189742011-03-08 Georg-Johann Lay <avr@gjlay.de>
18975
9e43ad68
UB
18976 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
18977 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
18978 (TARGET_MEMORY_MOVE_COST): Define.
18979 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 18980
32bd2409
JJ
189812011-03-08 Jakub Jelinek <jakub@redhat.com>
18982
530a4800
JJ
18983 PR debug/47881
18984 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
18985 removed anything.
18986
32bd2409
JJ
18987 PR tree-optimization/48022
18988 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
18989 for EQ/NE_EXPR.
18990
c7148991
JJ
189912011-03-07 Jakub Jelinek <jakub@redhat.com>
18992
18993 PR debug/47991
18994 * var-tracking.c (find_use_val): Return NULL for
18995 cui->sets && cui->store_p BLKmode MEMs.
18996
43070a6e
AS
189972011-03-07 Anatoly Sokolov <aesok@post.ru>
18998
18999 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19000 Remove.
19001 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19002 xstormy16_print_operand_address): Remove.
19003 * config/stormy16/stormy16.c (xstormy16_print_operand,
19004 xstormy16_print_operand_address): Make static.
19005 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19006
efbe978b 190072011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
19008
19009 PR target/47862
19010 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19011 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19012 before definition.
19013
cec8ac0b
ZD
190142011-03-07 Zdenek Dvorak <ook@ucw.cz>
19015
19016 PR bootstrap/48000
19017 * cfgloopmanip.c (fix_bb_placements): Return immediately
19018 if FROM is BASE_LOOP's header.
19019
59527282
PW
190202011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
19021
19022 * gimplify.c (gimplify_function_tree): Fix building calls
19023 to __builtin_return_address.
19024
617718f7
AM
190252011-03-07 Alan Modra <amodra@gmail.com>
19026
19027 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19028 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19029 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19030 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19031 return_mode args.
19032 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19033 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19034 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19035 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19036 * config/rs6000/rs6000.c
19037 (rs6000_elf_end_indicate_exec_stack): Rename to..
19038 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
19039 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
19040 (rs6000_file_start): ..here.
19041 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19042 file scope variables.
19043 (call_ABI_of_interest): New function.
19044 (init_cumulative_args): Set above vars when function return value
19045 is a float, vector, or small struct.
19046 (rs6000_function_arg_advance_1): Likewise for function args.
19047 (rs6000_va_start): Set rs6000_passes_float if variable arg function
19048 references float args.
19049
38528d50
MX
190502011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
19051
19052 * doc/cfg.texi: Remove "See" before @ref.
19053 * doc/invoke.texi: Likewise.
19054
f42cf4f4
JM
190552011-03-05 Jason Merrill <jason@redhat.com>
19056
19057 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19058
804a304d
AG
190592011-03-05 Anthony Green <green@moxielogic.com>
19060
19061 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19062
634ee309
ZD
190632011-03-05 Zdenek Dvorak <ook@ucw.cz>
19064
19065 PR rtl-optimization/47899
19066 * cfgloopmanip.c (fix_bb_placements): Fix first argument
19067 to flow_loop_nested_p when moving the loop upward.
19068
6fe471c8
RE
190692011-03-05 Richard Earnshaw <rearnsha@arm.com>
19070
19071 PR target/47719
19072 * arm.md (movhi_insn_arch4): Accept any immediate constant.
19073
cc58ceee
JJ
190742011-03-05 Jakub Jelinek <jakub@redhat.com>
19075
19076 PR tree-optimization/47967
19077 * ipa-cp.c (build_const_val): Return NULL instead of creating
19078 VIEW_CONVERT_EXPR for mismatching sizes.
19079 (ipcp_create_replace_map): Return NULL if build_const_val failed.
19080 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19081 give up on versioning.
19082
ea868305
AM
190832011-03-05 Alan Modra <amodra@gmail.com>
19084
19085 PR target/47986
19086 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19087 full cmodel medium/large lo_sum + high addresses.
19088
bc6ce334
AK
190892011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19090
19091 * config/s390/s390.c (s390_decompose_address): Reject non-literal
19092 pool references in UNSPEC_LTREL_OFFSET.
19093
87e7b310
JH
190942011-03-04 Jan Hubicka <jh@suse.cz>
19095
19096 PR lto/47497
19097 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19098 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
19099 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19100 Add node pointers.
87e7b310
JH
19101 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19102 cgraph_add_thunk): Add node pointers.
19103 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19104 associated to right node.
19105 (input_node): Update use of cgraph_same_body_alias
19106 and cgraph_add_thunk.
19107
d9c64246
CF
191082011-03-04 Changpeng Fang <changpeng.fang@amd.com>
19109
19110 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
19111 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19112 modes when the flag -mprefer-avx128 is on.
d9c64246 19113
08707076
RS
191142011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
19115
19116 * dwarf2out.c (compare_loc_operands): Fix address handling.
19117
52517c81
AM
191182011-03-04 Alan Modra <amodra@gmail.com>
19119
19120 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19121
b147c5b9
RG
191222011-03-04 Richard Guenther <rguenther@suse.de>
19123
19124 PR middle-end/47968
19125 * expmed.c (extract_bit_field_1): Prefer vector modes that
19126 vec_extract patterns can handle.
19127
8750672f
RG
191282011-03-04 Richard Guenther <rguenther@suse.de>
19129
19130 PR middle-end/47975
19131 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19132
9eac0f2a
RH
191332011-03-04 Richard Henderson <rth@redhat.com>
19134
19135 * explow.c (emit_stack_save): Remove 'after' parameter.
19136 (emit_stack_restore): Likewise.
19137 * expr.h: Update to match.
19138 * builtins.c, calls.c, stmt.c: Likewise.
19139 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19140 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19141 * function.c (expand_function_end): Insert the emit_stack_save
19142 sequence before parm_birth_insn instead of after.
19143
dfee1406
UB
191442011-03-03 Uros Bizjak <ubizjak@gmail.com>
19145
19146 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19147 (ssse3_pmaddubsw128): Ditto.
19148 (ssse3_pmaddubsw): Ditto.
19149
f1d4c3de
SE
191502011-03-03 Steve Ellcey <sje@cup.hp.com>
19151
19152 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19153
71f3a3f5
JJ
191542011-03-03 Jakub Jelinek <jakub@redhat.com>
19155
423ed416
JJ
19156 PR c/47963
19157 * gimplify.c (omp_add_variable): Only call omp_notice_variable
19158 on TYPE_SIZE_UNIT if it is a DECL.
19159
71f3a3f5
JJ
19160 PR debug/47283
19161 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19162 first operand is not is_gimple_mem_ref_addr, try to fold it.
19163 If the operand still isn't is_gimple_mem_ref_addr, clear
19164 MEM_EXPR on op0.
19165
4b1a5c0d
RG
191662011-03-03 Richard Guenther <rguenther@suse.de>
19167
19168 PR middle-end/47283
19169 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19170 match comment.
19171 (refs_may_alias_p_1): For release branches return true if
19172 we are confused by our input.
19173
b46616fd
AK
191742011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19175
19176 * config/s390/s390.c (s390_function_value): Rename to ...
19177 (s390_function_and_libcall_value): ... this.
19178 (s390_function_value): New function.
19179 (s390_libcall_value): New function.
dfee1406 19180 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
19181 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19182 target macro definitions.
19183 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19184
46d8fabb
JM
191852011-03-02 Joseph Myers <joseph@codesourcery.com>
19186
19187 * config/i386/freebsd64.h (CC1_SPEC): Define.
19188 * config/i386/linux64.h (CC1_SPEC): Define.
19189 * config/i386/x86-64.h (CC1_SPEC): Don't define.
19190
6b1ce545
AS
191912011-03-02 Anatoly Sokolov <aesok@post.ru>
19192
19193 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19194 Remove.
19195 * config/stormy16/stormy16.c: Include reload.h.
19196 (xstormy16_memory_move_cost): New function.
19197 (TARGET_MEMORY_MOVE_COST): Define.
19198
34161e98
RS
191992011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
19200
19201 PR rtl-optimization/47925
19202 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19203 with side effects. Remove the more-specific check for volatile asms.
19204
f60a97cf
AM
192052011-03-02 Alan Modra <amodra@gmail.com>
19206
19207 PR target/47935
19208 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19209 toc relative addresses for valid offsets.
19210
f2ca11ca
RG
192112011-03-01 Richard Guenther <rguenther@suse.de>
19212
19213 PR tree-optimization/47890
19214 * tree-vect-loop.c (get_initial_def_for_induction): Set
19215 related stmt properly.
19216
7a00d9ea
RG
192172011-03-01 Richard Guenther <rguenther@suse.de>
19218
19219 PR lto/47924
19220 * lto-streamer.c (lto_record_common_node): Also register
19221 the canonical type.
19222
06c7edcc
RG
192232011-03-01 Richard Guenther <rguenther@suse.de>
19224
19225 PR lto/46911
19226 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19227 Do not stream DECL_ABSTRACT_ORIGIN.
19228 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19229 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19230 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19231 Do not stream DECL_ABSTRACT_ORIGIN.
19232 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19233 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19234
998871e9
AS
192352011-02-28 Anatoly Sokolov <aesok@post.ru>
19236
19237 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19238 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 19239 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
19240 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19241 Add 'outgoing' argument.
19242 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19243 function.
19244 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19245 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19246
94369251
KT
192472011-02-28 Kai Tietz <kai.tietz@onevision.com>
19248
19249 PR debug/28047
19250 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19251 (lookup_filename): Likewise.
b2e2ea67 19252 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 19253
80a832cd
JJ
192542011-02-28 Bernd Schmidt <bernds@codesourcery.com>
19255 Jakub Jelinek <jakub@redhat.com>
19256
19257 PR middle-end/47893
19258 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19259 (assign_stack_local_1): Change last argument type to int.
19260 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19261 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 19262 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
19263 (assign_stack_local): Adjust caller.
19264 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19265 of assign_stack_local, pass 0 as last argument.
19266 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19267 callers.
19268
1b500976
JJ
192692011-02-28 Jakub Jelinek <jakub@redhat.com>
19270
f61c6f34
JJ
19271 PR debug/47283
19272 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19273 Use target address_mode and pointer_mode hooks instead of hardcoded
19274 Pmode and ptr_mode. Handle some simple cases of extending if
19275 POINTERS_EXTEND_UNSIGNED < 0.
19276 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19277 Call convert_debug_memory_address.
19278 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19279 convert_debug_memory_address.
19280
1b500976
JJ
19281 PR middle-end/46790
19282 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19283 * configure: Regenerated.
19284 * config.in: Regenerated.
19285 * varasm.c (default_function_section): Return NULL
b2e2ea67 19286 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 19287
2f2935b6
MJ
192882011-02-28 Martin Jambor <mjambor@suse.cz>
19289
19290 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19291 the description to match the printed values.
19292
474086eb
RG
192932011-02-28 Richard Guenther <rguenther@suse.de>
19294
19295 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19296 of the copied scope tree.
19297
15bf6f3a
RW
192982011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19299
19300 * doc/extend.texi (Function Attributes): Avoid deeply (and
19301 wrongly) nested tables.
19302
f6b439c9
JJ
193032011-02-27 Jakub Jelinek <jakub@redhat.com>
19304
19305 PR middle-end/47903
19306 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19307 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19308 r isn't op0 nor op1.
19309
1d8ca2c7
GJL
193102011-02-23 Georg-Johann Lay <avr@gjlay.de>
19311
19312 * config/avr/avr.md: Remove magic comment for emacs.
19313
593fca4b
GJL
193142011-02-23 Georg-Johann Lay <avr@gjlay.de>
19315
19316 PR target/45261
19317 * config/avr/avr.c (avr_option_override): Use error on bad options.
19318 (avr_help): New function.
19319 (TARGET_HELP): Define.
19320
6609216e
GJL
193212011-02-22 Georg-Johann Lay <avr@gjlay.de>
19322
19323 PR target/42240
19324 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19325 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19326
03d458af
GP
193272011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
19328
19329 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19330 (ARM Options): Ditto.
19331 (i386 and x86-64 Options): Ditto.
19332 (RX Options): Ditto.
19333 (SPARC Options): Ditto.
19334
1c379b78
TC
193352011-02-26 Tijl Coosemans <tijl@coosemans.org>
19336
19337 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19338 FreeBSD 6 and later. Generally use cpu generic.
19339
d5ed058c 193402011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 19341
d5ed058c
GP
19342 * doc/cpp.texi: Update copyright years.
19343
509d65dd 193442011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 19345
509d65dd 19346 PR target/46898
308d39cd
SB
19347 * config/lm32/lm32.md (ashrsi3): Added needed variable.
19348
509d65dd 193492011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 19350
509d65dd 19351 PR target/46898
308d39cd
SB
19352 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19353 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19354 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19355 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 19356 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
19357 (gen_int_relational): Move declarations to start of function.
19358
822ba6d7
EB
193592011-02-25 Eric Botcazou <ebotcazou@adacore.com>
19360
19361 PR tree-optimization/45470
19362 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19363 can throw internally only.
19364 * tree-vect-stmts.c (vectorizable_call): Likewise.
19365
ef795fc2
AS
193662011-02-24 Anatoly Sokolov <aesok@post.ru>
19367
19368 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19369 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19370 * config/stormy16/stormy16-protos.h
19371 (xstormy16_preferred_reload_class): Remove.
19372 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19373 static. Change 'rclass' argument and return type to reg_class_t.
19374 (TARGET_PREFERRED_RELOAD_CLASS,
19375 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19376
1c3277ee
RG
193772011-02-24 Richard Guenther <rguenther@suse.de>
19378
19379 * lto-streamer-in.c (input_bb): Do not find referenced vars
19380 in debug statements.
19381
67e18edb
JM
193822011-02-23 Jason Merrill <jason@redhat.com>
19383
19384 * common.opt (fabi-version): Document v5 and v6.
19385
b14fad9d
RG
193862011-02-23 Richard Guenther <rguenther@suse.de>
19387
19388 PR tree-optimization/47849
19389 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
19390
7fcf46f5
JZ
193912011-02-23 Jie Zhang <jie@codesourcery.com>
19392
19393 * opts-common.c (decode_cmdline_option): Print empty string
19394 argument as "" in decoded->orig_option_with_args_text.
19395 * gcc.c (execute): Print empty string argument as ""
19396 in the verbose output.
19397 (do_spec_1): Keep empty string argument.
19398
f85b70fd
NF
193992011-02-23 Nathan Froyd <froydnj@codesourcery.com>
19400
19401 * config.gcc: Declare score-* and crx-* obsolete.
19402
b152a615
JZ
194032011-02-23 Jie Zhang <jie@codesourcery.com>
19404
19405 PR rtl-optimization/47763
19406 * web.c (web_main): Ignore naked clobber when replacing register.
19407
bb6e77bc
AS
194082011-02-22 Anatoly Sokolov <aesok@post.ru>
19409
19410 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19411 Remove.
19412
68bf6491
SP
194132011-02-22 Sebastian Pop <sebastian.pop@amd.com>
19414
19415 PR doc/47848
19416 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19417
88ee1fc7
MS
194182011-02-22 Mike Stump <mikestump@comcast.net>
19419
19420 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19421 assembler.
19422 * configure: Regenerate.
19423
6042d1dd
CLT
194242011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
19425
19426 PR rtl-optimization/46002
19427 * ira-color.c (update_copy_costs): Change class intersection
19428 test to reg_class_contents[] test of 'hard_regno'.
19429
7de97f9e
JM
194302011-02-21 Joseph Myers <joseph@codesourcery.com>
19431
19432 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19433 than Driver option.
19434 * config/hpux11.opt (mt): Likewise.
19435 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19436 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19437 * config/vax/elf.opt (mno-asm-pic): Likewise.
19438 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19439
d1d46f9f
MS
194402011-02-21 Mike Stump <mikestump@comcast.net>
19441
19442 PR target/47822
19443 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19444 tree so we can get save the type.
19445 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19446 for CFString instead of trying to use past the end of the builtins.
19447 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19448 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19449 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19450 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19451 Rename to darwin_builtin_cfstring.
19452 (darwin_init_cfstring_builtins): Return the built type.
19453
23e0d930
UB
194542011-02-21 Uros Bizjak <ubizjak@gmail.com>
19455
19456 PR target/47840
19457 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19458 (_mm256_insert_epi64): Use _mm_insert_epi64.
19459
192997cf
AS
194602011-02-21 Anatoly Sokolov <aesok@post.ru>
19461
19462 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19463 * config/stormy16/stormy16-protos.h
19464 (xstormy16_mode_dependent_address_p): Remove.
19465 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19466 Make static. Change return type to bool. Change argument type to
19467 const_rtx. Remove dead code.
19468 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19469
e292d003
RG
194702011-02-21 Richard Guenther <rguenther@suse.de>
19471
19472 PR lto/47820
19473 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19474 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19475 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19476 TUs context.
23e0d930 19477 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
19478 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19479
77f846e9
RG
194802011-02-20 Richard Guenther <rguenther@suse.de>
19481
19482 PR lto/47822
19483 * tree.c (free_lang_data_in_decl): Clean builtins from
19484 the TU decl BLOCK_VARS.
23e0d930 19485
b2cddfc8
AO
194862011-02-19 Alexandre Oliva <aoliva@redhat.com>
19487
19488 PR debug/47620
19489 PR debug/47630
19490 * haifa-sched.c (fix_tick_ready): Skip tick computation
19491 for debug insns.
19492
becf4c11
RG
194932011-02-19 Richard Guenther <rguenther@suse.de>
19494
19495 PR lto/47647
19496 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19497 Remove lazy BLOCK_VARS streaming.
19498 (lto_input_ts_block_tree_pointers): Likewise.
19499 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19500
27f98305
JM
195012011-02-19 Joseph Myers <joseph@codesourcery.com>
19502
19503 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19504
064bf3f4
JM
195052011-02-19 Joseph Myers <joseph@codesourcery.com>
19506
19507 * config/i386/biarch32.h, config/i386/mach.h,
19508 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19509
9215ddc3
JJ
195102011-02-19 Jakub Jelinek <jakub@redhat.com>
19511
19512 PR target/47800
19513 * config/i386/i386.md (peephole2 for shift and plus): Use
19514 operands[1] original mode in the first insn.
19515
8b021004
MS
195162011-02-18 Mike Stump <mikestump@comcast.net>
19517
65ded153 19518 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 19519
f84ae14c
JH
195202011-02-18 Jan Hubicka <jh@suse.cz>
19521
19522 PR middle-end/47788
65ded153
EB
19523 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19524 to zero when the function is not inlinable at all.
f84ae14c 19525
eddabc80
JDA
195262011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19527
19528 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19529 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19530 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19531 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19532 * config/pa/t-pa64: Likewise.
19533 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19534
ca3da783
JJ
195352011-02-18 Jakub Jelinek <jakub@redhat.com>
19536
19537 PR driver/47787
19538 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19539
430aa868
JDA
195402011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19541
19542 PR target/47792
19543 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19544
4bf7ff7e
AS
195452011-02-18 Anatoly Sokolov <aesok@post.ru>
19546
19547 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19548 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19549 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19550 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19551 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19552 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19553 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19554 m32r_load_postinc_p, m32r_store_preinc_predec_p,
19555 m32r_legitimate_address_p): New functions.
19556 * config/m32r/constraints.md (constraint "S"): Don't use
19557 STORE_PREINC_PREDEC_P.
19558 (constraint "U"): Don't use LOAD_POSTINC_P.
19559
7efcf910
CLT
195602011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
19561
19562 PR rtl-optimization/46178
19563 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19564 compute ira_hard_regno_cover_class[].
19565
237d6259
RG
195662011-02-18 Richard Guenther <rguenther@suse.de>
19567
19568 PR lto/47798
19569 * lto-streamer.h (lto_global_var_decls): Declare.
19570 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19571 statics for global var processing.
19572
12d80acc
RG
195732011-02-18 Richard Guenther <rguenther@suse.de>
19574
19575 PR tree-optimization/47737
19576 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19577 edge dominance check.
19578
abfea58d
JJ
195792011-02-18 Jakub Jelinek <jakub@redhat.com>
19580
19581 PR debug/47780
19582 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19583 avoid invalid rtx sharing.
19584
f73c8882
GP
195852011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
19586
19587 * doc/cpp.texi (Obsolete Features): Add background on the
19588 origin of assertions.
19589
d764a8e6
IS
195902011-02-17 Iain Sandoe <iains@gcc.gnu.org>
19591
19592 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 19593 objc_abi == 2.
d764a8e6
IS
19594 * config/darwin.c (output_objc_section_asm_op): Added support for
19595 ABI v1 and v2.
19596 (is_objc_metadata): New.
19597 (darwin_objc2_section): New.
19598 (darwin_objc1_section): New.
19599 (machopic_select_section): Added support for ABI v1 and v2.
19600 (darwin_emit_objc_zeroed): New.
19601 (darwin_output_aligned_bss): Detect objc metadata and treat it
19602 appropriately.
19603 (darwin_asm_output_aligned_decl_common): Same.
19604 (darwin_asm_output_aligned_decl_local): Same.
19605 * config/darwin-sections.def: Updated for ABI v1 and v2.
19606 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19607 compiling Objective-C code for the NeXT runtime, default to using
19608 ABI version 0 for 32-bit, and version 2 for 64-bit.
19609
0a8134ca
JM
196102011-02-17 Joseph Myers <joseph@codesourcery.com>
19611
19612 * common.opt (optimize_fast): New Variable.
19613 * opts.c (default_options_optimization): Use opts->x_optimize_fast
19614 instead of local variable ofast.
19615
0a256240
NP
196162011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
19617
19618 * doc/invoke.texi (fobjc-abi-version): Documented.
19619 (fobjc-nilcheck): Documented.
19620 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19621 version.
19622
fa381cb2
JM
196232011-02-17 Joseph Myers <joseph@codesourcery.com>
19624
19625 PR driver/47390
19626 * common.opt (export-dynamic): New Driver option.
19627 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19628
5437eaa6
JM
196292011-02-17 Joseph Myers <joseph@codesourcery.com>
19630
19631 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19632
bb7e6d55
AO
196332011-02-17 Alexandre Oliva <aoliva@redhat.com>
19634 Jan Hubicka <jh@suse.cz>
19635
19636 PR debug/47106
19637 PR debug/47402
19638 * cfgexpand.c (account_used_vars_for_block): Remove.
19639 (estimated_stack_frame_size): Use referenced vars.
19640 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19641 that were referenced in the original function. Test src_fn
19642 rather than cfun. Drop redundant get_var_ann.
19643 (setup_one_parameter): Drop redundant get_var_ann.
19644 (declare_return_variable): Likewise.
19645 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19646 (copy_arguments_for_versioning): Drop redundant get_var_ann.
19647 * ipa-inline.c (compute_inline_parameters): Do not compute
19648 disregard_inline_limits here.
bb7e6d55
AO
19649 (compute_inlinable_for_current, pass_inlinable): New.
19650 (pass_inline_parameters): Require PROP_referenced_vars.
19651 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 19652 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
19653 (cgraph_analyze_function): Set .disregard_inline_limits.
19654 * tree-sra.c (convert_callers): Compute inliner parameters
19655 only for functions already in SSA form.
19656
f181a8a7
JM
196572011-02-17 Joseph Myers <joseph@codesourcery.com>
19658
19659 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19660 -mlittle-endian-data.
19661
c6869789
JM
196622011-02-17 Joseph Myers <joseph@codesourcery.com>
19663
19664 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19665 -mno-fpu, not -fpu and -no-fpu.
19666 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19667 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19668
fbf4bfd3
UB
196692011-02-17 Uros Bizjak <ubizjak@gmail.com>
19670
19671 PR target/43653
19672 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19673 input reload with PLUS RTX.
19674
70be5dc7
JM
196752011-02-16 Joseph Myers <joseph@codesourcery.com>
19676
19677 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19678 of InverseVar(MDMX).
19679
30b1646e
JM
196802011-02-16 Joseph Myers <joseph@codesourcery.com>
19681
19682 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19683 --m4-340.
19684
ab7b71e9
JM
196852011-02-16 Joseph Myers <joseph@codesourcery.com>
19686
19687 * config/mn10300/mn10300.opt (mno-crt0): New.
19688
466f3f08
JM
196892011-02-16 Joseph Myers <joseph@codesourcery.com>
19690
19691 * config/m68k/uclinux.opt (static-libc): New Driver option.
19692
8226cd7b
JM
196932011-02-16 Joseph Myers <joseph@codesourcery.com>
19694
19695 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
19696
45cab1d7
JM
196972011-02-16 Joseph Myers <joseph@codesourcery.com>
19698
19699 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
19700 %{muser-extend-enabled}.
19701
65aab64f
RG
197022011-02-16 Richard Guenther <rguenther@suse.de>
19703
19704 PR tree-optimization/47738
19705 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
19706 the TODO from tree_predictive_commoning.
19707
fc2fa4fb
JL
197082011-02-15 Jeff Law <law@redhat.com>
19709
19710 Revert
19711 2011-01-25 Jeff Law <law@redhat.com>
19712
19713 PR rtl-optimization/37273
19714 * ira-costs.c (scan_one_insn): Detect constants living in memory and
19715 handle them like argument loads from stack slots. Do not double
19716 count memory for memory constants and argument loads from stack slots.
19717
4e380b8e
L
197182011-02-15 H.J. Lu <hongjiu.lu@intel.com>
19719
19720 PR middle-end/47725
19721 * combine.c (cant_combine_insn_p): Revert the last change.
19722
e3a69bb4
MM
197232011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
19724
19725 PR target/47755
19726 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
19727 mode for vector constants. Remove code that checks for TImode.
19728
de650422
AO
197292011-02-15 Alexandre Oliva <aoliva@redhat.com>
19730
19731 PR debug/47106
19732 PR debug/47402
19733 * cgraph.h (compute_inline_parameters): Return void.
19734 * ipa-inline.c (compute_inline_parameters): Adjust.
19735
30925d94
AO
197362011-02-15 Alexandre Oliva <aoliva@redhat.com>
19737
19738 PR debug/47106
19739 PR debug/47402
19740 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
19741 rather than decl.
19742 * cfgexpand.c (estimated_stack_frame_size): Likewise.
19743 * ipa-inline.c (compute_inline_parameters): Adjust.
19744
1b9a784a
AO
197452011-02-15 Alexandre Oliva <aoliva@redhat.com>
19746
19747 PR debug/47106
19748 PR debug/47402
19749 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
19750 Adjust all users. Pass FN to...
19751 * tree-flow-inline.h (first_referenced_var): ... this. Add
19752 fn argument.
19753 * ipa-struct-reorg.c: Adjust.
19754 * tree-dfa.c: Adjust.
19755 * tree-into-ssa.c: Adjust.
19756 * tree-sra.c: Adjust.
19757 * tree-ssa-alias.c: Adjust.
19758 * tree-ssa-live.c: Adjust.
19759 * tree-ssa.c: Adjust.
19760 * tree-ssanames.c: Adjust.
19761 * tree-tailcall.c: Adjust.
19762
27c6b086
AO
197632011-02-15 Alexandre Oliva <aoliva@redhat.com>
19764
19765 PR debug/47106
19766 PR debug/47402
19767 * tree-flow.h (referenced_var_lookup): Add fn parameter.
19768 Adjust all callers.
19769 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
19770 * tree-flow-inline.h: Adjust.
19771 * gimple-pretty-print.c: Adjust.
19772 * tree-into-ssa.c: Adjust.
19773 * tree-ssa.c: Adjust.
19774 * cfgexpand.c: Adjust.
19775
679e8183
NF
197762011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19777
fbf4bfd3
UB
19778 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
19779 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19780 (EXTRA_CONSTRAINT): Delete.
19781 * config/iq2000/constraints.md: New file.
19782 * config/iq2000/iq2000.md: Include it.
679e8183
NF
19783 (define_insn ""): Delete.
19784 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
19785 unsupported constraint letters from patterns.
19786 (call_value, call_value_internal1): Likewise.
19787 (call_value_multiple_internal1): Likewise.
19788
a45d420a
NC
197892011-02-15 Nick Clifton <nickc@redhat.com>
19790
19791 * config/mn10300/mn10300.c: Include tm-constrs.h.
19792 (struct liw_data): New data structure describing an LIW candidate
19793 instruction.
19794 (extract_bundle): Use struct liw_data. Allow small integer
19795 operands for some instructions.
19796 (check_liw_constraints): Use struct liw_data. Remove swapped
19797 parameter. Add comments describing the checks. Fix bug when
19798 assigning the source of liw1 to the source of liw2.
19799 (liw_candidate): Delete. Code moved into extract_bundle.
19800 (mn10300_bundle_liw): Use struct liw_data. Check constraints
19801 before swapping.
19802 * config/mn10300/predicates.md (liw_operand): New predicate.
19803 Allows registers and small integer constants.
19804 * config/mn10300/constraints.md (O): New constraint. Accetps
19805 integers in the range -8 to +7 inclusive.
19806 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
19807 for moving a small integer into a register. Give this alternative
19808 LIW attributes.
19809 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
19810 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
19811 using the J,K,L and M constraints,
19812 (liw): Remove SI mode on second operands to allow for HI and QI
19813 mode values.
19814 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
19815 instruction.
19816
8a73faf1
L
198172011-02-15 H.J. Lu <hongjiu.lu@intel.com>
19818
19819 PR middle-end/47725
19820 * combine.c (cant_combine_insn_p): Check zero/sign extended
19821 hard registers.
19822
48feba28
RG
198232011-02-15 Richard Guenther <rguenther@suse.de>
19824
19825 PR tree-optimization/47743
19826 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
19827 for a non-type-compatible VN lookup bail out.
19828
ad1c1eeb
NF
198292011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19830
19831 * config/fr30/constraints.md: New file.
19832 * config/fr30/fr30.md: Include it.
19833 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
19834 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19835 (EXTRA_CONSTRAINT): Delete.
19836
49ac143d
NF
198372011-02-15 Nathan Froyd <froydnj@codesourcery.com>
19838
19839 * config/frv/constraints.md: New file.
19840 * config/frv/predicates.md: Include it.
19841 * config/frv/frv.c (reg_class_from_letter): Delete.
19842 (frv_option_override): Don't initialize it.
19843 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
19844 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
19845 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
19846 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19847 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
19848 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19849 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
19850 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
19851 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
19852 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
19853 (REG_CLASS_FROM_CONSTRAINT): Delete.
19854
c95f9494
JJ
198552011-02-15 Jakub Jelinek <jakub@redhat.com>
19856
19857 PR middle-end/47581
19858 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
19859 if frame size is 0 in a leaf function.
19860
13aed611
RO
198612011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19862
19863 PR pch/14940
19864 * config/alpha/host-osf.c: New file.
19865 * config/alpha/x-osf: New file.
19866 * config.host (alpha*-dec-osf*): Use it.
19867
b09c3081
AS
198682011-02-14 Anatoly Sokolov <aesok@post.ru>
19869
19870 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19871 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
19872 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
19873 (rx_mode_dependent_address_p): ...this. Make static. Change argument
19874 type to const_rtx.
19875 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19876
d634083b
NF
198772011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19878
19879 * config/stormy16/constraints.md: New file.
19880 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
19881 Use satisfies_constraint_Q and satisfies_constraint_R.
19882 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
19883 Delete.
19884 (xstormy16_legitiamte_address_p): Declare.
19885 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
19886 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19887 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 19888 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
19889 Un-staticize.
19890 (xstormy16_extra_constraint_p): Delete.
19891
c7dd803e
EB
198922011-02-14 Eric Botcazou <ebotcazou@adacore.com>
19893
19894 PR tree-optimization/46494
19895 * loop-unroll.c (split_edge_and_insert): Adjust comment.
19896 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
19897 (pass_rtl_loop_done): Add TODO_verify_flow.
19898 * fwprop.c (pass_rtl_fwprop): Likewise.
19899 * modulo-sched.c (pass_sms): Likewise.
19900 * tree-ssa-dom.c (pass_dominator): Likewise.
19901 * tree-ssa-loop-ch.c (pass_ch): Likewise.
19902 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
19903 (pass_tree_loop_done): Likewise.
19904 * tree-ssa-pre.c (execute_pre): Likewise.
19905 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
19906 * tree-ssa-sink.c (pass_sink_code): Likewise.
19907 * tree-vrp.c (pass_vrp): Likewise.
19908
c6150df6
NF
199092011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19910
c7dd803e
EB
19911 * config/v850/constraints.md: New file.
19912 * config/v850/v850.md: Include it.
19913 * config/v850/predicates.md (reg_or_0_operand): Use
19914 satisfies_constraint_G.
19915 (special_symbolref_operand): Use satisfies_constraint_K.
19916 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
19917 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
19918 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
19919 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
19920 (EXTRA_CONSTRAINT): Delete.
19921 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
19922 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
19923 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 19924
30dd1ea3
AS
199252011-02-14 Anatoly Sokolov <aesok@post.ru>
19926
19927 PR target/47696
19928 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
19929 description.
19930
944f4bb3
NF
199312011-02-14 Nathan Froyd <froydnj@codesourcery.com>
19932
19933 * config/mcore/constraints.md: New file.
19934 * config/mcore/mcore.md: Include it.
19935 * config/mcore/mcore.c (reg_class_from_letter): Delete.
19936 * config/mcore/mcore.h (reg_class_from_letter): Delete.
19937 (REG_CLASS_FROM_LETTER): Delete.
19938 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
19939 insn_const_int_ok_for_constraint.
19940 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
19941 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
19942 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19943 (EXTRA_CONSTRAINT): Delete.
19944
ad56a54c
RO
199452011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19946
19947 PR ada/41929
19948 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
19949 (IS_SIGHANDLER): Define.
19950 (sparc64_is_sighandler): New function, split off from
19951 sparc64_fallback_frame_state.
19952 (sparc_is_sighandler): New function, split off from
19953 sparc_fallback_frame_state.
19954 (sparc64_fallback_frame_state): Merge with ...
19955 (sparc_fallback_frame_state): ... this into ...
19956 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
19957 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
19958 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
19959 stack instead of hardcoded offsets.
ad56a54c 19960
fbf4bfd3 199612011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
19962
19963 PR target/45808
19964 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
19965
029c8f3e
RW
199662011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19967
19968 * configure: Regenerate.
19969
a016dc83
JM
199702011-02-12 Joseph Myers <joseph@codesourcery.com>
19971
19972 PR driver/45731
19973 * gcc.c (asm_options): Correct spec matching --target-help.
19974
8957a0ec
MJ
199752011-02-12 Martin Jambor <mjambor@suse.cz>
19976
19977 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
19978 to gimple call error.
19979
6ef828bc
MS
199802011-02-12 Mike Stump <mikestump@comcast.net>
19981
19982 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
19983 comments in backslash regions.
19984
a4015be5
MS
199852011-02-12 Mike Stump <mikestump@comcast.net>
19986 Jakub Jelinek <jakub@redhat.com>
19987 Iain Sandoe <iains@gcc.gnu.org>
19988
19989 PR target/47324
19990 * dwarf2out.c (output_cfa_loc): When required, apply the
19991 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
19992 (output_loc_sequence): Likewise.
19993 (output_loc_operands_raw): Likewise.
19994 (output_loc_sequence_raw): Likewise.
19995 (output_cfa_loc): Likewise.
19996 (output_loc_list): Suppress register number adjustment when
19997 calling output_loc_sequence()
19998 (output_die): Likewise.
19999
5378dda2
AS
200002011-02-12 Anatoly Sokolov <aesok@post.ru>
20001
20002 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20003 Remove macros.
20004 * config/xtensa/xtensa.c (xtensa_register_move_cost,
20005 xtensa_memory_move_cost): New functions.
20006 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20007
f3d533d3
AO
200082011-02-12 Alexandre Oliva <aoliva@redhat.com>
20009
20010 PR lto/47225
20011 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20012 in the current directory.
20013 * configure: Rebuilt.
20014
9d53403c
IS
200152011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20016
20017 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 20018 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
20019 correct indents of the preceding block.
20020
a350a6c8
IS
200212011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20022
20023 * gcc.c (driver_handle_option): Concatenate the argument to -F with
20024 the switch.
20025
bab79a40
JM
200262011-02-11 Joseph Myers <joseph@codesourcery.com>
20027
20028 * common.opt (nostartfiles): New Driver option.
20029
1bbc6693
XDL
200302011-02-11 Xinliang David Li <davidxl@google.com>
20031
20032 PR tree-optimization/47707
20033 * tree-chrec.c (convert_affine_scev): Keep type precision.
20034
1da7d8c0
EB
200352011-02-11 Eric Botcazou <ebotcazou@adacore.com>
20036
20037 PR tree-optimization/47420
20038 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20039
200402011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
20041
20042 PR rtl-optimization/47614
20043 * rtl.h (check_for_inc_dec): Declare.
20044 * dse.c (check_for_inc_dec): Externalize...
20045 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20046 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20047
4df47bca
JM
200482011-02-11 Joseph Myers <joseph@codesourcery.com>
20049
20050 PR driver/47678
20051 * gcc.c (main): Do not compile inputs if there were errors in
20052 option handling.
20053 * opts-common.c (read_cmdline_option): Check for wrong language
20054 after other error checks.
20055
61502ca8
NF
200562011-02-11 Nathan Froyd <froydnj@codesourcery.com>
20057
20058 * cgraph.c: Fix comment typos.
20059 * cgraph.h: Likewise.
20060 * cgraphunit.c: Likewise.
20061 * ipa-cp.c: Likewise.
20062 * ipa-inline.c: Likewise.
20063 * ipa-prop.c: Likewise.
20064 * ipa-pure-const.c: Likewise.
20065 * ipa-ref.c: Likewise.
20066 * ipa-reference.c: Likewise.
20067
b63f974e
JJ
200682011-02-11 Jakub Jelinek <jakub@redhat.com>
20069
d50c5e0c
JJ
20070 PR debug/47684
20071 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 20072
6dd2a13c
RO
200732011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20074
20075 PR testsuite/47400
20076 * doc/sourcebuild.texi (Require Support): Document
20077 dg-require-ascii-locale.
20078
4a087ccf
MX
200792011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
20080
20081 * doc/lto.texi (Write summary): Fix missing parentheses.
20082
a4403164
DD
200832011-02-10 DJ Delorie <dj@redhat.com>
20084
20085 * config/m32c/m32c.c (m32c_option_override): Disable
20086 -fcombine-stack-adjustments until flag value tracking and compare
20087 optimization can be rewritten.
20088
4fac45bd
PB
200892011-02-10 Peter Bergner <bergner@vnet.ibm.com>
20090
20091 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20092 PROCESSOR_POWER7.
20093 (PROCESSOR_DEFAULT64): Likewise.
20094
72602cd1
RH
200952011-02-10 Richard Henderson <rth@redhat.com>
20096
20097 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20098 change from 2011-02-03.
20099 * config/rx/rx.c (flags_from_code): Likewise.
20100 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20101 is valid, n/pz otherwise.
20102 (rx_select_cc_mode): Return CCmode if Y is not zero.
20103
ea57f573
RG
201042011-02-10 Richard Guenther <rguenther@suse.de>
20105
ea4c3e65 20106 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 20107
92b1d23b
RG
201082011-02-10 Richard Guenther <rguenther@suse.de>
20109
20110 PR tree-optimization/47677
20111 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20112
525a2d06
JJ
201132011-02-10 Jakub Jelinek <jakub@redhat.com>
20114
20115 PR target/47665
20116 * combine.c (make_compound_operation): Only change shifts into
20117 multiplication for SCALAR_INT_MODE_P.
20118
06c969bd
JZ
201192011-02-10 Jie Zhang <jie@codesourcery.com>
20120
20121 PR testsuite/47622
20122 Revert
20123 2011-02-05 Jie Zhang <jie@codesourcery.com>
20124 PR debug/42631
20125 * web.c (entry_register): Don't clobber the number of the
20126 first uninitialized reference in used[].
20127
282ec48e
RG
201282011-02-09 Richard Guenther <rguenther@suse.de>
20129
20130 PR tree-optimization/47664
20131 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20132 all edges again.
20133
df98c3e8
DE
201342011-02-09 David Edelsohn <dje.gcc@gmail.com>
20135
d0f21cd6
DE
20136 PR target/46481
20137 PR target/47032
df98c3e8
DE
20138 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20139 PROCESSOR_POWER7.
20140 (PROCESSOR_DEFAULT64): Same.
20141 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20142
67b6839f
RO
201432011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20144
20145 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20146
4fd73214
MJ
201472011-02-09 Martin Jambor <mjambor@suse.cz>
20148
20149 PR middle-end/45505
20150 * tree-sra.c (struct access): New flags grp_scalar_read and
20151 grp_scalar_write. Changed description of assignment read and write
20152 flags.
20153 (dump_access): Dump new flags, reorder all of them.
20154 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20155 to detect multiple scalar reads.
20156 (analyze_access_subtree): Use the new scalar read write flags instead
20157 of the old flags. Adjusted comments.
20158
91140cd3
DD
201592011-02-08 DJ Delorie <dj@redhat.com>
20160
20161 PR target/47548
20162 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20163 patterns.
20164
4254bbfe
JM
201652011-02-08 Joseph Myers <joseph@codesourcery.com>
20166
20167 * config/m68k/uclinux.opt: New.
20168 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20169
f1fda84e
JM
201702011-02-08 Joseph Myers <joseph@codesourcery.com>
20171
20172 * config/cris/elf.opt (sim): New Driver option.
20173
4933ae74
JM
201742011-02-08 Joseph Myers <joseph@codesourcery.com>
20175
20176 * config/xtensa/elf.opt: New.
20177 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20178
4ad70280
JM
201792011-02-08 Joseph Myers <joseph@codesourcery.com>
20180
20181 * config/vax/elf.opt: New.
20182 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20183
20893707
JM
201842011-02-08 Joseph Myers <joseph@codesourcery.com>
20185
20186 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20187
b8e7038e
JM
201882011-02-08 Joseph Myers <joseph@codesourcery.com>
20189
20190 * config/gnu-user.opt: New.
20191 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20192 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20193 *-*-uclinux*): Use gnu-user.opt.
20194
e1c5225a
TS
201952011-02-08 Thomas Schwinge <thomas@schwinge.name>
20196
20197 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20198 * config/i386/gnu.h (CPP_SPEC): Likewise.
20199
5e46b0c6
ILT
202002011-02-08 Ian Lance Taylor <iant@google.com>
20201
20202 * common.opt (fcx-limited-range): Add SetByCombined flag.
20203 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20204 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20205 (fassociative-math, freciprocal-math): Likewise.
20206 (funsafe-math-optimizations): Likewise.
20207 * opth-gen.awk: Handle SetByCombined.
20208 * optc-gen.awk: Likewise.
ea4c3e65 20209 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
20210 (set_unsafe_math_optimizations_flags): Likewise.
20211 * doc/options.texi (Option properties): Document SetByCombined.
20212
32243d46
JM
202132011-02-08 Joseph Myers <joseph@codesourcery.com>
20214
20215 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20216 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20217 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20218 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20219 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20220
479c1fb3
SP
202212011-02-08 Sebastian Pop <sebastian.pop@amd.com>
20222
20223 PR tree-optimization/46834
20224 PR tree-optimization/46994
20225 PR tree-optimization/46995
20226 * graphite-sese-to-poly.c (used_outside_reduction): New.
20227 (detect_commutative_reduction): Call used_outside_reduction.
20228 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20229 translate_scalar_reduction_to_array only when at least one
20230 loop-phi/close-phi tuple has been detected.
20231
3865a06f
RG
202322011-02-08 Richard Guenther <rguenther@suse.de>
20233
20234 PR middle-end/47639
20235 * tree-vect-generic.c (expand_vector_operations_1): Update
20236 stmts here ...
20237 (expand_vector_operations): ... not here. Cleanup EH info
20238 and the CFG if required.
20239
62902f3f
RG
202402011-02-08 Richard Guenther <rguenther@suse.de>
20241
20242 PR tree-optimization/47641
20243 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20244 require type compatibility.
20245
0efb9d64
AK
202462011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20247
20248 * gimple-low.c (lower_function_body): Don't remove the location of
20249 the return statement here.
20250 (lower_gimple_return): Do it here instead but only if the return
20251 statement is actually used twice.
20252
034b8ae4
RG
202532011-02-08 Richard Guenther <rguenther@suse.de>
20254
20255 PR tree-optimization/47632
20256 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20257 unused up_to_stmt parameter, return whether cfg-cleanup is
20258 necessary, remove EH info properly.
20259 (forward_propagate_into_gimple_cond): Adjust caller.
20260 (forward_propagate_into_cond): Likewise.
20261 (forward_propagate_comparison): Likewise.
20262 (tree_ssa_forward_propagate_single_use_vars): Make
20263 forward_propagate_comparison case similar to the two others.
20264
298362c8
NC
202652011-02-08 Nick Clifton <nickc@redhat.com>
20266
20267 * config/mn10300/mn10300.opt (mliw): New command line option.
20268 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20269 (liw_bundling): New automaton.
20270 (liw): New attribute.
20271 (liw_op): New attribute.
20272 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20273 (movsi_internal): Add LIW attributes.
20274 (andsi3): Likewise.
20275 (iorsi3): Likewise.
20276 (xorsi3): Likewise.
20277 (addsi3): Separate register and immediate alternatives.
20278 Add LIW attributes.
20279 (subsi3): Likewise.
20280 (cmpsi): Likewise.
20281 (aslsi3): Likewise.
20282 (lshrsi3): Likewise.
20283 (ashrsi3): Likewise.
20284 (liw): New pattern.
20285 * config/mn10300/mn10300.c (liw_op_names): New
20286 (mn10300_print_operand): Handle 'W' operand descriptor.
20287 (extract_bundle): New function.
20288 (check_liw_constraints): New function.
20289 (liw_candidate): New function.
20290 (mn10300_bundle_liw): New function.
20291 (mn10300_reorg): New function.
20292 (TARGET_MACHINE_DEPENDENT_REORG): Define.
20293 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20294 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20295 __LIW__ or __NO_LIW__.
20296 * doc/invoke.texi: Describe the -mliw command line option.
20297
90488014
JDA
202982011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20299
20300 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20301 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20302 pthread_mutex_unlock): Remove.
20303 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20304 * config/pa/t-pa64: Likewise.
20305 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20306 shared libc if not linking against libpthread.
20307 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20308
689ff841
IS
203092011-02-07 Iain Sandoe <iains@gcc.gnu.org>
20310
20311 PR target/47558
20312 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20313 on 10.6 and later to ensure that we always use the unwinder from
20314 the system. Only add -no_compact_unwind when tarteting darwin
20315 10.6 or later.
20316
821014aa
SE
203172011-02-07 Steve Ellcey <sje@cup.hp.com>
20318
20319 PR target/46997
20320 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20321 (vec_interleave_lowv2sf): Ditto.
20322 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20323 (vec_extract_oddv2sf): Ditto.
20324
41cf94fb
MS
203252011-02-07 Mike Stump <mikestump@comcast.net>
20326
62dea57d 20327 PR target/42333
41cf94fb
MS
20328 Add __ieee_divdc3 entry point.
20329 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20330 entry point.
20331 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20332 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20333 * config/darwin.c (darwin_rename_builtins): Add.
20334 * config/darwin-protos.h (darwin_rename_builtins): Add.
20335
ee09a3dd
MM
203362011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
20337
20338 PR target/47636
20339 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20340 for the condition.
20341
83296cd0
MS
203422011-02-07 Mike Stump <mikestump@comcast.net>
20343
ea4c3e65 20344 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 20345
0f4e946f
DC
203462011-02-07 Denis Chertykov <chertykov@gmail.com>
20347
20348 PR target/47534
20349 * config/avr/libgcc.S (exit): Move .endfunc
20350
1ec87690
RG
203512011-02-07 Richard Guenther <rguenther@suse.de>
20352
20353 PR tree-optimization/47615
20354 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20355 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20356 (run_scc_vn): Initialize it.
20357 (visit_reference_op_load): Use it.
20358 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20359
b46ae6da
UW
203602011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20361
20362 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20363 DImode trapping arithmetic libfuncs.
20364
c0aae19c
RG
203652011-02-07 Richard Guenther <rguenther@suse.de>
20366
20367 PR tree-optimization/47621
20368 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20369 two duplicates ...
20370 (execute_update_addresses_taken): ... here. Make it more
20371 conservative in what we accept.
20372
295d926b
JM
203732011-02-06 Joseph Myers <joseph@codesourcery.com>
20374
20375 * config/sparc/freebsd.h (ASM_SPEC): Define.
20376 * config/sparc/vxworks.h (ASM_SPEC): Define.
20377
bdeb2471
JM
203782011-02-06 Joseph Myers <joseph@codesourcery.com>
20379
20380 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20381
d5d3781a
SB
203822011-02-06 Steven Bosscher <steven@gcc.gnu.org>
20383
20384 * doc/invoke.texi: Remove reference to compiler internals from
20385 user documentation.
20386
20387 * reg-notes.def: Remove REG_VALUE_PROFILE.
20388 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20389
c42c09fc
JJ
203902011-02-05 Jakub Jelinek <jakub@redhat.com>
20391
20392 PR middle-end/47610
20393 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 20394 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 20395
beea2755
JZ
203962011-02-05 Jie Zhang <jie@codesourcery.com>
20397
20398 PR debug/42631
20399 * web.c (entry_register): Don't clobber the number of the
20400 first uninitialized reference in used[].
20401
a130584a
SP
204022011-02-04 Sebastian Pop <sebastian.pop@amd.com>
20403
20404 PR tree-optimization/46194
20405 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
20406 (build_classic_dist_vector_1): Do not represent classic distance
20407 vectors when the access functions are variating in different loops.
20408
962101ac
JM
204092011-02-04 Joseph Myers <joseph@codesourcery.com>
20410
20411 * config/mips/iris6.opt: New.
20412 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20413
55eaaa5b
RH
204142011-02-04 Richard Henderson <rth@redhat.com>
20415 Steve Ellcey <sje@cup.hp.com>
20416
20417 PR target/46997
20418 * config/ia64/predicates.md (mux1_brcst_element): New.
20419 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20420 * config/ia64/ia64.c (ia64_unpack_assemble): New.
20421 (ia64_unpack_sign): New.
20422 (ia64_expand_unpack): Rewrite using new routines.
20423 (ia64_expand_widen_sum): Ditto.
20424 (ia64_expand_dot_prod_v8qi): Ditto.
20425 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20426 routines, add endian check.
20427 (pmpy2_even): Rename from pmpy2_r, add endian check.
20428 (pmpy2_odd): Rename from pmpy2_l, add endian check.
20429 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20430 (vec_widen_smult_hi_v4hi): Ditto.
20431 (vec_widen_umult_lo_v4hi): Ditto.
20432 (vec_widen_umult_hi_v4hi): Ditto.
20433 (mulv2si3): Change endian checks.
20434 (sdot_prodv4hi): Rewrite with new calls.
20435 (udot_prodv4hi): New.
20436 (vec_pack_ssat_v4hi): Add endian check.
20437 (vec_pack_usat_v4hi): Ditto.
20438 (vec_pack_ssat_v2si): Ditto.
20439 (max1_even): Rename from max1_r, add endian check.
20440 (max1_odd): Rename from max1_l, add endian check.
20441 (*mux1_rev): Format change.
20442 (*mux1_mix): Ditto.
20443 (*mux1_shuf): Ditto.
20444 (*mux1_alt): Ditto.
20445 (*mux1_brcst_v8qi): Use new predicate.
20446 (vec_extract_evenv8qi): Remove endian check.
20447 (vec_extract_oddv8qi): Ditto.
20448 (vec_interleave_lowv4hi): Format change.
20449 (vec_interleave_highv4hi): Ditto.
20450 (mix2_even): Rename from mix2_r, add endian check.
20451 (mix2_odd): Rename from mux2_l, add endian check.
20452 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20453 (vec_extract_evenodd_helper): Format change.
20454 (vec_extract_evenv4hi): Remove endian check.
20455 (vec_extract_oddv4hi): Remove endian check.
20456 (vec_interleave_lowv2si): Format change.
20457 (vec_interleave_highv2si): Format change.
20458 (vec_initv2si): Remove endian check.
20459 (vecinit_v2si): Add endian check.
20460 (reduc_splus_v2sf): Add endian check.
20461 (reduc_smax_v2sf): Ditto.
20462 (reduc_smin_v2sf): Ditto.
20463 (vec_initv2sf): Remove endian check.
20464 (fpack): Add endian check.
20465 (fswap): Add endian check.
20466 (vec_interleave_highv2sf): Add endian check.
20467 (vec_interleave_lowv2sf): Add endian check.
20468 (fmix_lr): Add endian check.
20469 (vec_setv2sf): Format change.
20470 (*vec_extractv2sf_0_be): Use shift to extract operand.
20471 (*vec_extractv2sf_1_be): New.
20472 (vec_pack_trunc_v4hi): Add endian check.
20473 (vec_pack_trunc_v2si): Format change.
20474
dcde5957
JJ
204752011-02-04 Jakub Jelinek <jakub@redhat.com>
20476
20477 PR inline-asm/23200
20478 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 20479 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
20480 (stmt_is_replaceable_p): New function.
20481 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20482 callers.
20483 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20484 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20485 SSA_NAME_DEF_STMT.
20486 * tree-flow.h (stmt_is_replaceable_p): New prototype.
20487
a64a8e5a
JM
204882011-02-04 Joseph Myers <joseph@codesourcery.com>
20489
20490 * config/rs6000/xilinx.opt: New.
20491 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20492
4da2ed2f
JM
204932011-02-04 Joseph Myers <joseph@codesourcery.com>
20494
20495 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20496
a6e508f9
AS
204972011-02-03 Anatoly Sokolov <aesok@post.ru>
20498
20499 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20500 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20501 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20502 secondary_reload_info, xtensa_secondary_reload): Remove.
20503 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20504 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20505 (xtensa_preferred_reload_class): Make static. Change return and
20506 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20507 Use CONST_DOUBLE_P predicate.
20508 (xtensa_preferred_output_reload_class): New function.
20509 (xtensa_secondary_reload): Make static.
20510
82dc0de3
JM
205112011-02-03 Joseph Myers <joseph@codesourcery.com>
20512
20513 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20514 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20515 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20516
7fece979
JJ
205172011-02-03 Jakub Jelinek <jakub@redhat.com>
20518
20519 PR middle-end/31490
20520 * output.h (SECTION_RELRO): Define.
20521 (SECTION_MACH_DEP): Adjust.
20522 (get_variable_section): New prototype.
20523 * varpool.c (varpool_finalize_named_section_flags): New function.
20524 (varpool_assemble_pending_decls): Call it.
20525 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20526 * cgraphunit.c (cgraph_output_in_order): Call
20527 varpool_finalize_named_section_flags.
20528 * varasm.c (get_section): Allow section flags conflicts between
20529 relro and read-only sections if the section hasn't been declared yet.
20530 Set SECTION_OVERRIDE after diagnosing section type conflict.
20531 (get_variable_section): No longer static.
20532 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20533 readonly sections that need relocations.
20534 (decl_readonly_section_1): New function.
20535 (decl_readonly_section): Use it.
20536
20537 Revert:
509d65dd 20538 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
20539 Steve Ellcey <sje@cup.hp.com>
20540
20541 PR middle-end/31490
20542 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20543 if section attribute used.
20544
d18d5478
JJ
205452011-02-03 Jakub Jelinek <jakub@redhat.com>
20546
20547 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20548 * config/darwin.c (SECTION_NO_ANCHOR): Define.
20549 (darwin_init_sections): Remove assertion.
20550
6479ed4b
NC
205512011-02-03 Nick Clifton <nickc@redhat.com>
20552
20553 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20554 lt and ge.
38be4072 20555 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
20556 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20557 instead of "n" and "pz".
20558 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20559 CC_FLAG_S.
20560
89843f5d
JJ
205612011-02-03 Jakub Jelinek <jakub@redhat.com>
20562
65450d64
JJ
20563 PR target/47312
20564 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20565 fma, expand FMA_EXPR as fma{,f,l} call.
20566
7d58701c
JJ
20567 PR lto/47274
20568 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20569 copy them into a unsigned char variable and pass address of it to
20570 lto_output_data_stream.
20571
89843f5d
JJ
20572 PR target/47564
20573 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20574 around backend_init_target and lang_dependent_init_target calls.
20575 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20576 (verify_cgraph_node): Don't call set_cfun here. Use
20577 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20578 Set error_found for incorrectly represented calls to thunks.
20579
4deef538
AO
205802011-02-03 Alexandre Oliva <aoliva@redhat.com>
20581
20582 PR debug/43092
20583 PR rtl-optimization/43494
20584 * rtl.h (for_each_inc_dec_fn): New type.
20585 (for_each_inc_dec): Declare.
20586 * rtlanal.c (struct for_each_inc_dec_ops): New type.
20587 (for_each_inc_dec_find_inc_dec): New fn.
20588 (for_each_inc_dec_find_mem): New fn.
20589 (for_each_inc_dec): New fn.
20590 * dse.c (struct insn_size): Remove.
20591 (replace_inc_dec, replace_inc_dec_mem): Remove.
20592 (emit_inc_dec_insn_before): New fn.
20593 (check_for_inc_dec): Use it, along with for_each_inc_dec.
20594 (canon_address): Pass mem modes to cselib_lookup.
20595 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
20596 (cselib_lookup_from_insn): Likewise.
20597 (cselib_subst_to_values): Likewise.
20598 * cselib.c (find_slot_memmode): New var.
20599 (cselib_find_slot): New fn. Use it instead of
20600 htab_find_slot_with_hash everywhere.
20601 (entry_and_rtx_equal_p): Use find_slot_memmode.
20602 (autoinc_split): New fn.
20603 (rtx_equal_for_cselib_p): Rename and implement in terms of...
20604 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
20605 Deal with autoinc. Special-case recursion into MEMs.
20606 (cselib_hash_rtx): Likewise.
20607 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
20608 address and MEM modes.
20609 (cselib_subst_to_values): Add memmode, pass it on.
20610 Deal with autoinc.
20611 (cselib_lookup): Add memmode argument, pass it on.
20612 (cselib_lookup_from_insn): Add memmode.
20613 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20614 (struct cselib_record_autoinc_data): New.
20615 (cselib_record_autoinc_cb): New fn.
20616 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
20617 mode to cselib_lookup. Reset autoinced REGs here instead of...
20618 (cselib_process_insn): ... here.
20619 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20620 to cselib_lookup.
20621 (add_uses): Likewise, also to cselib_subst_to_values.
20622 (add_stores): Likewise.
20623 * sched-deps.c (add_insn_mem_dependence): Pass mode to
20624 cselib_subst_to_values.
20625 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
20626 * gcse.c (do_local_cprop): Adjusted.
20627 * postreload.c (reload_cse_simplify_set): Adjusted.
20628 (reload_cse_simplify_operands): Adjusted.
20629 * sel-sched-dump (debug_mem_addr_value): Pass mode.
20630
1551d44a
AO
206312011-02-03 Alexandre Oliva <aoliva@redhat.com>
20632
20633 PR tree-optimization/45122
20634 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20635 unsafe assumptions when there's more than one loop exit.
20636
c9485473
MM
206372011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
20638
20639 PR target/47272
20640 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20641 Document using vector double with the load/store builtins, and
20642 that the load/store builtins always use Altivec instructions.
20643
20644 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20645 to use altivec memory instructions, even on VSX.
20646 (vector_altivec_store_<mode>): Ditto.
20647
20648 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20649 function.
20650
20651 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20652 V2DF, V2DI support to load/store overloaded builtins.
20653
20654 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20655 altivec load/store builtins for V2DF/V2DI types.
20656
20657 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20658 set avoid indexed addresses on power6 if -maltivec.
20659 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20660 vector_altivec_load/vector_altivec_store builtins.
20661 (altivec_expand_st_builtin): Ditto.
20662 (altivec_expand_builtin): Add VSX memory builtins.
20663 (rs6000_init_builtins): Add V2DI types to internal types.
20664 (altivec_init_builtins): Add support for V2DF/V2DI altivec
20665 load/store builtins.
20666 (rs6000_address_for_altivec): Insure memory address is appropriate
20667 for Altivec.
20668
20669 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20670 vec_vsx_ld and vec_vsx_st.
20671 (vsx_store_<mode>): Ditto.
20672
20673 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20674 variables to hold long long types for VSX vector memory builtins.
20675 (RS6000_BTI_unsigned_long_long): Ditto.
20676 (long_long_integer_type_internal_node): Ditti.
20677 (long_long_unsigned_type_internal_node): Ditti.
20678
20679 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20680 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20681 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20682
20683 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20684 short cuts.
20685 (vec_vsx_st): Ditto.
20686
b24d1acf
JM
206872011-02-02 Joseph Myers <joseph@codesourcery.com>
20688
20689 * config/pa/pa-hpux10.opt: New.
20690 * config/hpux11.opt (pthread): New Driver option.
20691 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20692 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20693
aa18dd0f
JM
206942011-02-02 Joseph Myers <joseph@codesourcery.com>
20695
20696 * config/ia64/vms.opt: New.
20697 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
20698
28fc3eee
MM
206992011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
20700
20701 PR target/47580
20702 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
20703 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
20704 generator functions.
20705 (vsx_floatuns<VSi><mode>2): Ditto.
20706 (vsx_fix_trunc<mode><VSi>2): Ditto.
20707 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
20708
b5838b1f
JM
207092011-02-02 Joseph Myers <joseph@codesourcery.com>
20710
20711 * config/i386/djgpp.opt (posix): New Driver option.
20712
0db8fa89
GP
207132011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
20714
20715 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
20716 Move to the unsupported targets list.
20717
9cd4f22a
PB
207182011-02-02 Peter Bergner <bergner@vnet.ibm.com>
20719
20720 PR rtl-optimization/47525
20721 * df-scan.c: Update copyright years.
20722 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
20723 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
20724
9ed8059c
RO
207252011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20726
20727 * config/i386/sysv4.h (TARGET_VERSION): Remove.
20728 (SUBTARGET_RETURN_IN_MEMORY): Remove.
20729 (ASM_OUTPUT_ASCII): Remove.
20730 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
20731
2a737389
JL
207322011-02-02 Jeff Law <law@redhat.com>
20733
20734 PR middle-end/47543
20735 * reload.c (find_reloads_address): Handle reg+d address where both
20736 components are invalid by reloading the entire address.
20737
9dac82c4
SP
207382011-02-02 Sebastian Pop <sebastian.pop@amd.com>
20739 Richard Guenther <rguenther@suse.de>
20740
20741 PR tree-optimization/40979
20742 PR bootstrap/47044
20743 * passes.c (init_optimization_passes): After LIM call copy_prop
20744 and DCE to clean up.
20745 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
20746
14dd9aab
SP
207472011-02-02 Sebastian Pop <sebastian.pop@amd.com>
20748
20749 PR tree-optimization/47576
20750 PR tree-optimization/47555
20751 * doc/invoke.texi (scev-max-expr-complexity): Documented.
20752 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20753 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
20754 * tree-scalar-evolution.c (follow_ssa_edge): Use
20755 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
20756
5cbf5c20
RG
207572011-02-02 Richard Guenther <rguenther@suse.de>
20758
20759 PR tree-optimization/47566
20760 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
20761
83d70792
AO
207622011-02-02 Alexandre Oliva <aoliva@redhat.com>
20763
e829c321
AO
20764 PR debug/47106
20765 PR debug/47402
20766 * tree-inline.c (declare_return_variable): Remove unused caller
20767 variable.
20768
83d70792
AO
20769 PR debug/47106
20770 PR debug/47402
20771 * tree-flow-inline.h (clear_is_used, is_used_p): New.
20772 * cfgexpand.c (account_used_vars_for_block): Use them.
20773 * tree-nrv.c (tree_nrv): Likewise.
20774 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
20775 (dump_scope_block): Likewise.
20776 (remove_unused_locals): Likewise.
20777
aaa2ac93
AO
20778 PR debug/47106
20779 PR debug/47402
20780 * tree-inline.c (declare_return_variable): Add result decl to
20781 local decls only once.
20782 * gimple-low.c (record_vars_into): Mark newly-created variables
20783 as referenced.
20784
a59d15cf
AO
207852011-02-02 Alexandre Oliva <aoliva@redhat.com>
20786
20787 PR debug/47498
20788 PR debug/47501
20789 PR debug/45136
20790 PR debug/45130
20791 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20792 debug insns.
20793 (no_real_insns_p, schedule_block, set_priorities): Drop special
20794 treatment of boundary debug insns.
38be4072 20795 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
20796 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
20797 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20798 (BOUNDARY_DEBUG_INSN_P): Likewise.
20799 (SCHEDULE_DEBUG_INSN_P): Likewise.
20800 * sched-rgn.c (init_ready_list): Drop special treatment of
20801 boundary debug insns.
20802 * final.c (rest_of_clean_state): Clear notes' BB.
20803
6fc2f091
JM
208042011-02-01 Joseph Myers <joseph@codesourcery.com>
20805
20806 * config/openbsd.opt (assert=): New Driver option.
20807
fc523387
JM
208082011-02-01 Joseph Myers <joseph@codesourcery.com>
20809
20810 * config/i386/nto.opt: New.
20811 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
20812
6d9821e5
JM
208132011-02-01 Joseph Myers <joseph@codesourcery.com>
20814
20815 * config/i386/netware.opt: New.
20816 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
20817
cef932d4
JM
208182011-02-01 Joseph Myers <joseph@codesourcery.com>
20819
20820 * config/interix.opt (posix): New Driver option.
20821
22843acd
DD
208222011-02-01 DJ Delorie <dj@redhat.com>
20823
56490b74
DD
20824 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
20825
22843acd
DD
20826 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
20827 class for A0/A1.
20828
199c8f2f
SP
208292011-02-01 Sebastian Pop <sebastian.pop@amd.com>
20830
20831 PR tree-optimization/47561
20832 * toplev.c (process_options): Print the Graphite flags. Add
20833 flag_loop_flatten to the list of options requiring Graphite.
20834
926bcf22
JM
208352011-02-01 Joseph Myers <joseph@codesourcery.com>
20836
20837 * config/i386/cygming.opt (posix): New Driver option.
20838
59793c51
JM
208392011-02-01 Joseph Myers <joseph@codesourcery.com>
20840
20841 * config/arm/vxworks.opt: New.
20842 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
20843
183c38a4
JM
208442011-02-01 Joseph Myers <joseph@codesourcery.com>
20845
20846 * config/alpha/elf.opt: New.
20847 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
20848 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
20849
9939e416
RG
208502011-02-01 Richard Guenther <rguenther@suse.de>
20851
20852 PR tree-optimization/47559
20853 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
20854 store-motion on references that can throw.
20855
4a3c9687
BS
208562011-02-01 Bernd Schmidt <bernds@codesourcery.com>
20857
20858 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
20859 * tree-pass.h (TDF_CSELIB): New macro.
20860 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
20861 cselib_lookup): Check for it rather than for TDF_DETAILS.
20862
dd3b31fb
L
208632011-02-01 H.J. Lu <hongjiu.lu@intel.com>
20864
20865 PR driver/47547
20866 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
20867 is HOST_BIT_BUCKET.
20868
20869 * opts.c (finish_options): Don't add x_aux_base_name if it is
20870 HOST_BIT_BUCKET.
20871
34c1de79
RG
208722011-02-01 Richard Guenther <rguenther@suse.de>
20873
20874 PR tree-optimization/47555
20875 Revert
20876 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
20877
20878 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
20879
dd2804d2
SB
208802011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
20881
20882 PR gcc/46692
20883 * config/lm32/t-lm32: Add multilib for all CPU options.
20884
3fd3b156
RG
208852011-02-01 Richard Guenther <rguenther@suse.de>
20886
20887 PR tree-optimization/47541
20888 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
20889 sure to have a field at offset zero.
20890
f16072b6
JM
208912011-01-31 Joseph Myers <joseph@codesourcery.com>
20892
20893 * config/arc/arc.opt (EB, EL): New Driver options.
20894
6456cf2e
JM
208952011-01-31 Joseph Myers <joseph@codesourcery.com>
20896
20897 * config/alpha/osf5.opt: New.
20898 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
20899
cdde6ab4
JM
209002011-01-31 Joseph Myers <joseph@codesourcery.com>
20901
20902 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
20903
7633415c
SP
209042011-01-31 Sebastian Pop <sebastian.pop@amd.com>
20905
20906 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
20907 -floop-interchange.
20908 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
20909 is an alias of -floop-interchange and that it requires the
20910 Graphite infrastructure.
20911 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
20912 flag_loop_interchange based on the value of flag_tree_loop_linear.
20913
0425d6f5
JJ
209142011-01-31 Jakub Jelinek <jakub@redhat.com>
20915 Richard Guenther <rguenther@suse.de>
20916
20917 PR tree-optimization/47538
20918 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
20919 type instead of r1type, except for comparisons. For right
20920 shifts and comparisons punt if there are mismatches in
20921 sizetype vs. non-sizetype types.
20922
500b16c3
RO
209232011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20924
20925 * doc/sourcebuild.texi (Effective-Target Keywords): Document
20926 avx_runtime.
20927
e279edb0
RO
209282011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20929
20930 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
20931 version number.
20932 * configure: Regenerate.
20933
c6092243
RO
209342011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20935
20936 * configure.ac (gcc_cv_ld_static_option): Define.
20937 (gcc_cv_ld_dynamic_option): Define.
20938 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
20939 instead.
20940 (HAVE_LD_STATIC_DYNAMIC): Update message.
20941 (LD_STATIC_OPTION): Define.
20942 (LD_DYNAMIC_OPTION): Define.
20943 * configure: Regenerate.
20944 * config.in: Regenerate.
20945 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
20946 HAVE_LD_STATIC_DYNAMIC]: Use them.
20947
d7862be3
NC
209482011-01-31 Nick Clifton <nickc@redhat.com>
20949
20950 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
20951 registers inside interrupt handlers if the handler is not a leaf
20952 function.
20953
ba4ec0e0
NC
209542011-01-31 Nick Clifton <nickc@redhat.com>
20955
20956 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
20957 reg_renumber returning an INVALID_REGNUM.
20958
29a63921
AO
209592011-01-31 Alexandre Oliva <aoliva@redhat.com>
20960
20961 PR libgcj/44341
20962 * doc/install.texi: Document host options discarded when cross
20963 configuring target libraries.
20964
ef591d3f
AO
209652011-01-31 Alexandre Oliva <aoliva@redhat.com>
20966
20967 Reverted:
20968 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
20969 PR debug/45136
20970 PR debug/45130
20971 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
20972 debug insns.
20973 (no_real_insns_p, schedule_block, set_priorities): Drop special
20974 treatment of boundary debug insns.
38be4072 20975 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
20976 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
20977 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
20978 (BOUNDARY_DEBUG_INSN_P): Likewise.
20979 (SCHEDULE_DEBUG_INSN_P): Likewise.
20980 * sched-rgn.c (init_ready_list): Drop special treatment of
20981 boundary debug insns.
20982 * final.c (rest_of_clean-state): Clear notes' BB.
20983
61052244
AM
209842011-01-31 Alan Modra <amodra@gmail.com>
20985
20986 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
20987 toc relative expressions as we do in print_operand_address.
20988
c4c8962b
KH
209892011-01-30 Kazu Hirata <kazu@codesourcery.com>
20990
20991 * doc/extend.texi: Follow spelling conventions.
20992 * doc/invoke.texi: Fix a typo.
20993
e543b94c
JM
209942011-01-30 Joseph Myers <joseph@codesourcery.com>
20995
20996 * config/hpux11.opt: New.
20997 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
20998 ia64*-*-hpux*): Use hpux11.opt.
20999
509d65dd 210002011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
21001
21002 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21003 to tmake_file.
21004
7be03a0e
GP
210052011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21006
21007 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21008 support sites.
21009
419d1d37
GP
210102011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21011
b596ed64
GP
21012 * doc/install.texi (Binaries): Remove outdated reference for
21013 Motorola 68HC11/68HC12 downloads.
21014
210152011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 21016
419d1d37
GP
21017 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21018 Drepper's paper.
21019
4406d0e9
JW
210202011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
21021
21022 PR bootstrap/47147
21023 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21024 used by NetBSD.
21025
38be4072 210262011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
21027
21028 * value-prof.c (check_counter): Corrected error message.
21029
0cd98787
JZ
210302011-01-29 Jie Zhang <jie@codesourcery.com>
21031
21032 * config/arm/arm.c (arm_legitimize_reload_address): New.
21033 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21034 arm_legitimize_reload_address.
38be4072 21035 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 21036
9b798ac5
ILT
210372011-01-28 Ian Lance Taylor <iant@google.com>
21038
21039 * godump.c (go_define): Ignore macros whose definitions include
21040 two adjacent operands.
21041
591e29d9
JJ
210422011-01-28 Jakub Jelinek <jakub@redhat.com>
21043
21044 PR target/42894
21045 * varasm.c (force_const_mem): Store copy of x in desc->constant
21046 instead of x itself.
21047 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21048 itself into REG_EQUAL note.
21049
62dcc44a
JM
210502011-01-28 Joseph Myers <joseph@codesourcery.com>
21051
21052 * config/freebsd.opt (posix, rdynamic): New Driver options.
21053
c9f58b9a
RO
210542011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21055
21056 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21057 -Bstatic/-Bdynamic.
21058 * configure: Regenerate.
21059
5f02b9db
JM
210602011-01-27 Joseph Myers <joseph@codesourcery.com>
21061
21062 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21063 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21064
5df97412
AS
210652011-01-27 Anatoly Sokolov <aesok@post.ru>
21066
21067 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21068 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21069 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21070 (s390_preferred_reload_class): Make static. Change return and
21071 'rclass' argument type to reg_class_t.
21072
779d4b91
JH
210732011-01-27 Jan Hubicka <jh@suse.cz>
21074
21075 PR middle-end/46949
21076 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21077 (process_function_and_variable_attributes): Check defined weakrefs.
21078
e80b21ed
MJ
210792011-01-27 Martin Jambor <mjambor@suse.cz>
21080
21081 PR tree-optimization/47228
21082 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21083 build_ref_for_offset.
21084
6dcc4f31
UW
210852011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21086
21087 * config/spu/spu-elf.h (ASM_SPEC): Remove.
21088
509d65dd 210892011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
21090
21091 PR rtl-optimization/46856
21092 * postreload.c (reload_combine_recognize_const_pattern): Do not
21093 separate cc0 setter and user on cc0 targets.
21094
04af8788
NP
210952011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
21096
21097 PR c/43082
21098 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21099 passed a VOID_TYPE expression, immediately emit an error and
21100 return error_mark_node.
21101
f7a60085
JL
211022011-01-26 Jeff Law <law@redhat.com>
21103
21104 PR rtl-optimization/47464
21105 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21106 rather than may_trap_p as needed.
21107
5c2917ec
DD
211082011-01-26 DJ Delorie <dj@redhat.com>
21109
21110 PR rtl-optimization/46878
21111 * combine.c (insn_a_feeds_b): Check for the implicit cc0
21112 setter/user dependency as well.
21113
bef16e87
EB
211142011-01-26 Eric Botcazou <ebotcazou@adacore.com>
21115
21116 PR rtl-optimization/44469
21117 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21118 after removing trivially dead basic blocks.
21119
c75d884b
JM
211202011-01-26 Joseph Myers <joseph@codesourcery.com>
21121
21122 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21123 * config/frv/frv.h (LINK_SPEC): Likewise.
21124 * config/i386/netware.h (LINK_SPEC): Likewise.
21125 * config/m68k/linux.h (ASM_SPEC): Likewise.
21126 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21127 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21128 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21129 * config/sparc/linux.h (ASM_SPEC): Likewise.
21130 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21131 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21132
d3153553
JM
211332011-01-26 Joseph Myers <joseph@codesourcery.com>
21134
21135 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21136 * config/frv/frv.h (ASM_SPEC): Likewise.
21137 * config/m68k/linux.h (ASM_SPEC): Likewise.
21138 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21139 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21140 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21141 * config/sparc/linux.h (ASM_SPEC): Likewise.
21142 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21143 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21144
b89b1e9d
JM
211452011-01-26 Joseph Myers <joseph@codesourcery.com>
21146
21147 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21148 * config/frv/frv.h (LINK_SPEC): Likewise.
21149 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21150
12eb1a9c
JM
211512011-01-26 Joseph Myers <joseph@codesourcery.com>
21152
21153 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21154 * config/frv/frv.h (ASM_SPEC): Likewise.
21155 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21156 * config/m68k/linux.h (ASM_SPEC): Likewise.
21157 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21158 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21159 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21160 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21161 * config/sparc/linux.h (ASM_SPEC): Likewise.
21162 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21163 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21164 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21165
e435f098
SE
211662011-01-26 Steve Ellcey <sje@cup.hp.com>
21167
21168 PR target/46997
21169 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21170 (*mux2): Ditto.
21171 (vec_extract_evenodd_help): Ditto.
21172 (vec_extract_evenv4hi): Ditto.
21173 (vec_extract_oddv4hi): Ditto.
21174 (vec_interleave_lowv2si): Ditto.
21175 (vec_interleave_highv2si): Ditto.
21176 (vec_extract_evenv2si): Ditto.
21177 (vec_extract_oddv2si: Ditto.
21178 (vec_pack_trunc_v2si): Ditto.
21179
34f0eee0
JH
211802011-01-22 Jan Hubicka <jh@suse.cz>
21181
21182 PR target/47237
21183 * cgraph.h (cgraph_local_info): New field can_change_signature.
21184 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21185 signature can change.
21186 (ipcp_estimate_growth): Call sequence simplify only if calle signature
21187 can change.
21188 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21189 (cgraph_function_versioning): We can not change signature of functions
21190 that don't allow that.
21191 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21192 (lto_input_node): Likewise.
38be4072
UB
21193 * ipa-inline.c (compute_inline_parameters): Compute
21194 local.can_change_signature.
34f0eee0 21195 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
21196 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21197 functions that can not change signature.
34f0eee0 21198 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
21199 init_cumulative_args): Do not use local calling conventions
21200 for functions that can not change signature.
34f0eee0 21201
980ca891
JH
212022011-01-22 Jan Hubicka <jh@suse.cz>
21203
21204 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21205
768e3c60
RG
212062011-01-26 Richard Guenther <rguenther@suse.de>
21207
21208 PR tree-optimization/47190
61052244
AM
21209 * cgraphunit.c (process_common_attributes): New function.
21210 (process_function_and_variable_attributes): Use it.
768e3c60 21211
21d6a1c7
RG
212122011-01-26 Richard Guenther <rguenther@suse.de>
21213
21214 PR lto/47423
21215 * cgraphbuild.c (record_eh_tables): Record reference to personality
21216 function.
21217
48bb58b1
AO
212182011-01-26 Alexandre Oliva <aoliva@redhat.com>
21219
21220 PR debug/45454
21221 * sel-sched.c (moveup_expr): Don't let debug insns prevent
21222 non-debug insns from moving up.
21223
58c741a6
DK
212242011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21225
21226 PR target/40125
21227 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21228 t-dlldir{,-x} fragment for build and add it to tmake_file.
21229 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21230 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21231 * config/i386/t-dlldir: New file.
21232 (SHLIB_DLLDIR): Define.
21233 * config/i386/t-dlldir-x: New file.
21234 (SHLIB_DLLDIR): Define.
21235 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21236 (SHLIB_INSTALL): Use it.
21237
bff99262
CLT
212382011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
21239
21240 PR target/47246
21241 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21242 lower bound of the allowed Thumb-2 coprocessor load/store
21243 index range to -256. Add explaining comment.
21244
82c03907
ILT
212452011-01-25 Ian Lance Taylor <iant@google.com>
21246
21247 * godump.c (go_define): Improve lexing of macro expansion to only
21248 accept expressions which match Go spec.
21249
47ea1edf
DK
212502011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21251
d4dba752 21252 PR c++/43601
47ea1edf
DK
21253 * tree.c (handle_dll_attribute): Handle it.
21254 * doc/extend.texi (@item dllexport): Mention it.
21255 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21256
744f0946
ILT
212572011-01-25 Ian Lance Taylor <iant@google.com>
21258
21259 PR tree-optimization/26854
21260 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21261 (decl_jump_unsafe): Move higher in file, with no other change.
21262 (bind): Set has_jump_unsafe_decl if appropriate.
21263 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21264 (check_earlier_gotos): Likewise.
21265 (c_check_switch_jump_warnings): Likewise.
21266
5734f2b3
JW
212672011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
21268
21269 * doc/invoke.texi (Warning Options): Add missing hyphen.
21270 (-fprofile-dir): Minor grammatical fixes.
21271 (-fbranch-probabilities): Likewise.
21272
9bdbdcef
AO
212732011-01-25 Alexandre Oliva <aoliva@redhat.com>
21274
21275 PR debug/45136
21276 PR debug/45130
21277 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21278 debug insns.
21279 (no_real_insns_p, schedule_block, set_priorities): Drop special
21280 treatment of boundary debug insns.
38be4072 21281 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
21282 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21283 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21284 (BOUNDARY_DEBUG_INSN_P): Likewise.
21285 (SCHEDULE_DEBUG_INSN_P): Likewise.
21286 * sched-rgn.c (init_ready_list): Drop special treatment of
21287 boundary debug insns.
21288 * final.c (rest_of_clean-state): Clear notes' BB.
21289
b305e3da
SP
212902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21291
21292 * Makefile.in (LAMBDA_H): Removed.
21293 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21294 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21295 lambda-trans.o, and tree-loop-linear.o.
21296 (lto-symtab.o): Remove dependence on LAMBDA_H.
21297 (tree-loop-linear.o): Remove rule.
21298 (lambda-mat.o): Same.
21299 (lambda-trans.o): Same.
21300 (lambda-code.o): Same.
21301 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21302 (tree-vect-slp.o): Same.
21303 * hwint.h (gcd): Moved here.
21304 (least_common_multiple): Same.
21305 * lambda-code.c: Removed.
21306 * lambda-mat.c: Removed.
21307 * lambda-trans.c: Removed.
21308 * lambda.h: Removed.
21309 * tree-loop-linear.c: Removed.
21310 * lto-symtab.c: Do not include lambda.h.
21311 * omega.c (gcd): Removed.
21312 * passes.c (init_optimization_passes): Remove pass_linear_transform.
21313 * tree-data-ref.c (print_lambda_vector): Moved here.
21314 (lambda_vector_copy): Same.
21315 (lambda_matrix_copy): Same.
21316 (lambda_matrix_id): Same.
21317 (lambda_vector_first_nz): Same.
21318 (lambda_matrix_row_add): Same.
21319 (lambda_matrix_row_exchange): Same.
21320 (lambda_vector_mult_const): Same.
21321 (lambda_vector_negate): Same.
21322 (lambda_matrix_row_negate): Same.
21323 (lambda_vector_equal): Same.
21324 (lambda_matrix_right_hermite): Same.
21325 * tree-data-ref.h: Do not include lambda.h.
21326 (lambda_vector): Moved here.
21327 (lambda_matrix): Same.
21328 (dependence_level): Same.
21329 (lambda_transform_legal_p): Removed declaration.
21330 (lambda_collect_parameters): Same.
21331 (lambda_compute_access_matrices): Same.
21332 (lambda_vector_gcd): Same.
21333 (lambda_vector_new): Same.
21334 (lambda_vector_clear): Same.
21335 (lambda_vector_lexico_pos): Same.
21336 (lambda_vector_zerop): Same.
21337 (lambda_matrix_new): Same.
21338 * tree-flow.h (least_common_multiple): Removed declaration.
21339 * tree-parloops.c (lambda_trans_matrix): Moved here.
21340 (LTM_MATRIX): Same.
21341 (LTM_ROWSIZE): Same.
21342 (LTM_COLSIZE): Same.
21343 (LTM_DENOMINATOR): Same.
21344 (lambda_trans_matrix_new): Same.
21345 (lambda_matrix_vector_mult): Same.
21346 (lambda_transform_legal_p): Same.
21347 * tree-pass.h (pass_linear_transform): Removed declaration.
21348 * tree-ssa-loop.c (tree_linear_transform): Removed.
21349 (gate_tree_linear_transform): Removed.
21350 (pass_linear_transform): Removed.
21351 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21352 flag_loop_interchange.
21353
6bdfdb96
JJ
213542011-01-25 Jakub Jelinek <jakub@redhat.com>
21355
21356 PR tree-optimization/47265
21357 PR tree-optimization/47443
21358 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21359 if name still has some uses.
21360
e4cba915
MJ
213612011-01-25 Martin Jambor <mjambor@suse.cz>
21362
21363 PR tree-optimization/47382
21364 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21365 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21366
509d65dd 213672011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
21368
21369 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21370 sjlj_except_unwind_info.
21371
194313e2
RG
213722011-01-25 Richard Guenther <rguenther@suse.de>
21373
21374 PR tree-optimization/47426
21375 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21376 visible functions results escape.
21377
147a0bcf
JJ
213782011-01-25 Jakub Jelinek <jakub@redhat.com>
21379
21380 PR target/45701
21381 * config/arm/arm.c (any_sibcall_uses_r3): New function.
21382 (arm_get_frame_offsets): Use it.
21383
db963b52
SP
213842011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21385 Jakub Jelinek <jakub@redhat.com>
21386
21387 PR tree-optimization/47271
21388 * tree-if-conv.c (bb_postdominates_preds): New.
21389 (if_convertible_bb_p): Call bb_postdominates_preds.
21390 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21391 (predicate_scalar_phi): Call bb_postdominates_preds.
21392
bcddd3b9
NC
213932011-01-25 Nick Clifton <nickc@redhat.com>
21394
21395 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
21396 * config/rx/rx.c (rx_function_value): Likewise.
21397 (rx_promote_function_mode): Likewise.
21398 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
21399 in order to make it legitimate.
38be4072
UB
21400 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
21401 make sure that the first operand is the same as the result register.
bcddd3b9
NC
21402 (addsi3_unspec): Delete.
21403 (subdi3): Do not accept immediate operands.
21404 (subdi3_internal): Likewise.
21405
7e6cb022
JL
214062011-01-25 Jeff Law <law@redhat.com>
21407
21408 PR rtl-optimization/37273
21409 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21410 handle them like argument loads from stack slots. Do not double
21411 count memory for memory constants and argument loads from stack slots.
21412
9ffa621e
JJ
214132011-01-25 Jakub Jelinek <jakub@redhat.com>
21414
21415 PR tree-optimization/47427
21416 PR tree-optimization/47428
21417 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21418 coalesce if the new root var would be TREE_READONLY.
21419
5bd6e652
RG
214202011-01-25 Richard Guenther <rguenther@suse.de>
21421
21422 PR middle-end/47414
21423 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21424 correct type for TBAA.
21425
7c48ea69
SP
214262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21427
21428 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21429 (close_phi_written_to_memory): Call for_each_index with
21430 dr_indices_valid_in_loop.
21431
38013f25
SP
214322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21433
21434 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21435 when it is initialized.
21436
5c640e29
SP
214372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21438
21439 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21440 call to graphite_find_data_references_in_stmt.
21441 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21442 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
21443 call to graphite_find_data_references_in_stmt.
21444 (analyze_drs_in_stmts): Same.
21445 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21446 in which the scalar analysis of indices is performed.
21447 (create_data_ref): Same. Update call to dr_analyze_indices.
21448 (find_data_references_in_stmt): Update call to create_data_ref.
21449 (graphite_find_data_references_in_stmt): Same.
21450 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21451 declaration.
21452 (create_data_ref): Same.
21453 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21454 call to create_data_ref.
21455
ac53c069
SP
214562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21457
21458 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 21459 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 21460
3d17df15
SP
214612011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21462
21463 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21464 VAR_DECL, PARM_DECL, and RESULT_DECL.
21465
c513da01
SP
214662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21467
21468 * graphite-dependences.c (reduction_dr_1): Allow several reductions
21469 in a reduction PBB.
21470 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21471 that have already been marked as PBB_IS_REDUCTION.
21472
3a292d59
SP
214732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21474
21475 * graphite-scop-detection.c (same_close_phi_node): New.
21476 (remove_duplicate_close_phi): New.
21477 (make_close_phi_nodes_unique): New.
21478 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21479
ba858447
SP
214802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21481
21482 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21483 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21484 of both data references to be the same.
21485
8d865c56
SP
214862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21487
38be4072
UB
21488 * graphite-dependences.c (build_lexicographical_constraint): Remove
21489 the gdim parameter.
21490 (build_lexicographical_constraint): Adjust call to
21491 ppl_powerset_is_empty.
8d865c56
SP
21492 (dependence_polyhedron): Same.
21493 (graphite_legal_transform_dr): Same.
21494 (graphite_carried_dependence_level_k): Same.
38be4072
UB
21495 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21496 parameter.
8d865c56
SP
21497 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21498
50034a36
SP
214992011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21500
21501 * graphite-sese-to-poly.c
21502 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21503 (close_phi_written_to_memory): New.
21504 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21505 and unshare_expr.
21506
0deada9e
SP
215072011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21508
21509 * doc/install.texi: Update the expected version number of PPL to 0.11.
21510 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21511 #if PPL_VERSION_MINOR < 11.
21512
d7d3d6af
SP
215132011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21514
21515 * graphite-dependences.c: Include graphite-cloog-util.h.
21516 (new_poly_ddr): Inlined into dependence_polyhedron.
21517 (free_poly_ddr): Moved close by new_poly_ddr.
21518 (dependence_polyhedron_1): Renamed dependence_polyhedron.
21519 Early return NULL when ppl_powerset_is_empty returns true.
21520 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
21521 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
21522 (graphite_legal_transform_dr): Call new_poly_ddr.
21523 (graphite_carried_dependence_level_k): Same.
21524 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
21525 (dot_transformed_deps_stmt_1): Removed.
21526 (dot_deps_stmt_1): Call dot_deps_stmt_2.
21527 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
21528 (dot_deps_1): Call dot_deps_2.
21529 * Makefile.in (graphite-dependences.o): Add missing dependence on
21530 graphite-cloog-util.h.
21531
28c5db57
SP
215322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21533
21534 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21535 (build_lexicographical_constraint): Same.
21536 (dependence_polyhedron_1): Same.
21537 (graphite_legal_transform_dr): Same.
21538 (graphite_carried_dependence_level_k): Same.
21539 * graphite-ppl.c (ppl_powerset_is_empty): New.
21540 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21541 * tree-data-ref.c (dump_data_reference): Print the basic block index.
21542
5168d98f
SP
215432011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21544
21545 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21546 the "a followed by b" relation and document it.
21547
4a40293a
SP
215482011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21549
21550 * graphite-dependences.c (build_lexicographical_constraint): Stop the
21551 iteration when the bag of constraints is empty.
21552
271fb6fa
SP
215532011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21554
21555 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21556
92d23680
SP
215572011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21558
21559 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21560 nest and two loop depths as parameters.
21561 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21562 lst_perfect_nestify.
21563
2f51deff
SP
215642011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21565
21566 * graphite-dependences.c (print_pddr): Call
21567 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21568
07f3593c
SP
215692011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21570
21571 * graphite-ppl.c (debug_gmp_value): New.
21572 * graphite-ppl.h (debug_gmp_value): Declared.
21573
3fae6099
TG
215742011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
21575
21576 * doc/install.texi: Document availability of cloog-0.16.
21577
1c3ba85b
SP
215782011-01-25 Vladimir Kargov <kargov@gmail.com>
21579
21580 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21581 invalid postdominance info.
21582
e8ba94fc
JH
215832011-01-24 Jan Hubicka <jh@suse.cz>
21584
21585 PR c/21659
21586 * doc/extend.texi (weak pragma): Drop claim that it must
21587 appear before definition.
21588 * varasm.c (merge_weak, declare_weak): Only sanity check
21589 that DECL is not output at a time it is declared weak.
21590
2b6e2d13
KZ
215912011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
21592
21593 * machmode.def: Fixed comments.
1c3ba85b 21594
9841210f
KT
215952011-01-24 Kai Tietz <kai.tietz@onevision.com>
21596
21597 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21598
215992011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
21600
21601 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 21602 WORDS_BIG_ENDIAN.
e046112d 21603
a6c5070a
L
216042011-01-24 H.J. Lu <hongjiu.lu@intel.com>
21605
21606 PR target/46519
21607 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21608 (block_info): Add scanned and prev.
21609 (move_or_delete_vzeroupper_2): Return if the basic block
21610 has been scanned and the upper 128bit state is unchanged
21611 from the last scan.
21612 (move_or_delete_vzeroupper_1): Return true if the exit
21613 state is changed.
21614 (move_or_delete_vzeroupper): Visit basic blocks using the
21615 work-list based algorithm based on vt_find_locations in
21616 var-tracking.c.
21617
21618 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21619
a40d79d7
NC
216202011-01-24 Nick Clifton <nickc@redhat.com>
21621
21622 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21623 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21624 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
21625 then define __v850e1__.
21626 * doc/invoke.texi: Document -mv850es.
21627
440eb8de
RH
216282011-01-24 Richard Henderson <rth@redhat.com>
21629
21630 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21631 compound unordered comparisons.
21632 * config/rx/rx.c (rx_split_fp_compare): Remove.
21633 * config/rx/rx-protos.h: Update.
21634 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21635 (cbranchsf4): Don't call rx_split_fp_compare.
21636 (*cbranchsf4): Use rx_split_cbranch.
21637 (*cmpsf): Don't accept "i" constraint.
21638 (*conditional_branch): Only valid after reload.
21639 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
21640
3ff79f99
MM
216412011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21642
21643 PR target/47385
21644 * config/rs6000/altivec.md (vector constant splitters): Add
21645 support for creating vector single precision constants if -mvsx is
21646 used and we would create the constant using Altivec primitives.
21647
ff3d9d08
BS
216482011-01-23 Bernd Schmidt <bernds@codesourcery.com>
21649 Richard Sandiford <rdsandiford@googlemail.com>
21650
21651 PR rtl-optimization/47166
21652 * reload1.c (emit_reload_insns): Disable the spill_reg_store
21653 mechanism for PRE_MODIFY and POST_MODIFY.
21654 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21655 reloadreg.
21656
7fcaf152
AS
216572011-01-23 Andreas Schwab <schwab@linux-m68k.org>
21658
8788adb6 21659 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 21660
d09b58c4
JH
216612011-01-22 Jan Hubicka <jh@suse.cz>
21662
21663 PR lto/47333
21664 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21665
e8ff8c5a
JH
216662011-01-22 Jan Hubicka <jh@suse.cz>
21667
21668 PR tree-optimization/43884
21669 PR lto/44334
8788adb6 21670 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
21671 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21672
ccaed3ba
AS
216732011-01-22 Anatoly Sokolov <aesok@post.ru>
21674
21675 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21676 * config/s390/s390.c (s390_register_move_cost,
21677 s390_memory_move_cost): New.
21678 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21679
0cecee06
UW
216802011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21681
21682 PR middle-end/47401
21683 * except.c (sjlj_assign_call_site_values): Move setting the
21684 crtl->uses_eh_lsda flag to ...
21685 (sjlj_mark_call_sites): ... here.
21686 (sjlj_emit_function_enter): Support NULL dispatch label.
21687 (sjlj_build_landing_pads): In a function with no landing pads
21688 that still has must-not-throw regions, generate code to register
21689 a personality function with empty LSDA.
21690
e692f276
RH
216912011-01-21 Richard Henderson <rth@redhat.com>
21692
1b7ae0b7
RH
21693 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21694
3843787f
RH
21695 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21696
e692f276
RH
21697 * compare-elim.c: New file.
21698 * Makefile.in (OBJS-common): Add it.
21699 (compare-elim.o): New.
21700 * common.opt (fcompare-elim): New.
21701 * opts.c (default_options_table): Add OPT_fcompare_elim.
21702 * tree-pass.h (pass_compare_elim_after_reload): New.
21703 * passes.c (init_optimization_passes): Add it.
21704 * recog.h: Protect against re-inclusion.
21705 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
21706 * doc/invoke.texi (-fcompare-elim): Document it.
21707 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
21708 * doc/tm.texi: Rebuild.
21709
9a7c2050
NC
217102011-01-22 Nick Clifton <nickc@redhat.com>
21711
21712 * config/rx/rx.md (cstoresf4): Pass comparison operator to
21713 rx_split_fp_compare.
21714
15ba5696
NC
217152011-01-22 Nick Clifton <nickc@redhat.com>
21716
21717 * config/rx/rx.md (UNSPEC_CONST): New.
21718 (deallocate_and_return): Wrap the amount popped off the stack in
21719 an UNSPEC_CONST in order to stop it being rejected by
21720 -mmax-constant-size.
21721 (pop_and_return): Add a "(return)" rtx.
21722 (call): Drop the immediate operand.
21723 (call_internal): Likewise.
21724 (call_value): Likewise.
21725 (call_value_internal): Likewise.
21726 (sibcall_internal): Likewise.
21727 (sibcall_value_internal): Likewise.
21728 (sibcall): Likewise. Generate an explicit call using
21729 sibcall_internal.
21730 (sibcall_value): Likewise.
21731 (mov<>): FAIL if a constant operand is not legitimate.
21732 (addsi3_unpsec): New pattern.
9a7c2050 21733
38be4072 21734 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
21735 (ok_for_max_constant): New function.
21736 (gen_safe_add): New function.
21737 (rx_expand_prologue): Use gen_safe_add.
21738 (rx_expand_epilogue): Likewise.
21739 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
21740 UNSPEC CONSTs.
21741
caaf13d3
JL
217422011-01-21 Jeff Law <law@redhat.com>
21743
21744 PR tree-optimization/47053
21745 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
21746 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
21747 statements are deleted.
21748 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
21749 is nonempty, then purge dead edges and cleanup the CFG.
21750
12c30f2f
AO
217512011-01-21 Alexandre Oliva <aoliva@redhat.com>
21752
21753 PR debug/47402
21754 Temporarily revert:
21755 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
21756 PR debug/47106
21757 * tree-dfa.c (create_var_ann): Mark variable as used.
21758
7360d2ac
JJ
217592011-01-21 Jakub Jelinek <jakub@redhat.com>
21760
aaa52a96
JJ
21761 PR middle-end/45566
21762 * except.c (convert_to_eh_region_ranges): Emit queued no-region
21763 notes from other section in hot/cold partitioning even if
21764 last_action is -3. Increment call_site_base.
21765
7360d2ac
JJ
21766 PR rtl-optimization/47366
21767 * fwprop.c (forward_propagate_into): Return bool. If
21768 any changes are made, -fnon-call-exceptions is used and
21769 REG_EH_REGION note is present, call purge_dead_edges
21770 and return true if it purged anything.
21771 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
21772 any EH edges were purged.
21773
e90b336f
JL
217742011-01-21 Jeff Law <law@redhat.com>
21775
21776 PR rtl-optimization/41619
21777 * caller-save.c (setup_save_areas): Break out code to determine
21778 which hard regs are live across calls by examining the reload chains
21779 so that it is always used.
21780 Eliminate code which checked REG_N_CALLS_CROSSED.
21781
3ffe07e1
JJ
217822011-01-21 Jakub Jelinek <jakub@redhat.com>
21783
21784 PR tree-optimization/47355
21785 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
21786 NOP has non-debug uses beyond PHIs in new_bb.
21787
1c7d0b34
AO
217882011-01-21 Alexandre Oliva <aoliva@redhat.com>
21789
21790 PR debug/47106
21791 * cfgexpand.c (account_used_vars_for_block): Only account vars
21792 that are annotated as used.
21793 (estimated_stack_frame_size): Don't set TREE_USED.
21794 * tree-dfa.c (create_var_ann): Mark variable as used.
21795
f99cc488
RG
217962011-01-21 Richard Guenther <rguenther@suse.de>
21797
21798 PR middle-end/47395
21799 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
21800
3bc27de7
RG
218012011-01-21 Richard Guenther <rguenther@suse.de>
21802
21803 PR tree-optimization/47365
21804 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
21805 (vn_reference_lookup_pieces): Adjust.
21806 (vn_reference_lookup): Likewise.
21807 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
21808 (vn_reference_lookup_3): Only look through kills if in
21809 VN_WALKREWRITE mode.
21810 (vn_reference_lookup_pieces): Adjust.
21811 (vn_reference_lookup): Likewise.
21812 (visit_reference_op_load): Likewise.
21813 (visit_reference_op_store): Likewise.
21814 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
21815 (compute_avail): Likewise.
21816 (eliminate): Likewise.
21817
d8debb1d
JJ
218182011-01-21 Jakub Jelinek <jakub@redhat.com>
21819
21820 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
21821 DECL_IGNORED_P non-reg vars if they are used.
21822
3a2df831
JJ
21823 PR tree-optimization/47391
21824 * varpool.c (const_value_known_p): Return false if
21825 decl is volatile.
21826
1dd584a2
KT
218272011-01-21 Kai Tietz <kai.tietz@onevision.com>
21828
21829 PR bootstrap/47215
21830 * config/i386/i386.c (ix86_local_alignment): Handle
21831 case for va_list_type_node is nil.
21832 (ix86_canonical_va_list_type): Likewise.
21833
7f9f095e
AM
218342011-01-21 Alan Modra <amodra@gmail.com>
21835
21836 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
21837 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
21838
837b01f6
RR
218392011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21840
21841 * config/arm/arm.md (define_attr type): Rename f_load
21842 and f_store to f_fpa_load and f_fpa_store. Update.
21843 (write_conflict): Deal with rename fallout.
21844 (*push_fp_multi): Likewise.
21845 * config/arm/fpa.md (f_load): Use f_fpa_load.
21846 (f_store): Use f_fpa_store.
21847 (*movsf_fpa): Likewise.
21848 (*movdf_fpa): Likewise.
21849 (*movxf_fpa): Likewise.
21850 (*thumb2_movsf_fpa): Likewise.
21851 (*thumb2_movdf_fpa): Likewise.
21852 (*thumb2_movxf_fpa): Likewise.
21853 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
21854 f_loadd and f_stored.
21855 (*thumb2_movdi_vfp): Likewise.
21856 (*thumb2_movsf_vfp): Fix attribute to f_loads.
21857 (*thumb2_movsi_vfp): Likewise.
21858 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
21859 Use f_loads instead of f_load.
21860 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
21861
a1a79768
AS
218622011-01-20 Anatoly Sokolov <aesok@post.ru>
21863
21864 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21865 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
21866 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21867 (xtensa_mode_dependent_address_p): New function.
21868 (constantpool_address_p): Make static. Change return type to bool.
21869 Change argument type to const_rtx. Use CONST_INT_P predicate.
21870
427f6cec
AO
218712011-01-20 Alexandre Oliva <aoliva@redhat.com>
21872
21873 PR debug/46583
21874 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
21875
583ac69c
JJ
218762011-01-20 Jakub Jelinek <jakub@redhat.com>
21877
21878 PR debug/47283
21879 * cfgexpand.c (expand_debug_expr): Instead of generating
21880 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
21881 etc. handling.
21882
93e452ed
RG
218832011-01-20 Richard Guenther <rguenther@suse.de>
21884
21885 PR middle-end/47370
21886 * tree-inline.c (remap_gimple_op_r): Recurse manually for
21887 the pointer operand of MEM_REFs.
21888
28fc44f3
JJ
218892011-01-20 Jakub Jelinek <jakub@redhat.com>
21890
21891 PR tree-optimization/46130
21892 * ipa-split.c (consider_split): If return_bb contains non-virtual
21893 PHIs other than for retval or if split_function would not adjust it,
21894 refuse to split.
21895
ddd268f2
RG
218962011-01-20 Richard Guenther <rguenther@suse.de>
21897
21898 PR tree-optimization/47167
21899 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
21900 Revert previous change, only avoid enumeral type changes.
21901
882020aa
MS
219022011-01-19 Mike Stump <mikestump@comcast.net>
21903
21904 * doc/tm.texi.in (BRANCH_COST): Englishify.
21905 * doc/tm.texi (BRANCH_COST): Likewise.
21906
7edb6247
DS
219072011-01-19 Dodji Seketeli <dodji@redhat.com>
21908
21909 PR c++/47291
21910 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
21911 (gen_scheduled_generic_parms_dies): New functions.
21912 (gen_struct_or_union_type_die): Schedule template parameters DIEs
21913 generation for the end of CU compilation.
21914 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 21915
23d5ed5d
AO
219162011-01-19 Alexandre Oliva <aoliva@redhat.com>
21917
21918 PR debug/46240
21919 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
21920 debug bind stmt on merge edges.
21921
37d6a488
AO
219222011-01-19 Alexandre Oliva <aoliva@redhat.com>
21923
21924 PR debug/47079
21925 PR debug/46724
21926 * function.c (instantiate_expr): Instantiate incoming rtl of
21927 implicit arguments, and recurse on VALUE_EXPRs.
21928 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
21929 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
21930
689f2c82
AO
219312011-01-19 Alexandre Oliva <aoliva@redhat.com>
21932
21933 * c-parser.c (c_parser_for_statement): Initialize
21934 collection_expression.
21935
03029de4
JM
219362011-01-19 Joseph Myers <joseph@codesourcery.com>
21937
21938 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
21939
3e03217e
JM
219402011-01-19 Joseph Myers <joseph@codesourcery.com>
21941
21942 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
21943 (LINK_SHLIB_SPEC): Don't use %(link_path).
21944 (SUBTARGET_EXTRA_SPECS): Remove link_path.
21945
5bbe9b3f
JM
219462011-01-19 Joseph Myers <joseph@codesourcery.com>
21947
21948 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
21949 (NO_SHARED_LIB_SUPPORT): Remove.
21950 (LINK_SHLIB_SPEC): Remove one conditional definition.
21951
368e0b39
JM
219522011-01-19 Joseph Myers <joseph@codesourcery.com>
21953
21954 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
21955 %{call_shared}.
21956 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
21957 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
21958 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
21959 %{call_shared} and conditionals on these options not being passed.
21960 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
21961 %{call_shared}.
21962
ed7656f6
JJ
219632011-01-19 Jakub Jelinek <jakub@redhat.com>
21964
68457901
JJ
21965 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
21966 simplify.
21967
ed7656f6
JJ
21968 * ipa-split.c: Spelling fixes.
21969
e0d1958f
RH
219702011-01-19 Richard Henderson <rth@redhat.com>
21971
21972 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
21973 (*mulsi3): Likewise.
21974
27098b6b
RH
21975 * longlong.h [__mn10300__] (count_leading_zeros): New.
21976 [__mn10300__] (umul_ppmm, smul_ppmm): New.
21977 [__mn10300__] (add_ssaaaa, subddmmss): New.
21978 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
21979 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
21980
d6be7c36
UW
219812011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21982
21983 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
21984
b1efde2a
RH
219852011-01-19 Richard Henderson <rth@redhat.com>
21986
44217823
RH
21987 * config/mn10300/mn10300.md (addsi3_flags): New.
21988 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
21989 (subsi3_flags, subc_internal, subdi3): New.
21990 (subdi3_internal, *subdi3_degenerate): New.
21991 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
21992
37a185d7
RH
21993 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
21994 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
21995 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
21996 * config/mn10300/mn10300-protos.h: Update.
21997 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
21998 (return_ret): Likewise. Rename from return_internal_regs.
21999 (return_internal): Remove.
22000
040c5757
RH
22001 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22002 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22003 (mn10300_legitimate_constant_p): Likewise.
22004 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22005 (mn10300_frame_size): New.
22006 (mn10300_expand_prologue): Use it.
22007 (mn10300_expand_epilogue): Likewise.
22008 (mn10300_initial_offset): Likewise.
22009 * config/mn10300/mn10300-protos.h: Update.
22010 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22011 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22012 (prologue, epilogue, return_internal): Tidy output code.
22013 (mn10300_store_multiple_operation, return): Likewise.
22014 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22015 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22016 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22017 (load_pic, am33_load_pic): New.
22018 (mn10300_load_pic0, mn10300_load_pic1): New.
22019
bad41521
RH
22020 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22021 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22022 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22023 (cc_flags_for_mode, cc_flags_for_code): New.
22024 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22025 overflow flag is not valid. Validate that the flags we need
22026 for the comparison are valid.
22027 (mn10300_output_cmp): Remove.
22028 (mn10300_output_add): New.
22029 (mn10300_select_cc_mode): Use cc_flags_for_code.
22030 (mn10300_split_cbranch): New.
22031 (mn10300_match_ccmode): New.
22032 (mn10300_split_and_operand_count): New.
22033 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22034 to the function.
22035 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22036 (addsi3): ... here. Use mn10300_output_add.
22037 (*addsi3_flags): New.
22038 (*am33_subsi3, *mn10300_subsi3): Merge...
22039 (subsi3): ... here. Use attribute isa.
22040 (*subsi3_flags): New.
22041 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
22042 when possible.
22043 (*am33_andsi3, *mn10300_andsi3): Merge...
22044 (andsi3): ... here.
22045 (*andsi3_flags): New.
22046 (andsi3 splitters): New.
22047 (*am33_iorsi3, *mn10300_iorsi3): Merge...
22048 (iorsi3): ... here.
22049 (*iorsi3_flags): New.
22050 (*am33_xorsi3, *mn10300_xorsi3): Merge...
22051 (xorsi3): ... here.
22052 (*xorsi3_flags): New.
22053 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22054 (one_cmplsi2): ... here.
22055 (*one_cmplsi2_flags): New.
22056 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
22057 instead of "dax" in constraints. Use mn10300_split_cbranch.
22058 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
22059 use matching constraints to eliminate a self-comparison.
22060 (*integer_conditional_branch): Rename from integer_conditional_branch.
22061 Use int_mode_flags to match CC_REG.
22062 (*cbranchsi4_btst, *btstsi): New.
22063 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
22064 mn10300_split_cbranch.
22065 (*am33_cmpsf): Rename from am33_cmpsf.
22066 (*float_conditional_branch): Rename from float_conditional_branch.
22067 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22068 (zero_extendqisi2): ... here.
22069 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22070 (zero_extendhisi2): ... here.
22071 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22072 (extendqisi2): ... here.
22073 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22074 (extendhisi2): ... here.
22075 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22076 (ashlsi3): ... here.
22077 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22078 (lshrsi3): ... here.
22079 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22080 (ashrsi3): ... here.
22081 (consecutive add peephole): Remove.
22082 * config/mn10300/predicates.md (label_ref_operand): New.
22083 (int_mode_flags): New.
22084 (CCZN_comparison_operator): New.
22085
9efb4993
RH
22086 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22087 (throughput_42_latency_43): New reservation.
22088 (mulsidi3, umulsidi3): New expanders.
22089 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
22090 the MDR register to allocation; separately allocate the low and
22091 high parts of the DImode result.
22092 (umulsidi3_internal): Similarly.
22093 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22094 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
22095 (udivsi3, umodsi3): Remove.
22096 (udivmodsi4, divmodsi4): New expanders.
22097 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
22098 (*divmodsi4): Simiarly.
22099 (ext_internal): New.
22100
c25a21f5
RH
22101 * config/mn10300/constraints.md ("z"): New constraint.
22102 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22103 (FIXED_REGISTERS): Don't fix MDR.
22104 (CALL_USED_REGSITERS): Reformat nicely.
22105 (REG_ALLOC_ORDER): Add MDR.
22106 (enum regclass): Add MDR_REGS.
22107 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22108 (IRA_COVER_CLASSES): Add MDR_REGS.
22109 (REGNO_REG_CLASS): Handle MDR_REG.
22110 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22111 (mn10300_register_move_cost): Likewise.
22112 * config/mn10300/mn10300.md (MDR_REG): New.
22113 (*movsi_internal): Handle moves to/from MDR_REGS.
22114
36846b26
RH
22115 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22116 POST_MODIFY.
22117 (mn10300_secondary_reload): Tidy combination reload classes.
22118 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22119 addresses for AM33. Allow symbolic offsets for reg+imm.
22120 (mn10300_regno_in_class_p): New.
22121 (mn10300_legitimize_reload_address): New.
22122 * config/mn10300/mn10300.h (enum reg_class): Remove
22123 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22124 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
22125 SP_OR_GENERAL_REGS.
22126 (REG_CLASS_NAMES): Update to match.
22127 (REG_CLASS_CONTENTS): Likewise.
22128 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22129 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22130 (REGNO_IN_RANGE_P): Remove.
22131 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22132 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22133 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22134 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22135 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22136 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22137 (REGNO_GENERAL_P): New.
22138 (HAVE_POST_MODIFY_DISP): New.
22139 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22140 (LEGITIMIZE_RELOAD_ADDRESS): New.
22141 * config/mn10300/mn10300-protos.h: Update.
22142
8b119bb6
RH
22143 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22144 DATA_REGS for AM33 stack-pointer destination.
22145 (mn10300_preferred_output_reload_class): Likewise.
22146 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22147 into a form appropriate for ...
22148 (TARGET_SECONDARY_RELOAD): New.
22149 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22150 * config/mn10300/mn10300-protos.h: Update.
22151 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22152 reload_insi; use the "A" constraint for the scratch; handle AM33
22153 moves of sp to non-address registers.
22154
b1efde2a
RH
22155 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22156 (*movqi_internal): ... here.
22157 (*am33_movhi, *mn10300_movhi): Merge into...
22158 (*movhi_internal): ... here.
22159 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
22160 as the source/destination of moves from/to SP.
22161 (movsf): Only allow for AM33-2.
1c3ba85b 22162 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
22163 any integer constant constraint. Only allow for AM33-2. Tidy
22164 all of the alternative outputs.
22165 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22166 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
22167 for MN103.
22168 (udivsi3, umodsi3): New patterns for MN103 only.
22169
b899fd78
JR
221702011-01-19 Joern Rennecke <amylaar@spamcop.net>
22171
22172 * doc/tm.texi.in: Spell out that a lack of register class unions
22173 can lead to ICEs.
22174 * doc/tm.texi: Regenerate.
22175
afaaa67d
JJ
221762011-01-19 Jakub Jelinek <jakub@redhat.com>
22177
2e0642cd
JJ
22178 PR rtl-optimization/47337
22179 * dce.c (check_argument_store): New function.
22180 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
22181
afaaa67d
JJ
22182 PR tree-optimization/47290
22183 * tree-eh.c (infinite_empty_loop_p): New function.
22184 (cleanup_empty_eh): Use it.
22185
d2cd871f
SE
221862011-01-18 Steve Ellcey <sje@cup.hp.com>
22187
22188 PR target/46997
22189 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22190 (a64_expand_widen_sum): Ditto.
22191 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22192 (vec_extract_evenodd_help): Ditto.
22193 (vec_extract_evenv4hi): Ditto.
22194 (vec_extract_oddv4hi): Ditto.
22195 (vec_extract_evenv2si): Ditto.
22196 (vec_extract_oddv2si): Ditto.
22197 (vec_extract_evenv2sf): Ditto.
22198 (vec_extract_oddv2sf): Ditto.
22199 (vec_pack_trunc_v4hi: Ditto.
22200 (vec_pack_trunc_v2si): Ditto.
22201 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22202 (vec_interleave_highv8qi): Ditto.
22203 (mix1_r): Ditto.
22204 (vec_extract_oddv8qi): Ditto.
22205 (vec_interleave_lowv4hi): Ditto.
22206 (vec_interleave_highv4hi): Ditto.
22207 (vec_interleave_lowv2si): Ditto.
22208 (vec_interleave_highv2si): Ditto.
22209
41a1208a
JDA
222102011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22211
22212 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22213 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22214 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
22215 (pa_c_mode_for_suffix): New.
22216 (TARGET_EXPAND_BUILTIN): Define.
22217 (TARGET_C_MODE_FOR_SUFFIX): Define.
22218 (pa_builtins): Define.
22219 (pa_init_builtins): Register __float128 type and init new support
22220 builtins.
22221 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22222 * config/pa/quadlib.c (_U_Qfcopysign): New.
22223
1ecad98e
EB
222242011-01-18 Eric Botcazou <ebotcazou@adacore.com>
22225
22226 PR middle-end/46894
22227 * explow.c (allocate_dynamic_stack_space): Do not assume more than
22228 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22229 are defined.
22230
d4f2460a
UW
222312011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22232
22233 PR tree-optimization/47179
22234 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22235 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22236
4994da65
RG
222372011-01-18 Richard Guenther <rguenther@suse.de>
22238
22239 PR rtl-optimization/47216
22240 * emit-rtl.c: Include tree-flow.h.
22241 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22242 of replicating it with different semantics.
22243 * Makefile.in (emit-rtl.o): Adjust.
22244
1eb458d1
RR
222452011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22246
38be4072 22247 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 22248 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 22249
e7ef91dc
JJ
222502011-01-18 Jakub Jelinek <jakub@redhat.com>
22251
22252 PR rtl-optimization/47299
22253 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 22254 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
22255 * expmed.c (expand_widening_mult): Don't try to optimize constant
22256 multiplication if op0 has VOIDmode. Convert op1 constant to mode
22257 before using it.
22258
535b7874
RW
222592011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22260
22261 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
22262 spacing after 'e.g.', typos, comma, hyphenation.
22263
27bf36f3
RH
222642011-01-17 Richard Henderson <rth@redhat.com>
22265
8a5b5449
RH
22266 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22267 (rx_restricted_mem_operand): New.
22268 (rx_shift_operand): Use register_operand.
22269 (rx_source_operand, rx_compare_operand): Likewise.
22270 * config/rx/rx.md (addsi3_flags): New expander.
22271 (adddi3): Rewrite as expander.
22272 (adc_internal, *adc_flags, adddi3_internal): New patterns.
22273 (subsi3_flags): New expander.
22274 (subdi3): Rewrite as expander.
22275 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22276
784f69be
RH
22277 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22278 (rx_init_builtins): Remove sat builtin.
22279 (rx_expand_builtin): Likewise.
22280 * config/rx/rx.md (ssaddsi3): New.
22281 (*sat): Rename from sat. Represent the CC_REG input.
22282
f033541c
RH
22283 * config/rx/predicates.md (rshift_operator): New.
22284 * config/rx/rx.c (rx_expand_insv): Remove.
22285 * config/rx/rx-protos.h: Update.
22286 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
22287 operand to the canonical position.
22288 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22289 (*bitclr, *bitclr_in_memory): Similarly.
22290 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22291 (insv): Retain the zero_extract in the expansion.
22292
34fee389
RH
22293 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22294 (bswaphi2, bitinvert, revw): Likewise.
22295
265c835f
RH
22296 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22297 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22298 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22299 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22300 (bitset, bitset_in_memory): Likewise.
22301 (bitinvert, bitinvert_in_memory): Likewise.
22302 (bitclr, bitclr_in_memory): Likewise.
22303 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22304 (rx_strend, rx_cmpstrn): Likewise.
22305 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
22306 (bitop peep2 patterns): Remove.
22307
b4d83be3
RH
22308 * config/rx/rx.c (rx_match_ccmode): New.
22309 * config/rx/rx-protos.h: Update.
22310 * config/rx/rx.md (abssi2): Clobber, don't set flags.
22311 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22312 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22313 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22314 (fix_truncsfsi2, floatsisf2): Likewise.
22315 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22316 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22317 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22318 (*subsi3_flags, *xorsi3_flags): New.
22319
d0acb939
RH
22320 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22321
c06fc3d9
RH
22322 * config/rx/rx.c (rx_print_operand): Remove workaround for
22323 unsplit comparison operations.
22324
2882702b
RH
22325 * config/rx/rx.md (movsicc): Split after reload.
22326 (*movsicc): Merge *movsieq and *movsine via match_operator.
22327 (*stcc): New pattern.
22328
6f7310f2
RH
22329 * config/rx/rx.c (rx_float_compare_mode): Remove.
22330 * config/rx/rx.h (rx_float_compare_mode): Remove.
22331 * config/rx/rx.md (cstoresi4): Split after reload.
22332 (*sccc): New pattern.
22333
e963cb1a
RH
22334 * config/rx/predicates.md (label_ref_operand): New.
22335 (rx_z_comparison_operator): New.
22336 (rx_zs_comparison_operator): New.
22337 (rx_fp_comparison_operator): New.
22338 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22339 Validate that the flags are set properly for the comparison.
22340 (rx_gen_cond_branch_template): Remove.
22341 (rx_cc_modes_compatible): Remove.
22342 (mode_from_flags): New.
22343 (flags_from_code): Rename from flags_needed_for_conditional.
22344 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22345 (rx_select_cc_mode): Likewise.
22346 (rx_split_fp_compare): New.
22347 (rx_split_cbranch): New.
22348 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22349 (*cbranchsi4): Use match_operator and rx_split_cbranch.
22350 (*cbranchsf4): Similarly.
22351 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
22352 match_operator and rx_split_cbranch.
22353 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22354 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
22355 (*cmpsi): Rename from cmpsi.
22356 (*tstsi): Rename from tstsi.
22357 (*cmpsf): Rename from cmpsf; use CC_Fmode.
22358 (*conditional_branch): Rename from conditional_branch.
22359 (*reveresed_conditional_branch): Remove.
22360 (b<code>): Remove expander.
22361 * config/rx/rx-protos.h: Update.
22362
af530bb4
RH
22363 * config/rx/rx.c (rx_compare_redundant): Remove.
22364 * config/rx/rx.md (cmpsi): Don't use it.
22365 * config/rx/rx-protos.h: Update.
22366
27bf36f3
RH
22367 * config/rx/rx-modes.def (CC_F): New mode.
22368 * config/rx/rx.c (rx_select_cc_mode): New.
22369 * config/rx/rx.h (SELECT_CC_MODE): Use it.
22370 * config/rx/rx-protos.h: Update.
22371
d7fde127
RH
223722011-01-17 Richard Henderson <rth@redhat.com>
22373
22374 * except.c (dump_eh_tree): Fix stray ; after for statement.
22375
6ff38230
RG
223762011-01-17 Richard Guenther <rguenther@suse.de>
22377
22378 PR tree-optimization/47313
22379 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22380 handling before copying the body. Properly deal with
22381 by-reference result in SSA form.
22382
114ce554
ILT
223832011-01-17 Ian Lance Taylor <iant@google.com>
22384
bf5cd92b 22385 PR target/47219
114ce554
ILT
22386 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22387 (struct_value_alias_set): Don't define.
22388 (sparc_option_override): Don't set sparc_sr_alias_set and
22389 struct_value_alias_set.
22390 (save_or_restore_regs): Use gen_frame_mem rather than calling
22391 set_mem_alias_set.
22392 (sparc_struct_value_rtx): Likewise.
22393
98c6d93c
L
223942011-01-17 H.J. Lu <hongjiu.lu@intel.com>
22395
22396 PR target/47318
7a81008b 22397 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
22398 (_mm_maskstore_pd): Likewise.
22399 (_mm_maskload_ps): Likewise.
22400 (_mm_maskstore_ps): Likewise.
22401 (_mm256_maskload_pd): Change mask to __m256i.
22402 (_mm256_maskstore_pd): Likewise.
22403 (_mm256_maskload_ps): Likewise.
22404 (_mm256_maskstore_ps): Likewise.
22405
22406 * config/i386/i386-builtin-types.def: Updated.
22407 (ix86_expand_special_args_builtin): Likewise.
22408
22409 * config/i386/i386.c (bdesc_special_args): Update
22410 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22411 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22412 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22413 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22414
22415 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22416 Use <avxpermvecmode> on mask register.
22417 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22418
b9361af2 224192011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
22420 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22421 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
22422
22423 PR target/46655
22424 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22425 if <= USHRT_MAX in 32-bit mode.
22426
b7ae9eb5
RW
224272011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22428
22429 * doc/install.texi (Configuration, Specific): Wrap long
22430 lines in examples. Allow line wrapping in long options
22431 and URLs where beneficial for PDF output.
22432
4377fad9
RS
224332011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
22434
22435 * config/mips/mips.c (mips_classify_symbol): Don't return
22436 SYMBOL_PC_RELATIVE for nonlocal labels.
22437
55959ffa 224382011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 22439
55959ffa
EB
22440 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22441
224422011-01-15 Jan Hubicka <jh@suse.cz>
22443
22444 PR tree-optimization/47276
be46831f
JH
22445 * ipa.c (function_and_variable_visibility): Do not try to mark alias
22446 declarations as needed.
22447
05842ff5
MJ
224482011-01-15 Martin Jambor <mjambor@suse.cz>
22449
22450 * common.opt (fdevirtualize): New flag.
22451 * doc/invoke.texi (Option Summary): Document it.
22452 * opts.c (default_options_table): Add devirtualize flag.
22453 * ipa-prop.c (detect_type_change): Return immediately if
22454 devirtualize flag is not set.
22455 (detect_type_change_ssa): Likewise.
22456 (compute_known_type_jump_func): Likewise.
22457 (ipa_analyze_virtual_call_uses): Likewise.
22458
f65cf2b7
MJ
224592011-01-14 Martin Jambor <mjambor@suse.cz>
22460
22461 PR tree-optimization/45934
22462 PR tree-optimization/46302
22463 * ipa-prop.c (type_change_info): New type.
22464 (stmt_may_be_vtbl_ptr_store): New function.
22465 (check_stmt_for_type_change): Likewise.
22466 (detect_type_change): Likewise.
22467 (detect_type_change_ssa): Likewise.
22468 (compute_complex_assign_jump_func): Check for dynamic type change.
22469 (compute_complex_ancestor_jump_func): Likewise.
22470 (compute_known_type_jump_func): Likewise.
22471 (compute_scalar_jump_functions): Likewise.
22472 (ipa_analyze_virtual_call_uses): Likewise.
22473 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22474
eb5bb0fd
JM
224752011-01-14 Joseph Myers <joseph@codesourcery.com>
22476
22477 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22478 * config/i386/i386.opt (msse5): New Alias.
22479
f2060fbe
JM
224802011-01-14 Joseph Myers <joseph@codesourcery.com>
22481
22482 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22483 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22484 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22485 * config/sparc/sparc.h (CC1_SPEC): Likewise.
22486
3a7b4385
JM
224872011-01-14 Joseph Myers <joseph@codesourcery.com>
22488
22489 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22490 -mcpu options.
22491 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22492 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22493 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22494 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22495 Likewise.
22496 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22497
a7b778f8
JM
224982011-01-14 Joseph Myers <joseph@codesourcery.com>
22499
38be4072 22500 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 22501
a7edae0a
MS
225022011-01-14 Mike Stump <mikestump@comcast.net>
22503
22504 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22505 * config/fr30/fr30.md: Likweise
22506 (movsi_push): Likewise.
22507 (movsi_pop): Likewise.
22508 (enter_func): Likewise.
22509 * config/moxie/moxie.md (movsi_push): Likewise.
22510 (movsi_pop): Likewise.
22511
cbabf03f
JM
225122011-01-14 Joseph Myers <joseph@codesourcery.com>
22513
22514 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22515 %{no_archive} %{exact_version}.
22516 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22517 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22518 %{no_archive} %{exact_version}.
22519 * config/mips/openbsd.h (LINK_SPEC): Likewise.
22520 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22521 * config/mips/vxworks.h: Likewise.
22522
438da41a
JM
225232011-01-14 Joseph Myers <joseph@codesourcery.com>
22524
38be4072 22525 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 22526
da290a42
JM
225272011-01-14 Joseph Myers <joseph@codesourcery.com>
22528
22529 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22530 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22531
8989d00e
JM
225322011-01-14 Joseph Myers <joseph@codesourcery.com>
22533
22534 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22535 -nodefaultlib.
22536
a3010a69
JM
225372011-01-14 Joseph Myers <joseph@codesourcery.com>
22538
22539 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22540 for mcpu not cpu.
22541 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22542 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22543 not cpu.
22544 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22545 Don't handle -shlib.
22546
e7f2f537
JM
225472011-01-14 Joseph Myers <joseph@codesourcery.com>
22548
22549 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22550 (CC1_SPEC): Don't handle -profile.
22551
34830bfd
JM
225522011-01-14 Joseph Myers <joseph@codesourcery.com>
22553
22554 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22555 * config/mips/mips.h (CC1_SPEC): Likewise.
22556
b2d36e74
JM
225572011-01-14 Joseph Myers <joseph@codesourcery.com>
22558
22559 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22560 * config/mips/mips.h (CC1_SPEC): Likewise.
22561
dabadc52
JM
225622011-01-14 Joseph Myers <joseph@codesourcery.com>
22563
22564 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22565 * config/m32r/linux.h (LINK_SPEC): Likewise.
22566 * config/mips/linux.h (LINK_SPEC): Likewise.
22567 * config/mips/linux64.h (LINK_SPEC): Likewise.
22568 * config/sparc/linux.h (LINK_SPEC): Likewise.
22569 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22570 LINK_SPEC): Likewise.
22571 * config/xtensa/linux.h (LINK_SPEC): Likewise.
22572
43ee6785
JM
225732011-01-14 Joseph Myers <joseph@codesourcery.com>
22574
22575 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22576 %{version:-v}.
22577 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22578
45e79dfd
JM
225792011-01-14 Joseph Myers <joseph@codesourcery.com>
22580
22581 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22582 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22583
37e9e71d
JM
225842011-01-14 Joseph Myers <joseph@codesourcery.com>
22585
22586 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22587
bb127cd8
RO
225882011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22589
22590 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22591 supports -Bstatic/-Bdynamic.
22592 * configure: Regenerate.
22593
89a012ea 225942011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 22595 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
22596
22597 PR target/46037
22598 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22599 when checking debug_info_level. Test write_symbols instead of
22600 debug_hooks->var_location when setting flag_var_tracking_uninit.
22601
7352c013
RG
226022011-01-14 Richard Guenther <rguenther@suse.de>
22603
22604 PR tree-optimization/47179
22605 * target.def (ref_may_alias_errno): New target hook.
22606 * targhooks.h (default_ref_may_alias_errno): Declare.
22607 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22608 (default_ref_may_alias_errno): New function.
22609 * target.h (struct ao_ref_s): Declare.
22610 * tree-ssa-alias.c: Include target.h.
22611 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22612 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22613 (targhooks.o): Likewise.
22614 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22615 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22616
9a6c9288
RG
226172011-01-14 Richard Guenther <rguenther@suse.de>
22618
22619 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
22620
0fdb0d27
RG
226212011-01-14 Richard Guenther <rguenther@suse.de>
22622
22623 PR tree-optimization/47280
22624 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22625 return CFG changes.
22626 (tree_ssa_forward_propagate_single_use_vars): Deal with
22627 CFG changes from associate_plusminus.
22628
8f66db3b
RG
226292011-01-14 Richard Guenther <rguenther@suse.de>
22630
22631 PR middle-end/47281
22632 Revert
22633 2011-01-11 Richard Guenther <rguenther@suse.de>
22634
280d9630
EB
22635 PR tree-optimization/46076
22636 * tree-ssa.c (useless_type_conversion_p): Conversions from
22637 unprototyped to empty argument list function types are useless.
8f66db3b 22638
6c0c92e6
RG
226392011-01-14 Richard Guenther <rguenther@suse.de>
22640
22641 PR tree-optimization/47286
280d9630 22642 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 22643
db09f943
MJ
226442011-01-14 Martin Jambor <mjambor@suse.cz>
22645
22646 PR middle-end/46823
22647 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22648
dde8a3a4
AS
226492011-01-13 Anatoly Sokolov <aesok@post.ru>
22650
22651 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22652 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22653 * config/xtensa/xtensa.c (xtensa_libcall_value,
22654 xtensa_function_value_regno_p): New functions.
22655 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22656
a2b63a20
KT
226572011-01-13 Kai Tietz <kai.tietz@onevision.com>
22658
22659 PR c++/47213
22660 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22661 PE specific hook.
22662 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22663 New function prototype.
22664 * config/i386/winnt.c (i386_pe_assemble_visibility):
22665 Warn only if attribute was specified by user.
22666
b41f0b34
MM
226672011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
22668
22669 PR target/47251
22670 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22671 floating point.
22672 (floatunsdidf2_fcfidu): Ditto.
22673
3f3c098d
AK
226742011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22675
22676 * config/s390/s390.c (print_operand_address): Replace 'error' with
22677 'output_operand_lossage'.
22678 (print_operand): Likewise.
22679
29fa95ed
JL
226802011-01-13 Jeff Law <law@redhat.com>
22681
280d9630 22682 PR rtl-optimization/39077
29fa95ed
JL
22683 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22684 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22685 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22686 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22687 * gcse.c (prune_insertions_deletions): New function.
22688 (compute_pre_data): Use it.
22689
71d12276
DS
226902011-01-13 Dodji Seketeli <dodji@redhat.com>
22691
22692 PR debug/PR46973
22693 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22694 static function.
61052244 22695 (prune_unused_types_mark): Use it.
71d12276 22696
9b0f04e7
AB
226972011-01-13 Andrey Belevantsev <abel@ispras.ru>
22698
22699 PR rtl-optimization/45352
1c3ba85b 22700 * sel-sched.c: Update copyright years.
9b0f04e7 22701 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 22702 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 22703
d6a3e264
RH
227042011-01-12 Richard Henderson <rth@redhat.com>
22705
a49b692a
RH
22706 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
22707 (TARGET_MD_ASM_CLOBBERS): New.
22708
126b1483
RH
22709 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
22710 (TARGET_DELEGITIMIZE_ADDRESS): New.
22711
f3d9d2e0
RH
22712 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
22713 (clzsi2, *bsch): New patterns.
22714
d84760c9
RH
22715 * config/mn10300/mn10300.md (INT): New mode iterator.
22716 (*mov<INT>_clr): New pattern, and peep2 to generate it.
22717
ec815d65
RH
22718 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
22719 flag_split_wide_types.
22720
d6a3e264
RH
22721 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
22722 (mn10300_trampoline_init): Rewrite without a template, an immediate
22723 load and a direct branch.
22724 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
22725
0f8ab434
AS
227262011-01-12 Anatoly Sokolov <aesok@post.ru>
22727
22728 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22729 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
22730 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
22731 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22732
d8a24b65
KT
227332011-01-12 Kai Tietz <kai.tietz@onevision.com>
22734
22735 PR debug/47209
22736 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
22737 of type.
22738
56e22cab
JH
227392011-01-12 Jan Hubicka <jh@suse.cz>
22740
22741 PR driver/47244
22742 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
22743 (PLUGIN_COND_CLOSE): New macro.
22744 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
22745
4b18b3c2
RG
227462011-01-12 Richard Guenther <rguenther@suse.de>
22747
22748 PR lto/47259
22749 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
22750 register variables in a MEM_REF.
22751
8e38461c
JM
227522011-01-12 Joseph Myers <joseph@codesourcery.com>
22753
22754 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
22755 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
22756 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
22757 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22758 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22759 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
22760 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
22761 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
22762 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
22763 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
22764 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
22765 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
22766 * config/gnu-user.h: New. Copied from linux.h.
22767 (LINUX_TARGET_STARTFILE_SPEC): Rename to
22768 GNU_USER_TARGET_STARTFILE_SPEC.
22769 (LINUX_TARGET_ENDFILE_SPEC): Rename to
22770 GNU_USER_TARGET_ENDFILE_SPEC.
22771 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
22772 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
22773 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
22774 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
22775 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
22776 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
22777 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
22778 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
22779 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
22780 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
22781 * config/arm/linux-eabi.h (CC1_SPEC): Use
22782 GNU_USER_TARGET_CC1_SPEC.
22783 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
22784 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
22785 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
22786 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
22787 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
22788 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
22789 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
22790 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
22791
a570fc16
RG
227922011-01-12 Richard Guenther <rguenther@suse.de>
22793
22794 PR other/46946
22795 * doc/invoke.texi (ffast-math): Document it is turned on
22796 with -Ofast.
22797
b0223c3e
JH
227982011-01-12 Jan Hubicka <jh@suse.cz>
22799
22800 PR tree-optimization/47233
ca1e00b3
EB
22801 * opts.c (common_handle_option): Disable ipa-reference with profile
22802 feedback.
b0223c3e 22803
1c3ba85b 228042011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
22805
22806 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
22807 error message.
22808
d853ee42
NP
228092011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
22810
22811 * c-parser.c (c_lex_one_token): Updated and reindented some
22812 comments. No changes in code.
22813
4053a5a0
ILT
228142011-01-11 Ian Lance Taylor <iant@google.com>
22815
22816 * godump.c (go_output_var): Don't output the variable if there is
22817 already a type with the same name.
22818
fa3e04d2
ILT
228192011-01-11 Ian Lance Taylor <iant@google.com>
22820
22821 * godump.c (go_format_type): Don't generate float80.
22822
885fe07c
RH
228232011-01-11 Richard Henderson <rth@redhat.com>
22824
72d6e3c5
RH
22825 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
22826 declaration. Rewrite for both speed and size.
22827 (mn10300_address_cost_1): Remove.
22828 (mn10300_register_move_cost): New.
22829 (mn10300_memory_move_cost): New.
22830 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
22831 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
22832 extensions, shifts, BSWAP, CLZ.
22833 (mn10300_wide_const_load_uses_clr): Remove.
22834 (TARGET_REGISTER_MOVE_COST): New.
22835 (TARGET_MEMORY_MOVE_COST): New.
22836 * config/mn10300/mn10300-protos.h: Update.
22837 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
22838
df37c023
RH
22839 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
22840 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
22841 * config/mn10300/mn10300-protos.h: Update.
22842 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
22843 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
22844 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
22845 (*test_int_bitfield, *test_byte_bitfield): Remove.
22846 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 22847 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 22848
85a337b5
RH
22849 * config/mn10300/constraints.md ("c"): Rename from "A".
22850 ("A", "D"): New constraint letters.
22851 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
22852 (fmssf4, fnmasf4, fnmssf4): Likewise.
22853
a5c727e3
RH
22854 * config/mn10300/mn10300.md (isa): New attribute.
22855 (enabled): New attribute.
22856
0d9e23f4
RH
22857 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
22858 (abssf2, negsf2): Define only for hardware fp.
22859 (sqrtsf2): Reformat.
22860 (addsf3, subsf3, mulsf3): Merge expander and insn.
22861
c157b3f0
RH
22862 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
22863 (DEBUGGER_AUTO_OFFSET): Remove.
22864 (DEBUGGER_ARG_OFFSET): Remove.
22865
cc909bba
RH
22866 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
22867 Emit register stores with the same offsets as the hardware.
22868 (mn10300_store_multiple_operation): Don't check that the register
22869 save offsets are monotonic.
22870 * config/mn10300/mn10300-protos.h: Update.
22871
e3b5c2f3
RH
22872 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
22873
885fe07c
RH
22874 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
22875 in terms of the value on the stack, not the MDR register.
22876
6e701822
JH
228772011-01-11 Jan Hubicka <jh@suse.cz>
22878
22879 PR lto/45721
22880 PR lto/45375
22881 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
22882 (symbol_alias_set_destroy, symbol_alias_set_contains,
22883 propagate_aliases_backward): Declare.
22884 * lto-streamer-out.c (struct sets): New sturcture.
22885 (trivally_defined_alias): New function.
22886 (output_alias_pair_p): Rewrite.
22887 (output_unreferenced_globals): Fix output of alias pairs.
22888 (produce_symtab): Likewise.
22889 * ipa.c (function_and_variable_visibility): Set weak alias destination
22890 as needed in lto.
22891 * varasm.c (symbol_alias_set_t): Remove.
22892 (symbol_alias_set_destroy): Export.
22893 (propagate_aliases_forward, propagate_aliases_backward): New functions
22894 based on ...
22895 (compute_visible_aliases): ... this one; remove.
22896 (trivially_visible_alias): New
22897 (trivially_defined_alias): New.
22898 (remove_unreachable_alias_pairs): Rewrite.
22899 (finish_aliases_1): Reorganize code checking if alias is defined.
22900 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
22901 in LTO mode.
22902
1b248907
RG
229032011-01-11 Richard Guenther <rguenther@suse.de>
22904
22905 PR tree-optimization/46076
22906 * tree-ssa.c (useless_type_conversion_p): Conversions from
22907 unprototyped to empty argument list function types are useless.
22908
b1923f0a
RG
229092011-01-11 Richard Guenther <rguenther@suse.de>
22910
22911 PR middle-end/45235
22912 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
22913 volatile MEMs as MEM_READONLY_P.
22914
e98965af
RG
229152011-01-11 Richard Guenther <rguenther@suse.de>
22916
22917 PR tree-optimization/47239
22918 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
22919
9f9ca914
JL
229202011-01-11 Jeff Law <law@redhat.com>
22921
1ee3ea05 22922 PR tree-optimization/47086
9f9ca914
JL
22923 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
22924 IVs from statements that might throw.
22925
345fdcb7
JH
229262011-01-10 Jan Hubicka <jh@suse.cz>
22927
22928 PR lto/45375
22929 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
22930
c459c97b
JH
229312011-01-10 Jan Hubicka <jh@suse.cz>
22932
22933 PR lto/45375
22934 * profile.c (read_profile_edge_counts): Ignore profile inconistency
22935 when correcting profile.
22936
06c9eb51
JH
229372011-01-10 Jan Hubicka <jh@suse.cz>
22938
22939 PR lto/46083
22940 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
22941 DECL_FINI_PRIORITY.
22942 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
22943 Restore DECL_FINI_PRIORITY.
22944
ae9fd815
RW
229452011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22946
22947 * doc/gimple.texi: Fix quoting of multi-word return values in
22948 @deftypefn statements. Ensure presence of return value. Wrap
22949 overlong @deftypefn lines.
22950 (is_gimple_operand, is_gimple_min_invariant_address): Remove
22951 descriptions of removed functions.
22952 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
22953 of multi-word return value in @deftypefn statement.
22954
0ecb4a7c
RW
229552011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22956
22957 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
22958 (Conditional Expressions, Logical Operators)
22959 (Statement and operand traversals): Do not indent smallexample
22960 code. Fix duplicate function argument in example.
22961
2e5e346d
JL
229622011-01-10 Jeff Law <law@redhat.com>
22963
1ee3ea05 22964 PR tree-optimization/47141
2e5e346d
JL
22965 * ipa-split.c (split_function): Handle case where we are
22966 returning a value and the return block has a virtual operand phi.
22967
cf9712cc
JH
229682011-01-10 Jan Hubicka <jh@suse.cz>
22969
1c3ba85b 22970 PR tree-optimization/47234
cf9712cc
JH
22971 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
22972 (pass_feedback_split_functions): Declare.
22973 * passes.c (init_optimization_passes): Add ipa-split as subpass of
22974 tree-profile.
22975 * ipa-split.c (gate_split_functions): Update comments; disable
22976 split-functions for profile_arc_flag and branch_probabilities.
22977 (gate_feedback_split_functions): New function.
22978 (execute_feedback_split_functions): New function.
22979 (pass_feedback_split_functions): New global var.
22980
94cd932c
L
229812011-01-10 H.J. Lu <hongjiu.lu@intel.com>
22982
22983 PR lto/46760
22984 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
22985 calling gimple_call_set_cannot_inline.
22986
fbbfcaf1
IS
229872011-01-10 Iain Sandoe <iains@gcc.gnu.org>
22988
22989 * config/darwin-sections.def: Remove unused section.
22990
d06865bf
DK
229912011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
22992
22993 PR c++/47218
22994 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
22995
96bbfbac
NP
229962011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
22997
22998 PR objc/47232
22999 * c-parser.c (c_parser_declaration_or_fndef): Improved
23000 error message.
23001
1ba6516f
KT
230022011-01-09 Kai Tietz <kai.tietz@onevision.com>
23003
23004 * config/i386/winnt.c (i386_pe_start_function): Make sure
23005 to switch back to function's section.
23006
0c5d770e
IS
230072011-01-09 Iain Sandoe <iains@gcc.gnu.org>
23008
23009 PR gcc/46902
23010 PR testsuite/46912
23011 * plugin.c: Move include of dlfcn.h from here...
23012 * system.h: ... to here.
23013
230142011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
23015
23016 * doc/cpp.texi (C++ Named Operators): Fix markup for header
23017 file name.
23018 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23019 two extra empty pages in PDF output.
23020
046608a3
NP
230212011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
23022
23023 PR objc/47078
23024 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23025 for error recovery purposes behave as if it was not specified so
23026 that the default type is usd.
23027
8cb114b9
JH
230282011-01-07 Jan Hubicka <jh@suse.cz>
23029
23030 PR tree-optmization/46469
23031 * ipa.c (function_and_variable_visibility): Clear needed flags on
23032 nodes with external decls; handle weakrefs merging correctly.
23033
b294a75e
JM
230342011-01-07 Joseph Myers <joseph@codesourcery.com>
23035
23036 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23037 not false.
23038
96bdf9b4
JH
230392011-01-07 Jan Hubicka <jh@suse.cz>
23040
f60c2554 23041 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
23042 and no longer claim that gold is required for linker plugin.
23043 * configure: Regenerate.
23044 * gcc.c (PLUGIN_COND): New macro.
23045 (LINK_COMMAND_SPEC): Use it.
23046 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23047 * config.in (HAVE_LTO_PLUGIN): New.
23048 * configure.ac (--with-lto-plugin): New parameter; autodetect
23049 HAVE_LTO_PLUGIN.
23050
17afc0fe
JH
230512011-01-07 Jan Hubicka <jh@suse.cz>
23052
23053 PR tree-optimization/46367
23054 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23055 when we can update original.
23056 (cgraph_mark_inline_edge): Sanity check.
23057 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23058
d4c48c0f
UW
230592011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23060
23061 * config/spu/spu.h (ASM_COMMENT_START): Define.
23062
96f5b137
L
230632011-01-07 H.J. Lu <hongjiu.lu@intel.com>
23064
23065 PR driver/42445
23066 * gcc.c (%>S): New.
23067 (SWITCH_KEEP_FOR_GCC): Likewise.
23068 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23069 (do_spec_1): Handle "%>".
23070
23071 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23072
c6a8f6de
JJ
230732011-01-07 Jakub Jelinek <jakub@redhat.com>
23074
c21bbd7a
JJ
23075 PR target/47201
23076 * config/i386/i386.c (ix86_delegitimize_address): If
23077 simplify_gen_subreg fails, return orig_x.
23078
c6a8f6de
JJ
23079 PR bootstrap/47187
23080 * value-prof.c (gimple_stringop_fixed_value): Handle
23081 lhs of the call properly.
23082
fe95fbf9
JH
230832011-01-07 Jan Hubicka <jh@suse.cz>
23084
23085 PR lto/45375
23086 * lto-opt.c (lto_reissue_options): Set flag_shlib.
23087
14d11d40
IS
230882011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23089
72e961c8
EB
23090 * target.def (function_switched_text_sections): New hook.
23091 * doc/tm.texi: Regenerated.
23092 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23093 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
23094 (final_scan_insn): Call function_switched_text_sections when a
23095 mid-function section change occurs.
14d11d40 23096 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
23097 * config/darwin-protos.h (darwin_function_switched_text_sections):
23098 Likewise.
14d11d40 23099 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 23100 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 23101
0b764288
IS
231022011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23103
23104 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
23105 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
23106 the secondary code fragment when outputting for DWARF == 2.
23107
2ac6bb04
AS
231082011-01-07 Anatoly Sokolov <aesok@post.ru>
23109
23110 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23111 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23112 Remove.
23113 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23114 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23115
9f82de11
EB
231162011-01-06 Eric Botcazou <ebotcazou@adacore.com>
23117
23118 PR debug/46704
280d9630
EB
23119 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23120 when it is not empty.
9f82de11
EB
23121
231222011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 23123
1ed72abf 23124 Bobcat Enablement
14b52538 23125 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 23126 (case ${target}): Add btver1.
14b52538 23127 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 23128 -march=native recognize btver1 processors.
14b52538 23129 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 23130 btver1 def_and_undef
14b52538 23131 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
23132 btver1 cost table.
23133 (m_BTVER1): New definition.
23134 (m_AMD_MULTIPLE): Includes m_BTVER1.
23135 (initial_ix86_tune_features): Add btver1 tune.
23136 (processor_target_table): Add btver1 entry.
23137 (static const char *const cpu_names): Add btver1 entry.
23138 (software_prefetching_beneficial_p): Add btver1.
23139 (ix86_option_override_internal): Add btver1 instruction sets.
23140 (ix86_issue_rate): Add btver1.
23141 (ix86_adjust_cost): Add btver1.
14b52538 23142 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
23143 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23144 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
23145 * config/i386/i386.md (define_attr "cpu"): Add btver1.
23146
e1a973d8
RO
231472011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23148
23149 PR target/43309
23150 * config/i386/i386.c (legitimize_tls_address)
23151 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23152 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23153 (tls_initial_exec_64_sun): New pattern.
23154
c73f67c5
GP
231552011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
23156
23157 * doc/invoke.texi (Overall Options): Improve wording and markup
23158 of the description of -wrapper.
23159
bc4c6f9c
JM
231602011-01-06 Joseph Myers <joseph@codesourcery.com>
23161
23162 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23163 rdynamic, threads): New Driver options.
23164
adb75db0
RO
231652011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23166
23167 PR target/38118
23168 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23169 if coming from .tdata.
23170 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23171
402c1cb4
JH
231722011-01-06 Jan Hubicka <jh@suse.cz>
23173
23174 PR lto/47188
23175 * collect2.c (main): Do not enable LTOmode when plugin is active.
23176
a4da6485
RO
231772011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23178
23179 PR other/45915
23180 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23181 --version output if supported.
23182 * configure: Regenerate.
23183
028dbdf4
JM
231842011-01-06 Joseph Myers <joseph@codesourcery.com>
23185
23186 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23187 Driver options.
23188
dfe776dd
JJ
231892011-01-06 Jakub Jelinek <jakub@redhat.com>
23190
23191 PR c/47150
23192 * c-convert.c (convert): When converting a complex expression
23193 other than COMPLEX_EXPR to a different complex type, ensure
23194 c_save_expr is called instead of save_expr, unless in_late_binary_op.
23195 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23196 when converting COMPLEX_TYPE.
23197
210dedfe
IR
231982011-01-06 Ira Rosen <irar@il.ibm.com>
23199
23200 PR tree-optimization/47139
23201 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23202 only the last reduction value is used outside the loop. Update
23203 documentation.
23204
cd33a412
JM
232052011-01-05 Joseph Myers <joseph@codesourcery.com>
23206
23207 * config/rtems.opt: New.
23208 * config.gcc (*-*-rtems*): Use rtems.opt.
23209
819edd94
CF
232102011-01-05 Changpeng Fang <changpeng.fang@amd.com>
23211
23212 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23213 processors do not support 3DNow instructions.
23214
dc242c4a
UW
232152011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23216
23217 * config/spu/spu.c (spu_option_override): Set parameter
23218 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23219
be286227
JH
232202011-01-05 Jan Hubicka <jh@suse.cz>
23221
23222 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23223 at the command line.
23224
644e637f
MJ
232252011-01-05 Martin Jambor <mjambor@suse.cz>
23226
23227 PR lto/47162
23228 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23229 deltas on streamed outgoing edges.
23230 (output_node_opt_summary): Output info for outgoing edges only when
23231 the node is in new parameter set.
23232 (output_cgraph_opt_summary): New parameter set, passed to the two
23233 aforementioned functions. Update its forward declaration and its
23234 callee too.
23235
7bd11157
TT
232362011-01-05 Tom Tromey <tromey@redhat.com>
23237
23238 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23239 operator to c_finish_omp_atomic.
23240 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23241 (build_unary_op): Update.
23242 (build_modify_expr): Update.
23243 (build_asm_expr): Update.
23244
f626b979
UW
232452011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23246
23247 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23248 newly inserted insns.
23249 (pad_bb): Likewise.
23250 (spu_emit_branch_hint): Likewise.
23251 (insert_hbrp_for_ilb_runout): Likewise.
23252 (spu_machine_dependent_reorg): Call df_finish_pass after
23253 schedule_insns returns.
23254
4c825c02
UW
232552011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23256
23257 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23258
5e9fba51
EB
232592011-01-05 Eric Botcazou <ebotcazou@adacore.com>
23260
23261 PR tree-optimization/47005
23262 * tree-sra.c (struct access): Add 'non_addressable' bit.
23263 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23264 (decide_one_param_reduction): Return 0 if the parameter is passed by
23265 reference and one of the accesses in the group is non_addressable.
23266
3ebb5ca6
EB
232672011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23268
23269 PR tree-optimization/47056
23270 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23271 (mark_load): Likewise. Handle FUNCTION_DECL specially.
23272 (mark_store): Likewise. Pass STMT to ipa_record_reference.
23273
d5d4d14e
EB
232742011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23275
23276 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23277 initializer. Skip view conversions from aggregate types.
23278
d996ef70
KT
232792011-01-04 Kai Tietz <kai.tietz@onevision.com>
23280
23281 PR bootstrap/47055
23282 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23283
509d65dd 232842011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
23285
23286 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23287 obvious typo.
23288
55c623b5
UW
232892011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23290
23291 * function.c (thread_prologue_and_epilogue_insns): Do not crash
23292 on empty epilogue sequences.
23293
b98d6b35
JM
232942011-01-04 Joseph Myers <joseph@codesourcery.com>
23295
23296 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23297 non-static): New Driver options.
23298
a0d43bac
JZ
232992011-01-04 Jie Zhang <jie@codesourcery.com>
23300
23301 PR driver/47137
23302 * gcc.c (default_compilers[]): Set combinable field to 0
23303 for all assembly languages.
23304
2b18eb32
MX
233052011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
23306
23307 * config/mips/loongson3a.md: New file.
23308 * config/mips/mips.md: Include loongson3a.md.
23309 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23310 TUNE_LOONGSON_3A.
23311
42a48c4f
EB
233122011-01-03 Eric Botcazou <ebotcazou@adacore.com>
23313
23314 PR middle-end/47017
23315 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23316 instead of convert_memory_address_addr_space on the base expression.
23317
9c1732c4
UW
233182011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23319
23320 * config/spu/spu.c (spu_option_override): Update error text
23321 for bad -march= / -mtune= values.
23322
aa474365
UW
233232011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23324
23325 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23326 if branch-hint optimization will be performed.
23327
9766135b
JJ
233282011-01-03 Jakub Jelinek <jakub@redhat.com>
23329
371556ee
JJ
23330 PR tree-optimization/47148
23331 * ipa-split.c (split_function): Convert arguments to
23332 DECL_ARG_TYPE if possible.
23333
1ac12fa2
JJ
23334 PR tree-optimization/47155
23335 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23336 when computing uns.
23337
9766135b
JJ
23338 PR rtl-optimization/47157
23339 * combine.c (try_combine): If undobuf.other_insn becomes
23340 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23341 and set *new_direct_jump_p too.
23342
f4a2e571
SP
233432011-01-03 Sebastian Pop <sebastian.pop@amd.com>
23344
23345 PR tree-optimization/47021
23346 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23347
9f8e43c0
JJ
233482011-01-03 Jakub Jelinek <jakub@redhat.com>
23349
23350 * gcc.c (process_command): Update copyright notice dates.
23351 * gcov.c (print_version): Likewise.
23352 * gcov-dump.c (print_version): Likewise.
23353 * mips-tfile.c (main): Likewise.
23354 * mips-tdump.c (main): Likewise.
23355
1a2e38f3
MJ
233562011-01-03 Martin Jambor <mjambor@suse.cz>
23357
23358 PR tree-optimization/46801
23359 * tree-sra.c (type_internals_preclude_sra_p): Check whether
23360 aggregate fields start at byte boundary instead of the bit-field flag.
23361
56b721c5
L
233622011-01-03 H.J. Lu <hongjiu.lu@intel.com>
23363
23364 PR driver/47137
23365 * gcc.c (main): Revert revision 168407.
23366
839d549b
MJ
233672011-01-03 Martin Jambor <mjambor@suse.cz>
23368
23369 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23370
4ce99a20 233712011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
23372
23373 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23374 vector optab to expand vector/scalar shift, update gimple to vector.
23375
76df0ae6
MJ
233762011-01-03 Martin Jambor <mjambor@suse.cz>
23377
23378 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23379 a thunk.
23380
ce47fda3
MJ
233812011-01-03 Martin Jambor <mjambor@suse.cz>
23382
23383 PR tree-optimization/46984
23384 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23385 HOST_WIDE_INT.
23386 (cgraph_create_indirect_edge): Fixed line length.
23387 (cgraph_indirect_call_info): Declare.
23388 (cgraph_make_edge_direct) Update declaration.
23389 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23390 (cgraph_create_indirect_edge): Use it.
23391 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
23392 callees.
23393 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
23394 the new thunk_delta representation.
23395 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
23396 HOST_WIDE_INT.
23397 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
23398 (ipa_read_indirect_edge_info): Likewise.
23399 * lto-cgraph.c (output_edge_opt_summary): New function.
23400 (output_node_opt_summary): Call it on all outgoing edges.
23401 (input_edge_opt_summary): New function.
23402 (input_node_opt_summary): Call it on all outgoing edges.
23403
1e67fa1f
L
234042011-01-02 H.J. Lu <hongjiu.lu@intel.com>
23405
23406 PR driver/47137
23407 * gcc.c (main): Don't check have_o when settting combine_inputs.
23408
6656b2ac
EB
234092011-01-02 Eric Botcazou <ebotcazou@adacore.com>
23410
23411 * regrename.c: Add general comment describing the pass.
23412 (struct du_head): Remove 'length' field.
23413 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23414 (regrename_optimize): Do not sort chains. Rework comments, add others.
23415 Force renaming to the preferred class (if any) in the first pass and do
23416 not consider registers that belong to it in the second pass.
23417 (create_new_chain): Do not set 'length' field.
23418 (scan_rtx_reg): Likewise.
23419
bc470c24
JJ
234202011-01-02 Jakub Jelinek <jakub@redhat.com>
23421
4e996296
JJ
23422 PR tree-optimization/47140
23423 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23424 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23425 to bit_value_binop.
23426
bc470c24 23427 PR rtl-optimization/47028
6656b2ac
EB
23428 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23429 parm_birth_insn instead of at the beginning of first bb.
bc470c24 23430
5af62fcd 234312011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
23432
23433 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23434 Remove the word "see" before "@pxref".
23435 * doc/rtl.texi: Remove the word "see" before "@pxref".
23436
0e20c89f
JH
234372011-01-01 Jan Hubicka <jh@suse.cz>
23438
6656b2ac
EB
23439 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23440 memory.
0e20c89f 23441
220e83ca
KT
234422011-01-01 Kai Tietz <kai.tietz@onevision.com>
23443
23444 PR target/38662
6656b2ac 23445 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 23446
ad41bd84 23447\f
797103eb 23448Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
23449
23450Copying and distribution of this file, with or without modification,
23451are permitted in any medium without royalty provided the copyright
23452notice and this notice are preserved.