h8300: Add flags to .section directives.
[gcc.git] / gcc / ChangeLog
1 2011-07-31 Richard Henderson <rth@redhat.com>
2
3 * config/h8300/crti.asm: Add flags to .section directive.
4 * config/h8300/crtn.asm: Likewise.
5
6 2011-07-31 Richard Henderson <rth@redhat.com>
7
8 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
9 * tree.c (build_common_tree_nodes): Likewise.
10
11 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
12
13 PR target/49880
14 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
15 (divsi3_i1): Likewise.
16
17 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18
19 PR tree-optimization/49749
20 * tree-ssa-reassoc.c (get_rank): New forward declaration.
21 (PHI_LOOP_BIAS): New macro.
22 (phi_rank): New function.
23 (loop_carried_phi): Likewise.
24 (propagate_rank): Likewise.
25 (get_rank): Add calls to phi_rank and propagate_rank.
26
27 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
28
29 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
30 of TARGET_64BIT.
31 (PTRDIFF_TYPE): Likewise.
32
33 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
34
35 PR target/49920
36 * config/i386/i386.md (strset): Do not expand strset_singleop
37 when %eax or $edi are fixed.
38 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
39 (*strsetsi_1): Ditto.
40 (*strsethi_1): Ditto.
41 (*strsetqi_1): Ditto.
42 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
43 (*rep_stossi): Ditto.
44 (*rep_stosqi): Ditto.
45 (cmpstrnsi): Also fail when %ecx is fixed.
46 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
47 (*cmpstrnqi_1): Ditto.
48 (*strlenqi_1): Ditto.
49 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
50 (*strmovsi_1): Ditto.
51 (*strmovhi_1): Ditto.
52 (*strmovqi_1): Ditto.
53 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
54 (*rep_movsi): Ditto.
55 (*rep_movqi): Ditto.
56
57 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
58
59 PR target/47908
60 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
61 Disable instruction scheduling for non-ColdFire targets.
62 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
63
64 2011-07-31 Revital Eres <revital.eres@linaro.org>
65
66 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
67 of anti-dep edge from a branch.
68 (add_cross_iteration_register_deps): Create anti-dep edge from
69 a branch.
70
71 2011-07-31 Revital Eres <revital.eres@linaro.org>
72
73 * modulo-sched.c: Change comment.
74 (reset_sched_times): Fix print message.
75 (print_partial_schedule): Add print info.
76
77 2011-07-31 Tom de Vries <tom@codesourcery.com>
78
79 PR middle-end/43513
80 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
81 get_object_alignment and TYPE_ALIGN.
82
83 2011-07-30 Tom de Vries <tom@codesourcery.com>
84
85 PR middle-end/43513
86 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
87 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
88
89 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
90
91 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
92 <sys/sbd.h>.
93 (cpu_types): New array.
94 (cputype): New function.
95 (host_detect_local_cpu): Only define buf, f if !__sgi__.
96 Use scaninvent instead of /proc/cpuinfo if __sgi__.
97 * config.host: Also use driver-native.o, mips/x-native on
98 mips-sgi-irix*.
99 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
100 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
101 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
102
103 2011-07-29 Jakub Jelinek <jakub@redhat.com>
104
105 PR middle-end/49897
106 PR middle-end/49898
107 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
108 in nested parallel and outer is a gimple_reg, mark it as addressable
109 and set its bit in task_shared_vars bitmap too.
110
111 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
112
113 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
114
115 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
116
117 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
118 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
119 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
120 AMASK_LOCKPFTCHOK): Define.
121 (host_detect_local_cpu): Remove buf, f, cpu_names.
122 Define cpu_types, implver, amask.
123 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
124 native CPU.
125 * config.host: Also use driver-alpha.o, alpha/x-alpha on
126 alpha*-dec-osf*.
127 * config/alpha/osf5.h [__alpha__ || __alpha]
128 (host_detect_local_cpu): Declare.
129 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
130 (DRIVER_SELF_SPECS): Define.
131
132 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
133
134 PR target/47715
135 * config/i386/i386.md (*load_tp_x32): New.
136 (*load_tp_x32_zext): Ditto.
137 (*add_tp_x32): Ditto.
138 (*add_tp_x32_zext): Ditto.
139 (*load_tp_<mode>): Disable for TARGET_X32 targets.
140 (*add_tp_<mode>): Ditto.
141 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
142 ptr_mode and convert to Pmode if needed.
143
144 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
145
146 PR target/49687
147 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
148 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
149 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
150 Add X to register footprint: Clobber r26/r27.
151
152 2011-07-29 Richard Guenther <rguenther@suse.de>
153
154 * builtins.c (fold_builtin_signbit): Build the comparison
155 with a proper type.
156
157 2011-07-29 Richard Guenther <rguenther@suse.de>
158
159 PR tree-optimization/49893
160 * tree-predcom.c (suitable_reference_p): Volatile references
161 are not suitable.
162
163 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
164
165 PR target/49313
166 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
167 (__ctzsi2): Result for 0 may be undefined.
168 (__ctzhi2): Result for 0 may be undefined.
169 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
170 (__popcountsi2): Ditto. And don't clobber r26.
171 (__popcountdi2): Ditto. And don't clobber r27.
172 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
173 (parityhi2): New expand.
174 (paritysi2): New expand.
175 (popcounthi2): New expand.
176 (popcountsi2): New expand.
177 (clzhi2): New expand.
178 (clzsi2): New expand.
179 (ctzhi2): New expand.
180 (ctzsi2): New expand.
181 (ffshi2): New expand.
182 (ffssi2): New expand.
183 (copysignsf3): New insn.
184 (bswapsi2): New expand.
185 (*parityhi2.libgcc): New insn.
186 (*parityqihi2.libgcc): New insn.
187 (*paritysihi2.libgcc): New insn.
188 (*popcounthi2.libgcc): New insn.
189 (*popcountsi2.libgcc): New insn.
190 (*popcountqi2.libgcc): New insn.
191 (*popcountqihi2.libgcc): New insn-and-split.
192 (*clzhi2.libgcc): New insn.
193 (*clzsihi2.libgcc): New insn.
194 (*ctzhi2.libgcc): New insn.
195 (*ctzsihi2.libgcc): New insn.
196 (*ffshi2.libgcc): New insn.
197 (*ffssihi2.libgcc): New insn.
198 (*bswapsi2.libgcc): New insn.
199
200 2011-07-29 Richard Guenther <rguenther@suse.de>
201
202 * tree-vrp.c (get_value_range): Only set parameter default
203 definitions to varying, leave others at undefined.
204 (extract_range_from_binary_expr): Fix undefined handling.
205 (vrp_visit_phi_node): Handle merged undefined state.
206
207 2011-07-29 Wei Guozhi <carrot@google.com>
208
209 PR rtl-optimization/49799
210 * combine.c (make_compound_operation): Check if the bit field is valid
211 before change it to bit field extraction.
212
213 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
214
215 PR rtl-optimization/49891
216 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
217 newly created returnjumps.
218
219 2011-07-28 DJ Delorie <dj@redhat.com>
220
221 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
222 local frame in a naked function, and produce a suitable error for
223 that specific case.
224
225 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
226 registers to be reloaded in HI classes when the target is HI.
227
228 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
229
230 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
231 bound_one, bound_two.
232
233 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
234
235 PR middle-end/48648
236 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
237 CLAST assignments.
238 (translate_clast): Same.
239 (translate_clast_assignment): New.
240
241 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
242
243 PR tree-optimization/49876
244 * sese.c (rename_uses): Do not return false on gloog_error: set
245 the new_expr to integer_zero_node and continue code generation.
246 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
247
248 2011-07-28 Jakub Jelinek <jakub@redhat.com>
249
250 PR debug/49846
251 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
252 arguments also check if they aren't initialized with a MODE_INT
253 mode of the same size.
254
255 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
256
257 * expr.c (get_bit_range): Handle *MEM_REF's.
258
259 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
260
261 * rtlanal.c (tablejump_p): False for returns.
262 * reorg.c (first_active_target_insn): New static function.
263 (find_end_label): Set JUMP_LABEL for a new returnjump.
264 (optimize_skip, get_jump_flags, rare_destination,
265 mostly_true_jump, get_branch_condition,
266 steal_delay_list_from_target, own_thread_p,
267 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
268 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
269 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
270 * jump.c (delete_related_insns): Likewise.
271 (jump_to_label_p): New function.
272 (redirect_target): New static function.
273 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
274 (redirect_jump_1): Assert that the new label is nonnull.
275 (redirect_jump): Likewise.
276 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
277 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
278 exit block.
279 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
280 changed. Ensure that the right label is passed to redirect_jump.
281 * function.c (emit_return_into_block,
282 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
283 ret_rtx in their JUMP_LABEL.
284 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
285 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
286 pass ret_rtx as label.
287 * cfglayout.c (fixup_reorder_chain): Use
288 force_nonfallthru_and_redirect rather than force_nonfallthru.
289 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
290 * rtl.h (ANY_RETURN_P): New macro.
291 (jump_to_label_p): Declare.
292 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
293 JUMP_LABELs.
294 (mark_target_live_regs): Likewise.
295 * basic-block.h (force_nonfallthru_and_redirect): Declare.
296 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
297 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
298 alpha_tablejump_best_label): Remove functions.
299 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
300 alpha_tablejump_best_label): Remove declarations.
301 * config/sh/sh.c (barrier_align, split_branches): Adjust for
302 ret_rtx in JUMP_LABELs.
303 * config/arm/arm.c (is_jump_table): Likewise.
304
305 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
306
307 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
308 special predicate. Remove explicit mode checks.
309
310 2011-07-28 Jakub Jelinek <jakub@redhat.com>
311
312 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
313 DW_AT_data_member_location containing just DW_OP_plus_uconst.
314
315 PR debug/49871
316 * dwarf2out.c (size_of_die, value_format, output_die): Use
317 DW_FORM_udata instead of DW_FORM_data[48] for
318 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
319
320 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
321
322 * config/i386/i386.md (*tls_global_dynamic_64): Update
323 length attribute.
324
325 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
326
327 PR target/47715
328 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
329 tls_symbolic_operand check. Update code sequence for TARGET_X32.
330 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
331 (tls_dynamic_gnu2_64): Ditto.
332 (*tls_dynamic_gnu2_lea_64): Ditto.
333 (*tls_dynamic_gnu2_call_64): Ditto.
334 (*tls_dynamic_gnu2_combine_64): Ditto.
335
336 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
337
338 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
339
340 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
341
342 PR target/47364
343 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
344
345 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
346
347 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
348 before the core constraints. Adjust attributes.
349 ("*thumb2_movdf_vfp"): Likewise.
350
351 2011-07-28 Kai Tietz <ktietz@redhat.com>
352
353 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
354 (simplify_truth_ops_using_ranges): Likewise.
355 (build_assert_expr_for): Likewise.
356 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
357 and handle BIT_NOT_EXPR for truth-operation.
358
359 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
360
361 PR target/49313
362 Undo r176835 from trunk
363 2011-07-27 Georg-Johann Lay
364
365 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
366
367 PR target/49687
368 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
369 Add _muluhisi3, _mulshisi3, _usmulhisi3.
370 * config/avr/libgcc.S (__mulsi3): Rewrite.
371 (__mulhisi3): Rewrite.
372 (__umulhisi3): Rewrite.
373 (__usmulhisi3): New.
374 (__muluhisi3): New.
375 (__mulshisi3): New.
376 (__mulohisi3): New.
377 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
378 declare.
379 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
380 (pseudo_register_or_const_int_operand): New.
381 (combine_pseudo_register_operand): New.
382 (u16_operand): New.
383 (s16_operand): New.
384 (o16_operand): New.
385 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
386 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
387 (any_extend, any_extend2): New code iterators.
388 (extend_prefix): New code attribute.
389 (mulsi3): Rewrite. Turn insn to expander.
390 (mulhisi3): Ditto.
391 (umulhisi3): Ditto.
392 (usmulhisi3): New expander.
393 (*mulsi3): New insn-and-split.
394 (mulu<mode>si3): New insn-and-split.
395 (muls<mode>si3): New insn-and-split.
396 (mulohisi3): New insn-and-split.
397 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
398 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
399 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
400 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
401 insn-and-split.
402 (*mulsi3_call): Rewrite.
403 (*mulhisi3_call): Rewrite.
404 (*umulhisi3_call): Rewrite.
405 (*usmulhisi3_call): New insn.
406 (*muluhisi3_call): New insn.
407 (*mulshisi3_call): New insn.
408 (*mulohisi3_call): New insn.
409 (extendqihi2): Use combine_pseudo_register_operand as predicate
410 for operand 1.
411 (extendqisi2): Ditto.
412 (zero_extendqihi2): Ditto.
413 (zero_extendqisi2): Ditto.
414 (zero_extendhisi2): Ditto.
415 (extendhisi2): Ditto. Don't early-clobber operand 0.
416
417 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
418
419 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
420
421 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
422
423 PR tree-optimization/49471
424 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
425 iv only when the largest type is unsigned. Do not call
426 lang_hooks.types.type_for_size.
427
428 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
429
430 PR middle-end/45450
431 * graphite-poly.c (apply_poly_transforms): Disable legality check
432 after an openscop read.
433
434 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
435
436 PR middle-end/47691
437 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
438 copy_bb_and_scalar_dependences.
439 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
440 (graphite_copy_stmts_from_block): Update call to rename_uses.
441 (copy_bb_and_scalar_dependences): Update call to
442 graphite_copy_stmts_from_block.
443 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
444
445 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
446
447 PR target/49313
448 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
449 (__ctzsi2): Result for 0 may be undefined.
450 (__ctzhi2): Result for 0 may be undefined.
451 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
452 (__popcountsi2): Ditto. And don't clobber r26.
453 (__popcountdi2): Ditto. And don't clobber r27.
454 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
455 (parityhi2): New expand.
456 (paritysi2): New expand.
457 (popcounthi2): New expand.
458 (popcountsi2): New expand.
459 (clzhi2): New expand.
460 (clzsi2): New expand.
461 (ctzhi2): New expand.
462 (ctzsi2): New expand.
463 (ffshi2): New expand.
464 (ffssi2): New expand.
465 (copysignsf3): New insn.
466 (bswapsi2): New expand.
467 (*parityhi2.libgcc): New insn.
468 (*parityqihi2.libgcc): New insn.
469 (*paritysihi2.libgcc): New insn.
470 (*popcounthi2.libgcc): New insn.
471 (*popcountsi2.libgcc): New insn.
472 (*popcountqi2.libgcc): New insn.
473 (*popcountqihi2.libgcc): New insn-and-split.
474 (*clzhi2.libgcc): New insn.
475 (*clzsihi2.libgcc): New insn.
476 (*ctzhi2.libgcc): New insn.
477 (*ctzsihi2.libgcc): New insn.
478 (*ffshi2.libgcc): New insn.
479 (*ffssihi2.libgcc): New insn.
480 (*bswapsi2.libgcc): New insn.
481
482 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
483
484 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
485 the mode of symbolic_opreand RTXes.
486
487 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
488
489 * config/i386/predicates.md (x86_64_movabs_operand): Return false
490 for pic_32bit_operand RTXes.
491 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
492 in DImode.
493
494 2011-07-27 Kai Tietz <ktietz@redhat.com>
495
496 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
497 for 32-bit, too.
498 (ix86_handle_abi_attribute): Allow function attributes
499 ms_abi/sysv_abi in 32-bit mode, too.
500 * doc/extend.texi: Adjust attribute documentation.
501
502 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
503 expression handling.
504 (and_var_with_comparison_1): Likewise.
505
506 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
507
508 * params.h (ALLOW_STORE_DATA_RACES): New.
509 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
510 * Makefile.in (expr.o): Depend on PARAMS_H.
511 * machmode.h (get_best_mode): Add argument.
512 * fold-const.c (optimize_bit_field_compare): Add argument to
513 get_best_mode.
514 (fold_truthop): Same.
515 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
516 * expr.c (emit_group_store): Same.
517 (copy_blkmode_from_reg): Same.
518 (write_complex_part): Same.
519 (optimize_bitfield_assignment_op): Add argument.
520 Add argument to get_best_mode.
521 (get_bit_range): New.
522 (expand_assignment): Calculate maxbits and pass it down accordingly.
523 (store_field): New argument.
524 (expand_expr_real_2): New argument to store_field. Include params.h.
525 * expr.h (store_bit_field): New argument.
526 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
527 into account maxbits.
528 * calls.c (store_unaligned_arguments_into_pseudos): New argument
529 to store_bit_field.
530 * expmed.c (store_bit_field_1): New argument. Use it.
531 (store_bit_field): Same.
532 (store_fixed_bit_field): Same.
533 (store_split_bit_field): Same.
534 (extract_bit_field_1): Pass new argument to get_best_mode.
535 (extract_bit_field): Same.
536 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
537 * doc/invoke.texi: Document parameter allow-store-data-races.
538
539 2011-07-27 Jakub Jelinek <jakub@redhat.com>
540
541 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
542
543 2011-07-27 Kai Tietz <ktietz@redhat.com>
544
545 * tree-vrp.c (extract_range_from_binary_expr): Remove
546 TRUTH-binary cases and add new bitwise-cases.
547 (extract_range_from_assignment): Likewise.
548 (register_edge_assert_for_1): Likeiwise.
549 (register_edge_assert_for): Likewise.
550 (simplify_truth_ops_using_ranges): Likewise.
551 (simplify_stmt_using_ranges): Likewise.
552
553 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
554
555 PR target/47372
556 * config/i386/i386.c (ix86_delegitimize_address): Call
557 simplify_gen_subreg for PIC with mode of x only if modes of
558 x and orig_x are different.
559
560 2011-07-26 Jakub Jelinek <jakub@redhat.com>
561
562 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
563 to GC allocated copy of the string.
564 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
565 before .debug_line, not after it.
566
567 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
568
569 PR middle-end/47046
570 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
571 evolution_function_is_affine_p on CHREC_RIGHT.
572
573 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
574
575 * tree-data-ref.c (max_stmt_executions_tree): Do not call
576 lang_hooks.types.type_for_size.
577
578 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
579
580 PR middle-end/47653
581 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
582 loops using wrapping semantics.
583
584 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
585
586 PR middle-end/48805
587 * tree-scalar-evolution.c (instantiate_scev_r): Return
588 chrec_dont_know for ADDR_EXPR.
589
590 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
591 H.J. Lu <hongjiu.lu@intel.com>
592
593 PR target/47369
594 PR target/49853
595 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
596 if legitimize_tls_address returned operand in wrong mode. Allow
597 SImode and DImode symbolic operand for PIC. Call convert_to_mode
598 if legitimize_pic_address returned operand in wrong mode.
599
600 2011-07-26 Martin Jambor <mjambor@suse.cz>
601
602 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
603 return false for invariants.
604
605 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
606
607 * config/i386/i386.md (add->lea splitter): Implement using SWI
608 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
609 (add->lea zext splitter): Change operand 2 predicate to
610 x86_64_nonmemory_operand.
611
612 2011-07-26 Richard Guenther <rguenther@suse.de>
613
614 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
615 frequency makes everything hot.
616
617 2011-07-26 Richard Guenther <rguenther@suse.de>
618
619 PR tree-optimization/49840
620 * tree-vrp.c (range_fits_type_p): Properly handle full
621 double-int precision.
622
623 2011-07-26 Martin Jambor <mjambor@suse.cz>
624
625 PR bootstrap/49786
626 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
627 counts.
628 (update_specialized_profile): Likewise.
629
630 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
631 H.J. Lu <hongjiu.lu@intel.com>
632
633 PR target/47381
634 PR target/49832
635 PR target/49833
636 * config/i386/i386.md (i): Change SImode attribute to "e".
637 (g): Change SImode attribute to "rme".
638 (di): Change SImode attribute to "nF".
639 (general_operand): Change SImode attribute to x86_64_general_operand.
640 (general_szext_operand): Change SImode attribute to
641 x86_64_szext_general_operand.
642 (immediate_operand): Change SImode attribute to
643 x86_64_immediate_operand.
644 (nonmemory_operand): Change SImode attribute to
645 x86_64_nonmemory_operand.
646 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
647 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
648 (*lea_1): Use SWI48 mode iterator.
649 (*lea_1_zext): New insn pattern.
650 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
651 (*bt<mode>): Ditto.
652 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
653 Update operand constraints.
654 (addsi_1_zext): Ditto.
655 (*add<mode>2): Ditto.
656 (*addsi_3_zext): Ditto.
657 (*subsi_1_zext): Ditto.
658 (*subsi_2_zext): Ditto.
659 (*subsi_3_zext): Ditto.
660 (*addsi3_carry_zext): Ditto.
661 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
662 (*mulsi3_1_zext): Ditto.
663 (*andsi_1): Ditto.
664 (*andsi_1_zext): Ditto.
665 (*andsi_2_zext): Ditto.
666 (*<any_or:code>si_1_zext): Ditto.
667 (*<any_or:code>si_2_zext): Ditto.
668 (*test<mode>_1): Use <general_operand> predicate for operand 1.
669 (*and<mode>_2): Ditto.
670 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
671 (add->lea splitter): Check operand modes in insn constraint. Extend
672 operands less than SImode wide to SImode.
673 (add->lea zext splitter): Do not extend input operands to DImode.
674 (*lea_general_1): Handle only QImode and HImode operands.
675 (*lea_general_2): Ditto.
676 (*lea_general_3): Ditto.
677 (*lea_general_1_zext): Remove.
678 (*lea_general_2_zext): Ditto.
679 (*lea_general_3_zext): Ditto.
680 (*lea_general_4): Check operand modes in insn constraint. Extend
681 operands less than SImode wide to SImode.
682 (ashift->lea splitter): Ditto.
683 * config/i386/i386.c (ix86_print_operand_address): Print address
684 registers with 'q' modifier on 64bit targets.
685 * config/i386/predicates.md (pic_32bit_opreand): Define as special
686 predicate. Reject non-SI and non-DI modes.
687
688 2011-07-25 Andrew Pinski <apinski@cavium.com>
689
690 PR tree-opt/49671
691 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
692 TREE_THIS_NOTRAP into the inner most MEM_REF.
693 Always copy TREE_THIS_VOLATILE.
694 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
695 arguments are not volatile references.
696
697 2011-07-25 Richard Henderson <rth@redhat.com>
698
699 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
700 * final.c (final_scan_insn): Don't test for it.
701 (rest_of_clean_state): Likewise.
702
703 2011-07-25 Richard Henderson <rth@redhat.com>
704
705 PR debug/49841
706 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
707 (emit_frame_save): Likewise.
708 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
709 insn onto a dummy blockage insn after the join label.
710
711 2011-07-25 Richard Henderson <rth@redhat.com>
712
713 * dwarf2cfi.c (dw_trace_info): Add ID member.
714 (get_trace_index): Remove. Change users to use ID member.
715 (before_next_cfi_note): New.
716 (connect_traces): Remove unreachable traces before the main loop.
717 Look across one trace and generate remember/restore_state if needed.
718
719 2011-07-25 Richard Henderson <rth@redhat.com>
720
721 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
722
723 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
724
725 * genattr.c (write_upcase, gen_attr <enum definition writing>):
726 Move to ...
727 * genattr-common.c ... here.
728 (main): Call gen_attr.
729 * optc-gen.awk: Make generated program include insn-attr-common.h .
730 * Makefile.in (oprions.o): Depend on insn-attr-common.h
731
732 2011-07-25 Anatoly Sokolov <aesok@post.ru>
733
734 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
735 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
736 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
737 m32c_print_operand, m32c_print_operand_address): Remove.
738 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
739 Change return type to bool. Change argument type to bool.
740 (m32c_print_operand, m32c_print_operand_address): Make static.
741 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
742 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
743
744 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
745
746 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
747 attributes): Document mmap.
748
749 2011-07-25 Anatoly Sokolov <aesok@post.ru>
750
751 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
752 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
753 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
754 mmix_print_operand, mmix_print_operand_address): Remove.
755 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
756 Change return type to bool. Change argument type to bool.
757 (mmix_print_operand, mmix_print_operand_address): Make static.
758 (mmix_intval, mmix_output_condition): Change 'x' argument type
759 to const_rtx.
760 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
761 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
762
763 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
764
765 PR target/39386
766 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
767 shift counter for x << x and x >> x shifts.
768
769 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
770
771 PR target/47124
772 * config.gcc: Reject *-*-solaris2 configuration.
773
774 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
775
776 PR tree-optimization/49809
777 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
778 gimple_get_lhs instead of gimple_assign_lhs.
779
780 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
781
782 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
783
784 2011-07-25 Richard Guenther <rguenther@suse.de>
785
786 PR tree-optimization/49822
787 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
788 more. Make sure to preserve stmts with side-effects. Properly
789 handle virtual defs, follow a longer def chain.
790
791 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
792
793 PR plugins/45348
794 PR plugins/48425
795 PR plugins/46577
796 * Makefile.in: Do not flatten c-family directory when installing
797 plugin headers.
798
799 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
800
801 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
802 original nodes if we are dealing with virtual clones.
803
804 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
805
806 * common/config/c6x/c6x-common.c: New file.
807
808 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
809
810 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
811
812 2011-07-25 Richard Guenther <rguenther@suse.de>
813
814 PR tree-optimization/49715
815 * tree-vrp.c: Include expr.h and optabs.h.
816 (range_fits_type_): New function.
817 (simplify_float_conversion_using_ranges): Likewise.
818 (simplify_stmt_using_ranges): Call it.
819 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
820 * optabs.c (can_float_p): Export.
821 * optabs.h (can_float_p): Declare.
822
823 2011-07-25 Richard Guenther <rguenther@suse.de>
824
825 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
826 (get_value_range): For out-of-range SSA names or names created
827 after propagation return a read-only varying range.
828 (dump_all_value_ranges): Adjust.
829 (vrp_initialize): Likewise.
830 (vrp_finalize): Likewise.
831
832 2011-07-24 Richard Henderson <rth@redhat.com>
833
834 PR debug/49831
835 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
836 them entirely.
837
838 2011-07-24 Richard Henderson <rth@redhat.com>
839
840 PR debug/49825
841 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
842 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
843
844 2011-07-24 Richard Henderson <rth@redhat.com>
845
846 PR debug/49827
847 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
848
849 2011-07-24 Richard Henderson <rth@redhat.com>
850
851 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
852 Zero args_size for abnormal edges. Adjust all callers.
853
854 2011-07-24 Richard Henderson <rth@redhat.com>
855
856 PR debug/49825
857 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
858
859 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
860
861 PR bootstrap/49835
862 * collect2.c (demangle_flag): Removed.
863
864 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
865
866 * configure.ac (demangler_in_ld): Default to yes.
867 * configure: Regenerated.
868 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
869 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
870 --no-demangle options straight through to ld. When
871 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
872 way that has the intended effect on Windows.
873
874 2011-07-23 Richard Henderson <rth@redhat.com>
875
876 * dwarf2cfi.c: Include basic-block.h.
877 (dw_label_info): Remove.
878 (trace_work_list, trace_index): New.
879 (remember_row, emit_cfa_remember): Remove.
880 (dw_trace_info_hash, dw_trace_info_eq): New.
881 (get_trace_index, get_trace_info): New.
882 (save_point_p): New.
883 (free_cfi_row): Remove.
884 (add_cfi): Do not emit DW_CFA_remember_state.
885 (cfa_row_equal_p): New.
886 (barrier_args_size): Remove.
887 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
888 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
889 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
890 (dwarf2out_cfi_begin_epilogue): Remove.
891 (dwarf2out_frame_debug_restore_state): Remove.
892 (connect_traces, create_pseudo_cfg): New.
893 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
894 * Makefile.in (dwarf2cfi.o): Update.
895
896 2011-07-23 Richard Henderson <rth@redhat.com>
897
898 * dwarf2cfi.c (dw_trace_info): New.
899 (dw_label_info): New.
900 (cie_return_save): New.
901 (cur_trace): New.
902 (queued_args_size): Rename from args_size. Update all users.
903 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
904 (def_cfa_1): Use cur_trace instead of cfa_*.
905 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
906 (clobbers_queued_reg_save, reg_saved_in): Likewise.
907 (dwarf2out_frame_debug_expr): Likewise.
908 (create_cie_data): Split out from ...
909 (execute_dwarf2_frame): ... here. Initialize cur_trace.
910
911 2011-07-23 Richard Henderson <rth@redhat.com>
912
913 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
914 Update all users to match.
915 (execute_dwarf2_frame): Free reg_saved_in_data.
916
917 2011-07-23 Richard Henderson <rth@redhat.com>
918
919 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
920 (queued_reg_saves): Don't GTY. Change to a VEC.
921 (queue_reg_save): Update to match.
922 (dwarf2out_flush_queued_reg_saves): Likewise.
923 (clobbers_queued_reg_save): Likewise.
924 (reg_saved_in): Likewise.
925 (execute_dwarf2_frame): Free queued_reg_saves.
926
927 2011-07-23 Richard Henderson <rth@redhat.com>
928
929 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
930
931 2011-07-23 Richard Henderson <rth@redhat.com>
932
933 * dwarf2cfi.c (add_cfi_args_size): Split out from...
934 (dwarf2out_args_size): ... here.
935 (add_cfi_restore): Split out from ...
936 (dwarf2out_frame_debug_cfa_restore): ... here.
937 (def_cfa_0): Split out from ...
938 (def_cfa_1): ... here.
939 (cfi_oprnd_equal_p, cfi_equal_p): New.
940 (change_cfi_row): New.
941 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
942 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
943 (output_cfis): Remove.
944 * dwarf2out.c (output_fde): Simplify output_cfi loop.
945 (dwarf2out_switch_text_section): Don't call output_cfis.
946 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
947 * dwarf2out.h: Update decls.
948 (enum dw_val_class): Add dw_val_class_none.
949
950 2011-07-23 Richard Henderson <rth@redhat.com>
951
952 * dwarf2cfi.c (update_row_reg_save): New.
953 (dwarf2out_frame_debug_cfa_expression): Use it.
954 (dwarf2out_frame_debug_cfa_restore): Likewise.
955 (reg_save): Likewise. Do not emit DW_CFA_same_value.
956
957 2011-07-23 Richard Henderson <rth@redhat.com>
958
959 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
960
961 2011-07-23 Richard Henderson <rth@redhat.com>
962
963 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
964 (cie_cfi_row): New.
965 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
966 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
967 (cur_row, remember_row): New.
968 (def_cfa_1): Use cur_row instead of the old_* variables.
969 (dwarf2out_frame_debug_restore_state): Similarly.
970 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
971 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
972 (dwarf2out_frame_debug_adjust_cfa): Likewise.
973 (dwarf2out_frame_debug_cfa_offset): Likewise.
974 (dwarf2out_frame_debug_expr): Likewise.
975 (execute_dwarf2_frame): Set up cur_row.
976 * dwarf2out.h (struct cfa_loc): Mark for GTY.
977
978 2011-07-23 Richard Henderson <rth@redhat.com>
979
980 * basic-block.h (EDGE_PRESERVE): New.
981 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
982 * bb-reorder.c: Include except.h.
983 (fix_up_crossing_landing_pad): New.
984 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
985 landing pads in the right partition. Duplicate as necessary.
986 (partition_hot_cold_basic_blocks): Fix up DF info after
987 duplicating landing pads.
988 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
989 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
990 is set properly. Validate that EH edges are not CROSSING.
991 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
992 (dw2_build_landing_pads): ... here.
993 (convert_to_eh_region_ranges): Remove code to fixup crossing
994 landing pads.
995 * except.h (expand_dw2_landing_pad_for_region): Declare.
996 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
997
998 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
999
1000 PR target/49816
1001 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
1002
1003 2011-07-22 Jason Merrill <jason@redhat.com>
1004
1005 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
1006
1007 2011-07-22 Richard Henderson <rth@redhat.com>
1008
1009 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
1010
1011 2011-07-22 Richard Henderson <rth@redhat.com>
1012
1013 * jump.c (maybe_propagate_label_ref): Split out of...
1014 (mark_all_labels): ... here. Do not attempt label_ref
1015 propagation while in cfglayout mode.
1016
1017 2011-07-22 Jakub Jelinek <jakub@redhat.com>
1018
1019 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
1020 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
1021 (dwarf_attr_name): Handle DW_AT_GNU_macros.
1022 (dwarf2out_define): If the vector is empty and
1023 lineno is 0, emit a dummy entry first.
1024 (dwarf2out_undef): Likewise. Remove redundant semicolon.
1025 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
1026 optimize_macinfo_range): New functions.
1027 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
1028 mergeable, optimize longer strings using
1029 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
1030 optimize longer sequences of define/undef ops from headers
1031 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
1032 emit a section headers.
1033 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
1034 and macinfo_section_label to DEBUG_MACRO_SECTION
1035 resp. DEBUG_MACRO_SECTION_LABEL.
1036 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
1037 instead of DW_AT_macro_info.
1038
1039 PR other/32998
1040 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
1041 options.
1042 * dwarf2out.c: Include opts.h.
1043 (dchar_p): New typedef. Define heap VEC for it.
1044 (producer_string): New variable.
1045 (gen_producer_string): New function.
1046 (gen_compile_unit_die): Use it.
1047 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
1048 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
1049 * doc/invoke.texi: Document -grecord-gcc-switches and
1050 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
1051 to -frecord-gcc-switches description.
1052
1053 2011-07-22 Jason Merrill <jason@redhat.com>
1054
1055 PR c++/30112
1056 * c-decl.c (c_linkage_bindings): Define.
1057
1058 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
1059
1060 PR debug/49815
1061 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
1062
1063 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
1064
1065 * config/i386/i386.c (ix86_option_override_internal): Disallow
1066 MS ABI in x32 mode.
1067 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
1068 only for TARGET_LP64.
1069 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
1070
1071 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
1072
1073 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
1074 avoid warnings when GCC is built with a C++ compiler.
1075
1076 2011-07-22 Martin Jambor <mjambor@suse.cz>
1077
1078 PR lto/49796
1079 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
1080 if decl node is in another partition, call cgraph_get_node only once.
1081
1082 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
1083
1084 * config.gcc (x86_64-*-linux*): Set
1085 default_gnu_indirect_function to yes.
1086
1087 2011-07-22 Richard Guenther <rguenther@suse.de>
1088
1089 PR tree-optimization/45819
1090 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
1091 preserve volatile and notrap flags.
1092
1093 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1094 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1095
1096 PR bootstrap/49794
1097 * configure.ac: Test AM_ICONV with CXX.
1098 * configure: Regenerate.
1099 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
1100
1101 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1102
1103 PR bootstrap/49797
1104 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
1105 (set_cloog_options): Use it.
1106
1107 2011-07-22 Jakub Jelinek <jakub@redhat.com>
1108
1109 PR c++/49756
1110 * gcc.c (main): Call stack_limit_increase (64MB).
1111 * toplev.c (toplev_main): Likewise.
1112
1113 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1114
1115 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
1116 instead of force_reg.
1117
1118 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1119
1120 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
1121 needed and use force_reg after convert.
1122 (ix86_expand_call): Likewise.
1123 (ix86_expand_special_args_builtin): Likewise.
1124 (ix86_expand_builtin): Likewise.
1125
1126 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1127
1128 PR middle-end/47654
1129 PR middle-end/49649
1130 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
1131 in parameter. Initialize v1 and v2 based on the values returned
1132 by clast_name_to_lb_ub.
1133 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
1134 values.
1135 (type_for_clast_bin): Same.
1136 (type_for_clast_expr): Same.
1137 (type_for_clast_eq): Update calls to type_for_clast_expr.
1138 (type_for_clast_for): Same.
1139 (build_iv_mapping): Same.
1140 * graphite-ppl.h (value_min): New.
1141
1142 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1143
1144 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
1145 types whenever possible.
1146
1147 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1148
1149 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
1150 and ub fields.
1151 (new_clast_name_index): Add lb and ub parameters.
1152 (free_clast_name_index): New.
1153 (clast_name_to_lb_ub): New.
1154 (save_clast_name_index): Add lb and ub parameters.
1155 (compute_bounds_for_param): New.
1156 (type_for_level): Removed.
1157 (type_for_clast_for): Removed level parameter. Do not call
1158 type_for_level.
1159 (graphite_create_new_loop): Store the lb and ub for the clast_name
1160 of the iterator of the loop that has been generated.
1161 (graphite_create_new_loop_guard): Remove parameter level.
1162 (create_params_index): Store the lb and ub of each parameter.
1163 (gloog): Use free_clast_name_index. Pass to create_params_index
1164 the current scop.
1165
1166 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1167
1168 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
1169 (max_precision_type): Inline max_signed_precision_type.
1170 (type_for_clast_red): Use max_precision_type.
1171 (type_for_clast_bin): Same.
1172 (type_for_clast_for): Same.
1173
1174 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1175
1176 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
1177 type_for_interval.
1178 (gcc_type_for_value): Renamed type_for_value.
1179 (gcc_type_for_clast_term): Renamed type_for_clast_term.
1180 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
1181 (gcc_type_for_clast_red): Renamed type_for_clast_red.
1182 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
1183 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
1184 (graphite_translate_clast_equation): Update calls.
1185 (compute_type_for_level): Renamed type_for_level.
1186 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
1187 (build_iv_mapping): Update calls.
1188 (graphite_create_new_loop_guard): Same.
1189
1190 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1191
1192 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
1193 comment.
1194
1195 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1196
1197 * graphite-clast-to-gimple.c (struct ivs_params): New.
1198 (clast_name_to_gcc): Use ivs_params to pass around parameters.
1199 (clast_to_gcc_expression): Same.
1200 (clast_to_gcc_expression_red): Same.
1201 (gcc_type_for_clast_term): Same.
1202 (gcc_type_for_clast_expr): Same.
1203 (gcc_type_for_clast_red): Same.
1204 (gcc_type_for_clast_bin): Same.
1205 (gcc_type_for_clast_eq): Same.
1206 (graphite_translate_clast_equation): Same.
1207 (graphite_create_guard_cond_expr): Same.
1208 (graphite_create_new_guard): Same.
1209 (graphite_create_new_loop): Same.
1210 (build_iv_mapping): Same.
1211 (translate_clast_user): Same.
1212 (graphite_create_new_loop_guard): Same.
1213 (translate_clast): Same.
1214 (translate_clast_for_loop): Same.
1215 (translate_clast_for): Same.
1216 (translate_clast_guard): Same.
1217 (initialize_cloog_names): Fix typo.
1218 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
1219
1220 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1221
1222 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
1223 (new_clast_name_index): Add level parameter.
1224 (clast_name_to_level): New.
1225 (save_clast_name_index): Add level parameter.
1226 (newivs_to_depth_to_newiv): Removed.
1227 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
1228 (graphite_create_new_loop): Add level parameter. Pass level to
1229 save_clast_name_index.
1230 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
1231 (create_params_index): Pass level to save_clast_name_index.
1232
1233 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1234
1235 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
1236 recompute type, lb, and ub. Get them from...
1237 (graphite_create_new_loop_guard): ...here. Pass in parameter
1238 pointers to type, lb, and ub.
1239 (translate_clast_for_loop): Update function calls.
1240 (translate_clast_for): Same.
1241
1242 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
1243
1244 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
1245 psct_dynamic_dim.
1246 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
1247 (gcc_type_for_iv_of_clast_loop): Update use of level.
1248 (gloog): Start counting nesting level from 0.
1249 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
1250 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
1251 psct_dynamic_dim on level.
1252
1253 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1254
1255 * config/i386/i386.c (ix86_legitimize_address): Convert to
1256 Pmode if needed.
1257
1258 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
1259
1260 * config/i386/i386.c (function_value_64): Always return pointers
1261 in Pmode.
1262 (ix86_promote_function_mode): New.
1263 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
1264
1265 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1266
1267 PR tree-optimization/49749
1268 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
1269 remove no-longer-used maxrank variable.
1270
1271 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
1272
1273 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
1274
1275 2011-07-21 Jason Merrill <jason@redhat.com>
1276
1277 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
1278 * recog.h (struct insn_data_d): Check it instead of
1279 HAVE_DESIGNATED_INITIALIZERS.
1280 * genoutput.c (output_insn_data): Likewise.
1281
1282 2011-07-21 Richard Guenther <rguenther@suse.de>
1283
1284 PR tree-optimization/49770
1285 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
1286 valueized any operand. Renamed from ...
1287 (valueize_refs): ... this. New wrapper around valueize_refs_1.
1288 (valueize_shared_reference_ops_from_ref): Return whether we
1289 valueized any operand.
1290 (vn_reference_lookup): Only when we valueized any operand
1291 use the valueized reference for alias analysis. Do not preserve
1292 the original reference tree in this case.
1293
1294 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
1295
1296 * config/i386/i386.c (ix86_decompose_address): Reject all but
1297 register operands and subregs of DImode hard registers in index.
1298
1299 2011-07-21 Kai Tietz <ktietz@redhat.com>
1300
1301 * fold-const.c (fold_unary_loc): Preserve indirect
1302 comparison cast to none-boolean type.
1303 * tree-ssa.c (useless_type_conversion_p): Preserve cast
1304 from/to boolean-type.
1305 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
1306 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
1307 * tree-cfg.c (verify_gimple_comparison): Check result
1308 type of comparison expression.
1309 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
1310 of condition result and disallow type-cast sinking into comparison.
1311
1312 2011-07-21 Richard Guenther <rguenther@suse.de>
1313
1314 * tree-ssa-forwprop.c (combine_conversions): Return whether
1315 we have to run cfg-cleanup. Properly remove dead stmts.
1316 (ssa_forward_propagate_and_combine): Adjust.
1317
1318 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
1319
1320 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
1321
1322 2011-07-21 Kai Tietz <ktietz@redhat.com>
1323
1324 * tree-ssa-propagate.c (substitute_and_fold): Use
1325 do_dce flag to deside, if BB's statements are scanned
1326 in last to first, or first to last order.
1327
1328 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
1329
1330 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
1331
1332 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
1333 Uros Bizjak <ubizjak@gmail.com>
1334 Richard Henderson <rth@redhat.com>
1335
1336 * config/i386/constraints.md (w): New.
1337
1338 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
1339 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
1340
1341 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
1342 instead of TARGET_64BIT.
1343
1344 * config/i386/i386.md (indirect_jump): Replace
1345 nonimmediate_operand with indirect_branch_operand.
1346 (*indirect_jump): Likewise. Replace constraint "m" with "w".
1347 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
1348 Convert operand 0 to Pmode for x32 if not PIC.
1349 (*tablejump_1): Replace nonimmediate_operand with
1350 indirect_branch_operand. Replace constraint "m" with "w".
1351 (*call_vzeroupper): Replace constraint "m" with "w".
1352 (*call): Likewise.
1353 (*call_rex64_ms_sysv_vzeroupper): Likewise.
1354 (*call_rex64_ms_sysv): Likewise.
1355 (*call_value_vzeroupper): Likewise.
1356 (*call_value): Likewise.
1357 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
1358 (*call_value_rex64_ms_sysv): Likewise.
1359 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
1360
1361 * config/i386/predicates.md (indirect_branch_operand): New.
1362 (call_insn_operand): Support x32.
1363
1364 2011-07-20 Michael Eager <eager@eagercon.com>
1365
1366 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
1367
1368 2011-07-20 Richard Henderson <rth@redhat.com>
1369
1370 * cfg.c (dump_bb_info): Dump basic_block->flags.
1371 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
1372
1373 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
1374
1375 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1376 of DImode hard registers in index.
1377 (ix86_legitimate_address_p): Allow subregs of base and index to span
1378 more than a word. Assert that subregs of base and index satisfy
1379 register_no_elim_operand predicates. Reject addresses where
1380 base and index have different modes.
1381
1382 2011-07-20 Robert Millan <rmh@gnu.org>
1383
1384 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
1385
1386 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1387
1388 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
1389 removing now-unnecessary assignment.
1390
1391 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1392
1393 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
1394 memory address space to the type's address space.
1395
1396 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
1397
1398 PR target/36467
1399 PR target/49687
1400 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
1401 and expand appropriately if there is a CONST_INT in operand2.
1402 (usmulqihi3): New insn.
1403 (*sumulqihi3): New insn.
1404 (*osmulqihi3): New insn.
1405 (*oumulqihi3): New insn.
1406 (*muluqihi3.uconst): New insn_and_split.
1407 (*muluqihi3.sconst): New insn_and_split.
1408 (*mulsqihi3.sconst): New insn_and_split.
1409 (*mulsqihi3.uconst): New insn_and_split.
1410 (*mulsqihi3.oconst): New insn_and_split.
1411 (*ashifthi3.signx.const): New insn_and_split.
1412 (*ashifthi3.signx.const7): New insn_and_split.
1413 (*ashifthi3.zerox.const): New insn_and_split.
1414 (mulsqihi3): New insn.
1415 (muluqihi3): New insn.
1416 (muloqihi3): New insn.
1417 * config/avr/predicates.md (const_2_to_7_operand): New.
1418 (const_2_to_6_operand): New.
1419 (u8_operand): New.
1420 (s8_operand): New.
1421 (o8_operand): New.
1422 (s9_operand): New.
1423 (register_or_s9_operand): New.
1424
1425 2011-07-20 Kai Tietz <ktietz@redhat.com>
1426
1427 * builtins.c (fold_builtin_expect): See through the cast
1428 from truthvalue_type_node to long.
1429
1430 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1431
1432 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
1433 where we can use them from the standard and altivec instruction
1434 sets, instead of always using the 3 operand VSX forms that require
1435 the destination to overlap one of the inputs.
1436 (vsx_fms*): Ditto.
1437 (vsx_fnma*): Ditto.
1438 (vsx_fnms*): Ditto.
1439
1440 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
1441 for DF types.
1442 (fmsdf4_fpr): Ditto.
1443 (nfmadf4_fpr): Ditto.
1444 (nfmsdf4_fpr): Ditto.
1445
1446 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
1447
1448 * genrecog.c (make_insn_sequence): Correct position numbering
1449 when filtering out match_scratch and match_dup.
1450
1451 2011-07-20 Richard Guenther <rguenther@suse.de>
1452
1453 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
1454 against already removed statements.
1455 (forward_propagate_into_comparison): Remove dead defining stmts.
1456 (forward_propagate_into_gimple_cond): Likewise.
1457 (forward_propagate_into_cond): Simplify.
1458 (ssa_forward_propagate_and_combine): Handle changed cfg from
1459 forward_propagate_into_comparison.
1460 * tree-ssa-phiopt.c (conditional_replacement): Use proper
1461 locations for newly built statements.
1462
1463 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
1464
1465 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
1466
1467 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1468
1469 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
1470 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
1471
1472 2011-07-20 Richard Guenther <rguenther@suse.de>
1473
1474 PR middle-end/18908
1475 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
1476 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
1477 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
1478
1479 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
1480
1481 * config/frv/frv.c (frv_register_move_cost): Define explicitly
1482 costs for subclasses of GR_REGS.
1483
1484 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
1485
1486 PR target/49780
1487 * config/i386/predicates.md (no_seg_addres_operand): No more special.
1488 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1489 of DImode hard registers in base.
1490 (ix86_legitimate_address_p): Allow SImode and DImode base and index
1491 registers.
1492
1493 2011-07-20 Richard Guenther <rguenther@suse.de>
1494
1495 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
1496 (unify_nodes): Deal with that.
1497 (solve_graph): Likewise.
1498
1499 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
1500
1501 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
1502 canonicalize left operand from ZERO_EXTEND to AND.
1503
1504 2011-07-20 Anatoly Sokolov <aesok@post.ru>
1505
1506 * target.def (class_max_nregs): New hook.
1507 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
1508 * doc/tm.texi: Regenerate.
1509 * targhooks.c (default_class_max_nregs): New function.
1510 * targhooks.h (default_class_max_nregs): Declare.
1511 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
1512 x_ira_reg_class_min_nregs arrays to unsigned char.
1513 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
1514 hook instead of CLASS_MAX_NREGS macro.
1515 * reginfo.c (restore_register_info): Ditto.
1516 * ira-conflicts.c (process_regs_for_copy): Use
1517 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1518 Change type rclass and aclass vars to reg_class_t.
1519 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
1520 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
1521 reg_class_t.
1522 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
1523 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
1524
1525 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
1526 * config/i386/i386.c (ix86_class_max_nregs): New function.
1527 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
1528 instead of CLASS_MAX_NREGS macro.
1529 (TARGET_CLASS_MAX_NREGS): Define.
1530 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
1531 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
1532 * config/avr/avr.c (class_max_nregs): Remove function.
1533 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
1534 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
1535 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
1536 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
1537 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
1538 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
1539 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
1540 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
1541 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
1542 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
1543 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
1544 * config/score/score.h (CLASS_MAX_NREGS): Remove.
1545 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
1546 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
1547 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
1548
1549 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
1550
1551 * cif-code.def (OVERWRITABLE): Fix typo and move around.
1552 (TARGET_OPTIMIZATION_MISMATCH): Delete.
1553 (EH_PERSONALITY): Fix typo.
1554 (NON_CALL_EXCEPTIONS): Fix message.
1555 (OPTIMIZATION_MISMATCH): Adjust message.
1556 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
1557
1558 2011-07-19 Ian Lance Taylor <iant@google.com>
1559
1560 * doc/install.texi (Configuration): Document
1561 --enable-build-poststage1-with-cxx.
1562
1563 2011-07-19 Robert Millan <rmh@gnu.org>
1564
1565 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
1566 (GLIBC_DYNAMIC_LINKER): Remove.
1567
1568 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
1569 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1570 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1571 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
1572 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
1573 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
1574
1575 * config/mips/linux.h: Remove everything except for ...
1576 (GLIBC_DYNAMIC_LINKER): ... this macro.
1577
1578 * config/mips/linux64.h: Remove everything except for ...
1579 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
1580 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
1581 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
1582 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
1583 (GNU_USER_LINK_EMULATIONN32): New macros.
1584
1585 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
1586 Use the new headers.
1587
1588 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1589
1590 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
1591 Add offset_known_p and size_known_p fields.
1592 (MEM_OFFSET_KNOWN_P): Update accordingly.
1593 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
1594 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
1595 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
1596 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
1597 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
1598 (init_emit_regs): Likewise.
1599
1600 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1601
1602 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
1603 (MEM_OFFSET): Change from returning an rtx to returning a
1604 HOST_WIDE_INT.
1605 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
1606 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
1607 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1608 (clear_mem_offset): Declare.
1609 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
1610 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
1611 MEM_OFFSET to get a HOST_WIDE_INT offset.
1612 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
1613 (adjust_offset_for_component_ref): Take a bool "known_p"
1614 parameter and a HOST_WIDE_INT "offset" parameter.
1615 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
1616 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
1617 than an rtx. Use clear_mem_offset to clear the offset.
1618 * cfgcleanup.c (merge_memattrs): Likewise.
1619 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
1620 * function.c (assign_parm_find_stack_rtl): Likewise.
1621 (assign_parm_setup_stack): Likewise.
1622 * print-rtl.c (print_rtx): Likewise.
1623 * reload.c (find_reloads_subreg_address): Likewise.
1624 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1625 * var-tracking.c (INT_MEM_OFFSET): Likewise.
1626 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
1627 (get_mem_align_offset): Likewise.
1628 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
1629 (clear_mem_offset): New function.
1630 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
1631 offset rather than an rtx. Assume both the expressio and offset
1632 are available.
1633 (r10k_needs_protection_p_1): Update accordingly, checking the
1634 expression and offset availability here instead.
1635
1636 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1637
1638 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
1639 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
1640 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
1641 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
1642 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1643 (clear_mem_size): Declare.
1644 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
1645 (clear_mem_size): New function.
1646 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
1647 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
1648 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
1649 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
1650 to clear the size.
1651 (nonoverlapping_memrefs_p): Likewise.
1652 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
1653 (expand_builtin_init_trampoline): Likewise.
1654 * calls.c (compute_argument_addresses): Likewise.
1655 * cfgcleanup.c (merge_memattrs): Likewise.
1656 * dce.c (find_call_stack_args): Likewise.
1657 * dse.c (record_store, scan_insn): Likewise.
1658 * dwarf2out.c (dw_sra_loc_expr): Likewise.
1659 * expr.c (emit_block_move_hints): Likewise.
1660 * function.c (assign_parm_find_stack_rtl): Likewise.
1661 * print-rtl.c (print_rtx): Likewise.
1662 * reload.c (find_reloads_subreg_address): Likewise.
1663 * rtlanal.c (may_trap_p_1): Likewise.
1664 * var-tracking.c (track_expr_p): Likewise.
1665 * varasm.c (assemble_trampoline_template): Likewise.
1666 * config/arm/arm.c (arm_print_operand): Likewise.
1667 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
1668 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
1669 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
1670 (expand_constant_setmem_prologue): Likewise.
1671 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
1672 * config/rs6000/rs6000.c (expand_block_move): Likewise.
1673 (adjacent_mem_locations): Likewise.
1674 * config/s390/s390.c (s390_expand_setmem): Likewise.
1675 (s390_expand_insv): Likewise.
1676 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
1677 (*extendqi<mode>2_short_displ): Likewise.
1678 * config/sh/sh.c (expand_block_move): Likewise.
1679 * config/sh/sh.md (extv, extzv): Likewise.
1680
1681 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1682
1683 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
1684 (mem_attrs_htab_eq): ...here.
1685 (find_mem_attrs): Replace with...
1686 (set_mem_attrs): ...this function. Take a mem_attrs structure
1687 rather than individual fields.
1688 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1689 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1690 (set_mem_size, change_address, adjust_address_1, offset_address)
1691 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1692 Update accordingly.
1693
1694 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
1695
1696 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
1697 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
1698 Provide a dummy definition of MEM_ADDR_SPACE for generators.
1699 (target_rtl): Add x_mode_mem_attrs.
1700 (mode_mem_attrs): New macro.
1701 (get_mem_attrs): New function.
1702 * emit-rtl.c (get_mem_attrs): Rename to...
1703 (find_mem_attrs): ...this.
1704 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
1705 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
1706 (set_mem_size, change_address, adjust_address_1, offset_address)
1707 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
1708 Update accordingly.
1709 (init_emit_regs): Initialize mode_mem_attrs.
1710
1711 2011-07-19 Richard Guenther <rguenther@suse.de>
1712
1713 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
1714 TRUTH_*_EXPR handling.
1715 * tree-ssa-operands.c (get_expr_operands): Likewise.
1716 * tree-ssa-pre.c (fully_constant_expression): Likewise.
1717 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
1718 Likewise.
1719 (is_and_or_or): Likewise.
1720 (is_norm_cond_subset_of): Likewise.
1721
1722 2011-07-19 Richard Guenther <rguenther@suse.de>
1723
1724 * tree.h (fold_build_pointer_plus_loc): New helper function.
1725 (fold_build_pointer_plus_hwi_loc): Likewise.
1726 (fold_build_pointer_plus): Define.
1727 (fold_build_pointer_plus_hwi): Likewise.
1728 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
1729 (fold_builtin_memory_op): Likewise.
1730 (fold_builtin_stpcpy): Likewise.
1731 (fold_builtin_memchr): Likewise.
1732 (fold_builtin_strstr): Likewise.
1733 (fold_builtin_strchr): Likewise.
1734 (fold_builtin_strrchr): Likewise.
1735 (fold_builtin_strpbrk): Likewise.
1736 (fold_builtin_strcat): Likewise.
1737 (expand_builtin_memory_chk): Likewise.
1738 (fold_builtin_memory_chk): Likewise.
1739 * c-typeck.c (build_unary_op): Likewise.
1740 * cgraphunit.c (thunk_adjust): Likewise.
1741 * fold-const.c (build_range_check): Likewise.
1742 (fold_binary_loc): Likewise.
1743 * omp-low.c (extract_omp_for_data): Likewise.
1744 (expand_omp_for_generic): Likewise.
1745 (expand_omp_for_static_nochunk): Likewise.
1746 (expand_omp_for_static_chunk): Likewise.
1747 * tree-affine.c (add_elt_to_tree): Likewise.
1748 * tree-data-ref.c (split_constant_offset_1): Likewise.
1749 * tree-loop-distribution.c (generate_memset_zero): Likewise.
1750 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
1751 * tree-predcom.c (ref_at_iteration): Likewise.
1752 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
1753 (add_to_parts): Likewise.
1754 (create_mem_ref): Likewise.
1755 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
1756 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
1757 (number_of_iterations_le): Likewise.
1758 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1759 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
1760 (vect_create_addr_base_for_vector_ref): Likewise.
1761 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
1762 (vect_create_cond_for_alias_checks): Likewise.
1763 * tree-vrp.c (extract_range_from_assert): Likewise.
1764 * config/alpha/alpha.c (alpha_va_start): Likewise.
1765 (alpha_gimplify_va_arg_1): Likewise.
1766 * config/i386/i386.c (ix86_va_start): Likewise.
1767 (ix86_gimplify_va_arg): Likewise.
1768 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1769 * config/mep/mep.c (mep_expand_va_start): Likewise.
1770 (mep_gimplify_va_arg_expr): Likewise.
1771 * config/mips/mips.c (mips_va_start): Likewise.
1772 (mips_gimplify_va_arg_expr): Likewise.
1773 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1774 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
1775 (rs6000_gimplify_va_arg): Likewise.
1776 * config/s390/s390.c (s390_va_start): Likewise.
1777 (s390_gimplify_va_arg): Likewise.
1778 * config/sh/sh.c (sh_va_start): Likewise.
1779 (sh_gimplify_va_arg_expr): Likewise.
1780 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
1781 * config/spu/spu.c (spu_va_start): Likewise.
1782 (spu_gimplify_va_arg_expr): Likewise.
1783 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1784 Likewise.
1785 (xstormy16_gimplify_va_arg_expr): Likewise.
1786 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
1787 (xtensa_gimplify_va_arg_expr): Likewise.
1788
1789 2011-07-19 Richard Guenther <rguenther@suse.de>
1790
1791 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
1792 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
1793 handling.
1794
1795 PR middle-end/18908
1796 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
1797 result of BIT_*_EXPR to bitfield precision.
1798
1799 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
1800
1801 PR tree-optimization/49742
1802 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
1803 as a potential write.
1804
1805 2011-07-19 Richard Guenther <rguenther@suse.de>
1806
1807 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
1808 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
1809 (forward_propagate_comparison): Simplify, remove obsolete code.
1810
1811 2011-07-19 Richard Guenther <rguenther@suse.de>
1812
1813 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
1814 BIT_XOR_EXPR, same as the RTL expander does.
1815 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
1816 (verify_gimple_assign_unary): Likewise.
1817 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
1818 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
1819 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
1820
1821 2011-07-19 Jakub Jelinek <jakub@redhat.com>
1822
1823 PR tree-optimization/49768
1824 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
1825 if offset is smaller than bitoffset, but offset+size is bigger
1826 than bitoffset.
1827
1828 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
1829
1830 PR tree-optimization/49771
1831 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
1832 zero step, set segment length to the size of the data-ref's type.
1833
1834 2011-07-18 Martin Jambor <mjambor@suse.cz>
1835
1836 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
1837 comments.
1838 (ipcp_values_pool): Declare.
1839 (ipcp_sources_pool): Likewise.
1840 (ipcp_lattice): Changed to forward declaration.
1841 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
1842 cannot_devirtualize.
1843 (ipa_node_params): New fields descriptors, lattices, known_vals,
1844 clone_for_all_contexts and node dead, removed fields params and
1845 count_scale.
1846 (ipa_set_param_count): Removed.
1847 (ipa_get_param_count): Made to work with descriptors vector.
1848 (ipa_get_param): Updated.
1849 (ipa_param_cannot_devirtualize_p): Removed.
1850 (ipa_param_types_vec_empty): Likewise.
1851 (ipa_set_param_used): New function.
1852 (ipa_get_param_used): Updated to use descriptors vector.
1853 (ipa_func_list): Removed.
1854 (ipa_init_func_list): Removed declaration.
1855 (ipa_push_func_to_list_1): Likewise.
1856 (ipa_pop_func_from_list): Likewise.
1857 (ipa_push_func_to_list): Removed.
1858 (ipa_lattice_from_jfunc): Remove declaration.
1859 (ipa_get_jf_pass_through_result): Declare.
1860 (ipa_get_jf_ancestor_result): Likewise.
1861 (ipa_value_from_jfunc): Likewise.
1862 (ipa_get_lattice): Update.
1863 (ipa_lat_is_single_const): New function.
1864 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
1865 (ipa_init_func_list): Likewise.
1866 (ipa_pop_func_from_list): Likewise.
1867 (ipa_get_param_decl_index): Fix coding style.
1868 (count_formal_params): Removed.
1869 (count_formal_params_1): Renamed to count_formal_params.
1870 (ipa_populate_param_decls): Update to use descriptors vector.
1871 (ipa_initialize_node_params): Likewise.
1872 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
1873 (ipa_analyze_params_uses): Likewise.
1874 (ipa_free_node_params_substructures): Likewise and free also lattices
1875 and known values.
1876 (duplicate_array): Removed.
1877 (ipa_edge_duplication_hook): Add the new edge to the list of edge
1878 clones.
1879 (ipa_node_duplication_hook): Update to use new lattices.
1880 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
1881 (ipa_free_all_structures_after_iinln): Likewise.
1882 (ipa_write_node_info): Update to use new lattices.
1883 (ipa_read_node_info): Likewise.
1884 (ipa_get_jf_pass_through_result): New function.
1885 (ipa_get_jf_ancestor_result): Likewise.
1886 (ipa_value_from_jfunc): Likewise.
1887 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
1888 * ipa-cp.c: Reimplemented.
1889 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
1890 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
1891 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
1892 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
1893 * doc/invoke.texi (devirt-type-list-size): Removed description.
1894 (ipa-cp-value-list-size): Added description.
1895
1896 2011-07-18 Richard Henderson <rth@redhat.com>
1897
1898 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
1899 before calling create_basic_block.
1900
1901 2011-07-18 Jakub Jelinek <jakub@redhat.com>
1902
1903 PR middle-end/49675
1904 * tree.c (build_common_builtin_nodes): Register
1905 __builtin_return_address, __cyg_profile_func_enter
1906 and __cyg_profile_func_exit.
1907
1908 2011-07-18 Richard Henderson <rth@redhat.com>
1909
1910 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
1911 (add_labels_and_missing_jumps): ... here.
1912 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
1913
1914 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
1915
1916 PR target/47744
1917 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
1918 of DImode hard registers in PLUS address chains.
1919
1920 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1921
1922 PR bootstrap/49769
1923 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
1924 (alpha*-*-freebsd*): Likewise.
1925 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
1926 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
1927 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
1928 crtprec80.o, crtfastmath.o to extra_parts for all targets.
1929 (ia64*-*-elf*): Remove extra_parts.
1930 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
1931 (sparc64-*-linux*): Likewise.
1932 (sparc64-*-freebsd*): Likewise.
1933
1934 Revert:
1935 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
1936 (ia64*-*-linux*): Likewise.
1937 (mips64*-*-linux*): Likewise.
1938 (mips*-*-linux*): Likewise.
1939
1940 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
1941
1942 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
1943
1944 2011-07-18 Richard Guenther <rguenther@suse.de>
1945
1946 * gimplify.c (gimplify_expr): Use input_location, not saved_location
1947 when building new trees.
1948
1949 2011-07-18 Richard Guenther <rguenther@suse.de>
1950
1951 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
1952 expansion result to bitfield precision if required.
1953
1954 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1955
1956 * config.gcc (i[3456x]86-*-netware*): Remove.
1957
1958 * gthr-nks.h: Remove.
1959 * configure.ac (enable_threads): Remove nks.
1960 * configure: Regenerate.
1961
1962 * config/i386/i386.c (ix86_encode_section_info): Remove netware
1963 reference.
1964 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
1965 <netware.h> reference.
1966
1967 * config/i386/netware-libgcc.c,
1968 gcc/config/i386/netware-libgcc.def,
1969 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
1970 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
1971 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
1972 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
1973
1974 * doc/extend.texi (Function Attributes,
1975 callee_pop_aggregate_return): Remove i?86-netware reference.
1976 * doc/install.texi (Configuration, --enable-threads): Remove nks.
1977
1978 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1979
1980 PR target/49746
1981 Revert:
1982 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1983
1984 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
1985 patterns.
1986
1987 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
1988
1989 PR middle-end/49732
1990 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
1991
1992 2011-07-16 Matthias Klose <doko@ubuntu.com>
1993
1994 * doc/install.texi: Document --enable-static-libjava.
1995
1996 2011-07-15 Richard Henderson <rth@redhat.com>
1997
1998 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1999 Replace all three arguments by returning a VEC of edges.
2000 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
2001 pointers and counts.
2002 (fix_edges_for_rarely_executed_code): Merge ...
2003 (rest_of_handle_partition_blocks): ... into...
2004 (partition_hot_cold_basic_blocks): ... here. Return todo items if
2005 any work was performed.
2006 (pass_partition_blocks): Clear todo_flags_finish.
2007
2008 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
2009 Jakub Jelinek <jakub@redhat.com>
2010 Jonathan Wakely <jwakely.gcc@gmail.com>
2011
2012 PR libstdc++/49745
2013 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
2014 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
2015
2016 2011-07-15 Jason Merrill <jason@redhat.com>
2017
2018 PR testsuite/49741
2019 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
2020 rather than --tool_opts.
2021
2022 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
2023
2024 * doc/plugins.texi (Building GCC plugins): gengtype needs its
2025 corresponding gtype.state.
2026
2027 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2028
2029 PR target/49723
2030 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
2031
2032 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
2033
2034 PR target/48220
2035 * doc/md.texi (Standard Names): Document window_save.
2036 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
2037 expand_debug_expr and expand_debug_source_expr. If the target has
2038 a window_save instruction, adjust the ENTRY_VALUE_EXP.
2039 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
2040 SSA_NAME_VAR is a parameter.
2041 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
2042 * var-tracking.c (parm_reg_t): New type and associated vector type.
2043 (windowed_parm_regs): New variable.
2044 (adjust_insn): If the target has a window_save instruction and this
2045 is the instruction, make its effect on parameter registers explicit.
2046 (next_non_note_insn_var_location): New function.
2047 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
2048 (vt_add_function_parameter): If the target has a window_save insn,
2049 adjust the incoming RTL and record that in windowed_parm_regs.
2050 (vt_finalize): Free windowed_parm_regs.
2051
2052 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
2053
2054 * doc/invoke.texi (C6X Options): New section.
2055 * doc/md.texi (TI C6X family): New section.
2056 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
2057 tic6x-*-uclinux.
2058 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
2059 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
2060 Provide C6X definitions.
2061 * config/c6x/c6x.md: New file.
2062 * config/c6x/constraints.md: New file.
2063 * config/c6x/predicates.md: New file.
2064 * config/c6x/c6x-sched.md.in: New file.
2065 * config/c6x/c6x-sched.md: New file.
2066 * config/c6x/gensched.sh: New file.
2067 * config/c6x/c6x-mult.md.in: New file.
2068 * config/c6x/genmult.sh: New file.
2069 * config/c6x/c6x-mult.md: New file.
2070 * config/c6x/sync.md: New file.
2071 * config/c6x/c6x-protos.h: New file.
2072 * config/c6x/sfp-machine.h: New file.
2073 * config/c6x/c6x.c: New file.
2074 * config/c6x/c6x.h: New file.
2075 * config/c6x/crti.s: New file.
2076 * config/c6x/crtn.s: New file.
2077 * config/c6x/lib1funcs.asm: New file.
2078 * config/c6x/c6x-modes.def: New file.
2079 * config/c6x/genopt.sh: New file.
2080 * config/c6x/c6x.opt: New file.
2081 * config/c6x/c6x-tables.opt: New file.
2082 * config/c6x/c6x-opts.h: New file.
2083 * config/c6x/c6x-isas.def: New file.
2084 * config/c6x/elf.h: New file.
2085 * config/c6x/elf-common.h: New file.
2086 * config/c6x/uclinux-elf.h: New file.
2087 * config/c6x/t-c6x: New file.
2088 * config/c6x/t-c6x-elf: New file.
2089 * config/c6x/t-c6x-uclinux: New file.
2090 * config/c6x/t-c6x-softfp: New file.
2091 * config/c6x/gtd.c: New file.
2092 * config/c6x/gtf.c: New file.
2093 * config/c6x/ltd.c: New file.
2094 * config/c6x/ltf.c: New file.
2095 * config/c6x/ged.c: New file.
2096 * config/c6x/gef.c: New file.
2097 * config/c6x/led.c: New file.
2098 * config/c6x/lef.c: New file.
2099 * config/c6x/eqd.c: New file.
2100 * config/c6x/eqf.c: New file.
2101 * config/c6x/libgcc-c6xeabi.ver: New file.
2102
2103 Revert
2104 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2105 PR rtl-optimization/11320
2106 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
2107 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
2108 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
2109 current_sched_info->compute_jump_reg_dependencies. Record which
2110 registers are used and which registers are set by the jump.
2111 Clear deps->reg_conditional_sets after a barrier.
2112 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
2113 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
2114 (init_deps): Initialize reg_conditional_sets.
2115 (free_deps): Clear reg_conditional_sets.
2116 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
2117 Mark registers live on entry of the fallthrough block and conditionally
2118 set as set by the jump. Mark registers live on entry of non-fallthrough
2119 blocks as used by the jump.
2120 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
2121 Mark new parameters as unused.
2122
2123 2011-07-14 Andrew Pinski <pinskia@gmail.com>
2124
2125 PR tree-opt/49309
2126 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
2127 Use fold_build2_loc instead of build2.
2128 Use the correct type for the new tree.
2129
2130 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2131
2132 PR rtl-optimization/11320
2133 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
2134 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
2135
2136 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
2137
2138 PR target/49487
2139 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
2140 of REG.
2141 (*rotw<mode>): Use const_int_operand for operand2.
2142 Use match_scatch for operand3.
2143 (*rotb<mode>): Ditto
2144 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
2145
2146 2011-07-14 Richard Guenther <rguenther@suse.de>
2147
2148 PR tree-optimization/49651
2149 * tree-ssa-structalias.c (get_constraint_for_1): Properly
2150 handle dereferences with subvariables.
2151
2152 2011-07-14 Richard Guenther <rguenther@suse.de>
2153
2154 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
2155 (fold_stmt_1): Do it here directly on gimple and as a first thing.
2156
2157 2011-07-14 Richard Guenther <rguenther@suse.de>
2158
2159 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
2160 not bool_var when folding bool_var != 1 or bool_var == 0.
2161
2162 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2163
2164 * haifa-sched.c (schedule_insns): Remove outdated comment.
2165 (schedule_block): When computing a known value for TODO_SPEC,
2166 just set it rather than using logical operations.
2167 (try_ready): Likewise. Use a local variable rather than a
2168 pointer to TODO_SPEC. Reorder an if statement to move the
2169 easy case to the then block.
2170 * sched-deps.c (dep_spec_p): New static function.
2171 (update_dep): Use it to decide whether to call
2172 change_spec_dep_to_hard.
2173 (get_back_and_forw_lists): Use it.
2174 (sd_resolve_dep): Likewise.
2175 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
2176 (haifa_note_mem_dep): Likewise.
2177 (check_dep): Likewise.
2178 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
2179 (sched_free_deps): Free in two passes.
2180
2181 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
2182
2183 PR middle-end/49736
2184 * expr.c (all_zeros_p): Undo bogus part of last change.
2185
2186 2011-07-14 Matthias Klose <doko@ubuntu.com>
2187
2188 * doc/extend.texi (optimize attribute): Fix typo.
2189
2190 2011-07-14 Richard Guenther <rguenther@suse.de>
2191
2192 * gimplify.c (gimplify_expr): Only do required conversions.
2193
2194 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
2195
2196 PR target/43746
2197 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
2198 i.e. use default_elf_select_section.
2199 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
2200 (READONLY_DATA_SECTION_ASM_OP): Remove.
2201 (TARGET_ASM_NAMED_SECTION): Move from here...
2202 * config/avr/avr.c: ...to here.
2203 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
2204 (avr_asm_named_section): Make static.
2205
2206 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2207
2208 PR bootstrap/49739
2209 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
2210 and crtfastmath.o for Linux/x86.
2211
2212 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
2213
2214 * haifa-sched.c: Include "hashtab.h"
2215 (sched_no_dce): New global variable.
2216 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
2217 SHADOW_P): New macros.
2218 (last_clock_var, cycle_issued_insns): Move declarations.
2219 (must_backtrack): New static variable.
2220 (struct delay_pair): New structure.
2221 (delay_htab, delay_htab_i2): New static variables.
2222 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
2223 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
2224 functions.
2225 (dep_cost_1): If delay pairs exist, try to look up the insns and
2226 use the correct pair delay if we find them.
2227 (rank-for_schedule): Tweak priority for insns that must be scheduled
2228 soon to avoid backtracking.
2229 (queue_insn): Detect conditions which force backtracking.
2230 (ready_add): Likewise.
2231 (struct sched_block_state): Add member shadows_only_p.
2232 (struct haifa_save_data): New structure.
2233 (backtrack_queue): New static variable.
2234 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
2235 unschedule_insns_until, restore_last_backtrack_point,
2236 free_topmost_backtrack_point, free_backtrack_queue,
2237 estimate_insn_tick, estimate_shadow_tick): New functions.
2238 (prune_ready_list): New arg shadows_only_p. All callers changed.
2239 If true, remove everything that isn't SHADOW_P. Look up delay
2240 pairs and estimate ticks to avoid scheduling the first insn too early.
2241 (verify_shadows): New function.
2242 (schedule_block): Add machinery to enable backtracking.
2243 (sched_init): Take sched_no_dce into account when setting
2244 DF_LR_RUN_DCE.
2245 (free_delay_pairs): New function.
2246 (init_h_i_d): Initialize INSN_EXACT_TICK.
2247 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
2248 * sched-deps.c (sd_unresolve_dep): New function.
2249 * sched-int. (struct haifa_sched_info): New fields save_state
2250 and restore_state.
2251 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
2252 feeds_backtrack_insn and shadow_p.
2253 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
2254 (sched_no_dce): Declare variable.
2255 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
2256 sd_unresolve_dep): Declare functions.
2257 * modulo-sched.c (sms_sched_info): Clear the two new fields.
2258 * sched-rgn.c (rgn_const_sched_info): Likewise.
2259 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2260 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
2261 (ebb_sched_info): Add them for the two new fields.
2262 (add_deps_for_risky_insns): Call add_delay_dependencies.
2263
2264 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
2265
2266 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
2267 Rename -mr11.
2268 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
2269 (rs6000_call_indirect_aix): Ditto.
2270 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
2271 (call_indirect_aix<ptrsize>_internal): Ditto.
2272 (call_indirect_aix<ptrsize>_nor11): Ditto.
2273 (call_indirect_aix<ptrsize>_internal2): Ditto.
2274 (call_value_indirect_aix<ptrsize>): Ditto.
2275 (call_value_indirect_aix<ptrsize>_internal): Ditto.
2276 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
2277 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
2278 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
2279
2280 2011-07-13 Jason Merrill <jason@redhat.com>
2281
2282 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
2283
2284 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2285
2286 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
2287 * config/spu/spu.md ("clrsb<mode>2"): New expander.
2288
2289 2011-07-13 Thomas Schwinge <thomas@schwinge.name>
2290
2291 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
2292 * configure: Regenerate.
2293
2294 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2295
2296 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
2297 (asm_file_start): Remove.
2298 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
2299 free_bb_for_insn around code that modifies insns before
2300 restarting df analysis.
2301
2302 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2303
2304 PR target/49541
2305 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
2306 (LINK_SPEC): ... here.
2307
2308 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2309
2310 * haifa-sched.c (struct sched_block_state): New.
2311 (schedule_block): Move some local variables into such a structure.
2312
2313 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2314
2315 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
2316 * config/i386/t-crtpc: Remove.
2317 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2318 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
2319 tmake_file.
2320 (x86_64-*-darwin*): Likewise.
2321 (i[34567]86-*-linux*): Likewise.
2322 (x86_64-*-linux*): Likewise.
2323
2324 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
2325 Handle -mpc32, -mpc64, -mpc80.
2326
2327 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2328
2329 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
2330 * config/alpha/t-crtfm: Remove.
2331 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
2332 * config/i386/t-crtfm: Remove.
2333 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
2334 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
2335 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
2336 * config/sparc/t-crtfm: Remove.
2337
2338 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
2339 (alpha*-*-freebsd*): Likewise.
2340 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
2341 (x86_64-*-darwin*): Likewise.
2342 (i[34567]86-*-linux*): Likewise.
2343 (x86_64-*-linux*): Likewise.
2344 (x86_64-*-mingw*): Likewise.
2345 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
2346 (ia64*-*-freebsd*): Likewise.
2347 (ia64*-*-linux*): Likewise.
2348 (mips64*-*-linux*): Likewise.
2349 (mips*-*-linux*): Likewise.
2350 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
2351 (sparc64-*-linux*): Likewise.
2352 (sparc64-*-freebsd*): Likewise.
2353
2354 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2355
2356 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
2357 * config/darwin-crt3.c: Move to ../libgcc/config.
2358 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
2359 ($(T)crt3$(objext)): Remove.
2360 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
2361 ($(T)crt2$(objext)): Remove.
2362 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
2363 (powerpc64-*-darwin*): Likewise.
2364
2365 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2366
2367 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
2368
2369 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
2370 (addsi_1_zext): This.
2371
2372 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2373
2374 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
2375 * doc/tm.texi: Regenerate.
2376 * target.def (mergeable_rodata_prefix): New defhookpod.
2377 * varasm.c (mergeable_string_section, mergeable_constant_section):
2378 Use it. Allocate name with alloca.
2379
2380 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
2381
2382 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
2383
2384 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2385
2386 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
2387 overlap check.
2388
2389 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
2390
2391 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
2392 (count_type_elements): Delete.
2393 (complete_ctor_at_level_p): Declare.
2394 * expr.c (flexible_array_member_p): New function, split out from...
2395 (count_type_elements): ...here. Make static. Replace allow_flexarr
2396 parameter with for_ctor_p. When for_ctor_p is true, return the
2397 number of elements that should appear in the top-level constructor,
2398 otherwise return an estimate of the number of scalars.
2399 (categorize_ctor_elements): Replace p_must_clear with p_complete.
2400 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
2401 (complete_ctor_at_level_p): New function, borrowing union logic
2402 from old categorize_ctor_elements_1.
2403 (mostly_zeros_p): Return true if the constructor is not complete.
2404 (all_zeros_p): Update call to categorize_ctor_elements.
2405 * gimplify.c (gimplify_init_constructor): Update call to
2406 categorize_ctor_elements. Don't call count_type_elements.
2407 Unconditionally prevent clearing for variable-sized types,
2408 otherwise rely on categorize_ctor_elements to detect
2409 incomplete initializers.
2410
2411 2011-07-13 Richard Guenther <rguenther@suse.de>
2412
2413 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
2414 the final type is integral.
2415
2416 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
2417
2418 * sched-int.h (struct _dep): Add member cost.
2419 (DEP_COST, UNKNOWN_DEP_COST): New macros.
2420 * sched-deps.c (init_dep_1): Initialize DEP_COST.
2421 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
2422 (sched_change_pattern): Reset it for dependent insns.
2423
2424 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2425
2426 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
2427 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
2428 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
2429 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
2430 (CRT0_S, MCRT0_S): Remove.
2431 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
2432 Remove.
2433 (s-crt0): Remove.
2434 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
2435
2436 2011-07-12 Eric Botcazou <ebotcazou@adacore.com>
2437
2438 * cse.c (insert_with_costs): Put semi-colon after empty loop body
2439 on the next line.
2440 * emit-rtl.c (push_to_sequence): Likewise.
2441 * haifa-sched.c (max_issue): Likewise.
2442 * matrix-reorg.c (add_allocation_site): Likewise.
2443 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2444 * reload.c (alternative_allows_const_pool_ref): Likewise.
2445 * sched-rgn.c (rgn_add_block): Likewise.
2446 (rgn_fix_recovery_cfg): Likewise.
2447 * tree.c (attribute_list_contained): Likewise.
2448
2449 2011-07-12 Uros Bizjak <ubizjak@gmail.com>
2450
2451 * config/i386/i386.c: Tidy processor feature bitmasks.
2452 (m_P4_NOCONA): New.
2453
2454 2011-07-12 Andrew Pinski <pinskia@gmail.com>
2455
2456 PR rtl-opt/49474
2457 * cprop.c (find_implicit_sets): Correct the condition.
2458
2459 2011-07-12 Richard Henderson <rth@redhat.com>
2460
2461 PR target/49713
2462 * dwarf2out.h (dwarf_frame_regnum): Remove.
2463 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
2464 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
2465 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
2466 (execute_dwarf2_frame): Initialize them.
2467 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
2468 users of the macros with the variables.
2469 (expand_builtin_dwarf_sp_column): Revert last change.
2470 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
2471 result of DWARF_FRAME_REGNUM into a local variable.
2472
2473 2011-07-12 Richard Henderson <rth@redhat.com>
2474
2475 PR target/49714
2476 * config/i386/i386.c (x86_output_mi_thunk): Use
2477 machopic_indirect_call_target instead of machopic_indirection_name
2478 directly.
2479
2480 2011-07-12 Laurent GUERBY <laurent@guerby.net>
2481 Eric Botcazou <ebotcazou@adacore.com>
2482
2483 * prefix.h: Wrap up in extern "C" block.
2484
2485 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
2486
2487 AMD bdver2 Enablement
2488 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
2489 (case ${target}): Add bdver2.
2490 * config/i386/driver-i386.c (host_detect_local_cpu): Let
2491 -march=native recognize bdver2 processors.
2492 * config/i386/i386-c.c (ix86_target_macros_internal): Add
2493 bdver2 def_and_undef
2494 * config/i386/i386.c (struct processor_costs bdver2_cost): New
2495 bdver2 cost table.
2496 (m_BDVER2): New definition.
2497 (m_AMD_MULTIPLE): Includes m_BDVER2.
2498 (initial_ix86_tune_features): Add bdver2 tuning.
2499 (processor_target_table): Add bdver2 entry.
2500 (static const char *const cpu_names): Add bdver2 entry.
2501 (ix86_option_override_internal): Add bdver2 instruction sets.
2502 (ix86_issue_rate): Add bdver2.
2503 (ix86_adjust_cost): Add bdver2.
2504 (has_dispatch): Add bdver2.
2505 * config/i386/i386.h (TARGET_BDVER2): New definition.
2506 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
2507 (enum processor_type): Add PROCESSOR_BDVER2.
2508 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
2509 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
2510 description.
2511
2512 2011-07-12 Richard Henderson <rth@redhat.com>
2513
2514 PR target/49714
2515 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
2516 destination address in memory on some paths.
2517
2518 2011-07-12 Bernd Schmidt <bernds@codesourcery.com>
2519
2520 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
2521 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
2522 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
2523 * function.c (locate_and_pad_parm): Take it into account.
2524 * target.def (function_arg_round_boundary): New hook.
2525 * targhooks.c (default_function_arg_round_boundary): New function.
2526 * targhooks.h (default_function_arg_round_boundary): Declare.
2527 * doc/tm.texi: Regenerate.
2528
2529 2011-07-12 Richard Guenther <rguenther@suse.de>
2530
2531 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
2532 Do not perform no-op changes.
2533
2534 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
2535
2536 * config/arm/predicates.md (neon_struct_operand): Make a normal
2537 predicate.
2538 (neon_struct_or_register_operand): New predicate.
2539 * config/arm/neon.md (movmisalign<mode>): Replace predicates
2540 with neon_struct_or_register_operand.
2541 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
2542 neon_struct_operand instead of memory_operand.
2543
2544 2011-07-12 Martin Jambor <mjambor@suse.cz>
2545
2546 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
2547 * cgraph.c (cgraph_get_node_or_alias): Removed.
2548 (change_decl_assembler_name): Changed all calls to
2549 cgraph_get_node_or_alias to a call to cgraph_get_node.
2550 (cgraph_make_decl_local): Likewise.
2551 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
2552 * varasm.c (default_binds_local_p_1): Likewise.
2553 (decl_binds_to_current_def_p): Likewise.
2554
2555 2011-07-12 Jakub Jelinek <jakub@redhat.com>
2556
2557 PR tree-optimization/49712
2558 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
2559
2560 2011-07-11 Bernd Schmidt <bernds@codesourcery.com>
2561
2562 * genautomata.c (add_arc): Return void. All callers changed.
2563 (make_automaton): Remove dead code.
2564
2565 2011-07-11 Richard Henderson <rth@redhat.com>
2566
2567 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
2568 (DW_FRAME_POINTER_REGNUM): New.
2569 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
2570 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
2571 (dwf_regno): New.
2572 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
2573 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
2574 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
2575 Use it.
2576 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
2577 * dwarf2out.h (dwarf_frame_regnum): New.
2578 (struct cfa_loc): Document the domain of the reg member.
2579
2580 2011-07-11 Uros Bizjak <ubizjak@gmail.com>
2581
2582 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
2583 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
2584
2585 2011-07-11 Jakub Jelinek <jakub@redhat.com>
2586
2587 PR debug/49676
2588 * dwarf2out.c (int_shift_loc_descriptor): New function.
2589 (int_loc_descriptor): If shorter, emit i as
2590 (i >> shift), shift, DW_OP_shl for suitable shift value.
2591 Similarly, try to optimize large negative values using
2592 DW_OP_neg of a positive value if shorter.
2593 (size_of_int_shift_loc_descriptor): New function.
2594 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
2595 changes.
2596 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
2597 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
2598 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
2599 is shorter.
2600 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
2601 addend as added DW_OP_plus if it is shorter.
2602
2603 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2604
2605 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
2606 (DTORS_SECTION_ASM_OP): Define.
2607
2608 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2609
2610 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
2611 * config/t-dfprules: Move to ../libgcc/config.
2612 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
2613 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
2614 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
2615 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
2616 Likewise.
2617 (i[34567]86-*-cygwin*): Likewise.
2618 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2619 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
2620 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
2621 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
2622 D64PBIT_FUNCS, D128PBIT_FUNCS.
2623
2624 2011-07-11 Richard Guenther <rguenther@suse.de>
2625
2626 * tree-vrp.c (simplify_conversion_using_ranges): Manually
2627 translate the source value-range through the conversion chain.
2628
2629 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
2630
2631 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
2632
2633 2011-07-11 Arthur Loiret <aloiret@debian.org>
2634
2635 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
2636 a bi-arch compiler defaulting to 31-bit. In this case:
2637 (tmake_file): Add s390/t-linux64.
2638 * doc/install.texi: Add s390-linux to the list of targets supporting
2639 --enable-targets=all.
2640
2641 2011-07-11 Arthur Loiret <aloiret@debian.org>
2642 Matthias Klose <doko@debian.org>
2643
2644 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
2645 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
2646 (tm_file): Add mips/linux64.h.
2647 (tmake_file): Add mips/t-linux64.
2648 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2649 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
2650 instead of hardcoded mabi=n32.
2651 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2652 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2653 convention.
2654
2655 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2656
2657 * passes.c (init_optimization_passes): Add invariant motion pass
2658 after induction variable optimization.
2659
2660 2011-07-11 Georg-Johann Lay <avr@gjlay.de>
2661
2662 PR target/39633
2663 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
2664 offsets 1..5 set cc0 in a usable way.
2665
2666 2011-07-11 Romain Geissler <romain.geissler@gmail.com>
2667
2668 * tree.h (call_expr_arg): Remove.
2669 (call_expr_argp): Likewise.
2670
2671 2011-07-11 Eric Botcazou <ebotcazou@adacore.com>
2672
2673 * config/sparc/sparc.md (save_register_window_1): Rename to...
2674 (window_save): ...this.
2675 * config/sparc/sparc.c (emit_save_register_window): Rename to...
2676 (emit_window_save): ...this.
2677 (sparc_expand_prologue): Adjust to above renaming.
2678
2679 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2680
2681 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
2682 of movabs for x32.
2683
2684 2011-07-10 Richard Henderson <rth@redhat.com>
2685
2686 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
2687 run final, instead of emitting text directly.
2688
2689 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
2690
2691 * config/i386/i386.c (ix86_option_override_internal): Turn on
2692 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
2693 small PIC models for TARGET_X32.
2694
2695 2011-07-10 Hans-Peter Nilsson <hp@axis.com>
2696
2697 PR target/49684
2698 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
2699 $(LIBGCC2_CFLAGS).
2700
2701 PR bootstrap/49680
2702 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
2703 stray notes and debug insns by using prev_nonnote_nondebug_insn
2704 instead of PREV_INSN.
2705
2706 2011-07-09 Richard Henderson <rth@redhat.com>
2707
2708 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
2709 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
2710 * dwarf2out.c: ... here.
2711 (output_all_cfis): Remove.
2712 (dwarf2out_switch_text_section): Use output_cfis directly.
2713 (size_of_locs): Export.
2714 (output_loc_sequence, output_loc_sequence_raw): Export.
2715 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
2716 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
2717 output_cfa_loc_raw): Move to ...
2718 * dwarfcfi.c: ... here.
2719 * dwarf2out.h: Update decls.
2720
2721 2011-07-09 Richard Henderson <rth@redhat.com>
2722
2723 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
2724 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
2725 * dwarf2cfi.c: ... here.
2726 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
2727 (DWARF_ROUND, DWARF_CIE_ID): Remove.
2728 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
2729 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
2730 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
2731
2732 2011-07-09 Richard Henderson <rth@redhat.com>
2733
2734 * dwarf2cfi.c (cie_return_save): New.
2735 (queue_reg_save): Use compare_reg_or_pc.
2736 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
2737 (dwarf2out_frame_debug_expr): Likewise.
2738 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
2739 (initial_return_save): Likewise.
2740 (execute_dwarf2_frame): Save and restore initial return save from
2741 the cie to the fde.
2742 * config/mips/mips.c (mips_frame_set): Remove special case for
2743 DWARF_FRAME_RETURN_COLUMN.
2744
2745 2011-07-09 Richard Henderson <rth@redhat.com>
2746
2747 * dwarf2cfi.c (lookup_cfa): Remove.
2748 (execute_dwarf2_frame): Assert queues are empty on entry.
2749 Setup initial cfa directly, not via lookup_cfa.
2750 Don't clear args_size state here.
2751
2752 2011-07-09 Richard Henderson <rth@redhat.com>
2753
2754 * dwarf2cfi.c (add_cfi_vec): New.
2755 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
2756 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
2757 (execute_dwarf2_frame): Set add_cfi_vec.
2758
2759 2011-07-09 Richard Henderson <rth@redhat.com>
2760
2761 * defaults.h (ASM_COMMENT_START): Move here...
2762 * dwarf2asm.c: ... from here.
2763 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
2764 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
2765 * varasm.c: Likewise.
2766
2767 2011-07-09 Richard Henderson <rth@redhat.com>
2768
2769 PR debug/49686
2770 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
2771 (create_cfi_notes): ... do it here instead.
2772
2773 2011-07-09 Jakub Jelinek <jakub@redhat.com>
2774
2775 PR debug/49676
2776 * dwarf2out.c (size_of_int_loc_descriptor): New function.
2777 (address_of_int_loc_descriptor): Use it.
2778 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
2779
2780 2011-07-09 Richard Henderson <rth@redhat.com>
2781
2782 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
2783 (prologue, epilogue): New.
2784 (return, *rts): New.
2785 (blockage, setd, seti): New.
2786 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
2787 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
2788 (pdp11_saved_regno): New.
2789 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
2790 generate rtl instead of text.
2791 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
2792 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
2793 * config/pdp11/pdp11-protos.h: Update.
2794
2795 2011-07-09 Richard Henderson <rth@redhat.com>
2796
2797 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
2798 try to insert an rtl prologue here.
2799 (rs6000_output_function_epilogue): Similarly.
2800 * config/rs6000/rs6000.md (prologue): Emit a barrier to
2801 satisfy !TARGET_SCHED_PROLOG.
2802 (epilogue, sibcall_epilogue): Likewise.
2803
2804 2011-07-09 Eric Botcazou <ebotcazou@adacore.com>
2805
2806 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
2807 (FP_REG_P): Delete.
2808 (IN_OR_GLOBAL_P): Likewise.
2809
2810 2011-07-08 Jason Merrill <jason@redhat.com>
2811
2812 PR c++/45437
2813 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
2814 compound assignment.
2815
2816 * cgraph.c (cgraph_add_to_same_comdat_group): New.
2817 * cgraph.h: Declare it.
2818 * ipa.c (function_and_variable_visibility): Make sure thunks
2819 have the right visibility.
2820
2821 2011-07-08 Richard Henderson <rth@redhat.com>
2822
2823 PR bootstrap/49680
2824 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
2825 any tablejump vector.
2826
2827 PR bootstrap/49680
2828 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
2829 end of the prologue.
2830
2831 2011-07-08 Jakub Jelinek <jakub@redhat.com>
2832
2833 PR target/49621
2834 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2835 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
2836 * config/rs6000/vector.md (vector_select_<mode>,
2837 vector_select_<mode>_uns): Change second operand of NE to
2838 CONST0_RTX (<MODE>mode) instead of const0_rtx.
2839 * config/rs6000/altivec.md (*altivec_vsel<mode>,
2840 *altivec_vsel<mode>_uns): Expect second operand of NE to be
2841 zero_constant of the corresponding vector mode.
2842 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
2843 Likewise.
2844
2845 2011-07-08 Sebastian Pop <sebastian.pop@amd.com>
2846
2847 * graphite-dependences.c (build_alias_set_powerset): Remove
2848 continue from loop, add one more assert.
2849
2850 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
2851
2852 PR target/46779
2853 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2854 In particular, allow 8-bit values in r28 and r29.
2855 (avr_hard_regno_scratch_ok): Disallow any register that might be
2856 part of the frame pointer.
2857 (avr_hard_regno_rename_ok): Same.
2858 (avr_legitimate_address_p): Don't allow SUBREGs.
2859
2860 2011-07-08 Julian Brown <julian@codesourcery.com>
2861
2862 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
2863 big-endian mode.
2864 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
2865 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
2866 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
2867 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
2868 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
2869 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
2870 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
2871 registers in big-endian mode.
2872
2873 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2874
2875 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
2876 in terms of another.
2877 (write_attr_value): Write a cast if necessary.
2878
2879 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
2880 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
2881 (REG_WORDS_BIG_ENDIAN): Document.
2882 * doc/tm.texi: Regenerate.
2883 * reload.c (operands_match_p): Take it into account.
2884 (reload_adjust_reg_for_mode): Likewise.
2885 * rtlanal.c (subreg_get_info): Likewise.
2886
2887 2011-07-08 Richard Guenther <rguenther@suse.de>
2888
2889 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
2890 folding.
2891
2892 2011-07-08 Kai Tietz <ktietz@redhat.com>
2893
2894 * fold-const.c (fold_truth_andor): Factored out truth_andor
2895 label from fold_binary as function.
2896 (fold_binary_loc): Replace truth_andor lable
2897 by function fold_truth_andor.
2898
2899 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
2900
2901 PR middle-end/49519
2902 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
2903 check if address is stored in register. If so - give up.
2904 (check_sibcall_argument_overlap_1): Do not perform check of
2905 overlapping when it is call to address.
2906
2907 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
2908
2909 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
2910 of magic '31'.
2911
2912 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
2913
2914 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
2915 GET_MODE_BITSIZE where appropriate.
2916 (widen_leading, expand_parity, expand_ctz, expand_ffs,
2917 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
2918 expand_float, expand_fix): Likewise.
2919 * expr.c (convert_move, convert_modes, expand_expr_real_2,
2920 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
2921 * stor-layout.c (get_mode_bounds): Likewise.
2922 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
2923 Likewise.
2924 * convert.c (convert_to_integer): Likewise.
2925 * expmed.c (expand_shift_1): Likewise.
2926
2927 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
2928 a bitsize.
2929
2930 * optabs.c (expand_binop): Tighten conditions for doubleword
2931 expansions.
2932 (widen_bswap): Assert that mode bitsize and precision are the same.
2933 * stor-layout.c (get_best_mode): Skip modes that have lower
2934 precision than bitsize.
2935 * recog.c (simplify_while_replacing): Assert that bitsize and
2936 precision are the same.
2937
2938 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2939
2940 * Makefile.in (LIBGCOV): Remove.
2941 (libgcc.mvars): Remove LIBGCOV.
2942 * libgov.c: Move to ../libgcc.
2943
2944 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2945
2946 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
2947
2948 2011-07-08 Martin Jambor <mjambor@suse.cz>
2949
2950 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
2951 is too big for total scalarization.
2952
2953 2011-07-07 Richard Henderson <rth@redhat.com>
2954
2955 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
2956 (DBX_DEBUGGING_INFO): Undef.
2957
2958 2011-07-07 Richard Henderson <rth@redhat.com>
2959
2960 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
2961 Handle some opcodes specially for debugging.
2962 * print-rtl.c: Include dwarf2out.h
2963 (print_rtx): Handle NOTE_INSN_CFI.
2964 * Makefile.in (print-rtl.o): Update.
2965
2966 2011-07-07 Richard Henderson <rth@redhat.com>
2967
2968 * tree-pass.h (pass_dwarf2_frame): Declare.
2969 * passes.c (init_optimization_passes): Add it.
2970 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
2971 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
2972 make static, do not call add_cfis_to_fde.
2973 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
2974 dwarf2out_frame_init): Merge into...
2975 (execute_dwarf2_frame): ... here. New function.
2976 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
2977 saved_do_cfi_asm to a tri-state variable.
2978 (gate_dwarf2_frame, pass_dwarf2_frame): New.
2979 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
2980 if it has yet to be done. Don't call dwarf2cfi_function_init.
2981 * dwarf2out.h, debug.h: Update decls.
2982 * final.c (final_start_function): Don't call
2983 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
2984 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
2985 * toplev.c (lang_dependent_init): Likewise.
2986
2987 2011-07-07 Richard Henderson <rth@redhat.com>
2988
2989 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
2990 FDE_TABLE_INCREMENT): Replace with...
2991 (fde_vec): ... this, a new vector.
2992 (current_fde): Remove. Replace all users with cfun->fde.
2993 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
2994 (size_of_aranges, dwarf2out_finish): Likewise.
2995 (dwarf2out_alloc_current_fde): Break out from ...
2996 (dwarf2out_begin_prologue): ... here.
2997 (dwarf2out_frame_init): Remove.
2998 * dwarf2cfi.c: Update all users of current_fde.
2999 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
3000 * dwarf2out.h: Update decls.
3001 (dw_fde_node): Add fde_index member.
3002 * function.h (struct function): Add fde member.
3003
3004 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3005 Richard Henderson <rth@redhat.com>
3006
3007 * dwarf2cfi.c (add_cfi): Remove.
3008 (dwarf2out_cfi_label): Remove force argument. Only generate the
3009 label name.
3010 (add_fde_cfi): Simplify the different code paths.
3011 (add_cie_cfi): New.
3012 (old_cfa, old_cfa_remember): New.
3013 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
3014 (last_reg_save_label): Remove.
3015 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
3016 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3017 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3018 dwarf2out_frame_debug_cfa_expression,
3019 dwarf2out_frame_debug_cfa_restore,
3020 dwarf2out_frame_debug_cfa_window_save,
3021 dwarf2out_frame_debug_expr): Remove label parameter.
3022 (cfi_label_required_p, add_cfis_to_fde): New.
3023 (dwarf2out_frame_debug_after_prologue): New.
3024 (dwarf2cfi_frame_init): Initialize old_cfa.
3025 (dwarf2out_frame_debug_restore_state): Likewise.
3026 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
3027 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
3028 * final.c (final_start_function): Call
3029 dwarf2out_frame_debug_after_prologue.
3030
3031 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3032 Richard Henderson <rth@redhat.com>
3033
3034 * dwarf2cfi.c (cfi_insn): New.
3035 (dwarf2out_cfi_label): Don't emit cfi label here.
3036 (add_fde_cfi): Create a NOTE_INSN_CFI.
3037 (dwarf2out_frame_debug): Setup cfi_insn.
3038 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
3039 (dwarf2out_cfi_begin_epilogue): Make static.
3040 (dwarf2out_frame_debug_restore_state): Make static.
3041 * dwarf2out.c (output_cfi_directive): Make static.
3042 (dwarf2out_emit_cfi): New.
3043 * dwarf2out.h: Update.
3044 * final.c (final): Remove CFI notes.
3045 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
3046 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
3047 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
3048 * insn-notes.def (NOTE_INSN_CFI): New.
3049 (NOTE_INSN_CFI_LABEL): New.
3050 * rtl.h (union rtunion_def): Add rt_cfi member.
3051 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
3052
3053 2011-07-07 Richard Henderson <rth@redhat.com>
3054
3055 * dwarf2cfi.c: New file.
3056 * Makefile.in (OBJS): Add it.
3057 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
3058 * gengtype.c (open_base_files): Include dwarf2out.h.
3059 * coretypes.h (enum var_init_status): Move from ...
3060 * rtl.h: ... here.
3061 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
3062 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
3063 expand_builtin_dwarf_sp_column, init_return_column_size,
3064 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
3065 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
3066 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
3067 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
3068 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
3069 compute_barrier_args_size, dwarf2out_args_size,
3070 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
3071 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
3072 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
3073 queue_reg_save, dwarf2out_flush_queued_reg_saves,
3074 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
3075 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
3076 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
3077 dwarf2out_frame_debug_cfa_expression,
3078 dwarf2out_frame_debug_cfa_restore,
3079 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
3080 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
3081 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
3082 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
3083 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
3084 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
3085 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
3086 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
3087 dw_loc_descr_node): Move to dwarf2out.h.
3088 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
3089 mem_loc_descriptor): Export.
3090 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
3091 (dwarf2out_frame_init): Extract CIE generation code to
3092 dwarf2cfi_frame_init.
3093
3094 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
3095
3096 PR target/49660
3097 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
3098 MASK_V8PLUS, remove commented out flag and reorder.
3099
3100 2011-07-07 Jakub Jelinek <jakub@redhat.com>
3101
3102 PR c/49644
3103 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
3104 one non-complex and one complex argument, call c_save_expr on both
3105 operands.
3106
3107 2011-07-07 Martin Jambor <mjambor@suse.cz>
3108
3109 PR middle-end/49495
3110 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
3111 (verify_cgraph_node): Some functinality moved to
3112 verify_edge_corresponds_to_fndecl, call it.
3113
3114 2011-07-07 Joseph Myers <joseph@codesourcery.com>
3115
3116 * config.gcc (*local*): Remove.
3117 * doc/install-old.texi: Don't mention local configurations.
3118
3119 2011-07-07 Jakub Jelinek <jakub@redhat.com>
3120
3121 PR debug/49522
3122 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
3123 referencing debug insns that have been reset.
3124 (dead_debug_insert_before): Don't assert reg is non-NULL,
3125 instead return immediately if it is NULL.
3126
3127 2011-07-07 Joseph Myers <joseph@codesourcery.com>
3128
3129 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
3130
3131 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3132
3133 * hw-doloop.c: New file.
3134 * hw-doloop.h: New file.
3135 * Makefile.in (OBJS): Add hw-doloop.o.
3136 (hw-doloop.o): New rule.
3137 ($(obj_out_file)): Add hw-doloop.h dependency.
3138 * config/bfin/bfin.c: Include "hw-doloop.h".
3139 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
3140 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
3141 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
3142 type changed to hwloop_info. Return bool, true if the loop was
3143 successfully optimized. Remove code that was moved to
3144 hw-doloop.c, and adjust other parts.
3145 (hwloop_fail): New static function, containing parts that used
3146 to be in bfin_optimize_loop.
3147 (bfin_discover_loop, bfin_discover_loops, free_loops,
3148 bfin_reorder_loops): Remove.
3149 (hwloop_pattern_reg): New static function.
3150 (bfin_doloop_hooks): New variable.
3151 (bfin_reorg_loops): Remove most code, call reorg_loops.
3152 * config/bfin/bfin.md (doloop_end splitter): Also enable if
3153 loop counter is a memory_operand.
3154
3155 2011-07-07 H.J. Lu <hongjiu.lu@intel.com>
3156
3157 * config.gcc: Support --with-multilib-list for x86 Linux targets.
3158
3159 * configure.ac: Mention x86-64 for --with-multilib-list.
3160 * configure: Regenerated.
3161
3162 * config/i386/gnu-user64.h (SPEC_64): Support x32.
3163 (SPEC_32): Likewise.
3164 (ASM_SPEC): Likewise.
3165 (LINK_SPEC): Likewise.
3166 (TARGET_THREAD_SSP_OFFSET): Likewise.
3167 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
3168 (SPEC_X32): New.
3169
3170 * config/i386/i386.h (TARGET_X32): New.
3171 (TARGET_LP64): New.
3172 (LONG_TYPE_SIZE): Likewise.
3173 (POINTER_SIZE): Likewise.
3174 (POINTERS_EXTEND_UNSIGNED): Likewise.
3175 (OPT_ARCH64): Support x32.
3176 (OPT_ARCH32): Likewise.
3177
3178 * config/i386/i386.opt (mx32): New.
3179
3180 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
3181 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3182 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
3183 (GLIBC_DYNAMIC_LINKERX32): Likewise.
3184
3185 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
3186 (BIONIC_DYNAMIC_LINKERX32): Likewise.
3187 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
3188
3189 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
3190
3191 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
3192
3193 * doc/invoke.texi: Document -mx32.
3194
3195 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3196
3197 * doc/invoke.texi (mwords-little-endian): Deprecate.
3198 * config/arm/arm.opt (mwords-little-endian): Likewise.
3199 * config/arm/arm.c (arm_option_override): Warn about the deprecation
3200 of -mwords-little-endian.
3201
3202 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
3203
3204 * reload1.c (choose_reload_regs): Use mode sizes to check whether
3205 an old reload register completely defines the required value.
3206
3207 2011-07-07 Richard Guenther <rguenther@suse.de>
3208
3209 * fold-const.c (fold_unary_loc): Do not strip sign-changes
3210 for NEGATE_EXPR.
3211
3212 2011-07-07 Richard Guenther <rguenther@suse.de>
3213
3214 * tree-vrp.c (simplify_conversion_using_ranges): New function.
3215 (simplify_stmt_using_ranges): Call it.
3216
3217 2011-07-07 Kai Tietz <ktietz@redhat.com>
3218
3219 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
3220 (lookup_logical_inverted_value): Likewise.
3221 (simplify_bitwise_binary_1): Likewise.
3222 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
3223
3224 2011-07-07 Joseph Myers <joseph@codesourcery.com>
3225
3226 * gcc.c (%[Spec]): Don't document.
3227 (struct spec_list): Update comment.
3228 (do_spec_1): Don't handle %[Spec].
3229 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
3230
3231 2011-07-07 Joseph Myers <joseph@codesourcery.com>
3232
3233 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
3234 default based on TARGET_ASM_NAMED_SECTION.
3235 * common/common-target.def (have_named_sections): Default to true.
3236 * common/config/default-common.c: Don't include tm.h.
3237 * common/config/picochip/picochip-common.c
3238 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
3239 * common/config/m32c/m32c-common.c: Remove.
3240 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
3241 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3242 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3243 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3244 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3245 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3246 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
3247
3248 2011-07-07 Jakub Jelinek <jakub@redhat.com>
3249
3250 PR middle-end/49640
3251 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
3252 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
3253
3254 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3255
3256 PR libmudflap/49550
3257 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
3258
3259 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3260
3261 PR target/39150
3262 * configure.ac (gcc_cv_as_hidden): Also accept
3263 x86_64-*-solaris2.1[0-9]*.
3264 (gcc_cv_as_cfi_directive): Likewise.
3265 (gcc_cv_as_comdat_group_group): Likewise.
3266 (set_have_as_tls): Likewise.
3267 * configure: Regenerate.
3268 * config.gcc (i[34567]86-*-solaris2*): Also handle
3269 x86_64-*-solaris2.1[0-9]*.
3270 * config.host (i[34567]86-*-solaris2*): Likewise.
3271 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
3272 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
3273 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
3274 (TARGET_LD_EMULATION): Use it.
3275 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
3276 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
3277 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
3278 (ASM_CPU64_DEFAULT_SPEC): Define.
3279 (ASM_CPU_SPEC): Use %(asm_cpu_default).
3280 (ASM_SPEC): Redefine.
3281 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
3282 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
3283 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
3284 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
3285 configuration.
3286 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
3287
3288 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3289
3290 * config/sol2.h (ASM_SPEC): Split into ...
3291 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
3292 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
3293 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
3294 (ASM_SPEC): Use ASM_SPEC_BASE.
3295 * config/sparc/sol2.h (ASM_SPEC): Redefine.
3296
3297 2011-07-07 Georg-Johann Lay <avr@gjlay.de>
3298
3299 * config/avr/avr.md (*reload_insi): Change predicate #1 to
3300 const_int_operand. Ditto for peep2 producing this insn.
3301 Add argument to output_reload_insisf call.
3302 (*movsi,*movsf): Add argument to output_movsisf call.
3303 (*reload_insf): New insn and new peep2 to produce it.
3304 * config/avr/avr-protos.h (output_movsisf): Change prototype.
3305 (output_reload_insisf): Change prototype.
3306 * config/avr/avr.c (avr_asm_len): New function.
3307 (output_reload_insisf): Rewrite.
3308 (output_movsisf): Change prototype. output_reload_insisf for
3309 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
3310 (adjust_insn_length): Add argument to output_movsisf and
3311 output_reload_insisf call.
3312
3313 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
3314
3315 * emit-rtl.c (paradoxical_subreg_p): New function.
3316 * rtl.h (paradoxical_subreg_p): Declare.
3317 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
3318 apply_distributive_law, simplify_comparison, simplify_set): Use it.
3319 * cse.c (record_jump_cond, cse_insn): Likewise.
3320 * expr.c (force_operand): Likewise.
3321 * rtlanal.c (num_sign_bit_copies1): Likewise.
3322 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
3323 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
3324 (push_reload): Use precision to check for paradoxical subregs.
3325 * expmed.c (extract_bit_field_1): Likewise.
3326
3327 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
3328 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
3329 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
3330 simplify_set, simplify_logical, expand_compound_operation,
3331 make_extraction, force_to_mode, if_then_else_cond, extended_count,
3332 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
3333 record_value_for_reg): Likewise.
3334 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
3335 * simplify-rtx. c (simplify_unary_operation_1,
3336 simplify_binary_operation_1, simplify_const_relational_operation):
3337 Likewise.
3338
3339 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
3340 instead of GET_MODE_BITSIZE where appropriate.
3341 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
3342 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
3343 init_num_sign_bit_copies_in_rep): Likewise.
3344 * cse.c (fold_rtx, cse_insn): Likewise.
3345 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
3346 * simplify-rtx.c (simplify_unary_operation_1,
3347 simplify_const_unary_operation, simplify_binary_operation_1,
3348 simplify_const_binary_operation, simplify_ternary_operation,
3349 simplify_const_relational_operation, simplify_subreg): Likewise.
3350 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
3351 simplify_if_then_else, simplify_set, expand_compound_operation,
3352 expand_field_assignment, make_extraction, if_then_else_cond,
3353 make_compound_operation, force_to_mode, make_field_assignment,
3354 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
3355 extended_count, try_widen_shift_mode, simplify_shift_const_1,
3356 simplify_comparison, record_promoted_value, simplify_compare_const,
3357 record_dead_and_set_regs_1): Likewise.
3358
3359 Revert:
3360 * simplify-rtx.c (simplify_const_binary_operation): Use the
3361 shift_truncation_mask hook instead of performing modulo by width.
3362 Compare against mode precision, not bitsize.
3363 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3364 Use shift_truncation_mask instead of constructing the value manually.
3365
3366 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3367
3368 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
3369 declaration.
3370 (rs6000_save_toc_in_prologue_p): Ditto.
3371
3372 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
3373 up the static chain (r11) during indirect function calls.
3374 (-msave-toc-indirect): New undocumented debug switch.
3375
3376 * config/rs6000/rs6000.c (struct machine_function): Add
3377 save_toc_in_prologue field to note whether the prologue needs to
3378 save the TOC value in the reserved stack location.
3379 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
3380 to save the TOC in the prologue, do so.
3381 (rs6000_trampoline_init): Don't allow creating AIX style
3382 trampolines if -mno-r11 is in effect.
3383 (rs6000_call_indirect_aix): New function to create AIX style
3384 indirect calls, adding support for -mno-r11 to suppress loading
3385 the static chain, and saving the TOC in the prologue instead of
3386 the call body.
3387 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
3388 TOC in the prologue.
3389
3390 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
3391 register numbers.
3392 (TOC_REGNUM): Ditto.
3393 (STATIC_CHAIN_REGNUM): Ditto.
3394 (ARG_POINTER_REGNUM): Ditto.
3395 (SFP_REGNO): Delete, unused.
3396 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
3397 function descriptor offsets.
3398 (TOC_SAVE_OFFSET_64BIT): Ditto.
3399 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
3400 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
3401 (AIX_FUNC_DESC_SC_32BIT): Ditto.
3402 (AIX_FUNC_DESC_SC_64BIT): Ditto.
3403 (ptrload): New mode attribute for the appropriate load of a pointer.
3404 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
3405 (call_indirect_aix64): Ditto.
3406 (call_value_indirect_aix32): Ditto.
3407 (call_value_indirect_aix64): Ditto.
3408 (call_indirect_nonlocal_aix32_internal): Ditto.
3409 (call_indirect_nonlocal_aix32): Ditto.
3410 (call_indirect_nonlocal_aix64_internal): Ditto.
3411 (call_indirect_nonlocal_aix64): Ditto.
3412 (call): Rewrite AIX indirect function calls. Add support for
3413 eliminating the static chain, and for moving the save of the TOC
3414 to the function prologue.
3415 (call_value): Ditto.
3416 (call_indirect_aix<ptrsize>): Ditto.
3417 (call_indirect_aix<ptrsize>_internal): Ditto.
3418 (call_indirect_aix<ptrsize>_internal2): Ditto.
3419 (call_indirect_aix<ptrsize>_nor11): Ditto.
3420 (call_value_indirect_aix<ptrsize>): Ditto.
3421 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3422 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3423 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3424 (call_nonlocal_aix32): Relocate in the rs6000.md file.
3425 (call_nonlocal_aix64): Ditto.
3426
3427 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
3428 -mno-r11 documentation.
3429
3430 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
3431
3432 PR other/49658
3433 * doc/extend.texi (Compound Literals): Fix typo.
3434
3435 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
3436
3437 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
3438
3439 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
3440
3441 * configure.ac (plugin-version.h): Generate
3442 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
3443 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
3444 macros.
3445
3446 * configure: Regenerate.
3447
3448 * doc/plugins.texi (Building GCC plugins): Mention
3449 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
3450
3451 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3452
3453 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
3454 * combine.c (make_extraction, gen_lowpart_or_truncate,
3455 apply_distributive_law, simplify_comparison,
3456 reg_truncated_to_mode, record_truncated_value): Use it.
3457 * cse.c (notreg_cost): Likewise.
3458 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
3459 * expr.c (convert_move, convert_modes): Likewise.
3460 * optabs.c (expand_binop, expand_unop): Likewise.
3461 * postreload.c (move2add_last_label): Likewise.
3462 * regmove.c (optimize_reg_copy_3): Likewise.
3463 * rtlhooks.c (gen_lowpart_general): Likewise.
3464 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3465
3466 2011-07-06 Joseph Myers <joseph@codesourcery.com>
3467
3468 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
3469
3470 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3471
3472 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
3473 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
3474 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
3475 (simplify_const_unary_operation, simplify_binary_operation_1,
3476 simplify_const_binary_operation, simplify_const_relational_operation):
3477 Use them. Use GET_MODE_MASK for masking and sign-extensions.
3478 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
3479 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
3480 simplify_shift_const_1, simplify_comparison): Likewise.
3481 * expr.c (convert_modes): Likewise.
3482 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
3483 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
3484 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
3485
3486 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
3487
3488 2011-07-06 Richard Guenther <rguenther@suse.de>
3489
3490 PR tree-optimization/49645
3491 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
3492 register variables.
3493 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
3494 in type qualification here ...
3495 (copy_reference_ops_from_ref): ... not here.
3496 (vn_reference_lookup_3): ... or here.
3497 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
3498 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
3499
3500 2011-07-06 Ian Lance Taylor <iant@google.com>
3501
3502 * doc/install.texi (Configuration): It's
3503 --enable-gnu-indirect-function, not --enable-indirect-function.
3504
3505 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
3506
3507 * simplify-rtx.c (simplify_const_binary_operation): Use the
3508 shift_truncation_mask hook instead of performing modulo by width.
3509 Compare against mode precision, not bitsize.
3510 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
3511 Use shift_truncation_mask instead of constructing the value manually.
3512
3513 2011-07-06 H.J. Lu <hongjiu.lu@intel.com>
3514
3515 PR middle-end/47383
3516 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
3517 address computation and convert to address_mode if needed.
3518
3519 2011-07-06 Richard Guenther <rguenther@suse.de>
3520
3521 * tree.c (build_common_tree_nodes_2): Merge with
3522 build_common_tree_nodes.
3523 * tree.h (build_common_tree_nodes): Adjust prototype.
3524 (build_common_tree_nodes_2): Remove.
3525 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
3526 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
3527
3528 2011-07-05 Jakub Jelinek <jakub@redhat.com>
3529
3530 PR tree-optimization/49618
3531 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
3532 t recurse on the decl.
3533 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
3534 return true if expr isn't known to be defined in current
3535 TU or some other LTO partition.
3536
3537 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3538
3539 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
3540 override CASE_VALUES_THRESHOLD.
3541
3542 * stmt.c (toplevel): Include params.h.
3543 (case_values_threshold): Use the --param case-values-threshold
3544 value if non-zero, otherwise use machine dependent value.
3545 (expand_case): Use case_values_threshold.
3546
3547 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
3548
3549 * doc/invoke.texi (--param case-values-threshold): Document.
3550
3551 2011-07-05 Richard Henderson <rth@redhat.com>
3552
3553 * dwarf2out.c (dwarf2out_cfi_label): Make static.
3554 (dwarf2out_flush_queued_reg_saves): Make static.
3555 (dwarf2out_reg_save): Remove.
3556 (dwarf2out_return_save): Remove.
3557 (dwarf2out_return_reg): Remove.
3558 (dwarf2out_reg_save_reg): Remove.
3559 (dwarf2out_def_cfa): Merge into ...
3560 (dwarf2out_frame_init): ... here.
3561 * dwarf2out.h, tree.h: Remove declarations as necessary.
3562
3563 2011-07-05 Richard Henderson <rth@redhat.com>
3564
3565 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
3566 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3567 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
3568 the alloc insn.
3569
3570 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
3571 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
3572 (process_epilogue): Don't call dwarf2out_def_cfa.
3573
3574 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
3575 indicate the return address save.
3576 (process_cfa_register): Likewise.
3577
3578 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
3579 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
3580
3581 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
3582 for ar.pfs save at alloc insn.
3583
3584 2011-07-05 Richard Henderson <rth@redhat.com>
3585
3586 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
3587 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
3588 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
3589 stack pointer save.
3590 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
3591 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
3592 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
3593 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
3594
3595 2011-07-05 Richard Henderson <rth@redhat.com>
3596
3597 * config/vax/vax.md (define_c_enum unspecv): New. Define the
3598 VUNSPEC_* constants here instead of via define_constants.
3599 (VUNSPEC_PEM): New constant.
3600 (procedure_entry_mask): New insn.
3601 (prologue): New expander.
3602 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
3603 (vax_expand_prologue): Rename from vax_output_function_prologue;
3604 emit rtl instead of text.
3605 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
3606 (print_operand): Add 'x' prefix.
3607
3608 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3609
3610 PR middle-end/47715
3611 * calls.c (precompute_register_parameters): Promote the function
3612 argument before checking non-legitimate constant.
3613
3614 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3615
3616 PR tree-optimization/47654
3617 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
3618 (lst_do_strip_mine_loop): Return an int.
3619 (lst_do_strip_mine): Same.
3620 (scop_do_strip_mine): Same.
3621 (scop_do_block): Loop blocking should strip-mine at least two loops.
3622 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
3623 (scop_do_interchange): Same.
3624 * graphite-poly.h (scop_do_interchange): Update declaration.
3625 (scop_do_strip_mine): Same.
3626
3627 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3628
3629 * graphite-clast-to-gimple.c (precision_for_value): Removed.
3630 (precision_for_interval): Removed.
3631 (gcc_type_for_interval): Use mpz_sizeinbase.
3632
3633 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3634
3635 * graphite-ppl.h (value_max): Correct computation of max.
3636
3637 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
3638
3639 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
3640
3641 2011-07-05 Richard Guenther <rguenther@suse.de>
3642
3643 * c-decl.c (c_init_decl_processing): Defer building common
3644 tree nodes to c_common_nodes_and_builtins.
3645
3646 2011-07-05 Razya Ladelsky <razya@il.ibm.com>
3647
3648 PR tree-optimization/49580
3649 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
3650 the loop's number of iterations.
3651 * tree-parloops.c (transform_to_exit_first_loop): Add the
3652 handling of the loop's number of iterations before the call
3653 to gimple_duplicate_sese_tail.
3654 Insert the stmt caclculating the new rhs of the loop's
3655 condition stmt to the preheader instead of iters_bb.
3656
3657 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
3658
3659 PR rtl-optimization/47449
3660 * fwprop.c (forward_propagate_subreg): Don't propagate hard
3661 register nor zero/sign extended hard register.
3662
3663 2011-07-05 Richard Guenther <rguenther@suse.de>
3664
3665 PR tree-optimization/49518
3666 PR tree-optimization/49628
3667 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
3668 irrelevant and invariant data-references.
3669 (vect_analyze_data_ref_access): For invariant loads clear the
3670 group association.
3671
3672 2011-07-04 Jakub Jelinek <jakub@redhat.com>
3673
3674 PR rtl-optimization/49619
3675 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
3676 pass VOIDmode as op0_mode to recursive call, and return temp even
3677 when different from tor, just if it is not IOR of the original
3678 PLUS arguments.
3679
3680 PR rtl-optimization/49472
3681 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
3682 negating MULT, negate the second operand instead of first.
3683 (simplify_binary_operation_1) <case MULT>: If one operand is
3684 a NEG and the other is MULT, don't attempt to optimize by negation
3685 of the MULT operand if it only moves the NEG operation around.
3686
3687 PR debug/49602
3688 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
3689 get_current_def return value if it can't be trusted to be
3690 the current value of the variable in the current bb.
3691
3692 2011-07-04 Uros Bizjak <ubizjak@gmail.com>
3693
3694 PR target/49600
3695 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
3696 general register to memory for !TARGET_INTER_UNIT_MOVES.
3697
3698 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
3699
3700 PR target/44643
3701 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
3702 instead of TREE_READONLY.
3703
3704 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
3705
3706 * doc/extend.texi (AVR Built-in Functions): Update documentation
3707 of __builtin_avr_fmul*.
3708 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
3709 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
3710 * config/avr/avr.md (fmul): Rename to fmul_insn.
3711 (fmuls): Rename to fmuls_insn.
3712 (fmulsu): Rename to fmulsu_insn.
3713 (fmul,fmuls,fmulsu): New expander.
3714 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
3715 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
3716 * config/avr/libgcc.S (__fmul): New function.
3717 (__fmuls): New function.
3718 (__fmulsu,__fmulsu_exit): New function.
3719
3720 2011-07-04 Richard Guenther <rguenther@suse.de>
3721
3722 PR tree-optimization/49615
3723 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
3724 basic-block index check.
3725
3726 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
3727
3728 * longlong.h (count_leading_zeros, count_trailing_zeros,
3729 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
3730 resp. 64.
3731
3732 2011-07-03 Ira Rosen <ira.rosen@linaro.org>
3733
3734 PR tree-optimization/49610
3735 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
3736 a basic block.
3737
3738 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
3739 Olivier Hainque <hainque@adacore.com>
3740 Nicolas Setton <setton@adacore.com>
3741
3742 * tree.h (TYPE_ARTIFICIAL): New flag.
3743 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
3744 the DIE of the type if it is artificial.
3745 (gen_array_type_die): Likewise.
3746 (gen_enumeration_type_die): Likewise.
3747 (gen_struct_or_union_type_die): Likewise.
3748 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
3749 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
3750
3751 2011-07-01 Jakub Jelinek <jakub@redhat.com>
3752
3753 * tree-object-size.c (pass_through_call): Handle
3754 BUILT_IN_ASSUME_ALIGNED.
3755
3756 2011-07-01 Martin Jambor <mjambor@suse.cz>
3757
3758 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
3759
3760 2011-07-01 H.J. Lu <hongjiu.lu@intel.com>
3761
3762 PR middle-end/48016
3763 * explow.c (update_nonlocal_goto_save_area): Use proper mode
3764 for stack save area.
3765 * function.c (expand_function_start): Likewise.
3766
3767 2011-07-01 Richard Guenther <rguenther@suse.de>
3768
3769 PR middle-end/49596
3770 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
3771 may have unknown refs.
3772
3773 2011-07-01 Kai Tietz <ktietz@redhat.com>
3774
3775 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
3776
3777 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3778
3779 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
3780 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
3781 (Specific, mips-sgi-irix6): Likewise.
3782
3783 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3784
3785 PR libmudflap/49549
3786 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
3787
3788 2011-07-01 Jakub Jelinek <jakub@redhat.com>
3789
3790 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
3791 [idx]= and [idx1 ... idx2]= before initializers if needed for
3792 array initializers.
3793
3794 2011-07-01 Chen Liqin <liqin.gcc@gmail.com>
3795
3796 * config.gcc (score-*-elf): Remove score7.o.
3797 * config/score/t-score-elf: Likewise.
3798 * config/score/score.c: Merge score7 to score.c and
3799 remove forwarding functions.
3800 * config/score/score7.c: Deleted.
3801 * config/score/score7.h: Deleted.
3802
3803 2011-07-01 Richard Guenther <rguenther@suse.de>
3804
3805 PR tree-optimization/49603
3806 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
3807
3808 2011-06-30 Martin Jambor <mjambor@suse.cz>
3809
3810 * tree-sra.c (struct access): Rename total_scalarization to
3811 grp_total_scalarization
3812 (completely_scalarize_var): New function.
3813 (sort_and_splice_var_accesses): Set total_scalarization in the
3814 representative access.
3815 (analyze_access_subtree): Propagate total scalarization accross the
3816 tree, no holes in totally scalarized trees, simplify coverage
3817 computation.
3818 (analyze_all_variable_accesses): Call completely_scalarize_var instead
3819 of completely_scalarize_record.
3820
3821 2011-06-30 Richard Henderson <rth@redhat.com>
3822
3823 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
3824 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
3825 * config/i386/i386.c: Don't include dwarf2out.h.
3826 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
3827 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
3828 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
3829 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
3830 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
3831
3832 2011-06-30 Richard Henderson <rth@redhat.com>
3833
3834 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
3835 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
3836 * final.c (final_scan_insn): Look for it, and invoke
3837 dwarf2out_frame_debug before the insn if found.
3838
3839 2011-06-30 Richard Henderson <rth@redhat.com>
3840
3841 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
3842 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
3843
3844 2011-06-30 Richard Henderson <rth@redhat.com>
3845
3846 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
3847 Define a vector of this type.
3848 (regs_saved_in_regs): Use a VEC.
3849 (num_regs_saved_in_regs): Remove.
3850 (compare_reg_or_pc): New.
3851 (record_reg_saved_in_reg): Split out from...
3852 (dwarf2out_flush_queued_reg_saves): ... here.
3853 (clobbers_queued_reg_save): Update for VEC.
3854 (reg_saved_in): Likewise.
3855 (dwarf2out_frame_debug_init): Likewise.
3856 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
3857 (dwarf2out_frame_debug_cfa_register): Likewise.
3858
3859 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3860
3861 PR tree-optimization/49572
3862 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
3863 type of the RHS instead of that of the LHS for the expression type.
3864
3865 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
3866
3867 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
3868 unconditionally.
3869
3870 2011-06-30 Richard Guenther <rguenther@suse.de>
3871
3872 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
3873 * tree-ssa-structalias.c (create_variable_info_for): Do not
3874 add initial constraints for non-var-decls. Properly handle
3875 globals in other ltrans partitions.
3876 (intra_create_variable_infos): Manually create constraints for
3877 the fake no-alias parameter.
3878 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
3879 and assert there are no clones.
3880
3881 2011-06-30 Richard Guenther <rguenther@suse.de>
3882
3883 PR tree-optimization/46787
3884 * tree-data-ref.c (dr_address_invariant_p): Remove.
3885 (find_data_references_in_stmt): Invariant accesses are ok now.
3886 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
3887 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
3888 invariant loads.
3889
3890 2011-06-30 Martin Jambor <mjambor@suse.cz>
3891
3892 PR tree-optimization/49094
3893 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
3894 (build_accesses_from_assign): Use it.
3895
3896 2011-06-30 Jakub Jelinek <jakub@redhat.com>
3897
3898 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3899 handling of BUILT_IN_ASSUME_ALIGNED.
3900
3901 PR debug/49364
3902 * dwarf2out.c (output_abbrev_section): Don't return early
3903 if abbrev_die_table_in_use is 1.
3904 (dwarf2out_finish): Instead don't call output_abbrev_section
3905 nor emit abbrev_section_label in that case.
3906
3907 2011-06-30 Nick Clifton <nickc@redhat.com>
3908
3909 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
3910 for the V850E.
3911
3912 2011-06-30 Jakub Jelinek <jakub@redhat.com>
3913
3914 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
3915 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
3916
3917 2011-06-30 Ira Rosen <ira.rosen@linaro.org>
3918
3919 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3920 both pattern and original statements if necessary.
3921 (vect_transform_loop): Likewise.
3922 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
3923 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
3924 Mark the pattern statement only if the original statement doesn't
3925 have its own uses.
3926 (process_use): Call vect_mark_relevant with additional parameter.
3927 (vect_mark_stmts_to_be_vectorized): Likewise.
3928 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
3929 (vect_analyze_stmt): Handle both pattern and original statements
3930 if necessary.
3931 (vect_transform_stmt): Don't store vectorized pattern statement
3932 in the original statement.
3933 (vect_is_simple_use_1): Use related pattern statement only if the
3934 original statement is irrelevant.
3935 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3936
3937 2011-06-29 Changpeng Fang <changpeng.fang@amd.com>
3938
3939 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
3940 option.
3941 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
3942 entry.
3943 (TARGET_AVX128_OPTIMAL): New definition.
3944 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3945 X86_TUNE_AVX128_OPTIMAL entry.
3946 (ix86_option_override_internal): Enable the generation
3947 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
3948 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
3949 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
3950
3951 2011-06-29 Eric Botcazou <ebotcazou@adacore.com>
3952
3953 PR tree-optimization/49539
3954 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
3955 names by means of stmt_references_abnormal_ssa_name.
3956 (associate_plusminus): Call can_propagate_from before propagating
3957 from definition statements.
3958 (ssa_forward_propagate_and_combine): Remove superfluous newline.
3959
3960 2011-06-29 Richard Guenther <rguenther@suse.de>
3961
3962 * doc/invoke.texi: Document -scev dump modifier.
3963 * tree-pass.h (TDF_SCEV): New dump flag.
3964 * tree-dump.c (dump_option_value_in): Add scev.
3965 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
3966 * tree-scalar-evolution.c: Likewise.
3967
3968 2011-06-29 Nathan Sidwell <nathan@codesourcery.com>
3969
3970 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
3971 (cxa_type_match): Correct declaration.
3972 (__gnu_unwind_pr_common): Reconstruct additional indirection
3973 when __cxa_type_match returns succeeded_with_ptr_to_base.
3974
3975 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3976
3977 PR rtl-optimization/49114
3978 * reload.c (struct replacement): Remove SUBREG_LOC member.
3979 (push_reload): Do not set it.
3980 (push_replacement): Likewise.
3981 (subst_reload): Remove dead code.
3982 (copy_replacements): Remove assertion.
3983 (copy_replacements_1): Do not handle SUBREG_LOC.
3984 (move_replacements): Likewise.
3985 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
3986 Detect subregs via recursive descent instead of via SUBREG_LOC.
3987
3988 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
3989
3990 * config/avr/avr.c (avr_encode_section_info): Dispatch to
3991 default_encode_section_info.
3992
3993 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
3994
3995 PR tree-optimization/49545
3996 * builtins.c (get_object_alignment_1): Update function comment.
3997 Do not use DECL_ALIGN for functions, but test
3998 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
3999 * fold-const.c (get_pointer_modulus_and_residue): Don't check
4000 for functions here.
4001 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
4002
4003 2011-06-29 Jakub Jelinek <jakub@redhat.com>
4004
4005 PR debug/49567
4006 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
4007 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
4008
4009 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
4010
4011 PR target/34734
4012 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
4013 about uninitialized data attributed 'progmem' from here...
4014 (avr_encode_section_info): ...to this new function.
4015 (TARGET_ENCODE_SECTION_INFO): New define.
4016 (avr_section_type_flags): For data in ".progmem.data", remove
4017 section flag SECTION_WRITE.
4018
4019 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
4020
4021 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
4022 _xmulhisi3_exit.
4023 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
4024 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
4025 (__umulhisi3): Ditto.
4026 * config/avr/avr.md (mulhisi3): New insn expender.
4027 (umulhisi3): New insn expender.
4028 (*mulhisi3_call): New insn.
4029 (*umulhisi3_call): New insn.
4030
4031 2011-06-28 Joseph Myers <joseph@codesourcery.com>
4032
4033 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
4034
4035 2011-06-28 Richard Henderson <rth@redhat.com>
4036
4037 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
4038 all code and arguments that handled pushes. Update all callers.
4039
4040 2011-06-28 Richard Henderson <rth@redhat.com>
4041
4042 * config/arm/arm.c (arm_output_function_prologue): Don't call
4043 thumb1_output_function_prologue.
4044 (arm_expand_prologue): Avoid dead store.
4045 (number_of_first_bit_set): Use ctz_hwi.
4046 (thumb1_emit_multi_reg_push): New.
4047 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
4048 to emit the entire prologue as rtl.
4049 (thumb1_output_interwork): Split out from
4050 thumb1_output_function_prologue.
4051 (thumb1_output_function_prologue): Remove.
4052 (arm_attr_length_push_multi): Handle thumb1.
4053 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
4054 (prologue_thumb1_interwork): New.
4055 (*push_multi): Allow thumb1; use push_mult_memory_operand.
4056 * config/arm/predicates.md (push_mult_memory_operand): New.
4057
4058 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4059
4060 * config/sparc/sync.md (*stbar): Delete.
4061 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
4062
4063 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
4064
4065 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
4066
4067 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4068
4069 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
4070 (TARGET_64BIT_DEFAULT): Define.
4071 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
4072 of tm_file.
4073 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
4074
4075 2011-06-28 Joseph Myers <joseph@codesourcery.com>
4076
4077 * common.opt (in_lto_p): New Variable entry.
4078 * flags.h (in_lto_p): Move to common.opt.
4079 * gcc.c: Include params.h.
4080 (set_option_handlers): Also use common_handle_option and
4081 target_handle_option.
4082 (main): Call global_init_params, finish_params and init_options_struct.
4083 * opts.c (debug_type_names): Move from toplev.c.
4084 (print_filtered_help): Access quiet_flag through opts pointer.
4085 (common_handle_option): Return early in the driver for some options.
4086 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
4087 opts pointer.
4088 * toplev.c (in_lto_p): Move to common.opt.
4089 (debug_type_names): Move to opts.c.
4090 * Makefile.in (OBJS): Remove opts.o.
4091 (OBJS-libcommon-target): Add opts.o.
4092 (gcc.o): Update dependencies.
4093
4094 2011-06-28 Kai Tietz <ktietz@redhat.com>
4095
4096 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
4097
4098 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4099
4100 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
4101 with '=' constraint modifier.
4102 (*divdf3_vfp): Likewise.
4103 ("*mulsf3_vfp"): Likewise.
4104 ("*muldf3_vfp"): Likewise.
4105 ("*mulsf3negsf_vfp"): Likewise.
4106 ("*muldf3negdf_vfp"): Likewise.
4107
4108 2011-06-28 Nick Clifton <nickc@redhat.com>
4109
4110 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
4111 relaxation when performing an incremental link.
4112
4113 2011-06-28 Kai Tietz <ktietz@redhat.com>
4114
4115 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
4116 within BB from last to first.
4117
4118 2011-06-28 Joseph Myers <joseph@codesourcery.com>
4119
4120 * genattr-common.c: New. Based on genattr.c.
4121 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
4122 (MOSTLYCLEANFILES): Add insn-attr-common.h.
4123 (opts.o): Update dependencies.
4124 (.PRECIOUS): Add insn-attr-common.h.
4125 (simple_rtl_generated_h): Add insn-attr-common.h.
4126 (build/genattr-common.o): New.
4127 (genprogrtl): Add attr-common.
4128 * genattr.c (main): Include insn-attr-common.h. Don't generate
4129 definitions of DELAY_SLOTS or INSN_SCHEDULING.
4130 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
4131
4132 2011-06-28 Georg-Johann Lay <avr@gjlay.de>
4133
4134 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
4135 avr-*-* and avr-*-rtems* targets.
4136
4137 * config/avr/elf.h: New file.
4138 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
4139 (TARGET_ASM_SELECT_SECTION): Define.
4140 (INIT_SECTION_ASM_OP): Undefine.
4141 (FINI_SECTION_ASM_OP): Undefine.
4142 (READONLY_DATA_SECTION_ASM_OP): Undefine.
4143 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
4144 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
4145 * config/avr/avr.h:
4146 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
4147 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
4148 (MAX_OFILE_ALIGNMENT): Move to elf.h.
4149 (STRING_LIMIT): Move to elf.h.
4150 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
4151 (ASM_DECLARE_OBJECT_NAME): Remove.
4152 (ESCAPES): Remove.
4153 (ASM_OUTPUT_SKIP): Remove.
4154 (DWARF2_DEBUGGING_INFO): Remove.
4155 (OBJECT_FORMAT_ELF): Remove.
4156 (USER_LABEL_PREFIX): Remove.
4157 (ASM_OUTPUT_EXTERNAL): Remove.
4158 (ASM_OUTPUT_ASCII): Remove.
4159 (TYPE_ASM_OP): Remove.
4160 (SIZE_ASM_OP): Remove.
4161 (WEAK_ASM_OP): Remove.
4162 (STRING_ASM_OP): Remove.
4163 (SET_ASM_OP): Remove.
4164 (ASM_WEAKEN_LABEL): Remove.
4165 (TYPE_OPERAND_FMT): Remove.
4166 (ASM_DECLARE_FUNCTION_SIZE): Remove.
4167 (ASM_FINISH_DECLARE_OBJECT): Remove.
4168 (NO_DOLLAR_IN_LABEL): Remove.
4169 (ASM_GENERATE_INTERNAL_LABEL): Remove.
4170 (ASM_OUTPUT_CASE_LABEL): Remove.
4171 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
4172 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
4173 (gas_output_ascii): Remove.
4174 (gas_output_limited_string): Remove.
4175 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
4176 * config/avr/avr-protos.h
4177 (gas_output_ascii): Remove prototye.
4178 (gas_output_limited_string): Remove prototype.
4179
4180 2011-06-27 Richard Earnshaw <rearnsha@arm.com>
4181
4182 PR target/48637
4183 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
4184 asm operands.
4185
4186 2011-06-27 Jan Hubicka <jh@suse.cz>
4187
4188 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
4189 node instead of references in node.
4190
4191 2011-06-27 Richard Henderson <rth@redhat.com>
4192
4193 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
4194 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
4195 inside ifdef.
4196
4197 2011-06-27 Jakub Jelinek <jakub@redhat.com>
4198
4199 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
4200
4201 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
4202 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
4203 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
4204 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
4205 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
4206 (evaluate_stmt, execute_fold_all_builtins): Handle
4207 BUILT_IN_ASSUME_ALIGNED.
4208 * tree-ssa-dce.c (propagate_necessity): Likewise.
4209 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4210 call_may_clobber_ref_p_1): Likewise.
4211 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
4212 (expand_builtin_assume_aligned): New function.
4213 * doc/extend.texi (__builtin_assume_aligned): Document.
4214
4215 PR debug/49544
4216 * cselib.c (promote_debug_loc): If cselib_preserve_constants
4217 and l has two DEBUG_INSN owned locs instead of just one, adjust
4218 the second location's setting_insn too.
4219
4220 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4221
4222 PR libmudflap/38738
4223 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
4224
4225 2011-06-27 Nick Clifton <nickc@redhat.com>
4226
4227 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
4228 bit position of highest bit set into a count of the high zero bits.
4229
4230 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4231
4232 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
4233
4234 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4235
4236 PR lto/48492
4237 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
4238 to a NULL parent.
4239
4240 2011-06-27 Richard Guenther <rguenther@suse.de>
4241
4242 PR tree-optimization/49394
4243 * passes.c (execute_one_pass): Restore current_pass after
4244 applying IPA transforms.
4245
4246 2011-06-27 Kai Tietz <ktietz@redhat.com>
4247
4248 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
4249 out of type precision after operation.
4250 (find_bswap): Take for limit value the integer auto-promotion
4251 into account.
4252
4253 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4254
4255 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
4256 forward scan as well.
4257
4258 2011-06-27 Tristan Gingold <gingold@adacore.com>
4259
4260 PR target/44241
4261 * config/vms/vms-protos.h: New file.
4262 * config/vms/vms-crtlmap.map: New file.
4263 * config/vms/vms.c: New file.
4264 * config/vms/make-crtlmap.awk: New file.
4265 * config/vms/vms-crtl.h: File removed.
4266 * config/vms/vms-crtl-64.h: File removed.
4267 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
4268 * config/alpha/vms64.h: Do not include vms-crtl-64.h
4269 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
4270 clear some builtins on VMS. Calls vms_patch_builtins.
4271 (avms_asm_output_external): Remove.
4272 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
4273 (struct crtl_name_spec): Remove
4274 (DO_CTRL_NAMES): Remove.
4275 * config/ia64/vms.h (struct crtl_name_spec): Remove
4276 (DO_CTRL_NAMES): Remove.
4277 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
4278 clear some builtins on VMS. Calls vms_patch_builtins.
4279 (ia64_asm_output_external): Remove DO_CRTL_NAME.
4280 * config/ia64/vms64.h: Do not include vms-crtl-64.h
4281 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
4282
4283 2011-06-27 Tristan Gingold <gingold@adacore.com>
4284
4285 * config/alpha/alpha.c (alpha_end_function): Always generate .end
4286 directive on VMS.
4287
4288 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
4289
4290 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
4291 the function receives nonlocal gotos.
4292
4293 2011-06-27 Richard Guenther <rguenther@suse.de>
4294
4295 PR tree-optimization/49536
4296 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
4297 For non-scalar inner types use a scalar type according to
4298 the scalar inner mode.
4299
4300 2011-06-27 Richard Guenther <rguenther@suse.de>
4301
4302 PR tree-optimization/49365
4303 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
4304
4305 2011-06-27 Richard Guenther <rguenther@suse.de>
4306
4307 PR tree-optimization/49169
4308 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
4309 the alignment of function decls.
4310
4311 2011-06-26 Iain Sandoe <iains@gcc.gnu.org>
4312
4313 PR target/47997
4314 * config/darwin.c (darwin_mergeable_string_section): Place string
4315 constants in '.cstring' rather than '.const' when CF/NSStrings are
4316 active.
4317
4318 2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
4319
4320 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
4321 (emit_save_register_window): Likewise.
4322 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
4323 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
4324 Swap back %o7/%i7 in register naming.
4325
4326 2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
4327
4328 PR driver/49371
4329 * config/darwin.c (darwin_override_options): Improve warning when
4330 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
4331 is given with fpie/fPIE.
4332 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
4333 * config/darwin9.h (PIE_SPEC): New.
4334
4335 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
4336
4337 * timevar.c (timevar_print): Increase width for display of timevar
4338 name.
4339
4340 2011-06-24 Jakub Jelinek <jakub@redhat.com>
4341
4342 PR c++/46400
4343 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
4344 instead of TYPE_CHAIN for chain_next for types.
4345
4346 2011-06-24 Richard Henderson <rth@redhat.com>
4347
4348 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
4349 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
4350 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
4351 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
4352 (sparc_flat_expand_prologue): Emit individual instructions
4353 instead of one of the above.
4354
4355 2011-06-24 Easwaran Raman <eraman@google.com>
4356
4357 PR rtl-optimization/49429
4358 PR target/49454
4359 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
4360 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
4361 used to copy y into x.
4362 * calls.c (initialize_argument_information): Mark
4363 an argument addressable if it is passed by invisible reference.
4364 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
4365 if it is passed by reference.
4366
4367 2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
4368
4369 PR rtl-optimization/49504
4370 * rtlanal.c (nonzero_bits1): Properly handle addition or
4371 subtraction of a pointer in Pmode if pointers extend unsigned.
4372 (num_sign_bit_copies1): Likewise.
4373
4374 2011-06-24 Martin Jambor <mjambor@suse.cz>
4375
4376 PR tree-optimizations/49516
4377 * tree-sra.c (sra_modify_assign): Choose the safe path for
4378 aggregate copies if we also did scalar replacements.
4379
4380 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4381
4382 PR target/49335
4383 * config/arm/predicates.md (add_operator): New.
4384 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
4385
4386 2011-06-24 Andi Kleen <ak@linux.intel.com>
4387
4388 * tree-sra.c (type_internals_preclude_sra_p): Add msg
4389 parameter. Split up ifs and report reason in *msg.
4390 (reject): Add.
4391 (find_var_candiate): Add msg variable.
4392 Split up ifs and report reason to reject.
4393 (find_param_candidates): Add msg variable.
4394 Pass msg to type_internals_preclude_sra_p.
4395
4396 2011-06-23 Jeff Law <law@redhat.com>
4397
4398 PR middle-end/48770
4399 * reload.h (reload): Change to return a bool.
4400 * ira.c (ira): If requested by reload, run a fast DCE pass after
4401 reload has completed. Fix comment typo.
4402 * reload1.c (need_dce): New file scoped static.
4403 (reload): Set reload_completed here. Return whether or not a DCE
4404 pass after reload is needed.
4405 (delete_dead_insn): Set need_dce as needed.
4406
4407 PR middle-end/49465
4408 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
4409 to detect threading through joiner block. If there was already
4410 an edge to the new target, then do not change the PHI nodes.
4411
4412 2011-06-23 Jakub Jelinek <jakub@redhat.com>
4413
4414 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
4415 get_pointer_alignment to see if base isn't sufficiently aligned.
4416
4417 2011-06-23 Jan Hubicka <jh@suse.cz>
4418
4419 PR tree-optimize/49373
4420 * tree-pass.h (all_late_ipa_passes): Declare.
4421 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4422 (cgraph_optimize): Execute late passes; remove unreachable funcions
4423 after materialization.
4424 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
4425 LTOing.
4426 * passes.c (all_late_ipa_passes): Declare.
4427 (dump_passes, register_pass): Handle late ipa passes.
4428 (init_optimization_passes): Move ipa_pta to late passes; schedule
4429 fixup_cfg at beggining of all_passes.
4430 (apply_ipa_transforms): New function.
4431 (execute_one_pass): When doing simple ipa pass, apply all transforms.
4432
4433 2011-06-23 Joseph Myers <joseph@codesourcery.com>
4434
4435 * params.c: Include common/common-target.h. Don't include tm.h.
4436 (lang_independent_params): Move from toplev.c.
4437 (global_init_params): New.
4438 * params.h (global_init_params): Declare.
4439 * target.def (default_params): Move to common-target.def.
4440 * toplev.c (lang_independent_options): Remove.
4441 (lang_independent_params): Move to params.c.
4442 (general_init): Use global_init_params.
4443 * common/common-target.def (option_default_params): Move from
4444 target.def.
4445 * common/config/ia64/ia64-common.c: Include params.h.
4446 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4447 from ia64.c.
4448 * common/config/rs6000/rs6000-common.c: Include params.h.
4449 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4450 from rs6000.c.
4451 * common/config/sh/sh-common.c: Include params.h.
4452 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4453 from sh.c.
4454 * common/config/spu/spu-common.c: Include params.h.
4455 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
4456 from spu.c.
4457 * config/ia64/ia64.c (ia64_option_default_params,
4458 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
4459 * config/rs6000/rs6000.c (rs6000_option_default_params,
4460 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
4461 * config/sh/sh.c (sh_option_default_params,
4462 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
4463 * config/spu/spu.c (spu_option_default_params,
4464 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
4465 * Makefile.in (OBJS): Remove params.o.
4466 (OBJS-libcommon-target): Add params.o.
4467 (params.o, $(common_out_object_file)): Update dependencies.
4468 * doc/tm.texi: Regenerate.
4469
4470 2011-06-23 Alan Modra <amodra@gmail.com>
4471
4472 PR bootstrap/49383
4473 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
4474 invocation for 2011-06-09 changes.
4475
4476 2011-06-22 Jakub Jelinek <jakub@redhat.com>
4477
4478 PR libgomp/49490
4479 * omp-low.c (expand_omp_for_static_nochunk): Only
4480 use n ceil/ nthreads size for the first n % nthreads threads in the
4481 team instead of all threads except for the last few ones which
4482 get less work or none at all.
4483
4484 PR debug/49496
4485 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
4486 uses.
4487
4488 2011-06-22 Richard Guenther <rguenther@suse.de>
4489
4490 PR tree-optimization/49493
4491 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
4492 Refer to the alias target of variables.
4493 (associate_varinfo_to_alias_1): Remove.
4494 (ipa_pta_execute): Do not associate aliases with anything.
4495 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
4496 (cgraph_function_node): Likewise.
4497 (cgraph_function_or_thunk_node): Likewise.
4498 (varpool_variable_node): Likewise.
4499
4500 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4501
4502 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
4503 * config.gcc (arm*-*-linux*): Default to gnu tls.
4504 (arm*-*-*): Add --with-tls option.
4505 (all_defaults): Add 'tls'.
4506
4507 2011-06-22 Richard Henderson <rth@redhat.com>
4508
4509 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
4510 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4511 (dwarf2out_frame_debug_cfa_window_save): Rename from
4512 dwarf2out_window_save; make static.
4513 * tree.h (dwarf2out_window_save): Don't declare.
4514
4515 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
4516 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
4517 (emit_save_register_window): Rename from gen_save_register_window;
4518 emit the insn and add REG_CFA_* notes.
4519 (sparc_expand_prologue): Update to match.
4520 * config/sparc/sparc.md (save_register_window_1): Simplify from
4521 save_register_window<P:mode>.
4522
4523 2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
4524
4525 PR target/49497
4526 * config/i386/i386.md (*lea_general_2): Always allow SImode.
4527 (*lea_general_2_zext): Likewise.
4528 (imul to lea peepholes): Use const359_operand and check
4529 TARGET_PARTIAL_REG_STALL.
4530
4531 * config/i386/predicates.md (const359_operand): New.
4532
4533 2011-06-22 Michael Matz <matz@suse.de>
4534
4535 * cgraphunit.c (assemble_thunk): Use correct return type.
4536
4537 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
4538 Dmitry Melnik <dm@ispras.ru>
4539
4540 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
4541 (neon_output_shift_immediate): Ditto.
4542 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
4543 prototype.
4544 (neon_output_shift_immediate): Ditto.
4545 * config/arm/neon.md (vashl<mode>3): Modified constraint.
4546 (vashr<mode>3_imm): New insn pattern.
4547 (vlshr<mode>3_imm): Ditto.
4548 (vashr<mode>3): Modified constraint.
4549 (vlshr<mode>3): Ditto.
4550 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
4551 predicate.
4552 (imm_for_neon_rshift_operand): Ditto.
4553 (imm_lshift_or_reg_neon): Ditto.
4554 (imm_rshift_or_reg_neon): Ditto.
4555
4556 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
4557
4558 2011-06-22 Jakub Jelinek <jakub@redhat.com>
4559
4560 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
4561 builtin calls even if likelyvalue is not CONSTANT.
4562 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
4563 Return get_value_for_expr of first operand
4564 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
4565 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
4566 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
4567 their non-checking counterparts.
4568 (call_may_clobber_ref_p_1): Likewise.
4569 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
4570 like their non-checking counterparts.
4571 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4572 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
4573 like their non-checking counterparts.
4574 (find_func_clobbers): Likewise.
4575 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
4576 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
4577
4578 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
4579 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
4580 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
4581 of base type reference as argument.
4582 (resolve_addr_in_expr): Likewise. Fix keep computation.
4583 (convert_descriptor_to_signed): Renamed to...
4584 (convert_descriptor_to_mode): ... this. For wider types convert to
4585 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
4586 (typed_binop): New function.
4587 (scompare_loc_descriptor, ucompare_loc_descriptor,
4588 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
4589 default to unsigned type instead of signed.
4590
4591 PR debug/47858
4592 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
4593 (gimple_build_debug_source_bind_stat): New prototype.
4594 (gimple_build_debug_source_bind): Define.
4595 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
4596 gimple_debug_source_bind_get_value,
4597 gimple_debug_source_bind_get_value_ptr,
4598 gimple_debug_source_bind_set_var,
4599 gimple_debug_source_bind_set_value): New inlines.
4600 * gimple.c (gimple_build_debug_source_bind_stat): New function.
4601 * gimple-pretty-print.c (dump_gimple_debug): Handle
4602 GIMPLE_DEBUG_SOURCE_BIND.
4603 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
4604 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4605 * tree-parloops.c (eliminate_local_variables,
4606 separate_decls_in_region): Likewise.
4607 (separate_decls_in_region_debug): Renamed from
4608 separate_decls_in_region_debug_bind. Handle
4609 gimple_debug_source_bind_p.
4610 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
4611 prototypes.
4612 (DECL_HAS_DEBUG_ARGS_P): Define.
4613 (struct tree_function_decl): Add has_debug_args_flag field.
4614 * tree.c (debug_args_for_decl): New variable.
4615 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
4616 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
4617 (rewrite_debug_stmt_uses): New function.
4618 (rewrite_stmt): Use it to rewrite debug stmt uses.
4619 * rtl.def (DEBUG_PARAMETER_REF): New.
4620 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
4621 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
4622 DEBUG_PARAMETER_REF.
4623 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
4624 * print-rtl.c (print_rtx): Likewise.
4625 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
4626 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
4627 debug stmts in the first bb.
4628 * tree-inline.c (remap_ssa_name): If remapping default def
4629 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
4630 a source bind debug stmt.
4631 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
4632 (maybe_move_debug_stmts_to_successors): Likewise.
4633 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
4634 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
4635 debug args vector from old_decl to new_decl.
4636 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
4637 or modified parameters, add debug bind stmts before call
4638 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
4639 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
4640 on DECL_DEBUG_EXPRs from debug args vector.
4641 (expand_debug_source_expr): New function.
4642 (expand_debug_locations): Use it for source bind insns.
4643 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
4644 * var-tracking.c (prepare_call_arguments): Add debug args
4645 to call_arguments if any.
4646 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
4647 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
4648 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
4649 (get_ref_die_offset, parameter_ref_descriptor): New functions.
4650 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
4651 (gen_subprogram_die): Handle parameters identified by
4652 DEBUG_PARAMETER_REF.
4653
4654 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
4655
4656 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
4657 * doc/install.texi (Configuration): Document --with-tls.
4658 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
4659 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
4660 (arm_tls_descseq_addr): New.
4661 (legitimize_tls_address): Add tlsdesc support.
4662 (arm_cannot_copy_insn_p): Check for tlscall.
4663 (arm_emit_tls_decoration): Likewise.
4664 * config/arm/arm.h (TARGET_GNU2_TLS): New.
4665 (OPTION_DEFAULT_SPECS): Add with-tls support.
4666 * config/arm/arm.md (R1_REGNUM): Define.
4667 (tlscall): New.
4668 * config/arm/arm.opt (tls_type): New enumeration type and values.
4669 (mtls-dialect): New switch.
4670 * config/arm/arm-opts.h (enum tls_type): New.
4671
4672 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
4673
4674 * attribs.c (register_attribute): Added assert to check that all
4675 attribute specs are registered with a name that is not empty and
4676 does not start with '_'.
4677 (decl_attributes): Avoid the lookup of the "naked" attribute spec
4678 if the function has no attributes.
4679 * tree.c (is_attribute_with_length_p): Removed.
4680 (is_attribute_p): Removed.
4681 (private_is_attribute_p): New.
4682 (private_lookup_attribute): New.
4683 (lookup_attribute): Removed.
4684 (lookup_ident_attribute): New.
4685 (remove_attribute): Require the first argument to be in the form
4686 'text', not '__text__'. Updated asserts.
4687 (merge_attributes): Use lookup_ident_attributes instead of
4688 lookup_attribute.
4689 (merge_dllimport_decl_attributes): Use remove_attribute.
4690 (attribute_list_contained): Likewise.
4691 (attribute_list_equal): Immediately return 1 if the arguments are
4692 identical pointers.
4693 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
4694 'int'. Require the first argument to be in the form 'text', not
4695 '__text__'. Require the second argument to be an identifier.
4696 (lookup_attribute): Made inline. Require the first argument to be
4697 in the form 'text', not '__text__'.
4698 (private_is_attribute_p, private_lookup_attribute): New.
4699 Updated comments.
4700
4701 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
4702
4703 * builtins.c: Add sync_ or SYNC__ to builtin names.
4704 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
4705 * omp-low.c: Add sync_ or SYNC__ to builtin names.
4706
4707 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
4708
4709 PR target/33049
4710 * config/avr/avr.md (extzv): New expander.
4711 (*extzv): New insn.
4712 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
4713 * config/avr/constraints.md (C04): New constraint.
4714 * doc/md.texi (Machine Constraints): Document it.
4715
4716 2011-06-21 Jakub Jelinek <jakub@redhat.com>
4717
4718 PR middle-end/49489
4719 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
4720 unsignedp argument instead of 1 for clrsb_optab.
4721 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
4722 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
4723 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
4724 * optabs.c (widen_leading): Call widen_operand and expand_unop
4725 with 0 as unsignedp argument instead of 1 for clrsb_optab.
4726 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
4727
4728 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
4729
4730 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
4731
4732 2011-06-21 Bernd Schmidt <bernds@codesourcery.com>
4733
4734 * gensupport.c (add_define_attr): New static function.
4735 (is_predicable): Allow multi-alternative lists for the "predicable"
4736 attribute.
4737 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
4738 (process_one_cond_exec): Call alter_attrs_for_insn.
4739 * doc/md.texi (Defining Attributes): Mention some standard names.
4740 (Conditional Execution): Update documentation for "predicable".
4741
4742 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
4743 __builtin_clrsbll): Document.
4744 * doc/rtl.texi (clrsb): New entry.
4745 * optabs.c (widen_leading): Renamed from widen_clz. New argument
4746 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
4747 (expand_unop): Handle clrsb_optab.
4748 (init_optabs): Initialize it.
4749 * optabs.h (enum optab_index): New entry OTI_clrsb.
4750 (clrsb_optab): Define.
4751 * genopinit.c (optabs): Add an entry for it.
4752 * builtins.c (expand_builtin): Handle clrsb builtin functions.
4753 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
4754 BUILT_IN_CLRSBLL): New.
4755 * rtl.def (CLRSB): New code.
4756 * dwarf2out.c (mem_loc_descriptor): Handle it.
4757 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4758 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
4759 and popcount.
4760 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
4761 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
4762 (__ctzDI2): Move declaration.
4763 * config/bfin/bfin.md (clrsbsi2): New expander.
4764 (signbitssi2): Use the CLRSB rtx.
4765 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
4766 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
4767
4768 2011-06-21 Richard Guenther <rguenther@suse.de>
4769
4770 * ipa-inline-transform.c (inline_transform): Fix previous change.
4771
4772 2011-06-21 Ira Rosen <ira.rosen@linaro.org>
4773
4774 PR tree-optimization/49478
4775 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
4776 with constant operand.
4777
4778 2011-06-21 Richard Guenther <rguenther@suse.de>
4779
4780 * ipa-inline-transform.c (inline_transform): Fix typo.
4781
4782 2011-06-21 Richard Guenther <rguenther@suse.de>
4783
4784 PR tree-optimization/49483
4785 * tree-vect-stmts.c (vectorizable_assignment): Also handle
4786 VIEW_CONVERT_EXPR conversions.
4787
4788 2011-06-21 Joseph Myers <joseph@codesourcery.com>
4789
4790 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
4791 * config/avr/avr-tables.opt: New file (generated).
4792 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
4793 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
4794 avr-mcus.def.
4795 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
4796 (avr_option_override): Don't process -mmcu= argument here. Set
4797 avr_current_device using avr_mcu_index.
4798 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
4799 * config/avr/avr.opt (mmcu=): Use Enum.
4800 * config/avr/t-avr (avr-devices.o): Update dependencies.
4801 ($(srcdir)/config/avr/avr-tables.opt): New.
4802 * target.def (help): Remove.
4803 * doc/tm.texi.in (TARGET_HELP): Remove.
4804 * doc/tm.texi: Regenerate.
4805 * opts.c: Don't include target.h.
4806 (common_handle_option): Don't call targetm.help.
4807 * system.h (TARGET_HELP): Poison.
4808 * Makefile.in (opts.o): Update dependencies.
4809
4810 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4811
4812 * config/usegld.h: New file.
4813 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
4814 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
4815 (LIB_SPEC): Likewise. Search /lib.
4816 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
4817 (RDYNAMIC_SPEC): Handle GNU ld.
4818 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
4819 Define.
4820 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
4821 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
4822 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
4823 (STACK_CHECK_STATIC_BUILTIN): Define.
4824 * config/sol2.opt (compat-bsd): Remove.
4825 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
4826 * config/sol2-bi.h: New file.
4827 * config/sol2-gld.h: Remove.
4828 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
4829 (NO_DBX_BNSYM_ENSYM): Remove.
4830 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4831 (STACK_CHECK_STATIC_BUILTIN): Remove.
4832 Test USE_GLD instead of TARGET_GNU_LD.
4833 * config/i386/sol2-10.h: Rename to ...
4834 * config/i386/sol2-bi.h .. this.
4835 (SUBTARGET_EXTRA_SPECS): Redefine.
4836 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
4837 (MULTILIB_DEFAULTS): Remove.
4838 (DEFAULT_ARCH32_P): Define.
4839 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
4840 (ARCH64_SUBDIR): Define.
4841 Test USE_GLD instead of TARGET_GNU_LD.
4842 (I386_EMULATION): Rename to ...
4843 (ARCH32_EMULATION): ... this.
4844 (X86_64_EMULATION): Rename to ...
4845 (ARCH64_EMULATION): ... this.
4846 (TARGET_LD_EMULATION): Remove.
4847 (LINK_ARCH_SPEC): Remove.
4848 * config/i386/sol2-gas.h: Remove.
4849 * config/i386/t-sol2-10: Rename to ...
4850 * config/i386/t-sol2-64: ... this.
4851 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
4852 (AS_SPARC64_FLAG): Define.
4853 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
4854 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
4855 depending on TARGET_CPU_DEFAULT.
4856 (CPP_CPU_SPEC): Redefine.
4857 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
4858 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
4859 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
4860 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
4861 ASM_ARCH_DEFAULT_SPEC): Redefine.
4862 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4863 LINK_ARCH_DEFAULT_SPEC.
4864 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
4865 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
4866 (ARCH64_SUBDIR): Define.
4867 (LINK_ARCH64_SPEC): Redefine.
4868 (CC1_SPEC): Redefine.
4869 (OPTION_DEFAULT_SPECS): Redefine.
4870 (MULTILIB_DEFAULTS): Define.
4871 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
4872 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
4873 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
4874 (NO_DBX_BNSYM_ENSYM): Remove.
4875 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
4876 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
4877 (TARGET_ASM_NAMED_SECTION): Likewise.
4878 (STACK_CHECK_STATIC_BUILTIN): Remove.
4879 * config/sparc/sol2-bi.h: Remove.
4880 * config/sparc/sol2-gas-bi.h: Remove.
4881 * config/sparc/sol2-gas.h: Remove.
4882 * config/sparc/sol2-gld-bi.h: Remove.
4883 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
4884 common parts ...
4885 (*-*-solaris2*): ... here.
4886
4887 2011-06-21 Christian Bruel <christian.bruel@st.com>
4888
4889 PR other/43564
4890 * ipa-inline.c (can_inline_edge_p): Check
4891 !DECL_DISREGARD_INLINE_LIMITS.
4892
4893 2011-06-21 Christian Bruel <christian.bruel@st.com>
4894
4895 PR middle-end/49139
4896 * cgraphunit.c (process_function_and_variable_attributes): warn when
4897 always_inline functions that are not inline.
4898 * ipa-inline-transform.c (inline_transform): Always call
4899 optimize_inline.
4900 * tree-inline.c (tree_inlinable_function_p): Use error instead
4901 of sorry.
4902 (expand_call_inline): Likewise.
4903
4904 2011-06-21 Jakub Jelinek <jakub@redhat.com>
4905
4906 * Makefile.in (dg_target_exps): Set.
4907 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
4908 instead of 7, try to divide it more evenly.
4909
4910 2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
4911
4912 PR target/49089
4913 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
4914 (avx256_split_unaligned_store): New definition.
4915 (ix86_option_override_internal): Enable avx256 unaligned load/store
4916 splitting only when avx256_split_unaligned_load/store is set.
4917
4918 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4919
4920 * regrename.c (scan_rtx_reg): Handle the case where we write to an
4921 open chain in a smaller mode without failing the entire block.
4922
4923 2011-06-21 Alan Modra <amodra@gmail.com>
4924
4925 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
4926 CONST high part large-toc address.
4927 (rs6000_tls_referenced_p): Make static.
4928 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
4929
4930 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4931
4932 PR target/49385
4933 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
4934 one of the operands is a register.
4935
4936 2011-06-20 Kai Tietz <ktietz@redhat.com>
4937
4938 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
4939 operations in combination with binary and.
4940
4941 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
4942
4943 * regrename.c (do_replace): Don't update notes.
4944
4945 2011-06-20 Alan Modra <amodra@gmail.com>
4946
4947 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
4948 of toc-relative address in CONST.
4949 (rs6000_delegitimize_address): Recognize changed address.
4950 (rs6000_legitimize_reload_address): Likewise.
4951 (rs6000_emit_move): Don't force these constants to memory.
4952 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
4953 toc-relative address in CONST.
4954 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
4955 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
4956
4957 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4958
4959 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
4960 (count_trailing_zeros): Likewise.
4961
4962 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
4963
4964 PR other/49325
4965 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
4966 .init_array can be used with .ctors on targets.
4967 * configure: Regenerated.
4968
4969 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
4970
4971 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
4972 if the element type is volatile.
4973
4974 2011-06-18 Jan Hubicka <jh@suse.cz>
4975
4976 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
4977 extra name aliases.
4978 (lto_symtab_resolve_can_prevail_p): Likewise.
4979 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
4980 * cgraphbuild.c (record_reference): Remove extra body alias code.
4981 (mark_load): Likewise.
4982 (mark_store): Likewise.
4983 * cgraph.h (varpool_node): Remove extra_name filed;
4984 add alias_of and extraname_alias.
4985 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
4986 (varpool_alias_aliased_node): New inline function.
4987 (varpool_variable_node): New function.
4988 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
4989 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
4990 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
4991 (input_varpool_node): Likewise.
4992 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
4993 (varpool_externally_visible_p): Remove extra body alias code.
4994 (function_and_variable_visibility): Likewise.
4995 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
4996 (ipa_pta_execute): Use it.
4997 * varpool.c (varpool_remove_node): Remove extra name alias code.
4998 (varpool_mark_needed_node): Likewise.
4999 (varpool_analyze_pending_decls): Analyze aliases.
5000 (assemble_aliases): New functoin.
5001 (varpool_assemble_decl): Use it.
5002 (varpool_create_variable_alias): New function.
5003 (varpool_extra_name_alias): Rewrite.
5004 (varpool_for_node_and_aliases): New function.
5005
5006 2011-06-18 Jakub Jelinek <jakub@redhat.com>
5007
5008 PR target/49411
5009 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
5010 last_arg_constant and last argument doesn't match its predicate,
5011 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
5012 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
5013 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
5014 spelling of error message.
5015 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
5016 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
5017 const_0_to_255_operand instead of const_int_operand.
5018
5019 Revert:
5020 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
5021
5022 * config/i386/sse.md (blendbits): Remove mode attribute.
5023 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
5024 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
5025 Check integer value of operand 3 in insn constraint.
5026
5027 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
5028
5029 PR rtl-optimization/48542
5030 * reload.c (find_equiv_reg): Stop looking when finding a
5031 setjmp-type call.
5032 * reload1.c (reload_as_needed): Invalidate all reload
5033 registers when crossing a setjmp-type call.
5034
5035 2011-06-16 Jeff Law <law@redhat.com>
5036
5037 * tree-ssa-threadupdate.c (struct redirection_data): New field
5038 intermediate_edge.
5039 (THREAD_TARGET2): Define.
5040 (redirection_data_eq): Also check that the intermediate edge is equal.
5041 (lookup_redirection_data): Drop useless argument. Extract the
5042 outgoing_edge and intermediate edge from E. Callers updated.
5043 (copy_phi_args, update_destination_phis): New functions.
5044 (fix_duplicate_block_edges): Likewise.
5045 (create_edge_and_update_destination_phis): Duplicate all the edges
5046 hung off e->aux. Use copy_phi_args.
5047 (create_duplicates): Use fix_duplicate_block_edges.
5048 (fixup_template_block): Likewise.
5049 (redirect_edges): If necessary, redirect the joiner block's incoming
5050 edge to the duplicate of the joiner block.
5051 (thread_block): Don't muck up loops when threading through a joiner
5052 block.
5053 (thread_through_loop_header): Handle threading through a joiner block.
5054 (mark_threaded_blocks, register_jump_thread): Likewise.
5055 * tree-flow.h (register_jump_thread): Add new argument. Callers
5056 updated.
5057 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
5058 (thread_across_edge): Handle threading through a joiner block.
5059
5060 2011-06-16 Martin Jambor <mjambor@suse.cz>
5061
5062 PR tree-optimization/49343
5063 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
5064 calculate offset, provide 2nd operand for the new COMPONENT_REF.
5065
5066 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
5067
5068 * config/darwin-protos.h (machopic_select_rtx_section): Move to
5069 inside RTX_CODE ifdef.
5070
5071 2011-06-16 Tom de Vries <tom@codesourcery.com>
5072
5073 PR target/45098
5074 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
5075 Disallow NULL pointer for pointer arithmetic.
5076
5077 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5078
5079 PR target/49398
5080 Revert.
5081 2011-06-10 Wei Guozhi <carrot@google.com>
5082
5083 PR target/45335
5084 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
5085 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
5086 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
5087 related peephole2.
5088 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
5089 related peephole2.
5090 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
5091 (arm_legitimate_ldrd_p): New prototype.
5092 (arm_output_ldrd): New prototype.
5093 * config/arm/arm.c (arm_check_ldrd_operands): New function.
5094 (arm_legitimate_ldrd_p): New function.
5095 (arm_output_ldrd): New function.
5096
5097 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
5098
5099 PR middle-end/46500
5100 * doc/tm.texi.in: Update Copyright date.
5101 * doc/tm.texi: Regenerate.
5102 * targhooks.c (default_setup_incoming_varargs): Replace
5103 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5104 (default_pretend_outgoing_varargs_named): Likewise.
5105 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5106 (hook_callee_copies_named): Likewise.
5107 (default_function_arg_advance): Likewise.
5108 (default_function_arg): Likewise.
5109 (default_function_incoming_arg): Likewise.
5110 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5111 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5112 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5113 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5114 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5115 * targhooks.h (default_setup_incoming_varargs): Likewise.
5116 (default_pretend_outgoing_varargs_named): Likewise.
5117 (hook_pass_by_reference_must_pass_in_stack): Likewise.
5118 (hook_callee_copies_named): Likewise.
5119 (default_function_arg_advance): Likewise.
5120 (default_function_arg): Likewise.
5121 (default_function_incoming_arg): Likewise.
5122 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
5123 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
5124 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
5125 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
5126 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
5127 * target.def (pass_by_reference): Likewise.
5128 (setup_incoming_varargs, strict_argument_naming): Likewise.
5129 (pretend_outgoing_varargs_named, callee_copies): Likewise.
5130 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
5131 (function_incoming_arg): Likewise.
5132 * target.h: Don't include "tm.h" .
5133 (cumulative_args_t): New typedef.
5134 [GCC_TM_H] (get_cumulative_args): New static inline function.
5135 [GCC_TM_H] (pack_cumulative_args): Likewise.
5136 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
5137 argument type with cumulative_args_t.
5138 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
5139 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
5140 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
5141 (frv_arg_partial_bytes, frv_function_arg): Likewise.
5142 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
5143 (frv_function_arg_1): Likewise.
5144 * config/s390/s390.c (s390_pass_by_reference): Likewise.
5145 (s390_function_arg_advance, s390_function_arg): Likewise.
5146 * config/m32c/m32c.c (m32c_function_arg): Likewise.
5147 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
5148 (m32c_strict_argument_naming): Likewise.
5149 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
5150 (spu_function_arg_advance): Likewise.
5151 (spu_setup_incoming_varargs): Likewise. Make static.
5152 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
5153 Remove prototype.
5154 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
5155 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5156 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
5157 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
5158 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
5159 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
5160 (mep_pass_by_reference, mep_function_arg): Likewise.
5161 (mep_function_arg_advance): Likewise.
5162 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
5163 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
5164 (m32r_function_arg, m32r_function_arg_advance): Likewise.
5165 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
5166 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
5167 (ix86_function_arg, ix86_pass_by_reference): Likewise.
5168 (ix86_setup_incoming_varargs): Likewise.
5169 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
5170 (sh_strict_argument_naming): Likewise.
5171 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
5172 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
5173 (sh_function_arg_advance, sh_function_arg): Likewise.
5174 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
5175 (pdp11_function_arg_advance): Likewise.
5176 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
5177 Likewise.
5178 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
5179 * config/avr/avr.c (avr_function_arg): Likewise.
5180 (avr_function_arg_advance): Likewise.
5181 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
5182 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
5183 (xtensa_function_arg_1): Likewise.
5184 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
5185 Likewise.
5186 (xstormy16_function_arg): Likewise.
5187 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
5188 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
5189 (fr30_function_arg_advance): Likewise.
5190 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
5191 (lm32_function_arg, lm32_function_arg_advance): Likewise.
5192 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
5193 (moxie_function_arg, moxie_function_arg_advance): Likewise.
5194 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
5195 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
5196 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
5197 (cris_function_arg, cris_function_incoming_arg): Likewise.
5198 (cris_function_arg_advance, cris_function_arg_1): Likewise.
5199 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
5200 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
5201 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
5202 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
5203 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
5204 (mn10300_arg_partial_bytes): Likewise.
5205 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
5206 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
5207 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
5208 (ia64_function_arg_1): Likewise.
5209 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
5210 (m68k_function_arg): Likewise.
5211 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
5212 (rs6000_function_arg, setup_incoming_varargs): Likewise.
5213 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
5214 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
5215 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
5216 (picochip_arg_advance): Likewise.
5217 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
5218 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
5219 (mcore_function_arg_advance): Likewise.
5220 * config/score/score.c (score_pass_by_reference): Likewise.
5221 (score_function_arg_advance): Likewise.
5222 (score_arg_partial_bytes): Likewise. Make static.
5223 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
5224 * config/arm/arm.c (arm_arg_partial_bytes): Replace
5225 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5226 (arm_function_arg, arm_function_arg_advance): Likewise.
5227 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
5228 * config/pa/pa.c (pa_pass_by_reference): Likewise.
5229 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
5230 (pa_function_arg): Likewise.
5231 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
5232 (mips_function_arg, mips_function_arg_advance): Likewise.
5233 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
5234 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
5235 * config/vax/vax.c (vax_function_arg): Likewise.
5236 (vax_function_arg_advance): Likewise.
5237 * config/h8300/h8300.c (h8300_function_arg): Likewise.
5238 (h8300_function_arg_advance): Likewise.
5239 * config/v850/v850.c (v850_pass_by_reference): Likewise.
5240 (v850_strict_argument_naming, v850_function_arg): Likewise.
5241 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
5242 (v850_setup_incoming_varargs): Likewise.
5243 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
5244 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
5245 (mmix_function_arg, mmix_pass_by_reference): Likewise.
5246 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
5247 with const void *.
5248 * config/bfin/bfin.c (setup_incoming_varargs): Replace
5249 CUMULATIVE_ARGS* argument type with cumulative_args_t.
5250 (bfin_function_arg_advance, bfin_function_arg): Likewise.
5251 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
5252 * calls.c (emit_call_1): Change type of args_so_far to
5253 cumulative_args_t. Changed all callers.
5254 (initialize_argument_information): Likewise.
5255 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
5256 * dse.c (get_call_args): Likewise.
5257 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
5258 * function.c (pass_by_reference, reference_callee_copied): Likewise.
5259 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
5260 New member args_so_far_v. Changed all users.
5261 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
5262 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5263 * config/mips/mips.c (mips_output_args_xfer): Likewise.
5264 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
5265 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5266 * config/microblaze/microblaze.c (microblaze_expand_prologue):
5267 Likewise.
5268 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
5269 m32r_pass_by_reference.
5270
5271 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
5272
5273 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
5274 argument to be a VEC of statements.
5275 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
5276 assert that pattern statements have to have their vector type set.
5277 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
5278 Change the first argument to be a VEC of statements. Update
5279 documentation.
5280 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
5281 (vect_handle_widen_mult_by_const): New function.
5282 (vect_recog_widen_mult_pattern): Change the first argument to be a
5283 VEC of statements. Update documentation. Check that the constant is
5284 INTEGER_CST. Support multiplication by a constant that fits an
5285 intermediate type - call vect_handle_widen_mult_by_const.
5286 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
5287 call. Handle additional pattern statements if necessary.
5288
5289 2011-06-16 Nick Clifton <nickc@redhat.com>
5290
5291 PR target/49427
5292 * config.gcc: Set cpu_type to v850 for any V850 architecture.
5293 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
5294 md_file, extra_modes, out_file and extra_options are these are all
5295 deduced from cpu_type.
5296
5297 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
5298
5299 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
5300 truncation mask to 63.
5301
5302 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
5303
5304 PR target/49313
5305 PR target/29524
5306 * longlong.h: Add AVR support:
5307 (count_leading_zeros): New macro.
5308 (count_trailing_zeros): New macro.
5309 (COUNT_LEADING_ZEROS_0): New macro.
5310 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
5311 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
5312 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
5313 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
5314 (LIB2FUNCS_EXCLUDE): Add _clz.
5315 * config/avr/libgcc.S (XCALL): Move up in file.
5316 (XJMP): New C Macro.
5317 (DEFUN): New asm macro.
5318 (ENDF): New asm macro.
5319 (__ffssi2): New function.
5320 (__ffshi2): New function.
5321 (__loop_ffsqi2): New function.
5322 (__ctzsi2): New function.
5323 (__ctzhi2): New function.
5324 (__clzdi2): New function.
5325 (__clzsi2): New function.
5326 (__clzhi2): New function.
5327 (__paritydi2): New function.
5328 (__paritysi2): New function.
5329 (__parityhi2): New function.
5330 (__parityqi2): New function.
5331 (__popcounthi2): New function.
5332 (__popcountsi2): New function.
5333 (__popcountdi2): New function.
5334 (__popcountqi2): New function.
5335 (__bswapsi2): New function.
5336 (__bswapdi2): New function.
5337 (__ashldi3): New function.
5338 (__ashrdi3): New function.
5339 (__lshrdi3): New function.
5340 Fix suspicous lines.
5341
5342 2011-06-16 Richard Guenther <rguenther@suse.de>
5343
5344 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
5345 the same as x != 0.
5346 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
5347 to (bool) X & 1.
5348 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
5349 equality compares against zero for the lower bit.
5350
5351 2011-06-16 Jakub Jelinek <jakub@redhat.com>
5352
5353 PR tree-optimization/49419
5354 * tree-vrp.c (execute_vrp): Call init_range_assertions
5355 before estimate_numbers_of_iterations, call
5356 free_number_of_iterations_estimates before calling
5357 remove_range_assertions.
5358
5359 2011-06-16 Revital Eres <revital.eres@linaro.org>
5360
5361 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
5362 (struct partial_schedule): Add rows_length field.
5363 (verify_partial_schedule): Check rows_length.
5364 (ps_insert_empty_row): Handle rows_length.
5365 (create_partial_schedule): Likewise.
5366 (free_partial_schedule): Likewise.
5367 (reset_partial_schedule): Likewise.
5368 (create_ps_insn): Remove rest_count argument.
5369 (remove_node_from_ps): Update rows_length.
5370 (add_node_to_ps): Update rows_length and call create_ps_insn
5371 without passing row_rest_count.
5372 (rotate_partial_schedule): Update rows_length.
5373
5374 2011-06-16 Revital Eres <revital.eres@linaro.org>
5375
5376 * ddg.c (add_intra_loop_mem_dep): New function.
5377 (build_intra_loop_deps): Call it.
5378
5379 2011-06-13 Jeff Law <law@redhat.com>
5380
5381 * df-problems.c (df_lr_local_compute): Manually CSE
5382 PIC_OFFSET_TABLE_REGNUM.
5383 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
5384 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
5385
5386 2011-06-13 Jan Hubicka <jh@suse.cz>
5387
5388 * cgraphunit.c (handle_alias_pairs): New function.
5389 (cgraph_finalize_compilation_unit): Use it.
5390 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
5391 as externally visible.
5392
5393 2011-06-15 Richard Guenther <rguenther@suse.de>
5394
5395 * expr.c (expand_expr_real_2): Reduce all integral types to
5396 bitfield precision.
5397 (expand_expr_real_1): Likewise.
5398
5399 2011-06-15 Martin Jambor <mjambor@suse.cz>
5400
5401 PR tree-optimization/48613
5402 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
5403 ipa_node_params_vector is NULL.
5404
5405 2011-06-15 Jakub Jelinek <jakub@redhat.com>
5406
5407 PR debug/49382
5408 * dwarf2out.c (dw_loc_list_node): Add force field.
5409 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
5410 location in the list, even if it is modified before first real insn.
5411 (output_loc_list): Emit empty ranges with force flag set.
5412 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
5413
5414 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
5415
5416 PR target/49349
5417 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
5418 (fence_to_rewind). Use it to notice when bookkeeping will be placed
5419 above a fence. Update comments.
5420 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
5421 placed just above it. Do not allow NULL place_to_insert.
5422
5423 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
5424
5425 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
5426 (slpeel_tree_peel_loop_to_edge): Don't call
5427 remove_dead_stmts_from_loop.
5428 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5429 remove irrelevant pattern statements. For irrelevant statements
5430 check if it is the last statement of a detected pattern, use
5431 corresponding pattern statement instead.
5432 (destroy_loop_vec_info): No need to remove pattern statements,
5433 only free stmt_vec_info.
5434 (vect_transform_loop): For irrelevant statements check if it is
5435 the last statement of a detected pattern, use corresponding
5436 pattern statement instead.
5437 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
5438 pattern statements. Set basic block for the new statement.
5439 (vect_pattern_recog): Update documentation.
5440 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
5441 operands of pattern statements.
5442 (vectorizable_call): Fix printing. In case of a pattern statement
5443 use the lhs of the original statement when creating a dummy
5444 statement to replace the original call.
5445 (vect_analyze_stmt): For irrelevant statements check if it is
5446 the last statement of a detected pattern, use corresponding
5447 pattern statement instead.
5448 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
5449 statements use gsi of the original statement.
5450
5451 2011-06-14 Joseph Myers <joseph@codesourcery.com>
5452
5453 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
5454 common/common-target-def.h.
5455 * target.def (default_target_flags, handle_option,
5456 supports_split_stack, optimization_table, init_struct,
5457 except_unwind_info, unwind_tables_default, have_named_sections):
5458 Move to common/common-target.def.
5459 * target.h (enum opt_levels, struct default_options): Move to
5460 common/common-target.h.
5461 * targhooks.c (default_except_unwind_info,
5462 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5463 default_target_handle_option, empty_optimization_table): Move to
5464 common/common-targhooks.c.
5465 * targhooks.h (default_except_unwind_info,
5466 dwarf2_except_unwind_info, sjlj_except_unwind_info,
5467 default_target_handle_option, empty_optimization_table): Move to
5468 common/common-targhooks.h.
5469 * common/common-target-def.h: Include common/common-targhooks.h.
5470 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
5471 defined.
5472 * common/common-target.def (handle_option, option_init_struct,
5473 option_optimization_table, default_target_flags,
5474 except_unwind_info, supports_split_stack, unwind_tables_default,
5475 have_named_sections): Move from target.def.
5476 (HOOK_PREFIX): Undefine at end of file.
5477 * common/common-target.h: Include input.h.
5478 (enum opt_levels, struct default_options): Move from target.h.
5479 * common/common-targhooks.c, common/common-targhooks.h: New.
5480 * config.gcc (target_has_targetm_common): Default to yes.
5481 (moxie*): Set target_has_targetm_common=no.
5482 (hppa*-*-*): Don't set target_has_targetm_common=yes.
5483 * doc/tm.texi: Regenerate.
5484 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
5485 (C_TARGET_DEF_H): Add common/common-targhooks.h.
5486 (GCC_OBJS): Remove vec.o.
5487 (OBJS): Remove hooks.o and vec.o.
5488 (OBJS-libcommon-target): Add vec.o, hooks.o and
5489 common/common-targhooks.o.
5490 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
5491 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
5492 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
5493 cfglayout.o, $(out_object_file), $(common_out_object_file)):
5494 Update dependencies.
5495 (common/common-targhooks.o): New.
5496 * common/config/default-common.c: Include tm.h. Add FIXME comment.
5497 * common/config/pa/pa-common.c: Include more headers. Take
5498 copyright dates from pa.c.
5499 (pa_option_optimization_table, pa_handle_option,
5500 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
5501 TARGET_HANDLE_OPTION): Move from pa.c.
5502 * common/config/alpha/alpha-common.c,
5503 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
5504 common/config/bfin/bfin-common.c,
5505 common/config/cris/cris-common.c,
5506 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
5507 common/config/h8300/h8300-common.c,
5508 common/config/i386/i386-common.c,
5509 common/config/ia64/ia64-common.c,
5510 common/config/iq2000/iq2000-common.c,
5511 common/config/lm32/lm32-common.c,
5512 common/config/m32c/m32c-common.c,
5513 common/config/m32r/m32r-common.c,
5514 common/config/m68k/m68k-common.c,
5515 common/config/mcore/mcore-common.c,
5516 common/config/mep/mep-common.c,
5517 common/config/microblaze/microblaze-common.c,
5518 common/config/mips/mips-common.c,
5519 common/config/mmix/mmix-common.c,
5520 common/config/mn10300/mn10300-common.c,
5521 common/config/pdp11/pdp11-common.c,
5522 common/config/picochip/picochip-common.c,
5523 common/config/rs6000/rs6000-common.c,
5524 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
5525 common/config/score/score-common.c, common/config/sh/sh-common.c,
5526 common/config/sparc/sparc-common.c,
5527 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
5528 common/config/vax/vax-common.c,
5529 common/config/xstormy16/xstormy16-common.c,
5530 common/config/xtensa/xtensa-common.c: New.
5531 * config/alpha/alpha.c: Include common/common-target.h.
5532 (alpha_option_optimization_table, alpha_handle_option,
5533 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5534 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
5535 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
5536 * config/arm/arm.c (arm_option_optimization_table,
5537 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5538 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
5539 arm-common.c.
5540 * config/avr/avr.c (avr_option_optimization_table,
5541 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5542 to avr-common.c.
5543 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
5544 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
5545 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
5546 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
5547 * config/cris/cris.c (cris_option_optimization_table,
5548 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5549 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
5550 cris-common.c.
5551 * config/fr30/fr30.c (fr30_option_optimization_table,
5552 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
5553 to fr30-common.c.
5554 * config/frv/frv.c (frv_option_optimization_table,
5555 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
5556 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
5557 * config/h8300/h8300.c (h8300_option_optimization_table,
5558 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5559 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
5560 * config/i386/i386-protos.h (ix86_handle_option): Declare.
5561 * config/i386/i386.c: Include common/common-target.h.
5562 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
5563 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
5564 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
5565 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
5566 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
5567 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
5568 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
5569 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
5570 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
5571 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
5572 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
5573 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
5574 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
5575 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
5576 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
5577 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
5578 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
5579 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
5580 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
5581 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
5582 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
5583 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
5584 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
5585 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
5586 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
5587 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
5588 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
5589 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
5590 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
5591 ix86_option_optimization_table, ix86_option_init_struct,
5592 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
5593 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5594 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
5595 i386-common.c.
5596 * config/i386/t-i386 (i386.o): Update dependencies.
5597 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
5598 * config/ia64/ia64.c (ia64_option_optimization_table,
5599 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5600 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5601 ia64_handle_option): Move to ia64-common.c.
5602 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
5603 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
5604 * config/lm32/lm32.c (lm32_option_optimization_table,
5605 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
5606 to lm32-common.c.
5607 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
5608 m32c-common.c.
5609 * config/m32r/m32r.c (m32r_option_optimization_table,
5610 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5611 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
5612 m32r_handle_option): Move to m32r-common.c.
5613 (m32r_memory_move_cost): Remove comment referring to
5614 TARGET_HANDLE_OPTION.
5615 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
5616 Move to m68k-common.c.
5617 * config/mcore/mcore.c (mcore_option_optimization_table,
5618 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5619 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
5620 * config/mep/mep.c (mep_option_optimization_table,
5621 mep_handle_option, TARGET_HANDLE_OPTION,
5622 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
5623 Move to mep-common.c.
5624 * config/microblaze/microblaze.c
5625 (microblaze_option_optimization_table,
5626 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
5627 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
5628 * config/mips/mips.c (mips_handle_option,
5629 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5630 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
5631 mips-common.c.
5632 * config/mmix/mmix.c (mmix_option_optimization_table,
5633 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5634 Move to mmix-common.c.
5635 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
5636 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
5637 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5638 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
5639 * config/pa/pa.c: Include common/common-target.h.
5640 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
5641 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5642 pa_handle_option): Move to pa-common.c.
5643 (pa_option_override): Use targetm_common.except_unwind_info.
5644 (pa_asm_output_mi_thunk, pa_function_section): Use
5645 targetm_common.have_named_sections.
5646 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
5647 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5648 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5649 pdp11_handle_option, pdp11_option_init_struct): Move to
5650 pdp11-common.c.
5651 * config/picochip/picochip.c (picochip_option_optimization_table,
5652 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
5653 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
5654 * config/rs6000/rs6000.c: Include common/common-target.h.
5655 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
5656 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
5657 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
5658 rs6000_handle_option): Move to rs6000-common.c.
5659 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5660 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
5661 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5662 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
5663 * config/s390/s390.c (processor_flags_table,
5664 s390_option_optimization_table, s390_option_init_struct,
5665 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
5666 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
5667 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
5668 * config/s390/s390.h (processor_flags_table): Declare.
5669 * config/score/score.c (score_option_optimization_table,
5670 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5671 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
5672 score_handle_option): Move to score-common.c.
5673 * config/sh/sh.c (sh_option_optimization_table,
5674 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
5675 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
5676 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
5677 * config/sparc/sparc.c: Include common/common-target.h.
5678 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5679 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
5680 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
5681 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
5682 spu_option_init_struct): Move to spu-common.c.
5683 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
5684 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
5685 * config/v850/v850.c (small_memory_physical_max,
5686 v850_handle_memory_optionn v850_handle_option,
5687 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
5688 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
5689 v850-common.c.
5690 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
5691 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
5692 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
5693 Move to xtensa-common.c.
5694 * cfglayout.c: Include common/common-target.h.
5695 (fixup_reorder_chain): Use targetm_common.have_named_sections.
5696 * cfgrtl.c: Include common/common-target.h.
5697 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
5698 targetm_common.have_named_sections.
5699 * dbxout.c: Include common/common-target.h.
5700 (dbxout_function_end): Use targetm_common.have_named_sections.
5701 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
5702 targetm_common.except_unwind_info.
5703 * dwarf2out.c: Include common/common-target.h.
5704 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
5705 dwarf2out_begin_prologue, dwarf2out_frame_init,
5706 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
5707 targetm_common.except_unwind_info.
5708 * except.c: Include common/common-target.h.
5709 (init_eh, finish_eh_generation,
5710 output_one_function_exception_table): Use
5711 targetm_common.except_unwind_info.
5712 (switch_to_exception_section): Use targetm_common.have_named_sections.
5713 * explow.c: Include common/common-target.h.
5714 * expr.c: Include common/common-target.h.
5715 (build_personality_function): Use targetm_common.except_unwind_info.
5716 * function.c: Include common/common-target.h.
5717 (expand_function_end): Use targetm_common.except_unwind_info.
5718 * haifa-sched.c: Include common/common-target.h.
5719 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
5720 * lto-opts.c: Include common/common-target.h instead of target.h.
5721 (lto_reissue_options): Use targetm_common.handle_option.
5722 * opts.c: Include common/common-target.h.
5723 (target_handle_option): Use targetm_common.handle_option.
5724 (init_options_struct): Update comment referring to
5725 targetm.target_option.optimization. Use
5726 targetm_common.default_target_flags,
5727 targetm_common.unwind_tables_default and
5728 targetm_common.option_init_struct.
5729 (default_options_optimization): Use
5730 targetm_common.option_optimization_table.
5731 (finish_options): Use targetm_common.except_unwind_info,
5732 targetm_common.unwind_tables_default,
5733 targetm_common.have_named_sections and
5734 targetm_common.supports_split_stack.
5735 * toplev.c: Include common/common-target.h.
5736 (process_options): Use targetm_common.have_named_sections.
5737 * tree-tailcall.c: Include common/common-target.h.
5738 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
5739 * tree.c: Include common/common-target.h.
5740 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
5741 * varasm.c: Include common/common-target.h.
5742 (resolve_unique_section, hot_function_section,
5743 default_function_section): Use targetm_common.have_named_sections.
5744
5745 2011-06-14 Easwaran Raman <eraman@google.com>
5746
5747 PR rtl-optimization/44194
5748 * dse.c: Include tree-flow.h
5749 (insn_info): Add new field non_frame_wild_read.
5750 (group_info): Add new fields escaped_n and escaped_p.
5751 (kill_on_calls): New variable.
5752 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
5753 (dse_step0): Initialize kill_on_calls.
5754 (can_escape): New function.
5755 (set_usage_bits): Add additional parameter; record information
5756 about escaped locations.
5757 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
5758 (dse_step2_nospill): Set kill_on_calls based on
5759 group->escaped_n and group->escaped_n.
5760 (add_wild_read): Refactor into...
5761 (reset_active_stores): ... New function, and
5762 (free_read_records): ... New function.
5763 (add_non_frame_wild_read): New function.
5764 (scan_insn): Call add_non_frame_wild_read on non-const calls.
5765 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
5766 (dse_step5_nospill): Call scan_reads_nospill for instructions
5767 marked as non_frame_wild_read.
5768 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
5769
5770 2011-06-14 Joseph Myers <joseph@codesourcery.com>
5771
5772 * common/common-target-def.h, common/common-target.def,
5773 common/common-target.h, common/config/default-common.c,
5774 common/config/pa/pa-common.c: New files.
5775 * Makefile.in (common_out_file, common_out_object_file,
5776 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
5777 (OBJS-libcommon-target): Include $(common_out_object_file).
5778 (prefix.o): Update dependencies.
5779 ($(common_out_object_file), common/common-target-hooks-def.h,
5780 s-common-target-hooks-def-h): New.
5781 (s-tm-texi): Also check timestamp on common-target.def.
5782 (build/genhooks.o): Update dependencies.
5783 * config.gcc (common_out_file, target_has_targetm_common): Define.
5784 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
5785 TARGET_ALWAYS_STRIP_DOTDOT.
5786 * configure.ac (common_out_object_file): Define.
5787 (common_out_file, common_out_object_file): Substitute.
5788 (common): Create directory.
5789 * configure: Regenerate.
5790 * doc/tm.texi.in (targetm_common): Document.
5791 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
5792 * doc/tm.texi: Regenerate.
5793 * genhooks.c (hook_array): Also include common/common-target.def.
5794 * prefix.c (tm.h): Don't include.
5795 (common/common-target.h): Include.
5796 (ALWAYS_STRIP_DOTDOT): Don't define.
5797 (update_path): Use targetm_common.always_strip_dotdot instead of
5798 ALWAYS_STRIP_DOTDOT.
5799 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
5800
5801 2011-06-14 David Li <davidxl@google.com>
5802
5803 * passes.c (execute_function_todo): Remove TODO_dump_func.
5804 (execute_one_pass): Remove TODO_dump_func.
5805 (execute_function_dump): New function.
5806 * tree-vrp.c: Remove TODO_dump_func.
5807 * regrename.c: Remove TODO_dump_func.
5808 * fwprop.c: Remove TODO_dump_func.
5809 * tree-into-ssa.c: Remove TODO_dump_func.
5810 * tree-complex.c: Remove TODO_dump_func.
5811 * tracer.c: Remove TODO_dump_func.
5812 * tree-loop-distribution.c: Remove TODO_dump_func.
5813 * postreload-gcse.c: Remove TODO_dump_func.
5814 * postreload.c: Remove TODO_dump_func.
5815 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
5816 * tree-tailcall.c: Remove TODO_dump_func.
5817 * ipa-cp.c: Remove TODO_dump_func.
5818 * final.c: Remove TODO_dump_func.
5819 * tree-emutls.c: Remove TODO_dump_func.
5820 * omp-low.c: Remove TODO_dump_func.
5821 * tree-ssa-dse.c: Remove TODO_dump_func.
5822 * tree-ssa-uncprop.c: Remove TODO_dump_func.
5823 * auto-inc-dec.c: Remove TODO_dump_func.
5824 * reorg.c: Remove TODO_dump_func.
5825 * tree-ssa-copyrename.c: Remove TODO_dump_func.
5826 * tree-ssa-ccp.c: Remove TODO_dump_func.
5827 * compare-elim.c: Remove TODO_dump_func.
5828 * mode-switching.c: Remove TODO_dump_func.
5829 * modulo-sched.c: Remove TODO_dump_func.
5830 * tree-call-cdce.c: Remove TODO_dump_func.
5831 * cse.c: Remove TODO_dump_func.
5832 * web.c: Remove TODO_dump_func.
5833 * tree-stdarg.c: Remove TODO_dump_func.
5834 * lto-streamer-out.c: Remove TODO_dump_func.
5835 * tree-ssa-math-opts.c: Remove TODO_dump_func.
5836 * tree-ssa-dom.c: Remove TODO_dump_func.
5837 * tree-nrv.c: Remove TODO_dump_func.
5838 * loop-init.c: Remove TODO_dump_func.
5839 * gimple-low.c: Remove TODO_dump_func.
5840 * ipa-inline.c: Remove TODO_dump_func.
5841 * tree-ssa-sink.c: Remove TODO_dump_func.
5842 * jump.c: Remove TODO_dump_func.
5843 * ifcvt.c: Remove TODO_dump_func.
5844 * tree-ssa-loop.c: Remove TODO_dump_func.
5845 * recog.c: Remove TODO_dump_func.
5846 * dse.c: Remove TODO_dump_func.
5847 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
5848 * matrix-reorg.c: Remove TODO_dump_func.
5849 * tree-eh.c: Remove TODO_dump_func.
5850 * regmove.c: Remove TODO_dump_func.
5851 * function.c: Remove TODO_dump_func.
5852 * tree-vectorizer.c: Remove TODO_dump_func.
5853 * ipa-split.c: Remove TODO_dump_func.
5854 * gcse.c: Remove TODO_dump_func.
5855 * tree-if-conv.c: Remove TODO_dump_func.
5856 * init-regs.c: Remove TODO_dump_func.
5857 * tree-ssa-phiopt.c: Remove TODO_dump_func.
5858 * implicit-zee.c: Remove TODO_dump_func.
5859 * lower-subreg.c: Remove TODO_dump_func.
5860 * bt-load.c: Remove TODO_dump_func.
5861 * tree-dfa.c: Remove TODO_dump_func.
5862 * except.c: Remove TODO_dump_func.
5863 * emit-rtl.c: Remove TODO_dump_func.
5864 * store-motion.c: Remove TODO_dump_func.
5865 * cfgexpand.c: Remove TODO_dump_func.
5866 * tree-cfgcleanup.c: Remove TODO_dump_func.
5867 * cfgcleanup.c: Remove TODO_dump_func.
5868 * tree-ssa-pre.c: Remove TODO_dump_func.
5869 * tree-sra.c: Remove TODO_dump_func.
5870 * tree-mudflap.c: Remove TODO_dump_func.
5871 * tree-ssa-copy.c: Remove TODO_dump_func.
5872 * cfglayout.c: Remove TODO_dump_func.
5873 * tree-ssa-forwprop.c: Remove TODO_dump_func.
5874 * tree-ssa-dce.c: Remove TODO_dump_func.
5875 * ira.c: Remove TODO_dump_func.
5876 * tree-ssa.c: Remove TODO_dump_func.
5877 * integrate.c: Remove TODO_dump_func.
5878 * tree-optimize.c: Remove TODO_dump_func.
5879 * tree-ssa-phiprop.c: Remove TODO_dump_func.
5880 * tree-object-size.c: Remove TODO_dump_func.
5881 * combine.c: Remove TODO_dump_func.
5882 * bb-reorder.c: Remove TODO_dump_func.
5883 * cprop.c: Remove TODO_dump_func.
5884 * var-tracking.c: Remove TODO_dump_func.
5885 * tree-profile.c: Remove TODO_dump_func.
5886 * tree-vect-generic.c: Remove TODO_dump_func.
5887 * reg-stack.c: Remove TODO_dump_func.
5888 * sched-rgn.c: Remove TODO_dump_func.
5889 * tree-ssa-structalias.c: Remove TODO_dump_func.
5890 * tree-switch-conversion.c: Remove TODO_dump_func.
5891 * tree-cfg.c: Remove TODO_dump_func.
5892 * tree-ssa-reassoc.c: Remove TODO_dump_func.
5893 * combine-stack-adj.c: Remove TODO_dump_func.
5894 * dce.c: Remove TODO_dump_func.
5895 * tree-ssanames.c: Remove TODO_dump_func.
5896 * regcprop.c: Remove TODO_dump_func.
5897
5898 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
5899
5900 PR middle-end/47364
5901 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
5902 and properly handle result not in Pmode.
5903
5904 2011-06-14 Robert Millan <rmh@gnu.org>
5905
5906 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
5907 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
5908 `config/linux.h'.
5909
5910 * config/i386/kfreebsd-gnu64.h: New file.
5911 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
5912 with `i386/kfreebsd-gnu64.h'.
5913
5914 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
5915 (GNU_USER_LINK_EMULATION64): New macros.
5916 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
5917 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
5918 of hardcoding `elf_i386' and `elf_x86_64'.
5919
5920 2011-06-14 Nick Clifton <nickc@redhat.com>
5921
5922 PR target/49403
5923 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
5924
5925 PR target/49402
5926 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
5927
5928 2011-06-14 Jakub Jelinek <jakub@redhat.com>
5929
5930 PR fortran/49103
5931 * tree.h (DECL_NONSHAREABLE): Define.
5932 (struct tree_decl_common): Change decl_common_unused to
5933 decl_nonshareable_flag.
5934 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
5935 Ignore vars with DECL_NONSHAREABLE bit set.
5936 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
5937 on stores to automatic aggregate vars.
5938
5939 PR rtl-optimization/49390
5940 Revert:
5941 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
5942
5943 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5944 MEM_ALIAS_SET.
5945
5946 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
5947 Tom de Vries <tom@codesourcery.com>
5948
5949 PR target/45098
5950 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
5951 Document changed semantics.
5952 (max_stmt_executions, max_stmt_executions_int): Declare.
5953 * tree-data-ref.c (estimated_loop_iterations)
5954 (estimated_loop_iterations_int): Move functions...
5955 * tree-ssa-loop-niter.c (estimated_loop_iterations)
5956 (estimated_loop_iterations_int): here.
5957 (record_estimate): Change nb_iterations_upper_bound and
5958 nb_iterations_estimate semantics.
5959 (max_stmt_executions, max_stmt_executions_int): New function.
5960 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
5961 (max_stmt_executions_tree): this.
5962 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
5963 estimated_loop_iterations_tree.
5964 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
5965 max_stmt_executions_int instead of estimated_loop_iterations_int.
5966 * predict.c (predict_loops): Idem.
5967 * tree-parloops.c (parallelize_loops): Idem.
5968 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
5969 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
5970 (init_omega_for_ddr_1): Idem.
5971 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
5972 (loop_prefetch_arrays): Idem
5973 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
5974 max_stmt_executions instead of estimated_loop_iterations.
5975 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
5976 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
5977 instead of nb_iterations_upper_bound.
5978
5979 2011-06-13 Jan Hubicka <jh@suse.cz>
5980
5981 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
5982
5983 2011-06-14 Richard Henderson <rth@redhat.com>
5984
5985 PR debug/48459
5986 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
5987 (based_loc_descr): Assert it's true.
5988 (compute_frame_pointer_to_fb_displacement): Set it, rather than
5989 aborting immediately.
5990
5991 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
5992 Mingfeng Wu <mingfeng@faraday-tech.com>
5993
5994 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
5995
5996 2011-06-13 Jan Hubicka <jh@suse.cz>
5997
5998 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
5999
6000 2011-06-13 Jan Hubicka <jh@suse.cz>
6001
6002 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
6003 similarly to DECL_COMDAT.
6004 * cgraphunit.c (cgraph_analyze_function): Likewise.
6005 * ipa.c (function_and_variable_visibility): Likewise.
6006
6007 2011-06-13 Jan Hubicka <jh@suse.cz>
6008
6009 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
6010 BINFO_VIRTUALS when streaming for ltrans unit.
6011
6012 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
6013
6014 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
6015 (movdi_internal64): Same.
6016
6017 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
6018
6019 PR target/44618
6020 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
6021 a set of similar patterns, where the MATCH_OPERAND for the function
6022 argument is replaced with individual references to hardware registers.
6023 (save_fpregs_<mode>): Ditto
6024 (restore_gpregs_<mode>): Ditto
6025 (return_and_restore_gpregs_<mode>): Ditto
6026 (return_and_restore_fpregs_<mode>): Ditto
6027 (return_and_restore_fpregs_aix_<mode>): Ditto
6028
6029 2011-06-13 Jan Hubicka <jh@suse.cz>
6030
6031 * ipa-utils.c (postorder_stack): New structure.
6032 (ipa_reverse_postorder): Handle aliases.
6033
6034 2011-06-13 Jan Hubicka <jh@suse.cz>
6035
6036 * ipa-inline.c (reset_edge_caches): Walk aliases.
6037 (update_caller_keys): Do not test inlinability of aliases.
6038 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
6039 (do_estimate_growth): Fix typo.
6040
6041 2011-06-13 Jan Hubicka <jh@suse.cz>
6042
6043 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
6044 (can_remove_node_now_p): ... here; handle same comdat groups.
6045 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
6046 (inline_call): Update use of can_remove_node_now_p.
6047
6048 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
6049
6050 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
6051 condition to disallow non-identical memory locations.
6052 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
6053 preference to bit manipulation instructions.
6054
6055 2011-06-13 Jan Hubicka <jh@suse.cz>
6056
6057 * cgraph.c (cgraph_for_node_thunks_and_aliases,
6058 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
6059 (nonremovable_p): New function.
6060 (cgraph_can_remove_if_no_direct_calls_p): New function.
6061 (used_from_object_file_p): New functoin.
6062 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
6063 references from aliases.
6064 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
6065 * ipa-inline.c (check_caller_edge): New function.
6066 (want_inline_function_called_once_p): Use it; accept aliases called
6067 once, too.
6068 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
6069
6070 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6071
6072 PR target/48454
6073 * config/arm/neon.md (vec_pack_trunc): Set the lengths
6074 correctly for the case with Quad vectors.
6075
6076 2011-06-13 Jakub Jelinek <jakub@redhat.com>
6077 Ira Rosen <ira.rosen@linaro.org>
6078
6079 PR tree-optimization/49352
6080 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
6081 all, make sure loop_use_stmt after the loop is a def stmt of a used
6082 SSA_NAME that is the only one defined inside of the loop. Don't
6083 check for COND_EXPR and GIMPLE_BINARY_RHS.
6084 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
6085 check_reduction is true.
6086
6087 2011-06-11 Jan Hubicka <jh@suse.cz>
6088
6089 PR middle-end/49373
6090 * ipa.c (cgraph_externally_visible_p): Check resolution info.
6091
6092 2011-06-11 Jan Hubicka <jh@suse.cz>
6093
6094 PR middle-end/48836
6095 * ipa-inline-transform.c: Include tree-pass.h
6096 (inline_transform): Set TODO_update_ssa_only_virtuals.
6097 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
6098
6099 2011-06-11 Jan Hubicka <jh@suse.cz>
6100
6101 PR middle-end/49378
6102 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
6103 aliases and thunks.
6104
6105 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
6106
6107 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
6108 Take number of iterations to peel into account for equally frequent
6109 misalignment values.
6110
6111 2011-06-11 Jan Hubicka <jh@suse.cz>
6112
6113 * lto-streamer-out.c (produce_symtab): Stream out the newly
6114 represented aliases.
6115
6116 2011-06-11 Jan Hubicka <jh@suse.cz>
6117
6118 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
6119 varying args.
6120 (ipa_update_after_lto_read): Likewise.
6121 (ipa_write_node_info): Do not sream call_with_var_arguments.
6122 (ipa_read_node_info): Likewise.
6123
6124 2011-06-11 Jan Hubicka <jh@suse.cz>
6125
6126 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
6127
6128 2011-06-11 Jan Hubicka <jh@suse.cz>
6129
6130 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
6131 (lto_symtab_resolve_can_prevail_p): Likewise.
6132 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
6133 * cgraph.c (same_body_aliases_done): New global var.
6134 (cgraph_same_body_alias_1): Rename to ...
6135 (cgraph_create_function_alias): ... this one; reorg to new
6136 representation.
6137 (cgraph_same_body_alias): Use cgraph_create_function_alias;
6138 record references when asked to.
6139 (cgraph_add_thunk): Fix formating.
6140 (cgraph_get_node): Kill same body alias code.
6141 (cgraph_node_for_asm): Likewise.
6142 (cgraph_remove_same_body_alias): Remove.
6143 (cgraph_remove_node): Kill same body alias code.
6144 (cgraph_mark_address_taken_node): Mark also the aliased function
6145 as having address taken.
6146 (dump_cgraph_node): Dump same body aliases.
6147 (cgraph_for_node_thunks_and_aliases): Update for new alias
6148 representation.
6149 (cgraph_for_node_and_aliases): Likewise.
6150 * cgraph.h (same_body): Kll pointer.
6151 (same_body_alias): Update comment.
6152 (same_body_aliases_done): Declare.
6153 (cgraph_remove_same_body_alias): Remove declaration.
6154 (cgraph_create_function_alias): Declare.
6155 (cgraph_process_same_body_aliases): Declare.
6156 (cgraph_function_with_gimple_body_p): Check for alias.
6157 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
6158 (cgraph_alias_aliased_node): New function.
6159 (cgraph_function_node): Update for new aliases.
6160 (cgraph_function_or_thunk_node): Likewise.
6161 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
6162 (inline_call): Remove dead aliases.
6163 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
6164 name hack for same body aliases.
6165 (clone_of_p): Look through aliases.
6166 (verify_cgraph_node): Verify aliases.
6167 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
6168 (cgraph_process_same_body_aliases): New function.
6169 (process_function_and_variable_attributes): Disable weakref warning on
6170 alias.
6171 (cgraph_analyze_functions): Handle aliases.
6172 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
6173 (assemble_thunks): Rename to ...
6174 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
6175 (cgraph_expand_function): Remove alias output code.
6176 (cgraph_output_in_order): Skip aliases.
6177 (cgraph_preserve_function_body_p): Aliases don't need preserving.
6178 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
6179 (ipa_record_reference): Do not assert on alias references.
6180 (ipa_ref_has_aliases_p): New function.
6181 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
6182 (ipa_ref_has_aliases_p): Declare.
6183 * lto-cgraph.c (lto_output_node): Handle aliases.
6184 (input_node): Likewise.
6185 * lto-streamer-out.c (lto_output): Skip aliases.
6186 (produce_symtab): Kill same_body_alias code.
6187 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
6188 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
6189 * ipa-inline.c (update_caller_keys): Walk aliases.
6190 (inline_small_functions): Fix thinko in previous patch.
6191 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
6192 (function_and_variable_visibility): Do not walk same body aliases.
6193 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
6194 (ipa_pta_execute): Use it.
6195
6196 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
6197
6198 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
6199 (*vec_dupv2df): Rename from vec_dupv2df.
6200 (vec_dupv2df): New expander.
6201
6202 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
6203
6204 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
6205
6206 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
6207
6208 * config/i386/i386.md: Use default value in "isa" attribute.
6209 * config/i386/sse.md: Ditto.
6210 * config/i386/mmx.md: Ditto.
6211
6212 2011-06-10 Wei Guozhi <carrot@google.com>
6213
6214 PR target/45335
6215 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6216 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6217 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6218 related peephole2.
6219 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6220 related peephole2.
6221 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6222 (arm_legitimate_ldrd_p): New prototype.
6223 (arm_output_ldrd): New prototype.
6224 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6225 (arm_legitimate_ldrd_p): New function.
6226 (arm_output_ldrd): New function.
6227
6228 2011-06-10 David Li <davidxl@google.com>
6229
6230 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6231 * passes.c (passr_eq): New function.
6232 (create_pass_tab): New function.
6233 (pass_traverse): New function.
6234 (dump_one_pass): New function.
6235 (dump_pass_list): New function.
6236 (dump_passes): New function.
6237
6238 2011-06-10 Jan Hubicka <jh@suse.cz>
6239
6240 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
6241 setting the nothrow flag.
6242 * ipa-reference.c (propagate): Skip aliases.
6243 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
6244 (propagate_nothrow): Skip aliases; do not update cgraph.
6245 (local_pure_const): Do not update cgraph.
6246 * tree-profile.c (tree_profiling): Do fixup_cfg.
6247
6248 2011-06-10 Jan Hubicka <jh@suse.cz>
6249
6250 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
6251 (cgraph_local_node_p): ... here; handle aliases.
6252 (has_addr_references_p): Break out from ...;
6253 (cgraph_remove_unreachable_nodes) ... here.
6254
6255 2011-06-10 Jan Hubicka <jh@suse.cz>
6256
6257 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
6258 * common.opt (flag_inline_functions_called_once): Do not
6259 initialize to 1.
6260
6261 2011-06-10 Jan Hubicka <jh@suse.cz>
6262
6263 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
6264 (ipcp_initialize_node_lattices): Do not deal with aliases;
6265 Do not try to propagate through thunks.
6266 (ipcp_change_tops_to_bottom): Do not deal with aliases.
6267
6268 2011-06-10 Jan Hubicka <jh@suse.cz>
6269
6270 * ipa-prop.c (ipa_write_node_info): Stream jump functions
6271 for indirect calls.
6272 (ipa_read_node_info): Likewise.
6273
6274 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6275
6276 PR lto/49302
6277 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
6278 (build_and_insert_call): Likewise.
6279 (build_and_insert_ref): New.
6280 (gimple_expand_builtin_pow): Minor cleanup.
6281 (gimple_expand_builtin_cabs): New.
6282 (execute_cse_sincos): Add case for BUILT_IN_CABS.
6283
6284 2011-06-10 Jan Hubicka <jh@suse.cz>
6285
6286 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
6287 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
6288 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
6289 (ipcp_propagate_stage): Skip aliases when propagating.
6290 (ipcp_need_redirect_p): Skip aliases.
6291 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
6292 collect_callers_of_node.
6293 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
6294 for aliases.
6295 (ipa_compute_jump_functions): Look through aliases.
6296
6297 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6298
6299 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
6300
6301 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6302
6303 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
6304 Adjust comments.
6305 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
6306
6307 2011-06-10 Jan Hubicka <jh@suse.cz>
6308
6309 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
6310 Update call of gimple_get_virt_method_for_binfo.
6311 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
6312 refuse_thunks parameter.
6313 (gimple_fold_call): Update.
6314 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
6315
6316 2011-06-10 Jan Hubicka <jh@suse.cz>
6317
6318 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
6319 (not_all_callers_have_enough_arguments_p): ... this one; turn into
6320 worker for cgraph_for_node_and_aliases.
6321 (convert_callers_for_node): Break out from ...
6322 (convert_callers): ... here.
6323 (modify_function): Use collect_callers_of_node.
6324 (ipa_early_sra): Use cgraph_for_node_and_aliases.
6325
6326 2011-06-10 Richard Guenther <rguenther@suse.de>
6327
6328 PR tree-optimization/49361
6329 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
6330 when not already in gimple form.
6331
6332 2011-06-10 Richard Guenther <rguenther@suse.de>
6333
6334 PR bootstrap/49344
6335 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
6336 FOR_EACH_PHI_OR_STMT_USE.
6337
6338 2011-06-10 Jan Hubicka <jh@suse.cz>
6339
6340 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
6341 (clone_inlined_nodes): ... here.
6342 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
6343 to real destination prior inlining.
6344 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
6345 can_early_inline_edge_p, want_early_inline_function_p,
6346 want_early_inline_function_p, want_inline_small_function_p,
6347 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
6348 edge_badness, update_all_callee_keys, lookup_recursive_calls,
6349 add_new_edges_to_heap, inline_small_functions, flatten_function,
6350 inline_always_inline_functions, early_inline_small_functions): Use
6351 cgraph_function_or_thunk_node.
6352 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
6353 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
6354 (do_estimate_edge_growth_1): Break out from ...
6355 (do_estimate_growth) ... here; walk aliases.
6356 (inline_generate_summary): Skip aliases.
6357
6358 2011-06-10 Richard Guenther <rguenther@suse.de>
6359
6360 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
6361 forward when combining, visit inserted stmts when a stmt was changed.
6362
6363 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
6364
6365 * tree.h (error_operand_p): Add.
6366 * dbxout.c (dbxout_type_fields): Use the latter.
6367 * c-decl.c (add_stmt): Likewise.
6368 * gimplify.c (omp_add_variable, omp_notice_variable,
6369 gimplify_scan_omp_clauses): Likewise.
6370
6371 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
6372
6373 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
6374 when a value is actually passed in regs.
6375
6376 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
6377 Laurent Rougé <laurent.rouge@menta.fr>
6378
6379 * doc/invoke.texi (SPARC options): Add -mflat.
6380 * config/sparc/sparc.opt: Likewise.
6381 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
6382 (sparc_flat_expand_prologue): Declare.
6383 (sparc_flat_expand_epilogue): Likewise.
6384 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
6385 (CPP_ENDIAN_SPEC): Replace with...
6386 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
6387 (CPP_SPEC): Adjust to above change.
6388 (EXTRA_SPECS): Likewise.
6389 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
6390 (INCOMING_REGNO): Likewise.
6391 (OUTGOING_REGNO): Likewise.
6392 (LOCAL_REGNO): Likewise.
6393 (SETUP_FRAME_ADDRESSES): Likewise.
6394 (FIXED_REGISTERS): Set 0 for %fp.
6395 (CALL_USED_REGISTERS): Likewise.
6396 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
6397 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
6398 (RETURN_ADDR_REGNUM): Define.
6399 (RETURN_ADDR_RTX): Use it.
6400 (INCOMING_RETURN_ADDR_REGNUM): Define.
6401 (INCOMING_RETURN_ADDR_RTX): Use it.
6402 (DWARF_FRAME_RETURN_COLUMN): Likewise.
6403 (EH_RETURN_REGNUM): Define.
6404 (EH_RETURN_STACKADJ_RTX): Use it.
6405 (EH_RETURN_HANDLER_RTX): Delete.
6406 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
6407 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
6408 Delete.
6409 (struct machine_function): Add frame_size, apparent_frame_size,
6410 frame_base_reg, frame_base_offset, n_global_fp_regs and
6411 save_local_in_regs_p fields.
6412 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
6413 sparc_frame_base_offset, sparc_n_global_fp_regs,
6414 sparc_save_local_in_regs_p): New macros.
6415 (sparc_option_override): Error out if -fcall-saved-REG is specified
6416 for Out registers.
6417 (eligible_for_restore_insn): Fix formatting.
6418 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
6419 (eligible_for_sibcall_delay): Likewise.
6420 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
6421 (sparc_legitimate_address_p): Adjust to above change.
6422 (save_global_or_fp_reg_p): New predicate.
6423 (return_addr_reg_needed_p): Likewise.
6424 (save_local_or_in_reg_p): Likewise.
6425 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
6426 (SORR_SAVE, SORR_RESTORE): Delete.
6427 (sorr_pred_t): New typedef.
6428 (sorr_act_t): New enum.
6429 (save_or_restore_regs): Rename to...
6430 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
6431 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
6432 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
6433 mechanism. Add CFI information for double-word saves in 32-bit mode.
6434 (emit_adjust_base_to_offset): New function extracted from...
6435 (emit_save_or_restore_regs): ...this. Rename the rest to...
6436 (emit_save_or_restore_regs_global_fp_regs): ...this.
6437 (emit_save_or_restore_regs_local_in_regs): New function.
6438 (gen_create_flat_frame_[123]): New functions.
6439 (sparc_expand_prologue): Use SIZE local variable. Adjust.
6440 (sparc_flat_expand_prologue): New function.
6441 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
6442 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
6443 (sparc_flat_expand_epilogue): New function.
6444 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
6445 (output_return): Likewise.
6446 (output_sibcall): Likewise.
6447 (sparc_output_mi_thunk): Likewise.
6448 (sparc_frame_pointer_required): Likewise.
6449 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
6450 function optimization.
6451 * config/sparc/sparc.md (flat): New attribute.
6452 (prologue): Add TARGET_FLAT handling.
6453 (save_register_window): Disable if TARGET_FLAT.
6454 (create_flat_frame_[123]): New patterns.
6455 (epilogue): Add TARGET_FLAT handling.
6456 (sibcall_epilogue): Likewise.
6457 (eh_return): New expander.
6458 (eh_return_internal): New insn and splitter.
6459 (return_internal): Add TARGET_FLAT handling.
6460 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
6461 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
6462 (nonlocal_goto): Add TARGET_FLAT handling.
6463 * config/sparc/t-elf: Add -mflat multilib.
6464 * config/sparc/t-leon: Likewise.
6465
6466 2011-06-10 Jan Hubicka <jh@suse.cz>
6467
6468 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
6469 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
6470 (self_recursive_p): Use cgraph_function_node.
6471 (propagate_pure_const): Likewise.
6472 (propagate_nothrow): Likewise.
6473 * ipa-reference.c (ipa_reference_get_not_read_global): Use
6474 cgraph_function_node.
6475 (propagate_bits): Likewise.
6476 (propagate): Likewise.
6477
6478 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6479 Richard Earnshaw <rearnsha@arm.com>
6480
6481 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
6482 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
6483 (*thumb2_movdi_vfp): Delete.
6484 (*arm_movdi_vfp_cortexa8): Delete.
6485 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
6486 (*movdi_vfp_cortexa8): Likewise.
6487
6488 2011-06-10 Richard Guenther <rguenther@suse.de>
6489
6490 * stor-layout.c (initialize_sizetypes): Give names to all
6491 sizetype kinds.
6492
6493 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
6494
6495 PR tree-optimization/49318
6496 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
6497 irrelevant pattern statements.
6498
6499 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6500
6501 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
6502
6503 PR bootstrap/49354
6504 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
6505 to last assignment.
6506
6507 2011-06-09 Jan Hubicka <jh@suse.cz>
6508
6509 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
6510 do not recompute reachable flag.
6511 (cgraph_finalize_function, cgraph_analyze_functions): Set
6512 redefined_extern_inline here.
6513
6514 2011-06-09 Jan Hubicka <jh@suse.cz>
6515
6516 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
6517 (cgraph_only_called_directly_p): ... this one; bring offline.
6518 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
6519 varpool_used_from_object_file_p): Drop names from the declaratoin.
6520 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
6521 collect_callers_of_node): New.
6522 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
6523 (cgraph_edge_recursive_p): Use cgraph_function_node.
6524 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
6525 (cgraph_node_cannot_be_local_p_1): Break out from ...
6526 (cgraph_node_can_be_local_p): ... here; walk aliases.
6527 (cgraph_for_node_thunks_and_aliases): New function.
6528 (cgraph_for_node_and_aliases): New function.
6529 (cgraph_make_node_local_1): Break out from ...
6530 (cgraph_make_node_local) ... here; use
6531 cgraph_for_node_thunks_and_aliases.
6532 (cgraph_set_nothrow_flag_1): Break out from ...
6533 (cgraph_set_nothrow_flag) ... here;
6534 use cgraph_for_node_thunks_and_aliases.
6535 (cgraph_set_const_flag_1): Break out from ...
6536 (cgraph_set_const_flag) ... here;
6537 use cgraph_for_node_thunks_and_aliases.
6538 (cgraph_set_pure_flag_1): Break out from ...
6539 (cgraph_set_pure_flag) ... here;
6540 use cgraph_for_node_thunks_and_aliases.
6541 (cgraph_propagate_frequency_1): Break out from ...
6542 (cgraph_propagate_frequency) ... here; use
6543 cgraph_for_node_thunks_and_aliases.
6544 (cgraph_used_from_object_file_p): Do not care about aliases.
6545 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
6546 New functions.
6547 (collect_callers_of_node_1, collect_callers_of_node): New functions.
6548
6549 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6550
6551 PR rtl-optimization/49154
6552 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
6553 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
6554 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
6555 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
6556 * config/cris/cris.h (cris_register_move_cost): Remove
6557 !TARGET_V32 code. Tweak comments.
6558
6559 2011-06-09 Jan Hubicka <jh@suse.cz>
6560
6561 * cgraphbuild.c (record_eh_tables): Mark personality function as having
6562 address taken.
6563
6564 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
6565
6566 PR rtl-optimization/49154
6567 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
6568 is a matching slot in the hashtable, assign it to classes_ptr.
6569
6570 PR rtl-optimization/49154
6571 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
6572 register classes.
6573 * doc/tm.texi: Regenerate.
6574
6575 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
6576
6577 PR target/49307
6578 * config/sh/sh.md (UNSPEC_CHKADD): New.
6579 (chk_guard_add): New define_insn_and_split.
6580 (symGOT_load): Use chk_guard_add instead of blockage.
6581
6582 2011-06-09 Kai Tietz <ktietz@redhat.com>
6583
6584 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
6585
6586 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
6587
6588 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
6589
6590 2011-06-09 Wei Guozhi <carrot@google.com>
6591
6592 PR target/46975
6593 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
6594 (peephole2 for conditional move): Generate 16 bit instructions.
6595
6596 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
6597
6598 * config/i386/i386.md (*movdi_internal_rex64): Merge
6599 alternatives 6 and 8.
6600
6601 2011-06-09 David Li <davidxl@google.com>
6602
6603 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
6604 * passes.c (passr_eq): New function.
6605 (create_pass_tab): New function.
6606 (pass_traverse): New function.
6607 (dump_one_pass): New function.
6608 (dump_pass_list): New function.
6609 (dump_passes): New function.
6610
6611 2011-06-09 David Li <davidxl@google.com>
6612
6613 * tree-complex.c (tree_lower_complex): Gate cleanup.
6614 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
6615 (execute_optimize_stdarg): Ditto.
6616 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
6617 (execute_cleanup_eh_1): Ditto.
6618 (execute_cleanup_eh): Ditto.
6619 * gcse.c (gate_rtl_pre): Ditto.
6620 (execute_rtl_pre): Ditto.
6621 * except.c (finish_eh_generation): Ditto.
6622 (convert_to_eh_region_ranges): Ditto.
6623 * cprop.c (one_cprop_pass): Ditto.
6624
6625 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
6626
6627 PR target/48673
6628 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
6629 in all basic blocks.
6630
6631 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6632
6633 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
6634 (HAVE_ENABLE_EXECUTE_STACK): Define.
6635 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
6636 (HAVE_ENABLE_EXECUTE_STACK): Define.
6637 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
6638 (HAVE_ENABLE_EXECUTE_STACK): Define.
6639 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
6640 (ENABLE_EXECUTE_STACK): Remove.
6641 (HAVE_ENABLE_EXECUTE_STACK): Define.
6642 [IN_LIBGCC2]: Don't include <windows.h>.
6643 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6644 (HAVE_ENABLE_EXECUTE_STACK): Define.
6645 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
6646 (HAVE_ENABLE_EXECUTE_STACK): Define.
6647 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
6648 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
6649 (HAVE_ENABLE_EXECUTE_STACK): Define.
6650 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
6651 (HAVE_ENABLE_EXECUTE_STACK): Define.
6652 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
6653 (HAVE_ENABLE_EXECUTE_STACK): Define.
6654 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
6655 (HAVE_ENABLE_EXECUTE_STACK): Define.
6656 * config/alpha/alpha.c (alpha_trampoline_init): Test
6657 HAVE_ENABLE_EXECUTE_STACK.
6658 * config/i386/i386.c (ix86_trampoline_init): Likewise.
6659 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
6660 (sparc64_initialize_trampoline): Likewise.
6661 * libgcc2.c [L_enable_execute_stack]: Remove.
6662 * system.h (ENABLE_EXECUTE_STACK): Poison.
6663 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
6664 * doc/tm.texi: Regenerate.
6665 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
6666
6667 2011-06-09 Jakub Jelinek <jakub@redhat.com>
6668
6669 PR middle-end/49308
6670 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
6671 variable. After resetting and rescanning insn continue with previous
6672 statement.
6673
6674 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6675
6676 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
6677 (gcc_cv_ld_hidden): Likewise.
6678 * configure: Regenerate.
6679 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
6680 (ix86_stack_protect_fail): Mark unused.
6681 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
6682 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
6683 [TARGET_MACHO]: Don't define.
6684 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
6685 (TARGET_STACK_PROTECT_FAIL): Likewise.
6686 (rs6000_stack_protect_fail): Mark unused.
6687 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
6688 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
6689
6690 2011-06-08 Andi Kleen <ak@linux.intel.com>
6691
6692 * varasm.c (get_section): Print location of other conflict
6693 for section conflicts.
6694
6695 2011-06-08 Andi Kleen <ak@linux.intel.com>
6696
6697 * config/i386/driver-i386.c (host_detect_local_cpu):
6698 Add model 0x2d Intel CPU.
6699
6700 2011-06-08 Andi Kleen <ak@linux.intel.com>
6701
6702 * reginfo.c (global_regs_decl): Add.
6703 (globalize_reg): Add decl parameter. Compute location. Pass location
6704 to warnings and add inform. Store decl in global_regs_decl.
6705 * rtl.h (globalize_reg): Update prototype.
6706 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
6707
6708 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
6709
6710 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
6711
6712 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6713
6714 PR target/49305
6715 * config/sh/predicates.md (general_movsrc_operand): Check
6716 mode for memory with indexed address for QI and HImode.
6717 (general_movdst_operand): Likewise.
6718
6719 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
6720
6721 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
6722
6723 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
6724
6725 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
6726 (num_ssa_operands): Likewise.
6727 (op_iter_init_phiuse): Forward-declare.
6728 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
6729
6730 2011-06-08 Nick Clifton <nickc@redhat.com>
6731
6732 * doc/invoke.texi (ARM Options): Update description of
6733 -mthumb-interwork.
6734
6735 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
6736
6737 * config/i386/driver-i386.c (host_detect_local_cpu): Support
6738 unknown Intel family 0x6 CPUs.
6739
6740 2011-06-08 Martin Jambor <mjambor@suse.cz>
6741
6742 * tree-sra.c (mark_rw_status): Removed.
6743 (analyze_access_subtree): New parameter parent instead of
6744 mark_read and mark_write, propagate from that.
6745
6746 2011-06-08 Julian Brown <julian@codesourcery.com>
6747
6748 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
6749 for double-precision helper functions in hard-float mode if only
6750 single-precision arithmetic is supported in hardware.
6751
6752 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
6753
6754 PR rtl-optimization/49303
6755 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
6756 code_motion_path_driver returned 0 or 1.
6757 (sel_region_finish): Clear h_d_i_d.
6758
6759 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6760
6761 * config/sh/sh.c (prepare_move_operands): Set pic register
6762 appropriately for global and local dynamic tls models even
6763 if flag_pic is unset.
6764
6765 2011-06-07 Jason Merrill <jason@redhat.com>
6766
6767 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
6768
6769 2011-06-07 Xinliang David Li <davidxl@google.com>
6770 * passes.c (enable_disable_pass): Handle assembler name.
6771 (is_pass_explicitly_enabled_or_disabled): Ditto.
6772
6773 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6774
6775 PR tree-optimization/48497
6776 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
6777
6778 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6779
6780 PR tree-optimization/46728
6781 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
6782 to use gimple_val_nonnegative_real_p.
6783 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
6784 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
6785
6786 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
6787
6788 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
6789
6790 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
6791
6792 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
6793 constant vectors.
6794
6795 2011-06-07 Richard Guenther <rguenther@suse.de>
6796
6797 * stor-layout.c (initialize_sizetypes): Initialize all
6798 sizetypes based on target definitions.
6799 (set_sizetype): Remove.
6800 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
6801 * tree.h (set_sizetype): Remove.
6802
6803 2011-06-07 Nick Clifton <nickc@redhat.com>
6804
6805 * config.gcc: Unify V850 architecture options and add support for
6806 newer V850 architectures.
6807 * config/v850/t-v850e: Delete.
6808
6809 2011-06-07 Richard Guenther <rguenther@suse.de>
6810
6811 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
6812 Call set_sizetype from here.
6813
6814 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
6815
6816 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
6817 (*maddhisi4tb, *maddhisi4tt): New define_insns.
6818
6819 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
6820 Andrew Stubbs <ams@codesourcery.com>
6821
6822 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
6823 multiplies.
6824 * doc/md.texi (Canonicalization of Instructions): Document widening
6825 multiply canonicalization.
6826
6827 2011-06-07 Jakub Jelinek <jakub@redhat.com>
6828
6829 PR gcov-profile/49299
6830 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
6831
6832 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
6833
6834 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
6835 a pointer.
6836 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
6837 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
6838 vect_recog_pow_pattern): Likewise.
6839 (vect_pattern_recog_1): Remove declaration.
6840 (widened_name_p): Remove declaration. Add new argument to specify
6841 whether to check that both types are either signed or unsigned.
6842 (vect_recog_widen_mult_pattern): Update documentation. Handle
6843 unsigned patterns and multiplication by constants.
6844 (vect_pattern_recog_1): Update vect_recog_func references. Use
6845 statement information from the statement returned from pattern
6846 detection functions.
6847 (vect_pattern_recog): Update vect_recog_func reference.
6848 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
6849 multiplication by a constant use the type of the other operand.
6850
6851 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
6852
6853 PR rtl-optimization/49145
6854 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
6855
6856 2011-06-06 Jakub Jelinek <jakub@redhat.com>
6857
6858 PR debug/49262
6859 * dwarf2out.c (native_encode_initializer): Decrement count in each
6860 iteration.
6861
6862 PR debug/49294
6863 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
6864 non-MODE_INT modes.
6865
6866 PR c++/49264
6867 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
6868 if stmt folded into nothing.
6869 * tree-inline.c (fold_marked_statements): If a builtin at the end of
6870 a bb folded into nothing, just update cgraph edges and move to next bb.
6871 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
6872 to be NULL. Don't compute count and frequency if new_call is NULL.
6873
6874 2011-06-04 Diego Novillo <dnovillo@google.com>
6875
6876 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
6877 (cgraph.o): Likewise.
6878 (cgraphunit.o): Likewise.
6879 * cgraphunit.c: Include lto-streamer.h
6880 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
6881 if LTO is enabled.
6882 * lto-streamer-in.c (unpack_value_fields): Call
6883 streamer_hooks.unpack_value_fields if set.
6884 (lto_materialize_tree): For unhandled nodes, first try to
6885 call lto_streamer_hooks.alloc_tree, if it exists.
6886 (lto_input_ts_decl_common_tree_pointers): Move reading of
6887 DECL_INITIAL to lto_streamer_read_tree.
6888 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
6889 (lto_streamer_read_tree): New.
6890 (lto_reader_init): Rename from lto_init_reader.
6891 Move initialization code to lto/lto.c.
6892 * lto-streamer-out.c (pack_value_fields): Call
6893 streamer_hooks.pack_value_fields if set.
6894 (lto_output_tree_ref): For tree nodes that are not normally indexable,
6895 call streamer_hooks.indexable_with_decls_p before giving up.
6896 (lto_output_ts_decl_common_tree_pointers): Move handling
6897 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
6898 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
6899 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
6900 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
6901 (lto_streamer_write_tree): New.
6902 (lto_output): Call lto_streamer_init directly.
6903 (lto_writer_init): Remove.
6904 * lto-streamer.c (streamer_hooks): New.
6905 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
6906 instead of lto_preload_common_nodes.
6907 (lto_is_streamable): Move from lto-streamer.h
6908 (lto_streamer_hooks_init): New.
6909 (streamer_hooks): New.
6910 (streamer_hooks_init): New.
6911 * lto-streamer.h (struct output_block): Forward declare.
6912 (struct lto_input_block): Likewise.
6913 (struct data_in): Likewise.
6914 (struct bitpack_d): Likewise.
6915 (struct streamer_hooks): Declare.
6916 (streamer_hooks): Declare.
6917 (lto_streamer_hooks_init): Declare.
6918 (lto_streamer_write_tree): Declare.
6919 (lto_streamer_read_tree): Declare.
6920 (streamer_hooks_init): Declare.
6921 (lto_is_streamable): Move to lto-streamer.c
6922
6923 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6924
6925 * longlong.h (smul_ppmm): The resulting register pair contains the
6926 higher order word first.
6927
6928 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6929
6930 PR tree-optimization/46728
6931 * builtins.c (powi_table): Remove.
6932 (powi_lookup_cost): Remove.
6933 (powi_cost): Remove.
6934 (expand_powi_1): Remove.
6935 (expand_powi): Remove.
6936 (expand_builtin_pow_root): Remove.
6937 (expand_builtin_pow): Remove.
6938 (expand_builtin_powi): Eliminate handling of constant exponent.
6939 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
6940
6941 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6942
6943 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
6944
6945 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6946
6947 * dce.c (reset_unmarked_insns_debug_uses): New.
6948 (delete_unmarked_insns): Skip debug insns.
6949 (prescan_insns_for_dce): Likewise.
6950 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
6951 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
6952 active reg can be found.
6953 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
6954 (convert_regs_1): Use it.
6955
6956 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6957
6958 * tree-pretty-print.c (dump_function_header): Add flags.
6959 Don't dump decl_uid with nouid.
6960 * tree-pretty-print.h (dump_function_header): Adjust.
6961 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
6962 * passes.c (pass_init_dump_file): Pass dump_flags on.
6963 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
6964
6965 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
6966
6967 PR bootstrap/49270
6968 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
6969
6970 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
6971
6972 PR tree-optimization/49243
6973 * calls.c (setjmp_call_p): Also check if fndecl has the
6974 returns_twice attribute.
6975
6976 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6977
6978 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
6979 -ffast-math etc.
6980
6981 2011-06-06 Richard Henderson <rth@redhat.com>
6982 Georg-Johann Lay <avr@gjlay.de>
6983
6984 PR target/42210
6985 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
6986 New predicates.
6987 * config/avr/avr.md ("insv"): New insn expander.
6988 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
6989 "*insv.not.io", "*insv.reg"): New insns.
6990
6991 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
6992
6993 PR target/49285
6994 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
6995 to nonimmediate_operand from memory_operand for the operand that is to
6996 be forced to memory by the expander. Lose the constraints.
6997
6998 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
6999
7000 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
7001 EH return when delayed branches are disabled.
7002
7003 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
7004
7005 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
7006 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
7007 calculation.
7008 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
7009 Simplify MODE_V1DF and MODE_V2SF handling.
7010 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
7011 Simplify MODE_SF handling.
7012
7013 2011-06-04 Jan Hubicka <jh@suse.cz>
7014
7015 PR tree-optimization/48893
7016 PR tree-optimization/49091
7017 PR tree-optimization/49179
7018 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
7019 Bounds check.
7020
7021 2011-06-04 Jan Hubicka <jh@suse.cz>
7022
7023 PR lto/48954
7024 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
7025 bitmaps.
7026
7027 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
7028
7029 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
7030
7031 2011-06-04 Jakub Jelinek <jakub@redhat.com>
7032
7033 PR target/49281
7034 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
7035 to be strictly smaller than 1 << shiftcount.
7036
7037 2011-06-04 Jan Hubicka <jh@suse.cz>
7038
7039 PR tree-optimize/48929
7040 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
7041 of empty predicate.
7042
7043 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
7044
7045 PR debug/48333
7046 * calls.c (emit_call_1): Prefer the __builtin declaration of
7047 builtin functions.
7048
7049 2011-06-03 Diego Novillo <dnovillo@google.com>
7050
7051 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
7052 (lto_input_tree_pointers): Likewise.
7053 * lto-streamer-out.c (pack_value_fields): Likewise.
7054 (lto_output_tree_pointers): Likewise.
7055 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
7056 and OPTIMIZATION_NODE.
7057
7058 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7059
7060 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
7061 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
7062 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
7063 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
7064 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
7065 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
7066 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
7067 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
7068 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
7069 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
7070 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
7071 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
7072 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
7073 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
7074 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
7075 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
7076 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
7077 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
7078 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
7079 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
7080 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
7081 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
7082 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
7083 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
7084 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
7085 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
7086 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
7087 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
7088 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
7089 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
7090 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
7091 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
7092 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
7093 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
7094 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
7095 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
7096 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
7097 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
7098 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
7099 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
7100 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
7101 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
7102 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
7103 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
7104 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
7105 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
7106 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
7107 * system.h (MD_UNWIND_SUPPORT): Poison.
7108 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
7109 * doc/tm.texi: Regenerate.
7110 * unwind-dw2.c: Include md-unwind-support.h instead of
7111 MD_UNWIND_SUPPORT.
7112 * config/ia64/unwind-ia64.c: Likewise.
7113 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7114
7115 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
7116
7117 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
7118
7119 2011-06-03 Richard Henderson <rth@redhat.com>
7120 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7121
7122 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
7123 (sigill_hdlr): Correct insn, insn size.
7124 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
7125
7126 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7127
7128 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
7129 t-slibgcc-dummy.
7130 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
7131 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
7132 * config/mips/t-iris: Remove.
7133 * config/mips/t-irix6: New file.
7134 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
7135
7136 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7137
7138 * Makefile.in (LIB2ADDEHDEP): Remove.
7139 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
7140 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
7141 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
7142 * config/t-darwin (LIB2ADDEHDEP): Remove.
7143 * config/t-freebsd (LIB2ADDEHDEP): Remove.
7144 * config/t-linux (LIB2ADDEHDEP): Remove.
7145
7146 2011-06-03 Diego Novillo <dnovillo@google.com>
7147
7148 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
7149 (lto_register_var_decl_in_symtab): Likewise.
7150 (lto_register_function_decl_in_symtab): Likewise.
7151 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7152 logic to uniquify_nodes.
7153
7154 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7155
7156 * config/alpha/t-osf5: Remove.
7157 * config/alpha/t-osf-pthread: Remove.
7158 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
7159 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
7160
7161 2011-06-03 Julian Brown <julian@codesourcery.com>
7162
7163 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
7164 (strongarm1110): Use strongarm tuning.
7165 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
7166 * config/arm/arm.c (arm_strongarm_tune): New.
7167 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7168 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
7169 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
7170 setting, using previous defaults or 1 for Cortex-A5.
7171 (arm_option_override): Set max_insns_skipped from current tuning.
7172
7173 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
7174
7175 * doc/install.texi (Options specification): Document --with-specs.
7176
7177 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7178
7179 * config/arm/neon.md (orndi3_neon): Actually split it.
7180
7181 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
7182
7183 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
7184 * var-tracking.c (reverse_op): Limite recurse depth to 5.
7185
7186 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
7187
7188 PR debug/47590
7189 * target.def (delay_sched2, delay_vartrack): New.
7190 * doc/tm.texi.in: Update.
7191 * doc/tm.texi: Rebuild.
7192 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
7193 * var-tracking.c (gate_handle_var_tracking): Likewise.
7194 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
7195 (bfin_flag_var_tracking): Drop.
7196 (output_file_start): Don't save and override flag_var_tracking.
7197 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
7198 (bfin_reorg): Test original variables.
7199 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7200 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
7201 (ia64_flag_var_tracking): Drop.
7202 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7203 (ia64_file_start): Don't save and override flag_var_tracking.
7204 (ia64_override_options_after_change): Ditto
7205 flag_schedule_insns_after_reload.
7206 (ia64_reorg): Test original variables.
7207 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
7208 (picochip_flag_var_tracking): Drop.
7209 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
7210 (picochip_option_override): Don't save and override
7211 flag_schedule_insns_after_reload.
7212 (picochip_asm_file_start): Ditto flag_var_tracking.
7213 (picochip_reorg): Test original variables.
7214 * config/spu/spu.c (spu_flag_var_tracking): Drop.
7215 (TARGET_DELAY_VARTRACK): Define.
7216 (spu_var_tracking): New.
7217 (spu_machine_dependent_reorg): Call it.
7218 (asm_file_start): Don't save and override flag_var_tracking.
7219
7220 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
7221
7222 PR target/49163
7223 * config/sh/predicates.md (general_movsrc_operand): Return 0
7224 for memory and memory subreg of which address is an invalid
7225 indexed address for QI and HImode.
7226 (general_movdst_operand): Likewise.
7227
7228 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7229
7230 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
7231 edges only, when there is a non-local label in the function.
7232 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
7233
7234 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
7235
7236 * config/i386/constraints.md (Y3): New register constraint.
7237 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
7238 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
7239 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
7240 *sse2_interleave_lowv2df.
7241
7242 2011-06-02 Julian Brown <julian@codesourcery.com>
7243
7244 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
7245 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
7246 (arm_cortex_a5_tune): New.
7247
7248 2011-06-02 Julian Brown <julian@codesourcery.com>
7249
7250 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
7251 * config/arm/arm.c (arm_default_branch_cost): New.
7252 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
7253 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
7254 (arm_fa726_tune): Set branch_cost field using
7255 arm_default_branch_cost.
7256 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
7257 current_tune structure.
7258 * dojump.c (tm_p.h): Include file.
7259
7260 2011-06-02 Julian Brown <julian@codesourcery.com>
7261
7262 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
7263 tuning.
7264 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
7265 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
7266 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
7267 field.
7268 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
7269 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
7270 (arm_fa726te_tune): Add prefer_constant_pool setting.
7271 (arm_v6t2_tune, arm_cortex_tune): New.
7272 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
7273 prefer_constant_pool setting.
7274
7275 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
7276
7277 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
7278 switch statement.
7279 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
7280 (*movdf_internal) <case 6,7,8>: Ditto.
7281
7282 * config/i386/constraints.md (Y4): New register constraint.
7283 * config/i386/sse.md (vec_set<mode>_0): Merge with
7284 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
7285 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
7286 *vec_extractv2di_1_sse.
7287 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
7288 and *vec_concatv2di_rex64_sse.
7289
7290 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
7291
7292 PR target/48807
7293 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
7294 of cgraph_local_info for null before attempting to use it.
7295
7296 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
7297
7298 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
7299 (current_function_dynamic_alloc_count): Delete.
7300 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
7301 (expand_builtin_nonlocal_goto): Remove obsolete comment.
7302 (expand_builtin_update_setjmp_buf): Remove dead code.
7303 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
7304 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
7305 support.
7306 * function.c (instantiate_virtual_regs): Likewise.
7307 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
7308 for a block with a single abnormal incoming edge.
7309 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
7310 (SETJMP_VIA_SAVE_AREA): Delete.
7311 * config/sparc/sparc-protos.h (load_got_register): Declare.
7312 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7313 (load_got_register): Make global.
7314 (sparc_frame_pointer_required): Add 'static'.
7315 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
7316 (sparc_builtin_setjmp_frame_value): New function.
7317 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
7318 (save_stack_nonlocal): New expander.
7319 (restore_stack_nonlocal): Likewise.
7320 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
7321 (nonlocal_goto_internal): New insn.
7322 (goto_handler_and_restore): Delete.
7323 (builtin_setjmp_setup): Likewise.
7324 (do_builtin_setjmp_setup): Likewise.
7325 (setjmp): Likewise.
7326 (builtin_setjmp_receiver): New expander.
7327
7328 2011-06-01 David Li <davidxl@google.com>
7329
7330 PR middle-end/49261
7331 * tree-pretty-print.c (dump_function_header): Format cleanup.
7332
7333 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
7334
7335 PR target/49238
7336 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
7337 needed when original operands are used for msw_skip comparison.
7338
7339 2011-06-01 Jakub Jelinek <jakub@redhat.com>
7340
7341 PR debug/49250
7342 * var-tracking.c (add_uses, add_stores): Don't call
7343 cselib_subst_to_values on ENTRY_VALUE.
7344
7345 2011-06-01 Diego Novillo <dnovillo@google.com>
7346
7347 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
7348 output_record_start with LTO_null instead of output_zero.
7349 (lto_output_ts_binfo_tree_pointers): Likewise.
7350 (lto_output_tree): Likewise.
7351 (output_eh_try_list): Likewise.
7352 (output_eh_region): Likewise.
7353 (output_eh_lp): Likewise.
7354 (output_eh_regions): Likewise.
7355 (output_bb): Likewise.
7356 (output_function): Likewise.
7357 (output_unreferenced_globals): Likewise.
7358 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
7359 instead of NUM_TREE_CODES.
7360 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
7361 (lto_output_int_in_range): Change << to >> when shifting VAL.
7362
7363 2011-06-01 Diego Novillo <dnovillo@google.com>
7364
7365 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
7366 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
7367
7368 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7369
7370 PR target/45074
7371 * optabs.h (valid_multiword_target_p): Declare.
7372 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
7373 doing multi-word operations.
7374 * optabs.c (expand_binop): Likewise.
7375 (expand_doubleword_bswap): Likewise.
7376 (expand_absneg_bit): Likewise.
7377 (expand_unop): Likewise.
7378 (expand_copysign_bit): Likewise.
7379 (multiword_target_p): New function.
7380
7381 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
7382
7383 PR rtl-optimization/48830
7384 PR rtl-optimization/48808
7385 PR rtl-optimization/48792
7386 * reload.c (push_reload): Check contains_reg_of_mode.
7387 * reload1.c (strip_paradoxical_subreg): New function.
7388 (gen_reload_chain_without_interm_reg_p): Use it to handle
7389 paradoxical subregs.
7390 (emit_output_reload_insns, gen_reload): Likewise.
7391
7392 2011-06-01 David Li <davidxl@google.com>
7393
7394 * predict.c : Change pass name
7395 * ipa.c: Ditto.
7396 * dce.c: Ditto.
7397 * tree-profile.c: Ditto.
7398 * except.c: Ditto.
7399
7400 2011-06-01 David Li <davidxl@google.com>
7401
7402 * tree-pretty-print.c (dump_function_header): New function.
7403 * final.c (rest_of_clean_state): Use header dumper.
7404 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
7405 * passes.c (pass_init_dump_file): Use header dumper.
7406
7407 2011-06-01 Jakub Jelinek <jakub@redhat.com>
7408
7409 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
7410 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
7411 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
7412 New functions.
7413 (mem_loc_descriptor): Use them.
7414
7415 * var-tracking.c (create_entry_value): New function.
7416 (vt_add_function_parameter): Use it.
7417
7418 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7419
7420 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
7421 Include <signal.h>, <ucontext.h>.
7422 (sigill_caught): Define.
7423 (sigill_hdlr): New function.
7424 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
7425 insns can be executed.
7426 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
7427 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
7428
7429 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7430
7431 * config/t-slibgcc-darwin: Move to ...
7432 * config/t-slibgcc-dummy: ... this. Clarify comments.
7433 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
7434 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
7435 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
7436 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
7437 Remove i386/t-crtstuff from tmake_file.
7438 (i[34567]86-*-solaris2*): Remove t-svr4,
7439 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
7440 t-slibgcc-dummy.
7441 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
7442 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
7443 sparc/t-crtfm from tmake_file.
7444 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
7445 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
7446 Remove extra_parts.
7447 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
7448 * config/i386/t-nwld (SHLIB_LINK): Remove.
7449 * config/i386/t-rtems-i386: Rename to ...
7450 * config/i386/t-rtems: ... this.
7451 ($(T)crti.o, $(T)crtn.o): Remove.
7452 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
7453 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
7454 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
7455 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
7456 EXTRA_MULTILIB_PARTS): Remove.
7457 * config/sparc/t-sol2-64: Likewise.
7458 * config/sparc/t-sol2: Remove.
7459 * config/sparc/t-crtin: Remove.
7460 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
7461 * config/i386/gmon-sol2.c: Remove.
7462 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
7463 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
7464 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
7465 * config/i386/sol2-gc1.asm: Remove.
7466 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
7467 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
7468 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
7469 * config/t-slibgcc-sld: Remove.
7470
7471 2011-06-01 Jakub Jelinek <jakub@redhat.com>
7472
7473 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
7474 base_type_for_mode with op_mode instead of mode.
7475
7476 2011-06-01 Paul Brook <paul@cpodesourcery.com>
7477
7478 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
7479 Cortex-A15.
7480 * config/arm/arm-tune.md: Regenerate.
7481 * config/arm/arm-tables.opt: Regenerate.
7482 * config/arm/arm.c (FL_DIV): Rename...
7483 (FL_THUMB_DIV): ... to this.
7484 (FL_ARM_DIV): Define.
7485 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
7486 (arm_arch_hwdiv): Remove.
7487 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
7488 (arm_issue_rate): Add cortexr5.
7489 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
7490 __ARM_ARCH_EXT_IDIV__.
7491 (TARGET_IDIV): Define.
7492 (arm_arch_hwdiv): Remove.
7493 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
7494 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
7495 (divsi3, udivsi3): New patterns.
7496 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
7497 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
7498
7499 2011-06-01 Martin Jambor <mjambor@suse.cz>
7500
7501 * ipa-utils.c (ipa_dfs_info): New field scc_no.
7502 * ipa-utils.c (searchc): Set scc_no.
7503
7504 2011-06-01 Martin Jambor <mjambor@suse.cz>
7505
7506 * ipa-utils.c (searchc_env): New field allow_overwritable.
7507 (searchc): do not ignore edges to overwritable nodes if indicated
7508 by env->allow_overwritable.
7509 (ipa_reduced_postorder): Set env.allow_overwritable.
7510
7511 2011-06-01 Richard Guenther <rguenther@suse.de>
7512
7513 * tree.c (free_lang_data): Do not reset boolean_type_node nor
7514 char_type_node.
7515 * lto-streamer.c (lto_record_common_node): Take node pointer,
7516 do not register types.
7517 (lto_preload_common_nodes): Explicitly skip preloading nodes
7518 that differ between frontends.
7519
7520 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
7521
7522 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
7523 NON_FLOAT_REGS.
7524
7525 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
7526
7527 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
7528 parameter value for dump. Dump cost on outermost call only.
7529 (rs6000_memory_move_cost): Dump cost on outermost call only.
7530
7531 2011-05-31 Jakub Jelinek <jakub@redhat.com>
7532
7533 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
7534 DW_OP_GNU_convert ops.
7535
7536 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
7537 cselib_preserve_constants.
7538 (cselib_lookup_1): If cselib_preserve_constants,
7539 a new VALUE is being created for REG and there is a VALUE for the
7540 same register in wider mode, add another loc with lowpart SUBREG of
7541 the wider VALUE.
7542 (cselib_subst_to_values): Handle ENTRY_VALUE.
7543 * var-tracking.c (replace_expr_with_values): Return NULL for
7544 ENTRY_VALUE too.
7545 * dwarf2out.c (convert_descriptor_to_signed): New function.
7546 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
7547 instead of two shifts.
7548 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
7549 the right mode if needed.
7550 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
7551 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
7552 convert_descriptor_to_signed.
7553 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
7554 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
7555
7556 PR target/48688
7557 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
7558
7559 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
7560
7561 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
7562 of X87MODEI12 and SWI48x instead of SSEMODEI24.
7563 (SWI248x): New mode iterator, rename from X87MODEI.
7564 (X87MODEI): Remove mode iterator.
7565 (X87MODEI12): Ditto.
7566 (SSEMODEI24): Ditto.
7567
7568 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7569
7570 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
7571 * doc/invoke.texi: Document max-vartrack-expr-depth.
7572 * var-tracking.c (EXPR_DEPTH): New.
7573 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
7574
7575 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7576
7577 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
7578 * config/i386/sse.md: Add n to negated FMA pattern names.
7579
7580 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7581
7582 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
7583
7584 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
7585
7586 * gengtype-state.c (read_state_params_structs): Initialize previous.
7587
7588 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
7589
7590 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
7591 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
7592
7593 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
7594
7595 * config/i386/i386.md (*movtf_internal): Avoid allocating general
7596 registers. Penalize F*r->o alternative to prevent partial memory
7597 stalls. Slightly penalize *roF->*r alternative. Generate SSE
7598 CONST_DOUBLE immediates when optimizing function for size. Do not move
7599 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7600 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
7601 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
7602 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
7603 alternatives.
7604 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
7605
7606 (fp_register_operand splitters): Use fp_register_operand
7607 constraint. Do not use FP_REG_P in insn condition.
7608 (any_fp_register_operand splitters): Use any_fp_register_operand
7609 constraint. Do not use ANY_FP_REG_P in insn condition.
7610
7611 2011-05-31 Jan Hubicka <jh@suse.cz>
7612
7613 * cgraph.h (cgraph_inline_failed_t): Give enum a name
7614 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
7615 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
7616 (lto_output_edge): Use output_enum and var_len_unsigned.
7617 (lto_output_varpool_node): Likewise.
7618 (input_overwrite_node): Do not take resolution parameter;
7619 extract it from a bitpack.
7620 (input_node): Do not read resolution; use input_enum and
7621 var_len_unsigned.
7622 (input_varpool_node): Likewise.
7623 (input_edge): Likewise.
7624 (input_cgraph_1): Likewise.
7625
7626 2011-05-31 Richard Guenther <rguenther@suse.de>
7627
7628 * gimple.c (gimple_register_canonical_type): Do not register
7629 any types via gimple_register_type.
7630
7631 2011-05-31 Jan Hubicka <jh@suse.cz>
7632
7633 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
7634 of thunks.
7635
7636 2011-05-31 Jakub Jelinek <jakub@redhat.com>
7637
7638 PR rtl-optimization/49235
7639 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
7640 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
7641
7642 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
7643
7644 PR tree-optimization/49093
7645 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
7646 data references.
7647
7648 2011-05-31 Dodji Seketeli <dodji@redhat.com>
7649
7650 PR debug/49047
7651 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
7652 for concrete functions containing the code of cloned functions.
7653
7654 2011-05-31 Richard Guenther <rguenther@suse.de>
7655
7656 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
7657 to ...
7658 (forward_propagate_into_comparison_1): ... this.
7659 (forward_propagate_comparison): Rename to ...
7660 (forward_propagate_into_comparison): ... this. Split out
7661 real forward propagation code to ...
7662 (forward_propagate_comparison): ... this.
7663 (forward_propagate_into_gimple_cond): Remove looping.
7664 (forward_propagate_into_cond): Likewise.
7665 (simplify_not_neg_expr): Return whether we have done something.
7666 (simplify_gimple_switch): Likewise.
7667 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
7668 (ssa_forward_propagate_and_combine): ... this. Re-structure
7669 to do a forward forward-propagation walk on BBs and a backward
7670 stmt combining walk on BBs. Consistently re-scan changed statements.
7671 (pass_forwprop): Adjust.
7672
7673 2011-05-30 Ian Lance Taylor <iant@google.com>
7674
7675 * godump.c (go_format_type): Correct length of name added to
7676 obstack for anonymous field.
7677
7678 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
7679
7680 PR target/49186
7681 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
7682 part of the second operand is 0.
7683
7684 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
7685
7686 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
7687 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
7688 to memory for !TARGET_MEMORY_MISMATCH_STALL.
7689 (*movdf_internal_rex64): Do not penalize F->r alternative.
7690 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7691 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
7692 when optimizing function for size. Do not move CONST_DOUBLEs
7693 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
7694 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
7695 SUBREGs. Do not check for MEM_P operands in the insn condition,
7696 check for ANY_FP_REGNO_P instead.
7697 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
7698 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
7699 function for speed.
7700 * config/i386/i386.c (ix86_option_override_internal): Do not
7701 set TARGET_INTEGER_DFMODE_MOVES here.
7702
7703 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
7704
7705 PR target/49168
7706 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
7707
7708 2011-05-30 Jakub Jelinek <jakub@redhat.com>
7709
7710 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
7711 DW_TAG_rvalue_reference_type even for
7712 -gdwarf-4 -fno-debug-types-section.
7713
7714 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7715
7716 PR tree-optimization/46728
7717 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
7718 (build_and_insert_binop): New.
7719 (gimple_expand_builtin_pow): Reorder args for
7720 build_and_insert_call; use build_and_insert_binop; add more
7721 optimizations for fractional exponents.
7722
7723 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
7724
7725 PR bootstrap/49190
7726
7727 Revert:
7728 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
7729
7730 * tree.h (struct tree_identifier): Inherit from tree_typed, not
7731 tree_common.
7732 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
7733 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
7734 TS_BASE instead of TS_COMMON.
7735 * varasm.c (assemble_name): Remove assert.
7736
7737 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
7738
7739 * config.gcc: Keep obselete list sorted.
7740
7741 2011-05-30 Jakub Jelinek <jakub@redhat.com>
7742 Eric Botcazou <ebotcazou@adacore.com>
7743
7744 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
7745 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
7746 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
7747 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
7748 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
7749
7750 2011-05-30 Richard Guenther <rguenther@suse.de>
7751
7752 * gimple.c (gimple_types_compatible_p_1): Compare record
7753 and union type members properly.
7754
7755 2011-05-30 Richard Guenther <rguenther@suse.de>
7756
7757 PR tree-optimization/49210
7758 * ipa-split.c (split_function): Care for the case where the call
7759 result is not trivially convertible to the result holding variable.
7760
7761 2011-05-30 Richard Guenther <rguenther@suse.de>
7762
7763 PR tree-optimization/49218
7764 * tree-vrp.c (adjust_range_with_scev): Properly check whether
7765 overflow occured.
7766
7767 2011-05-30 Richard Guenther <rguenther@suse.de>
7768
7769 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
7770 New function split out from ...
7771 (forward_propagate_into_gimple_cond): ... here. Adjust.
7772 (forward_propagate_into_cond): Likewise.
7773 (forward_propagate_comparison): Also propagate into
7774 comparisons on assignment RHS. Change return value to
7775 behave similar to forward_propagate_into_cond.
7776 (tree_ssa_forward_propagate_single_use_vars): Handle
7777 strict-overflow warnings properly for forward_propagate_comparison.
7778
7779 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7780
7781 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
7782 from plugin linker.
7783 * configure: Regenerate.
7784
7785 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
7786
7787 PR tree-optimization/49199
7788 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7789 non-reduction operands are either defined in the loop or by induction.
7790
7791 2011-05-29 Xinliang David Li <davidxl@google.com>
7792
7793 * opts-global.c (handle_common_deferred_options): Handle new options.
7794 * passes.c (register_one_dump_file): Call register_pass_name.
7795 (execute_one_pass): Check explicit enable/disable flag.
7796 (passr_hash): New function.
7797 (passr_eq): Ditto.
7798 (register_pass_name): Ditto.
7799 (get_pass_by_name): Ditto.
7800 (pass_hash): Ditto.
7801 (pass_eq): Ditto.
7802 (enable_pass): Ditto.
7803 (disable_pass): Ditto.
7804 (is_pass_explicitly_enabled_or_disabled): Ditto.
7805
7806 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
7807
7808 * config/i386/i386.md (*movoi_internal_avx): Use
7809 standard_sse_constant_opcode for alternative 0.
7810 (*movti_internal_sse): Ditto.
7811 (*movti_internal_rex64): Use standard_sse_constant_opcode for
7812 alternative 2.
7813 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
7814 sselog1 type moves.
7815 (*movsi_internal): Ditto.
7816 (*movdi_internal): Ditto. Add ssecvt type moves.
7817
7818 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
7819
7820 PR target/48830
7821 * rtlanal.c (simplify_subreg_regno): Adjust comment.
7822
7823 2011-05-29 Jakub Jelinek <jakub@redhat.com>
7824
7825 PR rtl-optimization/49095
7826 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
7827 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
7828
7829 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7830
7831 PR target/43995
7832 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
7833 recurse_p argument. Only follow register copies if it is set,
7834 and prevent mips_find_pic_call_symbol from recursing.
7835 (mips_find_pic_call_symbol): Add a recurse_p argument.
7836 Pass it to mips_pic_call_symbol_from_set.
7837 (mips_annotate_pic_calls): Update accordingly.
7838
7839 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
7840
7841 * emit-rtl.c (try_split): Use a loop to search for
7842 NOTE_INSN_CALL_ARG_LOCATIONs.
7843
7844 2011-05-29 Richard Guenther <rguenther@suse.de>
7845
7846 PR tree-optimization/49217
7847 * ipa-pure-const.c (propagate_pure_const): Fix typos.
7848
7849 2011-05-28 Jan Hubicka <jh@suse.cz>
7850
7851 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
7852 length.
7853 (string_slot_free): Remove
7854 (create_output_block): Initialize obstack.
7855 (destroy_output_block): Free obstack.
7856 (lto_string_index): Add PERSISTENT parameter; do not duplicate
7857 the string unless it needs to be added into the hash.
7858 (lto_output_string_with_length): Add persistent attribute;
7859 handle NULL strings.
7860 (lto_output_string): Add PERSISTENT parameter.
7861 (output_string_cst, output_identifier): Simplify.
7862 (lto_output_location_bitpack): Update.
7863 (lto_output_builtin_tree): Update.
7864 * lto-streamer.h (struct output_block): Add obstack.
7865 (lto_output_string, lto_output_string_with_length): Remove
7866 declarations; functions are static now.
7867
7868 2011-05-28 Jan Hubicka <jh@suse.cz>
7869
7870 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
7871 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
7872 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
7873 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
7874 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
7875 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
7876 unpack_ts_decl_with_vis_value_fields,
7877 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
7878 lto_get_builtin_tree): Use enum and variable length i/o.
7879 * basic-block.h (profile_status_d): Add PROFILE_LAST.
7880 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
7881 New functions.
7882 (bp_pack_enum, bp_unpack_enum): New macros.
7883
7884 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7885
7886 * genrecog.c: Remove redundant forward declarations.
7887
7888 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7889
7890 * config.gcc: Deprecate mips*-*-openbsd*.
7891
7892 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
7893
7894 PR bootstrap/49195
7895 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
7896 for match_op_dup.
7897
7898 2011-05-27 Andrew Pinski <pinskia@gmail.com>
7899
7900 PR middle-end/48981
7901 * gengtype.c (vec_prefix_type): New function.
7902 (note_def_vec): Use vec_prefix_type and change the length
7903 attribute to be based on the prefix.
7904 * vec.c: Include coretypes.h before vec.h.
7905 (struct vec_prefix): Remove.
7906 (vec_gc_p_reserve): Change the offsetof to sizeof.
7907 (vec_gc_p_reserve_exact): Likewise.
7908 (vec_heap_p_reserve): Likewise.
7909 (vec_heap_p_reserve_exact): Likewise.
7910 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
7911 (vec_stack_p_reserve): Change the offsetof to sizeof.
7912 (vec_stack_p_reserve_exact): Likewise.
7913 * vec.h (struct vec_prefix): New struct definition.
7914 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
7915 (VEC_T_GTY(T,B)): Likewise.
7916 (DEF_VEC_FUNC_P(T)): Use prefix field.
7917 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
7918 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
7919
7920 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7921
7922 PR tree-optimization/46728
7923 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
7924 (powi_as_mults): Add gimple_set_location.
7925 (build_and_insert_call): New.
7926 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
7927 0.5, 0.25, 0.75, 1./3., or 1./6.
7928
7929 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
7930
7931 * doc/contrib.texi: Update copyright years.
7932 (Contributors): Add Zdenek Sojka.
7933
7934 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
7935
7936 * c-decl.c (c_push_function_context): Copy the current statement
7937 list stack.
7938 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
7939 (finish_struct): Call building_stmt_list_p instead of checking
7940 cur_stmt_list.
7941 * c-parser.c (c_parser_postfix_expression): Likewise.
7942 * c-typeck.c (c_end_compound_stmt): Likewise.
7943 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
7944 * tree-iterator.c (stmt_list_cache): Change to a VEC.
7945 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
7946 (free_stmt_list): Likewise.
7947 * tree.h (struct tree_statement_list): Include typed_tree instead
7948 of tree_common.
7949 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
7950 as TS_TYPED instead of TS_COMMON.
7951
7952 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7953 Uros Bizjak <ubizjak@gmail.com>
7954
7955 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
7956 (HAVE_AS_IX86_TLSGDPTL): Define.
7957 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
7958 (HAVE_AS_IX86_TLSLDMPLT): Define.
7959 * configure: Regenerate.
7960 * config.in: Regenerate.
7961 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
7962 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
7963 TARGET_SUN_TLS, use @tlsgdplt or @plt.
7964 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
7965 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
7966 @tlsldmplt or @plt.
7967 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
7968
7969 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7970
7971 * sched-int.h (struct _haifa_deps_insn_data): New members cond
7972 and reverse_cond.
7973 (INSN_COND, INSN_REVERSE_COND): New macros.
7974 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
7975 once.
7976 (sched_get_condition_with_rev): Cache the results, and look them up
7977 if possible.
7978 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
7979 are clobbered by the current insn.
7980 * target.def (exposed_pipline): New sched data hook.
7981 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
7982 * doc/tm.texi: Regenerate.
7983
7984 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7985
7986 PR tree-optimization/49170
7987 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
7988 sincos or cexp.
7989
7990 2011-05-27 Richard Guenther <rguenther@suse.de>
7991
7992 PR middle-end/49189
7993 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
7994 of comparisons.
7995
7996 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
7997
7998 * haifa-sched.c (sched_scan_info): Remove.
7999 (schedule_block): Call sched_extend_luids rather than sched_init_luids
8000 with NULL args.
8001 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
8002 Remove functions.
8003 (sched_scan): Remove.
8004 (sched_extend_luids): Renamed from luids_extend_insn and no longer
8005 static. All callers changed.
8006 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
8007 static. All callers changed.
8008 (sched_init_luids): Remove all arguments except the first. All
8009 callers changed. Don't use sched_scan.
8010 (haifa_init_h_i_d): Likewise.
8011 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
8012 manually rather than using sched_init_luids. Likewise with
8013 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
8014 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
8015 rather than sched_init_luids with NULL args.
8016 * sel-sched-ir.c (new_insns): Remove variable.
8017 (sched_scan): New static function, previously in haifa-sched.c. Remove
8018 all arguments but the first two; all callers changed.
8019 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
8020 rather than sched_init_luids.
8021 (sel_init_bbs): Remove second argument. All callers changed.
8022 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
8023 with NULL arguments.
8024 (create_insn_rtx_from_pattern): Likewise.
8025 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
8026 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
8027 (sched_init_insn_luid, sched_extend_luids): Declare.
8028 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
8029 declarations.
8030
8031 2011-05-27 Richard Guenther <rguenther@suse.de>
8032
8033 PR middle-end/49177
8034 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
8035 A CMP B ? (T) true : (T) false for non-integral types T again.
8036
8037 2011-05-27 Jan Hubicka <jh@suse.cz>
8038
8039 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
8040 so 0 means NULL string.
8041 (lto_output_string_with_length): ... here.
8042 (lto_output_string, output_string_cst, output_identifier): Update
8043 handling of NULL strings.
8044 (lto_output_location_bitpack): New function.
8045 (lto_output_location): Use it.
8046 (lto_output_tree_ref): Use output_record_start.
8047 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
8048 len values.
8049 * lto-streamer-in.c (string_for_index): Break out from ...; offset
8050 values by 1.
8051 (input_string_internal): ... here;
8052 (input_string_cst, input_identifier, lto_input_string): Update handling
8053 of NULL strings.
8054 (lto_input_location_bitpack): New function
8055 (lto_input_location): Use it.
8056 (unpack_ts_type_common_value_fields): Pack align & alias in var len
8057 values.
8058 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
8059 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
8060 (bp_pack_value): Sanity check the value range.
8061 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
8062 New functions.
8063 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
8064 New functions.
8065
8066 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
8067
8068 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
8069 call_arg_location instructions down the floor.
8070
8071 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
8072
8073 PR rtl-optimization/49154
8074 * ira.c (setup_pressure_classes): Process class without sublcasses
8075 as a candidate for pressure classes.
8076
8077 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
8078
8079 PR rtl-optimization/48575
8080 * genrecog.c (position_type): New enum.
8081 (position): New structure.
8082 (decision): Use position structure instead of a string.
8083 (root_pos, peep2_insn_pos_list): New variables.
8084 (next_position, compare_positions): New functions.
8085 (new_decision): Use position structures instead of strings.
8086 (maybe_both_true): Likewise.
8087 (change_state): Likewise.
8088 (write_tree): Likewise.
8089 (make_insn_sequence): Likewise.
8090
8091 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8092
8093 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
8094 TS_BASE instead of TS_COMMON.
8095 (find_decls_types_r): Check for TS_TYPED structure before looking at
8096 TREE_TYPE.
8097 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
8098 Add chain field.
8099 (BLOCK_CHAIN): Use new chain field.
8100
8101 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
8102
8103 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
8104 moves expensive on Power7 also.
8105
8106 2011-05-26 Richard Guenther <rguenther@suse.de>
8107
8108 * fold-const.c (fold_unary_loc): Remove bogus code.
8109
8110 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
8111
8112 * tree.h (struct tree_identifier): Inherit from tree_typed, not
8113 tree_common.
8114 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
8115 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
8116 TS_BASE instead of TS_COMMON.
8117 * varasm.c (assemble_name): Remove assert.
8118
8119 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8120
8121 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
8122 substituted first.
8123 * libgcc-std.ver: Delete file.
8124
8125 2011-05-26 Richard Guenther <rguenther@suse.de>
8126
8127 PR tree-optimization/48702
8128 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
8129 only when we know the base address is within bounds.
8130 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
8131 assume the base address of TARGET_MEM_REFs is in bounds.
8132
8133 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8134
8135 PR target/49099
8136 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
8137 declaration in TARGET_SOLARIS.
8138
8139 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
8140
8141 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
8142 The instruction is then expanded explicitly.
8143 (supported_compare): Callable instruction.
8144 (compare): Likewise.
8145
8146 2011-05-26 Jakub Jelinek <jakub@redhat.com>
8147
8148 PR c++/49165
8149 * gimplify.c (shortcut_cond_r): Don't special case
8150 COND_EXPRs if they have void type on one of their arms.
8151
8152 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
8153
8154 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
8155 to reduce duplication, and to achieve a slightly more logical order
8156 of operations.
8157
8158 2011-05-26 Jakub Jelinek <jakub@redhat.com>
8159
8160 PR tree-optimization/49161
8161 * tree-vrp.c (struct case_info): New type.
8162 (compare_case_labels): Sort case_info structs instead of
8163 trees, and not primarily by CASE_LABEL uids but by
8164 label_for_block indexes.
8165 (find_switch_asserts): Put case labels into struct case_info
8166 array instead of TREE_VEC, adjust sorting, compare label_for_block
8167 values instead of CASE_LABELs.
8168
8169 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8170
8171 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
8172 ("orndi3_neon"): Likewise.
8173 ("bic<mode>3_neon"): Likewise.
8174
8175 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
8176
8177 PR tree-optimization/49038
8178 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
8179 Ensure at least one epilogue iteration if required by data
8180 accesses with gaps.
8181 * tree-vectorizer.h (struct _loop_vec_info): Add new field
8182 to mark loops that require peeling for gaps.
8183 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
8184 (vect_get_known_peeling_cost): Take peeling for gaps into
8185 account.
8186 (vect_transform_loop): Generate epilogue if required by data
8187 access with gaps.
8188 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
8189 loop as requiring an epilogue if there are gaps in the end of
8190 the strided group.
8191
8192 2011-05-25 Ian Lance Taylor <iant@google.com>
8193
8194 * godump.c (go_format_type): Output the first field with a usable
8195 Go type, if any.
8196
8197 2011-05-25 Ian Lance Taylor <iant@google.com>
8198
8199 * godump.c (go_format_type): Check for invalid type names, pointer
8200 target types, and struct field types.
8201
8202 2011-05-25 Jason Merrill <jason@redhat.com>
8203
8204 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
8205
8206 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
8207
8208 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
8209
8210 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8211
8212 * config/i386/i386.md (*movqi_extv_1)): Put back
8213 "register_operand" check in "type" calculation.
8214 (*movqi_extzv_2): Likewise.
8215
8216 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8217
8218 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
8219
8220 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8221
8222 PR bootstrap/49160
8223 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
8224 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
8225 __divxc3, __divtc3): Wrap definitions in #ifndef.
8226
8227 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8228
8229 PR target/49142
8230 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
8231 "register_operand" check and replace q_regs_operand with
8232 QIreg_operand in "type" calculation.
8233 (*movqi_extv_1): Likewise.
8234 (*movqi_extzv_2_rex64): Likewise.
8235 (*movqi_extzv_2): Likewise.
8236
8237 * config/i386/predicates.md (QIreg_operand): New.
8238
8239 2011-05-25 Richard Guenther <rguenther@suse.de>
8240
8241 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
8242 type-based offset disambiguation, streamline MEM_REF and
8243 TARGET_MEM_REF handling.
8244
8245 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
8246
8247 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
8248 (bdesc_special_args): Add pause intrinsic.
8249
8250 * config/i386/i386.md (UNSPEC_PAUSE): New.
8251 (pause): Likewise.
8252 (*pause): Likewise.
8253 * config/i386/ia32intrin.h (__pause): Likewise.
8254
8255 * doc/extend.texi (X86 Built-in Functions): Add documentation for
8256 pause intrinsic.
8257
8258 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8259
8260 PR tree-optimization/46728
8261 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
8262 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
8263
8264 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
8265
8266 * tree.h (struct tree_exp): Inherit from struct tree_typed.
8267 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
8268 instead of TS_COMMON.
8269
8270 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
8271
8272 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
8273 LIBGCC2_GNU_PREFIX is defined.
8274 (__N): New macro.
8275 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
8276 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
8277 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
8278 __clz_tab): Define using __N.
8279 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
8280 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
8281 * target.def (libfunc_gnu_prefix): New hook.
8282 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
8283 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
8284 * doc/tm.texi: Regenerate.
8285 * system.h (LIBGCC2_GNU_PREFIX): Poison.
8286 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
8287 account.
8288 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
8289 (init_optabs): Likewise for the bswap libfuncs.
8290 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
8291 and divide.
8292 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
8293 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
8294 * libgcc-std.ver: Remove.
8295 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
8296 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
8297 libgcc-std.ver.
8298 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8299 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
8300 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
8301 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
8302 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
8303 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8304 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
8305 * config/fixed-bit.h (FIXED_OP): Define differently depending on
8306 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
8307 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
8308
8309 2011-05-25 Jan Hubicka <jh@suse.cz>
8310
8311 * lto-streamer-out.c (output_record_start): Use lto_output_enum
8312 (lto_output_tree): Use output_record_start.
8313 * lto-streamer-in.c (input_record_start): Use lto_input_enum
8314 (lto_get_pickled_tree): Use input_record_start.
8315 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
8316 (lto_value_range_error): New function.
8317 * lto-streamer.h (lto_value_range_error): Declare.
8318 (lto_output_int_in_range, lto_input_int_in_range): New functions.
8319 (lto_output_enum, lto_input_enum): New macros.
8320
8321 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
8322
8323 * common.opt (flag_stack_usage_info): New variable.
8324 (-Wstack-usage): New option.
8325 * doc/invoke.texi (Warning options): Document -Wstack-usage.
8326 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
8327 <OPT_fstack_usage>: Likewise.
8328 * toplev.c (output_stack_usage): Handle -Wstack-usage.
8329 * calls.c (expand_call): Test flag_stack_usage_info variable instead
8330 of flag_stack_usage.
8331 (emit_library_call_value_1): Likewise.
8332 * explow.c (allocate_dynamic_stack_space): Likewise.
8333 * function.c (instantiate_virtual_regs ): Likewise.
8334 (prepare_function_start): Likewise.
8335 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
8336 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
8337 * config/arm/arm.c (arm_expand_prologue): Likewise.
8338 (thumb1_expand_prologue): Likewise.
8339 * config/avr/avr.c (expand_prologue): Likewise.
8340 * config/i386/i386.c (ix86_expand_prologue): Likewise.
8341 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
8342 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
8343 * config/mips/mips.c (mips_expand_prologue): Likewise.
8344 * config/pa/pa.c (hppa_expand_prologue): Likewise.
8345 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
8346 * config/s390/s390.c (s390_emit_prologue): Likewise.
8347 * config/sh/sh.c (sh_expand_prologue): Likewise.
8348 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
8349 * config/spu/spu.c (spu_expand_prologue): Likewise.
8350
8351 2011-05-25 Richard Guenther <rguenther@suse.de>
8352
8353 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
8354 (gimple_canonical_types_compatible_p): Likewise.
8355
8356 2011-05-25 Jan Hubicka <jh@suse.cz>
8357
8358 PR middle-end/49062
8359 * ipa.c (function_and_variable_visibility): Only add to same
8360 comdat group list if DECL_ONE_ONLY.
8361
8362 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
8363
8364 PR rtl-optimization/49014
8365 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
8366
8367 2011-05-25 Jakub Jelinek <jakub@redhat.com>
8368
8369 PR target/49128
8370 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
8371
8372 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8373
8374 PR rtl-optimization/48757
8375 * ira-build.c (loop_with_eh_edge_p): Rename to
8376 loop_with_complex_edge_p, check edges on complexity, make function
8377 conditional.
8378 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
8379 conditional.
8380
8381 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8382
8383 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
8384 force flag_ira_share_save_slots to 0.
8385
8386 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8387
8388 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
8389 (vt_initialize): Set PROLOGUE_BB unconditionally.
8390 Add block comment about CFA_BASE_RTX machinery.
8391 Reset FP_CFA_OFFSET to -1 on all invalid paths.
8392 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
8393
8394 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
8395
8396 PR objc/48187
8397 * c-parser.c (c_parser_objc_class_instance_variables): More robust
8398 parsing of syntax error in ObjC instance variable lists. In
8399 particular, avoid an infinite loop if there is a stray ']'.
8400 Updated error message.
8401
8402 2011-05-24 Ian Lance Taylor <iant@google.com>
8403
8404 * godump.c (go_define): Don't accept a string immediately after
8405 another operand.
8406
8407 2011-05-24 Ian Lance Taylor <iant@google.com>
8408
8409 * godump.c (struct godump_container): Add invalid_hash field.
8410 (go_format_type): Return false if type is found in invalid_hash.
8411 (go_output_typedef): Add invalid type to invalid_hash.
8412 (go_finish): Create and delete invalid_hash.
8413
8414 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8415
8416 PR tree-optimization/46728
8417 * tree-ssa-math-opts.c (powi_table): New.
8418 (powi_lookup_cost): New.
8419 (powi_cost): New.
8420 (powi_as_mults_1): New.
8421 (powi_as_mults): New.
8422 (gimple_expand_builtin_powi): New.
8423 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
8424 (gate_cse_sincos): Remove sincos/cexp restriction.
8425
8426 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8427
8428 PR target/3746
8429 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
8430 mips-tdump native.
8431 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
8432 * mips-tdump.c: Likewise.
8433
8434 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
8435
8436 PR target/49128
8437 * config/i386/driver-i386.c (host_detect_local_cpu): Always
8438 add -mno-XXX. Handle FMA.
8439
8440 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8441
8442 PR rtl-optimization/48633
8443 * ira-build.c (loop_with_eh_edge_p): New function.
8444 (mark_loops_for_removal): Use it.
8445
8446 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
8447
8448 PR rtl-optimization/48971
8449 * ira.c (setup_pressure_classes): Don't check register move cost
8450 for classes with one registers. Don't add pressure class if there
8451 is a pressure class with the same available hard registers.
8452 Check contains_reg_of_mode. Fix a typo in collecting
8453 temp_hard_regset. Ignore hard registers not belonging to a class.
8454
8455 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
8456
8457 PR target/49133
8458 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
8459
8460 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
8461 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8462
8463 PR gcov-profile/48845
8464 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
8465
8466 2011-05-24 Richard Guenther <rguenther@suse.de>
8467
8468 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
8469 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
8470 (gimple_types_compatible_p_1): Adjust.
8471 (iterative_hash_canonical_type): Do not bother about complete vs.
8472 incomplete types.
8473 (gimple_canonical_types_compatible_p): Likewise.
8474
8475 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8476
8477 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
8478
8479 2011-05-24 Richard Guenther <rguenther@suse.de>
8480
8481 PR bootstrap/49078
8482 * gimple.c (gimple_register_canonical_type): Revert
8483 previous change.
8484 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
8485 does not for a tree for the case where it matters. Cache
8486 pointer-type alias-sets.
8487
8488 2011-05-24 Joseph Myers <joseph@codesourcery.com>
8489
8490 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
8491 (OBJS): Remove options.o, opts-common.o and prefix.o.
8492 (OBJS-libcommon-target): New.
8493 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
8494 (BACKEND): Include libcommon-target.a.
8495 (MOSTLYCLEANFILES): Include libcommon-target.a.
8496 (libcommon-target.a): New.
8497 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
8498 prefix.o.
8499
8500 2011-05-23 Joseph Myers <joseph@codesourcery.com>
8501
8502 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
8503 parts of output shared with the driver.
8504 * optc-gen.awk: Don't generate parts of output not shared with the
8505 driver.
8506 * opth-gen.awk: Remove GCC_DRIVER conditionals.
8507 * doc/options.texi (SourcerInclude): Mention options-save.c.
8508 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
8509 (OBJS): Add options-save.o.
8510 (options-save.c, options-save.o): New.
8511 (options.o): Update dependencies.
8512 (gcc-options.o): Remove.
8513 (mostlyclean): Remove options-save.c.
8514
8515 2011-05-23 Jakub Jelinek <jakub@redhat.com>
8516
8517 PR debug/49032
8518 * dbxout.c: Include cgraph.h.
8519 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
8520 and without value expr, return NULL if no varpool node exists for
8521 it or if it is not needed.
8522 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
8523
8524 PR c/49120
8525 * c-decl.c (start_decl): Convert expr to void_type_node.
8526
8527 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
8528
8529 PR rtl-optimization/48826
8530 * emit-rtl.c (try_split): When splitting a call that is followed
8531 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
8532
8533 2011-05-23 Jakub Jelinek <jakub@redhat.com>
8534
8535 * cfgexpand.c (expand_debug_expr): For unused non-addressable
8536 parameters passed in memory prefer using DECL_INCOMING_RTL over
8537 the pseudos it will be copied into.
8538
8539 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
8540
8541 PR target/47315
8542 * config/i386/i386.c (ix86_option_override_internal): Save the
8543 initial options after checking vzeroupper.
8544
8545 2011-05-23 David Li <davidxl@google.com>
8546
8547 PR tree-optimization/48988
8548 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
8549 Initialize has_valid_pred for each pred chain.
8550
8551 2011-05-23 Richard Guenther <rguenther@suse.de>
8552
8553 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
8554 (iterative_hash_gimple_type): Always hash type names.
8555
8556 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
8557
8558 * c-typeck.c (build_function_call_vec): Tweak call to
8559 check_function_arguments.
8560
8561 2011-05-23 Richard Guenther <rguenther@suse.de>
8562
8563 PR tree-optimization/49115
8564 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
8565 is not necessarily carried out, do not claim it kills the ref.
8566 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
8567
8568 2011-05-23 Richard Guenther <rguenther@suse.de>
8569
8570 PR middle-end/15419
8571 * builtins.c (fold_builtin_memory_op): Be less restrictive about
8572 what pointer types we accept for folding.
8573
8574 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8575
8576 * gthr-gnat.c: Remove.
8577 * gthr-gnat.h: Remove.
8578 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
8579 * config/t-freebsd (LIB2ADDEH): Likewise.
8580 * config/t-linux (LIB2ADDEH): Likewise.
8581 * config/t-sol2 (LIB2ADDEH): Likewise.
8582 * config/ia64/t-vms (LIB2ADDEH): Likewise.
8583 * configure.ac (target_thread_file): Remove gnat handling.
8584 * configure: Regenerate.
8585 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
8586
8587 2011-05-23 Tristan Gingold <gingold@adacore.com>
8588 Eric Botcazou <ebotcazou@adacore.com>
8589
8590 * gcov.c (create_file_names): If no object directory is specified,
8591 keep the directory of the file.
8592
8593 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8594
8595 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
8596 * configure: Regenerate.
8597
8598 2011-05-23 Jakub Jelinek <jakub@redhat.com>
8599
8600 PR middle-end/48973
8601 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
8602 failed and the comparison has a single bit signed type, use
8603 constm1_rtx instead of const1_rtx for true value.
8604 (do_store_flag): If ops->type is single bit signed type, disable
8605 signel bit test optimization and pass -1 instead of 1 as last
8606 parameter to emit_store_flag_force.
8607
8608 2011-05-23 Tom de Vries <tom@codesourcery.com>
8609
8610 PR target/45098
8611 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
8612 function.
8613 (infer_loop_bounds_from_undefined): Use new function.
8614
8615 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8616
8617 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
8618 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
8619 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
8620 and -O0 otherwise.
8621 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
8622
8623 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8624
8625 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
8626 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
8627 returns true.
8628
8629 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
8630
8631 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
8632
8633 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8634
8635 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
8636 UNSPEC_MOVE_PIC pattern.
8637
8638 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
8639
8640 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
8641 (sparc-*-rtems*): Likewise.
8642 (sparc64-*-elf*): Likewise.
8643 (sparc64-*-rtems*): Likewise.
8644 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
8645 * config/sparc/t-crtin: New file.
8646 * config/sparc/t-sol2 (crti.o): Delete rule.
8647 (crtn.o): Likewise.
8648 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
8649 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
8650 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
8651 (ENDFILE_SPEC): Add crtn.o.
8652
8653 2011-05-22 Tom de Vries <tom@codesourcery.com>
8654
8655 PR middle-end/48689
8656 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
8657 CODE_CONTAINS_STRUCT (TS_COMMON).
8658
8659 2011-05-22 Jakub Jelinek <jakub@redhat.com>
8660
8661 PR middle-end/49029
8662 * expmed.c (extract_fixed_bit_field): Test whether target can be used
8663 only after deciding which mode to use.
8664
8665 2011-05-22 Tom de Vries <tom@codesourcery.com>
8666
8667 PR target/45098
8668 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
8669 for call to get_shiftadd_cost.
8670
8671 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
8672
8673 PR target/49104
8674 * config/i386/cpuid.h (bit_MMXEXT): New define.
8675
8676 2011-05-22 Nick Clifton <nickc@redhat.com>
8677
8678 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
8679 initialisation of non-existant args[2] element. Use args[] array
8680 not arg[] array to pass arguments to build_function_type_list.
8681
8682 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
8683
8684 PR tree-optimization/49087
8685 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
8686
8687 2011-05-21 Jason Merrill <jason@redhat.com>
8688
8689 PR c++/49092
8690 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
8691 static storage duration.
8692
8693 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8694
8695 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
8696 frame pointer.
8697
8698 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
8699
8700 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
8701 false if there are call-saved registers here...
8702 (sparc_can_use_return_insn_p): ...but here instead.
8703 (save_or_restore_regs): Fix thinko.
8704 (sparc_expand_prologue): Use current_function_is_leaf.
8705 (sparc_frame_pointer_required): Likewise.
8706
8707 2011-05-21 Nick Clifton <nickc@redhat.com>
8708
8709 PR target/49098
8710 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
8711
8712 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
8713
8714 * gengtype.c (walk_type): Implemented "atomic" GTY option.
8715 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
8716
8717 2011-05-21 Joseph Myers <joseph@codesourcery.com>
8718
8719 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
8720 * optc-gen.awk: Move common code to opt-read.awk.
8721 * opth-gen.awk: Likewise.
8722 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
8723
8724 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
8725
8726 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
8727
8728 2011-05-20 Tom de Vries <tom@codesourcery.com>
8729
8730 PR target/45098
8731 * tree-ssa-loop-ivopts.c: Include expmed.h.
8732 (get_shiftadd_cost): New function.
8733 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
8734
8735 2011-05-20 Jakub Jelinek <jakub@redhat.com>
8736
8737 PR bootstrap/49086
8738 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
8739 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
8740
8741 2011-05-20 Joseph Myers <joseph@codesourcery.com>
8742
8743 * Makefile.in: Update comment referring to $(OBJS-common).
8744
8745 2011-05-20 Ian Lance Taylor <iant@google.com>
8746
8747 * godump.c (go_output_typedef): Put enum constants in the macro
8748 hash table to avoid duplicate Go const definitions.
8749
8750 2011-05-20 Joseph Myers <joseph@codesourcery.com>
8751
8752 * Makefile.in (LIBDEPS): Add libcommon.a.
8753 (LIBS): Likewise.
8754 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
8755 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
8756 pretty-print.o and version.o.
8757 (OBJS-libcommon): New.
8758 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
8759 (BACKEND): Add libcommon.a.
8760 (MOSTLYCLEANFILES): Likewise.
8761 (libcommon.a): New.
8762 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
8763 (cpp$(exeext)): Likewise.
8764 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
8765 pretty-print.o and input.o.
8766 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
8767 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
8768 (errors.o): Remove.
8769 (mips-tfile): Don't explicitly use version.o.
8770 (mips-tdump): Likewise.
8771 (gcov.o): Depend on $(DIAGNOSTIC_H).
8772 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
8773 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
8774 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
8775 * gcov-dump.c: Include intl.h and diagnostic.h.
8776 (main): Initialize diagnostics.
8777 * gcov.c: Include diagnostic.h.
8778 (fnotice): Remove.
8779 (main): Initialize diagnostics.
8780 * lto-wrapper.c: Include diagnostic.h.
8781 (main): Initialize diagnostics.
8782
8783 2011-05-20 Michael Matz <matz@suse.de>
8784
8785 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
8786
8787 2011-05-20 Michael Matz <matz@suse.de>
8788 Richard Guenther <rguenther@suse.de>
8789
8790 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
8791 use lto_streamer_cache_append directly instead of returning a VEC.
8792 (preload_common_node): Remove.
8793 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
8794 track seen nodes.
8795 (lto_streamer_cache_create): Call lto_preload_common_nodes.
8796
8797 2011-05-20 Richard Guenther <rguenther@suse.de>
8798
8799 PR tree-optimization/49079
8800 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
8801 MEM_REFs correctly for the trailing array access detection.
8802 Special case constants the same way as decls for overall size
8803 constraining.
8804
8805 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
8806
8807 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
8808 argument expansion.
8809
8810 2011-05-20 Jakub Jelinek <jakub@redhat.com>
8811
8812 PR tree-optimization/49073
8813 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
8814 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8815 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
8816
8817 2011-05-20 Richard Guenther <rguenther@suse.de>
8818
8819 PR middle-end/48849
8820 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
8821 of pointer types the same way the middle-end does.
8822
8823 2011-05-20 Richard Guenther <rguenther@suse.de>
8824
8825 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
8826 or pointer-to chains. Delay all fixup to uniquify_nodes.
8827
8828 2011-05-19 Quentin Neill <quentin.neill@amd.com>
8829
8830 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
8831 (fma4_fmaddsub): Likewise
8832
8833 2011-05-19 Jan Hubicka <jh@suse.cz>
8834
8835 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
8836 (GIMPLE_TYPE_PAIR_SIZE): New macro.
8837 (type_pair_cache): New static var.
8838 (lookup_type_pair): Use fixed sized custom hash; make inline.
8839 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
8840 calls of lookup_type_pair.
8841 (print_gimple_types_stats): Remove cache stats.
8842 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
8843 and gtc_ob.
8844
8845 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
8846
8847 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
8848 when TARGET_RDRND is active.
8849 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
8850 Generate dummy SImode target register when target is NULL.
8851
8852 2011-05-19 Joseph Myers <joseph@codesourcery.com>
8853
8854 * config/arm/arm-fpus.def: New.
8855 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
8856 arm-fpus.def.
8857 * config/arm/arm-tables.opt: Regenerate.
8858 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
8859 (arm_option_override): Don't decode FPU name to string here.
8860 * config/arm/arm.opt (mfpu=): Use Enum.
8861 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
8862 Update dependencies.
8863
8864 2011-05-19 Joseph Myers <joseph@codesourcery.com>
8865
8866 * collect2.c: Include diagnostic.h.
8867 (fatal_perror, fatal, error, fancy_abort): Remove.
8868 (main): Set progname. Call xmalloc_set_program_name and
8869 diagnostic_initialize.
8870 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
8871 scan_libraries, resolve_lib_name): Call fatal_error instead of
8872 fatal and fatal_perror.
8873 * collect2.h (error, fatal, fatal_perror): Don't declare.
8874 * tlink.c: Include diagnostic-core.h.
8875 (recompile_files): Call fatal_error instead of fatal_perror.
8876 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
8877 pretty-print.o and input.o.
8878 (collect2.o, tlink.o): Update dependencies.
8879
8880 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8881
8882 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
8883
8884 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8885
8886 PR target/40483
8887 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
8888 COMDAT group syntax, both SPARC and x86 variants.
8889 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
8890 * configure: Regenerate.
8891 * config/sol2.h (TARGET_SOLARIS): Define.
8892 (PUSHSECTION_FORMAT): Remove.
8893 (SECTION_NAME_FORMAT): Define.
8894 * config/sol2.c: Include hashtab.h.
8895 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
8896 expansion, using SECTION_NAME_FORMAT.
8897 (solaris_comdat_htab): New variable.
8898 (struct comdat_entry): Define.
8899 (comdat_hash): New function.
8900 (comdat_eq): New function.
8901 (solaris_elf_asm_comdat_section): New function.
8902 (solaris_define_comdat_signature): New function.
8903 (solaris_code_end): New function.
8904 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
8905 (solaris_code_end): Declare.
8906 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
8907 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
8908 solaris_code_end.
8909 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
8910 Remove ATTRIBUTE_UNUSED.
8911 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
8912 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
8913 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
8914 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
8915 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
8916 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
8917 (PUSHSECTION_FORMAT): Remove.
8918 (SECTION_NAME_FORMAT): Redefine.
8919
8920 2011-05-19 Kai Tietz <ktietz@redhat.com>
8921
8922 * tree-cfg.c (verify_gimple_assign_binary): Barf on
8923 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
8924 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
8925
8926 2011-05-19 Anatoly Sokolov <aesok@post.ru>
8927 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8928
8929 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
8930
8931 2011-05-19 Richard Guenther <rguenther@suse.de>
8932
8933 PR middle-end/48985
8934 * tree-object-size.c (addr_object_size): If the pointed-to
8935 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
8936
8937 2011-05-19 Richard Guenther <rguenther@suse.de>
8938
8939 * gimple.c (gimple_types_compatible_p_1): Compare names of
8940 the types themselves.
8941 (iterative_hash_gimple_type): And hash them that way.
8942 (gimple_register_type_1): If we register a main variant properly
8943 initialize the leader to ourselves.
8944
8945 2011-05-19 Tom de Vries <tom@codesourcery.com>
8946
8947 PR target/45098
8948 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
8949 get_loop_invariant_expr_id.
8950 (get_loop_invariant_expr_id): Use get_expr_id.
8951 (parm_decl_cost): New function.
8952 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
8953 Improve bound cost estimation. Use different inv_expr_id for elim and
8954 express cases.
8955
8956 2011-05-19 Tom de Vries <tom@codesourcery.com>
8957
8958 PR target/45098
8959 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
8960 cost_base.cost == 0.
8961
8962 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
8963
8964 PR target/49002
8965 * config/i386/sse.md
8966 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
8967 load cast.
8968
8969 2011-05-18 Jakub Jelinek <jakub@redhat.com>
8970
8971 PR tree-optimization/49039
8972 * tree-vrp.c (extract_range_from_binary_expr): For
8973 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
8974 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
8975
8976 2011-05-18 Tom de Vries <tom@codesourcery.com>
8977
8978 PR target/45098
8979 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
8980
8981 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
8982
8983 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
8984 (*tls_global_dynamic_64): Ditto.
8985 (*tls_local_dynamic_base_32_gnu): Ditto.
8986 (*tls_local_dynamic_base_64): Ditto.
8987 (tls_initial_exec_64_sun): Ditto.
8988
8989 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
8990
8991 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
8992 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
8993 bf592-none.
8994 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
8995 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
8996 * config/bfin/bfin.c (bfin_cpus): Add bf592.
8997 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
8998 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
8999 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
9000 * config/bfin/elf.h (LIB_SPEC): Add bf592.
9001
9002 2011-05-18 Joseph Myers <joseph@codesourcery.com>
9003
9004 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
9005 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
9006 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
9007 target_thread_pointer, arm_structure_size_boundary, struct
9008 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
9009 struct abi_name, arm_all_abis): Remove.
9010 (arm_option_override) Don't process most enumerated option values here.
9011 Don't process target_fpe_name here. Work with integer not string for
9012 structure size boundary; use separate diagnostics for each case.
9013 * config/arm/arm.h (enum float_abi_type, enum
9014 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
9015 to arm-opts.h.
9016 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
9017 arm_structure_size_boundary): Remove.
9018 * config/arm/arm.opt (mabi=): Use Enum and Init.
9019 (arm_abi_type): New Enum and EnumValue entries.
9020 (mfloat-abi=): Use Enum and Init.
9021 (float_abi_type): New Enum and EnumValue entries.
9022 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
9023 (mfp16-format=): Use Enum and Init.
9024 (arm_fp16_format_type): New Enum and EnumValue entries.
9025 (mstructure-size-boundary=): Use UInteger and Init.
9026 (mtp=): Use Enum and Init.
9027 (arm_tp_type): New Enum and EnumValue entries.
9028
9029 2011-05-18 Richard Guenther <rguenther@suse.de>
9030
9031 PR tree-optimization/49018
9032 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
9033 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
9034 gimple_has_side_effects.
9035
9036 2011-05-18 Richard Guenther <rguenther@suse.de>
9037
9038 * gimple.c (gimple_register_type_1): New function, split out from ...
9039 (gimple_register_type): ... here. Avoid infinite recursion.
9040
9041 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
9042
9043 PR tree-optimization/41881
9044 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9045 reduction_chains along with a macro for its access.
9046 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
9047 (destroy_loop_vec_info): Free reduction chains.
9048 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
9049 (vect_is_slp_reduction): New function.
9050 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
9051 (vect_create_epilog_for_reduction): Support SLP reduction chains.
9052 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
9053 definition types for reduction chains.
9054 (vect_supported_load_permutation_p): Don't allow permutations for
9055 reduction chains.
9056 (vect_analyze_slp_instance): Support reduction chains.
9057 (vect_analyze_slp): Try to build SLP instance from reduction chains.
9058 (vect_get_constant_vectors): Handle reduction chains.
9059 (vect_schedule_slp_instance): Mark the first statement of the
9060 reduction chain as reduction.
9061
9062 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
9063
9064 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
9065 names for group elements access.
9066 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
9067 reduction chains as well. Remove data reference and interleaving
9068 related words from the fields names.
9069 * tree-vect-loop.c (vect_transform_loop): Use new names for group
9070 elements access.
9071 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
9072 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
9073 vect_update_interleaving_chain, vect_same_range_drs,
9074 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
9075 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
9076 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
9077 vect_analyze_group_access, vect_analyze_data_ref_access,
9078 vect_create_data_ref_ptr, vect_transform_strided_load,
9079 vect_record_strided_load_vectors): Likewise.
9080 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
9081 vect_model_load_cost, vectorizable_store, vectorizable_load,
9082 vect_remove_stores, new_stmt_vec_info): Likewise.
9083 * tree-vect-slp.c (vect_build_slp_tree,
9084 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
9085
9086 2011-05-18 Richard Guenther <rguenther@suse.de>
9087
9088 PR middle-end/48989
9089 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
9090 operand verification.
9091 (verify_gimple_assign_binary): Likewise.
9092 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
9093 to non-1-precision BOOLEAN_TYPEs.
9094
9095 2011-05-18 Tom de Vries <tom@codesourcery.com>
9096
9097 PR target/45098
9098 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
9099
9100 2011-05-18 Jakub Jelinek <jakub@redhat.com>
9101
9102 PR tree-optimization/49000
9103 * tree-ssa.c (execute_update_addresses_taken): Call
9104 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
9105 be rewritten and decl has been marked for renaming, reset
9106 the debug stmt.
9107
9108 2011-05-17 Joseph Myers <joseph@codesourcery.com>
9109
9110 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
9111 enum_opts_set when testing if attributes have set -mfpmath=.
9112
9113 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
9114
9115 * config/mips/mips.c (mips_handle_option): Remove unused variable.
9116
9117 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
9118
9119 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
9120 info->entry with 0
9121 * tree-inline.c (maybe_inline_call_in_expr): Initialize
9122 id.transform_lang_insert_block with NULL.
9123
9124 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
9125
9126 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
9127 (output_fp_compare): Change args 3 and 4 to bool.
9128 (ix86_expand_call): Change arg 6 to bool.
9129 (ix86_attr_length_immediate_default): Change arg 2 to bool.
9130 (ix86_attr_length_vex_default): Change arg 3 to bool.
9131 * config/i386/i386.md: Update all uses.
9132 * config/i386/i386.c: Ditto.
9133 (ix86_flags_dependent): Change return type to bool.
9134
9135 2011-05-17 Richard Guenther <rguenther@suse.de>
9136
9137 * gimple.c (type_hash_pair_compare): Fix comparison.
9138
9139 2011-05-17 Richard Guenther <rguenther@suse.de>
9140
9141 * gimple.c (iterative_hash_gimple_type): Simplify singleton
9142 case some more, fix final hash value of the non-singleton case.
9143
9144 2011-05-17 Richard Guenther <rguenther@suse.de>
9145
9146 PR bootstrap/49013
9147 Revert
9148 2011-05-16 Richard Guenther <rguenther@suse.de>
9149
9150 * gimple.c (gimple_types_compatible_p_1): Use names of the
9151 type itself, not its main variant.
9152 (iterative_hash_gimple_type): Likewise.
9153
9154 2011-05-17 Richard Guenther <rguenther@suse.de>
9155
9156 * gimple.c (gimple_register_canonical_type): Use the main-variant
9157 leader for computing the canonical type.
9158
9159 2011-05-17 Nick Clifton <nickc@redhat.com>
9160
9161 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
9162 moves.
9163
9164 * config/rx/rx.md: Add peephole to remove redundant extensions
9165 after loads.
9166 (bitset_in_memory): Use rx_restricted_mem_operand.
9167 (bitinvert_in_memory): Likewise.
9168 (bitclr_in_memory): Likewise.
9169
9170 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
9171 Nick Clifton <nickc@redhat.com>
9172
9173 * config/rx/rx.md: Add peepholes to match a register move followed
9174 by a comparison of the moved register. Replace these with an
9175 addition of zero that does both actions in one instruction.
9176
9177 2011-05-17 Jakub Jelinek <jakub@redhat.com>
9178
9179 PR target/48986
9180 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
9181 predicate to allow CONST_INT.
9182 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
9183
9184 2011-05-16 Joseph Myers <joseph@codesourcery.com>
9185
9186 * opts-common.c (opt_enum_arg_to_value): New.
9187 * opts.h (opt_enum_arg_to_value): Declare.
9188 * config/i386/i386.opt (fpmath): Remove.
9189 (mfpmath=): Use Enum, Init and Save.
9190 (fpmath_unit): New Enum and EnumValue entries.
9191 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
9192 name for function fpmath state.
9193 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
9194 * config/i386/i386.c: Include diagnostic.h.
9195 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
9196 (ix86_target_string): Take enum fpmath_unit value instead of string.
9197 (ix86_debug_options): Update call to ix86_target_string.
9198 (ix86_option_override_internal): Don't process fpmath strings here.
9199 (x86_function_specific_save, ix86_function_specific_restore):
9200 Don't handle fpmath state specially.
9201 (ix86_function_specific_print): Pass fpmath state to
9202 ix86_target_string instead of printing in this function.
9203 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
9204 Handle enum attributes.
9205 (IX86_ATTR_ENUM, ix86_opt_enum): New.
9206 (ix86_valid_target_attribute_tree): Update option_strings
9207 handling. Handle fpmath as enum option.
9208 (ix86_can_inline_p): Update field names for function fpmath state.
9209 (ix86_expand_builtin): Update call to ix86_target_string.
9210 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
9211 (ix86_fpmath): Remove.
9212 * config/i386/t-i386 (i386.o): Update dependencies.
9213
9214 2011-05-16 Joseph Myers <joseph@codesourcery.com>
9215
9216 PR preprocessor/48677
9217 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
9218 from decoded_options[0], not from itself.
9219
9220 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
9221
9222 * config/i386/constraints.md (z): New constraint.
9223 * config/i386/i386.c (c): New mode attribute.
9224 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
9225 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
9226 constraint for operand 0.
9227 (*call_vzeroupper): Ditto.
9228 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
9229 (*call_rex64_ms_sysv_vzeroupper): Ditto.
9230 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
9231 Use "lzm" constraint for operand 0.
9232 (*call_pop_vzeroupper): Ditto.
9233 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
9234 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
9235 constraint for operand 0.
9236 (*sibcall_vzeroupper): Ditto.
9237 (*sibcall_rex64_ms_sysv): Ditto.
9238 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
9239 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
9240 *sibcall_pop_1. Use "Uz" constraint for operand 0.
9241 (*sibcall_pop_vzeroupper): Ditto.
9242 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
9243 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
9244 mode iterator. Use "<c>zm" constraint for operand 1.
9245 (*call_value_vzeroupper): Ditto.
9246 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
9247 for operand 1.
9248 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
9249 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
9250 *call_value_pop_1. Use "lzm" constraint for operand 1.
9251 (*call_value_pop_vzeroupper): Ditto.
9252 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
9253 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
9254 mode iterator. Use "Uz" constraint for operand 1.
9255 (*sibcall_value_vzeroupper): Ditto.
9256 (*sibcall_value_rex64_ms_sysv): Ditto.
9257 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
9258 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
9259 constraint for operand 1.
9260 (*sibcall_value_pop_vzeroupper): Ditto.
9261 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
9262 and "z" constraint for operand 2.
9263 (*tls_global_dynamic_32_gnu): Ditto.
9264 (*tls_local_dynamic_base_32_gnu): Ditto.
9265 (*tls_local_dynamic_base_64): Ditto.
9266 (*tls_local_dynamic_32_once): Ditto.
9267 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
9268 Update all callers.
9269 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
9270
9271 2011-05-16 Richard Guenther <rguenther@suse.de>
9272
9273 * gimple.c (gimple_types_compatible_p_1): Use names of the
9274 type itself, not its main variant.
9275 (iterative_hash_gimple_type): Likewise.
9276
9277 2011-05-16 Richard Guenther <rguenther@suse.de>
9278
9279 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
9280 always visit pointer target and function result and argument types.
9281
9282 2011-05-16 Jason Merrill <jason@redhat.com>
9283
9284 PR c++/48999
9285 * tree-inline.c (copy_statement_list): Put back recursion.
9286
9287 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
9288
9289 PR target/27663
9290 PR target/41076
9291 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
9292 * config/avr/avr.md ("*ior<mode>qi.byte0",
9293 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
9294
9295 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
9296
9297 PR target/45099
9298 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
9299 register is needed for a function argument.
9300
9301 2011-05-16 Richard Guenther <rguenther@suse.de>
9302
9303 * gimple.c (struct type_hash_pair): New type.
9304 (type_hash_pair_compare): New function.
9305 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
9306
9307 2011-05-16 Revital Eres <revital.eres@linaro.org>
9308
9309 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
9310
9311 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
9312
9313 * config/i386/i386.md (floating point move splitters): Fix
9314 usage of standard_80387_constant_p.
9315 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
9316
9317 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
9318
9319 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
9320
9321 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
9322
9323 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
9324 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
9325 (tree_ssa_lim_finalize): Likewise.
9326
9327 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
9328
9329 * config/i386/constraint.md (Yd, Yx): New register constraints.
9330 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
9331 Yd conditional register constraint.
9332 (*movtf_internal): Use standard_sse_constant_opcode.
9333 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
9334 Yx conditional register constraint.
9335 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
9336 Yd conditional register constraint. Use standard_sse_constant_p to
9337 check for valid SSE constants and call standard_sse_constant_opcode to
9338 output SSE insn.
9339 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
9340 constants and call standard_sse_constant_opcode to output SSE insn.
9341 * config/i386/i386.c (ix86_option_ovverride_internal): Set
9342 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
9343 optimize_size is set.
9344 (standard_sse_constant_opcode): Output conditional AVX insn templates.
9345
9346 2011-05-14 Tobias Burnus <burnus@net-b.de>
9347
9348 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
9349
9350 2011-05-13 Martin Jambor <mjambor@suse.cz>
9351
9352 * ipa-prop.c (ipa_cst_from_jfunc): New function.
9353 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
9354 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
9355 (evaluate_conditions_for_ipcp_clone): Removed.
9356 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
9357 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
9358 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
9359
9360 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
9361
9362 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
9363 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
9364 lieu of MAY_HAVE_DEBUG_STMTS.
9365 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
9366 debug statements if !MAY_HAVE_DEBUG_STMTS.
9367
9368 2011-05-13 Martin Thuresson <martint@google.com>
9369
9370 PR gcov-profile/47793
9371 * libgcov.c (gcov_exit): Support relative profile paths.
9372 * doc/invoke.texi (-fprofile-dir): Update for above change.
9373
9374 2011-05-13 Richard Guenther <rguenther@suse.de>
9375
9376 * gimple.c (gimple_canonical_types_compatible_p): Do not use
9377 type-pair caching, do not compare hashes.
9378
9379 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
9380
9381 PR middle-end/48965
9382 * tree-cfg.c (edge_to_cases_cleanup): Return true.
9383 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
9384
9385 2011-05-13 Kai Tietz <ktietz@redhat.com>
9386
9387 * gimplify.c (gimplify_expr): Make sure operand is boolified.
9388 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
9389 compatible type for TRUTH_NOT_EXPR.
9390
9391 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
9392
9393 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
9394 (ix86_hard_regno_mode_ok): Change return value to bool. Use
9395 can_create_pseudo_p ().
9396
9397 2011-05-13 Richard Guenther <rguenther@suse.de>
9398
9399 PR lto/48978
9400 * gimple.c (iterative_hash_gimple_type): Revert change in
9401 pointer target and function result and argument hashing.
9402
9403 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
9404
9405 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
9406 (*movxf_internal_nointeger): Ditto.
9407 (*movdf_internal_rex64): Ditto.
9408 (*movdf_internal): Ditto.
9409 (*movdf_internal_nointeger): Ditto.
9410 (*movsf_internal): Ditto.
9411 (sincos splitters): Use can_create_pseudo ().
9412
9413 2011-05-13 Joseph Myers <joseph@codesourcery.com>
9414
9415 * config/i386/i386-opts.h: New.
9416 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
9417 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
9418 ix86_section_threshold): Remove.
9419 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
9420 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
9421 OPT_mbranch_cost_.
9422 (ix86_option_override_internal): Don't decode strings for options
9423 other than -march=, -mtune= and -mfpmath=. Don't allow for
9424 __attribute__ uses in remaining diagnostics for options with
9425 string arguments. Don't check for integer arguments being negative.
9426 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
9427 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
9428 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
9429 ix86_branch_cost, ix86_section_threshold): Remove.
9430 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
9431 HeaderInclude.
9432 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
9433 but not Var.
9434 (masm=): Use Enum and Init.
9435 (asm_dialect): New Enum and EnumValue entries.
9436 (mbranch-cost=): Use UInteger.
9437 (mlarge-data-threshold=): Use UInteger and Init.
9438 (mcmodel=): Use Enum and Init.
9439 (cmodel): New Enum and EnumValue entries.
9440 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
9441 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
9442 mregparm=): Use UInteger.
9443 (mstringop-strategy=): Use Enum and Init.
9444 (stringop_alg): New Enum and EnumValue entries.
9445 (mtls-dialect=): Use Enum and Init.
9446 (tls_dialect): New Enum and EnumValue entries.
9447 (mabi=): Use Enum and Init.
9448 (calling_abi): New Enum and EnumValue entries.
9449 (mveclibabi=): Use Enum and Init.
9450 (ix86_veclibabi): New Enum and EnumValue entries.
9451
9452 2011-05-13 Nick Clifton <nickc@redhat.com>
9453
9454 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
9455 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
9456
9457 2011-05-13 Kai Tietz <ktietz@redhat.com>
9458
9459 PR middle-end/48984
9460 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
9461 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
9462 (gimple_boolify): Check for cast for boolean_type_node instead for
9463 BOOLEAN_TYPE.
9464
9465 2011-05-13 Richard Guenther <rguenther@suse.de>
9466
9467 PR tree-optimization/48172
9468 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
9469 multiplying by number of iterations for equal step.
9470 (vect_create_cond_for_alias_checks): Likewise.
9471
9472 2011-05-13 Andreas Schwab <schwab@redhat.com>
9473
9474 * configure.ac: Use AS_HELP_STRING throughout.
9475 * configure: Regenerate.
9476
9477 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
9478
9479 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
9480 (ix86_emit_restore_regs_using_mov): Likewise.
9481 (ix86_emit_restore_sse_regs_using_mov): Likewise.
9482
9483 2011-05-12 Anatoly Sokolov <aesok@post.ru>
9484
9485 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
9486 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
9487 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
9488 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
9489 RTX_OK_FOR_OLO10_P): ...here.
9490 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
9491 SYMBOLIC_CONST.
9492
9493 2011-05-12 Kai Tietz <ktietz@redhat.com>
9494
9495 * gimplify.c (gimple_boolify): Re-boolify expression
9496 arguments even if expression type is of kind BOOLEAN_TYPE.
9497 (gimplify_boolean_expr): Removed.
9498 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
9499 and XOR. Additional take care that we keep expression's type.
9500 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
9501 of TRUTH_AND|OR|XOR_EXPR.
9502
9503 2011-05-12 Jakub Jelinek <jakub@redhat.com>
9504
9505 PR tree-optimization/48975
9506 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
9507 on all bbs here and free and clear ifc_bbs at the end.
9508
9509 2011-05-12 Richard Guenther <rguenther@suse.de>
9510
9511 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
9512 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
9513 until after simple checks.
9514 (gimple_types_compatible_p): Likewise.
9515 (iterative_hash_gimple_type): Always hash pointer targets
9516 and function return and argument types.
9517 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
9518 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
9519 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
9520 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
9521 completely in the simple compare section.
9522 (gimple_register_canonical_type): Query the cache again after
9523 registering.
9524
9525 2011-05-12 Richard Guenther <rguenther@suse.de>
9526
9527 PR tree-optimization/48172
9528 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
9529 the number of iterations from the segment size calculation.
9530 (vect_create_cond_for_alias_checks): Adjust.
9531
9532 2011-05-12 Jakub Jelinek <jakub@redhat.com>
9533
9534 PR debug/48967
9535 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
9536 if validate_subreg fails.
9537
9538 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
9539
9540 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
9541 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
9542 early.
9543
9544 2011-05-12 DJ Delorie <dj@redhat.com>
9545
9546 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
9547 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
9548 created builtin into rx_builtins array.
9549 (rx_builtin_decl): New function.
9550 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
9551
9552 2011-05-12 DJ Delorie <dj@redhat.com>
9553 Nick Clifton <nickc@redhat.com>
9554
9555 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
9556 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
9557 (rx_is_legitimate_address): Add pre-decrement and post-increment
9558 addressing in HImode and QImode. Fix test for out of range
9559 REG+INT addressing.
9560 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
9561 (rx_align_for_label): Test label before extracting its usage count.
9562 (rx_adjust_insn_lengths): Fix selection of insn codes.
9563 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
9564
9565 2011-05-11 Jason Merrill <jason@redhat.com>
9566
9567 * tree.c (type_hash_canon): Use struct tree_type_non_common.
9568
9569 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9570
9571 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
9572 reindent the subsequent block.
9573
9574 2011-05-11 Satoru Takabayashi <satorux@google.com>
9575 Paul Pluzhnikov <ppluzhnikov@google.com>
9576
9577 * doc/install.texi (Configuration): Document --with-linker-hash-style.
9578 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
9579 * config.in: Add LINKER_HASH_STYLE.
9580 * configure.ac: Add --with-linker-hash-style.
9581 * configure: Regenerate.
9582
9583 2011-05-11 Richard Guenther <rguenther@suse.de>
9584
9585 PR middle-end/48964
9586 * gimple.c (iterative_hash_canonical_type): Fix typo.
9587
9588 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
9589
9590 * config/i386/i386.c (legitimize_tls_address)
9591 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9592 expanders directly for TARGET_GNU2_TLS. Determine pic and
9593 __tls_get_addr symbol reference here. Update call to
9594 gen_tls_global_dynamic_{32,64} for added arguments.
9595 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
9596 expanders directly for TARGET_GNU2_TLS. Determine
9597 __tls_get_addr symbol reference here. Update call to
9598 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
9599 unique UNSPEC REG_EQUIV to libcall block.
9600 (ix86_tls_get_addr): Declare static.
9601 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
9602 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
9603 Do not determine pic and __tls_get_addr symbol reference here. Do not
9604 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
9605 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
9606 (tls_global_dynamic_64): Add operand 2. Do not determine
9607 __tls_get_addr symbol reference here. Do not call
9608 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
9609 (tls_local_dynamic_base64): Ditto for operand 1.
9610
9611 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
9612
9613 * function.c (expand_function_start): Initialize stack_check_probe_note
9614 only if the generic stack checking mechanism is used.
9615
9616 2011-05-11 Richard Guenther <rguenther@suse.de>
9617
9618 PR tree-optimization/15256
9619 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
9620 (A & B) | C, combine (A op CST1) op CST2.
9621 (tree_ssa_forward_propagate_single_use_vars): Only bother to
9622 visit assigns that have uses.
9623
9624 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
9625
9626 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
9627 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
9628 (unpack_ts_type_common_value_fields): ...this. Update comment.
9629 (unpack_value_fields): Adjust for renaming.
9630 (lto_input_ts_type_tree_pointers): Split into...
9631 (lto_input_ts_type_common_tree_pointer): ...this and...
9632 (lto_input_ts_type_non_common_tree_pointers): ...this.
9633 (lto_input_tree_pointers): Adjust for above split.
9634 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
9635 (pack_ts_type_common_value_fields): ...this. Update comment.
9636 (lto_output_ts_type_tree_pointers): Split into...
9637 (lto_output_ts_type_common_tree_pointers): ...this and...
9638 (lto_output_ts_type_non_common_tree_pointers): ...this.
9639 (lto_output_tree_pointers): Adjust for above split.
9640 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
9641 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
9642 * stor-layout.c (vector_type_mode): Adjust location of mode field.
9643 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
9644 Define.
9645 (struct tree_type): Split into...
9646 (struct tree_type_common: ...this and...
9647 (struct tree_type_with_lang_specific): ...this and...
9648 (struct tree_type_non_common): ...this. Adjust accessor macros
9649 accordingly.
9650 (TYPE_VALUES_RAW): Define.
9651 (union tree_node): Update for above changes.
9652 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
9653 TS_TYPE_NON_COMMON.
9654 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
9655 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
9656 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
9657 * treestructu.def (TS_TYPE): Remove.
9658 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
9659 Define.
9660
9661 2011-05-11 Jakub Jelinek <jakub@redhat.com>
9662
9663 PR debug/48159
9664 * tree-ssa.c (reset_debug_uses): New function.
9665 * tree-flow.h (reset_debug_uses): New prototype.
9666 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
9667 * tree-loop-distribution.c (generate_loops_for_partition): Call
9668 reset_debug_uses on the stmts that will be removed. Keep around
9669 all debug stmts, don't count them as bits in partition bitmap.
9670 (generate_builtin): Don't count debug stmts or labels as bits in
9671 partition bitmap.
9672
9673 2011-05-11 Richard Guenther <rguenther@suse.de>
9674
9675 * gimple.c (gimple_type_hash_1): Merge with ...
9676 (gimple_type_hash): ... this.
9677 (gtc_visit): Remove mode parameter and simplify accordingly.
9678 (gimple_types_compatible_p_1): Likewise.
9679 (gimple_types_compatible_p): Likewise.
9680 (iterative_hash_gimple_type): Likewise.
9681 (visit): Likewise.
9682 (gimple_type_eq): Adjust.
9683
9684 2011-05-11 Revital Eres <revital.eres@linaro.org>
9685
9686 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
9687 enters the branch create an anti edge in the opposite direction
9688 to prevent the creation of reg-moves.
9689 * modulo-sched.c: Adjust comment to reflect the fact we are
9690 scheduling closing branch.
9691 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
9692 (stage_count): New field in struct partial_schedule.
9693 (calculate_stage_count): New function.
9694 (normalize_sched_times): Rename to reset_sched_times and handle
9695 incrementing the sched time of the nodes by a constant value
9696 passed as parameter.
9697 (duplicate_insns_of_cycles): Skip closing branch.
9698 (sms_schedule_by_order): Schedule closing branch.
9699 (ps_insn_find_column): Handle closing branch.
9700 (sms_schedule): Call reset_sched_times and adjust the code to
9701 support scheduling of the closing branch.
9702 (ps_insert_empty_row): Update calls to normalize_sched_times
9703 and rotate_partial_schedule functions.
9704
9705 2011-05-11 Richard Guenther <rguenther@suse.de>
9706
9707 PR middle-end/48953
9708 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
9709
9710 2011-05-11 Joseph Myers <joseph@codesourcery.com>
9711
9712 * opts.c (finish_options): Move warning settings from process_options.
9713 * toplev.c (process_options): Move warning settings to finish_options.
9714
9715 2011-05-11 Richard Guenther <rguenther@suse.de>
9716
9717 PR tree-optimization/18041
9718 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
9719 (simplify_bitwise_binary): ... this. Handle operand conversions
9720 by applying them to the result instead.
9721 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
9722
9723 2011-05-11 Richard Guenther <rguenther@suse.de>
9724
9725 * gimple.c (gimple_canonical_types_compatible_p): Split out
9726 from gimple_types_compatible_p and friends. Do not recurse
9727 to pointed-to types.
9728 (gimple_canonical_type_eq): Use it.
9729 (iterative_hash_canonical_type): Split out from
9730 iterative_hash_gimple_type and friends. Do not recurse
9731 to pointed-to types.
9732 (gimple_canonical_type_hash): Use it, allocate the hash here.
9733
9734 2011-05-11 Revital Eres <revital.eres@linaro.org>
9735
9736 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
9737 recognizing doloop.
9738
9739 2011-05-11 Revital Eres <revital.eres@linaro.org>
9740
9741 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
9742 instead of PREV_INSN.
9743
9744 2011-05-11 Revital Eres <revital.eres@linaro.org>
9745
9746 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
9747 * loop-doloop.c (doloop_condition_get): Likewise.
9748 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
9749 (doloop_end): New.
9750 * config/arm/arm.md (*addsi3_compare0): Remove "*".
9751
9752 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
9753
9754 * tree.def (CASE_LABEL_EXPR): Add an operand.
9755 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
9756
9757 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9758
9759 * c-decl.c (c_override_global_bindings_to_false): Remove.
9760 (global_bindings_p): Don't check
9761 c_override_global_bindings_to_false.
9762 * c-tree.h (c_override_global_bindings_to_false): Remove.
9763 * c-typeck.c (composite_type): Don't set
9764 c_override_global_bindings_to_false.
9765
9766 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
9767
9768 PR target/48857, 48495
9769 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
9770 (VSX_MODE): Ditto.
9771 (VSX_MOVE_MODE): Ditto.
9772 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
9773 VSX vector types. Add V2DImode.
9774 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
9775 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
9776 (MODES_TIEABLE_P): Ditto.
9777
9778 * config/rs6000/rs6000.c (rs6000_emit_move): Use
9779 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
9780 VSX_VECTOR_MODE.
9781 (init_cumulative_args): Ditto.
9782 (rs6000_function_arg_boundary): Ditto.
9783 (rs6000_function_arg_advance_1): Ditto.
9784 (rs6000_function_arg): Ditto.
9785 (rs6000_function_ok_for_sibcall): Ditto.
9786 (emit_frame_save): Ditto.
9787 (rs6000_function_value): Ditto.
9788 (rs6000_libcall_value): Ditto.
9789
9790 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9791
9792 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9793 i386/darwin-lib.h to $libgcc_tm_file.
9794 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
9795
9796 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9797
9798 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
9799
9800 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9801
9802 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
9803 * config/rs6000/rs6000-tables.opt: New file (generated).
9804 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
9805 rs6000/rs6000-tables.opt to extra_options.
9806 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
9807 * config/rs6000/rs6000.c (rs6000_select): Remove.
9808 (processor_target_table): Move contents to rs6000-cpus.def.
9809 (darwin_rs6000_override_options): Check
9810 global_options_set.x_rs6000_cpu_index instead of
9811 rs6000_select[1].string.
9812 (rs6000_option_override_internal): Likewise.
9813 (rs6000_handle_option): Don't assert that global structures are in
9814 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
9815 (rs6000_default_cpu): New variable.
9816 (rs6000_file_start): Set it instead of local default_cpu. Check
9817 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
9818 global_options_set.x_rs6000_tune_index instead of rs6000_select.
9819 (rs6000_darwin_file_start): Check rs6000_default_cpu and
9820 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
9821 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
9822 rs6000_select): Remove.
9823 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
9824 Remove.
9825 (mcpu=, mtune=): Use Var, Init, Enum and Save.
9826 * config/rs6000/t-rs6000
9827 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
9828 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9829 global_options_set.x_rs6000_cpu_index instead of
9830 rs6000_select[1].string.
9831 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
9832 global_options_set.x_rs6000_cpu_index instead of
9833 rs6000_select[1].string.
9834
9835 2011-05-10 Joseph Myers <joseph@codesourcery.com>
9836
9837 * config.gcc (libgcc_tm_file): Define instead of including files
9838 from ../../libgcc/config/ in tm_file.
9839 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
9840 * configure: Regenerate.
9841 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
9842 libgcc_tm.h, cs-libgcc_tm.h): New.
9843 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
9844 (clean): Remove libgcc_tm.h.
9845 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
9846 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
9847 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
9848
9849 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
9850
9851 PR target/48896
9852 * config/avr/avr.c (avr_ret_register): Return unsigned int
9853 instead of int.
9854 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
9855 it to avr_libcall_value.
9856 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
9857 expand_expr.
9858 (avr_expand_binop_builtin): Ditto.
9859 (avr_expand_unop_builtin): Ditto.
9860
9861 2011-05-10 DJ Delorie <dj@redhat.com>
9862
9863 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
9864 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
9865 * config/rx/rx.c (rx_align_for_label): Add label and
9866 uses_threshold parameters. Do not align when the label is not
9867 used enough.
9868 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
9869
9870 2011-05-10 Richard Guenther <rguenther@suse.de>
9871
9872 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
9873 a series of conversions and apply foldings similar to what
9874 fold-const does.
9875 (tree_ssa_forward_propagate_single_use_vars): Call it.
9876
9877 2011-05-10 Jakub Jelinek <jakub@redhat.com>
9878
9879 PR tree-optimization/48611
9880 PR tree-optimization/48794
9881 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
9882 referenced from RESX or EH_DISPATCH arguments.
9883
9884 PR debug/48928
9885 * dfp.c (decimal_to_decnumber): Handle conversion from
9886 dconst{1,2,m1,half}.
9887
9888 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9889
9890 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
9891 for !flag_prefer_avx128.
9892 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
9893
9894 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9895
9896 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
9897 (fold_ternary_loc): Use expr_location_or.
9898
9899 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
9900
9901 PR debug/48853
9902 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
9903 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
9904 Pmode and mem_mode is not VOIDmode.
9905
9906 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
9907
9908 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
9909 TYPE_QUAL_RESTRICT): Convert to enum.
9910
9911 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9912
9913 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
9914 (const_pow2_1_to_8_operand): Ditto.
9915 (const_pow2_1_to_128_operand): Ditto.
9916 (const_pow2_1_to_32768_operand): Ditto.
9917 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
9918 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
9919 in insn constraint to check integer value of operand 3.
9920 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
9921
9922 (PINSR_MODE): New mode iterator.
9923 (sse2p4_1): New mode attribute.
9924 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
9925 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
9926 iterator. Use const_int_operand instead of
9927 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
9928 exact_log2 in insn constraint to check integer value of operand 3.
9929
9930 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9931
9932 * config/i386/sse.md (blendbits): Remove mode attribute.
9933 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9934 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9935 Check integer value of operand 3 in insn constraint.
9936
9937 2011-05-09 Richard Guenther <rguenther@suse.de>
9938
9939 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
9940 for diagnostics.
9941 (lto_symtab_merge): Likewise. Do not register types here.
9942 (lto_symtab_merge_decls_2): Likewise.
9943 (lto_symtab_merge_decls_1): Likewise.
9944 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
9945 * gimple.c (enum gtc_mode): Declare.
9946 (gimple_types_compatible_p): Make static.
9947
9948 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9949
9950 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
9951 temporary register to match Pmode.
9952
9953 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9954
9955 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
9956 and *vec_concatv4si_1_avx.
9957
9958 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9959
9960 PR rtl-optimization/48927
9961 * ira-conflicts.c (commutative_constraint_p): Use
9962 recog_data.alternative_enabled_p to disable alternatives where
9963 "enabled" attribute is false.
9964 (get_dup_num): Ditto.
9965 * ira-lives.c (single_reg_class): Ditto.
9966 (ira_implicitly_set_insn_hard_regs): Ditto.
9967
9968 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
9969
9970 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
9971 (dataflow_set_preserve_mem_locs): Likewise.
9972
9973 2011-05-09 Philipp Thomas <pth@suse.de>
9974
9975 * config/mep/mep.c (mep_validate_vliw): Syntax description
9976 should not be translated.
9977
9978 2011-05-09 Joseph Myers <joseph@codesourcery.com>
9979
9980 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
9981 * config/mips/mips-tables.opt: New file (generated).
9982 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
9983 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
9984 MIPS_ARCH_OPTION_NATIVE): Define.
9985 * config/mips/mips.c (mips_cpu_info_table): Move contents to
9986 mips-cpus.def.
9987 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
9988 mips_parse_cpu): Remove.
9989 (mips_cpu_info_from_opt, mips_default_arch): New.
9990 (mips_handle_option): Don't assert that global structures are in
9991 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
9992 (mips_option_override): Use new variables and functions to set
9993 state of these options. Use strcmp to check for individual CPU names.
9994 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
9995 definition.
9996 * config/mips/mips.opt (march=): Use ToLower and Enum.
9997 (mips): Use ToLower, Enum and Var.
9998 (mtune=): Use ToLower and Enum.
9999 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
10000
10001 2011-05-08 Jan Hubicka <jh@suse.cz>
10002
10003 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
10004 Arrange type pairs to be UID ordered.
10005 (gimple_lookup_type_leader): Make inline.
10006
10007 2011-05-09 Nick Clifton <nickc@redhat.com>
10008
10009 PR target/48899
10010 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
10011 PROCESSOR_DEFAULT.
10012
10013 PR target/48897
10014 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
10015 variable 's'.
10016
10017 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
10018
10019 * combine.c (simplify_comparison): Abstract out parts into...
10020 (simplify_compare_const): ... new function.
10021 (try_combine): Generalize parallel arithmetic/compare combining
10022 to call simplify_compare_const() and CANONICALIZE_COMPARE().
10023
10024 2011-05-08 Jan Hubicka <jh@suse.cz>
10025
10026 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
10027 (cgraph_create_virtual_clone): Call hooks once virtual clone
10028 is finished.
10029 * cgraph.h (cgraph_clone_node): Update prototype.
10030 * ipa-cp.c (ipcp_estimate_growth): Use
10031 estimate_ipcp_clone_size_and_time.
10032 * ipa-inline-transform.c (clone_inlined_nodes): Update.
10033 * lto-cgraph.c (input_node): Update.
10034 * ipa-inline.c (recursive_inlining): Update.
10035 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
10036 (evaluate_conditions_for_known_args): Break out from ...
10037 (evaluate_conditions_for_edge): ... here.
10038 (evaluate_conditions_for_ipcp_clone): New function.
10039 (inline_node_duplication_hook): Update clone summary based
10040 on parameter map.
10041 (estimate_callee_size_and_time): Rename to ...
10042 (estimate_node_size_and_time): take NODE instead of EDGE;
10043 take POSSIBLE_TRUTHS as argument.
10044 (estimate_callee_size_and_time): Update.
10045 (estimate_ipcp_clone_size_and_time): New function.
10046 (do_estimate_edge_time): Update.
10047
10048 2011-05-08 Richard Guenther <rguenther@suse.de>
10049
10050 PR middle-end/48908
10051 PR middle-end/48905
10052 * expmed.c (expand_shift_1): Compute adjusted constant shift
10053 amount manually.
10054
10055 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10056
10057 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
10058
10059 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
10060
10061 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
10062
10063 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
10064
10065 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
10066
10067 2011-05-07 Jan Hubicka <jh@suse.cz>
10068
10069 * ipa-inline-transform.c (inline_call): Account when program size
10070 decreases.
10071 * ipa-inline.c (relative_time_benefit): New function.
10072 (edge_badness): Reorganize to be power 2 based; fix thinko when
10073 computing badness for negative growth; update comments to match
10074 reality; better dumps.
10075
10076 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
10077
10078 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
10079 type to bool and adjust comment.
10080 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
10081 (fold_mathfn_compare): Remove calls to global_bindings_p.
10082 (fold_inf_compare): Likewise.
10083 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
10084 * c-tree.h (global_bindings_p): Adjust prototype.
10085 * c-decl.c (global_bindings_p): Return bool and simplify.
10086
10087 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
10088
10089 PR tree-optimization/48837
10090 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
10091 when accumulator transformation is performed.
10092
10093 2011-05-06 Jan Hubicka <jh@suse.cz>
10094
10095 * i386.h (ix86_tune_indices): Add
10096 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
10097 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
10098 * i386.c (initial_ix86_tune_features): Add
10099 X86_SOFTARE_PREFETCHING_BENEFICIAL.
10100 (software_prefetching_beneficial_p): Remove predicate.
10101 (ix86_option_override_internal): Use new macro.
10102
10103 2011-05-06 Jan Hubicka <jh@suse.cz>
10104
10105 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
10106
10107 2011-05-06 Jan Hubicka <jh@suse.cz>
10108
10109 * cgraph.c (cgraph_add_thunk): Create real function node instead
10110 of alias node; finalize it and mark needed/reachale; arrange visibility
10111 to be right and add it into the corresponding same comdat group list.
10112 (dump_cgraph_node): Dump thunks.
10113 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
10114 cgraph_function_with_gimple_body_p,
10115 cgraph_first_function_with_gimple_body,
10116 cgraph_next_function_with_gimple_body): New functions.
10117 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
10118 New macros.
10119 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
10120 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10121 * cgraphunit.c (cgraph_finalize_function): Only look into possible
10122 devirtualization when optimizing.
10123 (verify_cgraph_node): Verify thunks.
10124 (cgraph_analyze_function): Analyze thunks.
10125 (cgraph_mark_functions_to_output): Output thunks only in combination
10126 with function they are assigned to.
10127 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
10128 alias into normal node.
10129 (assemble_thunks): New functoin.
10130 (cgraph_expand_function): Use it.
10131 * lto-cgraph.c (lto_output_node): Stream thunks.
10132 (input_overwrite_node): Stream in thunks.
10133 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
10134 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
10135 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
10136 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
10137 (inline_analyze_function): Do not care about thunk jump functions.
10138 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
10139 * ipa-prop.c (ipa_prop_write_jump_functions): Use
10140 cgraph_function_with_gimple_body_p.
10141 * passes.c (do_per_function_toporder): Use
10142 cgraph_function_with_gimple_body_p.
10143 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
10144 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
10145 (function_called_by_processed_nodes_p): Likewise.
10146
10147 2011-05-06 Joseph Myers <joseph@codesourcery.com>
10148
10149 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
10150 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
10151 entries.
10152 (mabi=): Replace with separate entries for mabi=altivec,
10153 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
10154 mabi=ieeelongdouble and mabi=ibmlongdouble.
10155 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
10156 check for -mabi=spe without SPE ABI support here.
10157 (rs6000_handle_option): Replace OPT_mabi_ handling with
10158 OPT_mabi_altivec and OPT_mabi_spe handling.
10159
10160 2011-05-06 Cary Coutant <ccoutant@google.com>
10161
10162 * dwarf2out.c (contains_subprogram_definition): New function.
10163 (should_move_die_to_comdat): Call it.
10164
10165 2011-05-06 Jeff Law <law@redhat.com>
10166
10167 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
10168 remove_ctrl_stmt_and_useless_edges.
10169 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
10170 (fixup_template_block, thread_single_edge): Likewise.
10171 (mark_threaded_blocks): Use THREAD_TARGET.
10172
10173 2011-05-06 Alan Modra <amodra@gmail.com>
10174
10175 PR target/48900
10176 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10177 const0_rtx as the arg to the dummy __tls_get_addr libcall.
10178
10179 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
10180
10181 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
10182 constraint modifier to "r".
10183
10184 2011-05-06 Joseph Myers <joseph@codesourcery.com>
10185
10186 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
10187 fall through for OPT_mcmodel_.
10188
10189 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10190
10191 * config/s390/s390.c (s390_asm_trampoline_template): Comment
10192 instruction sizes.
10193 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
10194
10195 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10196
10197 PR target/47930
10198 * config/arm/arm.opt (marm): Document it.
10199 (mthumb): Reject negative variant.
10200
10201 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
10202
10203 PR target/48898
10204 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
10205 Fix typo in "ccvt" variable name.
10206
10207 2011-05-06 Tristan Gingold <gingold@adacore.com>
10208
10209 PR target/48895
10210 * config/vms/vms-ar.c (main): Remove cwd variable.
10211
10212 2011-05-06 Jakub Jelinek <jakub@redhat.com>
10213
10214 PR debug/48902
10215 * var-tracking.c (prepare_call_arguments): Move else before #endif.
10216
10217 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
10218
10219 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
10220 * gimplify.c (gimplify_switch_expr): Likewise.
10221 * omp-low.c (expand_omp_sections): Likewise.
10222 * tree-eh.c (lower_try_finally_switch): Likewise.
10223 (lower_eh_dispatch): Likewise.
10224 * tree.h (build_case_label): Declare.
10225 * tree.c (build_case_label): Define.
10226
10227 2011-05-05 Jason Merrill <jason@redhat.com>
10228
10229 PR c++/40975
10230 * tree-inline.c (copy_tree_r): Use copy_statement_list.
10231 (copy_statement_list): Don't recurse.
10232 * stor-layout.c (copy_self_referential_tree_r): Don't allow
10233 STATEMENT_LIST.
10234
10235 2011-05-05 Joseph Myers <joseph@codesourcery.com>
10236
10237 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
10238 through from -mfpu= handling.
10239 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
10240
10241 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
10242
10243 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
10244 POST_MODIFY.
10245
10246 2011-05-05 Steve Ellcey <sje@cup.hp.com>
10247
10248 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
10249 for 11.31.
10250 (hppa[12]*-*-hpux11*): Ditto.
10251 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
10252 * config/ia64/hpux-unix2003.h: New.
10253 * config/pa/pa-hpux1131.opt: New.
10254 * config/pa/pa-hpux1131.h: New.
10255 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
10256 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
10257 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
10258
10259 2011-05-05 Jakub Jelinek <jakub@redhat.com>
10260
10261 PR debug/48853
10262 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
10263 instead of mode as 3rd argument to recursive call.
10264 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
10265 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
10266 VOIDmode.
10267 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
10268 don't give up if mode is Pmode and mem_mode is not VOIDmode.
10269 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
10270 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
10271
10272 2011-05-05 Julian Brown <julian@codesourcery.com>
10273
10274 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
10275 parenthesis in D-register case.
10276
10277 2011-05-05 Joseph Myers <joseph@codesourcery.com>
10278
10279 * opt-functions.awk (var_type_struct): Handle Enum options.
10280 * optc-gen.awk: Don't check range of variables of character type.
10281 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
10282 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
10283 rs6000_sdata_name, rs6000_explicit_options): Remove.
10284 (rs6000_option_override_internal): Check for -malign-power here.
10285 Use global_options_set instead of rs6000_explicit_options.
10286 (rs6000_parse_fpu_option): Remove.
10287 (rs6000_handle_option): Access variables via opts and opts_set
10288 pointers. Use error_at and warning_at. Add fall-through
10289 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
10290 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
10291 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
10292 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
10293 here. Don't use rs6000_parse_fpu_option.
10294 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
10295 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
10296 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
10297 (mrecip=): Use Var.
10298 (mspe): Use Var and Save.
10299 (mtraceback=): Use Enum and Var.
10300 (rs6000_traceback_type): New Enum and EnumValue entries.
10301 (mfloat-gprs=): Use Enum, Var and Save.
10302 (rs6000_float_gprs): New Enum and EnumValue entries.
10303 (mlong-double-): use Var and Save.
10304 (msched-costly-dep=, minsert-sched-nops=): Use Var.
10305 (malign-): Use Enum and Var.
10306 (rs6000_alignment_flags): New Enum and EnumValue entries.
10307 (mfpu=): Use Enum.
10308 (fpu_type_t): New Enum and EnumValue entries.
10309 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10310 global_options_set instead of rs6000_explicit_options.
10311 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10312 global_options_set instead of rs6000_explicit_options.
10313 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10314 global_options_set instead of rs6000_explicit_options.
10315 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
10316 global_options_set instead of rs6000_explicit_options.
10317 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
10318 global_options_set instead of rs6000_explicit_options.
10319 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10320 global_options_set instead of rs6000_explicit_options.
10321 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
10322 definition.
10323 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10324 global_options_set instead of rs6000_explicit_options.
10325 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
10326 (rs6000_cmodel): New Enum and EnumValue entries.
10327 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
10328 global_options_set instead of rs6000_explicit_options.
10329 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
10330 (mtls-size=): Use Enum and Var.
10331 (rs6000_tls_size): New Enum and EnumValue entries.
10332
10333 2011-05-05 Michael Matz <matz@suse.de>
10334
10335 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
10336 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
10337 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
10338 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
10339 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
10340 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
10341 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
10342 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
10343 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
10344 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
10345 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
10346 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
10347 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
10348 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
10349 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
10350 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
10351
10352 2011-05-05 Richard Guenther <rguenther@suse.de>
10353
10354 * expmed.c (expand_variable_shift): Rename to ...
10355 (expand_shift_1): ... this. Take an expanded shift amount.
10356 For rotates recurse directly not building trees for the shift amount.
10357 (expand_variable_shift): Wrap around expand_shift_1.
10358 (expand_shift): Adjust.
10359
10360 2011-05-05 Jakub Jelinek <jakub@redhat.com>
10361
10362 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
10363
10364 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
10365
10366 * tree.h (get_pending_sizes): Remove prototype.
10367 (put_pending_size): Likewise.
10368 (put_pending_sizes): Likewise.
10369 * stor-layout.c (pending_sizes): Delete.
10370 (get_pending_sizes): Likewise.
10371 (put_pending_size): Likewise.
10372 (put_pending_sizes): Likewise.
10373 (variable_size): Do not call put_pending_size and tidy up.
10374 * function.h (struct function): Remove dont_save_pending_sizes_p.
10375 * lto-streamer-in.c (input_function): Do not stream it.
10376 * lto-streamer-out.c (output_function): Likewise.
10377 * tree-inline.c (initialize_cfun): Do not copy it.
10378 * c-decl.c (store_parm_decls): Do not set it.
10379 * omp-low.c (create_task_copyfn): Likewise.
10380 * tree-optimize.c (tree_rest_of_compilation): Likewise.
10381
10382 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
10383
10384 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
10385 conditions.
10386 (*movdf_internal): Ditto.
10387 (*movdf_internal_nointeger): Ditto.
10388 (*movsf_internal): Ditto.
10389
10390 2011-05-05 Joseph Myers <joseph@codesourcery.com>
10391
10392 * c-decl.c (finish_decl): Don't call get_pending_sizes.
10393 (grokparm): Add parameter expr. Pass it to grokdeclarator.
10394 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
10395 (c_variable_size): Remove.
10396 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
10397 call put_pending_sizes.
10398 (get_parm_info): Add parameter expr. Use it to set
10399 arg_info->pending_sizes.
10400 (store_parm_decls): Use arg_info->pending_sizes instead or calling
10401 get_pending_sizes.
10402 * c-parser.c (c_parser_parms_declarator): Update call to
10403 c_parser_parms_list_declarator.
10404 (c_parser_parms_list_declarator): Take parameter expr. Update
10405 call to push_parm_decl. Update recursive call. Don't call
10406 get_pending_sizes. Update calls to get_parm_info.
10407 (c_parser_objc_method_definition): Update calls to
10408 c_parser_objc_method_decl and objc_start_method_definition.
10409 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
10410 (c_parser_objc_method_decl): Add parameter expr. Update call to
10411 grokparm.
10412 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
10413 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
10414 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
10415
10416 2011-05-05 Michael Hope <michael.hope@linaro.org>
10417
10418 PR pch/45979
10419 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
10420 __ARM_EABI__ hosts.
10421
10422 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10423
10424 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10425 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
10426 (spu_output_mi_thunk): New function.
10427
10428 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10429
10430 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
10431 targetm.asm_out.print_operand.
10432 * config/sol2.c: Include target.h.
10433
10434 2011-05-04 Jan Hubicka <jh@suse.cz>
10435
10436 * ipa-inline.c (reset_edge_caches): New function.
10437 (update_caller_keys): Add check_inlinablity_for; do not
10438 reset edge caches; remove now unnecesary loop.
10439 (update_callee_keys): Add comments; reset node_growth_cache of callee.
10440 (update_all_callee_keys): Likewise.
10441 (inline_small_functions): Sanity check cache; update code
10442 recomputing it.
10443
10444 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
10445
10446 PR rtl-optimization/47612
10447 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
10448 as the last insn of the sequence to be moved.
10449
10450 2011-05-04 Tobias Burnus <burnus@net-b.de>
10451
10452 PR fortran/48864
10453 * doc/invoke.texi (Ofast): Document that it
10454 enables Fortran's -fno-protect-parens.
10455
10456 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
10457
10458 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
10459
10460 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
10461
10462 * stor-layout.c (variable_size): Do not issue errors.
10463
10464 2011-05-04 Richard Guenther <rguenther@suse.de>
10465
10466 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
10467 for array-ref indices.
10468 (tree_coverage_counter_addr): Likewise.
10469 (build_fn_info_type): Use size_int for index types.
10470 (build_gcov_info): Likewise.
10471
10472 2011-05-04 Richard Guenther <rguenther@suse.de>
10473
10474 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
10475 to build_int_cst.
10476 * c-typeck.c (really_start_incremental_init): Use bitsize_int
10477 for constructor indices.
10478 (push_init_level): Likewise.
10479
10480 2011-05-04 Richard Guenther <rguenther@suse.de>
10481
10482 * explow.c (promote_mode): Move variable declarations before code.
10483
10484 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
10485
10486 * tree.h (build_function_type_array): Declare.
10487 (build_varargs_function_type_array): Declare.
10488 (build_function_type_vec, build_varargs_function_type_vec): Define.
10489 * tree.c (build_function_type_array_1): New function.
10490 (build_function_type_array): New function.
10491 (build_varargs_function_type_array): New function.
10492
10493 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
10494
10495 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
10496 before setting STMT_VINFO_TYPE.
10497
10498 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10499
10500 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
10501 instead of spu_pass_by_reference.
10502
10503 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10504
10505 * calls.c (emit_library_call_value_1): Invoke
10506 promote_function_mode hook on libcall arguments.
10507 * explow.c (promote_function_mode, promote_mode): Handle TYPE
10508 argument being NULL.
10509 * targhooks.c (default_promote_function_mode): Lisewise.
10510 * config/s390/s390.c (s390_promote_function_mode): Likewise.
10511 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
10512
10513 * doc/tm.texi: Document that TYPE argument might be NULL.
10514
10515 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10516
10517 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
10518
10519 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10520
10521 From Bernd Schmidt
10522 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
10523
10524 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10525
10526 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
10527 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
10528 Move ...
10529 * mips-tfile.c: ... here.
10530 Don't include coretypes.h, tm.h, filenames.h.
10531 (saber_stop): Remove definition and all calls.
10532 [__SABER__]: Remove.
10533 (__LINE__): Remove default.
10534 (Size_t, Ptrdiff_t): Remove definitions.
10535 Replace by size_t, ptrdiff_t.
10536 [!MIPS_DEBUGGING_INFO]: Remove.
10537 (SHASH_SIZE, THASH_SIZE): Remove defaults.
10538 (progname): Add const.
10539 (STATIC): Remove.
10540 Replace all uses by static.
10541 (ALIGN_SYMTABLE_OFFSET): Remove default.
10542 * mips-tdump.c: Don't include coretypes.h, tm.h.
10543 Remove !MIPS_IS_STAB guard.
10544 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
10545 $(TM_H), filenames.h dependencies.
10546 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
10547
10548 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10549
10550 From Jie Zhang
10551 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
10552 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
10553
10554 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10555
10556 From Bernd Schmidt
10557 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
10558 account and save/restore RETS.
10559 (PROFILE_BEFORE_PROLOGUE): Define.
10560 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
10561 the push insn to use predecrement.
10562
10563 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
10564
10565 From Jie Zhang
10566 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
10567
10568 2011-05-04 Nick Clifton <nickc@redhat.com>
10569
10570 * config/mn10300/mn10300.c: Include cfgloop.h.
10571 (DUMP): New macro.
10572 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
10573 Lcc or a FLcc insn into the instruction stream.
10574 (mn10300_block_contains_call): New function. Returns true if the
10575 given basic block contains a CALL insn.
10576 (mn10300_loop_contains_call_insn): New function. Returns true if
10577 the given loop contains a CALL insn.
10578 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
10579 to use the SETLB and Lcc or FLcc insns.
10580 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
10581 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
10582 * config/mn10300/mn10300.opt (msetlb): New option. Used to
10583 disable the SETLB optimization.
10584 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
10585 __SETLB__ or __NO_SETLB__.
10586 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
10587 (movsf_internal): Handle MDR register.
10588 (cmpsi): Make visible.
10589 (setlb): New pattern.
10590 (Lcc): New pattern.
10591 (FLcc): New pattern.
10592
10593 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
10594
10595 PR target/48860
10596 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
10597 for reg<->xmm moves.
10598 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
10599 (vec_concatv2di_rex64_sse): Ditto.
10600 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
10601 (*vec_extractv2di_1_rex64): Ditto.
10602
10603 Revert:
10604 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
10605
10606 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
10607 reg<->xmm moves.
10608 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
10609
10610 2011-05-04 Richard Guenther <rguenther@suse.de>
10611
10612 * tree.h (int_const_binop): Remove notrunc argument.
10613 * fold-const.c (int_const_binop): Remove notrunc argument. Always
10614 create integer constants that are properly truncated.
10615 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
10616 (const_binop): Remove zero notrunc argument to int_const_binop.
10617 (size_binop_loc): Likewise.
10618 (fold_div_compare): Likewise.
10619 (maybe_canonicalize_comparison_1): Likewise.
10620 (fold_comparison): Likewise.
10621 (fold_binary_loc): Likewise.
10622 (multiple_of_p): Likewise.
10623 * expr.c (store_constructor): Likewise.
10624 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
10625 (maybe_fold_stmt_addition): Likewise.
10626 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
10627 * stor-layout.c (layout_type): Likewise.
10628 * tree-data-ref.c (tree_fold_divides_p): Likewise.
10629 * tree-sra.c (build_ref_for_offset): Likewise.
10630 (build_user_friendly_ref_for_offset): Likewise.
10631 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
10632 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
10633 * tree-ssa-loop-niter.c (inverse): Likewise.
10634 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10635 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
10636 * tree-switch-conversion.c (check_range): Likewise.
10637 (build_constructors): Likewise.
10638 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
10639 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
10640 (extract_range_from_assert): Likewise.
10641 (vrp_int_const_binop): Likewise.
10642 (extract_range_from_binary_expr): Likewise.
10643 (extract_range_from_unary_expr): Likewise.
10644 (check_array_ref): Likewise.
10645 (find_case_label_range): Likewise.
10646 (simplify_div_or_mod_using_ranges): Likewise.
10647 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
10648 comparing case labels for merging.
10649
10650 2011-05-03 Mark Wielaard <mjw@redhat.com>
10651
10652 * dwarf2out.c (debug_str_hash_forced): Removed.
10653 (gen_label_for_indirect_string): Removed.
10654 (get_debug_string_label): Removed.
10655 (AT_string_form): Generate label directly.
10656 (output_indirect_string): Test indirect_string_node for
10657 DW_FORM_strp instead of checking label and refcount.
10658 (prune_indirect_string): Removed.
10659 (prune_unused_types): Don't check debug_str_hash_forced or
10660 call prune_indirect_string.
10661
10662 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
10663
10664 PR other/48093
10665 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
10666
10667 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
10668
10669 PR debug/47994
10670 PR debug/47919
10671 * combine.c (try_combine): Skip debug insns at m_split tests.
10672
10673 2011-04-26 Mark Wielaard <mjw@redhat.com>
10674
10675 PR42288
10676 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
10677 when info_section_emitted.
10678
10679 2011-05-03 Joseph Myers <joseph@codesourcery.com>
10680
10681 * config/mips/mips-opts.h: New.
10682 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
10683 to mips-opts.h.
10684 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
10685 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
10686 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
10687 via opts pointer.
10688 * config/mips/mips.h (enum mips_code_readable_setting): Move to
10689 mips-opts.h.
10690 (mips_abi, mips_code_readable): Don't declare.
10691 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
10692 (mabi=): Use Enum and Var.
10693 (mips_abi): New Enum and EnumValue entries.
10694 (mcode-readable=): Use Enum and Var.
10695 (mips_code_readable_setting): New Enum and EnumValue entries.
10696 (mr10k-cache-barrier=): Use Enum and Var.
10697 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
10698
10699 2011-05-03 Jan Hubicka <jh@suse.cz>
10700
10701 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
10702 replace hash by pointer map.
10703 (cgraph_node_set_element_def, cgraph_node_set_element,
10704 const_cgraph_node_set_element, varpool_node_set_element_def,
10705 varpool_node_set_element, const_varpool_node_set_element): Remove.
10706 (free_cgraph_node_set, free_varpool_node_set): New function.
10707 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
10708 * tree-emutls.c: Free varpool node set.
10709 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
10710 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10711 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
10712 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10713 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
10714 Move here from ipa.c; implement using pointer_map
10715 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
10716 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
10717 debug_cgraph_node_set, varpool_node_set_new,
10718 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
10719 dump_varpool_node_set, debug_varpool_node_set):
10720 Move to ipa-uitls.c.
10721 * passes.c (ipa_write_summaries): Update.
10722
10723 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10724
10725 From Mike Frysinger:
10726 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
10727 bf542/bf544/bf547/bf548/bf549.
10728
10729 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
10730
10731 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
10732
10733 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10734
10735 From Bernd Schmidt:
10736 * config/bfin/bfin.md (MOVCC): New mode_macro.
10737 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
10738 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
10739 comments from generated assembly.
10740
10741 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10742
10743 From Bernd Schmidt
10744 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
10745 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
10746 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
10747 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
10748 * config/bfin/lib1funcs.asm (___muldi3): New function.
10749
10750 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10751
10752 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
10753 build_function_type_list instead of build_function_type.
10754 Rearrange initialization of `args' to do so.
10755
10756 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10757
10758 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
10759 instead of build_function_type.
10760
10761 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10762
10763 * config/rs6000/rs6000.c (spe_init_builtins): Call
10764 build_function_type_list instead of build_function_type.
10765 (paired_init_builtins, altivec_init_builtins): Likewise.
10766 (builtin_function_type): Likewise.
10767
10768 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10769
10770 * config/sh/sh.c (sh_media_init_builtins): Call
10771 build_function_type_list instead of build_function_type.
10772
10773 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10774
10775 * config/sparc/sparc.c (sparc_file_end): Call
10776 build_function_type_list instead of build_function_type.
10777
10778 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10779
10780 * config/alpha/alpha.c (alpha_init_builtins): Call
10781 build_function_type_list instead of build_function_type.
10782
10783 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10784
10785 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
10786 build_function_type_list instead of build_function_type.
10787
10788 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10789
10790 * config/iq2000/i2000.c (iq2000_init_builtins): Call
10791 build_function_type_list instead of build_function_type.
10792 Delete `endlink' variable.
10793
10794 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10795
10796 * config/avr/avr.c (avr_init_builtins): Call
10797 build_function_type_list instead of build_function_type.
10798
10799 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10800
10801 * config/picochip/picochip.c (picochip_init_builtins): Call
10802 build_function_type_list instead of build_function_type.
10803 Delete `endlink' variable.
10804
10805 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
10806
10807 * config/bfin/bfin.c (bfin_init_builtins): Call
10808 build_function_type_list instead of build_function_type.
10809
10810 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10811
10812 From Bernd Schmidt
10813 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
10814 that's not CONST_INT. Seemingly redundant check is due to PR39768.
10815
10816 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10817
10818 From Jie Zhang:
10819 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
10820 libbffastfp overrides libgcc when -mfast-fp.
10821
10822 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10823
10824 Originally from Bernd Schmidt
10825 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
10826 * config/bfin/bfin.c (override_options): Test it and error if
10827 TARGET_FDPIC.
10828
10829 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
10830
10831 Originally From Bernd Schmidt
10832 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
10833 FD-PIC.
10834
10835 2011-05-03 Jeff Law <law@redhat.com>
10836
10837 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
10838 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
10839 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
10840 than accessing AUX field directly. Free the AUX field before
10841 clearing it.
10842 (thread_block, thread_through_loop_header): Likewise.
10843 (thread_single_edge, mark_threaded_blocks): Likewise.
10844 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
10845 (register_jump_thread): Do not attempt to thread to a NULL edge.
10846
10847 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10848
10849 * function.c (init_function_start): Call decide_function_section.
10850 * varasm.c (decide_function_section): New function.
10851 (assemble_start_function): When not using
10852 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
10853 or first_function_block_is_cold.
10854 * rtl.h (decide_function_section): Declare.
10855
10856 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
10857 Jakub Jelinek <jakub@redhat.com>
10858
10859 PR target/48774
10860 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
10861 only succeed if req_mode is the same as set_mode.
10862
10863 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
10864
10865 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
10866 * genemit.c (gen_exp): Handle RETURN.
10867 * emit-rtl.c (verify_rtx_sharing): Likewise.
10868 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
10869 * rtl.c (copy_rtx): RETURN is shared.
10870 * rtl.h (enum global_rtl_index): Add GR_RETURN.
10871 (ret_rtx): New.
10872 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
10873 * config/s390/s390.c (s390_emit_epilogue): Likewise.
10874 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
10875 * config/cris/cris.c (cris_expand_return): Likewise.
10876 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
10877 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
10878 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
10879 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
10880 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
10881 Likewise.
10882 * config/v850/v850.c (expand_epilogue): Likewise.
10883 * config/bfin/bfin.c (bfin_expand_call): Likewise.
10884 * config/arm/arm.md (epilogue): Likewise.
10885 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
10886 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
10887 variable to ret_reg.
10888
10889 2011-05-03 Richard Guenther <rguenther@suse.de>
10890
10891 PR lto/48846
10892 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
10893 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
10894 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10895
10896 2011-05-03 Richard Guenther <rguenther@suse.de>
10897
10898 * c-decl.c (grokdeclarator): Instead of looking at
10899 TREE_OVERFLOW check if the constant fits in the index type.
10900
10901 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10902
10903 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
10904 (vec_store_lanes<mode><mode>): Likewise.
10905
10906 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10907
10908 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
10909 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
10910 convert_optab_index values.
10911 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
10912 * genopinit.c (optabs): Initialize the new optabs.
10913 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
10914 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
10915 (expand_STORE_LANES): New functions.
10916 * tree.h (build_array_type_nelts): Declare.
10917 * tree.c (build_array_type_nelts): New function.
10918 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
10919 (vect_model_load_cost): Likewise.
10920 (vect_store_lanes_supported, vect_load_lanes_supported)
10921 (vect_record_strided_load_vectors): Declare.
10922 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
10923 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
10924 (vect_transform_strided_load): Split out statement recording into...
10925 (vect_record_strided_load_vectors): ...this new function.
10926 * tree-vect-stmts.c (create_vector_array, read_vector_array)
10927 (write_vector_array, create_array_ref): New functions.
10928 (vect_model_store_cost): Add store_lanes_p argument.
10929 (vect_model_load_cost): Add load_lanes_p argument.
10930 (vectorizable_store): Try to use store-lanes functions for
10931 interleaved stores.
10932 (vectorizable_load): Likewise load-lanes and loads.
10933 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
10934 to vect_model_store_cost.
10935 (vect_build_slp_tree): Likewise vect_model_load_cost.
10936
10937 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10938
10939 * hooks.h (hook_bool_mode_uhwi_false): Declare.
10940 * hooks.c (hook_bool_mode_uhwi_false): New function.
10941 * target.def (array_mode_supported_p): New hook.
10942 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
10943 * doc/tm.texi: Regenerate.
10944 * stor-layout.c (mode_for_array): New function.
10945 (layout_type): Use it.
10946 * config/arm/arm.c (arm_array_mode_supported_p): New function.
10947 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
10948
10949 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
10950
10951 PR target/48723
10952 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
10953 for -fstack-check if the size to allocate is negative.
10954
10955 2011-05-02 Lawrence Crowl <crowl@google.com>
10956
10957 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
10958 (timevar_cond_start): New for starting a timer only when it is not
10959 already running.
10960 (timevar_cond_stop): New for stopping a timer when it was not already
10961 running.
10962
10963 * timevar.c (timevar_stop): Enable start/stop timers to start again.
10964 (timevar_cond_start): New as above.
10965 (timevar_cond_stop): New as above.
10966
10967 * timevar.def: Add start/stop timers for compiler phases,
10968 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
10969 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
10970 and TV_PHASE_FINALIZE.
10971 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
10972 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
10973 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
10974 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
10975 Make unused TV_OVERLOAD into a start/stop timer.
10976
10977 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
10978 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
10979 to indicate that they are start/stop timers.
10980
10981 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
10982 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
10983 Move initialization to do_compile.
10984 (do_compile): Add initialization from above.
10985 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
10986
10987 * c-decl.c (c_write_global_declarations): Add start/stop of
10988 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
10989
10990 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
10991 or TV_PARSE_INLINE, as appropriate.
10992 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
10993 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
10994
10995 2011-05-02 Jason Merrill <jason@redhat.com>
10996
10997 PR c++/40975
10998 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
10999
11000 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
11001
11002 PR c/35445
11003 * c-decl.c (finish_decl): Only create a composite if the types are
11004 compatible.
11005
11006 2011-05-02 Joseph Myers <joseph@codesourcery.com>
11007
11008 * config/fr30/fr30-protos.h (Mmode): Don't define.
11009 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
11010 definition where used.
11011 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
11012 define. Expand definitions where used.
11013 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
11014 Expand definitions where used.
11015 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
11016 rx_function_arg, rx_function_arg_advance,
11017 rx_function_arg_boundary): Expand definitions of those macros.
11018 * config/v850/v850-protos.h (Mmode): Don't define. Expand
11019 definition where used.
11020
11021 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
11022
11023 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
11024 reg<->xmm moves.
11025 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
11026 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
11027 with *movv2sf_internal_rex64_avx.
11028 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
11029 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
11030 Use %v prefix in insn mnemonic to handle TARGET_AVX.
11031 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
11032 "vex" in "prefix" attribute calculation.
11033 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
11034
11035 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
11036
11037 PR target/47951
11038 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
11039 inputs match the output.
11040
11041 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
11042
11043 PR target/47955
11044 * config/m68k/m68k.c (m68k_expand_prologue): Set
11045 current_function_static_stack_size.
11046
11047 2011-05-02 Jan Hubicka <jh@suse.cz>
11048
11049 * lto-streamer.c (lto_streamer_cache_insert_1,
11050 lto_streamer_cache_lookup, lto_streamer_cache_create,
11051 lto_streamer_cache_delete): Use pointer map instead of hashtable.
11052 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
11053
11054 2011-05-02 Joseph Myers <joseph@codesourcery.com>
11055
11056 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
11057 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
11058 config/m68k/t-opts: New files.
11059 * config/m68k/m68k-tables.opt: New file (generated).
11060 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
11061 extra_options and m68k/t-opts to tmake_file.
11062 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
11063 (all_isas): Initialize using m68k-isas.def.
11064 (all_microarchs): Initialize using m68k-microarchs.def.
11065 (m68k_find_selection): Remove.
11066 (m68k_handle_option): Don't assert that global structures are in
11067 use. Use error_at. Access variables via opts pointer. Don't
11068 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
11069 directly for -m68020-40 and -m68020-60.
11070 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
11071 m68k_tune_entry here.
11072 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
11073 to m68k-opts.h.
11074 (m68k_library_id_string): Remove declaration.
11075 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
11076 (m68k_library_id_string): New Variable.
11077 (march=, mcpu=, mtune=): Use Enum and Var.
11078
11079 2011-05-02 Richard Guenther <rguenther@suse.de>
11080
11081 * varasm.c (output_constructor_regular_field): Compute zero-based
11082 index with double-ints. Make sure to ICE instead of producing
11083 wrong code.
11084 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
11085 in asserts. Properly use a signed type.
11086
11087 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
11088
11089 * config/i386/sse.md (V): New mode iterator.
11090 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
11091 TARGET_SSE2.
11092 (V_256): Rename from AVX256MODE.
11093 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
11094 condition to all users.
11095 (VF1): Ditto.
11096 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
11097 condition to all users.
11098 (VF_128): Make V4SF mode unconditional.
11099 (VF_256): Rename from AVX256MODEF2P.
11100 (VI4F_128): Rename from SSEMODE4S.
11101 (VI8F_128): Rename from SSEMODE2D.
11102 (VI4F_256): Rename from AVX256MODE8P.
11103 (VI8F_256): Rename from AVX256MODE4P.
11104 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
11105 (ssescalarmodesuffix): Remove SF and DF modes.
11106 (SSEMODE124): Remove.
11107 (SSEMODE1248): Ditto.
11108 (SSEMODEF2P): Ditto.
11109 (AVXMODEF2P): Ditto.
11110 (AVXMODEFDP): Ditto.
11111 (AVXMODEFSP): Ditto.
11112 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
11113 unconditional.
11114 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
11115 unconditional.
11116 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
11117 xop_pcmov_<mode>256. Use V mode iterator.
11118
11119 Adjust RTX patterns globally for renamed mode attributes.
11120
11121 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11122
11123 * haifa-sched.c (sched_emit_insn): Emit insn before first
11124 non-scheduled insn. Inform back-end about new insn. Add
11125 new insn to scheduled_insns list.
11126
11127 2011-05-02 Richard Guenther <rguenther@suse.de>
11128
11129 PR tree-optimization/48822
11130 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
11131 (process_scc): Indicate which iteration we start.
11132
11133 2011-05-02 Jan Hubicka <jh@suse.cz>
11134
11135 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
11136 (lto_section_overrun): New.
11137 * lto-section-out.c (append_block): Rename to ...
11138 (lto_append_block): ... this one; export.
11139 (lto_output_1_stream): Move lto lto-streamer.h
11140 (lto_output_data_stream): Update.
11141 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
11142 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
11143 functions.
11144
11145 2011-05-02 Richard Guenther <rguenther@suse.de>
11146
11147 * tree.c (tree_code_counts): New global array.
11148 (record_node_allocation_statistics): Count individual tree codes.
11149 (dump_tree_statistics): Dump individual code stats.
11150
11151 2011-05-01 Jan Hubicka <jh@suse.cz>
11152
11153 * ipa-inline.c (caller_growth_limits): Fix thinko when
11154 looking for largest stack frame.
11155 * ipa-inline.h (dump_inline_summary): Declare.
11156 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
11157 on stack usage.
11158 (dump_inline_summary): Export.
11159 (debug_inline_summary): Declare as DEBUG_FUNCTION.
11160
11161 2011-05-01 Anatoly Sokolov <aesok@post.ru>
11162
11163 * reginfo.c (memory_move_cost): Change rclass argument type form
11164 'enum reg_class' to reg_class_t.
11165 * reload.h (memory_move_cost): Update prototype.
11166 * postreload.c reload_cse_simplify_set): Change type dclass var to
11167 reg_class_t.
11168 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
11169 Update prototype.
11170 (ira_allocate_and_set_costs): Change aclass argument type form
11171 'enum reg_class' to reg_class_t.
11172 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
11173 Change aclass argument type to reg_class_t.
11174 (update_conflict_hard_reg_costs): Change type aclass and pref vars
11175 to reg_class_t.
11176 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
11177 memory_move_cost call.
11178
11179 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
11180 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
11181 Change type tmp var to reg_class_t.
11182
11183 2011-04-30 Jan Hubicka <jh@suse.cz>
11184
11185 * ipa-inline.c (can_inline_edge_p): Disregard limits when
11186 inlining into function with flatten attribute.
11187 (want_inline_small_function_p): Be more realistic about inlining
11188 cold calls where callee size grows.
11189
11190 2011-04-30 Jan Hubicka <jh@suse.cz>
11191
11192 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
11193 flags.
11194
11195 2011-04-30 Anatoly Sokolov <aesok@post.ru>
11196
11197 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11198 PRINT_OPERAND_PUNCT_VALID_P): Remove.
11199 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
11200 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
11201 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11202 (print_operand): Rename to...
11203 (sparc_print_operand): ...this. Make static. Adjust
11204 sparc_print_operand function call.
11205 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
11206 functions.
11207
11208 2011-04-30 Jan Hubicka <jh@suse.cz>
11209
11210 PR middle-end/48752
11211 * ipa-inline.c (early_inliner): Disable when doing late
11212 addition of function.
11213
11214 2011-04-30 Jakub Jelinek <jakub@redhat.com>
11215
11216 * dwarf2out.c (get_address_mode): New inline.
11217 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
11218 if not dwarf_strict emit
11219 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
11220 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
11221 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
11222 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
11223 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
11224 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
11225 mem_loc_descriptor callers.
11226 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
11227 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
11228 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
11229 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
11230 (base_types): New variable.
11231 (get_base_type_offset, calc_base_type_die_sizes,
11232 base_type_for_mode, mark_base_types, base_type_cmp,
11233 move_marked_base_types): New functions.
11234 (calc_die_sizes): Assert that die_offset is 0 or equal to
11235 next_die_offset.
11236 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
11237 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
11238 callers. If not dwarf_strict, call mem_loc_descriptor even for
11239 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
11240 (gen_subprogram_die): Don't give up on call site parameters
11241 with non-integral or large integral modes. Adjust
11242 mem_loc_descriptor callers.
11243 (prune_unused_types): Call prune_unused_types_mark on base_types
11244 vector entries.
11245 (resolve_addr): Call mark_base_types.
11246 (dwarf2out_finish): Call move_marked_base_types.
11247
11248 PR tree-optimization/48809
11249 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
11250 type.
11251 (gen_inbound_check): Don't compute index_expr - range_min in utype
11252 again, instead reuse SSA_NAME initialized in build_arrays.
11253 Remove two useless gsi_for_stmt calls.
11254
11255 2011-04-29 Jeff Law <law@redhat.com>
11256
11257 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
11258
11259 2011-04-29 Martin Jambor <mjambor@suse.cz>
11260
11261 * cgraph.h (cgraph_postorder): Remove declaration.
11262 * ipa-utils.h (ipa_free_postorder_info): Declare.
11263 (ipa_reverse_postorder): Likewise.
11264 * cgraphunit.c: Include ipa-utils.h.
11265 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
11266 * ipa-inline.c: Include ipa-utils.h.
11267 (ipa_inline): Update call to ipa_reverse_postorder.
11268 * ipa-pure-const.c (propagate_pure_const): Update call to
11269 ipa_reduced_postorder and ipa_print_order. Call
11270 ipa_free_postorder_info to clean up.
11271 (propagate_nothrow): Likewise.
11272 * ipa-reference.c (propagate): Removed a useless call to
11273 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
11274 and ipa_print_order. Call ipa_free_postorder_info to clean up.
11275 * ipa.c: Include ipa-utils.h.
11276 (ipa_profile): Update call to ipa_reverse_postorder.
11277 (cgraph_postorder): Moved to...
11278 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
11279 (ipa_utils_print_order): Renamed to ipa_print_order.
11280 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
11281 comments.
11282 (ipa_free_postorder_info): New function.
11283 * passes.c: Include ipa-utils.h.
11284 (do_per_function_toporder): Update call to ipa_reverse_postorder.
11285 (ipa_write_summaries): Likewise.
11286 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
11287 (cgraphunit.o): Likewise.
11288 (ipa.o): Likewise.
11289 (ipa-inline.o): Likewise.
11290
11291 2011-04-29 Jan Hubicka <jh@suse.cz>
11292
11293 * gcc.dg/tree-ssa/inline-10.c: New testcase.
11294 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
11295 * ipa-inline.h (clause_t): Turn into unsigned int.
11296 * ipa-inline-analysis.c (add_clause): Do more simplification.
11297 (and_predicates): Shortcut more cases.
11298 (predicates_equal_p): Move forward; check that clauses are properly
11299 ordered.
11300 (or_predicates): Shortcut more cases.
11301 (edge_execution_predicate): Rewrite as...
11302 (set_cond_stmt_execution_predicate): ... this function; handle
11303 __builtin_constant_p.
11304 (set_switch_stmt_execution_predicate): New .
11305 (compute_bb_predicates): New.
11306 (will_be_nonconstant_predicate): Update TODO.
11307 (estimate_function_body_sizes): Use compute_bb_predicates
11308 and free them later, always try to estimate if stmt is constant.
11309 (estimate_time_after_inlining, estimate_size_after_inlining):
11310 Gracefully handle optimized out edges.
11311 (read_predicate): Fix off by one error.
11312
11313 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
11314
11315 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
11316
11317 2011-04-27 Xinliang David Li <davidxl@google.com>
11318
11319 * tree-profile.c (init_ic_make_global_vars): Set
11320 tls attribute on ic vars.
11321 * coverage.c (coverage_end_function): Initialize
11322 function_list with zero.
11323
11324 2011-04-29 Richard Guenther <rguenther@suse.de>
11325
11326 * builtins.c (fold_builtin_classify_type): Use integer_type_node
11327 for the type of the result.
11328 (fold_builtin_isascii): Likewise.
11329 (fold_builtin_toascii): Use integer_type_node where appropriate.
11330 (fold_builtin_logb): Likewise.
11331 (fold_builtin_frexp): Likewise.
11332 (fold_builtin_strstr): Likewise.
11333 (fold_builtin_strpbrk): Likewise.
11334 (fold_builtin_fputs): Likewise.
11335 (fold_builtin_sprintf): Likewise.
11336 (fold_builtin_snprintf): Likewise.
11337 (fold_builtin_printf): Likewise.
11338 (do_mpfr_remquo): Use a proper type for the assigned constant.
11339 (do_mpfr_lgamma_r): Likewise.
11340 * dwarf2out.c (resolve_one_addr): Use size_int.
11341 * except.c (init_eh): Likewise.
11342 (assign_filter_values): Use integer_type_node for filter values.
11343 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
11344 indices.
11345 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
11346 for EH region numbers.
11347 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
11348 for the shift amount.
11349
11350 2011-04-29 Richard Guenther <rguenther@suse.de>
11351
11352 * expr.h (expand_shift): Rename to ...
11353 (expand_variable_shift): ... this.
11354 (expand_shift): Take a constant shift amount.
11355 * expmed.c (expand_shift): Rename to ...
11356 (expand_variable_shift): ... this.
11357 (expand_shift): New wrapper around expand_variable_shift.
11358 * expr.c (convert_move, emit_group_load_1, emit_group_store,
11359 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
11360 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
11361 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
11362 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
11363 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
11364 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
11365 emit_store_flag_1, emit_store_flag): Likewise.
11366 * builtins.c (expand_builtin_signbit): Likewise.
11367 * calls.c (load_register_parameters): Likewise.
11368 * function.c (assign_parm_setup_block): Likewise.
11369 * lower-subreg.c (resolve_shift_zext): Likewise.
11370 * optabs.c (widen_bswap, expand_abs_nojump,
11371 expand_one_cmpl_abs_nojump, expand_float): Likewise.
11372 * spu/spu.c (spu_expand_extv): Likewise.
11373 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11374
11375 2011-04-29 Richard Guenther <rguenther@suse.de>
11376
11377 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
11378 for the remapped region number.
11379 * predict.c (build_predict_expr): Use integer_type_node for the
11380 predict kind.
11381 * fold-const.c (fold_binary_loc): Use integer_type_node for
11382 the shift amount. Use a proper type for the PLUS_EXPR operand.
11383
11384 2011-04-29 Michael Matz <matz@suse.de>
11385
11386 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
11387 other trees that just builtins.
11388 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
11389
11390 2011-04-29 Richard Guenther <rguenther@suse.de>
11391
11392 * tree-nested.c (get_trampoline_type): Use size_int.
11393 (get_nl_goto_field): Likewise.
11394 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
11395 for all indexes.
11396 (lower_eh_constructs_2): Likewise.
11397 (lower_resx): Likewise.
11398 (lower_eh_dispatch): Likewise.
11399 * tree-mudflap.c (mf_build_string): Use size_int.
11400 (mudflap_register_call): Use integer_type_node for the flag.
11401 (mudflap_enqueue_constant): Use size_int.
11402 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
11403 instead of rebuilding it.
11404
11405 2011-04-29 Richard Guenther <rguenther@suse.de>
11406
11407 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
11408 Handle OBJ_TYPE_REF.
11409 (find_func_aliases_for_call): Use it more consistently.
11410
11411 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
11412
11413 * haifa-sched.c (last_nondebug_scheduled_insn): New.
11414 (rank_for_schedule): Use it.
11415 (schedule_block): Set it.
11416
11417 2011-04-28 David Li <davidxl@google.com>
11418
11419 * tree.c (crc32_string): Use crc32_byte.
11420 (crc32_byte): New function.
11421 * tree.h (crc32_byte): New function.
11422 * gcov.c (read_graph_file): Handle new cfg_cksum.
11423 (read_count_file): Ditto.
11424 * profile.c (instrument_values): Ditto.
11425 (get_exec_counts): Ditto.
11426 (read_profile_edge_counts): Ditto.
11427 (compute_branch_probabilities): Ditto.
11428 (compute_value_histograms): Ditto.
11429 (branch_prob): Ditto.
11430 (end_branch_prob): Ditto.
11431 * coverage.c (read_counts_file): Ditto.
11432 (get_coverage_counts): Ditto.
11433 (tree_coverage_counter_addr): Ditto.
11434 (coverage_checksum_string): Ditto.
11435 (coverage_begin_output): Ditto.
11436 (coverage_end_function): Ditto.
11437 (build_fn_info_type): Ditto.
11438 (build_fn_info_value): Ditto.
11439 * libgcov.c (gcov_exit): Ditto.
11440 * gcov-dump.c (tag_function): Ditto.
11441 (compute_checksum): Remove.
11442
11443 2011-04-29 Alan Modra <amodra@gmail.com>
11444
11445 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11446 unspec plus offset. Tidy macho code.
11447
11448 2011-04-29 Martin Jambor <mjambor@suse.cz>
11449
11450 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
11451 node instead of a decl. Update all callers.
11452 * cgraph.h: Update declaration.
11453
11454 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
11455
11456 PR tree-optimization/48765
11457 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
11458 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
11459 to indicate if loop aware SLP is being used. Scan the statements
11460 and update the vectorization factor according to the type of
11461 vectorization before statement analysis.
11462 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
11463 pass it to vect_analyze_loop_operations.
11464 (vectorizable_reduction): Set number of copies to 1 in case of pure
11465 SLP statement.
11466 * tree-vect-stmts.c (vectorizable_conversion,
11467 vectorizable_assignment, vectorizable_shift,
11468 vectorizable_operation, vectorizable_type_demotion,
11469 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
11470 Likewise.
11471 (vectorizable_condition): Move the check that it is not SLP
11472 vectorization before the number of copies check.
11473 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
11474 to vectorize the loop using SLP.
11475
11476 2011-04-28 Jakub Jelinek <jakub@redhat.com>
11477
11478 PR middle-end/48597
11479 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
11480 inline asm.
11481
11482 2011-04-28 Joseph Myers <joseph@codesourcery.com>
11483
11484 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
11485 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
11486 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11487 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11488 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
11489 linux*.h headers.
11490 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
11491 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11492 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11493 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11494 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
11495 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
11496 REG_NAME.
11497 * config/i386/linux.h (REG_NAME): Don't define.
11498 * config/i386/linux64.h (REG_NAME): Don't define.
11499 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
11500 Undefine before defining.
11501
11502 2011-04-28 Jan Hubicka <jh@suse.cz>
11503
11504 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
11505 nonconstant_names array.
11506 (estimate_function_body_sizes): Build nonconstant_names array; handle
11507 BUILT_IN_CONSTANT_P.
11508
11509 2011-04-28 Richard Guenther <rguenther@suse.de>
11510
11511 PR bootstrap/48804
11512 Revert
11513 2011-04-28 Richard Guenther <rguenther@suse.de>
11514
11515 * tree-ssa-structalias.c (solve_constraints): Build succ graph
11516 as late as possible.
11517
11518 2011-04-28 Richard Guenther <rguenther@suse.de>
11519
11520 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
11521 (debug_constraint): Do it here.
11522 (dump_constraints): And here.
11523 (rewrite_constraints): And here.
11524 (dump_constraint_edge): Remove.
11525 (dump_constraint_graph): Rewrite to produce DOT output.
11526 (solve_constraints): Build succ graph as late as possible.
11527 Dump constraint graphs before and after solving.
11528
11529 2011-04-28 Richard Guenther <rguenther@suse.de>
11530
11531 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11532 New function split out from ...
11533 (find_func_aliases): ... here. Call it.
11534 (find_func_aliases_for_call): Likewise.
11535
11536 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
11537
11538 * internal-fn.h (internal_fn_name_array): Declare.
11539 (internal_fn_flags_array): Likewise.
11540
11541 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
11542
11543 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
11544 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
11545 Move from sse.md.
11546 (ssemodefsuffix): Remove.
11547 (ssevecmodesuffix): New mode attribute.
11548 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
11549 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
11550 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
11551 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
11552 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
11553 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
11554 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
11555 ssemodesuffix mode attribute.
11556 (float splitters): Use ssevecmodesuffix mode attribute.
11557 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
11558 (sseinsmode): Rename from avxvecmode.
11559 (avxsizesuffix): Rename from avxmodesuffix.
11560 (sseintvecmode): Rename from avxpermvecmode.
11561 (ssedoublevecmode): Rename from ssedoublesizemode.
11562 (ssehalfvecmode): Rename from avxhalfvecmode.
11563 (ssescalarmode): Rename from avxscalarmode.
11564 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
11565 templates for ssemodesuffix mode attribute.
11566 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
11567 mode attribute.
11568
11569 Adjust RTX patterns globally for renamed mode attributes.
11570
11571 2011-04-27 Jan Hubcika <jh@suse.cz>
11572
11573 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
11574 * ipa-inline-analysis.c: Include alloc-pool.h.
11575 (edge_predicate_pool): New.
11576 (trye_predicate_p): New function
11577 (false_predicate_p): New function.
11578 (add_clause): Sanity check that false clauses are "optimized";
11579 never add clauses to predicate that is already known to be false.
11580 (and_predicate): Use flase_predicate_p.
11581 (evaulate_predicate): Rename to ...
11582 (evaluate_predicate): ... this one; update all callers; assert
11583 that false is not listed among possible truths.
11584 (dump_predicate): Use true_predicate_p.
11585 (account_size_time): Use false_predicate_p.
11586 (evaulate_conditions_for_edge): Rename to ...
11587 (evaluate_conditions_for_edge) ... this one.
11588 (edge_set_predicate): New function.
11589 (inline_edge_duplication_hook): Duplicate edge predicates.
11590 (inline_edge_removal_hook): Free edge predicates.
11591 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
11592 (dump_inline_summary): Update.
11593 (estimate_function_body_sizes): Set edge predicates.
11594 (estimate_calls_size_and_time): Handle predicates.
11595 (estimate_callee_size_and_time): Update.
11596 (remap_predicate): Add toplev_predicate; update comment.
11597 (remap_edge_predicates): New function.
11598 (inline_merge_summary): Compute toplev predicate; update.
11599 (read_predicate): New function.
11600 (read_inline_edge_summary): Use it.
11601 (inline_read_section): Likewise.
11602 (write_predicate): New function.
11603 (write_inline_edge_summary): Use it.
11604 (inline_write_summary): Likewise.
11605 (inline_free_summary): Free alloc pool and edge summary vec.
11606
11607 2011-04-27 Richard Guenther <rguenther@suse.de>
11608
11609 * tree-ssa-structalias.c (changed_count): Remove.
11610 (changed): Use a bitmap.
11611 (unify_nodes): Adjust.
11612 (do_sd_constraint): Likewise.
11613 (do_ds_constraint): Likewise.
11614 (do_complex_constraint): Likewise.
11615 (solve_graph): Likewise.
11616
11617 2011-04-27 Jan Hubicka <jh@suse.cz>
11618
11619 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
11620
11621 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
11622
11623 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
11624 (avx_vperm2f128_*_operand): Ditto.
11625 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
11626 Use avx_vpermilp_parallel in insn condition.
11627 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
11628 Use avx_vperm2f128_parallel in insn condition.
11629
11630 2011-04-27 Richard Guenther <rguenther@suse.de>
11631
11632 * Makefile.in (tree-ssa-structalias.o): Remove
11633 gt-tree-ssa-structalias.h dependency.
11634 (GTFILES): Remove tree-ssa-structalias.c.
11635 * tree.c (allocate_decl_uid): New function.
11636 (make_node_stat): Use it.
11637 (copy_node_stat): Likewise.
11638 * tree.h (allocate_decl_uid): Declare.
11639 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
11640 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
11641 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
11642 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
11643 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
11644 (struct heapvar_map): Likewise.
11645 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
11646 heapvar_insert): Likewise.
11647 (make_heapvar_for): Rename to ...
11648 (make_heapvar): ... this. Simplify.
11649 (fake_var_decl_obstack): New global var.
11650 (build_fake_var_decl): New function.
11651 (make_constraint_from_heapvar): Adjust.
11652 (handle_lhs_call): Likewise.
11653 (create_function_info_for): Likewise.
11654 (intra_create_variable_infos): Likewise.
11655 (init_alias_vars): Allocate fake_var_decl_obstack.
11656 (init_alias_heapvars, delete_alias_heapvars): Remove.
11657 (compute_points_to_sets): Do not call init_alias_heapvars.
11658 (ipa_pta_execute): Likewise.
11659 (delete_points_to_sets): Free fake_var_decl_obstack.
11660
11661 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11662
11663 * config/spu/divmovti4.c (union qword_UTItype): New data type.
11664 (si_from_UTItype, si_to_UTItype): New functions.
11665 (__udivmodti4): Use them to implement type-punning.
11666 * config/spu/multi3.c (union qword_TItype): New data type.
11667 (si_from_TItype, si_to_TItype): New functions.
11668 (__multi3): Use them to implement type-punning.
11669
11670 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11671
11672 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
11673
11674 2011-04-27 Jan Hubicka <jh@suse.cz>
11675
11676 * ipa-prop.c (function_insertion_hook_holder): New holder.
11677 (ipa_add_new_function): New function.
11678 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
11679 Register/deregister holder.
11680
11681 2011-04-27 Richard Guenther <rguenther@suse.de>
11682
11683 PR tree-optimization/48772
11684 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
11685
11686 2011-04-27 Richard Guenther <rguenther@suse.de>
11687
11688 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
11689 TARGET_MEM_REF handling.
11690
11691 2011-04-27 Nick Clifton <nickc@redhat.com>
11692
11693 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
11694 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
11695 (REG_CLASS_NAMES): Likewise.
11696 (REG_CLASS_CONTENTS): Likewise.
11697 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11698 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
11699 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
11700 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
11701 (EVEN_REGS): New macro. Alias for QUAD_REGS.
11702 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
11703 duplicate register classes.
11704 (frv_class_likely_spilled_p): Likewise.
11705 (frv_register_move_cost): Likewise.
11706
11707 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
11708 end of the regno_reg_class array.
11709
11710 2011-04-27 Jakub Jelinek <jakub@redhat.com>
11711
11712 PR c/48742
11713 * c-typeck.c (build_binary_op): Don't wrap arguments if
11714 int_operands is true.
11715
11716 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
11717
11718 PR target/48767
11719 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
11720 targetm.calls.must_pass_in_stack for void type.
11721
11722 2011-04-26 Jan Hubicka <jh@suse.cz>
11723
11724 * cgraphbuild.c (build_cgraph_edges): Update call
11725 of cgraph_create_edge and cgraph_create_indirect_edge.
11726 * cgraph.c (cgraph_create_edge_including_clones,
11727 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
11728 cgraph_update_edges_for_call_stmt_node): Do not take nest
11729 argument; do not initialize call_stmt_size/time.
11730 (dump_cgraph_node): Do not dump nest.
11731 (cgraph_clone_edge): Do not take loop_nest argument;
11732 do not propagate it; do not clone call_stmt_size/time.
11733 (cgraph_clone_node): Likewise.
11734 (cgraph_create_virtual_clone): Update.
11735 * cgraph.h (struct cgraph_edge): Remove
11736 call_stmt_size/call_stmt_time/loop_nest.
11737 (cgraph_create_edge, cgraph_create_indirect_edge,
11738 cgraph_create_edge_including_clones, cgraph_clone_node): Update
11739 prototype.
11740 * tree-emutls.c (gen_emutls_addr): Update.
11741 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
11742 loop_nest; handle indirect calls, too.
11743 (clone_inlined_nodes): Do not care about updating inline summaries.
11744 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
11745 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
11746 stream call_stmt_size/call_stmt_time/loop_nest.
11747 * ipa-inline.c (edge_badness): Update.
11748 (ipa_inline): dump summaries after inlining.
11749 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
11750 New.
11751 (inline_edge_summary): New function.
11752 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
11753 (inline_edge_removal_hook): Handle edge summaries.
11754 (inline_edge_duplication_hook): New hook.
11755 (inline_summary_alloc): Alloc hooks.
11756 (initialize_growth_caches): Do not register removal hooks.
11757 (free_growth_caches); Do not free removal hook.
11758 (dump_inline_edge_summary): New function.
11759 (dump_inline_summary): Use it.
11760 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
11761 (inline_update_callee_summaries): New function.
11762 (inline_merge_summary): Use it.
11763 (do_estimate_edge_time, do_estimate_edge_growth): Update.
11764 (read_inline_edge_summary): New function.
11765 (inline_read_section): Use it.
11766 (write_inline_edge_summary): New function.
11767 (inline_write_summary): Use it.
11768 (inline_free_summary): Free edge new holders.
11769 * tree-inline.c (copy_bb): Update.
11770
11771 2011-04-26 Jason Merrill <jason@redhat.com>
11772
11773 * tree-eh.c (lower_try_finally_switch): Create the label along with
11774 the CASE_LABEL_EXPR.
11775
11776 2011-04-26 David S. Miller <davem@davemloft.net>
11777 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11778
11779 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
11780 * configure: Regenerate.
11781
11782 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11783
11784 PR target/48258
11785 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
11786 reduction.
11787 (VEC_reduc): New code iterator and splitters for vector reduction.
11788 (VEC_reduc_name): Ditto.
11789 (VEC_reduc_rtx): Ditto.
11790 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
11791 (reduc_<VEC_reduc_name>_v4sf): Ditto.
11792
11793 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11794 support for extracting SF on VSX.
11795
11796 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
11797 generating xscvspdp.
11798 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
11799 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
11800 double add, minimum, maximum vector reduction.
11801 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
11802 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
11803 optimize double vector reduction.
11804 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
11805
11806 2011-04-26 Joseph Myers <joseph@codesourcery.com>
11807
11808 * config/fr30/fr30.h (inhibit_libc): Don't define.
11809 * config/m32r/m32r-protos.h: Correct comment.
11810 * config/v850/v850.h (GHS_default_section_names,
11811 GHS_current_section_names): Use tree, not union tree_node *.
11812
11813 2011-04-26 Xinliang David Li <davidxl@google.com>
11814
11815 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
11816 * c-family/c-opts.c (c_common_handle_option): Set
11817 warn_maybe_uninitialized.
11818 * opts.c (common_handle_option): Ditto.
11819 * common.opt: New option.
11820 * tree-ssa.c (warn_uninit): Add one more parameter.
11821 (warn_uninitialized_var): Pass warning code.
11822 * tree-flow.h: Interface change.
11823
11824 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11825
11826 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
11827 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
11828 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
11829
11830 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11831
11832 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
11833 * config/mips/mips.opt (mmips-tfile): Remove.
11834
11835 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
11836 mips-tdump reference to ...
11837 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
11838 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
11839 reference by Tru64 UNIX.
11840
11841 2011-04-26 Jakub Jelinek <jakub@redhat.com>
11842
11843 PR debug/48768
11844 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
11845 is error_mark_node, set value to NULL.
11846
11847 PR tree-optimization/48734
11848 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
11849 if return value from maybe_fold_*_comparsions isn't something
11850 the code is prepared to handle.
11851
11852 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
11853
11854 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
11855 mode check.
11856 (ext_QIreg_nomode_operands): Remove.
11857 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
11858 (*andsi_1): Ditto.
11859 (*andhi_1): Ditto.
11860
11861 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
11862
11863 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
11864
11865 2011-04-26 Richard Guenther <rguenther@suse.de>
11866
11867 * c-typeck.c (build_unary_op): Do not expand array-refs via
11868 pointer arithmetic. Only adjust qualifiers for function types.
11869
11870 2011-04-26 Richard Guenther <rguenther@suse.de>
11871
11872 PR middle-end/48694
11873 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
11874 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
11875 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
11876 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
11877
11878 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
11879
11880 * doc/extend.texi: Document __underlying_type.
11881
11882 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
11883
11884 * config/rs6000/titan.md (automata_option "progress"): Remove.
11885
11886 2011-04-25 Jeff Law <law@redhat.com>
11887
11888 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
11889
11890 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
11891
11892 * system.h (ENUM_BITFIELD): Remove.
11893
11894 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
11895 Eric Botcazou <ebotcazou@adacore.com>
11896
11897 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
11898 for STORE_FLAG_VALUE==-1 case.
11899
11900 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
11901
11902 PR target/43804
11903 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
11904 LEGITIMATE_PIC_OPERAND_P.
11905
11906 2011-04-24 Jan Hubicka <jh@suse.cz>
11907
11908 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
11909 WPA hack.
11910 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
11911 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
11912 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
11913 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
11914 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
11915 Sanity check predicate length.
11916 (remap_predicate): Likewise; sanity check jump functions.
11917 (inline_read_section, inline_write_summary): Sanity check
11918 predicate length.
11919
11920 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
11921
11922 PR other/48748
11923 * doc/extend.texi (Type Traits): Document __is_standard_layout,
11924 __is_literal_type, and __is_trivial; update throughout about
11925 possibly cv-qualified void types.
11926
11927 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
11928
11929 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
11930 testsuite and make it version agnostic.
11931
11932 2011-04-22 Jan Hubicka <jh@suse.cz>
11933
11934 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
11935
11936 2011-04-23 Jakub Jelinek <jakub@redhat.com>
11937
11938 PR c/48685
11939 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
11940 to VOID_TYPE even around MODIFY_EXPR.
11941
11942 2011-04-22 Mike Stump <mikestump@comcast.net>
11943
11944 * gensupport.c (read_md_rtx): Fix typo in comment.
11945 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
11946 comment.
11947
11948 2011-04-22 Jan Hubicka <jh@suse.cz>
11949
11950 * gengtype.c (open_base_files): Add ipa-inline.h include.
11951 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
11952 ipa-prop.c; update all uses.
11953 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
11954 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
11955 merge summary of inlined function into former caller.
11956 * ipa-inline.c (max_benefit): Remove.
11957 (edge_badness): Compensate for removal of benefits.
11958 (update_caller_keys): Use
11959 reset_node_growth_cache/reset_edge_growth_cache.
11960 (update_callee_keys): Likewise.
11961 (update_all_callee_keys): Likewise.
11962 (inline_small_functions): Do not collect max_benefit; do not reset
11963 estimated_growth; call free_growth_caches and initialize_growth_caches.
11964 * ipa-inline.h (struct condition, type clause_t, struct predicate,
11965 struct size_time_entry): New structures.
11966 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
11967 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
11968 and estimated_growth.
11969 (edge_growth_cache_entry): New structure.
11970 (node_growth_cache, edge_growth_cache): New global vars.
11971 (estimate_growth): Turn into inline.
11972 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
11973 initialize_growth_caches, free_growth_caches): Declare.
11974 (estimate_edge_growth): Rewrite.
11975 (estimate_edge_time): Implement as inline cache lookup.
11976 (reset_node_growth_cache, reset_edge_growth_cache): New inline
11977 functions.
11978 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
11979 (NUM_CONDITIONS): New constant.
11980 (predicate_conditions): New enum.
11981 (IS_NOT_CONSTANT): New constant.
11982 (edge_removal_hook_holder): New var.
11983 (node_growth_cache, edge_growth_cache): New global vars.
11984 (true_predicate, single_cond_predicate, false_predicate,
11985 not_inlined_predicate, add_condition, add_clause, and_predicates,
11986 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
11987 dump_clause, dump_predicate, account_size_time,
11988 evaulate_conditions_for_edge): New functions.
11989 (inline_summary_alloc): Move to heap.
11990 (inline_node_removal_hook): Clear condition and entry vectors.
11991 (inline_edge_removal_hook): New function.
11992 (initialize_growth_caches, free_growth_caches): New function.
11993 (dump_inline_summary): Update.
11994 (edge_execution_predicate): New function.
11995 (will_be_nonconstant_predicate): New function.
11996 (estimate_function_body_sizes): Compute BB and constantness predicates.
11997 (compute_inline_parameters): Do not clear estimated_growth.
11998 (estimate_edge_size_and_time): New function.
11999 (estimate_calls_size_and_time): New function.
12000 (estimate_callee_size_and_time): New function.
12001 (remap_predicate): New function.
12002 (inline_merge_summary): New function.
12003 (do_estimate_edge_time): New function based on...
12004 (estimate_edge_time): ... this one.
12005 (do_estimate_edge_growth): New function.
12006 (do_estimate_growth): New function based on....
12007 (estimate_growth): ... this one.
12008 (inline_analyze_function): Analyze after deciding on jump functions.
12009 (inline_read_section): New function.
12010 (inline_read_summary): Use it.
12011 (inline_write_summary): Write all the new data.
12012 * ipa-prop.c (ipa_get_param_decl_index): Export.
12013 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
12014 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
12015 Declare.
12016 (ipa_get_lattice): Move here from ipa-cp.c
12017 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
12018 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
12019 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
12020 cgraph_edge_inlinable_p): Remove.
12021 * cgraphunit.c: Include ipainline.h
12022 (cgraph_process_new_functions): Update call of
12023 compute_inline_parameters.
12024
12025 2011-04-22 Richard Guenther <rguenther@suse.de>
12026
12027 * tree.c (build_int_cst): Properly create canonicalized integer
12028 constants.
12029 (build_int_cst_type): Remove scary comments.
12030
12031 2011-04-22 Xinliang David Li <davidxl@google.com>
12032
12033 * toplev.c (process_options): Enable -Werror=coverage-mismatch
12034 by default when -Wno-error is not specified.
12035 * opts-global.c (decode_options): Remove call to
12036 control_warning_options.
12037
12038 2011-04-22 Jakub Jelinek <jakub@redhat.com>
12039
12040 PR tree-optimization/48717
12041 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
12042 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
12043
12044 2011-04-22 Joseph Myers <joseph@codesourcery.com>
12045
12046 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
12047 definition where used.
12048
12049 2011-04-22 Jakub Jelinek <jakub@redhat.com>
12050
12051 PR c/48716
12052 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
12053 TREE_STATIC variables declared inside of some OpenMP construct.
12054
12055 2011-04-22 Martin Jambor <mjambor@suse.cz>
12056
12057 PR middle-end/48585
12058 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
12059
12060 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
12061
12062 PR c/36750
12063 * c-typeck.c (pop_init_level): Do not warn about initializing
12064 with ` = {0}'.
12065
12066 2011-04-22 Alan Modra <amodra@gmail.com>
12067
12068 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
12069 when returning call_cookie.
12070 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
12071 pointers, to functions with no more vector args than the current
12072 function, and some non-local calls for ABI_V4.
12073 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
12074 sibcall_nonlocal_aix64): Combine to ..
12075 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
12076 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
12077 (sibcall_value_nonlocal_aix<mode>): ..likewise.
12078 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
12079 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
12080 operand.
12081 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
12082 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
12083 sibcall_value_symbolic_64): Delete.
12084
12085 2011-04-21 Xinliang David Li <davidxl@google.com>
12086
12087 * cgraph.h: Remove pid.
12088 * cgraph.c: Remove pid.
12089 * value-prof.c (init_node_map): New function.
12090 (del_node_map): New function.
12091 (find_func_by_funcdef_no): New function.
12092 (gimple_ic_transform): Call new function.
12093 * cgraphunit.c (cgraph_finalize_function): Remove pid.
12094 * function.c (get_last_funcdef_no): New function.
12095 * function.h (get_last_funcdef_no): New function.
12096 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
12097 to libgcov function.
12098 (tree-profiling): Call node map init and delete function.
12099
12100 2011-04-21 Ian Lance Taylor <iant@google.com>
12101
12102 * godump.c (go_format_type): Use exported Go name for anonymous
12103 field name.
12104
12105 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12106
12107 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
12108 Call builtin_function_type_list instead of builtin_function_type.
12109 (UNARY, BINARY, TRINARY, QUAD): Likewise.
12110
12111 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12112
12113 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
12114 build_function_type_list instead of build_function_type.
12115 Delete variable `endlink'.
12116
12117 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12118
12119 * config/s390/s390.c (s390_init_builtins): Call
12120 build_function_type_list instead of build_function_type.
12121
12122 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
12123
12124 * config/ia64/ia64.c (ia64_init_builtins): Call
12125 build_function_type_list instead of builtin_function_type.
12126
12127 2011-04-21 Easwaran Raman <eraman@google.com>
12128
12129 * cfgexpand.c (stack_var): Remove OFFSET...
12130 (add_stack_var): ...and its reference here...
12131 (expand_stack_vars): ...and here.
12132 (stack_var_cmp): Sort by descending order of size.
12133 (partition_stack_vars): Change heuristic.
12134 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
12135 (dump_stack_var_partition): Add newline after each partition.
12136
12137 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
12138 Jeff Law <law@redhat.com>
12139
12140 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
12141 * gengtype.c (matching_file_name_substitute): Likewise.
12142
12143 2011-04-21 Richard Guenther <rguenther@suse.de>
12144
12145 PR lto/48703
12146 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
12147
12148 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
12149
12150 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
12151
12152 2011-04-21 Richard Guenther <rguenther@suse.de>
12153
12154 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
12155 file name.
12156
12157 2011-04-21 Richard Guenther <rguenther@suse.de>
12158
12159 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
12160 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
12161 Use DECL_P, not SSA_VAR_P.
12162 (ptr_derefs_may_alias_p): Likewise.
12163 (ptr_deref_may_alias_ref_p_1): Likewise.
12164 (decl_refs_may_alias_p): Likewise.
12165 (refs_may_alias_p_1): Likewise.
12166 (ref_maybe_used_by_call_p_1): Likewise.
12167 (call_may_clobber_ref_p_1): Likewise.
12168 (indirect_ref_may_alias_decl_p): Assume indirect refrences
12169 are either MEM_REF or TARGET_MEM_REF.
12170 (indirect_refs_may_alias_p): Likewise.
12171 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
12172 for MEM_EXPR of indirect calls.
12173
12174 2011-04-21 Tristan Gingold <gingold@adacore.com>
12175
12176 * vmsdbgout.c (write_srccorr): Compute file length from the string.
12177 (dst_file_info_struct): Remove flen field.
12178 (lookup_filename): Remove code that set flen field.
12179
12180 2011-04-21 Tristan Gingold <gingold@adacore.com>
12181
12182 * config/ia64/ia64.c (ia64_start_function): Add a guard.
12183
12184 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
12185
12186 PR target/48708
12187 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
12188 vec_extract and vec_concat for non-SSE4_1 targets.
12189
12190 2011-04-21 Richard Guenther <rguenther@suse.de>
12191
12192 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
12193 return statements.
12194
12195 2011-04-21 Joseph Myers <joseph@codesourcery.com>
12196
12197 * config/i386/cygming.h (union tree_node, TREE): Don't define or
12198 undefine.
12199 (FILE): Don't undefine.
12200
12201 2011-04-21 Joseph Myers <joseph@codesourcery.com>
12202
12203 * config/alpha/alpha.c (struct machine_function): Use rtx, not
12204 struct rtx_def *.
12205 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
12206 struct rtx_def *.
12207 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
12208 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
12209 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
12210 rtx_def *.
12211 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
12212 definitions where used.
12213 * config/microblaze/microblaze.h (struct microblaze_args): Use
12214 rtx, not struct rtx_def *.
12215 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
12216 rtx_def *.
12217 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
12218 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
12219 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
12220 not struct rtx_def *.
12221 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
12222 struct rtx_def *.
12223 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
12224 rtx_def *.
12225 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
12226
12227 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12228
12229 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
12230 operand_equal_p to compare DR_BASE_ADDRESSes.
12231 (vect_check_interleaving): Likewise.
12232
12233 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12234
12235 PR target/46329
12236 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
12237 for all Neon struct constants.
12238
12239 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12240
12241 * target.def (legitimate_constant_p): New hook.
12242 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
12243 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
12244 * doc/tm.texi: Regenerate.
12245 * hooks.h (hook_bool_mode_rtx_true): Declare.
12246 * hooks.c (hook_bool_mode_rtx_true): Define.
12247 * system.h (LEGITIMATE_CONSTANT_P): Poison.
12248 * calls.c (precompute_register_parameters): Replace uses of
12249 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
12250 (emit_library_call_value_1): Likewise.
12251 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
12252 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
12253 * ira-costs.c (scan_one_insn): Likewise.
12254 * recog.c (general_operand, immediate_operand): Likewise.
12255 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
12256 * reload1.c (init_eliminable_invariants): Likewise.
12257
12258 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
12259 mode argument.
12260 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
12261 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
12262 argument.
12263 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12264 * config/alpha/predicates.md (input_operand): Update call to
12265 alpha_legitimate_constant_p.
12266
12267 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
12268 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
12269 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
12270 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12271 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
12272 (arm_legitimate_constant_p): New functions.
12273 (arm_cannot_force_const_mem): Make static.
12274
12275 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
12276
12277 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
12278 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
12279 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
12280 instead of bfin_legitimate_constant_p.
12281 (bfin_legitimate_constant_p): Make static. Add a mode argument.
12282 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12283
12284 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
12285
12286 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
12287
12288 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
12289 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
12290 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12291 (frv_legitimate_constant_p): Make static. Add a mode argument.
12292
12293 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
12294 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
12295 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
12296
12297 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
12298 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
12299 * config/i386/i386.c (legitimate_constant_p): Rename to...
12300 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
12301 argument.
12302 (ix86_cannot_force_const_mem): Update accordingly.
12303 (ix86_legitimate_address_p): Likewise.
12304 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12305 * config/i386/i386.md: Update commentary.
12306
12307 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
12308 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
12309 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12310 (ia64_legitimate_constant_p): Make static. Add a mode argument.
12311
12312 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
12313
12314 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
12315 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
12316 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12317 (lm32_legitimate_constant_p): Make static. Add a mode argument.
12318
12319 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
12320 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
12321 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
12322
12323 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
12324 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12325 (m32r_legitimate_constant_p): New function.
12326
12327 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
12328 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
12329 LEGITIMATE_CONSTANT_P.
12330 (LEGITIMATE_CONSTANT_P): Delete.
12331 * config/m68k/m68k.c (m68k_expand_prologue): Call
12332 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
12333 (m68k_legitimate_constant_p): New function.
12334 * config/m68k/m68k.md: Update comments.
12335
12336 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
12337 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12338 (mcore_legitimate_constant_p): New function.
12339
12340 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
12341 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
12342 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
12343 Add a mode argument.
12344 (mep_legitimate_address): Update accordingly.
12345 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12346
12347 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
12348 Delete.
12349 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
12350 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
12351 static. Check OP's mode for VOIDmode.
12352 (microblaze_legitimate_constant_p): New function.
12353 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12354
12355 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
12356 * config/mips/mips.c (mips_legitimate_constant_p): New function.
12357 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
12358 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12359 * config/mips/predicates.md: Update comments.
12360
12361 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
12362 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
12363 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12364 (mmix_legitimate_constant_p): Make static, return a bool, and take
12365 a mode argument.
12366 (mmix_print_operand_address): Update accordingly.
12367
12368 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
12369 Delete.
12370 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
12371 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
12372 static. Add a mode argument.
12373 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12374
12375 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
12376
12377 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
12378 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12379 (pa_legitimate_constant_p): New function.
12380
12381 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
12382
12383 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
12384 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12385 (pdp11_legitimate_constant_p): New function.
12386
12387 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
12388 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12389 (rs6000_legitimate_constant_p): New function.
12390
12391 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
12392 (rx_legitimate_constant_p): ...this.
12393 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
12394 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
12395 (rx_legitimate_constant_p): ...this.
12396 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12397 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
12398
12399 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
12400 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
12401 * config/s390/s390.c (legitimate_constant_p): Rename to...
12402 (s390_legitimate_constant_p): ...this. Make static, return a bool,
12403 and add a mode argument.
12404 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12405
12406 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
12407
12408 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
12409 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12410 (sh_legitimate_constant_p): New function.
12411
12412 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
12413 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
12414 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12415 (legitimate_constant_p): Rename to...
12416 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
12417 argument.
12418 (constant_address_p): Update accordingly.
12419
12420 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
12421 argument and return a bool.
12422 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
12423 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12424 (spu_legitimate_constant_p): Add a mode argument and return a bool.
12425 (spu_rtx_costs): Update accordingly.
12426 * config/spu/predicates.md (vec_imm_operand): Likewise.
12427
12428 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
12429
12430 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
12431 * config/v850/v850.c (v850_legitimate_constant_p): New function.
12432 (TARGET_LEGITIMATE_CONSTANT_P): Define.
12433
12434 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
12435 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
12436 * config/vax/vax.c (legitimate_constant_p): Likewise.
12437
12438 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
12439 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
12440 (xtensa_legitimate_constant_p): New function.
12441
12442 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
12443
12444 * target.def (cannot_force_const_mem): Add a mode argument.
12445 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
12446 * doc/tm.texi: Regenerate.
12447 * hooks.h (hook_bool_mode_rtx_false): Declare.
12448 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
12449 (hook_bool_mode_const_rtx_true): Likewise.
12450 (hook_bool_mode_rtx_false): New function.
12451 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
12452 to be non-VOID. Update call to cannot_force_const_mem.
12453 (find_reloads): Update accordingly.
12454 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
12455 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
12456 argument.
12457 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
12458 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
12459 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
12460 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
12461 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
12462 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
12463 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
12464 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12465 (m68k_cannot_force_const_mem): ...this new function.
12466 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
12467 argument.
12468 (mips_const_insns, mips_legitimize_const_move): Update calls.
12469 (mips_secondary_reload_class): Likewise.
12470 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
12471 (pa_cannot_force_const_mem): ...this new function.
12472 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
12473 (rs6000_cannot_force_const_mem): ...this new function.
12474 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
12475 argument.
12476 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
12477 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
12478 to...
12479 (xtensa_cannot_force_const_mem): ...this new function.
12480
12481 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12482
12483 * config/mips/mips.c (mips16_build_function_stub): Call
12484 build_function_type_list instead of build_function_type.
12485 (mips16_build_call_stub): Likewise.
12486
12487 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12488
12489 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
12490 instead of build_function_type.
12491
12492 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
12493
12494 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
12495 instead of build_function_type.
12496
12497 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
12498
12499 PR target/48678
12500 * config/i386/i386.md (insv): Change operand 0 constraint to
12501 "register_operand". Change operand 1 and 2 constraint to
12502 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
12503 * config/i386/sse.md (sse4_1_pinsrb): Export.
12504 (sse2_pinsrw): Ditto.
12505 (sse4_1_pinsrd): Ditto.
12506 (sse4_1_pinsrq): Ditto.
12507 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
12508 * config/i386/i386.c (ix86_expand_pinsr): New.
12509
12510 2011-04-20 Easwaran Raman <eraman@google.com>
12511
12512 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
12513 containing union type only with -fstrict-aliasing.
12514
12515 2011-04-20 Jim Meyering <meyering@redhat.com>
12516
12517 Remove useless if-before-free tests.
12518 * calls.c (expand_call, save_area): Likewise.
12519 * cfgcleanup.c (try_forward_edges): Likewise.
12520 * collect2.c (collect_execute): Likewise.
12521 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
12522 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
12523 * coverage.c (coverage_checksum_string): Likewise.
12524 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
12525 * cselib.c (cselib_init): Likewise.
12526 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
12527 (df_set_clean_cfg): Likewise.
12528 * function.c (free_after_compilation): Likewise.
12529 * gcc.c (do_spec_1, main): Likewise.
12530 * gcov.c (create_file_names): Likewise.
12531 * gensupport.c (identify_predicable_attribute): Likewise.
12532 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
12533 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
12534 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
12535 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
12536 * ipa-pure-const.c (local_pure_const): Likewise.
12537 * ipa-reference.c (propagate): Likewise.
12538 * ira-costs.c (free_ira_costs): Likewise.
12539 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
12540 * matrix-reorg.c (mat_free): Likewise.
12541 * prefix.c (get_key_value): Likewise.
12542 * profile.c (compute_value_histograms): Likewise.
12543 * reload1.c (free_reg_equiv): Likewise.
12544 * sched-deps.c (free_deps): Likewise.
12545 * sel-sched-ir.c (fence_clear): Likewise.
12546 * sese.c (set_rename, if_region_set_false_region): Likewise.
12547 * tree-data-ref.c (free_rdg): Likewise.
12548 * tree-eh.c (lower_try_finally): Likewise.
12549 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
12550 * tree-ssa-live.c (delete_var_map): Likewise.
12551 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
12552 * tree-ssa-pre.c (phi_trans_add): Likewise.
12553
12554 2011-04-20 Jakub Jelinek <jakub@redhat.com>
12555
12556 PR tree-optimization/48611
12557 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
12558 beyond ERT_MUST_NOT_THROW region.
12559
12560 2011-04-20 Catherine Moore <clm@codesourcery.com>
12561
12562 * config/mips/mips.opt (mfix-24k): New.
12563 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
12564 * config/mips/mips.md (length): Increase by 4 for stores if
12565 fixing 24K errata.
12566 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
12567 all noreorder if fixing 24K errata.
12568 * doc/invoke.texi: Document mfix-24k.
12569
12570 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
12571
12572 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
12573 quad-word modes, reduce to 9-bit index range when above 1016 limit.
12574
12575 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
12576
12577 * config/arm/arm.c (arm_gen_constant): Move movw support ....
12578 (const_ok_for_op): ... to here.
12579
12580 2011-04-20 Kai Tietz <ktietz@redhat.com>
12581
12582 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
12583 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
12584
12585 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
12586
12587 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
12588
12589 2011-04-20 Richard Guenther <rguenther@suse.de>
12590
12591 PR tree-optimization/47892
12592 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
12593 are if-convertible.
12594
12595 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
12596
12597 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
12598
12599 2011-04-20 Tristan Gingold <gingold@adacore.com>
12600
12601 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
12602
12603 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
12604
12605 PR target/18145
12606
12607 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
12608 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
12609 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12610 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
12611 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
12612
12613 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
12614 New prototype.
12615
12616 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
12617 (avr_asm_named_section, avr_asm_output_aligned_common,
12618 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
12619 New functions to update...
12620 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
12621 (avr_asm_init_sections): Overwrite section callbacks for
12622 data_section, bss_section.
12623 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
12624 from here to...
12625 (avr_file_end): ...here.
12626
12627 2011-04-20 Richard Guenther <rguenther@suse.de>
12628
12629 PR middle-end/48695
12630 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
12631 objects and types here. Adjust for their offset before comparing.
12632
12633 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12634
12635 * tree-vect-stmts.c (vectorizable_store): Only chain one related
12636 statement per copy.
12637
12638 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
12639
12640 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
12641 (GIMPLE_H): Include $(INTERNAL_FN_H).
12642 (OBJS-common): Add internal-fn.o.
12643 (internal-fn.o): New rule.
12644 * internal-fn.def: New file.
12645 * internal-fn.h: Likewise.
12646 * internal-fn.c: Likewise.
12647 * gimple.h: Include internal-fn.h.
12648 (GF_CALL_INTERNAL): New gf_mask.
12649 (gimple_statement_call): Put fntype into a union with a new
12650 internal_fn field.
12651 (gimple_build_call_internal): Declare.
12652 (gimple_build_call_internal_vec): Likewise.
12653 (gimple_call_same_target_p): Likewise.
12654 (gimple_call_internal_p): New function.
12655 (gimple_call_internal_fn): Likewise.
12656 (gimple_call_fntype): Return null for internal calls.
12657 (gimple_call_set_fntype): Assert that the function is not internal.
12658 (gimple_call_set_fn): Likewise.
12659 (gimple_call_set_fndecl): Likewise.
12660 (gimple_call_set_internal_fn): New function.
12661 (gimple_call_addr_fndecl): Handle null functions.
12662 (gimple_call_return_type): Likewise null types.
12663 * gimple.c (gimple_build_call_internal_1): New function.
12664 (gimple_build_call_internal): Likewise.
12665 (gimple_build_call_internal_vec): Likewise.
12666 (gimple_call_same_target_p): Likewise.
12667 (gimple_call_flags): Handle calls to internal functions.
12668 (gimple_call_fnspec): New function.
12669 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
12670 (gimple_has_side_effects): Handle null functions.
12671 (gimple_rhs_has_side_effects): Likewise.
12672 (gimple_call_copy_skip_args): Handle calls to internal functions.
12673 * cfgexpand.c (expand_call_stmt): Likewise.
12674 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
12675 * gimple-fold.c (gimple_fold_call): Handle null functions.
12676 (gimple_fold_stmt_to_constant_1): Don't fold
12677 calls to internal functions.
12678 * gimple-low.c (gimple_check_call_args): Handle calls to internal
12679 functions.
12680 * gimple-pretty-print.c (dump_gimple_call): Likewise.
12681 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
12682 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
12683 (do_warn_unused_result): Likewise.
12684 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
12685 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
12686 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
12687 the target of a call.
12688 (initialize_hash_element): Update accordingly.
12689 (hashable_expr_equal_p): Use gimple_call_same_target_p.
12690 (iterative_hash_hashable_expr): Handle calls to internal functions.
12691 (print_expr_hash_elt): Likewise.
12692 * tree-ssa-pre.c (can_value_number_call): Likewise.
12693 (eliminate): Handle null functions.
12694 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
12695 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
12696 (find_func_aliases): Likewise.
12697 * value-prof.c (gimple_ic_transform): Likewise.
12698 (gimple_indirect_call_to_profile): Likewise.
12699 * lto-streamer-in.c (input_gimple_stmt): Likewise.
12700 * lto-streamer-out.c (output_gimple_stmt): Likewise.
12701
12702 2011-04-19 Jan Hubicka <jh@suse.cz>
12703
12704 * ipa-inline-transform.c (save_inline_function_body): Add comments.
12705 * ipa-inline.c (inline_small_functions): Compute summaries first,
12706 populate heap later.
12707
12708 2011-04-19 Jan Hubicka <jh@suse.cz>
12709
12710 * cgraph.h (save_inline_function_body): Remove.
12711 * ipa-inline-transform.c: New file, broke out of...
12712 * ipa-inline.c: ... this one; Update toplevel comment.
12713 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
12714 make global.
12715 (update_noncloned_frequencies): Move to ipa-inline-transform.c
12716 (cgraph_mark_inline_edge): Rename to inline_call; move to
12717 ipa-inline-transform.c.
12718 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
12719 move to ipa-inline-transform.c
12720 (recursive_inlining, inline_small_functions, flatten_function,
12721 ipa_inline, inline_always_inline_functions,
12722 early_inline_small_functions): Update.
12723 (inline_transform): Move to ipa-inline-transform.c.
12724 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
12725 Declare.
12726 * Makefile.in (ipa-inline-transform.o): New file.
12727 * cgraphunit.c (save_inline_function_body): Move to
12728 ipa-inline-transform.c
12729
12730 2011-04-19 DJ Delorie <dj@redhat.com>
12731
12732 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
12733 registers if we already know there aren't any.
12734 (m32c_emit_epilogue): Don't emit a barrier here.
12735 (m32c_emit_eh_epilogue): Likewise.
12736 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
12737 operands at expand time.
12738 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
12739 int" wchar type.
12740 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
12741 duplicates. Provide aliases instead.
12742 * config/m32c/prologue.md (eh_return): Emit a barrier here.
12743 (eh_epilogue): Add a "(return)" here as a hint to other parts of
12744 the compiler.
12745
12746 2011-04-19 Anatoly Sokolov <aesok@post.ru>
12747
12748 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
12749 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
12750 (general_or_i64_p, sparc_register_move_cost): New function.
12751
12752 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12753
12754 * doc/install.texi (Configuration, --enable-threads): Remove mach.
12755 Add lynx, mipssde. Sort table.
12756
12757 2011-04-19 Xinliang David Li <davidxl@google.com>
12758
12759 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
12760 not negative.
12761
12762 2011-04-19 Jakub Jelinek <jakub@redhat.com>
12763
12764 PR target/48678
12765 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
12766 is a SUBREG with non-MODE_INT mode inside of it.
12767
12768 2011-04-19 Martin Jambor <mjambor@suse.cz>
12769
12770 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
12771 also according to actual contants.
12772 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
12773 (gimple_fold_call): Use it.
12774 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
12775
12776 2011-04-19 Martin Jambor <mjambor@suse.cz>
12777
12778 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
12779 non-pointer assignments.
12780
12781 2011-04-19 Martin Jambor <mjambor@suse.cz>
12782
12783 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
12784 account anc_offset and otr_type from the indirect edge info.
12785 * ipa-prop.c (get_ancestor_addr_info): New function.
12786 (compute_complex_ancestor_jump_func): Assignment analysis moved to
12787 get_ancestor_addr_info, call it.
12788 (ipa_note_param_call): Do not initialize information about polymorphic
12789 calls, return the indirect call graph edge. Remove the last
12790 parameter, adjust all callers.
12791 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
12792 parameters. Initialize polymorphic information in the indirect edge.
12793
12794 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12795
12796 PR lto/48148
12797 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
12798 the types if they have different enumeration identifiers.
12799
12800 2011-04-19 Jan Hubicka <jh@suse.cz>
12801
12802 * cgraph.h (cgraph_optimize_for_size_p): Declare.
12803 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
12804 * predict.c (cgraph_optimize_for_size_p): Break out from ...
12805 (optimize_function_for_size_p) ... here.
12806
12807 2011-04-19 Richard Guenther <rguenther@suse.de>
12808
12809 PR lto/48207
12810 * tree.c (free_lang_data): Do not reset the decl-assembler-name
12811 langhook.
12812
12813 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
12814
12815 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
12816 if DECL_NO_INLINE_WARNING_P is set on the function.
12817
12818 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
12819
12820 PR fortran/47976
12821 * reload1.c (inc_for_reload): Return void. All callers changed.
12822 (emit_input_reload_insns): Don't try to delete previous output
12823 reloads to a register, or record spill_reg_store for autoincs.
12824
12825 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
12826
12827 * gengtype.h: Updated copyright year.
12828 (struct input_file_st): Add inpisplugin field.
12829 (type_fileloc): New function.
12830 * gengtype.c
12831 (write_typed_struct_alloc_def): Add gcc_assert.
12832 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
12833 (write_typed_alloc_defns): Don't output for plugin files.
12834 (input_file_by_name): Clear inpisplugin field.
12835 (main): Set inpisplugin field for plugin files.
12836
12837 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
12838
12839 * gengtype-state.c (string_eq): New.
12840 (read_state): Use string_eq instead of strcmp when creating the
12841 state_ident_tab.
12842
12843 2011-04-19 Wei Guozhi <carrot@google.com>
12844
12845 PR target/47855
12846 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
12847 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
12848 linkage.
12849 * config/arm/constraints.md (Uu): New constraint.
12850 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
12851
12852 2011-04-19 Tristan Gingold <gingold@adacore.com>
12853
12854 * config.gcc (-*-*-*vms): Added.
12855 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
12856 definitions moved.
12857 * config/vms/vms-ld.c: New file.
12858 * config/vms/vms-ar.c: New file.
12859 * config/vms/t-vmsnative: New file.
12860
12861 2011-04-18 Xinliang David Li <davidxl@google.com>
12862
12863 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
12864
12865 2011-04-18 Jakub Jelinek <jakub@redhat.com>
12866
12867 PR middle-end/48661
12868 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
12869 if TREE_TYPE (v) is non-NULL.
12870
12871 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
12872 gimple_get_virt_mehtod_for_binfo.
12873 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
12874 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
12875 callers.
12876 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
12877
12878 2011-04-18 Michael Matz <matz@suse.de>
12879 Steve Ellcey <sje@cup.hp.com>
12880
12881 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
12882 use its mode as source mode if it isn't VOIDmode.
12883
12884 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
12885
12886 * doc/passes.texi: Fill crossref nodes.
12887
12888 2011-04-18 Jim Meyering <meyering@redhat.com>
12889
12890 Fix doubled-word typos in comments and strings
12891 * config/alpha/vms-unwind.h: s/for for/for/
12892 * config/arm/unwind-arm.h: Likewise.
12893 * config/microblaze/microblaze.c: Likewise.
12894 * config/sh/constraints.md: s/in in/in/
12895 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
12896
12897 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
12898
12899 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
12900 (AVX_FLOAT_MODE_P): Ditto.
12901 (AVX128_VEC_FLOAT_MODE_P): Ditto.
12902 (AVX256_VEC_FLOAT_MODE_P): Ditto.
12903 (AVX_VEC_FLOAT_MODE_P): Ditto.
12904 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
12905 (UNSPEC_MASKSTORE): Ditto.
12906 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
12907 Merge from <sse>_movmsk<ssemodesuffix> and
12908 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
12909 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
12910 iterator.
12911 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
12912 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
12913 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
12914
12915 2011-04-18 Jan Hubicka <jh@suse.cz>
12916
12917 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
12918
12919 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
12920 (want_inline_function_called_once_p): Break out the logic from
12921 ipa_inline.
12922 (edge_badness): Ensure that profile is not misupdated.
12923 (lookup_recursive_calls): Prioritize by call frequencies.
12924 (inline_small_functions): Move program size estimates here;
12925 actually process whole queue even when unit growth has been
12926 met. (to properly compute inline_failed reasons and for the
12927 case unit size decrease.) Revisit comments on recursive inlining.
12928 (ipa_inline): Remove unit summary code; first inline hot calls
12929 of functions called once, cold calls next.
12930 (order, nnodes): Remove unused variables.
12931 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
12932 (GTFILES): Remove ipa-inline.c
12933 * sel-sched.c (fill_insns): Silence uninitialized var warning.
12934
12935 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12936
12937 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
12938
12939 2011-04-18 Jie Zhang <jie@codesourcery.com>
12940 Richard Earnshaw <rearnsha@arm.com>
12941
12942 * arm.c (neon_builtin_type_bits): Remove.
12943 (typedef enum neon_builtin_mode): New.
12944 (T_MAX): Don't define.
12945 (typedef enum neon_builtin_datum): Remove bits, codes[],
12946 num_vars and base_fcode. Add mode, code and fcode.
12947 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
12948 VAR10): Change accordingly.
12949 (neon_builtin_data[]): Change accordingly
12950 (arm_init_neon_builtins): Change accordingly.
12951 (neon_builtin_compare): Remove.
12952 (locate_neon_builtin_icode): Remove.
12953 (arm_expand_neon_builtin): Change accordingly.
12954
12955 * arm.h (enum arm_builtins): Move to ...
12956 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
12957
12958 * arm.c (arm_builtin_decl): Declare.
12959 (TARGET_BUILTIN_DECL): Define.
12960 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
12961 (arm_builtin_decls[]): New.
12962 (arm_init_neon_builtins): Store builtin declarations in
12963 arm_builtin_decls[].
12964 (arm_init_tls_builtins): Likewise.
12965 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
12966 (arm_builtin_decl): New.
12967
12968 2011-04-18 Richard Guenther <rguenther@suse.de>
12969
12970 * tree.c (upper_bound_in_type): Build properly canonicalized
12971 INTEGER_CSTs.
12972 (lower_bound_in_type): Likewise.
12973
12974 2011-04-18 Richard Guenther <rguenther@suse.de>
12975
12976 * gimple.h (gimple_call_addr_fndecl): New function.
12977 (gimple_call_fndecl): Use it.
12978 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
12979 for direct calls.
12980 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
12981 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
12982
12983 2011-04-18 Richard Guenther <rguenther@suse.de>
12984
12985 PR middle-end/48650
12986 * tree.c (build_string): STRING_CST is now derived from tree_typed.
12987
12988 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
12989
12990 PR lto/48492
12991 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
12992 DECL_IN_CONSTANT_POOL without RTL.
12993
12994 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
12995 Ira Rosen <ira.rosen@linaro.org>
12996
12997 PR target/48252
12998 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
12999 to match neon_vzip/vuzp/vtrn_internal.
13000 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
13001 outputs explicitly dependent on both inputs.
13002 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
13003
13004 2011-04-18 Jakub Jelinek <jakub@redhat.com>
13005
13006 PR tree-optimization/48616
13007 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
13008 whether the shift is by scalar or vector based on whether all SLP
13009 scalar stmts have the same rhs.
13010
13011 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
13012
13013 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
13014 memory operands.
13015
13016 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
13017
13018 PR target/43700
13019 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
13020 registers.
13021
13022 2011-04-17 Jan Hubicka <jh@suse.cz>
13023
13024 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
13025 * cgrpahunit.c (cgraph_finalize_function): Do not set
13026 finalized_by_frontend.
13027 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13028 finalized_by_frontend.
13029
13030 2011-04-17 Jan Hubicka <jh@suse.cz>
13031
13032 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
13033 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
13034 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
13035 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
13036 method.
13037 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
13038 gimple-fold.c
13039 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
13040
13041 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
13042
13043 PR lto/48538
13044 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
13045 is non-null before accessing it.
13046 (input_cgraph): Remove trailing spaces.
13047
13048 2011-04-17 Revital Eres <revital.eres@linaro.org>
13049
13050 * params.def (sms-min-sc): New param flag.
13051 * modulo-sched.c (sms_schedule): Use it.
13052 * doc/invoke.texi (sms-min-sc): Document it.
13053
13054 2011-04-17 Jan Hubicka <jh@suse.cz>
13055
13056 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
13057 present, also set gimple_call_set_cannot_inline.
13058 * ipa-inline.c: Update toplevel comment.
13059 (MAX_TIME): Remove.
13060 (cgraph_clone_inlined_nodes): Fix linebreaks.
13061 (cgraph_check_inline_limits): Restructure to ...
13062 (caller_growth_limits): ... this one; be more tolerant
13063 on growth in nested inline chains; add explanatory comment;
13064 fix stack accounting thinko introduced by previous patch.
13065 (cgraph_default_inline_p): Remove.
13066 (report_inline_failed_reason): New function.
13067 (can_inline_edge_p): New function.
13068 (can_early_inline_edge_p): New function.
13069 (leaf_node_p): Move upwards in file.
13070 (want_early_inline_function_p): New function.
13071 (want_inline_small_function_p): New function.
13072 (want_inline_self_recursive_call_p): New function.
13073 (cgraph_edge_badness): Rename to ...
13074 (edge_badness) ... this one; fix linebreaks.
13075 (update_edge_key): Update call of edge_baddness; add
13076 detailed dump about queue updates.
13077 (update_caller_keys): Use can_inline_edge_p and
13078 want_inline_small_function_p.
13079 (cgraph_decide_recursive_inlining): Rename to...
13080 (recursive_inlining): Use can_inline_edge_p and
13081 want_inline_self_recursive_call_p; simplify and remove no longer
13082 valid FIXME.
13083 (cgraph_set_inline_failed): Remove.
13084 (add_new_edges_to_heap): Use can_inline_edge_p and
13085 want_inline_small_function_p.
13086 (cgraph_decide_inlining_of_small_functions): Rename to ...
13087 (inline_small_functions): ... this one; cleanup; use
13088 can/want predicates; cleanup debug ouput; work edges till fibheap
13089 is exhausted and do not stop once unit growth is reached; remove
13090 later loop processing remaining edges.
13091 (cgraph_flatten): Rename to ...
13092 (flatten_function): ... this one; use can_inline_edge_p
13093 and can_early_inline_edge_p predicates.
13094 (cgraph_decide_inlining): Rename to ...
13095 (ipa_inline): ... this one; remove unreachable nodes before
13096 inlining functions called once; simplify the pass.
13097 (cgraph_perform_always_inlining): Rename to ...
13098 (inline_always_inline_functions): ... this one; use
13099 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
13100 (cgraph_decide_inlining_incrementally): Rename to ...
13101 (early_inline_small_functions): ... this one; simplify
13102 using new predicates; cleanup; make dumps prettier.
13103 (cgraph_early_inlining): Rename to ...
13104 (early_inliner): newer inline regular functions into always-inlines;
13105 fix updating of call stmt summaries.
13106 (pass_early_inline): Update for new names.
13107 (inline_transform): Fix formating.
13108 (gate_cgraph_decide_inlining): Rename to ...
13109 (pass_ipa_inline): ... this one.
13110 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
13111 * ipa-inline-analysis.c (dump_inline_summary): Update.
13112 (compute_inline_parameters): Do not compute disregard_inline_limits;
13113 look for mismatching arguments.
13114 (estimate_growth): Fix handlig of non-trivial self recursion.
13115 (inline_read_summary): Do not read info->disregard_inline_limits.
13116 (inline_write_summary): Do not write info->disregard_inline_limits.
13117 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
13118 and move all checks into can_inline_edge_p predicate; re-enable code
13119 comparing optimization levels.
13120 (expand_call_inline): Do not test inline_forbidden_into_p.
13121 * Makefile.in (ipa-inline.o): Update arguments.
13122
13123 2011-04-17 Revital Eres <revital.eres@linaro.org>
13124
13125 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
13126
13127 2011-04-17 Revital Eres <revital.eres@linaro.org>
13128
13129 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
13130
13131 2011-04-17 Michael Matz <matz@suse.de>
13132
13133 PR tree-optimization/48622
13134 PR lto/48645
13135 * ipa-inline-analysis.c (inline_read_summary): Read size/time
13136 in same order as they're written.
13137
13138 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13139
13140 * config/pa/predicates.md: Reorganize and simplify predicates.
13141 Eliminate duplicate code checks.
13142 (arith_operand): Rename to arith14_operand
13143 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
13144 * config/pa/pa.md: Use renamed operands.
13145 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
13146 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
13147 arith11_operand, adddi3_operand, indexed_memory_operand,
13148 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
13149 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
13150 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
13151 move_dest_operand, move_src_operand, prefetch_cc_operand,
13152 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
13153 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
13154 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
13155 div_operand, int5_operand, movb_comparison_operator,
13156 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
13157 arith_double_operand, ireg_operand, lhs_lshift_operand,
13158 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
13159 integer_store_memory_operand): Likewise.
13160 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
13161 (integer_store_memory_operand, read_only_operand,
13162 function_label_operand, borx_reg_operand,
13163 non_hard_reg_operand): Likewise.
13164 (eq_neq_comparison_operator): Delete unused operator.
13165 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
13166 function_label_operand.
13167 (emit_move_sequence): Likewise.
13168
13169 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
13170
13171 * config/i386/sse.md (sseunpackmode): New mode attribute.
13172 (ssepackmode): Ditto.
13173 (vec_pack_trunc_<mode>): Macroize expander from
13174 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
13175 (vec_unpacks_lo_<mode>): Macroize expander from
13176 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13177 (vec_unpacks_hi_<mode>): Macroize expander from
13178 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13179 (vec_unpacku_lo_<mode>): Macroize expander from
13180 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13181 (vec_unpacku_hi_<mode>): Macroize expander from
13182 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
13183 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
13184 ix86_expand_sse4_unpack.
13185 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
13186
13187 2011-04-16 Jan Hubicka <jh@suse.cz>
13188
13189 * cgraphbuild.c: Include ipa-inline.h.
13190 (reset_inline_failed): Use initialize_inline_failed.
13191 * cgraph.c: Include ipa-inline.h.
13192 (cgraph_create_node_1): Do not initialize estimated_growth.
13193 (initialize_inline_failed): More to ipa-inline-analysis.c
13194 (dump_cgraph_node): Do not dump inline flags.
13195 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
13196 and disregard_inline_limits flags.
13197 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
13198 time, size, estimated_growth.
13199 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
13200 Update.
13201 * cgraphunit.c (cgraph_decide_is_function_needed): Use
13202 DECL_DISREGARD_INLINE_LIMITS.
13203 (cgraph_analyze_function): Do not initialize
13204 node->local.disregard_inline_limits.
13205 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
13206 inlinable, versionable and disregard_inline_limits.
13207 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
13208 cgraph_check_inline_limits, cgraph_default_inline_p,
13209 cgraph_edge_badness, update_caller_keys, update_callee_keys,
13210 add_new_edges_to_heap): Update.
13211 (cgraph_decide_inlining_of_small_function): Update; set
13212 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
13213 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
13214 cgraph_decide_inlining_incrementally): Update.
13215 * ipa-inline.h (inline_summary): Add inlinable, versionable,
13216 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
13217 time, size and estimated_growth parameters.
13218 (estimate_edge_growth): Update.
13219 (initialize_inline_failed): Declare.
13220 * ipa-split.c: Include ipa-inline.h
13221 (execute_split_functions): Update.
13222 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
13223 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
13224 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
13225 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
13226 estimated_growth to INT_MIN.
13227 (inline_node_duplication_hook): Likewise.
13228 (dump_inline_summary): Dump new fields.
13229 (compute_inline_parameters): Update.
13230 (estimate_edge_time, estimate_time_after_inlining,
13231 estimate_size_after_inlining, estimate_growth, inline_read_summary,
13232 inline_write_summary):
13233 (initialize_inline_failed): Move here from cgraph.c.
13234 * tree-sra.c: Include ipa-inline.h.
13235 (ipa_sra_preliminary_function_checks): Update.
13236 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
13237 ipa-inline.h.
13238
13239 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
13240
13241 * config/i386/sse.md (V16): New mode iterator.
13242 (VI1, VI8): Ditto.
13243 (AVXMODEQI, AVXMODEDI): Remove.
13244 (sse2, sse3): New mode attribute.
13245 (mov<mode>): Use V16 mode iterator.
13246 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
13247 (push<mode>1): Use V16 mode iterator.
13248 (movmisalign<mode>): Ditto.
13249 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13250 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
13251 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
13252 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
13253 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
13254 avx_movdqu<avxmodesuffix>.
13255 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
13256 *avx_movdqu<avxmodesuffix>.
13257 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
13258 avx_lddqu<avxmodesuffix>.
13259 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
13260 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
13261 avx_movnt<AVXMODEDI:mode>.
13262 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
13263 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
13264
13265 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
13266
13267 PR target/48629
13268 * haifa-sched.c (prune_ready_list, schedule_block): Use
13269 sched_pressure_p rather than flag_sched_pressure.
13270
13271 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
13272
13273 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13274 cgraph_get_node instead of cgraph_get_create_node.
13275
13276 2011-04-15 Jakub Jelinek <jakub@redhat.com>
13277
13278 * cfgexpand.c (expand_debug_expr): Use
13279 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
13280
13281 2011-04-15 Michael Matz <matz@suse.de>
13282
13283 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
13284 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
13285 * function.c (gimplify_parameters): Ditto.
13286 * gimplify.c (gimplify_vla_decl): Ditto.
13287
13288 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
13289 (gimple_call_set_alloca_for_var): New inline function.
13290 (gimple_call_alloca_for_var_p): Ditto.
13291 * gimple.c (gimple_build_call_from_tree): Remember
13292 CALL_ALLOCA_FOR_VAR_P state.
13293 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
13294
13295 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
13296 calls if they were for VLA objects.
13297
13298 2011-04-15 Martin Jambor <mjambor@suse.cz>
13299
13300 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
13301 of ADR_EXPRs.
13302
13303 2011-04-15 Martin Jambor <mjambor@suse.cz>
13304
13305 PR middle-end/48601
13306 * tree-emutls.c (lower_emutls_function_body): Call
13307 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
13308 result is non-NULL.
13309
13310 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
13311
13312 * c-decl.c (detect_field_duplicates): Call
13313 objc_detect_field_duplicates instead of objc_get_interface_ivars.
13314
13315 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
13316
13317 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
13318 * gimple.c (gimple_asm_clobbers_memory_p): Define.
13319 * ipa-pure-const.c (check_stmt): Call it.
13320 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
13321
13322 2011-04-15 Richard Guenther <rguenther@suse.de>
13323
13324 PR tree-optimization/48290
13325 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
13326 Properly decide inhibiting propagation based on the valueized
13327 operand. Do loop-closed SSA form preserving here ...
13328 (init_copy_prop): ... not here.
13329
13330 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
13331
13332 PR target/48612
13333 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
13334 (*ieee_smax<mode>3): Likewise.
13335
13336 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13337
13338 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
13339 Replace match_operand with match_dup for the third operand in
13340 these expanders.
13341
13342 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13343
13344 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
13345 to track processing of conditionals. Update all callers.
13346 (try_combine, simplify_if_then_else): Update.
13347
13348 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
13349
13350 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
13351 -fsched-pressure.
13352
13353 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
13354
13355 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
13356 instead of match_operand for operand 3.
13357
13358 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
13359
13360 * recog.h (insn_operand_data): Add an "allows_mem" field.
13361 * genoutput.c (output_operand_data): Initialize it.
13362 * optabs.c (maybe_legitimize_operand_same_code): New function.
13363 (maybe_legitimize_operand): Use it when matching the original
13364 op->value.
13365
13366 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13367
13368 * gimplify.c: Fix issues in comments throughout.
13369 (voidify_wrapper_expr): Fix long line.
13370 (build_stack_save_restore): Likewise.
13371 (gimplify_loop_expr): Likewise.
13372 (gimplify_compound_lval): Likewise.
13373 (gimplify_init_ctor_eval): Likewise.
13374 (gimplify_modify_expr_rhs): Likewise.
13375 (omp_notice_threadprivate_variable): Likewise.
13376
13377 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
13378
13379 * cfgexpand.c (expand_call_stmt): Convert the function type to the
13380 original one if this is not a builtin function.
13381
13382 2011-04-14 Jakub Jelinek <jakub@redhat.com>
13383
13384 PR target/48605
13385 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
13386 offset it as needed based on top 2 bits in operands[3], change
13387 MEM mode to SFmode and mask those 2 bits away from operands[3].
13388
13389 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13390
13391 * c-parser.c (c_parser_objc_protocol_definition): Updated for
13392 change from objc_declare_protocols() to objc_declare_protocol().
13393
13394 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
13395
13396 * config/i386/sse.md (sse4_1): New mode attribute.
13397 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
13398 avx_blend<ssemodesuffix><avxmodesuffix> and
13399 sse4_1_blend<ssemodesuffix> using VF mode iterator.
13400 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
13401 avx_blendv<ssemodesuffix><avxmodesuffix> and
13402 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
13403 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
13404 avx_dp<ssemodesuffix><avxmodesuffix> and
13405 sse4_1_dp<ssemodesuffix> using VF mode iterator.
13406 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
13407 (sse4_1_packusdw): Merge with *avx_packusdw.
13408 (sse4_1_pblendvb): Merge with *avx_pblendvb.
13409 (sse4_1_pblendw): Merge with *avx_pblendw.
13410 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
13411 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
13412 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
13413 VF mode iterator.
13414 (sse4_1_round<ssescalarmodesuffix>): Merge with
13415 *avx_round<ssescalarmodesuffix>.
13416 (aesenc): Merge with *avx_aesenc.
13417 (aesenclast): Merge with *avx_aesenclast.
13418 (aesdec): Merge with *avx_aesdec.
13419 (aesdeclast): Merge with *avx_aesdeclast.
13420 (pclmulqdq): Merge with *pclmulqdq.
13421 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
13422 New predicate.
13423 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
13424
13425 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
13426
13427 PR middle-end/48608
13428 * cfgexpand.c (get_decl_align_unit): Renamed to ...
13429 (align_local_variable): This. Update DECL_ALIGN.
13430 (add_stack_var): Updated.
13431 (expand_one_stack_var): Likewise.
13432
13433 2011-04-14 Richard Guenther <rguenther@suse.de>
13434
13435 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
13436 Remove.
13437 (dse_initialize_block_local_data, dse_leave_block,
13438 record_voperand_set, get_stmt_uid): Likewise.
13439 (dse_possible_dead_store_p): Allow any kind of killing stmt.
13440 (dse_optimize_stmt): Remove voperand set handling code.
13441 Simplify and improve to handle any kind of killing stmt.
13442 (dse_record_phi): Remove.
13443 (dse_enter_block): Simplify.
13444 (tree_ssa_dse): Likewise.
13445 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
13446
13447 2011-04-14 Jan Hubicka <jh@suse.cz>
13448
13449 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
13450 * cgraph.h (struct inline_summary): Move to ipa-inline.h
13451 (cgraph_local_info): Remove inline_summary.
13452 * ipa-cp.c: Include ipa-inline.h.
13453 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
13454 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
13455 accesor.
13456 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
13457 (input_overwrite_node): Do not set inline summary.
13458 (input_node): Do not stream inline summary.
13459 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
13460 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
13461 growth; we do not have inline parameters computed for that anyway.
13462 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
13463 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
13464 (inline_summary_t): New type and VECtor.
13465 (debug_inline_summary, dump_inline_summaries): Declare.
13466 (inline_summary): Use VOCtor.
13467 (estimate_edge_growth): Kill hack computing call stmt size directly.
13468 * lto-section-in.c (lto_section_name): Add inline section.
13469 * ipa-inline-analysis.c: Include lto-streamer.h
13470 (node_removal_hook_holder, node_duplication_hook_holder): New holders
13471 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
13472 (inline_summary_vec): Define.
13473 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
13474 dump_inline_summaries): New functions.
13475 (estimate_function_body_sizes): Properly compute size/time of outgoing
13476 calls.
13477 (compute_inline_parameters): Alloc inline_summary; do not compute
13478 size/time of incomming calls.
13479 (estimate_edge_time): Avoid missing time summary hack.
13480 (inline_read_summary): Read inline summary info.
13481 (inline_write_summary): Write inline summary info.
13482 (inline_free_summary): Free all hooks and inline summary vector.
13483 * lto-streamer.h: Add LTO_section_inline_summary section.
13484 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
13485 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
13486
13487 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13488
13489 * tree-vectorizer.h (vect_strided_store_supported): Add a
13490 HOST_WIDE_INT argument.
13491 (vect_strided_load_supported): Likewise.
13492 (vect_permute_store_chain): Return void.
13493 (vect_transform_strided_load): Likewise.
13494 (vect_permute_load_chain): Delete.
13495 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
13496 count argument. Check that the count is a power of two.
13497 (vect_strided_load_supported): Likewise.
13498 (vect_permute_store_chain): Return void. Update after above changes.
13499 Assert that the access is supported.
13500 (vect_permute_load_chain): Likewise.
13501 (vect_transform_strided_load): Return void.
13502 * tree-vect-stmts.c (vectorizable_store): Update calls after
13503 above interface changes.
13504 (vectorizable_load): Likewise.
13505 (vect_analyze_stmt): Don't check for strided powers of two here.
13506
13507 2011-04-14 Richard Guenther <rguenther@suse.de>
13508
13509 PR tree-optimization/48590
13510 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
13511 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13512 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
13513 BUILT_IN_STACK_SAVE.
13514 * tree-ssa-dce.c (propagate_necessity): Handle
13515 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
13516
13517 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
13518
13519 * c-parser.c (c_parser_objc_class_declaration): Updated call to
13520 objc_declare_class.
13521
13522 2011-04-14 Richard Guenther <rguenther@suse.de>
13523
13524 * tree.h (get_object_alignment_1): Declare.
13525 * builtins.c (get_object_alignment_1): Split out worker from ...
13526 (get_object_alignment): ... here.
13527 * fold-const.c (get_pointer_modulus_and_residue): Use
13528 get_object_alignment_1.
13529
13530 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13531
13532 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
13533 type parameter.
13534 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
13535 parameter. Generalise code to handle arrays as well as vectors.
13536 (vect_setup_realignment): Update accordingly.
13537 * tree-vect-stmts.c (vectorizable_store): Likewise.
13538 (vectorizable_load): Likewise.
13539
13540 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13541
13542 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
13543 within the per-copy loop.
13544
13545 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13546
13547 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
13548 in the dump file.
13549
13550 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
13551
13552 * doc/options.texi (Negative): Explicitly mention that the
13553 Negative chain must be circular.
13554
13555 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
13556
13557 * function.h (block_chainon): Declare.
13558 * function.c (block_chainon): Define.
13559
13560 2011-04-14 Anatoly Sokolov <aesok@post.ru>
13561 Eric Weddington <eric.weddington@atmel.com>
13562 Georg-Johann Lay <avr@gjlay.de>
13563
13564 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
13565 New Includes
13566 (avr_init_builtins, avr_expand_builtin,
13567 avr_expand_delay_cycles, avr_expand_unop_builtin,
13568 avr_expand_binop_builtin ): New functions.
13569 (avr_builtin_id): New enum
13570 (struct avr_builtin_description): New struct
13571 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
13572 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
13573
13574 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
13575 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
13576 UNSPECV_DELAY_CYCLES): new enumeration values
13577 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
13578 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
13579 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
13580 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
13581 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
13582 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
13583 "fmulsu"): New insns
13584
13585 * config/avr/avr-c.c: fix line endings
13586 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
13587 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
13588 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
13589 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
13590 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
13591
13592 * doc/extend.texi (AVR Built-in Functions): New node
13593 (Target Builtins): Add documentation of AVR
13594 built-in functions.
13595
13596 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
13597
13598 PR target/44643
13599 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
13600 alone. Error if non-const data has attribute progmem.
13601
13602 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13603
13604 * tree.h (struct tree_constructor): Include tree_typed instead of
13605 tree_common.
13606 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
13607 TS_TYPED instead of TS_COMMON.
13608
13609 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
13610
13611 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
13612 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
13613 (sse2_psadbw): Merge with *avx_psadbw.
13614 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
13615 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
13616 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
13617 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
13618 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
13619 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
13620 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
13621 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
13622 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
13623 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
13624 (ssse3_palignrti): Merge with *avx_palignrti.
13625
13626 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13627
13628 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
13629 * tree-ssanames.c (fini_ssanames): VEC_free it.
13630 (make_ssa_name_fn): Update for VECness of free_ssanames.
13631 (release_ssa_name, release_dead_ssa_names): Likewise.
13632 * tree.h (struct tree_ssa_name): Include tree_typed instead of
13633 tree_common.
13634 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
13635 TS_TYPED instead of TS_COMMON.
13636
13637 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13638
13639 * postreload-gcse.c (gcse_after_reload_main): Add calls to
13640 statistics_counter_event.
13641 * tree-ssa-copyrename.c (stats): Define.
13642 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
13643 statistics_counter_event.
13644 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
13645 (bswap_stats, widen_mul_stats): Define.
13646 (insert_reciprocals): Increment rdivs_inserted.
13647 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
13648 rfuncs_inserted. Add calls to statistics_counter_event.
13649 (execute_cse_sincos_1): Increment inserted.
13650 (execute_cse_sincos): Zeroize sincos_stats. Add call to
13651 statistics_counter_event.
13652 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
13653 of bswap_stats. Add calls to statistics_counter_event.
13654 (convert_mult_to_widen): Increment widen_mults_inserted.
13655 (convert_plusminus_to_widen): Increment maccs_inserted.
13656 (convert_mult_to_fma): Increment fmas_inserted.
13657 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
13658 calls to statistics_counter_event.
13659
13660 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
13661
13662 PR rtl-optimization/48455
13663 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
13664 `temp_costs->mem_cost'.
13665
13666 2011-04-13 Jan Hubicka <jh@suse.cz>
13667
13668 * ipa-inline.h: New file.
13669 * ipa-inline-analysis.c: New file. Broken out of ...
13670 * ipa-inline.c: ... this file; update toplevel comment;
13671 include ipa-inline.h
13672 (inline_summary): Move to ipa-inline.h
13673 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
13674 ipa-inline-analysis.c.
13675 (cgraph_estimate_time_after_inlining): Rename to
13676 estiamte_time_after_inlining; move to ipa-inline-analysis.c
13677 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
13678 to estimate_edge_growth.
13679 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
13680 rename to estimate_size_after_inlining.
13681 (cgraph_mark_inline_edge): Update for new naming convention.
13682 (cgraph_check_inline_limits): Likewise.
13683 (cgraph_edge_badness): Likewise.
13684 (cgraph_decide_recursive_inlining): Likewise.
13685 (cgraph_decide_inlining_of_small_functions): Likewise.
13686 (cgraph_decide_inlining_incrementally): Likewise.
13687 (cgraph_estimate_growth): Rename to estimate_growth; move to
13688 ipa-inline-analysis.c.
13689 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
13690 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
13691 (compute_inline_parameters): Likewise.
13692 (compute_inline_parameters_for_current): Likewise.
13693 (pass_inline_parameters): Likewise.
13694 (inline_indirect_intraprocedural_analysis): Likewise.
13695 (analyze_function): Rename to inline_analyze_function; likewise.
13696 (add_new_function): Move to ipa-inline-analysis.c.
13697 (inline_generate_summary): Likewise.
13698 (inline_read_summary): Likewise.
13699 (inline_write_summary): Likewise.
13700 * Makefile.in (ipa-inline-analysis.c): New file.
13701
13702 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13703
13704 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
13705 * configure: Regenerate.
13706
13707 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
13708
13709 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
13710 instead of tree_common.
13711 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
13712 Likewise.
13713 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
13714 TS_TYPED rather than TS_COMMON.
13715 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
13716
13717 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
13718
13719 PR target/45263
13720 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
13721 r20 around calls of __tablejump_elpm__
13722
13723 2011-04-13 Jakub Jelinek <jakub@redhat.com>
13724
13725 PR middle-end/48591
13726 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
13727 NULL.
13728 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
13729
13730 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
13731
13732 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
13733 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
13734 (cfi_vec): New typedef.
13735 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
13736 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
13737 (cie_cfi_vec): New static variable.
13738 (cie_cfi_head): Delete.
13739 (add_cfi): Accept a cfi_vec * as first argument. All callers and
13740 declaration changed. Use vector rather than list operations.
13741 (new_cfi): Don't initialize the dw_cfi_next field.
13742 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
13743 rather than list operations.
13744 (lookup_cfa): Use vector rather than list operations.
13745 (output_cfis): New argument upto. Accept a cfi_vec rather than
13746 a dw_cfi_ref list head as argument. All callers changed.
13747 Iterate over the vector using upto as a maximum index.
13748 (output_all_cfis): New static function.
13749 (output_fde): Use vector rather than list operations. Use the
13750 new upto argument for output_cfis rather than manipulating a
13751 list.
13752 (dwarf2out_begin_prologue): Change initializations to match
13753 new struct members.
13754 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
13755 from the vector length rather than searching for the end of a list.
13756 Use output_all_cfis.
13757 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
13758
13759 2011-04-13 Nick Clifton <nickc@redhat.com>
13760
13761 * config/rx/rx.md (movmemsi): Do not use this pattern when
13762 volatile pointers are involved.
13763
13764 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
13765
13766 * config/i386/sse.md (pinsrbits): Remove.
13767 (sse2_packsswb): Merge with *avx_packsswb.
13768 (sse2_packssdw): Merge with *avx_packssdw.
13769 (sse2_packuswb): Merge with *avx_packuswb.
13770 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
13771 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
13772 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
13773 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
13774 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
13775 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
13776 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
13777 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
13778 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
13779 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
13780 (sse2_loadld): Merge with *avx_loadld.
13781 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
13782 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
13783 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
13784 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
13785 (vec_concatv2di): Merge with *vec_concatv2di_avx.
13786
13787 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
13788
13789 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
13790 calling TREE_CHAIN.
13791 * print-tree.c (print_node): Likewise.
13792 * tree-inline.c (copy_tree_r): Likewise.
13793 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
13794 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
13795 instead of TS_COMMON.
13796 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
13797 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
13798 (copy_node_stat): Zero TREE_CHAIN only if necessary.
13799 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
13800 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
13801 ...and these...
13802 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
13803 * tree.h: ...here.
13804 (TREE_CHAIN): Check for a TS_COMMON structure.
13805 (TREE_TYPE): Check for a TS_TYPED structure.
13806
13807 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
13808
13809 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
13810 cgraph_get_create_node instead of cgraph_node.
13811
13812 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13813
13814 * c-parser.c (c_parser_initelt): Updated call to
13815 objc_build_message_expr.
13816 (c_parser_postfix_expression): Likewise.
13817
13818 2011-04-12 Kai Tietz <ktietz@redhat.com>
13819
13820 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
13821 MASK_MS_BITFIELD_LAYOUT bit.
13822
13823 2011-04-12 Jakub Jelinek <jakub@redhat.com>
13824
13825 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
13826 assert it is always true.
13827 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
13828 moves.
13829
13830 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
13831
13832 * c-parser.c (c_lex_one_token): Rewritten conditional used when
13833 compiling Objective-C to be more efficient.
13834
13835 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
13836
13837 * opts-common.c (decode_cmdline_options_to_array): Remove variable
13838 argv_copied.
13839
13840 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13841
13842 * recog.h, genoutput.c, optabs.c: Revert last patch.
13843
13844 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13845
13846 PR target/48090
13847 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
13848
13849 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13850
13851 * recog.h (insn_operand_data): Add an "allows_mem" field.
13852 * genoutput.c (output_operand_data): Initialize it.
13853 * optabs.c (maybe_legitimize_operand_same_code): New function.
13854 (maybe_legitimize_operand): Use it when matching the original
13855 op->value.
13856
13857 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13858
13859 * genpreds.c (process_define_predicate): Move most processing
13860 to gensupport.c. Continue to validate the expression.
13861 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
13862 (process_define_predicate): Move processing to gensupport.c.
13863 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
13864 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
13865 (compute_predicate_codes): Moved from genrecog.c. Add lineno
13866 argument.
13867 (valid_predicate_name_p): New function, split out from old
13868 genpreds.c:process_define_predicate.
13869 (process_define_predicate): New function, combining code from
13870 old genpreds.c and genrecog.c functions.
13871 (process_rtx): Call it for DEFINE_PREDICATE and
13872 DEFINE_SPECIAL_PREDICATE.
13873
13874 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
13875
13876 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
13877 size of a '%A' memory reference.
13878 (T_DREG, T_QREG): New neon_builtin_type_bits.
13879 (arm_init_neon_builtins): Assert that the load and store operands
13880 are neon_struct_operands.
13881 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
13882 (NEON_ARG_MEMORY): New builtin_arg.
13883 (neon_dereference_pointer): New function.
13884 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
13885 Handle NEON_ARG_MEMORY.
13886 (arm_expand_neon_builtin): Update after above interface changes.
13887 Use NEON_ARG_MEMORY for loads and stores.
13888 * config/arm/predicates.md (neon_struct_operand): New predicate.
13889 * config/arm/iterators.md (V_two_elem): Tweak formatting.
13890 (V_three_elem): Use BLKmode for accesses that have no associated mode.
13891 (V_four_elem): Tweak formatting.
13892 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
13893 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
13894 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
13895 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
13896 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
13897 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
13898 (neon_vst4<mode>): Replace pointer operand with a memory operand.
13899 Use %A in the output template.
13900 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
13901 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
13902 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
13903 the width of the memory access. Remove post-increment.
13904 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
13905
13906 2011-04-12 Nick Clifton <nickc@redhat.com>
13907
13908 * config/v850/v850.c (expand_prologue): Do not use the CALLT
13909 instruction for interrupt handlers if the target is the basic V850
13910 architecture.
13911 (expand_epilogue): Likewise.
13912
13913 2011-04-12 Jakub Jelinek <jakub@redhat.com>
13914
13915 PR rtl-optimization/48549
13916 * combine.c (propagate_for_debug): Also stop after BB_END of
13917 this_basic_block. Process LAST and just stop processing after it.
13918 (combine_instructions): If last_combined_insn has been deleted,
13919 set last_combined_insn to its PREV_INSN.
13920
13921 2011-04-12 Richard Guenther <rguenther@suse.de>
13922
13923 PR tree-optimization/46076
13924 * gimple.h (struct gimple_statement_call): Add fntype field.
13925 (gimple_call_fntype): Adjust.
13926 (gimple_call_set_fntype): New function.
13927 * gimple.c (gimple_build_call_1): Set the call function type.
13928 * gimplify.c (gimplify_call_expr): Preserve the function
13929 type the frontend used for the call.
13930 (gimplify_modify_expr): Likewise.
13931 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
13932 function type.
13933 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
13934 function type.
13935 * tree-ssa.c (useless_type_conversion_p): Function pointer
13936 conversions are useless.
13937
13938 2011-04-12 Martin Jambor <mjambor@suse.cz>
13939
13940 * cgraph.h (cgraph_node): Remove function declaration.
13941 (cgraph_create_node): Declare.
13942 (cgraph_get_create_node): Likewise.
13943 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
13944 Updated all callers.
13945 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
13946 the decl does not already exist. Call cgraph_get_create_node instead
13947 of cgraph_node.
13948 (cgraph_get_create_node): New function.
13949 (cgraph_same_body_alias): Update comment.
13950 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
13951 assert it does not return NULL.
13952 (cgraph_update_edges_for_call_stmt): Likewise.
13953 (cgraph_clone_edge): Likewise.
13954 (cgraph_create_virtual_clone): Likewise.
13955 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
13956 instead of cgraph_node.
13957 (cgraph_add_new_function): Call cgraph_create_node or
13958 cgraph_get_create_node instead of cgraph_node.
13959 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
13960 instead of cgraph_node.
13961 (record_eh_tables): Likewise.
13962 (mark_address): Likewise.
13963 (mark_load): Likewise.
13964 (build_cgraph_edges): Call cgraph_get_create_node instead
13965 of cgraph_node.
13966 (rebuild_cgraph_edges): Likewise.
13967 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
13968 instead of cgraph_node.
13969 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
13970 cgraph_node.
13971 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
13972 cgraph_create_node instead of cgraph_node.
13973 * c-decl.c (finish_function): Call cgraph_get_create_node instead
13974 of cgraph_node.
13975 * lto-cgraph.c (input_node): Likewise.
13976 * lto-streamer-in.c (input_function): Likewise.
13977 * varasm.c (mark_decl_referenced): Likewise.
13978 (assemble_alias): Likewise.
13979
13980 2011-04-12 Martin Jambor <mjambor@suse.cz>
13981
13982 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
13983 instead of cgraph_node and assert it does not return NULL.
13984 * lto-streamer-in.c (lto_read_body): Likewise.
13985 * omp-low.c (new_omp_context): Likewise.
13986 (create_task_copyfn): Likewise.
13987 * tree-emutls.c (lower_emutls_function_body): Likewise.
13988 * matrix-reorg.c (transform_allocation_sites): Likewise.
13989
13990 2011-04-12 Jakub Jelinek <jakub@redhat.com>
13991
13992 PR c/48552
13993 * c-typeck.c (build_asm_expr): Error out on attempts to use
13994 void type outputs or inputs for constraints that allow reg or
13995 don't allow memory.
13996
13997 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
13998 Richard Earnshaw <rearnsha@arm.com>
13999
14000 PR target/48250
14001 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
14002 to use sign-magnitude offsets. Reject unsupported unaligned
14003 cases. Add detailed description in comments.
14004 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
14005 condition from TARGET_32BIT to TARGET_ARM.
14006
14007 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
14008
14009 * tree.h (struct typed_tree): New.
14010 (struct tree_common): Include it instead of tree_base.
14011 (TREE_TYPE): Update for new location of type field.
14012 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
14013 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
14014 (union tree_node): Add typed field.
14015 * treestruct.def (TS_TYPED): New.
14016 * lto-streamer.c (check_handled_ts_structures): Handle it.
14017 * tree.c (MARK_TS_TYPED): New macro.
14018 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
14019
14020 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
14021
14022 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
14023 (force_nonfallthru): Do not alter the loop nest if no basic block
14024 was created.
14025
14026 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
14027
14028 * config/i386/sse.md (VI): New mode iterator.
14029 (SSEMODEI): Remove.
14030 (AVX256MODEI): Ditto.
14031 (AVXMODEF4P): Ditto.
14032 (avxvecpsmode): Ditto.
14033 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
14034 (sse2_andnot<mode>3): New expander.
14035 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
14036 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
14037 (<any_logic:code><mode>3): Use VI mode iterator.
14038 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
14039 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
14040 (*andnottf3): Handle AVX three-operand constraints.
14041 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
14042
14043 2011-04-11 Joseph Myers <joseph@codesourcery.com>
14044 Robert Millan <rmh@gnu.org>
14045
14046 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
14047 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
14048 GNU_USER_DYNAMIC_LINKER64): Define.
14049 (REG_NAME): Don't undefine.
14050 (MD_UNWIND_SUPPORT): Undefine.
14051 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
14052 (REG_NAME): Don't undefine.
14053 (MD_UNWIND_SUPPORT): Undefine.
14054 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
14055
14056 2011-04-11 Joseph Myers <joseph@codesourcery.com>
14057
14058 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
14059 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
14060
14061 2011-04-11 Xinliang David Li <davidxl@google.com>
14062
14063 * value-profile.c (check_ic_target): New function.
14064 (gimple_ic_transform): Sanity check indirect call target.
14065 * gimple-low.c (gimple_check_call_args): Interface change.
14066 (gimple_check_call_matching_types): New function.
14067 * tree-inline.c (tree_can_inline_p): Call new function.
14068
14069 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
14070
14071 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
14072 tree-pretty-print.h & realmpfr.h.
14073
14074 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
14075
14076 PR middle-end/48464
14077 * ira.c (setup_pressure_classes): Fix typo in loop condition.
14078 (setup_allocno_and_important_classes): Ditto.
14079
14080 2011-04-11 Joseph Myers <joseph@codesourcery.com>
14081
14082 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
14083 GNU_USER_DYNAMIC_LINKER.
14084 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
14085 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14086 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
14087 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14088 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14089 GNU_USER_TARGET_OS_CPP_BUILTINS.
14090 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
14091 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14092 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14093 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14094 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
14095 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14096 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14097 GNU_USER_TARGET_OS_CPP_BUILTINS.
14098 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14099 GNU_USER_DYNAMIC_LINKER.
14100 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14101 GNU_USER_TARGET_OS_CPP_BUILTINS.
14102 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
14103 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14104 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
14105 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14106 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
14107 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
14108 GNU_USER_DYNAMIC_LINKER64): Remove.
14109 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
14110 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14111 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14112 GNU_USER_DYNAMIC_LINKER.
14113 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14114 GNU_USER_TARGET_OS_CPP_BUILTINS.
14115 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14116 GNU_USER_TARGET_OS_CPP_BUILTINS.
14117 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
14118 to GNU_USER_TARGET_OS_CPP_BUILTINS.
14119 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
14120 GNU_USER_TARGET_OS_CPP_BUILTINS.
14121 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
14122 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
14123 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14124 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
14125 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14126 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14127 GNU_USER_DYNAMIC_LINKER.
14128 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
14129 GNU_USER_TARGET_OS_CPP_BUILTINS.
14130 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
14131 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14132 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14133 GNU_USER_DYNAMIC_LINKER.
14134 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14135 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14136 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
14137 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14138 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14139 GNU_USER_DYNAMIC_LINKER.
14140 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
14141 GNU_USER_DYNAMIC_LINKERN32.
14142 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
14143 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
14144 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
14145 GNU_USER_DYNAMIC_LINKER32.
14146 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
14147 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14148 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14149 GNU_USER_DYNAMIC_LINKER.
14150 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
14151 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14152 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
14153 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14154 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14155 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
14156 GNU_USER_DYNAMIC_LINKER32.
14157 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
14158 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
14159 GNU_USER_DYNAMIC_LINKER.
14160 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
14161 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14162 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14163 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
14164 GNU_USER_DYNAMIC_LINKER64.
14165 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
14166 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14167 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14168 GNU_USER_DYNAMIC_LINKER.
14169 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
14170 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14171 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
14172 GNU_USER_DYNAMIC_LINKER.
14173 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
14174 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14175 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
14176 GNU_USER_DYNAMIC_LINKER32.
14177 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14178 GNU_USER_DYNAMIC_LINKER64.
14179 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
14180 GNU_USER_DYNAMIC_LINKER64.
14181 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
14182 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14183 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
14184 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
14185 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
14186
14187 2011-04-11 Joseph Myers <joseph@codesourcery.com>
14188
14189 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
14190 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
14191 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
14192 GNU_USER_DYNAMIC_LINKER.
14193 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14194 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
14195 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
14196 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
14197 GNU_USER_DYNAMIC_LINKER64.
14198 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
14199 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
14200 GNU_USER_LINK_EMULATION.
14201 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
14202 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
14203 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
14204 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
14205 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
14206 CPP_SPEC, CC1_SPEC): Remove.
14207 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
14208 (GNU_USER_DYNAMIC_LINKER): Define.
14209 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
14210 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
14211 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
14212 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
14213 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
14214 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
14215 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14216 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
14217 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
14218 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
14219 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
14220 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
14221 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
14222 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
14223 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
14224 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
14225 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14226 GNU_USER_DYNAMIC_LINKER.
14227 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14228 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14229 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14230 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14231 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
14232 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
14233 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
14234 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
14235 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
14236 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
14237
14238 2011-04-11 Kai Tietz <ktietz@redhat.com>
14239
14240 PR target/9601
14241 PR target/11772
14242 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
14243 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
14244 comment.
14245 (ix86_is_msabi_thiscall): Removed.
14246 (ix86_is_type_thiscall): Likewise.
14247 (ix86_get_callcvt): New function.
14248 (ix86_comp_type_attributes): Simplify check.
14249 (ix86_function_regparm): Use ix86_get_callcvt for calling
14250 convention attribute checks.
14251 (ix86_return_pops_args): Likewise.
14252 (ix86_static_chain): Likewise.
14253 (x86_this_parameter): Likewise.
14254 (x86_output_mi_thunk): Likewise.
14255 (ix86_function_type_abi): Optimize check for types without attributes.
14256 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
14257 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
14258 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
14259 by flag-values.
14260 (IX86_BASE_CALLCVT): Helper macro.
14261 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14262 Use ix86_get_callcvt for calling convention attribute checks and avoid
14263 symbol-decoration for stdcall in TARGET_RTD case.
14264 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
14265 Likewise.
14266 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
14267 for declaration.
14268
14269 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
14270
14271 * config/i386/sse.md (VI_128): New mode iterator.
14272 (VI12_128): Rename from SSEMODE12.
14273 (VI14_128): Rename from SSEMODE14.
14274 (VI124_128): New mode iterator.
14275 (VI24_128): Rename from SSEMODE248.
14276 (VI248_128): Rename from SSEMODE248.
14277 (SSEMODE124C8): Remove.
14278 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14279 (*sse2_<plusminus_insn><mode>3): Merge with
14280 *avx_<plusminus_insn><mode>3.
14281 (*mulv8hi3): Merge with *avx_mulv8hi3.
14282 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
14283 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
14284 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
14285 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
14286 (ashr<mode>3): Merge with *avx_ashr<mode>3.
14287 (lshr<mode>3): Merge with *avx_lshr<mode>3.
14288 (ashl<mode>3): Merge with *avx_ashl<mode>3.
14289 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
14290 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
14291 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14292 (*<smaxmin:code>v8hi3): Ditto.
14293 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
14294 (*<smaxmin:code>v16qi3): Ditto.
14295 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
14296 (*sse2_eq<mode>3): Ditto.
14297 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
14298 (*sse2_gt<mode>3): Ditto.
14299 (vcondv2di): Split out of vcond<mode>.
14300 (vconduv2di): Split out of vcondu<mode>.
14301
14302 2011-04-11 Richard Guenther <rguenther@suse.de>
14303
14304 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
14305 before calling tree_low_cst.
14306
14307 2011-04-11 Richard Guenther <rguenther@suse.de>
14308
14309 * stor-layout.c (layout_type): Compute all array index size operations
14310 in the original type.
14311 (initialize_sizetypes): Add comment.
14312 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
14313
14314 2011-04-11 Joseph Myers <joseph@codesourcery.com>
14315
14316 * common.opt (Tbss=, Tdata=, Ttext=): New options.
14317
14318 2011-04-11 Martin Jambor <mjambor@suse.cz>
14319
14320 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
14321 of cgraph_node, handle NULL return value.
14322 (cgraph_global_info): Likewise.
14323 (cgraph_rtl_info): Likewise.
14324 * tree-inline.c (estimate_num_insns): Likewise.
14325 * gimplify.c (unshare_body): Likewise.
14326 (unvisit_body): Likewise.
14327 (gimplify_body): Likewise.
14328 * predict.c (optimize_function_for_size_p): Likewise.
14329 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14330 (call_may_clobber_ref_p_1): Likewise.
14331 * varasm.c (function_section_1): Likewise.
14332 (assemble_start_function): Likewise.
14333
14334 2011-04-11 Martin Jambor <mjambor@suse.cz>
14335
14336 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
14337 of cgraph_node.
14338 * final.c (rest_of_clean_state): Likewise.
14339 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
14340 * passes.c (pass_init_dump_file): Likewise.
14341 (execute_all_ipa_transforms): Likewise.
14342 (function_called_by_processed_nodes_p): Likewise.
14343 * predict.c (maybe_hot_frequency_p): Likewise.
14344 (probably_never_executed_bb_p): Likewise.
14345 (compute_function_frequency): Likewise.
14346 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
14347 (unnest_nesting_tree_1): Likewise.
14348 (lower_nested_functions): Likewise.
14349 * tree-optimize.c (execute_fixup_cfg): Likewise.
14350 (tree_rest_of_compilation): Likewise.
14351 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
14352 * tree-sra.c (ipa_early_sra): Likewise.
14353 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
14354 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
14355 * ipa.c (record_cdtor_fn): Likewise.
14356 * ipa-inline.c (cgraph_early_inlining): Likewise.
14357 (compute_inline_parameters_for_current): Likewise.
14358 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
14359 * ipa-pure-const.c (local_pure_const): Likewise.
14360 * ipa-split.c (split_function): Likewise.
14361 (execute_split_functions): Likewise.
14362 * cgraphbuild.c (build_cgraph_edges): Likewise.
14363 (rebuild_cgraph_edges): Likewise.
14364 (cgraph_rebuild_references): Likewise.
14365 (remove_cgraph_callee_edges): Likewise.
14366 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
14367 (verify_cgraph_node): Likewise.
14368 (cgraph_analyze_functions): Likewise.
14369 (cgraph_preserve_function_body_p): Likewise.
14370 (save_inline_function_body): Likewise.
14371 (save_inline_function_body): Likewise.
14372 * tree-inline.c (copy_bb): Likewise.
14373 (optimize_inline_calls): Likewise.
14374
14375 2011-04-11 Martin Jambor <mjambor@suse.cz>
14376
14377 PR tree-optimization/48195
14378 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
14379 ipa_check_create_edge_args.
14380 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
14381 ipa_check_create_edge_args.
14382 * ipa-inline.c (inline_generate_summary): Do not call
14383 ipa_check_create_node_params and ipa_check_create_edge_args.
14384 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
14385 ipa_check_create_edge_args.
14386
14387 2011-04-09 Anatoly Sokolov <aesok@post.ru>
14388
14389 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
14390 instead of loop.
14391 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
14392 * function.c (record_hard_reg_sets): Likewise.
14393 * ira.c (compute_regs_asm_clobbered): Likewise.
14394 * sched-deps.c (sched_analyze_1): Likewise.
14395 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
14396
14397 2011-04-09 Xinliang David Li <davidxl@google.com>
14398
14399 PR tree-optimization/PR48484
14400 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
14401 has_valid_pred lazily
14402
14403 2011-04-09 Duncan Sands <baldrick@free.fr>
14404
14405 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
14406
14407 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
14408
14409 * combine.c (combine_validate_cost): Adjust comments. Set registered
14410 cost of I0 to zero at the end, if any.
14411
14412 2011-04-08 Xinliang David Li <davidxl@google.com>
14413
14414 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
14415 to insane profile data.
14416
14417 2011-04-08 Xinliang David Li <davidxl@google.com>
14418
14419 * ipa-cp.c (ipcp_update_profiling): Correct
14420 negative scale factor due to insane profile data.
14421
14422 2011-04-08 Xinliang David Li <davidxl@google.com>
14423
14424 * final.c (dump_basic_block_info): New function.
14425 (final): Dump basic block.
14426 (final_scan_insn): Remove old dump.
14427
14428 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
14429
14430 PR target/47829
14431 * config.gcc (i386-*-freebsd): Disable unwind table generation for
14432 crtbegin/crtend.
14433
14434 2011-04-08 Michael Matz <matz@suse.de>
14435
14436 PR middle-end/48389
14437 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
14438 functions.
14439 (rebuild_jump_labels): Call rebuild_jump_labels_1.
14440 * rtl.h (rebuild_jump_labels_chain): Declare.
14441 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
14442 insns inserted on edges.
14443
14444 2011-04-08 Joseph Myers <joseph@codesourcery.com>
14445
14446 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
14447 * config/arm/arm-arches.def: New.
14448 * config/arm/arm-opts.h: New.
14449 * config/arm/genopt.sh: New.
14450 * config/arm/arm-tables.opt: New (generated).
14451 * config/arm/arm.c (arm_handle_option, arm_target_help,
14452 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
14453 (all_architectures): Get most table contents from arm-arches.def.
14454 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
14455 arm_selected_tune here.
14456 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
14457 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
14458 (march=, mcpu=, mtune=): Use Enum and Var.
14459 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
14460 (arm.o): Update dependencies.
14461
14462 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
14463
14464 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
14465 of header_file.
14466 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
14467 (write_typed_alloc_defns): Likewise.
14468 (main): Calls write_typed_alloc_defns with output_header.
14469
14470 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
14471
14472 PR inline-asm/48435
14473 * ira-color.c (setup_profitable_hard_regs): Add comments.
14474 Don't take prohibited hard regs into account.
14475 (setup_conflict_profitable_regs): Rename to
14476 get_conflict_profitable_regs.
14477 (check_hard_reg_p): Check prohibited hard regs.
14478
14479 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
14480
14481 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
14482 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
14483 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
14484
14485 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14486
14487 PR target/48366
14488 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
14489 move from floating point to shift amount register.
14490 (emit_move_sequence): Remove secondary reload support for floating
14491 point to shift amount amount register copies.
14492 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
14493 amount register copies.
14494 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
14495 register, return false if mode isn't a scalar integer mode.
14496 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
14497
14498 2011-04-08 Richard Guenther <rguenther@suse.de>
14499
14500 * gimple.c (gimple_call_flags): Remove kludge.
14501
14502 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14503
14504 * sel-sched.c (sel_region_init): Move call to
14505 sel_setup_region_sched_flags after setup_current_loop_nest.
14506
14507 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
14508
14509 PR rtl-optimization/48272
14510 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
14511 init_insn_reg_pressure_info. Adjust a caller.
14512 * sched-int.h (init_insn_reg_pressure_info): Declare.
14513 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
14514 when sched-pressure is enabled.
14515
14516 2011-04-08 Richard Guenther <rguenther@suse.de>
14517
14518 * gimple.c (gimple_set_modified): Do not queue calls to
14519 MODIFIED_NORETURN_CALLS here ...
14520 * tree-ssa-operands.c (update_stmt_operands): ... but here.
14521
14522 2011-04-08 Richard Guenther <rguenther@suse.de>
14523
14524 PR lto/48467
14525 * toplev.c (lang_dependent_init): Do not open asm_out_file
14526 in WPA mode, nor perform debug machinery initialization.
14527 (finalize): Do not unlink asm_out_file in WPA mode.
14528
14529 2011-04-08 Richard Guenther <rguenther@suse.de>
14530
14531 * gimple.h (gimple_call_fntype): New function.
14532 (gimple_call_return_type): Use it.
14533 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
14534 * gimple-low.c (gimple_check_call_args): Likewise.
14535 * gimple.c (gimple_call_flags): Likewise.
14536 (gimple_call_arg_flags): Likewise.
14537 (gimple_call_return_flags): Likewise.
14538 * tree-cfg.c (verify_gimple_call): Likewise.
14539 (do_warn_unused_result): Likewise.
14540 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
14541 * value-prof.c (gimple_ic_transform): Fix fndecl check.
14542
14543 2011-04-08 Dmitry Melnik <dm@ispras.ru>
14544
14545 PR rtl-optimization/48235
14546 * sel-sched.c (code_motion_process_successors): Recompute the last
14547 insn in basic block if control flow changed.
14548 (code_motion_path_driver): Ditto. Recompute the first insn as well.
14549 Update condition for ilist_remove.
14550
14551 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14552
14553 PR rtl-optimization/48302
14554 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
14555 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
14556 it to record added preheader blocks.
14557 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
14558 on to sel_add_loop_preheaders.
14559 (sel_region_init): Move call to setup_current_loop_nest after
14560 sel_init_bbs.
14561
14562 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14563
14564 PR target/48273
14565 * cfgloop.h (loop_has_exit_edges): New helper.
14566 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
14567 non-clonable.
14568 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
14569 that have no exit edges.
14570
14571 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
14572
14573 PR rtl-optimization/48442
14574 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
14575 all callers. Adjust assert.
14576
14577 2011-04-08 Jakub Jelinek <jakub@redhat.com>
14578
14579 PR tree-optimization/48377
14580 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
14581 is_packed to true even for types with smaller TYPE_ALIGN than
14582 TYPE_SIZE.
14583
14584 2011-04-08 Richard Guenther <rguenther@suse.de>
14585
14586 PR bootstrap/48513
14587 * doc/tm.texi: Re-generate.
14588
14589 2011-04-08 Wei Guozhi <carrot@google.com>
14590
14591 PR target/47855
14592 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
14593 * config/arm/arm.c (arm_attr_length_push_multi): New function.
14594 * config/arm/arm.md (*push_multi): Change the length computation to
14595 call a C function.
14596
14597 2011-04-08 Anatoly Sokolov <aesok@post.ru>
14598
14599 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
14600 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
14601 * doc/tm.texi: Regenerate.
14602 * system.h (ASM_OUTPUT_BSS): Poison.
14603 * varasm.c (asm_output_bss): Remove function.
14604 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
14605
14606 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
14607 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
14608 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
14609 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14610 Likewise.
14611 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14612 Likewise.
14613 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
14614 Likewise.
14615 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
14616
14617 2011-04-07 Joseph Myers <joseph@codesourcery.com>
14618
14619 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
14620 EnumValue lines.
14621
14622 2011-04-07 Joseph Myers <joseph@codesourcery.com>
14623
14624 * config/m68k/m68k.c (m68k_handle_option): Don't handle
14625 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
14626 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
14627 OPT_mcpu32.
14628 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
14629 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
14630 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
14631 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
14632 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
14633 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
14634 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14635 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
14636 options. Don't map other m68k options manually. Don't handle
14637 old-style options as canonical.
14638 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
14639 * doc/install.texi (m68k-*-*): Document binutils version requirement.
14640
14641 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
14642
14643 * basic-block.h (force_nonfallthru): Move to...
14644 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
14645 (force_nonfallthru): ...here.
14646 * cfghooks.c (force_nonfallthru): New function.
14647 * cfgrtl.c (force_nonfallthru): Rename into...
14648 (rtl_force_nonfallthru): ...this.
14649 (commit_one_edge_insertion): Do not set AUX field.
14650 (commit_edge_insertions): Do not discover new basic blocks.
14651 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
14652 (cfg_layout_rtl_cfg_hooks): Likewise.
14653 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
14654 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
14655 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
14656
14657 2011-04-07 Anatoly Sokolov <aesok@post.ru>
14658
14659 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
14660 Remove macros.
14661
14662 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
14663
14664 * config/i386/sse.md: Update copyright year.
14665 (avxcvtvecmode): Remove.
14666 (sse_movhlps): Merge with *avx_movhlps.
14667 (sse_movlhps): Merge with *avx_movlhps.
14668 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
14669 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
14670 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
14671 (sse_loadhps): Merge with *avx_loadhps.
14672 (sse_storelps): Merge with *avx_storelps.
14673 (sse_loadlps): Merge with *avx_loadlps.
14674 (sse_movss): Merge with *avx_movss.
14675 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
14676 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
14677 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
14678 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
14679 (vec_set<mode>_0): Ditto.
14680 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
14681 (sse4_1_insertps): Merge with *avx_insertps.
14682 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
14683 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
14684 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
14685 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
14686 (sse2_storehpd): Merge with *avx_storehpd.
14687 (sse2_loadhpd): Merge with *avx_loadhpd.
14688 (sse2_loadlpd): Merge with *avx_loadlpd.
14689 (sse2_movsd): Merge with *avx_movsd.
14690 (*vec_concatv2df): Merge with *vec_concatv2df.
14691
14692 2011-04-07 Jakub Jelinek <jakub@redhat.com>
14693
14694 PR debug/48343
14695 * combine.c (combine_instructions): Add last_combined_insn,
14696 update it if insn is after it, pass it to all try_combine calls.
14697 (try_combine): Add last_combined_insn parameter, pass it instead of
14698 i3 to propagate_for_debug.
14699
14700 2011-04-07 Nick Clifton <nickc@redhat.com>
14701
14702 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
14703 to handle MDR <-> data register transfers.
14704 (movhi_internal): Likewise.
14705
14706 2011-04-07 Alan Modra <amodra@gmail.com>
14707
14708 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
14709 previous stack info.
14710
14711 2011-04-07 Tom de Vries <tom@codesourcery.com>
14712
14713 PR target/43920
14714 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
14715 flow_find_cross_jump. Swap variables to implement backward replacement.
14716 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
14717
14718 2011-04-07 Tom de Vries <tom@codesourcery.com>
14719
14720 PR target/43920
14721 * cfgcleanup.c (walk_to_nondebug_insn): New function.
14722 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
14723 and bb2.
14724 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
14725 src1 or src2. Redirect edges to the last basic block. Update
14726 frequency and count on multiple basic blocks in case of fallthru.
14727
14728 2011-04-07 Tom de Vries <tom@codesourcery.com>
14729
14730 PR target/43920
14731 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
14732 function.
14733 (old_insns_match_p): Change return type. Replace return false/true
14734 with return dir_none/dir_both. Use can_replace_by.
14735 (flow_find_cross_jump): Add dir_p parameter. Init replacement
14736 direction from dir_p. Register replacement direction in dir, last_dir
14737 and afterlast_dir. Handle new return type of old_insns_match_p using
14738 merge_dir. Return replacement direction in dir_p.
14739 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
14740 return type of old_insns_match_p.
14741 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
14742 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
14743 flow_find_cross_jump.
14744 * basic-block.h (enum replace_direction): New type.
14745 (flow_find_cross_jump): Add parameter to declaration.
14746
14747 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
14748
14749 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
14750 (AVXMODEDCVTPS2DQ): Ditto.
14751 (VEC_FLOAT_MODE): Ditto.
14752 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
14753 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14754 (<any_logic:code><mode>3): Use VF mode iterator.
14755 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
14756 Use VF mode iterator.
14757 (copysign<mode>3): Use VF mode iterator.
14758 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
14759 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
14760 (*<any_logic:code><MODEF:mode>3): Merge with
14761 *avx_<any_logic:code><MODEF:mode>3.
14762 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
14763 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
14764 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
14765 (avx_cvtdq2ps<avxmodesuffix>): Remove.
14766 (sse2_cvtdq2ps): Use %v modifier.
14767 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
14768 (avx_cvtps2dq<avxmodesuffix>): Remove.
14769 (sse2_cvtps2dq): Use %v modifier.
14770 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
14771 (avx_cvttps2dq<avxmodesuffix>): Remove.
14772 (sse2_cvttps2dq): Use %v modifier.
14773 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
14774 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
14775 (sse2_cvtsd2siq): Fix insn template.
14776 (sse2_cvtsd2siq_2): Ditto.
14777 (sse2_cvttsd2siq): Ditto.
14778 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
14779 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
14780
14781 2011-04-06 Joseph Myers <joseph@codesourcery.com>
14782
14783 * gcov-io.c: Use GCC Runtime Library Exception.
14784
14785 2011-04-06 Jakub Jelinek <jakub@redhat.com>
14786
14787 PR debug/48466
14788 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
14789 as base_reg whatever register reg has been eliminated to, instead
14790 of hardcoding STACK_POINTER_REGNUM.
14791
14792 2011-04-06 Joseph Myers <joseph@codesourcery.com>
14793
14794 * doc/tm.texi.in: Document C target hooks as separate from general
14795 target hooks.
14796 * doc/tm.texi: Regenerate.
14797 * genhooks.c (struct hook_desc): Add docname field.
14798 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
14799 docname field.
14800 (hook_array): Include c-target.def.
14801 (emit_documentation): Use docname field in output.
14802 (emit_init_macros): Take docname argument. Only emit definitions
14803 for hooks matching docname.
14804 (main): Expect additional arguments in all cases. Pass argument
14805 to emit_init_macros.
14806 * target.def: Move initial macro definitions and comments to
14807 target-hooks-macros.h.
14808 (gcc_targetcm): Move to c-family/c-target.def.
14809 * target.h (targetcm): Move declaration to c-family/c-target.h.
14810 * targhooks.c (default_handle_c_option): Move to
14811 c-family/c-opts.c.
14812 * targhooks.h (default_handle_c_option): Move declaration to
14813 c-family/c-common.h.
14814 * target-hooks-macros.h: New file.
14815 * config.gcc (target_has_targetcm): Define and use to add to
14816 c_target_objs and cxx_target_objs.
14817 * config/default-c.c: New file.
14818 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
14819 of target.h and target-def.h.
14820 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
14821 (darwin_objc_construct_string, darwin_cfstring_ref_p,
14822 darwin_check_cfstring_format_arg): Make static.
14823 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14824 TARGET_STRING_OBJECT_REF_TYPE_P,
14825 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
14826 * config/darwin-protos.h (darwin_objc_construct_string,
14827 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
14828 declare.
14829 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
14830 TARGET_STRING_OBJECT_REF_TYPE_P,
14831 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
14832 * config/t-darwin (darwin-c.o): Update dependencies.
14833 * system.h (TARGET_HAS_TARGETCM): Poison.
14834 * Makefile.in (TARGET_H): Update.
14835 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
14836 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
14837 (default-c.o): New target.
14838 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
14839 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
14840 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
14841 c-target.def.
14842 (build/genhooks.o): Update dependencies.
14843
14844 2011-04-06 Richard Guenther <rguenther@suse.de>
14845
14846 * ipa-inline.c (enum inlining_mode): Remove.
14847 (cgraph_flatten): Use some other token.
14848 (cgraph_edge_early_inlinable_p): New function, split out from ...
14849 (cgraph_perform_always_inlining): New function, split out from ...
14850 (cgraph_decide_inlining_incrementally): ... here.
14851 (cgraph_mark_inline_edge): Adjust.
14852 (cgraph_early_inlining): Re-structure.
14853 (pass_early_inline): Require SSA form.
14854
14855 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
14856 Julian Brown <julian@codesourcery.com>
14857 Mark Shinwell <shinwell@codesourcery.com>
14858
14859 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
14860 LO_REGS only for Thumb-1.
14861 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
14862 be used in short instructions when optimising for size on Thumb-2.
14863
14864 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
14865
14866 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
14867 associated with user returns to be preserved.
14868
14869 2011-04-06 Tristan Gingold <gingold@adacore.com>
14870
14871 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
14872 symbol_queue_size, DBXOUT_DECR_NESTING,
14873 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
14874 if XCOFF_DEBUGGING_INFO.
14875
14876 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
14877
14878 * config/i386/i386.md (attribute isa): New.
14879 (attribute enabled): New.
14880 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
14881 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
14882 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
14883 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
14884 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
14885 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14886 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
14887 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
14888
14889 * config/i386/sse.md (VF): New mode iterator.
14890 (VF1): Ditto.
14891 (VF2): Ditto.
14892 (VF_128): Ditto.
14893 (SSEMODEF4): Remove.
14894 (attribute sse): Handle V8SF and V4DF modes.
14895 (<absneg:code><mode>2): Use VF mode iterator.
14896 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
14897 mode iterator.
14898 (<plusminus_insn><mode>3): Use VF mode iterator.
14899 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
14900 Use VF mode iterator.
14901 (<sse>_vm<plusminus_insn><mode>3): Merge with
14902 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
14903 (mul<mode>3): Use VF mode iterator.
14904 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
14905 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
14906 mode iterator.
14907 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
14908 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
14909 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
14910 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
14911 mode iterator.
14912 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
14913 Use VF1 mode iterator.
14914 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
14915 (sqrt<VF2:mode>2): New expander.
14916 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
14917 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
14918 and sqrtv2df2. Use VF mode iterator.
14919 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
14920 mode iterator.
14921 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
14922 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
14923 Use VF1 mode iterator.
14924 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
14925 (<smaxmin:code><mode>3): Use VF mode iterator.
14926 (*<smaxmin:code><mode>3_finite): Merge with
14927 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
14928 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
14929 (<sse>_vm<smaxmin:code><mode>2): Merge with
14930 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
14931 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
14932 mode iterator.
14933 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
14934 mode iterator.
14935 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
14936 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
14937 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
14938 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
14939 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
14940 VF mode iterator.
14941 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
14942 Use VF_128 mode iterator.
14943 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
14944 mode iterator.
14945 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
14946 VF_128 mode iterator.
14947 (vcond<mode>): Use VF mode iterator.
14948 * config/i386/predicates.md (sse_comparison_operator): Merge with
14949 avx_comparison_float_operator. Do not declare as special_predicate.
14950 * config/i386/i386.c (struct builtin_description): Update for renamed
14951 compare patterns.
14952 (ix86_expand_args_builtin): Ditto.
14953 (ix86_expand_sse_compare_mask): Ditto.
14954
14955 2011-04-06 Richard Guenther <rguenther@suse.de>
14956
14957 * tree-inline.c (estimate_num_insns): For calls simply account
14958 for all passed arguments and a used return value.
14959
14960 2011-04-06 Richard Guenther <rguenther@suse.de>
14961
14962 PR tree-optimization/47663
14963 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
14964 call_stmt_time fields.
14965 (cgraph_edge_inlinable_p): Declare.
14966 (cgraph_edge_recursive_p): New inline function.
14967 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
14968 (cgraph_clone_edge): Copy it.
14969 * ipa-inline.c (cgraph_estimate_edge_time): New function.
14970 Account for call stmt time.
14971 (cgraph_estimate_time_after_inlining): Take edge argument.
14972 (cgraph_estimate_edge_growth): Account call stmt size.
14973 (cgraph_estimate_size_after_inlining): Take edge argument.
14974 (cgraph_mark_inline_edge): Adjust.
14975 (cgraph_check_inline_limits): Likewise.
14976 (cgraph_recursive_inlining_p): Remove.
14977 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
14978 (cgraph_decide_recursive_inlining): Take edge argument and
14979 adjust.
14980 (cgraph_decide_inlining_of_small_functions): Do not avoid
14981 diags for recursive inlining here.
14982 (cgraph_flatten): Adjust.
14983 (cgraph_decide_inlining_incrementally): Likewise.
14984 (estimate_function_body_sizes): Remove call cost handling.
14985 (compute_inline_parameters): Initialize caller edge call costs.
14986 (cgraph_estimate_edge_growth): New function.
14987 (cgraph_estimate_growth): Use it.
14988 (cgraph_edge_badness): Likewise.
14989 (cgraph_check_inline_limits): Take an edge argument.
14990 (cgraph_decide_inlining_of_small_functions): Adjust.
14991 (cgraph_decide_inlining): Likewise.
14992 * tree-inline.c (estimate_num_insns): Only account for call
14993 return value if it is used.
14994 (expand_call_inline): Avoid diagnostics on recursive inline
14995 functions here.
14996 * lto-cgraph.c (lto_output_edge): Output edge call costs.
14997 (input_edge): Input edge call costs.
14998
14999 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15000
15001 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
15002
15003 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
15004
15005 * doc/invoke.texi (Spec Files): Fix typo.
15006
15007 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
15008
15009 * profile.c (branch_prob): Move declaration of local variable. Remove
15010 obsolete ??? comment. Expand the location explicitly instead of using
15011 the LOCATION_FILE and LOCATION_LINE macros.
15012
15013 2011-04-06 Wei Guozhi <carrot@google.com>
15014
15015 PR target/47855
15016 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
15017 (arm_cond_branch): Likewise.
15018 (arm_cond_branch_reversed): Likewise.
15019 (arm_jump): Likewise.
15020 (push_multi): Likewise.
15021 * config/arm/constraints.md (Py): New constraint.
15022
15023 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15024
15025 PR bootstrap/48471
15026 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
15027 Move these...
15028 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
15029 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
15030 #ifdef DBX_DEBUGGING_INFO.
15031
15032 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
15033
15034 PR bootstrap/48403
15035 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
15036 if old and new states differ.
15037
15038 2011-04-05 Joseph Myers <joseph@codesourcery.com>
15039
15040 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
15041 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
15042 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
15043 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
15044 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
15045 mcfv4e): Use Alias.
15046 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
15047 ColdFire options to -mcpu= options.
15048
15049 2011-04-05 Jeff Law <law@redhat.com>
15050
15051 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
15052 check if BB is a successor of LOOP->header and return
15053 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
15054
15055 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15056
15057 * cprop.c (struct reg_use): Remove.
15058 (reg_use_table): Make an array of RTX.
15059 (find_used_regs, constprop_register, local_cprop_pass,
15060 bypass_block): Simplify users of reg_use_table.
15061 (cprop_insn): Likewise. Iterate if copy propagation succeeded
15062 on one of the uses found by find_used_regs.
15063
15064 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15065
15066 PR bootstrap/48469
15067 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
15068 declaration.
15069
15070 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15071
15072 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
15073 as an rtx.
15074 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
15075
15076 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
15077
15078 PR middle-end/48441
15079 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
15080
15081 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15082
15083 * combine.c: Include obstack.h.
15084 (struct insn_link): Define.
15085 (uid_log_links): Adjust type.
15086 (FOR_EACH_LOG_LINK): New macro.
15087 (insn_link_obstack): Declare.
15088 (alloc_insn_link): Define.
15089 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
15090 type of link variables.
15091 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
15092 (try_combine, record_promoted_values, distribute_notes): Likewise.
15093 (distribute_links): Likewise. Tweak prototype.
15094 (clear_log_links): Delete.
15095 (adjust_for_new_dest): Call alloc_insn_link.
15096 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
15097
15098 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15099
15100 * gcse.c (modify_mem_list): Convert to an array of VECs.
15101 (canon_modify_mem_list, compute_transp): Tweak formatting.
15102 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
15103 (load_killed_in_block_p): Likewise.
15104 (record_last_mem_set_info): Likewise.
15105 (clear_modify_mem_tables): Likewise.
15106
15107 2011-04-05 Tom de Vries <tom@codesourcery.com>
15108
15109 PR middle-end/48461
15110 * function.c (emit_use_return_register_into_block): Only define if
15111 HAVE_return.
15112
15113 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
15114
15115 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
15116
15117 2011-04-05 Joseph Myers <joseph@codesourcery.com>
15118
15119 * config/rx/rx-opts.h: New.
15120 * config/rx/rx.c (rx_cpu_type): Remove.
15121 (rx_handle_option): Don't assert that global structures are in
15122 use. Access variables via opts pointer. Defer most handling of
15123 OPT_mint_register_. Use error_at.
15124 (rx_option_override): Handle deferred OPT_mint_register_ here.
15125 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
15126 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
15127 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
15128 (rx_cpu_types): New Enum and EnumValue entries.
15129 (mint-register=): Use Defer and use Var accordingly.
15130
15131 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15132
15133 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
15134 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
15135 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
15136 Move these...
15137 (debug_free_queue, debug_nesting, symbol_queue_index):
15138 ...and these...
15139 * dbxout.c: ...to here. Make static.
15140
15141 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
15142
15143 * gcse.c (modify_pair): Define. Define a VEC of it.
15144 (canon_modify_mem_list): Convert to an array of VECs.
15145 (free_insn_expr_list_list): Delete.
15146 (clear_modify_mem_tables): Call VEC_free instead.
15147 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
15148 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
15149 (canon_list_insert, compute_transp): Likewise.
15150
15151 2011-04-05 Tom de Vries <tom@codesourcery.com>
15152
15153 PR target/43920
15154 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
15155 for size.
15156
15157 2011-04-05 Tom de Vries <tom@codesourcery.com>
15158
15159 PR target/43920
15160 * function.c (emit_use_return_register_into_block): New function.
15161 (thread_prologue_and_epilogue_insns): Use
15162 emit_use_return_register_into_block.
15163
15164 2011-04-05 Tom de Vries <tom@codesourcery.com>
15165
15166 PR target/43920
15167 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
15168 insn.
15169
15170 2011-04-05 Tom de Vries <tom@codesourcery.com>
15171
15172 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
15173
15174 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
15175
15176 * config/arm/arm.md (define_constants for unspec): Replace with
15177 define_c_enum.
15178 (define_constants for unspecv): Replace with define_c_enum.
15179 * config/arm/neon.md (define_constants for unspec): Replace with
15180 define_c_enum.
15181
15182 2011-04-04 Richard Henderson <rth@redhat.com>
15183
15184 PR bootstrap/48400
15185 * dwarf2out.c (output_line_info): Always emit line info from
15186 at least one section.
15187 (dwarf2out_init): Create text_section_line_info here ...
15188 (set_cur_line_info_table): ... not here.
15189
15190 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
15191
15192 PR target/48380
15193 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
15194 not called.
15195
15196 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
15197
15198 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
15199
15200 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
15201 (expr_equiv_p): Remove.
15202 (insert_set_in_table): Look at <dest, src> pair instead of expr.
15203 (hash_scan_set): Update call to insert_set_in_table.
15204 (dump_hash_table): Dump <dest, src> pair.
15205 (lookup_set): Simplify. Lookup <dest, src> pair.
15206 (compute_transp): Remove, fold heavily simplified code into...
15207 (compute_local_properties): ...here. Expect COMP and TRANSP
15208 unconditionally.
15209 (find_avail_set): Take set directly from struct expr.
15210 (find_bypass-set): Likewise.
15211 (bypass_block): Likewise.
15212 (cprop_insn): Likewise. Remove redundant INSN_P test.
15213
15214 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
15215 checks on form of COND from find_implicit_sets to here.
15216 (find_implicit_sets): Cleanup control flow. Split critical edges
15217 if it exposes implicit sets. Allocate/resize implicit_sets as
15218 necessary.
15219 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
15220 changed something. Run df_analyze after find_implicit_sets if any
15221 edges were split. Do not allocate implicit_sets here.
15222
15223 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
15224 (gcse_obstack): Renamed to cprop_obstack.
15225 (GNEW, GNEWVEC, GNEWVAR): Remove.
15226 (gmalloc): Remove.
15227 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
15228 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
15229 (gcse_alloc): Likewise, and rename to cprop_alloc.
15230 (alloc_gcse_men, free_gcse_mem): Remove.
15231 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
15232 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
15233 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
15234
15235 * cprop.c (oprs_not_set_p): Remove.
15236 (mark_set, mark_clobber): Remove.
15237 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
15238 (reg_not_set_p): New function.
15239 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
15240 (cprop_insn): Likewise.
15241 (cprop_jump): Use FOR_EACH_EDGE.
15242
15243 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
15244
15245 PR bootstrap/48403
15246 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
15247 (rank_for_schedule): Use scheduled_insns vector instead of
15248 last_scheduled_insn.
15249 (ok_for_early_queue_removal): Likewise.
15250 (queue_to_ready): Search forward in nonscheduled_insns_begin if
15251 we have a dbg_cnt.
15252 (choose_ready): Likewise.
15253 (commit_schedule): Use VEC_iterate.
15254 (schedule_block): Initialize nonscheduled_insns_begin. If we have
15255 a dbg_cnt, use it and ensure the first insn is in the ready list.
15256 (haifa_sched_init): Allocate scheduled_insns.
15257 (sched_extend_ready_list): Don't allocate it; reserve space.
15258 (haifa_sched_finish): Free it.
15259
15260 2011-04-04 Joseph Myers <joseph@codesourcery.com>
15261
15262 * optc-gen.awk: Always remove type from Variable entry before
15263 recording in var_seen.
15264
15265 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
15266
15267 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
15268 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
15269 call to tidy_fallthru_edges.
15270
15271 2011-04-04 Joseph Myers <joseph@codesourcery.com>
15272
15273 * doc/options.texi (ToLower): Document.
15274 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
15275 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
15276 * opts.h (cl_option): Add cl_tolower field.
15277 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
15278 arguments with lowercase strings.
15279 * config/rx/rx.opt (mcpu=): Add ToLower.
15280 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
15281 argument.
15282
15283 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15284
15285 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
15286
15287 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
15288
15289 * config/vax/vax.c: Include reload.h.
15290
15291 2011-04-04 Anatoly Sokolov <aesok@post.ru>
15292
15293 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
15294 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
15295 (sparc_preferred_reload_class): New function.
15296
15297 2011-04-04 Jakub Jelinek <jakub@redhat.com>
15298
15299 PR debug/48401
15300 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15301 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
15302
15303 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
15304
15305 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
15306 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
15307
15308 2011-04-03 Anatoly Sokolov <aesok@post.ru>
15309
15310 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
15311 (ASM_OUTPUT_ALIGNED_BSS): Define.
15312
15313 2011-04-03 Michael Matz <matz@suse.de>
15314
15315 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
15316 and next_slot members.
15317 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
15318 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
15319 (lto_streamer_cache_append): Declare.
15320 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
15321 unsigned index, remove offset parameter, ensure that we append
15322 or update existing entries.
15323 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
15324 parameter, update next_slot for append.
15325 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
15326 parameter.
15327 (lto_streamer_cache_insert_at): Likewise.
15328 (lto_streamer_cache_append): New function.
15329 (lto_streamer_cache_lookup): Use unsigned index.
15330 (lto_streamer_cache_get): Likewise.
15331 (lto_record_common_node): Don't test tree_node_can_be_shared.
15332 (preload_common_node): Adjust call to lto_streamer_cache_insert.
15333 (lto_streamer_cache_delete): Don't free offsets member.
15334 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
15335 (lto_output_string_with_length): Use lto_output_data_stream.
15336 (lto_output_tree_header): Remove ix parameter, don't write it.
15337 (lto_output_builtin_tree): Likewise.
15338 (lto_write_tree): Adjust callers to above, don't track and write
15339 offset, write unsigned index.
15340 (output_unreferenced_globals): Don't emit all global vars.
15341 (write_global_references): Use unsigned indices.
15342 (lto_output_decl_state_refs): Likewise.
15343 (write_symbol): Likewise.
15344 * lto-streamer-in.c (lto_input_chain): Move earlier.
15345 (input_function): Use unsigned index.
15346 (input_alias_pairs): Don't read and then ignore all global vars.
15347 (lto_materialize_tree): Remove ix_p parameter, don't read index,
15348 don't pass it back, use lto_streamer_cache_append.
15349 (lto_register_var_decl_in_symtab): Use unsigned index.
15350 (lto_register_function_decl_in_symtab): Likewise.
15351 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
15352 index.
15353 (lto_get_builtin_tree): Don't read index, use
15354 lto_streamer_cache_append.
15355 (lto_read_tree): Adjust call to lto_materialize_tree.
15356
15357 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
15358 don't use function calls in arguments to MIN.
15359
15360 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
15361 twice.
15362
15363 * gimple.c (gimple_type_leader_entry): Mark deletable.
15364
15365 2011-04-03 Alan Modra <amodra@gmail.com>
15366
15367 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
15368
15369 2011-04-03 Michael Matz <matz@suse.de>
15370
15371 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
15372 an integer.
15373 * tree.h (tree_decl_non_common.vindex): Adjust comment.
15374
15375 2011-04-03 Michael Matz <matz@suse.de>
15376
15377 * cgraphbuild.c (record_reference): Canonicalize constructor values.
15378 * gimple-fold.c (canonicalize_constructor_val): Accept being called
15379 without function context.
15380 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
15381 current_function_decl and cfun.
15382
15383 2011-04-03 Michael Matz <matz@suse.de>
15384
15385 * tree.c (decl_init_priority_insert): Don't create entry for
15386 default priority.
15387 (decl_fini_priority_insert): Ditto.
15388 (fields_compatible_p, find_compatible_field): Remove.
15389 * tree.h (fields_compatible_p, find_compatible_field): Remove.
15390 * gimple.c (gimple_compare_field_offset): Adjust block comment.
15391
15392 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
15393
15394 * combine.c (try_combine): Remove useless local variable.
15395
15396 2011-04-03 Richard Guenther <rguenther@suse.de>
15397 Ira Rosen <ira.rosen@linaro.org>
15398
15399 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
15400 non-variable offsets and compare the remaining bases of the two
15401 accesses instead of looking for exact same data-ref.
15402
15403 2011-04-02 Kai Tietz <ktietz@redhat.com>
15404
15405 PR target/48416
15406 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
15407
15408 * i386.c (ix86_is_msabi_thiscall): New helper function.
15409 (ix86_is_type_thiscall): New helper function.
15410 (ix86_comp_type_attributes): Handle thiscall for method-functions
15411 special.
15412 (init_cumulative_args): Likewise.
15413 (find_drap_reg): Likewise.
15414 (ix86_static_chain): Likewise.
15415 (x86_this_parameter): Likewise.
15416 (x86_output_mi_thunk): Likewise.
15417
15418 2011-04-01 Olivier Hainque <hainque@adacore.com>
15419 Nicolas Setton <setton@adacore.com>
15420 Eric Botcazou <ebotcazou@adacore.com>
15421
15422 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
15423 (add_gnat_descriptive_type_attribute): New function.
15424 (gen_array_type_die): Call it.
15425 (gen_enumeration_type_die): Likewise.
15426 (gen_struct_or_union_type_die): Likewise.
15427 (modified_type_die): Likewise.
15428 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
15429 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
15430 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
15431
15432 2011-04-01 Jakub Jelinek <jakub@redhat.com>
15433
15434 PR bootstrap/48148
15435 * dwarf2out.c (resolve_addr): Don't call force_decl_die
15436 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
15437
15438 Revert:
15439 2011-03-17 Richard Guenther <rguenther@suse.de>
15440
15441 PR bootstrap/48148
15442 * lto-cgraph.c (input_overwrite_node): Clear the abstract
15443 origin for decls in other ltrans units.
15444 (input_varpool_node): Likewise.
15445
15446 2011-04-01 Jakub Jelinek <jakub@redhat.com>
15447
15448 PR middle-end/48335
15449 * expr.c (expand_assignment): Handle all possibilities
15450 if TO_RTX is CONCAT.
15451 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
15452 (store_split_bit_field): If SUBREG_REG (op0) or
15453 op0 itself has smaller mode than word, return it
15454 for offset 0 and const0_rtx for out-of-bounds stores.
15455 If word is const0_rtx, skip it.
15456
15457 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
15458
15459 * config/h8300/h8300.c (print_operand_address): Rename to...
15460 (h8300_print_operand_address): ...this. Make static. Adjust comments.
15461 Call h8300_print_operand and h8300_print_operand_address instead of
15462 print_operand and print_operand_address. Declare.
15463 (print_operand): Renake to...
15464 (h8300_print_operand): ...this. Make static. Adjust comments.
15465 Call h8300_print_operand instead of print_operand. Declare.
15466 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
15467 (h8300_register_move_cost): Likewise.
15468 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
15469 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
15470 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
15471 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
15472 * config/h8300/h8300-protos.h (print_operand): Delete.
15473 (print_operand_address): Delete.
15474
15475 2011-04-01 Richard Henderson <rth@redhat.com>
15476
15477 PR 48400
15478 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
15479 in strict mode before dwarf4. Re-order tests to early out
15480 before switching sections.
15481
15482 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
15483
15484 * config/h8300/constraints.md: New file.
15485 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
15486 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
15487 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
15488 * config/h8300/predicates.md (bit_operand): Likewise.
15489 (incdec_operand): Use satisfies_constraint_M and
15490 satisfies_constraint_O. Don't use C code block.
15491 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
15492 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
15493 (compute_mov_length): Use satisfies_constraint_G.
15494 (fix_bit_operand): Use satisfies_constraint_U.
15495 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
15496 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
15497 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
15498 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
15499 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
15500 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
15501 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
15502 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
15503 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
15504 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
15505 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
15506 (EXTRA_MEMORY_CONSTRAINT): Delete.
15507
15508 2011-04-01 Andrew Pinski <pinskia@gmail.com>
15509 Michael Meissner <meissner@linux.vnet.ibm.com>
15510
15511 PR target/48262
15512 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
15513 operands, as per the specifications.
15514
15515 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
15516 (vec_extract_evenv4sf): Ditto.
15517 (vec_extract_evenv8hi): Ditto.
15518 (vec_extract_evenv16qi): Ditto.
15519 (vec_extract_oddv4si): Ditto.
15520
15521 2011-03-31 Mark Wielaard <mjw@redhat.com>
15522
15523 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
15524 high_pc attribute if the CU has no associated code. Only output
15525 DW_AT_entry_pc for CU if not generating strict dwarf and
15526 dwarf_version < 4.
15527
15528 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
15529
15530 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
15531 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
15532 out of ...
15533 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
15534 * final.c (final_start_function): Call the new function rather
15535 than using a NULL argument for dwarf2out_frame_debug.
15536
15537 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
15538 that contains the prologue.
15539
15540 * haifa-sched.c (queue_insn): New arg REASON. All callers
15541 changed. Print it in debugging output.
15542
15543 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
15544
15545 * sched-ebb.c (begin_schedule_ready): Remove second argument.
15546 Split most of the code into...
15547 (begin_move_insn): ... here. New function.
15548 (ebb_sched_info): Add a pointer to it.
15549 * haifa-sched.c (scheduled_insns): New static variable.
15550 (sched_extend_ready_list): Allocate it.
15551 (schedule_block): Use it to record the order of scheduled insns.
15552 Perform RTL changes to move insns only after all scheduling
15553 decisions have been made.
15554 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
15555 begin_move_insn field.
15556 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
15557 * sched-int.h (struct haifa_sched_info): Remove second argument
15558 from begin_schedule_ready hook. Add new member begin_move_insn.
15559 * sched-rgn.c (begin_schedule_ready): Remove second argument.
15560 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
15561
15562 * haifa-sched.c (prune_ready_list): New function, broken out of
15563 schedule_block.
15564 (schedule_block): Use it.
15565
15566 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15567
15568 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
15569
15570 2011-04-01 Kai Tietz <ktietz@redhat.com>
15571
15572 * config.gcc (*-*-mingw*): Allow as option the
15573 posix threading model.
15574 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
15575 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
15576 definition.
15577 (CPP_SPEC): Add pthread/no-pthread handling.
15578 (LIB_SPEC): Likewise.
15579 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
15580 (LIB_SPEC): Likewise.
15581 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
15582 flag to pass -pthread option for shared libgcc build.
15583 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
15584 for shared libgcc build.
15585 * config/i386/t-mingw-pthread: New file.
15586 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
15587 New define to enable use of library pthread by default.
15588 * config/i386/mingw.opt (pthread): New driver option.
15589 (no-pthread): New driver option.
15590 * config/i386/cygming.opt: Make sure trailing empty line is retained.
15591 * config/i386/mingw-w64.opt: Likewise.
15592
15593 2011-04-01 Gary Funck <gary@intrepid.com>
15594
15595 * c-decl.c (grokdeclarator): Fix formatting.
15596
15597 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15598
15599 * expr.c (emit_block_move_via_movmem): Use n_generator_args
15600 instead of n_operands.
15601 (set_storage_via_setmem): Likewise.
15602 * optabs.c (maybe_gen_insn): Likewise.
15603 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
15604 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
15605 (mips_expand_builtin_direct): Likewise.
15606 * config/spu/spu.c (expand_builtin_args): Likewise.
15607
15608 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15609
15610 * recog.h (insn_data_d): Add n_generator_args.
15611 * genoutput.c (data): Likewise.
15612 (output_insn_data): Print it.
15613 (max_opno, num_dups): Delete.
15614 (scan_operands): Just fill in "d->operand[...]".
15615 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
15616
15617 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
15618
15619 * gensupport.h (pattern_stats): New structure.
15620 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
15621 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
15622 (max_operand_1, max_operand_vec): Delete.
15623 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
15624
15625 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
15626
15627 * emit-rtl.c (emit_pattern_after_setloc): New function.
15628 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
15629 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
15630 (emit_pattern_after): New function.
15631 (emit_insn_after, emit_jump_insn_after): Call it.
15632 (emit_call_insn_after, emit_debug_insn_after): Likewise.
15633 (emit_pattern_before_setloc): New function.
15634 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
15635 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
15636 Likewise.
15637 (emit_pattern_before): New function.
15638 (emit_insn_before, emit_jump_insn_before): Call it.
15639 (emit_call_insn_before, emit_debug_insn_before): Likewise.
15640
15641 2011-03-31 Richard Henderson <rth@redhat.com>
15642
15643 * dwarf2out.c (dw_separate_line_info_ref): Remove.
15644 (dw_separate_line_info_entry): Remove.
15645 (enum dw_line_info_opcode): New.
15646 (dw_line_info_entry): Use it.
15647 (dw_line_info_table, dw_line_info_table_p): New.
15648 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
15649 (line_info_table, line_info_label_num): Remove.
15650 (line_info_table_in_use): Remove.
15651 (separate_line_info_table): Remove.
15652 (separate_line_info_table_allocated): Remove.
15653 (separate_line_info_table_in_use): Remove.
15654 (LINE_INFO_TABLE_INCREMENT): Remove.
15655 (line_info_label_num): New.
15656 (cur_line_info_table): New.
15657 (text_section_line_info, cold_text_section_line_info): New.
15658 (separate_line_info): New.
15659 (SEPARATE_LINE_CODE_LABEL): Remove.
15660 (print_dwarf_line_table): Remove.
15661 (debug_dwarf): Don't dump it.
15662 (output_one_line_info_table): New.
15663 (output_line_info): Use it.
15664 (new_line_info_table): New.
15665 (set_cur_line_info_table): New.
15666 (dwarf2out_switch_text_section): Use it.
15667 (dwarf2out_begin_function): Likewise.
15668 (push_dw_line_info_entry): New.
15669 (dwarf2out_source_line): Rewrite for new line info tables.
15670 (dwarf2out_init): Remove dead initailizations.
15671
15672 2011-03-31 Joseph Myers <joseph@codesourcery.com>
15673
15674 * opts.h (cl_option): Add comments to fields. Add bit-fields for
15675 various flags.
15676 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
15677 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
15678 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
15679 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
15680 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
15681 * opt-functions.awk (flag_init, switch_bit_fields): New.
15682 (switch_flags): Don't handle flags moved to bit-fields. Don't
15683 generate CL_MISSING_OK or CL_SAVE.
15684 * optc-gen.awk: Update to generate bit-field output as well as
15685 flags field.
15686 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
15687 bit-field instead of CL_REJECT_DRIVER flag.
15688 * opts-common.c (generate_canonical_option,
15689 decode_cmdline_option): Use bit-fields instead of CL_* flags.
15690 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
15691 instead of CL_REJECT_NEGATIVE flag.
15692 * toplev.c (print_switch_values): Use cl_report bit-field instead
15693 of CL_REPORT flag.
15694
15695 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15696
15697 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
15698 a zero minimum index only if it is redundant.
15699
15700 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
15701
15702 PR rtl-optimization/48381
15703 * ira-color.c (assign_hard_reg): Use hard reg set intersection
15704 instead of ira_class_hard_reg_index for calculating conflicting
15705 hard registers.
15706
15707 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
15708
15709 * cprop.c: Clean up hash table building.
15710 (reg_avail_info): Remove.
15711 (oprs_available_p): Remove.
15712 (record_last_reg_set_info): Remove.
15713 (record_last_set_info): Remove.
15714 (reg_available_p): New function.
15715 (gcse_constant_p): Do not treat unfolded conditions as constants.
15716 (make_set_regs_unavailable): New function.
15717 (hash_scan_set): Simplify with new reg_available_p.
15718 (compute_hash_table_work): Traverse insns stream only once.
15719 Do not compute reg_avail_info. Traverse insns in reverse order.
15720 Record implicit sets after recording explicit sets from the block.
15721
15722 2011-03-31 Michael Matz <matz@suse.de>
15723
15724 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
15725
15726 2011-03-31 Anatoly Sokolov <aesok@post.ru>
15727
15728 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
15729 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
15730 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
15731 (h8300_mode_dependent_address_p): New function.
15732 (h8300_get_index): Make static.
15733
15734 2011-03-31 Jeff Law <law@redhat.com>
15735
15736 * reload1.c (elimination_effects): Fix typo in recent change.
15737
15738 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
15739 typo potentially leading to null pointer dereference.
15740
15741 * caller-save.c (new_saved_hard_reg): Eliminate return value.
15742 (setup_save_areas): Corresponding changes to avoid useless
15743 assignments.
15744
15745 * jump.c (reversed_comparison_code_parts): Avoid successive return
15746 statements when REVERSE_CONDITION is defined.
15747
15748 * expr.c (expand_assignment): Avoid useless assignments.
15749 (expand_expr_real_1): Likewise.
15750 (expand_expr_real_2): Avoid useless statements.
15751
15752 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
15753
15754 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
15755
15756 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
15757 statements.
15758
15759 * stmt.c (expand_expr_stmt): Avoid useless assignment.
15760
15761 2011-03-31 Joseph Myers <joseph@codesourcery.com>
15762
15763 PR target/47109
15764 * doc/tm.texi.in (TARGET_VERSION): Remove.
15765 * doc/tm.texi: Regenerate.
15766 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
15767 * collect2.c (main): Don't use TARGET_VERSION.
15768 * mips-tdump.c (main): Don't use TARGET_VERSION.
15769 * mips-tfile.c (main): Don't use TARGET_VERSION.
15770 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
15771 * config/rs6000/vxworksae.h: Remove.
15772 * config/alpha/alpha.h (TARGET_VERSION): Remove.
15773 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
15774 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
15775 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
15776 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15777 * config/arm/arm.h (TARGET_VERSION): Remove.
15778 * config/arm/coff.h (TARGET_VERSION): Remove.
15779 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
15780 * config/arm/elf.h (TARGET_VERSION): Remove.
15781 * config/arm/freebsd.h (TARGET_VERSION): Remove.
15782 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
15783 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
15784 * config/arm/pe.h (TARGET_VERSION): Remove.
15785 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
15786 * config/arm/semi.h (TARGET_VERSION): Remove.
15787 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
15788 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
15789 * config/arm/vxworks.h (TARGET_VERSION): Remove.
15790 * config/avr/avr.h (TARGET_VERSION): Remove.
15791 * config/bfin/bfin.h (TARGET_VERSION): Remove.
15792 * config/fr30/fr30.h (TARGET_VERSION): Remove.
15793 * config/frv/frv.h (TARGET_VERSION): Remove.
15794 * config/h8300/h8300.h (TARGET_VERSION): Remove.
15795 * config/i386/cygwin.h (TARGET_VERSION): Remove.
15796 * config/i386/darwin.h (TARGET_VERSION): Remove.
15797 * config/i386/darwin64.h (TARGET_VERSION): Remove.
15798 * config/i386/djgpp.h (TARGET_VERSION): Remove.
15799 * config/i386/freebsd.h (TARGET_VERSION): Remove.
15800 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
15801 * config/i386/gnu.h (TARGET_VERSION): Remove.
15802 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
15803 * config/i386/i386elf.h (TARGET_VERSION): Remove.
15804 * config/i386/linux.h (TARGET_VERSION): Remove.
15805 * config/i386/linux64.h (TARGET_VERSION): Remove.
15806 * config/i386/lynx.h (TARGET_VERSION): Remove.
15807 * config/i386/mingw32.h (TARGET_VERSION): Remove.
15808 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
15809 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
15810 * config/i386/netware.h (TARGET_VERSION): Remove.
15811 * config/i386/nto.h (TARGET_VERSION): Remove.
15812 * config/i386/openbsd.h (TARGET_VERSION): Remove.
15813 * config/i386/vxworks.h (TARGET_VERSION): Remove.
15814 * config/ia64/elf.h (TARGET_VERSION): Remove.
15815 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
15816 * config/ia64/hpux.h (TARGET_VERSION): Remove.
15817 * config/ia64/linux.h (TARGET_VERSION): Remove.
15818 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
15819 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
15820 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15821 * config/lm32/lm32.h (TARGET_VERSION): Remove.
15822 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
15823 * config/m32c/m32c.h (TARGET_VERSION): Remove.
15824 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
15825 * config/m32r/m32r.h (TARGET_VERSION): Remove.
15826 * config/m68k/linux.h (TARGET_VERSION): Remove.
15827 * config/m68k/m68k.h (TARGET_VERSION): Remove.
15828 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
15829 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
15830 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
15831 * config/mep/mep.h (TARGET_VERSION): Remove.
15832 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
15833 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
15834 * config/mips/iris6.h (MACHINE_TYPE): Remove.
15835 * config/mips/linux.h (TARGET_VERSION): Remove.
15836 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
15837 * config/mips/vxworks.h (TARGET_VERSION): Remove.
15838 * config/mmix/mmix.h (TARGET_VERSION): Remove.
15839 * config/mn10300/linux.h (TARGET_VERSION): Remove.
15840 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
15841 * config/pa/pa.h (TARGET_VERSION): Remove.
15842 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
15843 * config/picochip/picochip.h (TARGET_VERSION): Remove.
15844 * config/rs6000/aix.h (TARGET_VERSION): Remove.
15845 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
15846 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
15847 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
15848 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
15849 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
15850 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
15851 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
15852 * config/rs6000/linux.h (TARGET_VERSION): Remove.
15853 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
15854 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
15855 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
15856 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
15857 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
15858 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
15859 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
15860 * config/s390/linux.h (TARGET_VERSION): Remove.
15861 * config/s390/s390.h (TARGET_VERSION): Remove.
15862 * config/s390/tpf.h (TARGET_VERSION): Remove.
15863 * config/score/score.h (TARGET_VERSION): Remove.
15864 * config/sh/linux.h (TARGET_VERSION): Remove.
15865 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
15866 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
15867 * config/sh/sh.h (TARGET_VERSION): Remove.
15868 * config/sh/sh64.h (TARGET_VERSION): Remove.
15869 * config/sh/superh.h (TARGET_VERSION): Remove.
15870 * config/sh/vxworks.h (TARGET_VERSION): Remove.
15871 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
15872 * config/sparc/linux.h (TARGET_VERSION): Remove.
15873 * config/sparc/linux64.h (TARGET_VERSION): Remove.
15874 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
15875 TARGET_NAME32, TARGET_NAME): Remove.
15876 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
15877 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
15878 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
15879 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
15880 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
15881 * config/spu/spu.h (TARGET_VERSION): Remove.
15882 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
15883 * config/v850/v850.h (TARGET_VERSION): Remove.
15884 * config/vax/linux.h (TARGET_VERSION): Remove.
15885 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
15886 * config/xtensa/elf.h (TARGET_VERSION): Remove.
15887 * config/xtensa/linux.h (TARGET_VERSION): Remove.
15888
15889 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
15890
15891 PR target/48142
15892 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
15893 frame-related from frame-unrelated adjustments to the stack pointer.
15894
15895 2011-03-31 Jakub Jelinek <jakub@redhat.com>
15896
15897 * common.opt (fdebug-types-section): Move earlier.
15898 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
15899
15900 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
15901
15902 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
15903 var.
15904
15905 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
15906
15907 * tree.h (CASE_CHAIN): Define.
15908 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
15909 (gimple_redirect_edge_and_branch): Likewise.
15910
15911 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15912
15913 PR middle-end/48367
15914 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
15915 calculation.
15916
15917 2011-03-30 Jeff Law <law@redhat.com>
15918
15919 * PR bootstrap/48371
15920 * reload1.c (reload): Fix botch in last change.
15921
15922 * reload.h (struct reload): Fix typo introduced in last change.
15923
15924 2011-03-30 Joseph Myers <joseph@codesourcery.com>
15925
15926 * config/arm/arm.opt (mhard-float, msoft-float): Mark
15927 Undocumented. Remove help text.
15928 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
15929 -mhard-float.
15930
15931 2011-03-30 Joseph Myers <joseph@codesourcery.com>
15932
15933 * doc/options.texi (NegativeAlias): Document.
15934 (Alias): Mention NegativeAlias.
15935 * opt-functions.awk: Handle NegativeAlias.
15936 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
15937 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
15938 * opts.h (CL_NEGATIVE_ALIAS): Define.
15939 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
15940 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
15941 OPT_mspe_.
15942 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
15943 Alias entries.
15944 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15945 mno-spe and mno-isel instead of mspe=no and -misel=no.
15946
15947 2011-03-29 Mark Wielaard <mjw@redhat.com>
15948
15949 * common.opt (fdebug-types-section): New flag.
15950 * doc/invoke.texi: Document new -fno-debug-types-section flag.
15951 * dwarf2out.c (use_debug_types): New define.
15952 (struct die_struct): Mark die_id with GTY desc use_debug_types.
15953 (print_die): Guard output of type unit signatures using
15954 use_debug_types.
15955 (build_abbrev_table): Replace assert of dwarf_version >= 4
15956 with assert on use_debug_types.
15957 (size_of_die): Likewise.
15958 (unmark_dies): Likewise.
15959 (value_format): Decide AT_ref_external form on use_debug_types.
15960 (output_die): Replace dwarf_version version check guard with
15961 use_debug_types where appropriate.
15962 (modified_type_die): Likewise.
15963 (gen_reference_type_die): Likewise.
15964 (dwarf2out_start_source_file): Likewise.
15965 (dwarf2out_end_source_file): Likewise.
15966 (prune_unused_types_walk_attribs): Likewise.
15967 (dwarf2out_finish): Likewise.
15968
15969 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
15970
15971 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
15972
15973 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
15974
15975 PR rtl-optimization/48332
15976 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
15977 mode of input operand N and modeN to its actual mode.
15978
15979 2011-03-30 Jeff Law <law@redhat.com>
15980
15981 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
15982 define accessor macro.
15983 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
15984 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
15985 (reg_equiv_init): Likewise.
15986 (reg_equivs_size): New variable.
15987 (reg_equiv_init_size): Remove.
15988 (allocate_initial_values): Move prototype to here from....
15989 * integrate.h (allocate_initial_values): Remove prototype.
15990 * integrate.c: Include reload.h.
15991 (allocate_initial_values): Corresponding changes.
15992 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
15993 (fix_reg_equiv_init, no_equiv): Corresponding changes.
15994 (update_equiv_regs): Corresponding changes.
15995 (ira): Corresponding changes.
15996 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
15997 (push_secondary_reload): Corresponding changes.
15998 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
15999 (make_memloc, find_reloads_address): Corresponding changes.
16000 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
16001 (find_reloads_address_1): Corresponding changes.
16002 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
16003 (refers_to_regno_for_reload_p): Corresponding changes.
16004 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
16005 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
16006 * reload1.c: Include ggc.h.
16007 (grow_reg_equivs): New function.
16008 (replace_pseudos_in, reload): Corresponding changes.
16009 (calculate_needs_all_insns, alter_regs): Corresponding changes.
16010 (eliminate_regs_1, elimination_effects): Corresponding changes.
16011 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
16012 (delete_output_reload): Likewise.
16013 * caller-save.c (mark_referenced_regs): Corresponding changes.
16014 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
16015 * frv/predicates.md (frv_load_operand): Corresponding changes.
16016 * microblaze/microblaze.c (double_memory_operand): Corresponding
16017 changes.
16018 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
16019 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
16020 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
16021 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
16022 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
16023 changes.
16024 * pa/pa.c (emit_move_sequence): Corresponding changes.
16025 * vax/vax.c (nonindexed_address_p): Corresponding changes.
16026
16027 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16028
16029 PR target/47551
16030 * config/arm/arm.c (coproc_secondary_reload_class): Handle
16031 structure modes. Don't check neon_vector_mem_operand for
16032 vector or structure modes.
16033
16034 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
16035 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16036
16037 PR target/43590
16038 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
16039 operand 1 and reshuffle the operands to match.
16040 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
16041
16042 2011-03-30 Christian Schüler <cschueler@gmx.de>
16043
16044 PR driver/48208
16045 * config/c.opt (F): Added 'Driver' to -F option.
16046
16047 PR driver/48260
16048 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
16049 handler function.
16050 * config/darwin.opt: Added '-arch' option.
16051
16052 2011-03-30 Nick Clifton <nickc@redhat.com>
16053
16054 * config/rx/rx.md: Add peepholes and patterns to combine
16055 extending loads and simple arithmetic instructions.
16056 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
16057 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
16058 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
16059 modes to use pre-decrement and post-increment addressing.
16060 (rx_is_restricted_memory_address): Add range checking of REG+INT
16061 addresses.
16062 (rx_print_operand): Add support for %Q. Fix handling of %Q.
16063 (rx_memory_move_cost): Adjust cost of stores.
16064 (rx_adjust_insn_length): New function.
16065
16066 2011-03-30 Jakub Jelinek <jakub@redhat.com>
16067
16068 PR c/48305
16069 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16070 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
16071 matching arg00/arg01 types.
16072
16073 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
16074
16075 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
16076 last_location to UNKNOWN_LOCATION.
16077
16078 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
16079
16080 PR target/48349
16081 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
16082 FLOAT_SSE_REGS.
16083
16084 2011-03-30 Joseph Myers <joseph@codesourcery.com>
16085 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16086
16087 PR bootstrap/48337
16088 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
16089 Init(PROCESSOR_V7).
16090 (sparc_cpu): Likewise.
16091 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
16092 PROCESSOR_V7.
16093
16094 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16095
16096 PR target/48336
16097 PR middle-end/48342
16098 PR rtl-optimization/48345
16099 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
16100 hard regs for given mode from profitable regs when doing secondary
16101 allocation.
16102
16103 2011-03-29 Jeff Law <law@redhat.com>
16104
16105 PR bootstrap/48327
16106 * tree-ssa-threadupdate.c (struct redirection_data): Remove
16107 do_not_duplicate field.
16108 (lookup_redirection_data): Corresponding changes.
16109 (create_duplicates): Always create a template block.
16110 (redirect_edges): Remove code which reused the original block
16111 when it was going to become unreachable code.
16112 (thread_block): Don't set do_not_duplicate field.
16113
16114 2011-03-29 Joseph Myers <joseph@codesourcery.com>
16115
16116 * lto-opts.c (register_user_option_p, lto_register_user_option):
16117 Make type argument unsigned.
16118 * lto-streamer.h (lto_register_user_option): Make type argument
16119 unsigned.
16120 * opth-gen.awk: Make CL_* macros unsigned.
16121 * opts-common.c (find_opt): Make lang_mask argument unsigned.
16122 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
16123 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
16124 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
16125 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
16126 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
16127 (find_opt): Make lang_mask argument unsigned.
16128
16129 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16130
16131 PR rtl-optimization/48331
16132 PR rtl-optimization/48334
16133 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
16134 for any used algorithm.
16135
16136 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
16137
16138 * ira-conflicts.c (build_object_conflicts): Add unused attribute
16139 to parent_max.
16140
16141 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
16142
16143 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
16144 (alpha_option_override): Don't set alpha_sr_alias_set.
16145 (emit_frame_store_1): Use gen_frame_mem rather than calling
16146 set_mem_alias_set.
16147 (alpha_expand_epilogue): Ditto.
16148
16149 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
16150
16151 PR tree-optimization/48290
16152 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
16153 vectorization, check that relevant phis in the basic block after
16154 the inner loop are really inner loop's exit phis.
16155
16156 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
16157
16158 PR debug/48190
16159 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
16160 (cached_dw_loc_list_def): New structure.
16161 (cached_dw_loc_list): New typedef.
16162 (cached_dw_loc_list_table): New variable.
16163 (cached_dw_loc_list_table_hash): New function.
16164 (cached_dw_loc_list_table_eq): Likewise.
16165 (add_location_or_const_value_attribute): Take a bool cache_p.
16166 Cache the list when the parameter is true.
16167 (gen_formal_parameter_die): Update caller.
16168 (gen_variable_die): Likewise.
16169 (dwarf2out_finish): Likewise.
16170 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
16171 while generating debug info for the decl.
16172 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
16173 (dwarf2out_init): Initialize cached_dw_loc_list_table.
16174 (resolve_addr): Cache the result of resolving a chain of
16175 location lists.
16176
16177 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
16178
16179 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
16180 conflict object hard regset nodes have intersecting hard reg sets.
16181
16182 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
16183 after regstat_init_n_sets_and_refs.
16184
16185 * ira.c: Add more comments at the top.
16186 (setup_stack_reg_pressure_class, setup_pressure_classes):
16187 Add comments how we compute the register pressure classes.
16188 (setup_allocno_and_important_classes): Add more comments.
16189 (setup_class_translate_array, reorder_important_classes)
16190 (setup_reg_class_relations): Add comments.
16191
16192 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
16193 start of the file.
16194
16195 * ira-color.c: Add 2011 to the Copyright line.
16196 (assign_hard_reg): Add more comments.
16197 (improve_allocation): Ditto.
16198
16199 * ira-costs.c: Add 2011 to the Copyright line.
16200 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
16201 comments.
16202 (setup_regno_cost_classes_by_mode): Ditto.
16203
16204 Initial patches from ira-improv branch:
16205
16206 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16207
16208 * ira-build.c (ira_create_object): Remove initialization of
16209 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
16210 (ira_create_allocno): Remove initialization of
16211 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
16212 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
16213 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16214 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
16215 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
16216 Initialize ALLOCNO_ADD_DATA.
16217 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
16218 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
16219 ALLOCNO_REG.
16220 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
16221 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
16222
16223 * ira.c (ira_reallocate): Remove.
16224 (setup_pressure_classes): Call
16225 ira_init_register_move_cost_if_necessary. Use
16226 ira_register_move_cost instead of ira_get_register_move_cost.
16227 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
16228 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
16229
16230 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
16231 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
16232 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
16233 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
16234 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
16235 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
16236 Fix formatting.
16237 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
16238 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16239 (struct allocno_color_data): New.
16240 (allocno_color_data_t): New typedef.
16241 (allocno_color_data): New definition.
16242 (ALLOCNO_COLOR_DATA): New macro.
16243 (struct object_color_data): New.
16244 (object_color_data_t): New typedef.
16245 (object_color_data): New definition.
16246 (OBJECT_COLOR_DATA): New macro.
16247 (update_copy_costs, calculate_allocno_spill_cost): Call
16248 ira_init_register_move_cost_if_necessary. Use
16249 ira_register_move_cost instead of ira_get_register_move_cost.
16250 (move_spill_restore, update_curr_costs): Ditto.
16251 (allocno_spill_priority): Make it inline.
16252 (color_pass): Allocate and free allocno_color_dat and object_color_data.
16253 (struct coalesce_data, coalesce_data_t): New.
16254 (allocno_coalesce_data): New definition.
16255 (ALLOCNO_COALESCE_DATA): New macro.
16256 (merge_allocnos, coalesced_allocno_conflict_p): Use
16257 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
16258 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
16259 (coalesce_allocnos): Ditto.
16260 (setup_coalesced_allocno_costs_and_nums): Ditto.
16261 (collect_spilled_coalesced_allocnos): Ditto.
16262 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
16263 (setup_slot_coalesced_allocno_live_ranges): Ditto.
16264 (coalesce_spill_slots): Ditto.
16265 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
16266 free allocno_coalesce_data.
16267
16268 * ira-conflicts.c: Fix formatting.
16269 (process_regs_for_copy): Call
16270 ira_init_register_move_cost_if_necessary. Use
16271 ira_register_move_cost instead of ira_get_register_move_cost.
16272 (build_object_conflicts): Optimize.
16273
16274 * ira-costs.c (record_reg_classes): Optimize. Call
16275 ira_init_register_move_cost_if_necessary. Use
16276 ira_register_move_cost, ira_may_move_in_cost, and
16277 ira_may_move_out_cost instead of ira_get_register_move_cost and
16278 ira_get_may_move_cost.
16279 (record_address_regs): Ditto.
16280 (scan_one_insn): Optimize.
16281 (find_costs_and_classes): Optimize.
16282 (process_bb_node_for_hard_reg_moves): Call
16283 ira_init_register_move_cost_if_necessary. Use
16284 ira_register_move_cost instead of ira_get_register_move_cost.
16285
16286 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
16287 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
16288 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
16289 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
16290 definitions.
16291 (ira_initiate_emit_data, ira_finish_emit_data)
16292 (create_new_allocno): New functions.
16293 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
16294 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
16295 Use ira_register_move_cost instead of ira_get_register_move_cost.
16296
16297 * ira-int.h: Fix some comments.
16298 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
16299 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
16300 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
16301 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
16302 add_data.
16303 (struct ira_allocno): Make mode and aclass a bitfield. Move other
16304 bitfield after mode. Make hard_regno a short int. Make
16305 hard_regno short. Remove first_coalesced_allocno and
16306 next_coalesced_allocno. Move mem_optimized_dest_p,
16307 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
16308 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
16309 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
16310 temp, colorable_p. Add new member add_data.
16311 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
16312 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
16313 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
16314 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
16315 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
16316 (ALLOCNO_ADD_DATA): New macro.
16317 (ira_emit_data_t): New typedef.
16318 (struct ira_emit_data): New. Move mem_optimized_dest_p,
16319 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
16320 from struct ira_allocno.
16321 (ALLOCNO_EMIT_DATA): New macro.
16322 (ira_allocno_emit_data, allocno_emit_reg): New.
16323 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
16324 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
16325 (OBJECT_ADD_DATA): New macro.
16326 (ira_reallocate): Remove.
16327 (ira_initiate_emit_data, ira_finish_emit_data): New.
16328 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
16329 (ira_init_register_move_cost_if_necessary): New.
16330 (ira_object_conflict_iter_next): Merge into
16331 ira_object_conflict_iter_cond.
16332 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
16333
16334 * ira-live.c (process_single_reg_class_operands): Call
16335 ira_init_register_move_cost_if_necessary. Use
16336 ira_register_move_cost instead of ira_get_register_move_cost.
16337
16338 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
16339
16340 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
16341
16342 * ira-costs.c: Fix formatting.
16343 (cost_classes, cost_classes_num): Remove.
16344 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
16345 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
16346 (cost_classes_del, cost_classes_htab): New.
16347 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
16348 (initiate_regno_cost_classes, setup_cost_classes): New.
16349 (setup_regno_cost_classes_by_aclass): New.
16350 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
16351 (record_reg_classes): Use regno_cost_classes instead of
16352 cost_classes. Move checking opposite operand up.
16353 (record_address_regs): Use regno_cost_classes
16354 instead of cost_classes.
16355 (scan_one_insn): Ditto. Use always general register.
16356 (print_allocno_costs): Use regno_cost_classes instead of
16357 cost_classes.
16358 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
16359 (find_costs_and_classes): Set up cost classes for each registers.
16360 Use also their mode for this. Use regno_cost_classes instead of
16361 cost_classes.
16362 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
16363 cost_classes.
16364 (free_ira_costs, ira_init_costs): Don't use cost_classes.
16365 (ira_costs, ira_set_pseudo_classes): Call
16366 initiate_regno_cost_classes and finish_regno_cost_classes.
16367
16368 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
16369
16370 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
16371
16372 * target.def (ira_cover_classes): Remove.
16373
16374 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
16375
16376 * doc/tm.texi.in: Ditto.
16377
16378 * ira-conflicts.c: Remove mentioning cover classes from the file.
16379 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
16380 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
16381
16382 * targhooks.c (default_ira_cover_classes): Remove.
16383
16384 * targhooks.h (default_ira_cover_classes): Ditto.
16385
16386 * haifa-sched.c: Remove mentioning cover classes from the file.
16387 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16388 ira_pressure_classes and ira_pressure_classes_num instead of
16389 ira_reg_class_cover_size and ira_reg_class_cover. Use
16390 sched_regno_pressure_class instead of sched_regno_cover_class.
16391 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
16392 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16393
16394 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
16395 classes from the file.
16396 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
16397 (struct object_hard_regs, struct object_hard_regs_node): New.
16398 (struct ira_object): New members profitable_hard_regs,
16399 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
16400 (struct ira_allocno): Rename cover_class to aclass. Rename
16401 cover_class_cost and updated_cover_class_cost to class_cost and
16402 updated_class_cost. Remove splay_removed_p and
16403 left_conflict_size. Add new members colorable_p.
16404 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
16405 (ALLOCNO_COLORABLE_P): New macro.
16406 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
16407 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
16408 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
16409 (OBJECT_...): Rename parameter C to O.
16410 (OBJECT_PROFITABLE_HARD_REGS): New macro.
16411 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
16412 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
16413 (struct target_ira_int): New members x_ira_max_memory_move_cost,
16414 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
16415 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
16416 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
16417 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
16418 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
16419 x_ira_reg_class_subunion.
16420 (ira_max_memory_move_cost, ira_max_register_move_cost)
16421 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
16422 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
16423 (ira_important_class_nums, ira_reg_class_superunion): New macros.
16424 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
16425 (ira_reg_class_union): Rename to ira_reg_class_subunion.
16426 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16427 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16428 (ira_tune_allocno_costs_and_cover_classes): Rename to
16429 ira_tune_allocno_costs.
16430 (ira_debug_hard_regs_forest): New.
16431 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
16432 (ira_object_conflict_iter_next): Fix comments.
16433 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
16434 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
16435 cover_class to aclass.
16436 (ira_allocate_and_accumulate_costs): Ditto.
16437 (ira_allocate_and_set_or_copy_costs): Ditto.
16438
16439 * opts.c (decode_options): Remove ira_cover_class check.
16440
16441 * ira-color.c: Remove mentioning cover classes from the file. Use
16442 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
16443 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
16444 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16445 (splay-tree.h): Remove include.
16446 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
16447 before copy_freq_compare_func.
16448 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
16449 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
16450 New definitions.
16451 (hard_regs_roots, hard_regs_node_vec): Ditto.
16452 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
16453 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
16454 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
16455 (create_new_object_hard_regs_node): Ditto.
16456 (add_new_object_hard_regs_node_to_forest): Ditto.
16457 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
16458 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
16459 Ditto.
16460 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
16461 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
16462 (remove_unused_object_hard_regs_nodes): Ditto.
16463 (enumerate_object_hard_regs_nodes): Ditto.
16464 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
16465 (object_hard_regs_subnode_t): Ditto.
16466 (struct object_hard_regs_subnode): Ditto.
16467 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
16468 (setup_object_hard_regs_subnode_index): Ditto.
16469 (get_object_hard_regs_subnodes_num): Ditto.
16470 (form_object_hard_regs_nodes_forest): Ditto.
16471 (finish_object_hard_regs_nodes_tree): Ditto.
16472 (finish_object_hard_regs_nodes_forest): Ditto.
16473 (allocnos_have_intersected_live_ranges_p): Rename to
16474 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16475 (pseudos_have_intersected_live_ranges_p): Rename to
16476 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
16477 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
16478 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
16479 (update_copy_costs): Remove assert. Skip cost update if the hard
16480 reg does not belong the class.
16481 (assign_hard_reg): Process only profitable hard regs.
16482 (uncolorable_allocnos_num): Make it scalar.
16483 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
16484 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
16485 and ira_reg_class_max_nregs.
16486 (bucket_allocno_compare_func): Check frequency first.
16487 (sort_bucket): Add compare function as a parameter.
16488 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
16489 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
16490 (push_allocno_to_stack): Rewrite for checking new allocno
16491 colorability.
16492 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
16493 (push_only_colorable): Pass new parameter to sort_bucket.
16494 (push_allocno_to_spill): Remove.
16495 (allocno_spill_priority_compare): Make it inline and rewrite.
16496 (splay_tree_allocate, splay_tree_free): Remove.
16497 (allocno_spill_sort_compare): New function.
16498 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
16499 build and use splay tree. Choose first allocno in uncolorable
16500 allocno bucket to spill. Remove setting spill cost.
16501 (all_conflicting_hard_regs): Remove.
16502 (setup_allocno_available_regs_num): Check only profitable hard
16503 regs. Print info about hard regs nodes.
16504 (setup_allocno_left_conflicts_size): Remove.
16505 (put_allocno_into_bucket): Don't call
16506 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
16507 (improve_allocation): New.
16508 (color_allocnos): Call setup_profitable_hard_regs,
16509 form_object_hard_regs_nodes_forest, improve_allocation,
16510 finish_object_hard_regs_nodes_forest. Setup spill cost.
16511 (print_loop_title): Use pressure classes.
16512 (color_allocnso): Ditto.
16513 (do_coloring): Remove allocation and freeing splay_tree_node_pool
16514 and allocnos_for_spilling.
16515 (ira_sort_regnos_for_alter_reg): Don't setup members
16516 {first,next}_coalesced_allocno.
16517 (color): Remove allocating and freeing removed_splay_allocno_vec.
16518 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
16519 prohibited_class_mode_regs.
16520
16521 * ira-lives.c: Remove mentioning cover classes from the file. Fix
16522 formatting.
16523 (update_allocno_pressure_excess_length): Use pressure classes.
16524 (inc_register_pressure, dec_register_pressure): Check for pressure
16525 class.
16526 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
16527 pressure class. Use ira_reg_class_nregs instead of
16528 ira_reg_class_max_nregs.
16529 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
16530 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
16531 (single_reg_class): Use ira_reg_class_nregs instead of
16532 ira_reg_class_max_nregs.
16533 (process_bb_node_lives): Use pressure classes.
16534
16535 * ira-emit.c: Remove mentioning cover classes from the file. Use
16536 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
16537 (change_loop): Use pressure classes.
16538 (modify_move_list): Call ira_set_allocno_class instead of
16539 ira_set_allocno_cover_class.
16540
16541 * ira-build.c: Remove mentioning cover classes from the file. Use
16542 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
16543 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
16544 ALLOCNO_UPDATED_CLASS_COST instead of
16545 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
16546 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
16547 (ira_create_allocno): Remove initialization of
16548 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
16549 ALLOCNO_COLORABLE_P.
16550 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
16551 Update conflict regs for the objects.
16552 (create_cap_allocno): Remove assert. Don't propagate
16553 ALLOCNO_AVAILABLE_REGS_NUM.
16554 (ira_free_allocno_costs): New function.
16555 (finish_allocno): Change a part of code into call of
16556 ira_free_allocno_costs.
16557 (low_pressure_loop_node_p): Use pressure classes.
16558 (object_range_compare_func): Don't compare classes.
16559 (setup_min_max_conflict_allocno_ids): Ditto.
16560
16561 * loop-invariant.c: Remove mentioning cover classes from the file.
16562 Use ira_pressure_classes and ira_pressure_classes_num instead of
16563 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
16564 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
16565 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16566 Use reg_allocno_class instead of reg_cover_class.
16567 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
16568 STACK_REG_COVER_CLASS.
16569 (get_regno_cover_class): Rename to get_regno_pressure_class.
16570 (move_loop_invariants): Initialize and finalize regstat.
16571
16572 * ira.c: Remove mentioning cover classes from the file. Add
16573 comments about coloring without cover classes. Use ALLOCNO_CLASS
16574 instead of ALLOCNO_COVER_CLASS. Fix formatting.
16575 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
16576 setup_class_subset_and_memory_move_costs.
16577 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
16578 (setup_cover_and_important_classes): Rename to
16579 setup_allocno_and_important_classes.
16580 (setup_class_translate_array): New.
16581 (setup_class_translate): Call it for allocno and pressure classes.
16582 (cover_class_order): Rename to allocno_class_order.
16583 (comp_reg_classes_func): Use ira_allocno_class_translate instead
16584 of ira_class_translate.
16585 (reorder_important_classes): Set up ira_important_class_nums.
16586 (setup_reg_class_relations): Set up ira_reg_class_superunion.
16587 (print_class_cover): Rename to print_classes. Add parameter.
16588 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
16589 Print pressure classes too.
16590 (find_reg_class_closure): Rename to find_reg_classes. Don't call
16591 setup_reg_subclasses.
16592 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16593 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16594 (setup_prohibited_class_mode_regs): Use
16595 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
16596 (clarify_prohibited_class_mode_regs): New function.
16597 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
16598 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
16599 (ira_init_once): Initialize them.
16600 (free_register_move_costs): Process them.
16601 (ira_init): Move calls of find_reg_classes and
16602 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
16603 Call clarify_prohibited_class_mode_regs.
16604 (ira_no_alloc_reg): Remove.
16605 (too_high_register_pressure_p): Use pressure classes.
16606
16607 * sched-deps.c: Remove mentioning cover classes from the file.
16608 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
16609 ira_pressure_classes and ira_pressure_classes_num instead of
16610 ira_reg_class_cover_size and ira_reg_class_cover.
16611 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
16612 sched_regno_pressure_class instead of sched_regno_cover_class.
16613 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
16614 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
16615
16616 * ira.h: Add 2010 to Copyright.
16617 (ira_no_alloc_reg): Remove external.
16618 (struct target_ira): Rename x_ira_hard_regno_cover_class,
16619 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
16620 x_ira_class_translate to x_ira_hard_regno_allocno_class,
16621 x_ira_allocno_classes_num, x_ira_allocno_classes, and
16622 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
16623 x_ira_pressure_classes, x_ira_pressure_class_translate, and
16624 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
16625 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
16626 x_ira_no_alloc_regs.
16627 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
16628 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
16629 ira_allocno_classes_num and ira_allocno_classes.
16630 (ira_class_translate): Rename to ira_allocno_class_translate.
16631 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
16632 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
16633 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
16634 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
16635 (ira_no_alloc_regs): New.
16636
16637 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
16638 classes from the file. Use ALLOCNO_CLASS instead of
16639 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
16640 ALLOCNO_COVER_CLASS_COST.
16641 (regno_cover_class): Rename to regno_aclass.
16642 (record_reg_classes): Use ira_reg_class_subunion instead of
16643 ira_reg_class_union.
16644 (record_address_regs): Check overflow.
16645 (scan_one_insn): Ditto.
16646 (print_allocno_costs): Print total mem cost fore regional allocation.
16647 (print_pseudo_costs): Use REG_N_REFS.
16648 (find_costs_and_classes): Use classes intersected with them on the
16649 1st pass. Check overflow. Use ira_reg_class_subunion instead of
16650 ira_reg_class_union. Use ira_allocno_class_translate and
16651 regno_aclass instead of ira_class_translate and regno_cover_class.
16652 Modify code for finding regno_aclass. Setup preferred classes for
16653 the next pass.
16654 (setup_allocno_cover_class_and_costs): Rename to
16655 setup_allocno_class_and_costs. Use regno_aclass instead of
16656 regno_cover_class. Use ira_set_allocno_class instead of
16657 ira_set_allocno_cover_class.
16658 (init_costs, finish_costs): Use regno_aclass instead of
16659 regno_cover_class.
16660 (ira_costs): Use setup_allocno_class_and_costs instead of
16661 setup_allocno_cover_class_and_costs.
16662 (ira_tune_allocno_costs_and_cover_classes): Rename to
16663 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
16664 by processing objects. Use ira_reg_class_max_nregs instead of
16665 ira_reg_class_nregs.
16666
16667 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
16668
16669 * sched-int.h: Remove mentioning cover classes from the file.
16670 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
16671
16672 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
16673 classes from the file.
16674 (struct reg_pref): Rename coverclass into allocnoclass.
16675 (reg_cover_class): Rename to reg_allocno_class.
16676
16677 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
16678
16679 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
16680
16681 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
16682
16683 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
16684
16685 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
16686
16687 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
16688
16689 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
16690
16691 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
16692
16693 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
16694
16695 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
16696
16697 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
16698 (i386_ira_cover_classes): Ditto.
16699
16700 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
16701
16702 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
16703
16704 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
16705
16706 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
16707
16708 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
16709
16710 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
16711
16712 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
16713 (mips_ira_cover_classes): Ditto.
16714
16715 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
16716
16717 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
16718
16719 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
16720
16721 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
16722
16723 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
16724
16725 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
16726 (IRA_COVER_CLASSES_VSX): Ditto.
16727
16728 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
16729 (rs6000_ira_cover_classes): Ditto.
16730
16731 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
16732
16733 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
16734
16735 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
16736
16737 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
16738
16739 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
16740
16741 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
16742
16743 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
16744
16745 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
16746
16747 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
16748
16749 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
16750
16751 2011-03-29 Jakub Jelinek <jakub@redhat.com>
16752
16753 PR debug/48253
16754 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
16755 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
16756 dw_fde_unlikely_section_end_label, cold_in_std_section,
16757 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
16758 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
16759 fields.
16760 (output_fde): Use dw_fde_second_{begin,end} if second is
16761 true, otherwise dw_fde_{begin,end}.
16762 (output_call_frame_info): Test dw_fde_second_begin != NULL
16763 instead of dw_fde_switched_sections.
16764 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
16765 fields, initialize new fields. Initialize in_std_section
16766 unconditionally from the first partition.
16767 (dwarf2out_end_epilogue): Don't override dw_fde_end when
16768 dw_fde_second_begin is non-NULL.
16769 (dwarf2out_switch_text_section): Stop initializing removed
16770 dw_fde_struct fields, initialize new fields, initialize
16771 also dw_fde_end here. Set dw_fde_switch_cfi even when
16772 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
16773 (struct var_loc_list_def): Add last_before_switch field.
16774 (arange_table, arange_table_allocated, arange_table_in_use,
16775 ARANGE_TABLE_INCREMENT, add_arange): Removed.
16776 (size_of_aranges): Count !in_std_section and !second_in_std_section
16777 hunks in fdes, instead of looking at arange_table_in_use.
16778 (output_aranges): Add aranges_length argument, don't call
16779 size_of_aranges here. Instead of using aranges_table*
16780 emit ranges for fdes when !in_std_section resp.
16781 !second_in_std_section.
16782 (dw_loc_list): Break ranges crossing section switch.
16783 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
16784 use dw_fde_second_end instead of dw_fde_end as end of last range.
16785 (gen_subprogram_die): Don't call add_arange. Use
16786 dw_fde_{begin,end} for first partition and if switched
16787 section dw_fde_second_{begin,end} for the second.
16788 (var_location_switch_text_section_1,
16789 var_location_switch_text_section): New functions.
16790 (dwarf2out_begin_function): Initialize cold_text_section even
16791 when function_section () isn't text_section.
16792 (prune_unused_types): Don't walk arange_table.
16793 (dwarf2out_finish): Don't needlessly test
16794 flag_reorder_blocks_and_partition when testing cold_text_section_used.
16795 If info_section_emitted, call size_of_aranges and if it indicates
16796 non-empty .debug_aranges, call output_aranges with the computed
16797 size. Stop using removed dw_fde_struct fields, use
16798 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
16799 for second.
16800
16801 PR debug/48203
16802 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
16803 create ENTRY_VALUE if incoming or address of incoming's MEM
16804 is a hard REG.
16805 * dwarf2out.c (mem_loc_descriptor): Don't emit
16806 DW_OP_GNU_entry_value of DW_OP_fbreg.
16807 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
16808 on ENTRY_VALUE is able to find the canonical parameter VALUE.
16809 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
16810 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
16811 ENTRY_VALUE_EXPs.
16812 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
16813 is a REG_P or MEM_P with REG_P address, compute hash directly
16814 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
16815 (preserve_only_constants): Don't clear VALUES forwaring
16816 ENTRY_VALUE to some other VALUE.
16817
16818 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
16819
16820 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
16821 instead of GEN_INT.
16822
16823 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16824
16825 * cfgexpand.c (expand_gimple_cond): Always set the source location and
16826 block before expanding the statement.
16827 (expand_gimple_stmt_1): Likewise. Set them here...
16828 (expand_gimple_stmt): ...and not here. Tidy.
16829 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
16830 unknown.
16831
16832 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16833
16834 * Makefile.in: New rule for cprop.o.
16835 * gcse.c: Move constant/copy propagation to cprop.c.
16836 (compute_local_properties): Only handle expression tables.
16837 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
16838 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
16839 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
16840 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
16841 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
16842 compute_cprop_data, find_used_regs, try_replace_reg,
16843 find_avail_set, cprop_jump, constprop_register, cprop_insn,
16844 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
16845 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
16846 find_bypass_set, reg_killed_on_edge, bypass_block,
16847 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
16848 execute_rtl_cprop, pass_rtl_cprop): Move to...
16849 * cprop.c: ...here. New file, constant/copy propagation for RTL
16850 moved from gcse.c to here with minor cleanups in duplicated code.
16851
16852 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
16853
16854 * config/i386/i386.c (flag_opts): Fix a typo in
16855 -mavx256-split-unaligned-store.
16856
16857 2011-03-28 Anatoly Sokolov <aesok@post.ru>
16858
16859 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16860 LIBCALL_VALUE): Remove macros.
16861 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16862 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16863 (h8300_function_value, h8300_libcall_value,
16864 h8300_function_value_regno_p): New functions.
16865
16866 2011-03-28 Anatoly Sokolov <aesok@post.ru>
16867
16868 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
16869
16870 2011-03-28 Jeff Law <law@redhat.com>
16871
16872 * tree-ssa-threadupdate.c (redirect_edges): Call
16873 create_edge_and_update_destination_phis as needed.
16874 (create_edge_and_update_destination_phis): Accept new BB argument.
16875 All callers updated.
16876 (thread_block): Do not update the profile when threading around
16877 intermediate blocks.
16878 (thread_single_edge): Likewise.
16879 (determine_bb_domination_status): If BB is not a successor of the
16880 loop header, return NONDOMINATING.
16881 (register_jump_thread): Note when we register a jump thread around
16882 an intermediate block.
16883 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
16884 (thread_across_edge): Use it.
16885
16886 2011-03-28 Tristan Gingold <gingold@adacore.com>
16887
16888 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
16889 when for_return is 2.
16890
16891 2011-03-28 Jeff Law <law@redhat.com>
16892
16893 * var-tracking.c (canonicalize_values_mark): Delete unused
16894 lhs assignment.
16895 (canonicalize_values_star, set_variable_part): Likewise.
16896 (clobber_variable_part, delete_variable_part): Likewise.
16897
16898 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
16899
16900 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
16901
16902 2011-03-28 Martin Jambor <mjambor@suse.cz>
16903
16904 * tree-inline.c (expand_call_inline): Do not check that destination
16905 node is analyzed.
16906 (optimize_inline_calls): Assert that destination node is analyzed.
16907 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
16908 not call tree_lowering_passes.
16909 * cgraph.h (cgraph_analyze_function): Declare.
16910 * cgraphunit.c (cgraph_analyze_function): Make public.
16911
16912 2011-03-28 Joseph Myers <joseph@codesourcery.com>
16913
16914 * config/sparc/sparc-opts.h: New.
16915 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
16916 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
16917 (sparc_option_override): Store processor_type enumeration rather
16918 than string in cpu_default. Remove name and enumeration from
16919 cpu_table. Directly default -mcpu then default -mtune from -mcpu
16920 without using sparc_select. Use target_flags_explicit instead of
16921 fpu_option_set.
16922 * config/sparc/sparc.h (enum processor_type): Move to
16923 sparc-opts.h.
16924 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
16925 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
16926 HeaderInclude entry.
16927 (mcpu=, mtune=): Use Var and Enum.
16928 (sparc_processor_type): New Enum and EnumValue entries.
16929
16930 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16931 Iain Sandoe <iains@gcc.gnu.org>
16932
16933 PR target/48245
16934 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
16935
16936 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
16937
16938 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
16939 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
16940 Insert new statements at it in lieu of STMT.
16941 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
16942 * tree-vect-stmts.c (vectorizable_store): Likewise.
16943 (vectorizable_load): Likewise.
16944
16945 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
16946
16947 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
16948 (divtf3): Ditto.
16949 (multf3): Ditto.
16950 (subtf3): Ditto.
16951
16952 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16953
16954 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
16955 unaligned 256bit load/store.
16956 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
16957 (*avx_movdqu<avxmodesuffix>): Likewise.
16958
16959 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16960
16961 PR target/48288
16962 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
16963 * config/pa/pa.md (iordi3): Use new predicate in expander.
16964 (iorsi3): Likewise.
16965
16966 2011-03-27 Anatoly Sokolov <aesok@post.ru>
16967
16968 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
16969 FUNCTION_VALUE_REGNO_P): Remove macros.
16970 * config/mips/mips-protos.h (mips_function_value): Remove.
16971 * config/mips/mips.c (mips_function_value): Rename to...
16972 (mips_function_value_1): ... this. Make static. Handle receiving
16973 the function type in 'fn_decl_or_type' argument.
16974 (mips_function_value, mips_libcall_value,
16975 mips_function_value_regno_p): New function.
16976 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16977 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16978
16979 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
16980
16981 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
16982 and -mavx256-split-unaligned-store.
16983 (ix86_option_override_internal): Split 32-byte AVX unaligned
16984 load/store by default.
16985 (ix86_avx256_split_vector_move_misalign): New.
16986 (ix86_expand_vector_move_misalign): Use it.
16987
16988 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
16989 -mavx256-split-unaligned-store.
16990
16991 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
16992 256bit load/store. Generate unaligned store on misaligned memory
16993 operand.
16994 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
16995 256bit load/store.
16996 (*avx_movdqu<avxmodesuffix>): Likewise.
16997
16998 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
16999 -mavx256-split-unaligned-store.
17000
17001 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17002
17003 PR target/38598
17004 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
17005 Update commentary.
17006
17007 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
17008
17009 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
17010 opno arguments with an expand_operand. Use create_input_operand.
17011 (mips_prepare_builtin_target): Delete.
17012 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
17013 functions.
17014 (mips_expand_builtin_direct): Use create_output_operand and
17015 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
17016 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
17017 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
17018
17019 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
17020
17021 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
17022 function.
17023 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17024
17025 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
17026
17027 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
17028 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
17029 basic blocks and call commit_edge_insertions directly.
17030 (fixup_abnormal_edges): Move from here to...
17031 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
17032 on the edges and return whether some have actually been inserted.
17033 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
17034 compensation code.
17035
17036 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
17037
17038 PR rtl-optimization/48144
17039 * sel-sched-ir.c (merge_history_vect): Factor out from ...
17040 (merge_expr_data): ... here.
17041 (av_set_intersect): Rename to av_set_code_motion_filter.
17042 Update all callers. Call merge_history_vect when an expression
17043 is found in both sets.
17044 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
17045
17046 2011-03-26 Alan Modra <amodra@gmail.com>
17047
17048 * config/rs6000/predicates.md (word_offset_memref_op): Handle
17049 cmodel medium addresses.
17050 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
17051 64-bit gpr loads and stores.
17052 (rs6000_secondary_reload_ppc64): New function.
17053 * config/rs6000/rs6000-protos.h: Declare it.
17054 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
17055
17056 2011-03-26 Alan Modra <amodra@gmail.com>
17057
17058 PR target/47487
17059 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
17060 GNU Go in traceback table.
17061
17062 2011-03-25 Richard Henderson <rth@redhat.com>
17063
17064 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
17065 if there are exactly 6 operands.
17066 (set_storage_via_setmem): Similarly.
17067
17068 2011-03-25 Kai Tietz <ktietz@redhat.com>
17069
17070 * collect2.c (write_c_file_stat): Handle backslash
17071 as right-hand directory separator.
17072 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
17073 checking just for slash.
17074 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
17075 instead of checking for trailing slash.
17076 * gcc.c (record_temp_file): Use filename_cmp instead
17077 of strcmp.
17078 (do_spec_1): Likewise.
17079 (replace_outfile_spec_function): Likewise.
17080 (is_directory): Use filename_ncmp instead of strncmp.
17081 (print_multilib_info): Likewise.
17082 * gcov.c (find_source): Use filename_cmp instead
17083 instead of strcmp.
17084 (make_gcov_file_name): Fix order of slash/backslash
17085 checks.
17086 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
17087 (add_standard_paths): Likewise.
17088 * mips-tfile.c (saber_stop): Handle backslash.
17089 * prefix.c (update_path): Use filename_ncmp instead of
17090 strncmp.
17091 * profile.c (output_location): Use filename_cmp instead
17092 of strcmp.
17093 * read-md.c (handle_toplevel_file): Handle backslash.
17094 * tlink.c (frob_extension): Likewise.
17095 * tree-cfg.c (same_line_p): Use filename_cmp instead of
17096 strcmp.
17097 * tree-dump.c (dequeue_and_dump): Handle backslash.
17098 * tree.c (get_file_function_name): Likewise.
17099 * gengtype.c (read_input_list): Likewise.
17100 (get_file_realbasename): Likewise.
17101 (get_output_file_with_visibility): Use filename_cmp
17102 instead of strcmp.
17103
17104 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
17105
17106 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
17107 case to VFPv1.
17108
17109 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17110
17111 * fold-const.c (expr_location_or): New function.
17112 (fold_truth_not_expr): Call it.
17113
17114 2011-03-25 Jeff Law <law@redhat.com>
17115
17116 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
17117 va_end.
17118 * c-family/c-common.c (def_fn_type): Likewise.
17119 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
17120 * emit-rtl.c (gen_rtvec): Likewise.
17121 * lto/lto-lang.c (def_fn_type): Likewise.
17122
17123 2011-03-25 Richard Guenther <rguenther@suse.de>
17124
17125 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
17126 also generate copies.
17127 (fini_copy_prop): Handle constant values properly.
17128
17129 2011-03-25 Jakub Jelinek <jakub@redhat.com>
17130
17131 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
17132 mode size instead of bitsize with DWARF2_ADDR_SIZE.
17133 (hash_loc_operands, compare_loc_operands): Handle
17134 DW_OP_GNU_entry_value.
17135
17136 2011-03-25 Kai Tietz <ktietz@redhat.com>
17137
17138 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
17139 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
17140 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
17141 comment and use macro TARGET_64BIT_MS_ABI instead.
17142 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
17143 and change default behavior for 32-bit MS_ABI.
17144 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
17145 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
17146 32-bit, too.
17147 (ix86_cfun_abi): Likewise.
17148 (ix86_maybe_switch_abi): Adjust comment.
17149 (init_cumulative_args): Check for bit-ness in MS_ABI case.
17150 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
17151 instead of checking for SYSV_ABI.
17152 (ix86_nsaved_sseregs): Likewise.
17153 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
17154 to 16 bytes.
17155 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
17156 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
17157 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
17158 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
17159 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
17160
17161 2011-03-25 Richard Guenther <rguenther@suse.de>
17162
17163 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
17164 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17165 (verify_gimple): Remove.
17166 * tree-cfg.c (verify_gimple_call): Merge verification
17167 from verify_stmts.
17168 (verify_gimple_phi): Merge verification from verify_stmts.
17169 (verify_gimple_label): New function.
17170 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
17171 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
17172 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
17173 (verify_stmts): Rename to verify_gimple_in_cfg.
17174 (verify_gimple_in_cfg): New function.
17175 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
17176 * tree-ssa.c (verify_ssa): Likewise.
17177 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
17178
17179 2011-03-25 Richard Guenther <rguenther@suse.de>
17180
17181 * passes.c (init_optimization_passes): Add FRE pass after
17182 early SRA.
17183
17184 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
17185 Andrew Stubbs <ams@codesourcery.com>
17186
17187 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
17188 for Cortex-A8.
17189 (arm_movdi_vfp_cortexa8): New pattern.
17190 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
17191 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
17192 instructions when tuning for Cortex-A8. Set attribute "arch".
17193 * config/arm/arm.md: Move include arm-tune.md up a bit.
17194 (define_attr "arch"): Add "onlya8" and "nota8" values.
17195 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
17196
17197 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
17198
17199 PR bootstrap/48282
17200 Revert:
17201 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17202
17203 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17204 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17205 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17206 * passes.c (init_optimization_passes): Move
17207 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17208
17209 2011-03-25 Kai Tietz <ktietz@redhat.com>
17210
17211 * c-typeck.c (comptypes_internal): Replace target
17212 hook call of comp_type_attributes by version in tree.c file.
17213 * gimple.c (gimple_types_compatible_p_1): Likewise.
17214 * tree-ssa.c (useless_type_conversion_p): Likewise.
17215 * tree.c (build_type_attribute_qual_variant): Likewise.
17216 (attribute_value_equal): New static helper function.
17217 (comp_type_attributes): New function.
17218 (merge_attributes): Use attribute_value_equal for comparison.
17219 (attribute_list_contained): Likewise.
17220 * tree.h (comp_type_attributes): New prototype.
17221
17222 2011-03-25 Richard Guenther <rguenther@suse.de>
17223
17224 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
17225 of complex types at -O0.
17226 (verify_gimple_assign_binary): Likewise.
17227 (verify_gimple_assign_ternary): Likewise.
17228
17229 2011-03-24 Mark Wielaard <mjw@redhat.com>
17230
17231 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
17232 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
17233
17234 2011-03-24 Mark Wielaard <mjw@redhat.com>
17235
17236 PR debug/48041
17237 * dwarf2out.c (output_abbrev_section): Only write table when
17238 abbrev_die_table_in_use > 1.
17239
17240 2011-02-24 Richard Henderson <rth@redhat.com>
17241
17242 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
17243 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
17244 (alpha_expand_unaligned_load_words): Use extql.
17245 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
17246 (emit_insxl): Handle all modes for consistency.
17247
17248 2011-02-24 Richard Henderson <rth@redhat.com>
17249
17250 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
17251 (alpha_expand_unaligned_load): Likewise.
17252 (alpha_expand_unaligned_store): Likewise.
17253 (alpha_expand_unaligned_load_words): Likewise.
17254 (alpha_expand_unaligned_store_words): Likewise.
17255 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
17256 (alpha_split_lock_test_and_set_12): Likewise.
17257 (print_operand, alpha_fold_builtin_extxx): Likewise.
17258 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
17259 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
17260 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
17261 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
17262 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
17263 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
17264 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
17265 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
17266 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
17267 (extwl, extll, extql): Similarly.
17268 (inswh, inslh, insqh): Similarly.
17269 (mskbl, mskwl, mskll, mskql): Similarly.
17270 (mskwh, msklh, mskqh): Similarly.
17271
17272 2011-02-24 Richard Henderson <rth@redhat.com>
17273
17274 * config/alpha/alpha.md (attribute isa): Add er, ner.
17275 (attribute enabled): Handle them.
17276 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
17277
17278 2011-02-24 Richard Henderson <rth@redhat.com>
17279
17280 * config/alpha/alpha.md (attribute isa): Add vms.
17281 (attribute enabled): Handle it.
17282 (*movsf): Merge *movsf_{nofix,fix,nofp}.
17283 (*movdf): Merge *movdf_{nofix,fix,nofp}.
17284 (*movtf): Rename from *movtf_internal for consistency.
17285 (*movsi): Merge with *movsi_nt_vms.
17286 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
17287 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
17288 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
17289 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
17290
17291 2011-02-24 Richard Henderson <rth@redhat.com>
17292
17293 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
17294 (extendqisi2, extendhisi2): Likewise.
17295 (extendqidi2): Simplify BWX/non-BWX expansions.
17296 (extendhidi2): Similarly.
17297
17298 2011-02-24 Richard Henderson <rth@redhat.com>
17299
17300 * config/alpha/alpha.md (attribute isa): New.
17301 (attribute enabled): New.
17302 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
17303 (zero_extendqisi2, zero_extendqidi2): Similarly.
17304 (zero_extendhisi2, zero_extendhidi2): Similarly.
17305 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
17306
17307 2011-02-24 Richard Henderson <rth@redhat.com>
17308
17309 * config/alpha/predicates.md (input_operand): Revert last change;
17310 update comment to mention 32-bit VMS rather than Windows.
17311
17312 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17313
17314 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
17315 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
17316 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
17317 * passes.c (init_optimization_passes): Move
17318 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
17319
17320 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17321
17322 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
17323
17324 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
17325
17326 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
17327 correctly.
17328
17329 2011-03-24 Jakub Jelinek <jakub@redhat.com>
17330
17331 PR debug/48204
17332 * simplify-rtx.c (simplify_const_unary_operation): Call
17333 real_convert when changing mode class with FLOAT_EXTEND.
17334
17335 2011-03-24 Nick Clifton <nickc@redhat.com>
17336
17337 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
17338 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
17339 * config/rx/rx.c (rx_option_override): Set align_jumps,
17340 align_loops and align_labels if not set by the user.
17341 (rx_align_for_label): New function.
17342 (rx_max_skip_for_label): New function.
17343 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
17344 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
17345 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
17346 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
17347 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
17348
17349 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17350
17351 PR rtl-optimization/48263
17352 * optabs.c (expand_binop_directly): Reinstate convert_modes code
17353 and original commutative_p handling. Use maybe_gen_insn.
17354
17355 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17356
17357 * reload.c (find_reloads_subreg_address): Add address_reloaded
17358 parameter and return true there if the full address has been
17359 reloaded.
17360 (find_reloads_toplev): Pass address_reloaded flag.
17361 (find_reloads_address_1): Don't use address_reloaded parameter.
17362
17363 2011-03-24 Jeff Law <law@redhat.com>
17364
17365 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
17366 unused variable "ann".
17367 (remove_unused_locals): Likewise.
17368
17369 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
17370 statement.
17371
17372 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
17373 after it is freed.
17374
17375 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17376
17377 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
17378 for invalid symbolic addresses.
17379 (s390_secondary_reload): Don't use s390_check_symref_alignment for
17380 larl operands.
17381
17382 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17383
17384 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
17385 the argument in calls to fold_truth_not_expr.
17386
17387 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17388
17389 * tree.c (record_node_allocation_statistics): New function.
17390 (make_node_stat, copy_node_stat, build_string): Call it.
17391 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
17392 (build1_stat, build_omp_clause): Likewise.
17393
17394 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17395
17396 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
17397 last commit.
17398
17399 2011-03-24 Richard Guenther <rguenther@suse.de>
17400
17401 PR tree-optimization/48271
17402 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
17403 blocks that still exist.
17404
17405 2011-03-24 Richard Guenther <rguenther@suse.de>
17406
17407 PR tree-optimization/48270
17408 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
17409 not free datarefs before ddrs.
17410
17411 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
17412
17413 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
17414 from the address built for a reference with variable offset.
17415
17416 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
17417
17418 PR target/48237
17419 * config/i386/i386.md (*movdf_internal_rex64): Do not split
17420 alternatives that can be handled with movq or movabsq insn.
17421 (*movdf_internal): Disable for !TARGET_64BIT.
17422 (*movdf_internal_nointeger): Ditto.
17423 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
17424
17425 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
17426
17427 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
17428 (FUNCTION_ARG_ADVANCE): Likewise.
17429 * tm.texi.in: Change references to them to hook references.
17430 * tm.texi: Regenerate.
17431 * targhooks.c (default_function_arg): Eliminate check for target macro.
17432 (default_function_incoming_arg): Likewise.
17433 (default_function_arg_advance): Likewise.
17434 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
17435 (function_arg_advance): Likewise.
17436 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
17437
17438 2011-03-24 Richard Guenther <rguenther@suse.de>
17439
17440 PR middle-end/48269
17441 * tree-object-size.c (addr_object_size): Do not double-account
17442 for MEM_REF offsets.
17443
17444 2011-03-24 Diego Novillo <dnovillo@google.com>
17445
17446 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
17447 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
17448 (lto_input_data_block): Move from lto-opts.c. Make extern.
17449 Update all users.
17450 (lto_input_string): Rename from input_string. Make extern.
17451 Update all users.
17452 * lto-streamer-out.c (lto_output_string_with_length): Rename from
17453 output_string_with_length.
17454 Output 0 to indicate a non-NULL string. Update all callers to
17455 not emit 0.
17456 (lto_output_string): Rename from output_string. Make extern.
17457 Update all users.
17458 (lto_output_decl_state_streams): Make extern.
17459 (lto_output_decl_state_refs): Make extern.
17460 * lto-streamer.h (lto_input_string): Declare.
17461 (lto_input_data_block): Declare.
17462 (lto_output_string): Declare.
17463 (lto_output_string_with_length): Declare.
17464 (lto_output_decl_state_streams): Declare.
17465 (lto_output_decl_state_refs): Declare.
17466
17467 2011-03-24 Richard Guenther <rguenther@suse.de>
17468
17469 PR tree-optimization/46562
17470 * tree.c (build_invariant_address): New function.
17471 * tree.h (build_invariant_address): Declare.
17472 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
17473 a renamed function moved ...
17474 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
17475 Take valueization callback parameter.
17476 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
17477 * gimple-fold.h: New file.
17478 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
17479 (ccp_fold, fold_const_aggregate_ref,
17480 fold_ctor_reference, fold_nonarray_ctor_reference,
17481 fold_array_ctor_reference, fold_string_cst_ctor_reference,
17482 get_base_constructor): Move ...
17483 * gimple-fold.c: ... here.
17484 (gimple_fold_stmt_to_constant_1): New function
17485 split out from ccp_fold. Take a valueization callback parameter.
17486 Valueize all operands.
17487 (gimple_fold_stmt_to_constant): New wrapper function.
17488 (fold_const_aggregate_ref_1): New function split out from
17489 fold_const_aggregate_ref. Take a valueization callback parameter.
17490 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
17491 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
17492 invariant POINTER_PLUS_EXPRs to invariant form.
17493 (vn_valueize): New function.
17494 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
17495 * tree-vrp.c (vrp_valueize): New function.
17496 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
17497 to fold statements to constants.
17498 * tree-ssa-pre.c (eliminate): Properly guard propagation of
17499 function declarations.
17500 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
17501 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
17502
17503 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
17504
17505 * config/h8300/predicates.md (jump_address_operand): Fix register
17506 mode check.
17507
17508 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
17509
17510 * doc/invoke.texi (max-stores-to-sink): Document.
17511 * params.h (MAX_STORES_TO_SINK): Define.
17512 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
17513 if either vectorization or if-conversion is disabled.
17514 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
17515 tree-vect-data-refs.c vect_equal_offsets.
17516 (dr_equal_offsets_p): New function.
17517 (find_data_references_in_bb): Remove static.
17518 * tree-data-ref.h (find_data_references_in_bb): Declare.
17519 (dr_equal_offsets_p): Likewise.
17520 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
17521 (vect_drs_dependent_in_basic_block): Update calls to
17522 vect_equal_offsets.
17523 (vect_check_interleaving): Likewise.
17524 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
17525 (cond_if_else_store_replacement): Rename to...
17526 (cond_if_else_store_replacement_1): ... this. Change arguments and
17527 documentation.
17528 (cond_if_else_store_replacement): New function.
17529 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
17530 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
17531
17532 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
17533
17534 PR target/46934
17535 * config/arm/arm.md (casesi): Use the gen_int_mode() function
17536 to subtract lower bound instead of GEN_INT().
17537
17538 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
17539
17540 PR other/48179
17541 PR other/48221
17542 PR other/48234
17543 * doc/extend.texi (Alignment): Move section to match order in TOC.
17544 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
17545 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
17546
17547 2011-03-23 Jeff Law <law@redhat.com>
17548
17549 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
17550 before removing the edge.
17551
17552 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
17553 it may have been freed by redirect_branch_edge or
17554 redirect_edge_succ_nodup.
17555
17556 2011-03-23 Richard Guenther <rguenther@suse.de>
17557
17558 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
17559 (check_va_list_escapes): Likewise.
17560 (check_all_va_list_escapes): Likewise.
17561
17562 2011-03-23 Richard Guenther <rguenther@suse.de>
17563
17564 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
17565 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
17566 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
17567 (alias.o): Likewise.
17568 (ipa-type-escape.o): Remove.
17569 (ipa-struct-reorg.o): Likewise.
17570 (GTFILES): Remove ipa-struct-reorg.c.
17571 * alias.c: Do not include ipa-type-escape.h.
17572 * tree-ssa-alias.c: Likewise.
17573 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
17574 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
17575 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
17576 and ipa-type-escape passes.
17577 * tree-pass.h (pass_ipa_type_escape): Remove.
17578 (pass_ipa_struct_reorg): Likewise.
17579 * ipa-struct-reorg.h: Remove.
17580 * ipa-struct-reorg.c: Likewise.
17581 * ipa-type-escape.h: Likewise.
17582 * ipa-type-escape.c: Likewise.
17583 * doc/invoke.texi (-fipa-struct-reorg): Remove.
17584 (--param struct-reorg-cold-struct-ratio): Likewise.
17585 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17586 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
17587 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
17588
17589 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17590
17591 * config/s390/2084.md: Enable all insn reservations also for z9_ec
17592 cpu attribute value.
17593 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
17594 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
17595 * config/s390/s390.c (processor_flags_table): New constant array.
17596 (s390_handle_arch_option): Remove.
17597 (s390_handle_option): Remove s390_handle_arch_option invocations
17598 and OPT_mwarn_framesize_ handling.
17599 (s390_option_override): Remove s390_handle_arch_option invocation.
17600 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
17601 warnings.
17602 * config/s390/s390.md (cpu attribute): Add z9_ec value.
17603 * config/s390/s390.opt (s390_tune, s390_arch)
17604 (march=): Replace s390_arch_option enum and values with
17605 processor_type. Set variable name to s390_arch. Set
17606 initialization value.
17607 (mtune=): Replace s390_arch_option with processor_type. Set
17608 variable name to s390_tune. Set initialization value.
17609
17610 2011-03-23 Julian Brown <julian@codesourcery.com>
17611
17612 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
17613 accesses which are not naturally aligned.
17614
17615 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17616
17617 PR target/47553
17618 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
17619
17620 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
17621
17622 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
17623 parameter from "int" to "enum insn_code".
17624 (expand_operand_type): New enum.
17625 (expand_operand): New structure.
17626 (create_expand_operand): New function.
17627 (create_fixed_operand, create_output_operand): Likewise
17628 (create_input_operand, create_convert_operand_to): Likewise.
17629 (create_convert_operand_from, create_address_operand): Likewise.
17630 (create_integer_operand): Likewise.
17631 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
17632 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17633 (expand_insn, expand_jump_insn): Likewise.
17634 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
17635 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
17636 (expand_movstr, expand_builtin___clear_cache): Likewise.
17637 (expand_builtin_lock_release): Likewise.
17638 * explow.c (allocate_dynamic_stack_space): Likewise.
17639 (probe_stack_range): Likewise. Allow check_stack to FAIL,
17640 and use the default handling in that case.
17641 * expmed.c (check_predicate_volatile_ok): Delete.
17642 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
17643 (emit_cstore): Likewise.
17644 * expr.c (emit_block_move_via_movmem): Likewise.
17645 (set_storage_via_setmem, expand_assignment): Likewise.
17646 (emit_storent_insn, try_casesi): Likewise.
17647 (emit_single_push_insn): Likewise. Allow the expansion to fail.
17648 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
17649 (expand_vec_shift_expr, expand_binop_directly): Likewise.
17650 (expand_twoval_unop, expand_twoval_binop): Likewise.
17651 (expand_unop_direct, emit_indirect_jump): Likewise.
17652 (emit_conditional_move, vector_compare_rtx): Likewise.
17653 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
17654 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
17655 (expand_sync_lock_test_and_set): Likewise.
17656 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
17657 (emit_unop_insn): Likewise.
17658 (expand_copysign_absneg): Change icode to an insn_code.
17659 (create_convert_operand_from_type): New function.
17660 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
17661 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
17662 (expand_insn, expand_jump_insn): Likewise.
17663 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
17664 than const_int_operand for operand 2.
17665
17666 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17667
17668 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
17669 if possible.
17670
17671 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17672
17673 * emit-rtl.c (emit_pattern_before_noloc): New function.
17674 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
17675 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
17676 (emit_pattern_after_noloc): New function.
17677 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
17678 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
17679
17680 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
17681
17682 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
17683 (__ffsDI2): Likewise.
17684
17685 2011-03-22 Richard Henderson <rth@redhat.com>
17686
17687 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
17688 of !TARGET_ABI_OPEN_VMS.
17689 (alpha_trampoline_init, alpha_start_function): Likewise.
17690 (alpha_expand_epilogue, alpha_file_start): Likewise.
17691 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
17692 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
17693 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
17694 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
17695 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
17696
17697 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17698
17699 * config/s390/s390-opts.h: New.
17700 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
17701 s390_arch_flags, s390_warn_framesize, s390_stack_size,
17702 s390_stack_guard): Remove.
17703 (s390_handle_arch_option): Return void. Take enum
17704 s390_arch_option value instead of string and searching array.
17705 (s390_handle_option): Don't assert that global structures are in
17706 use. Access variables via opts pointer. Use error_at. Don't use
17707 sscanf for -mstack-guard= or -mstack-size=. Update call to
17708 s390_handle_arch_option.
17709 (s390_option_override): Update call to s390_handle_arch_option.
17710 (s390_emit_prologue): Use %d format for s390_stack_size in
17711 diagnostic. Use %wd for HOST_WIDE_INT.
17712 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
17713 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
17714 * config/s390/s390.opt (config/s390/s390-opts.h): New
17715 HeaderInclude entry.
17716 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
17717 s390_arch_flags, s390_warn_framesize): New Variable entries.
17718 (s390_arch_option): New Enum and EnumValue entries.
17719 (march=): Use Enum instead of Var.
17720 (mstack-guard=, mstack-size=): Use UInteger and Var.
17721 (mtune=): Use Enum.
17722
17723 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17724
17725 * config/score/score.c (score_handle_option): Don't assert that
17726 global structures are in use. Access target_flags via opts
17727 pointer. Use value of -march= option to determine target_flags
17728 settings.
17729 * config/score/score.opt (march=): Use Enum.
17730 (score_arch): New Enum and EnumValue entries.
17731
17732 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17733
17734 * config/mep/mep.c (option_mtiny_specified): Remove.
17735 (mep_option_override): Move register handling for -mivc2 from
17736 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
17737 instead of option_mtiny_specified.
17738 (mep_handle_option): Access target_flags via opts pointer. Don't
17739 assert that global structures are in use. Defer part of -mivc2
17740 handling and move it to mep_option_override.
17741 * config/mep/mep.opt (IVC2): New Mask entry.
17742 (mivc2): Use Var and Defer instead of Mask.
17743
17744 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17745
17746 * config/v850/v850-opts.h: New.
17747 * config/v850/v850.c (small_memory): Replace with
17748 small_memory_physical_max array. Make that array static const.
17749 (v850_handle_memory_option): Take integer value of argument. Take
17750 gcc_options pointer, option text and location. Return void.
17751 Update for changes to small memory structures.
17752 (v850_handle_option): Access target_flags via opts pointer. Don't
17753 assert that global structures are in use. Update calls to
17754 v850_handle_memory_option.
17755 (v850_encode_data_area): Update references to small memory settings.
17756 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
17757 (enum small_memory_type): Move to v850-opts.h.
17758 * config/v850/v850.opt (config/v850/v850-opts.h): New
17759 HeaderInclude entry.
17760 (small_memory_max): New Variable entry.
17761 (msda): Replace by pair of options msda= and msda-. Use UInteger.
17762 (mtda, mzda): Likewise.
17763
17764 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17765
17766 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
17767 pointer. Don't assert that global structures are in use.
17768
17769 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17770
17771 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
17772 via opts pointer. Don't assert that global structures are in use.
17773
17774 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17775
17776 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
17777 (munix=93): Use Var.
17778 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
17779 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
17780 * config/pa/pa-opts.h: New.
17781 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
17782 (pa_handle_option): Don't assert that global structures are in
17783 use. Access target_flags via opts pointer. Don't handle
17784 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
17785 OPT_munix_98 here.
17786 (pa_option_override): Handle deferred OPT_mfixed_range_.
17787
17788 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17789
17790 * config/mn10300/mn10300-opts.h: New.
17791 * config/mn10300/mn10300.c (mn10300_processor,
17792 mn10300_tune_string): Remove.
17793 (mn10300_handle_option): Don't assert that global structures are
17794 in use. Access mn10300_processor via opts pointer. Don't handle
17795 OPT_mtune_ here.
17796 * config/mn10300/mn10300.h (enum processor_type): Move to
17797 mn10300-opts.h.
17798 (mn10300_processor): Remove.
17799 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
17800 HeaderInclude entry.
17801 (mn10300_processor): New Variable entry.
17802 (mtune=): Use Var.
17803
17804 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17805
17806 * config/microblaze/microblaze.c: Don't include opts.h.
17807 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
17808 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
17809 (mno-clearbss): Use Var and Warn.
17810
17811 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17812
17813 * config/m32r/m32r-opts.h: New.
17814 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
17815 (m32r_handle_option): Don't assert that global structures are in
17816 use. Access target_flags and m32r_cache_flush_func via opts
17817 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
17818 OPT_mno_flush_trap here.
17819 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
17820 include of m32r-opts.h.
17821 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
17822 HeaderInclude entry.
17823 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
17824 (mmodel=): Use Enum and Var.
17825 (m32r_model): New Enum and EnumValue entries.
17826 (mno-flush-trap): Use Var.
17827 (msdata=): Use Enum and Var.
17828 (m32r_sdata): New Enum and EnumValue entries.
17829
17830 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17831
17832 * config/m32c/m32c.c: Don't include opts.h.
17833 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
17834 m32c_handle_option): Remove.
17835 (m32c_option_override): Check global_options_set.x_target_memregs
17836 instead of target_memregs_set.
17837 * config/m32c/m32c.h (target_memregs): Remove.
17838 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
17839 variable.
17840
17841 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17842
17843 * config/iq2000/iq2000-opts.h: New.
17844 * config/iq2000/iq2000.c: Don't include opts.h.
17845 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
17846 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
17847 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
17848 HeaderInclude entry.
17849 (iq2000_tune): New Variable entry.
17850 (march=): Add comment. Use Enum.
17851 (iq2000_arch): New Enum and EnumValue entries.
17852 (mcpu=): Use Enum and Var.
17853 (iq2000_tune): New Enum and EnumValue entries.
17854
17855 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17856
17857 * config/ia64/ia64-opts.h: New.
17858 * config/ia64/ia64.c (ia64_tune): Remove.
17859 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
17860 here. Use error_at.
17861 (ia64_option_override): Handle deferred OPT_mfixed_range_.
17862 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
17863 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
17864 HeaderInclude entry.
17865 (ia64_tune): New Variable entry.
17866 (mfixed-range=): Use Defer and Var.
17867 (mtune=): Use Enum and Var.
17868 (ia64_tune): New Enum and EnumValue entries.
17869
17870 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17871
17872 * config/frv/frv-opts.h: New.
17873 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
17874 frv-opts.h.
17875 (frv_cpu_type): Remove.
17876 * config/frv/frv.c: Don't include opts.h.
17877 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
17878 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
17879 (frv_cpu_type): New Variable entry.
17880 (frv_cpu): New Enum and EnumValue entries.
17881
17882 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17883
17884 * config/cris/cris.c (cris_handle_option): Access target_flags via
17885 opts pointer. Don't assert that global structures are in use.
17886 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
17887 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
17888
17889 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17890
17891 * config/bfin/bfin-opts.h: New.
17892 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
17893 bfin_si_revision, bfin_workarounds): Remove.
17894 (bfin_cpus): Make static const.
17895 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
17896 not bfin_lib_id_given.
17897 (bfin_handle_option): Don't set bfin_lib_id_given. Access
17898 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
17899 pointer. Use error_at. Don't assert that global structures are in use.
17900 * config/bfin/bfin.h: Include bfin-opts.h.
17901 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
17902 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
17903 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
17904 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
17905 entries.
17906
17907 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17908
17909 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
17910 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
17911 or -msoft-float here.
17912 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
17913 -msoft-float and -mhard-float.
17914 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
17915 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17916 msoft-float.
17917 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
17918 -msoft-float.
17919 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
17920 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
17921 not mhard-float.
17922 (LIBGCC_SPEC): Don't handle -msoft-float.
17923 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
17924 -mhard-float.
17925 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
17926 msoft-float.
17927 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
17928 -mfloat-abi=*, not -msoft-float and -mhard-float.
17929 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
17930 -msoft-float.
17931 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
17932 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
17933 mhard-float and msoft-float.
17934 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
17935 mfloat-abi=soft in comments, not mhard-float and msoft-float.
17936 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17937 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
17938 mhard-float.
17939 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
17940 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
17941 msoft-float.
17942 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
17943 not mhard-float.
17944 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
17945 not msoft-float.
17946
17947 2011-03-22 Richard Henderson <rth@redhat.com>
17948
17949 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
17950 TARGET_ABI_WINDOWS_NT.
17951 (alpha_output_function_end_prologue): Likewise.
17952 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
17953 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
17954 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
17955 (trap, *movsi_nt_vms): Likewise.
17956 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
17957 (*tablejump_osf_nt_internal): Remove.
17958 * config/alpha/predicates.md (input_operand): Only test Pmode.
17959
17960 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17961
17962 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
17963 via opts pointer. Use error_at. Don't assert that global
17964 structures are in use.
17965
17966 2011-03-22 Joseph Myers <joseph@codesourcery.com>
17967
17968 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
17969 (ix86_handle_option): Access ix86_isa_flags and
17970 ix86_isa_flags_explicit via opts pointer. Don't assert that
17971 global structures are in use.
17972 (ix86_function_specific_save, ix86_function_specific_restore):
17973 Update ix86_isa_flags_explicit field name.
17974 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
17975 (ix86_isa_flags_explicit): Rename TargetSave entry to
17976 x_ix86_isa_flags_explicit.
17977
17978 2011-03-22 Richard Henderson <rth@redhat.com>
17979
17980 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
17981 (alpha_option_override, direct_return): Likewise.
17982 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
17983 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
17984 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
17985 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
17986 (alpha_expand_epilogue, alpha_end_function): Likewise.
17987 (alpha_init_libfuncs): Likewise.
17988 (struct machine_function): Remove unicosmk members.
17989 (print_operand) ['t']: Remove.
17990 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
17991 unicosmk_output_module_name, unicosmk_output_common,
17992 current_section_align, unicosmk_output_text_section_asm_op,
17993 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
17994 unicosmk_section_type_flags, unicosmk_unique_section,
17995 unicosmk_asm_named_section, unicosmk_insert_attributes,
17996 unicosmk_output_align, unicosmk_defer_case_vector,
17997 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
17998 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
17999 unicosmk_output_ssib, unicosmk_add_call_info_word,
18000 unicosmk_extern_head, unicosmk_output_default_externs,
18001 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
18002 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
18003 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
18004 * config/alpha/alpha-protos.h: Update.
18005 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
18006 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
18007 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
18008 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
18009 (*mulsi_se, mulvsi3): Likewise.
18010 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
18011 (*divmodsi_internal, call, call_value, realign): Likewise.
18012 (moddi3, umoddi3): Likewise; remove duplicate expander.
18013 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
18014 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
18015 (*movdi_nofix): Remove r/U alternative.
18016 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
18017 * config/alpha/constraints.md ("U"): Remove.
18018 * config/alpha/predicates.md (call_operand"): Don't test
18019 TARGET_ABI_UNICOSMK.
18020
18021 2011-03-22 Joseph Myers <joseph@codesourcery.com>
18022
18023 * target.def (handle_option): Take gcc_options and
18024 cl_decoded_option pointers and location_t.
18025 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
18026 * doc/tm.texi: Regenerate.
18027 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
18028 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
18029 * lto-opts.c (lto_reissue_options): Generate option structure for
18030 targetm.handle_option call.
18031 * opts.c (target_handle_option): Update call to
18032 targetm.handle_option. Remove assertions about values now passed
18033 down to hook.
18034 * targhooks.c (default_target_handle_option): New.
18035 * targhooks.h (default_target_handle_option): Declare.
18036 * config/alpha/alpha.c: Include opts.h.
18037 (alpha_handle_option): Update to new hook interface.
18038 * config/arm/arm.c: Include opts.h.
18039 (arm_handle_option): Update to new hook interface.
18040 * config/arm/t-arm (arm.o): Update dependencies.
18041 * config/bfin/bfin.c: Include opts.h.
18042 (bfin_handle_option): Update to new hook interface.
18043 * config/cris/cris.c: Include opts.h.
18044 (cris_handle_option): Update to new hook interface.
18045 * config/frv/frv.c: Include opts.h.
18046 (frv_handle_option): Update to new hook interface.
18047 * config/i386/i386.c: Include opts.h.
18048 (ix86_handle_option): Update to new hook interface.
18049 (ix86_valid_target_attribute_inner_p): Generate option structure
18050 for call to ix86_handle_option.
18051 * config/i386/t-i386 (i386.o): Update dependencies.
18052 * config/ia64/ia64.c: Include opts.h.
18053 (ia64_handle_option): Update to new hook interface.
18054 * config/ia64/t-ia64 (ia64.o): Update dependencies.
18055 * config/iq2000/iq2000.c: Include opts.h.
18056 (iq2000_handle_option): Update to new hook interface.
18057 * config/m32c/m32c.c: Include opts.h.
18058 (m32c_handle_option): Update to new hook interface.
18059 * config/m32r/m32r.c: Include opts.h.
18060 (m32r_handle_option): Update to new hook interface.
18061 * config/m68k/m68k.c: Include opts.h.
18062 (m68k_handle_option): Update to new hook interface.
18063 * config/mep/mep.c: Include opts.h.
18064 (mep_handle_option): Update to new hook interface.
18065 * config/microblaze/microblaze.c: Include opts.h.
18066 (microblaze_handle_option): Update to new hook interface.
18067 * config/mips/mips.c: Include opts.h.
18068 (mips_handle_option): Update to new hook interface.
18069 * config/mn10300/mn10300.c: Include opts.h.
18070 (mn10300_handle_option): Update to new hook interface.
18071 * config/pa/pa.c: Include opts.h.
18072 (pa_handle_option): Update to new hook interface.
18073 * config/pdp11/pdp11.c: Include opts.h.
18074 (pdp11_handle_option): Update to new hook interface.
18075 * config/rs6000/rs6000.c: Include opts.h.
18076 (rs6000_handle_option): Update to new hook interface.
18077 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
18078 * config/rx/rx.c: Include opts.h.
18079 (rx_handle_option): Update to new hook interface.
18080 * config/s390/s390.c: Include opts.h.
18081 (s390_handle_option): Update to new hook interface.
18082 * config/score/score.c: Include opts.h.
18083 (score_handle_option): Update to new hook interface.
18084 * config/sh/sh.c: Include opts.h.
18085 (sh_handle_option): Update to new hook interface.
18086 * config/sparc/sparc.c: Include opts.h.
18087 (sparc_handle_option): Update to new hook interface.
18088 * config/v850/v850.c: Include opts.h.
18089 (v850_handle_option): Update to new hook interface.
18090
18091 2011-03-22 Joseph Myers <joseph@codesourcery.com>
18092
18093 * gcc.c (driver_unknown_option_callback): Only permit and save
18094 unknown -Wno- options.
18095 (driver_wrong_lang_callback): Save options directly instead of via
18096 driver_unknown_option_callback.
18097
18098 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18099
18100 * combine.c (simplify_set): Try harder to find the best CC mode when
18101 simplifying a nested COMPARE on the RHS.
18102
18103 2011-03-22 Joseph Myers <joseph@codesourcery.com>
18104
18105 * config/alpha/gnu.h: Remove.
18106 * config/arc: Remove directory.
18107 * config/arm/netbsd.h: Remove.
18108 * config/arm/t-pe: Remove.
18109 * config/crx: Remove directory.
18110 * config/i386/netbsd.h: Remove.
18111 * config/m68hc11: Remove directory.
18112 * config/m68k/uclinux-oldabi.h: Remove.
18113 * config/mcore/mcore-pe.h: Remove.
18114 * config/mcore/t-mcore-pe: Remove.
18115 * config/netbsd-aout.h: Remove.
18116 * config/rs6000/gnu.h: Remove.
18117 * config/sh/sh-symbian.h: Remove.
18118 * config/sh/symbian-base.c: Remove.
18119 * config/sh/symbian-c.c: Remove.
18120 * config/sh/symbian-cxx.c: Remove.
18121 * config/sh/symbian-post.h: Remove.
18122 * config/sh/symbian-pre.h: Remove.
18123 * config/sh/t-symbian: Remove.
18124 * config/svr3.h: Remove.
18125 * config/vax/netbsd.h: Remove.
18126 * config.build: Don't handle i[34567]86-*-pe.
18127 * config.gcc: Remove handling of deprecations for most deprecated
18128 targets.
18129 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
18130 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
18131 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
18132 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
18133 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
18134 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
18135 Remove cases.
18136 * config.host: Don't handle i[34567]86-*-pe.
18137 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
18138 (ASM_SPEC32): Don't handle -mcall-gnu.
18139 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
18140 -mcall-gnu.
18141 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
18142 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
18143 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
18144 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
18145 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
18146 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
18147 conditional on SYMBIAN.
18148 * configure.ac: Don't handle powerpc*-*-gnu*.
18149 * configure: Regenerate.
18150 * doc/extend.texi (interrupt attribute): Don't mention CRX.
18151 * doc/install-old.texi (m6811, m6812): Don't mention.
18152 * doc/install.texi (arc-*-elf*): Don't document multilib option.
18153 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
18154 (m68k-uclinuxoldabi): Don't mention.
18155 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
18156 Remove.
18157 (-mcall-gnu): Remove.
18158 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
18159 families): Remove constraint documentation.
18160
18161 2011-03-22 Marius Strobl <marius@FreeBSD.org>
18162
18163 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
18164 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
18165 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
18166
18167 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18168
18169 PR target/48226
18170 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
18171 vector when peeking at the next token for vector, don't expand the
18172 keywords.
18173
18174 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
18175
18176 * config/avr/avr-protos.h (expand_epilogue): Change prototype
18177 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
18178 * config/avr/avr.c (init_cumulative_args)
18179 (avr_function_arg_advance): Use it.
18180 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
18181 sibcall epilogues.
18182 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
18183 (avr_function_ok_for_sibcall): ...this new function.
18184 (avr_lookup_function_attribute1): New static Function.
18185 (avr_naked_function_p, interrupt_function_p)
18186 (signal_function_p, avr_OS_task_function_p)
18187 (avr_OS_main_function_p): Use it.
18188 * config/avr/avr.md ("sibcall", "sibcall_value")
18189 ("sibcall_epilogue"): New expander.
18190 ("*call_insn", "*call_value_insn"): New insn.
18191 ("call_insn", "call_value_insn"): Remove
18192 ("call", "call_value", "epilogue"): Change expander to handle
18193 sibling calls.
18194
18195 2011-03-21 Nick Clifton <nickc@redhat.com>
18196
18197 * doc/invoke.texi (Overall Options): Move closing brace to end of
18198 options list.
18199 (Optimization Options): Add missing @gol.
18200 (Directory Options): Likewise.
18201 (i386 and x86-64 Options): Likewise.
18202 (RS6000 and PowerPC Options): Likewise.
18203 (i386 and x86-64 Windows Options): Likewise.
18204 (V850 Options): Add text missing from descriptions.
18205
18206 2011-03-22 Richard Henderson <rth@redhat.com>
18207
18208 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
18209 (avr_incoming_return_addr_rtx): New.
18210 (emit_push_byte): New.
18211 (expand_prologue): Use it. Remove incorrect dwarf annotation for
18212 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
18213 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
18214 (emit_pop_byte): New.
18215 (expand_epilogue): Use it. Pop frame pointer by bytes.
18216 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
18217 (INCOMING_RETURN_ADDR_RTX): New.
18218 (INCOMING_FRAME_SP_OFFSET): New.
18219 (ARG_POINTER_CFA_OFFSET): New.
18220 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
18221 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
18222 (pophi): Remove.
18223
18224 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
18225
18226 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18227
18228 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
18229 (FUNCTION_ARG_ADVANCE): Likewise.
18230 * tm.texi.in: Change references to them to hook references.
18231 * tm.texi: Regenerate.
18232 * targhooks.c (default_function_arg): Eliminate check for target
18233 macro.
18234 (default_function_incoming_arg): Likewise.
18235 (default_function_arg_advance): Likewise.
18236 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
18237 (function_arg_advance): Likewise.
18238 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
18239
18240 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
18241
18242 * tree.c (build_call_1): New function.
18243 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
18244
18245 2011-03-22 Richard Guenther <rguenther@suse.de>
18246
18247 PR tree-optimization/48228
18248 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
18249 for single-arg PHIs.
18250
18251 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
18252
18253 PR rtl-optimization/48143
18254 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
18255 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
18256 sse2_cvtps2pd): Likewise.
18257
18258 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18259
18260 * recog.c (canonicalize_change_group): Use validate_unshare_change.
18261
18262 2011-03-22 Richard Guenther <rguenther@suse.de>
18263
18264 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
18265 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
18266 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
18267 and REALIGN_LOAD_EXPR.
18268 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
18269 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
18270 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
18271 DOT_PROD_EXPR case ...
18272 (expand_expr_real_2): ... here.
18273 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
18274 and REALIGN_LOAD_EXPR.
18275 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
18276 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
18277 (vect_create_epilog_for_reduction): Likewise.
18278 (vectorizable_reduction): Likewise.
18279 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
18280 * tree-vect-stmts.c (vectorizable_load): Likewise.
18281
18282 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
18283
18284 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
18285
18286 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18287
18288 * config/s390/s390.c (s390_delegitimize_address): Fix offset
18289 handling for PLTOFF/GOTOFF.
18290
18291 2011-03-22 Nick Clifton <nickc@redhat.com>
18292
18293 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
18294 trailing backslash from the end of the macro definition.
18295
18296 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18297
18298 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
18299 and PLT unspecs.
18300
18301 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
18302
18303 * expr.h (prepare_operand): Move to...
18304 * optabs.h (prepare_operand): ...here and change the insn code
18305 parameter from "int" to "enum insn_code".
18306 (insn_operand_matches): Declare.
18307 * expr.c (init_expr_target): Use insn_operand_matches.
18308 (compress_float_constant): Likewise.
18309 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
18310 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
18311 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
18312 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
18313 Likewise.
18314 (gen_cond_trap): Likewise.
18315 (prepare_operand): Likewise. Change icode to an insn_code.
18316 (insn_operand_matches): New function.
18317 * reload.c (find_reloads_address_1): Use insn_operand_matches.
18318 * reload1.c (gen_reload): Likewise.
18319 * targhooks.c (default_secondary_reload): Likewise.
18320
18321 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
18322
18323 * config/alpha/alpha.md (unspec): New define_c_enum.
18324 (unspecv): Ditto.
18325
18326 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
18327
18328 PR debug/48214
18329 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
18330 between a call and its CALL_ARG_LOCATION note.
18331
18332 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
18333
18334 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
18335
18336 2011-03-21 Jakub Jelinek <jakub@redhat.com>
18337
18338 PR c/42544
18339 PR c/48197
18340 * c-common.c (shorten_compare): If primopN is first sign-extended
18341 to opN and then zero-extended to result type, set primopN to opN.
18342
18343 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
18344
18345 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
18346 for barrier handlers.
18347
18348 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
18349
18350 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
18351 UNSPEC constants to be in the unspec enumeration, and redefine
18352 all UNSPECV constants to be in the unspecv enumeration, so that
18353 dumps print which unspec/unspec_volatile this is.
18354 * config/rs6000/vector.md (UNSPEC_*): Ditto.
18355 * config/rs6000/paired.md (UNSPEC_*): Ditto.
18356 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
18357 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
18358 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
18359
18360 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
18361 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
18362 UNSPECV_LWSYNC, since these are used as unspec_volatile.
18363 * config/rs6000/sync.md (isync, lwsync): Ditto.
18364
18365 2011-03-21 Richard Guenther <rguenther@suse.de>
18366
18367 * params.def (lto-min-partition): Fix typo.
18368
18369 2011-03-21 Richard Guenther <rguenther@suse.de>
18370
18371 PR c/47939
18372 * c-decl.c (grokdeclarator): Drop to the main variant only
18373 for array types. Drop flag_gen_aux_info check.
18374
18375 2011-03-21 Richard Guenther <rguenther@suse.de>
18376
18377 PR translation/47911
18378 * params.def (lto-partitions): Fix typo.
18379 (lto-min-partition): Fix wording.
18380
18381 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
18382
18383 * config/rs6000/t-freebsd: Remove duplication from file.
18384
18385 2011-03-21 Richard Guenther <rguenther@suse.de>
18386
18387 PR middle-end/47661
18388 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
18389
18390 2011-03-21 Richard Guenther <rguenther@suse.de>
18391
18392 PR lto/48210
18393 * params.def (lto-partitions): Require at least 1 partition.
18394
18395 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18396
18397 * gthr-solaris.h: Remove.
18398 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
18399 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
18400 (LIB_SPEC): Likewise.
18401 * config/sol2.opt (threads): Remove.
18402 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
18403 (sparc*-*-solaris2*): Likewise.
18404 * configure.ac (enable_threads): Enable solaris support.
18405 * configure: Regenerate.
18406 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
18407 * doc/install.texi (Configuration, --enable-threads=lib): Remove
18408 solaris.
18409
18410 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18411
18412 * config.gcc: Obsolete *-*-solaris2.8*.
18413 * doc/install.texi (Specific, *-*-solaris2*): Document it.
18414
18415 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18416
18417 PR bootstrap/48135
18418 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
18419 reference. Solaris 8 perl works.
18420
18421 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18422
18423 PR bootstrap/48135
18424 * doc/install.texi (Prerequisites): Move jar etc. up.
18425 Explain support library version requirements.
18426
18427 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18428
18429 PR bootstrap/48135
18430 * doc/install.texi (Prerequisites): Move Perl to build
18431 requirements. Always necessary on Solaris 2 with Sun ld.
18432
18433 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18434
18435 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
18436 binutils 2.21.
18437 (Specific, i?86-*-solaris2.[89]): Likewise.
18438 (Specific, i?86-*-solaris2.10): Likewise.
18439 (Specific, mips-sgi-irix6): Likewise.
18440 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
18441 Update for binutils 2.21.
18442
18443 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18444
18445 * configure.ac (gcc_cv_lto_plugin): Fix typo.
18446 Allow -fuse-linker-plugin for non-default plugin linker.
18447 * configure: Regenerate.
18448
18449 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
18450
18451 PR bootstrap/48167
18452 * gengtype.c (files_rules): Added rule for cp/parser.h.
18453
18454 2011-03-21 Jakub Jelinek <jakub@redhat.com>
18455
18456 PR target/48213
18457 * config/s390/s390.c (s390_delegitimize_address): Don't call
18458 lowpart_subreg if orig_x has BLKmode.
18459
18460 2011-03-21 Kai Tietz <ktietz@redhat.com>
18461
18462 PR target/12171
18463 * doc/plugins.texi: Adjust documentation for plugin register_callback.
18464 * tree.h (attribute_spec): Add new member affects_type_identity.
18465 * attribs.c (empty_attribute_table): Adjust attribute_spec
18466 initializers.
18467 * config/alpha/alpha.c: Likewise.
18468 * config/arc/arc.c: Likewise.
18469 * config/arm/arm.c: Likewise.
18470 * config/avr/avr.c: Likewise.
18471 * config/bfin/bfin.c: Likewise.
18472 * config/crx/crx.c: Likewise.
18473 * config/darwin.h: Likewise.
18474 * config/h8300/h8300.c: Likewise.
18475 * config/i386/cygming.h: Likewise.
18476 * config/i386/i386.c: Likewise.
18477 * config/ia64/ia64.c: Likewise.
18478 * config/m32c/m32c.c: Likewise.
18479 * config/m32r/m32r.c: Likewise.
18480 * config/m68hc11/m68hc11.c: Likewise.
18481 * config/m68k/m68k.c: Likewise.
18482 * config/mcore/mcore.c: Likewise.
18483 * config/mep/mep.c: Likewise.
18484 * config/microblaze/microblaze.c: Likewise.
18485 * config/mips/mips.c: Likewise.
18486 * config/rs6000/rs6000.c: Likewise.
18487 * config/rx/rx.c: Likewise.
18488 * config/sh/sh.c: Likewise.
18489 * config/sol2.h: Likewise.
18490 * config/sparc/sparc.c: Likewise.
18491 * config/spu/spu.c: Likewise.
18492 * config/stormy16/stormy16.c: Likewise.
18493 * config/v850/v850.c: Likewise.
18494
18495 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
18496
18497 * simplify-rtx.c (simplify_binary_operation_1): Handle
18498 (xor (and A B) C) case when B and C are both constants.
18499
18500 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
18501
18502 * tree-dfa.c (add_referenced_var): Fix typo in comment.
18503
18504 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
18505
18506 PR bootstrap/48168
18507 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
18508
18509 2011-03-20 Jakub Jelinek <jakub@redhat.com>
18510
18511 PR rtl-optimization/48156
18512 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
18513 assume df and df_lr are not NULL.
18514
18515 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18516
18517 PR debug/48023
18518 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
18519 between a call and its CALL_ARG_LOCATION note.
18520
18521 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
18522
18523 PR debug/48178
18524 * config/sh/sh.c (find_barrier): Don't emit a constant pool
18525 between a call and its corresponding CALL_ARG_LOCATION note.
18526
18527 2011-03-19 Anatoly Sokolov <aesok@post.ru>
18528
18529 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
18530 instead of loop. Use HARD_REGISTER_NUM_P predicate.
18531 * haifa-sched.c (setup_ref_regs): Ditto.
18532 * caller-save.c (add_used_regs_1): Ditto.
18533 * dse.c (look_for_hardregs): Ditto.
18534 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
18535 * sched-rgn.c (check_live_1): Ditto.
18536
18537 2011-03-18 Joseph Myers <joseph@codesourcery.com>
18538
18539 * c-decl.c (diagnose_mismatched_decls): Give an error for
18540 redefining a typedef with variably modified type.
18541
18542 2011-03-18 Joseph Myers <joseph@codesourcery.com>
18543
18544 * c-decl.c (grokfield): Don't allow typedefs for structures or
18545 unions with no tag by default.
18546 * doc/extend.texi (Unnamed Fields): Update.
18547
18548 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
18549
18550 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
18551 Rewrite using indirect functions.
18552 (lwp_slwpcb): Ditto.
18553 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
18554 (avx_vinsertf128<mode>): Ditto.
18555
18556 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18557
18558 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
18559 unspecs.
18560
18561 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18562
18563 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
18564 splitting between a call and its corresponding CALL_ARG_LOCATION note.
18565
18566 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
18567
18568 PR rtl-optimization/48170
18569 * gcse.c (hoist_code): Remove bogus asserts.
18570
18571 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
18572
18573 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
18574 computation for prologue/epilogue.
18575
18576 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18577
18578 * Makefile.in (check-consistency): Remove.
18579
18580 2011-03-18 Jakub Jelinek <jakub@redhat.com>
18581
18582 PR debug/48176
18583 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
18584 arange_table_in_use is 0, but either text_section_used or
18585 cold_text_section_used is true. Don't call it if
18586 !info_section_emitted.
18587
18588 2011-03-18 Anatoly Sokolov <aesok@post.ru>
18589
18590 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
18591 FUNCTION_VALUE_REGNO_P): Remove.
18592 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
18593 Remove.
18594 * config/avr/avr.c (avr_ret_register): Make static inline.
18595 (avr_function_value_regno_p): New function.
18596 (avr_libcall_value): Make static. Add 'func' argument.
18597 (avr_function_value): Make static. Rename 'func' argument to
18598 'fn_decl_or_type', forward it to avr_libcall_value. Call
18599 avr_ret_register function instead of RET_REGISTER macro.
18600 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
18601
18602 2011-03-18 Jason Merrill <jason@redhat.com>
18603
18604 PR c++/23372
18605 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
18606
18607 2011-03-18 Richard Guenther <rguenther@suse.de>
18608
18609 * doc/install.texi (--enable-gold): Remove.
18610 (--with-plugin-ld): Document.
18611 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
18612
18613 2011-03-18 Andrew Pinski <pinskia@gmail.com>
18614
18615 PR middle-end/47790
18616 * expr.c (optimize_bitfield_assignment_op): Revamp to work
18617 again after expansion changes.
18618
18619 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
18620
18621 * combine.c (try_combine): Do simplification only call of
18622 subst() on i2 even when i1 is present. Update comments.
18623
18624 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
18625
18626 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
18627 and UNSPEC_PCREL_SYMOFF.
18628
18629 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18630
18631 * config/s390/s390.md: Use define_c_enum for the unspec constant
18632 definitions.
18633
18634 2011-03-18 Richard Henderson <rth@redhat.com>
18635 Jakub Jelinek <jakub@redhat.com>
18636
18637 PR bootstrap/48161
18638 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
18639 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
18640
18641 2011-03-17 Anatoly Sokolov <aesok@post.ru>
18642
18643 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18644 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
18645 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
18646 Change return type to bool.
18647 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18648
18649 2011-03-17 Jakub Jelinek <jakub@redhat.com>
18650
18651 PR debug/48163
18652 * var-tracking.c (prepare_call_arguments): If CALL target
18653 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
18654 pc instead of looking it up using cselib_lookup and use
18655 Pmode for it if x has VOIDmode.
18656 * dwarf2out.c (gen_subprogram_die): If also both first and
18657 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
18658
18659 PR debug/48163
18660 * function.c (assign_parms): For data.passed_pointer parms
18661 use MEM of data.entry_parm instead of data.entry_parm itself
18662 as DECL_INCOMING_RTL.
18663 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
18664 also when passed and declared mode is the same, DECL_RTL
18665 is a MEM with pseudo as address and DECL_INCOMING_RTL is
18666 a MEM too.
18667
18668 2011-03-16 Jeff Law <law@redhat.com>
18669
18670 PR rtl-optimization/37273
18671 * ira-costs.c (scan_one_insn): Detect constants living in memory and
18672 handle them like argument loads from stack slots. Do not double
18673 count memory for memory constants and argument loads from stack slots.
18674
18675 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18676
18677 PR debug/48160
18678 * var-tracking.c (prepare_call_arguments): Check SUBREG.
18679
18680 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
18681
18682 PR target/48171
18683 * config/i386/i386.opt: Add Save to -mavx and -mfma.
18684
18685 2011-03-17 Jakub Jelinek <jakub@redhat.com>
18686
18687 PR bootstrap/48153
18688 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
18689 if dwarf_strict.
18690 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
18691 Clear call_arg_locations and call_arg_loc_last always.
18692
18693 PR middle-end/48152
18694 * var-tracking.c (prepare_call_arguments): If argument needs to be
18695 passed by reference, adjust argtype and mode.
18696
18697 2011-03-17 Richard Guenther <rguenther@suse.de>
18698
18699 PR middle-end/48134
18700 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
18701 a value make sure to fold the statement.
18702
18703 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
18704
18705 PR target/43872
18706 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
18707 return condition with !cfun->calls_alloca.
18708
18709 2011-03-17 Richard Guenther <rguenther@suse.de>
18710
18711 PR bootstrap/48148
18712 * lto-cgraph.c (input_overwrite_node): Clear the abstract
18713 origin for decls in other ltrans units.
18714 (input_varpool_node): Likewise.
18715
18716 2011-03-17 Richard Guenther <rguenther@suse.de>
18717
18718 PR middle-end/48165
18719 * tree-object-size.c (compute_object_offset): Properly return
18720 the offset operand of MEM_REFs as sizetype.
18721
18722 2011-03-17 Jakub Jelinek <jakub@redhat.com>
18723
18724 PR rtl-optimization/48141
18725 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
18726 * dse.c: Include params.h.
18727 (active_local_stores_len): New variable.
18728 (add_wild_read, dse_step1): Clear it when setting active_local_stores
18729 to NULL.
18730 (record_store, check_mem_read_rtx): Decrease it when removing
18731 from the chain.
18732 (scan_insn): Likewise. Increase it when adding to chain, if it
18733 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
18734 set active_local_stores to NULL before the addition.
18735 * Makefile.in (dse.o): Depend on $(PARAMS_H).
18736
18737 PR rtl-optimization/48141
18738 * dse.c (record_store): If no positions are needed in an insn
18739 that cannot be deleted, at least unchain it from active_local_stores.
18740
18741 2011-03-16 Dodji Seketeli <dodji@redhat.com>
18742
18743 PR debug/47510
18744 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
18745 (lookup_type_die_strip_naming_typedef): ... here.
18746 (get_context_die): Use it.
18747 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
18748 the anonymous struct named by the naming typedef.
18749
18750 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
18751
18752 PR target/48154
18753 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
18754 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
18755
18756 2011-03-16 Jeff Law <law@redhat.com>
18757
18758 * tree-vrp.c (identify_jump_threads): Slightly simplify type
18759 check for operands of conditional. Allow type to be a pointer.
18760
18761 2011-03-16 Richard Guenther <rguenther@suse.de>
18762
18763 PR tree-optimization/48149
18764 * fold-const.c (fold_binary_loc): Fold
18765 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
18766
18767 2011-03-16 Richard Guenther <rguenther@suse.de>
18768
18769 PR tree-optimization/26134
18770 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
18771 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
18772 (non_rewritable_mem_ref_base): Handle complex type component
18773 accesses, constrain offsets for vector and complex extracts
18774 more properly.
18775
18776 2011-03-16 Richard Guenther <rguenther@suse.de>
18777
18778 PR tree-optimization/48146
18779 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
18780 operands avoiding the need for renaming.
18781
18782 2011-03-16 Richard Guenther <rguenther@suse.de>
18783
18784 * gimple-fold.c (maybe_fold_reference): Open-code relevant
18785 constant folding. Move MEM_REF canonicalization first.
18786 Rely on fold_const_aggregate_ref for initializer folding.
18787 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
18788
18789 2011-03-16 Jakub Jelinek <jakub@redhat.com>
18790
18791 PR middle-end/48136
18792 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18793 arg0/arg1 or their arguments are always fold converted to matching
18794 types.
18795
18796 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
18797 to nargs.
18798
18799 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18800
18801 PR lto/46944
18802 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
18803 Handle in-tree gold.
18804 (ld_vers): Extract binutils version for gold.
18805 (gcc_cv_ld_hidden): Handle gold here.
18806 (gcc_cv_lto_plugin): Determine level of linker plugin support.
18807 * configure: Regenerate.
18808 * config.in: Regenerate.
18809 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
18810 -fuse-linker-plugin otherwise.
18811 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
18812 (LINK_COMMAND_SPEC): Use it.
18813 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
18814
18815 2011-03-16 Jakub Jelinek <jakub@redhat.com>
18816
18817 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
18818 * calls.c: Remove debug.h include.
18819 (emit_call_1): Don't call virtual_call_token debug hook.
18820 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
18821 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
18822 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
18823 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
18824 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
18825 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
18826 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
18827 dwarf2out_virtual_call): Remove.
18828 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
18829 copy_call_info and virtual_call hooks.
18830 (dwarf2out_init): Don't initialize vcall_insn_table,
18831 debug_dcall_section and debug_vcall_section.
18832 (prune_unused_types): Don't mark nodes from dcall_table.
18833 (dwarf2out_finish): Don't output dcall or vcall tables.
18834 * final.c (final_scan_insn): Don't call direct_call or
18835 virtual_call debug hooks.
18836 * debug.h (struct gcc_debug_hooks): Remove direct_call,
18837 virtual_call_token, copy_call_info and virtual_call hooks.
18838 (debug_nothing_uid): Remove prototype.
18839 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
18840 copy_call_info and virtual_call hooks.
18841 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18842 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18843 * debug.c (do_nothing_debug_hooks): Likewise.
18844 (debug_nothing_uid): Remove.
18845 * doc/invoke.texi (-fenable-icf-debug): Remove.
18846 * common.opt (-fenable-icf-debug): Likewise.
18847
18848 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
18849 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
18850 call's MEM. Handle functions returning aggregate through a hidden
18851 first pointer. For virtual calls add clobbered pc to call arguments
18852 chain.
18853 * dwarf2out.c (gen_subprogram_die): Emit
18854 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
18855 can't be emitted.
18856
18857 PR debug/45882
18858 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
18859 * rtl.h (ENTRY_VALUE_EXP): Define.
18860 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
18861 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
18862 * print-rtl.c (print_rtx): Likewise.
18863 * gengtype.c (adjust_field_rtx_def): Likewise.
18864 * var-tracking.c (vt_add_function_parameter): Adjust
18865 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
18866 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
18867 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
18868 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
18869 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
18870
18871 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
18872 Call var_location debug hook even on CALL_INSNs.
18873 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
18874 * rtl.def (ENTRY_VALUE): New.
18875 * dwarf2out.c: Include cfglayout.h.
18876 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
18877 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
18878 (struct call_arg_loc_node): New type.
18879 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
18880 tail_call_site_count): New variables.
18881 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
18882 DW_TAG_GNU_call_site_parameter.
18883 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
18884 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
18885 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
18886 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
18887 and DW_AT_GNU_all_source_call_sites.
18888 (mem_loc_descriptor): Handle ENTRY_VALUE.
18889 (add_src_coords_attributes): Don't add enything if
18890 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
18891 (dwarf2out_abstract_function): Save and clear call_arg_location,
18892 call_site_count and tail_call_site_count around dwarf2out_decl call.
18893 (gen_call_site_die): New function.
18894 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
18895 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
18896 (dwarf2out_function_decl): Clear call_arg_locations,
18897 call_arg_loc_last, set call_site_count and tail_call_site_count
18898 to -1 and free block_map.
18899 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
18900 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
18901 followed by any real instructions.
18902 (dwarf2out_begin_function): Set call_site_count and
18903 tail_call_site_count to 0.
18904 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
18905 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
18906 attempt to force a DIE for it and worst case remove the attribute.
18907 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
18908 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
18909 the decl itself.
18910 * var-tracking.c: Include tm_p.h.
18911 (vt_stack_adjustments): For calls call note_register_arguments.
18912 (argument_reg_set): New variable.
18913 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
18914 ensure the VALUE is resolved.
18915 (call_arguments): New variable.
18916 (prepare_call_arguments): New function.
18917 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
18918 (struct expand_loc_callback_data): Add ignore_cur_loc field.
18919 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
18920 always use the best expression.
18921 (vt_expand_loc): Add ignore_cur_loc argument.
18922 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
18923 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
18924 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
18925 note for all calls.
18926 (vt_add_function_parameter): Use cselib_lookup_from_insn.
18927 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
18928 argument. Don't call cselib_preserve_only_values and
18929 cselib_reset_table.
18930 (note_register_arguments): New function.
18931 (vt_initialize): Compute argument_reg_set. Call
18932 vt_add_function_parameters before processing basic blocks instead of
18933 afterwards. For calls call prepare_call_arguments before calling
18934 cselib_process_insn.
18935 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
18936 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
18937 (var-tracking.o): Depend on $(TM_P_H).
18938 * cfglayout.h (insn_scope): New prototype.
18939 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
18940 * cfglayout.c (insn_scope): No longer static.
18941 * insn-notes.def (CALL_ARG_LOCATION): New.
18942 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
18943 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
18944 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
18945 nothing for DECL_EXTERNAL BLOCK_VARS.
18946
18947 2011-03-16 Alan Modra <amodra@gmail.com>
18948
18949 PR target/45844
18950 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
18951 create invalid offset address for vsx splat insn.
18952 * config/rs6000/predicates.md (splat_input_operand): New.
18953 * config/rs6000/vsx.md (vsx_splat_*): Use it.
18954
18955 2011-03-15 Xinliang David Li <davidxl@google.com>
18956
18957 PR c/47837
18958 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
18959 (normalize_preds): New function.
18960 (is_use_properly_guarded): Normalize def predicates.
18961
18962 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18963
18964 PR target/46788
18965 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
18966 in the output template.
18967
18968 2011-03-15 Richard Guenther <rguenther@suse.de>
18969
18970 PR middle-end/47650
18971 * tree-pretty-print.c (dump_function_declaration): Properly
18972 dump unprototyped and varargs function types.
18973
18974 2011-03-15 Richard Guenther <rguenther@suse.de>
18975
18976 PR tree-optimization/13954
18977 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
18978 and friends.
18979
18980 2011-03-15 Richard Guenther <rguenther@suse.de>
18981
18982 PR tree-optimization/48037
18983 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
18984 selects into BIT_FIELD_REFs.
18985 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
18986 vector select.
18987
18988 2011-03-15 Jakub Jelinek <jakub@redhat.com>
18989
18990 PR tree-optimization/48129
18991 * builtins.c (fold_builtin_snprintf): Convert to type of
18992 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
18993 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
18994
18995 2011-03-15 Richard Guenther <rguenther@suse.de>
18996
18997 PR tree-optimization/41490
18998 * tree-ssa-dce.c (propagate_necessity): Handle returns without
18999 value but with VUSE.
19000 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
19001 return statements.
19002 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
19003 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
19004 * tree-tailcall.c (find_tail_calls): Ignore returns.
19005
19006 2011-03-15 Richard Guenther <rguenther@suse.de>
19007
19008 PR middle-end/48031
19009 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
19010 or variable-indexed array accesses when in gimple form.
19011
19012 2011-03-15 Richard Guenther <rguenther@suse.de>
19013
19014 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
19015
19016 2011-03-15 Alan Modra <amodra@gmail.com>
19017
19018 PR target/48032
19019 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
19020 presume symbol_refs without a symbol_ref_decl are suitably
19021 aligned, nor other trees we may see here. Handle anchor symbols.
19022 (legitimate_constant_pool_address_p): Comment. Add mode param.
19023 Check cmodel=medium addresses. Adjust all calls.
19024 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
19025 creating cmodel=medium optimized access to locals.
19026 * config/rs6000/constraints.md (R): Pass QImode to
19027 legitimate_constant_pool_address_p.
19028 * config/rs6000/predicates.md (input_operand): Pass mode to
19029 legitimate_constant_pool_address_p.
19030 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
19031 Update prototype.
19032
19033 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
19034
19035 PR target/48053
19036 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
19037 64-bit constants being loaded into registers other than GPRs such
19038 as loading 0 into a VSX register.
19039
19040 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19041
19042 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
19043
19044 2011-03-14 Jakub Jelinek <jakub@redhat.com>
19045
19046 PR middle-end/47917
19047 * builtins.c (fold_builtin_snprintf): New function.
19048 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
19049 (fold_builtin_4): Likewise.
19050
19051 PR middle-end/38878
19052 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
19053 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
19054 and C - X == X also strip nops from +/-/p+ operand.
19055 When optimizing -X == C, fold C to arg0's type.
19056
19057 PR debug/47946
19058 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
19059 emit it as add_AT_int instead of add_AT_unsigned.
19060
19061 2011-03-14 Tom Tromey <tromey@redhat.com>
19062
19063 * unwind-dw2.c: Include sys/sdt.h if it exists.
19064 (_Unwind_DebugHook): Use STAP_PROBE2.
19065 * config.in, configure: Rebuild.
19066 * configure.ac: Check for sys/sdt.h.
19067
19068 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
19069
19070 * config/i386/i386.md (ROUND_FLOOR): New constant.
19071 (ROUND_CEIL): Ditto.
19072 (ROUND_TRUNC): Ditto.
19073 (ROUND_MXCSR): Ditto.
19074 (ROUND_NO_EXC): Ditto.
19075 (rint<mode>2): Use new defines instead of numerical constants.
19076 (floor<mode>2): Ditto.
19077 (ceil<mode>2): Ditto.
19078 (btrunc<mode>2): Ditto.
19079 * config/i386/i386-builtin-types.def: Define ROUND function type
19080 aliases.
19081 * config/i386/i386.c (enum ix86_builtins): Add
19082 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
19083 (struct builtin_description): Add
19084 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
19085 (ix86_expand_sse_round): New static function.
19086 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
19087 function types.
19088 (ix86_builtin_vectorized_function): Handle
19089 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
19090
19091 2011-03-14 Tom Tromey <tromey@redhat.com>
19092
19093 * c-parser.c (c_parser_asm_string_literal): Clear
19094 warn_overlength_strings.
19095
19096 2011-03-14 Tom Tromey <tromey@redhat.com>
19097
19098 * c-parser.c (disable_extension_diagnostics): Save
19099 warn_overlength_strings.
19100 (restore_extension_diagnostics): Restore warn_overlength_strings.
19101
19102 2011-03-14 Jakub Jelinek <jakub@redhat.com>
19103
19104 * BASE-VER: Change to 4.7.0.
19105
19106 2011-03-14 Richard Guenther <rguenther@suse.de>
19107
19108 PR middle-end/48098
19109 * tree.c (build_vector_from_val): Adjust assert to requirements
19110 and reality.
19111
19112 2011-03-14 Jakub Jelinek <jakub@redhat.com>
19113
19114 PR bootstrap/48102
19115 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
19116
19117 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
19118
19119 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
19120 terms of target_flags_explicit. Adjust copyright year.
19121
19122 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
19123 * config/rs6000/t-freebsd: New file. Add override for
19124 LIB2FUNCS_EXTRA.
19125
19126 2011-03-13 Chris Demetriou <cgd@google.com>
19127
19128 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
19129 (-fno-diagnostics-show-option): this, to reflect current default.
19130 (-Werror=): Update text about -fno-diagnostics-show-option.
19131
19132 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
19133
19134 PR target/48053
19135 * config/rs6000/predicates.md (easy_vector_constant_add_self,
19136 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
19137 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
19138 mode is not V2DImode or V2DFmode.
19139 (vspltis_constant): Do not handle V2DImode and V2DFmode.
19140 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
19141 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
19142 registers to 0.
19143 (movdi_internal64): Likewise.
19144
19145 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
19146
19147 PR tree-optimization/47127
19148 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
19149 parameter.
19150 (set_cloog_options): Same.
19151 (scop_to_clast): Same.
19152 (print_clast_stmt): Do not call cloog_state_malloc and
19153 cloog_state_free.
19154 (print_generated_program): Same.
19155 (gloog): Same.
19156 * graphite-clast-to-gimple.h (cloog_state): Declared.
19157 (scop_to_clast): Adjust declaration.
19158 * graphite.c (cloog_state): Defined here.
19159 (graphite_initialize): Call cloog_state_malloc.
19160 (graphite_finalize): Call cloog_state_free.
19161
19162 2011-03-11 Jason Merrill <jason@redhat.com>
19163
19164 * attribs.c (lookup_attribute_spec): Take const_tree.
19165 * tree.h: Adjust.
19166
19167 2011-03-11 Joseph Myers <joseph@codesourcery.com>
19168
19169 * config/sparc/sparc.c (sparc_option_override): Use
19170 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
19171
19172 2011-03-11 Richard Guenther <rguenther@suse.de>
19173
19174 PR tree-optimization/48067
19175 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
19176 multiplication result will be only used once on the target
19177 stmt.
19178
19179 2011-03-11 Richard Guenther <rguenther@suse.de>
19180
19181 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
19182
19183 2011-03-11 Richard Guenther <rguenther@suse.de>
19184
19185 PR lto/48073
19186 * tree.c (find_decls_types_r): Do not walk types only reachable
19187 from IDENTIFIER_NODEs.
19188
19189 2011-03-11 Jakub Jelinek <jakub@redhat.com>
19190
19191 PR middle-end/48044
19192 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
19193 all vnode->force_output nodes as needed.
19194
19195 2011-03-11 Jason Merrill <jason@redhat.com>
19196
19197 PR c++/48069
19198 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
19199 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
19200
19201 2011-03-11 Martin Jambor <mjambor@suse.cz>
19202
19203 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
19204 cgraph_node.
19205
19206 2011-03-11 Jakub Jelinek <jakub@redhat.com>
19207
19208 PR tree-optimization/48063
19209 * ipa-inline.c (cgraph_decide_inlining): Don't try to
19210 inline functions called once if !tree_can_inline_p (node->callers).
19211
19212 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
19213
19214 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
19215 extra_objs.
19216 * config/score/score3.c: Delete.
19217 * config/score/score3.h: Delete.
19218 * config/score/mul-div.S: Delete.
19219 * config/score/sfp-machine.h: Add new file.
19220 * config/score/constraints.md: Add new file.
19221 * config/score/t-score-softfp: Add new file.
19222 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
19223 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
19224 (score7_extra_constraint): Delete.
19225 (score7_option_override): Remove unused code.
19226 * config/score/score.c: Remove score3 and score5 define and code.
19227 * config/score/score.h: Remove score3 and score5 define and code.
19228 * config/score/score.md: Remove score3 template and unusual insn.
19229 * config/score/score.opt: Remove score3 and score5 options.
19230
19231 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19232
19233 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
19234 when _HPUX_SOURCE is defined.
19235 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
19236
19237 2011-03-10 Jason Merrill <jason@redhat.com>
19238
19239 PR c++/48029
19240 * stor-layout.c (layout_type): Don't set structural equality
19241 on arrays of incomplete type.
19242 * tree.c (type_hash_eq): Handle comparing them properly.
19243
19244 2011-03-10 Jakub Jelinek <jakub@redhat.com>
19245
19246 PR debug/48043
19247 * config/s390/s390.c (s390_delegitimize_address): Make sure the
19248 result mode matches original rtl mode.
19249
19250 2011-03-10 Nick Clifton <nickc@redhat.com>
19251
19252 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
19253 (andsi3, andsi3_flags): Fix timings for three operand alternative.
19254
19255 2011-03-09 Jakub Jelinek <jakub@redhat.com>
19256
19257 PR rtl-optimization/47866
19258 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
19259 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
19260 if target wasn't scalar.
19261 * function.c (assign_stack_temp_for_type): Assert that neither
19262 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
19263 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
19264 macro.
19265 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
19266
19267 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19268
19269 * config/s390/s390-protos.h (s390_label_align): New prototype.
19270 * config/s390/s390.c (s390_label_align): New function.
19271 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
19272
19273 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
19274
19275 PR target/47755
19276 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
19277 V2DI/V2DF constants. Only all 0's or all 1's are easy.
19278 (output_vec_const_move): Ditto.
19279
19280 2011-03-08 Anatoly Sokolov <aesok@post.ru>
19281
19282 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
19283 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
19284 * config/mips/mips.c (mips_preferred_reload_class): Make static.
19285 Change 'rclass' argument and result type to reg_class_t.
19286 (TARGET_PREFERRED_RELOAD_CLASS): Define.
19287
19288 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
19289
19290 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19291 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
19292 (TARGET_MEMORY_MOVE_COST): Define.
19293 (avr_register_move_cost, avr_memory_move_cost): New Functions.
19294
19295 2011-03-08 Jakub Jelinek <jakub@redhat.com>
19296
19297 PR debug/47881
19298 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
19299 removed anything.
19300
19301 PR tree-optimization/48022
19302 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
19303 for EQ/NE_EXPR.
19304
19305 2011-03-07 Jakub Jelinek <jakub@redhat.com>
19306
19307 PR debug/47991
19308 * var-tracking.c (find_use_val): Return NULL for
19309 cui->sets && cui->store_p BLKmode MEMs.
19310
19311 2011-03-07 Anatoly Sokolov <aesok@post.ru>
19312
19313 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
19314 Remove.
19315 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
19316 xstormy16_print_operand_address): Remove.
19317 * config/stormy16/stormy16.c (xstormy16_print_operand,
19318 xstormy16_print_operand_address): Make static.
19319 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
19320
19321 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
19322
19323 PR target/47862
19324 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19325 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
19326 before definition.
19327
19328 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
19329
19330 PR bootstrap/48000
19331 * cfgloopmanip.c (fix_bb_placements): Return immediately
19332 if FROM is BASE_LOOP's header.
19333
19334 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
19335
19336 * gimplify.c (gimplify_function_tree): Fix building calls
19337 to __builtin_return_address.
19338
19339 2011-03-07 Alan Modra <amodra@gmail.com>
19340
19341 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
19342 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
19343 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
19344 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
19345 return_mode args.
19346 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
19347 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
19348 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
19349 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
19350 * config/rs6000/rs6000.c
19351 (rs6000_elf_end_indicate_exec_stack): Rename to..
19352 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
19353 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
19354 (rs6000_file_start): ..here.
19355 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
19356 file scope variables.
19357 (call_ABI_of_interest): New function.
19358 (init_cumulative_args): Set above vars when function return value
19359 is a float, vector, or small struct.
19360 (rs6000_function_arg_advance_1): Likewise for function args.
19361 (rs6000_va_start): Set rs6000_passes_float if variable arg function
19362 references float args.
19363
19364 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
19365
19366 * doc/cfg.texi: Remove "See" before @ref.
19367 * doc/invoke.texi: Likewise.
19368
19369 2011-03-05 Jason Merrill <jason@redhat.com>
19370
19371 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
19372
19373 2011-03-05 Anthony Green <green@moxielogic.com>
19374
19375 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
19376
19377 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
19378
19379 PR rtl-optimization/47899
19380 * cfgloopmanip.c (fix_bb_placements): Fix first argument
19381 to flow_loop_nested_p when moving the loop upward.
19382
19383 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
19384
19385 PR target/47719
19386 * arm.md (movhi_insn_arch4): Accept any immediate constant.
19387
19388 2011-03-05 Jakub Jelinek <jakub@redhat.com>
19389
19390 PR tree-optimization/47967
19391 * ipa-cp.c (build_const_val): Return NULL instead of creating
19392 VIEW_CONVERT_EXPR for mismatching sizes.
19393 (ipcp_create_replace_map): Return NULL if build_const_val failed.
19394 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
19395 give up on versioning.
19396
19397 2011-03-05 Alan Modra <amodra@gmail.com>
19398
19399 PR target/47986
19400 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19401 full cmodel medium/large lo_sum + high addresses.
19402
19403 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19404
19405 * config/s390/s390.c (s390_decompose_address): Reject non-literal
19406 pool references in UNSPEC_LTREL_OFFSET.
19407
19408 2011-03-04 Jan Hubicka <jh@suse.cz>
19409
19410 PR lto/47497
19411 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
19412 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
19413 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
19414 Add node pointers.
19415 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
19416 cgraph_add_thunk): Add node pointers.
19417 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
19418 associated to right node.
19419 (input_node): Update use of cgraph_same_body_alias
19420 and cgraph_add_thunk.
19421
19422 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
19423
19424 * config/i386/i386.opt (mprefer-avx128): New flag.
19425 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
19426 modes when the flag -mprefer-avx128 is on.
19427
19428 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
19429
19430 * dwarf2out.c (compare_loc_operands): Fix address handling.
19431
19432 2011-03-04 Alan Modra <amodra@gmail.com>
19433
19434 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
19435
19436 2011-03-04 Richard Guenther <rguenther@suse.de>
19437
19438 PR middle-end/47968
19439 * expmed.c (extract_bit_field_1): Prefer vector modes that
19440 vec_extract patterns can handle.
19441
19442 2011-03-04 Richard Guenther <rguenther@suse.de>
19443
19444 PR middle-end/47975
19445 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
19446
19447 2011-03-04 Richard Henderson <rth@redhat.com>
19448
19449 * explow.c (emit_stack_save): Remove 'after' parameter.
19450 (emit_stack_restore): Likewise.
19451 * expr.h: Update to match.
19452 * builtins.c, calls.c, stmt.c: Likewise.
19453 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
19454 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
19455 * function.c (expand_function_end): Insert the emit_stack_save
19456 sequence before parm_birth_insn instead of after.
19457
19458 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
19459
19460 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
19461 (ssse3_pmaddubsw128): Ditto.
19462 (ssse3_pmaddubsw): Ditto.
19463
19464 2011-03-03 Steve Ellcey <sje@cup.hp.com>
19465
19466 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
19467
19468 2011-03-03 Jakub Jelinek <jakub@redhat.com>
19469
19470 PR c/47963
19471 * gimplify.c (omp_add_variable): Only call omp_notice_variable
19472 on TYPE_SIZE_UNIT if it is a DECL.
19473
19474 PR debug/47283
19475 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
19476 first operand is not is_gimple_mem_ref_addr, try to fold it.
19477 If the operand still isn't is_gimple_mem_ref_addr, clear
19478 MEM_EXPR on op0.
19479
19480 2011-03-03 Richard Guenther <rguenther@suse.de>
19481
19482 PR middle-end/47283
19483 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
19484 match comment.
19485 (refs_may_alias_p_1): For release branches return true if
19486 we are confused by our input.
19487
19488 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19489
19490 * config/s390/s390.c (s390_function_value): Rename to ...
19491 (s390_function_and_libcall_value): ... this.
19492 (s390_function_value): New function.
19493 (s390_libcall_value): New function.
19494 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
19495 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
19496 target macro definitions.
19497 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
19498
19499 2011-03-02 Joseph Myers <joseph@codesourcery.com>
19500
19501 * config/i386/freebsd64.h (CC1_SPEC): Define.
19502 * config/i386/linux64.h (CC1_SPEC): Define.
19503 * config/i386/x86-64.h (CC1_SPEC): Don't define.
19504
19505 2011-03-02 Anatoly Sokolov <aesok@post.ru>
19506
19507 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
19508 Remove.
19509 * config/stormy16/stormy16.c: Include reload.h.
19510 (xstormy16_memory_move_cost): New function.
19511 (TARGET_MEMORY_MOVE_COST): Define.
19512
19513 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
19514
19515 PR rtl-optimization/47925
19516 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
19517 with side effects. Remove the more-specific check for volatile asms.
19518
19519 2011-03-02 Alan Modra <amodra@gmail.com>
19520
19521 PR target/47935
19522 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
19523 toc relative addresses for valid offsets.
19524
19525 2011-03-01 Richard Guenther <rguenther@suse.de>
19526
19527 PR tree-optimization/47890
19528 * tree-vect-loop.c (get_initial_def_for_induction): Set
19529 related stmt properly.
19530
19531 2011-03-01 Richard Guenther <rguenther@suse.de>
19532
19533 PR lto/47924
19534 * lto-streamer.c (lto_record_common_node): Also register
19535 the canonical type.
19536
19537 2011-03-01 Richard Guenther <rguenther@suse.de>
19538
19539 PR lto/46911
19540 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19541 Do not stream DECL_ABSTRACT_ORIGIN.
19542 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19543 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19544 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19545 Do not stream DECL_ABSTRACT_ORIGIN.
19546 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
19547 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
19548
19549 2011-02-28 Anatoly Sokolov <aesok@post.ru>
19550
19551 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
19552 FUNCTION_VALUE_REGNO_P): Remove.
19553 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
19554 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
19555 Add 'outgoing' argument.
19556 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
19557 function.
19558 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19559 TARGET_FUNCTION_VALUE_REGNO_P): Define.
19560
19561 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
19562
19563 PR debug/28047
19564 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
19565 (lookup_filename): Likewise.
19566 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
19567
19568 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
19569 Jakub Jelinek <jakub@redhat.com>
19570
19571 PR middle-end/47893
19572 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
19573 (assign_stack_local_1): Change last argument type to int.
19574 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
19575 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
19576 don't record padding space into frame_space_list nor use those areas.
19577 (assign_stack_local): Adjust caller.
19578 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
19579 of assign_stack_local, pass 0 as last argument.
19580 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
19581 callers.
19582
19583 2011-02-28 Jakub Jelinek <jakub@redhat.com>
19584
19585 PR debug/47283
19586 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
19587 Use target address_mode and pointer_mode hooks instead of hardcoded
19588 Pmode and ptr_mode. Handle some simple cases of extending if
19589 POINTERS_EXTEND_UNSIGNED < 0.
19590 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
19591 Call convert_debug_memory_address.
19592 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
19593 convert_debug_memory_address.
19594
19595 PR middle-end/46790
19596 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
19597 * configure: Regenerated.
19598 * config.in: Regenerated.
19599 * varasm.c (default_function_section): Return NULL
19600 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
19601
19602 2011-02-28 Martin Jambor <mjambor@suse.cz>
19603
19604 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
19605 the description to match the printed values.
19606
19607 2011-02-28 Richard Guenther <rguenther@suse.de>
19608
19609 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
19610 of the copied scope tree.
19611
19612 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19613
19614 * doc/extend.texi (Function Attributes): Avoid deeply (and
19615 wrongly) nested tables.
19616
19617 2011-02-27 Jakub Jelinek <jakub@redhat.com>
19618
19619 PR middle-end/47903
19620 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
19621 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
19622 r isn't op0 nor op1.
19623
19624 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
19625
19626 * config/avr/avr.md: Remove magic comment for emacs.
19627
19628 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
19629
19630 PR target/45261
19631 * config/avr/avr.c (avr_option_override): Use error on bad options.
19632 (avr_help): New function.
19633 (TARGET_HELP): Define.
19634
19635 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
19636
19637 PR target/42240
19638 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
19639 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
19640
19641 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
19642
19643 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
19644 (ARM Options): Ditto.
19645 (i386 and x86-64 Options): Ditto.
19646 (RX Options): Ditto.
19647 (SPARC Options): Ditto.
19648
19649 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
19650
19651 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
19652 FreeBSD 6 and later. Generally use cpu generic.
19653
19654 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
19655
19656 * doc/cpp.texi: Update copyright years.
19657
19658 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
19659
19660 PR target/46898
19661 * config/lm32/lm32.md (ashrsi3): Added needed variable.
19662
19663 2011-02-25 Jon Beniston <jon@beniston.com>
19664
19665 PR target/46898
19666 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
19667 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
19668 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
19669 (lm32_block_move_inline): Add type cast to remove warning.
19670 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
19671 (gen_int_relational): Move declarations to start of function.
19672
19673 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
19674
19675 PR tree-optimization/45470
19676 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
19677 can throw internally only.
19678 * tree-vect-stmts.c (vectorizable_call): Likewise.
19679
19680 2011-02-24 Anatoly Sokolov <aesok@post.ru>
19681
19682 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
19683 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
19684 * config/stormy16/stormy16-protos.h
19685 (xstormy16_preferred_reload_class): Remove.
19686 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
19687 static. Change 'rclass' argument and return type to reg_class_t.
19688 (TARGET_PREFERRED_RELOAD_CLASS,
19689 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
19690
19691 2011-02-24 Richard Guenther <rguenther@suse.de>
19692
19693 * lto-streamer-in.c (input_bb): Do not find referenced vars
19694 in debug statements.
19695
19696 2011-02-23 Jason Merrill <jason@redhat.com>
19697
19698 * common.opt (fabi-version): Document v5 and v6.
19699
19700 2011-02-23 Richard Guenther <rguenther@suse.de>
19701
19702 PR tree-optimization/47849
19703 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
19704
19705 2011-02-23 Jie Zhang <jie@codesourcery.com>
19706
19707 * opts-common.c (decode_cmdline_option): Print empty string
19708 argument as "" in decoded->orig_option_with_args_text.
19709 * gcc.c (execute): Print empty string argument as ""
19710 in the verbose output.
19711 (do_spec_1): Keep empty string argument.
19712
19713 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
19714
19715 * config.gcc: Declare score-* and crx-* obsolete.
19716
19717 2011-02-23 Jie Zhang <jie@codesourcery.com>
19718
19719 PR rtl-optimization/47763
19720 * web.c (web_main): Ignore naked clobber when replacing register.
19721
19722 2011-02-22 Anatoly Sokolov <aesok@post.ru>
19723
19724 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19725 Remove.
19726
19727 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
19728
19729 PR doc/47848
19730 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
19731
19732 2011-02-22 Mike Stump <mikestump@comcast.net>
19733
19734 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
19735 assembler.
19736 * configure: Regenerate.
19737
19738 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
19739
19740 PR rtl-optimization/46002
19741 * ira-color.c (update_copy_costs): Change class intersection
19742 test to reg_class_contents[] test of 'hard_regno'.
19743
19744 2011-02-21 Joseph Myers <joseph@codesourcery.com>
19745
19746 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
19747 than Driver option.
19748 * config/hpux11.opt (mt): Likewise.
19749 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
19750 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
19751 * config/vax/elf.opt (mno-asm-pic): Likewise.
19752 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
19753
19754 2011-02-21 Mike Stump <mikestump@comcast.net>
19755
19756 PR target/47822
19757 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
19758 tree so we can get save the type.
19759 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
19760 for CFString instead of trying to use past the end of the builtins.
19761 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
19762 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
19763 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
19764 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
19765 Rename to darwin_builtin_cfstring.
19766 (darwin_init_cfstring_builtins): Return the built type.
19767
19768 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
19769
19770 PR target/47840
19771 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
19772 (_mm256_insert_epi64): Use _mm_insert_epi64.
19773
19774 2011-02-21 Anatoly Sokolov <aesok@post.ru>
19775
19776 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19777 * config/stormy16/stormy16-protos.h
19778 (xstormy16_mode_dependent_address_p): Remove.
19779 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
19780 Make static. Change return type to bool. Change argument type to
19781 const_rtx. Remove dead code.
19782 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19783
19784 2011-02-21 Richard Guenther <rguenther@suse.de>
19785
19786 PR lto/47820
19787 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
19788 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19789 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
19790 TUs context.
19791 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19792 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
19793
19794 2011-02-20 Richard Guenther <rguenther@suse.de>
19795
19796 PR lto/47822
19797 * tree.c (free_lang_data_in_decl): Clean builtins from
19798 the TU decl BLOCK_VARS.
19799
19800 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
19801
19802 PR debug/47620
19803 PR debug/47630
19804 * haifa-sched.c (fix_tick_ready): Skip tick computation
19805 for debug insns.
19806
19807 2011-02-19 Richard Guenther <rguenther@suse.de>
19808
19809 PR lto/47647
19810 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
19811 Remove lazy BLOCK_VARS streaming.
19812 (lto_input_ts_block_tree_pointers): Likewise.
19813 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
19814
19815 2011-02-19 Joseph Myers <joseph@codesourcery.com>
19816
19817 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
19818
19819 2011-02-19 Joseph Myers <joseph@codesourcery.com>
19820
19821 * config/i386/biarch32.h, config/i386/mach.h,
19822 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
19823
19824 2011-02-19 Jakub Jelinek <jakub@redhat.com>
19825
19826 PR target/47800
19827 * config/i386/i386.md (peephole2 for shift and plus): Use
19828 operands[1] original mode in the first insn.
19829
19830 2011-02-18 Mike Stump <mikestump@comcast.net>
19831
19832 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
19833
19834 2011-02-18 Jan Hubicka <jh@suse.cz>
19835
19836 PR middle-end/47788
19837 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
19838 to zero when the function is not inlinable at all.
19839
19840 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19841
19842 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
19843 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
19844 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
19845 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
19846 * config/pa/t-pa64: Likewise.
19847 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
19848
19849 2011-02-18 Jakub Jelinek <jakub@redhat.com>
19850
19851 PR driver/47787
19852 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
19853
19854 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19855
19856 PR target/47792
19857 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
19858
19859 2011-02-18 Anatoly Sokolov <aesok@post.ru>
19860
19861 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19862 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
19863 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
19864 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19865 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
19866 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
19867 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
19868 m32r_load_postinc_p, m32r_store_preinc_predec_p,
19869 m32r_legitimate_address_p): New functions.
19870 * config/m32r/constraints.md (constraint "S"): Don't use
19871 STORE_PREINC_PREDEC_P.
19872 (constraint "U"): Don't use LOAD_POSTINC_P.
19873
19874 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
19875
19876 PR rtl-optimization/46178
19877 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
19878 compute ira_hard_regno_cover_class[].
19879
19880 2011-02-18 Richard Guenther <rguenther@suse.de>
19881
19882 PR lto/47798
19883 * lto-streamer.h (lto_global_var_decls): Declare.
19884 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
19885 statics for global var processing.
19886
19887 2011-02-18 Richard Guenther <rguenther@suse.de>
19888
19889 PR tree-optimization/47737
19890 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
19891 edge dominance check.
19892
19893 2011-02-18 Jakub Jelinek <jakub@redhat.com>
19894
19895 PR debug/47780
19896 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
19897 avoid invalid rtx sharing.
19898
19899 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
19900
19901 * doc/cpp.texi (Obsolete Features): Add background on the
19902 origin of assertions.
19903
19904 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
19905
19906 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
19907 objc_abi == 2.
19908 * config/darwin.c (output_objc_section_asm_op): Added support for
19909 ABI v1 and v2.
19910 (is_objc_metadata): New.
19911 (darwin_objc2_section): New.
19912 (darwin_objc1_section): New.
19913 (machopic_select_section): Added support for ABI v1 and v2.
19914 (darwin_emit_objc_zeroed): New.
19915 (darwin_output_aligned_bss): Detect objc metadata and treat it
19916 appropriately.
19917 (darwin_asm_output_aligned_decl_common): Same.
19918 (darwin_asm_output_aligned_decl_local): Same.
19919 * config/darwin-sections.def: Updated for ABI v1 and v2.
19920 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
19921 compiling Objective-C code for the NeXT runtime, default to using
19922 ABI version 0 for 32-bit, and version 2 for 64-bit.
19923
19924 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19925
19926 * common.opt (optimize_fast): New Variable.
19927 * opts.c (default_options_optimization): Use opts->x_optimize_fast
19928 instead of local variable ofast.
19929
19930 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
19931
19932 * doc/invoke.texi (fobjc-abi-version): Documented.
19933 (fobjc-nilcheck): Documented.
19934 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
19935 version.
19936
19937 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19938
19939 PR driver/47390
19940 * common.opt (export-dynamic): New Driver option.
19941 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
19942
19943 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19944
19945 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
19946
19947 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
19948 Jan Hubicka <jh@suse.cz>
19949
19950 PR debug/47106
19951 PR debug/47402
19952 * cfgexpand.c (account_used_vars_for_block): Remove.
19953 (estimated_stack_frame_size): Use referenced vars.
19954 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
19955 that were referenced in the original function. Test src_fn
19956 rather than cfun. Drop redundant get_var_ann.
19957 (setup_one_parameter): Drop redundant get_var_ann.
19958 (declare_return_variable): Likewise.
19959 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
19960 (copy_arguments_for_versioning): Drop redundant get_var_ann.
19961 * ipa-inline.c (compute_inline_parameters): Do not compute
19962 disregard_inline_limits here.
19963 (compute_inlinable_for_current, pass_inlinable): New.
19964 (pass_inline_parameters): Require PROP_referenced_vars.
19965 * cgraphunit.c (cgraph_process_new_functions): Don't run
19966 compute_inline_parameters explicitly unless function is in SSA form.
19967 (cgraph_analyze_function): Set .disregard_inline_limits.
19968 * tree-sra.c (convert_callers): Compute inliner parameters
19969 only for functions already in SSA form.
19970
19971 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19972
19973 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
19974 -mlittle-endian-data.
19975
19976 2011-02-17 Joseph Myers <joseph@codesourcery.com>
19977
19978 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
19979 -mno-fpu, not -fpu and -no-fpu.
19980 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
19981 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
19982
19983 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
19984
19985 PR target/43653
19986 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
19987 input reload with PLUS RTX.
19988
19989 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19990
19991 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
19992 of InverseVar(MDMX).
19993
19994 2011-02-16 Joseph Myers <joseph@codesourcery.com>
19995
19996 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
19997 --m4-340.
19998
19999 2011-02-16 Joseph Myers <joseph@codesourcery.com>
20000
20001 * config/mn10300/mn10300.opt (mno-crt0): New.
20002
20003 2011-02-16 Joseph Myers <joseph@codesourcery.com>
20004
20005 * config/m68k/uclinux.opt (static-libc): New Driver option.
20006
20007 2011-02-16 Joseph Myers <joseph@codesourcery.com>
20008
20009 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
20010
20011 2011-02-16 Joseph Myers <joseph@codesourcery.com>
20012
20013 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
20014 %{muser-extend-enabled}.
20015
20016 2011-02-16 Richard Guenther <rguenther@suse.de>
20017
20018 PR tree-optimization/47738
20019 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
20020 the TODO from tree_predictive_commoning.
20021
20022 2011-02-15 Jeff Law <law@redhat.com>
20023
20024 Revert
20025 2011-01-25 Jeff Law <law@redhat.com>
20026
20027 PR rtl-optimization/37273
20028 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20029 handle them like argument loads from stack slots. Do not double
20030 count memory for memory constants and argument loads from stack slots.
20031
20032 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
20033
20034 PR target/47755
20035 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
20036 mode for vector constants. Remove code that checks for TImode.
20037
20038 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
20039
20040 PR debug/47106
20041 PR debug/47402
20042 * cgraph.h (compute_inline_parameters): Return void.
20043 * ipa-inline.c (compute_inline_parameters): Adjust.
20044
20045 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
20046
20047 PR debug/47106
20048 PR debug/47402
20049 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
20050 rather than decl.
20051 * cfgexpand.c (estimated_stack_frame_size): Likewise.
20052 * ipa-inline.c (compute_inline_parameters): Adjust.
20053
20054 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
20055
20056 PR debug/47106
20057 PR debug/47402
20058 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
20059 Adjust all users. Pass FN to...
20060 * tree-flow-inline.h (first_referenced_var): ... this. Add
20061 fn argument.
20062 * ipa-struct-reorg.c: Adjust.
20063 * tree-dfa.c: Adjust.
20064 * tree-into-ssa.c: Adjust.
20065 * tree-sra.c: Adjust.
20066 * tree-ssa-alias.c: Adjust.
20067 * tree-ssa-live.c: Adjust.
20068 * tree-ssa.c: Adjust.
20069 * tree-ssanames.c: Adjust.
20070 * tree-tailcall.c: Adjust.
20071
20072 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
20073
20074 PR debug/47106
20075 PR debug/47402
20076 * tree-flow.h (referenced_var_lookup): Add fn parameter.
20077 Adjust all callers.
20078 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
20079 * tree-flow-inline.h: Adjust.
20080 * gimple-pretty-print.c: Adjust.
20081 * tree-into-ssa.c: Adjust.
20082 * tree-ssa.c: Adjust.
20083 * cfgexpand.c: Adjust.
20084
20085 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20086
20087 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
20088 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20089 (EXTRA_CONSTRAINT): Delete.
20090 * config/iq2000/constraints.md: New file.
20091 * config/iq2000/iq2000.md: Include it.
20092 (define_insn ""): Delete.
20093 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
20094 unsupported constraint letters from patterns.
20095 (call_value, call_value_internal1): Likewise.
20096 (call_value_multiple_internal1): Likewise.
20097
20098 2011-02-15 Nick Clifton <nickc@redhat.com>
20099
20100 * config/mn10300/mn10300.c: Include tm-constrs.h.
20101 (struct liw_data): New data structure describing an LIW candidate
20102 instruction.
20103 (extract_bundle): Use struct liw_data. Allow small integer
20104 operands for some instructions.
20105 (check_liw_constraints): Use struct liw_data. Remove swapped
20106 parameter. Add comments describing the checks. Fix bug when
20107 assigning the source of liw1 to the source of liw2.
20108 (liw_candidate): Delete. Code moved into extract_bundle.
20109 (mn10300_bundle_liw): Use struct liw_data. Check constraints
20110 before swapping.
20111 * config/mn10300/predicates.md (liw_operand): New predicate.
20112 Allows registers and small integer constants.
20113 * config/mn10300/constraints.md (O): New constraint. Accetps
20114 integers in the range -8 to +7 inclusive.
20115 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
20116 for moving a small integer into a register. Give this alternative
20117 LIW attributes.
20118 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
20119 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
20120 using the J,K,L and M constraints,
20121 (liw): Remove SI mode on second operands to allow for HI and QI
20122 mode values.
20123 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
20124 instruction.
20125
20126 2011-02-15 Richard Guenther <rguenther@suse.de>
20127
20128 PR tree-optimization/47743
20129 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
20130 for a non-type-compatible VN lookup bail out.
20131
20132 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20133
20134 * config/fr30/constraints.md: New file.
20135 * config/fr30/fr30.md: Include it.
20136 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
20137 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20138 (EXTRA_CONSTRAINT): Delete.
20139
20140 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
20141
20142 * config/frv/constraints.md: New file.
20143 * config/frv/predicates.md: Include it.
20144 * config/frv/frv.c (reg_class_from_letter): Delete.
20145 (frv_option_override): Don't initialize it.
20146 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
20147 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
20148 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
20149 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20150 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
20151 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20152 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
20153 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
20154 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
20155 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
20156 (REG_CLASS_FROM_CONSTRAINT): Delete.
20157
20158 2011-02-15 Jakub Jelinek <jakub@redhat.com>
20159
20160 PR middle-end/47581
20161 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
20162 if frame size is 0 in a leaf function.
20163
20164 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20165
20166 PR pch/14940
20167 * config/alpha/host-osf.c: New file.
20168 * config/alpha/x-osf: New file.
20169 * config.host (alpha*-dec-osf*): Use it.
20170
20171 2011-02-14 Anatoly Sokolov <aesok@post.ru>
20172
20173 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20174 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
20175 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
20176 (rx_mode_dependent_address_p): ...this. Make static. Change argument
20177 type to const_rtx.
20178 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20179
20180 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20181
20182 * config/stormy16/constraints.md: New file.
20183 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
20184 Use satisfies_constraint_Q and satisfies_constraint_R.
20185 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
20186 Delete.
20187 (xstormy16_legitiamte_address_p): Declare.
20188 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
20189 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20190 (EXTRA_CONSTRAINT): Delete.
20191 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
20192 Un-staticize.
20193 (xstormy16_extra_constraint_p): Delete.
20194
20195 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
20196
20197 PR tree-optimization/46494
20198 * loop-unroll.c (split_edge_and_insert): Adjust comment.
20199 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
20200 (pass_rtl_loop_done): Add TODO_verify_flow.
20201 * fwprop.c (pass_rtl_fwprop): Likewise.
20202 * modulo-sched.c (pass_sms): Likewise.
20203 * tree-ssa-dom.c (pass_dominator): Likewise.
20204 * tree-ssa-loop-ch.c (pass_ch): Likewise.
20205 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
20206 (pass_tree_loop_done): Likewise.
20207 * tree-ssa-pre.c (execute_pre): Likewise.
20208 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
20209 * tree-ssa-sink.c (pass_sink_code): Likewise.
20210 * tree-vrp.c (pass_vrp): Likewise.
20211
20212 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20213
20214 * config/v850/constraints.md: New file.
20215 * config/v850/v850.md: Include it.
20216 * config/v850/predicates.md (reg_or_0_operand): Use
20217 satisfies_constraint_G.
20218 (special_symbolref_operand): Use satisfies_constraint_K.
20219 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
20220 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
20221 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
20222 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
20223 (EXTRA_CONSTRAINT): Delete.
20224 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
20225 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
20226 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
20227
20228 2011-02-14 Anatoly Sokolov <aesok@post.ru>
20229
20230 PR target/47696
20231 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
20232 description.
20233
20234 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
20235
20236 * config/mcore/constraints.md: New file.
20237 * config/mcore/mcore.md: Include it.
20238 * config/mcore/mcore.c (reg_class_from_letter): Delete.
20239 * config/mcore/mcore.h (reg_class_from_letter): Delete.
20240 (REG_CLASS_FROM_LETTER): Delete.
20241 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
20242 insn_const_int_ok_for_constraint.
20243 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
20244 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
20245 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20246 (EXTRA_CONSTRAINT): Delete.
20247
20248 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20249
20250 PR ada/41929
20251 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
20252 (IS_SIGHANDLER): Define.
20253 (sparc64_is_sighandler): New function, split off from
20254 sparc64_fallback_frame_state.
20255 (sparc_is_sighandler): New function, split off from
20256 sparc_fallback_frame_state.
20257 (sparc64_fallback_frame_state): Merge with ...
20258 (sparc_fallback_frame_state): ... this into ...
20259 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
20260 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
20261 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
20262 stack instead of hardcoded offsets.
20263
20264 2011-02-14 Andriy Gapon <avg@freebsd.org>
20265
20266 PR target/45808
20267 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
20268
20269 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20270
20271 * configure: Regenerate.
20272
20273 2011-02-12 Joseph Myers <joseph@codesourcery.com>
20274
20275 PR driver/45731
20276 * gcc.c (asm_options): Correct spec matching --target-help.
20277
20278 2011-02-12 Martin Jambor <mjambor@suse.cz>
20279
20280 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
20281 to gimple call error.
20282
20283 2011-02-12 Mike Stump <mikestump@comcast.net>
20284
20285 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
20286 comments in backslash regions.
20287
20288 2011-02-12 Mike Stump <mikestump@comcast.net>
20289 Jakub Jelinek <jakub@redhat.com>
20290 Iain Sandoe <iains@gcc.gnu.org>
20291
20292 PR target/47324
20293 * dwarf2out.c (output_cfa_loc): When required, apply the
20294 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
20295 (output_loc_sequence): Likewise.
20296 (output_loc_operands_raw): Likewise.
20297 (output_loc_sequence_raw): Likewise.
20298 (output_cfa_loc): Likewise.
20299 (output_loc_list): Suppress register number adjustment when
20300 calling output_loc_sequence()
20301 (output_die): Likewise.
20302
20303 2011-02-12 Anatoly Sokolov <aesok@post.ru>
20304
20305 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
20306 Remove macros.
20307 * config/xtensa/xtensa.c (xtensa_register_move_cost,
20308 xtensa_memory_move_cost): New functions.
20309 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
20310
20311 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
20312
20313 PR lto/47225
20314 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
20315 in the current directory.
20316 * configure: Rebuilt.
20317
20318 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20319
20320 * config/darwin.c (darwin_override_options): Add a hunk missed
20321 from the commit of r168571. Trim comment line lengths and
20322 correct indents of the preceding block.
20323
20324 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
20325
20326 * gcc.c (driver_handle_option): Concatenate the argument to -F with
20327 the switch.
20328
20329 2011-02-11 Joseph Myers <joseph@codesourcery.com>
20330
20331 * common.opt (nostartfiles): New Driver option.
20332
20333 2011-02-11 Xinliang David Li <davidxl@google.com>
20334
20335 PR tree-optimization/47707
20336 * tree-chrec.c (convert_affine_scev): Keep type precision.
20337
20338 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
20339
20340 PR tree-optimization/47420
20341 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
20342
20343 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
20344
20345 PR rtl-optimization/47614
20346 * rtl.h (check_for_inc_dec): Declare.
20347 * dse.c (check_for_inc_dec): Externalize...
20348 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
20349 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
20350
20351 2011-02-11 Joseph Myers <joseph@codesourcery.com>
20352
20353 PR driver/47678
20354 * gcc.c (main): Do not compile inputs if there were errors in
20355 option handling.
20356 * opts-common.c (read_cmdline_option): Check for wrong language
20357 after other error checks.
20358
20359 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
20360
20361 * cgraph.c: Fix comment typos.
20362 * cgraph.h: Likewise.
20363 * cgraphunit.c: Likewise.
20364 * ipa-cp.c: Likewise.
20365 * ipa-inline.c: Likewise.
20366 * ipa-prop.c: Likewise.
20367 * ipa-pure-const.c: Likewise.
20368 * ipa-ref.c: Likewise.
20369 * ipa-reference.c: Likewise.
20370
20371 2011-02-11 Jakub Jelinek <jakub@redhat.com>
20372
20373 PR debug/47684
20374 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
20375
20376 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20377
20378 PR testsuite/47400
20379 * doc/sourcebuild.texi (Require Support): Document
20380 dg-require-ascii-locale.
20381
20382 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
20383
20384 * doc/lto.texi (Write summary): Fix missing parentheses.
20385
20386 2011-02-10 DJ Delorie <dj@redhat.com>
20387
20388 * config/m32c/m32c.c (m32c_option_override): Disable
20389 -fcombine-stack-adjustments until flag value tracking and compare
20390 optimization can be rewritten.
20391
20392 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
20393
20394 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
20395 PROCESSOR_POWER7.
20396 (PROCESSOR_DEFAULT64): Likewise.
20397
20398 2011-02-10 Richard Henderson <rth@redhat.com>
20399
20400 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
20401 change from 2011-02-03.
20402 * config/rx/rx.c (flags_from_code): Likewise.
20403 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
20404 is valid, n/pz otherwise.
20405 (rx_select_cc_mode): Return CCmode if Y is not zero.
20406
20407 2011-02-10 Richard Guenther <rguenther@suse.de>
20408
20409 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
20410
20411 2011-02-10 Richard Guenther <rguenther@suse.de>
20412
20413 PR tree-optimization/47677
20414 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
20415
20416 2011-02-10 Jakub Jelinek <jakub@redhat.com>
20417
20418 PR target/47665
20419 * combine.c (make_compound_operation): Only change shifts into
20420 multiplication for SCALAR_INT_MODE_P.
20421
20422 2011-02-10 Jie Zhang <jie@codesourcery.com>
20423
20424 PR testsuite/47622
20425 Revert
20426 2011-02-05 Jie Zhang <jie@codesourcery.com>
20427 PR debug/42631
20428 * web.c (entry_register): Don't clobber the number of the
20429 first uninitialized reference in used[].
20430
20431 2011-02-09 Richard Guenther <rguenther@suse.de>
20432
20433 PR tree-optimization/47664
20434 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
20435 all edges again.
20436
20437 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
20438
20439 PR target/46481
20440 PR target/47032
20441 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
20442 PROCESSOR_POWER7.
20443 (PROCESSOR_DEFAULT64): Same.
20444 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
20445
20446 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20447
20448 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
20449
20450 2011-02-09 Martin Jambor <mjambor@suse.cz>
20451
20452 PR middle-end/45505
20453 * tree-sra.c (struct access): New flags grp_scalar_read and
20454 grp_scalar_write. Changed description of assignment read and write
20455 flags.
20456 (dump_access): Dump new flags, reorder all of them.
20457 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
20458 to detect multiple scalar reads.
20459 (analyze_access_subtree): Use the new scalar read write flags instead
20460 of the old flags. Adjusted comments.
20461
20462 2011-02-08 DJ Delorie <dj@redhat.com>
20463
20464 PR target/47548
20465 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
20466 patterns.
20467
20468 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20469
20470 * config/m68k/uclinux.opt: New.
20471 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
20472
20473 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20474
20475 * config/cris/elf.opt (sim): New Driver option.
20476
20477 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20478
20479 * config/xtensa/elf.opt: New.
20480 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
20481
20482 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20483
20484 * config/vax/elf.opt: New.
20485 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
20486
20487 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20488
20489 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
20490
20491 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20492
20493 * config/gnu-user.opt: New.
20494 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
20495 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
20496 *-*-uclinux*): Use gnu-user.opt.
20497
20498 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
20499
20500 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
20501 * config/i386/gnu.h (CPP_SPEC): Likewise.
20502
20503 2011-02-08 Ian Lance Taylor <iant@google.com>
20504
20505 * common.opt (fcx-limited-range): Add SetByCombined flag.
20506 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
20507 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
20508 (fassociative-math, freciprocal-math): Likewise.
20509 (funsafe-math-optimizations): Likewise.
20510 * opth-gen.awk: Handle SetByCombined.
20511 * optc-gen.awk: Likewise.
20512 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
20513 (set_unsafe_math_optimizations_flags): Likewise.
20514 * doc/options.texi (Option properties): Document SetByCombined.
20515
20516 2011-02-08 Joseph Myers <joseph@codesourcery.com>
20517
20518 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
20519 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
20520 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
20521 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
20522 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
20523
20524 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
20525
20526 PR tree-optimization/46834
20527 PR tree-optimization/46994
20528 PR tree-optimization/46995
20529 * graphite-sese-to-poly.c (used_outside_reduction): New.
20530 (detect_commutative_reduction): Call used_outside_reduction.
20531 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
20532 translate_scalar_reduction_to_array only when at least one
20533 loop-phi/close-phi tuple has been detected.
20534
20535 2011-02-08 Richard Guenther <rguenther@suse.de>
20536
20537 PR middle-end/47639
20538 * tree-vect-generic.c (expand_vector_operations_1): Update
20539 stmts here ...
20540 (expand_vector_operations): ... not here. Cleanup EH info
20541 and the CFG if required.
20542
20543 2011-02-08 Richard Guenther <rguenther@suse.de>
20544
20545 PR tree-optimization/47641
20546 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
20547 require type compatibility.
20548
20549 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20550
20551 * gimple-low.c (lower_function_body): Don't remove the location of
20552 the return statement here.
20553 (lower_gimple_return): Do it here instead but only if the return
20554 statement is actually used twice.
20555
20556 2011-02-08 Richard Guenther <rguenther@suse.de>
20557
20558 PR tree-optimization/47632
20559 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
20560 unused up_to_stmt parameter, return whether cfg-cleanup is
20561 necessary, remove EH info properly.
20562 (forward_propagate_into_gimple_cond): Adjust caller.
20563 (forward_propagate_into_cond): Likewise.
20564 (forward_propagate_comparison): Likewise.
20565 (tree_ssa_forward_propagate_single_use_vars): Make
20566 forward_propagate_comparison case similar to the two others.
20567
20568 2011-02-08 Nick Clifton <nickc@redhat.com>
20569
20570 * config/mn10300/mn10300.opt (mliw): New command line option.
20571 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
20572 (liw_bundling): New automaton.
20573 (liw): New attribute.
20574 (liw_op): New attribute.
20575 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
20576 (movsi_internal): Add LIW attributes.
20577 (andsi3): Likewise.
20578 (iorsi3): Likewise.
20579 (xorsi3): Likewise.
20580 (addsi3): Separate register and immediate alternatives.
20581 Add LIW attributes.
20582 (subsi3): Likewise.
20583 (cmpsi): Likewise.
20584 (aslsi3): Likewise.
20585 (lshrsi3): Likewise.
20586 (ashrsi3): Likewise.
20587 (liw): New pattern.
20588 * config/mn10300/mn10300.c (liw_op_names): New
20589 (mn10300_print_operand): Handle 'W' operand descriptor.
20590 (extract_bundle): New function.
20591 (check_liw_constraints): New function.
20592 (liw_candidate): New function.
20593 (mn10300_bundle_liw): New function.
20594 (mn10300_reorg): New function.
20595 (TARGET_MACHINE_DEPENDENT_REORG): Define.
20596 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
20597 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
20598 __LIW__ or __NO_LIW__.
20599 * doc/invoke.texi: Describe the -mliw command line option.
20600
20601 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20602
20603 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
20604 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
20605 pthread_mutex_unlock): Remove.
20606 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
20607 * config/pa/t-pa64: Likewise.
20608 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
20609 shared libc if not linking against libpthread.
20610 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
20611
20612 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
20613
20614 PR target/47558
20615 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
20616 on 10.6 and later to ensure that we always use the unwinder from
20617 the system. Only add -no_compact_unwind when tarteting darwin
20618 10.6 or later.
20619
20620 2011-02-07 Steve Ellcey <sje@cup.hp.com>
20621
20622 PR target/46997
20623 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
20624 (vec_interleave_lowv2sf): Ditto.
20625 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
20626 (vec_extract_oddv2sf): Ditto.
20627
20628 2011-02-07 Mike Stump <mikestump@comcast.net>
20629
20630 PR target/42333
20631 Add __ieee_divdc3 entry point.
20632 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
20633 entry point.
20634 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
20635 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
20636 * config/darwin.c (darwin_rename_builtins): Add.
20637 * config/darwin-protos.h (darwin_rename_builtins): Add.
20638
20639 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
20640
20641 PR target/47636
20642 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
20643 for the condition.
20644
20645 2011-02-07 Mike Stump <mikestump@comcast.net>
20646
20647 * config/darwin.opt (mmacosx-version-min): Update default OS version.
20648
20649 2011-02-07 Denis Chertykov <chertykov@gmail.com>
20650
20651 PR target/47534
20652 * config/avr/libgcc.S (exit): Move .endfunc
20653
20654 2011-02-07 Richard Guenther <rguenther@suse.de>
20655
20656 PR tree-optimization/47615
20657 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
20658 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
20659 (run_scc_vn): Initialize it.
20660 (visit_reference_op_load): Use it.
20661 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
20662
20663 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20664
20665 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
20666 DImode trapping arithmetic libfuncs.
20667
20668 2011-02-07 Richard Guenther <rguenther@suse.de>
20669
20670 PR tree-optimization/47621
20671 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
20672 two duplicates ...
20673 (execute_update_addresses_taken): ... here. Make it more
20674 conservative in what we accept.
20675
20676 2011-02-06 Joseph Myers <joseph@codesourcery.com>
20677
20678 * config/sparc/freebsd.h (ASM_SPEC): Define.
20679 * config/sparc/vxworks.h (ASM_SPEC): Define.
20680
20681 2011-02-06 Joseph Myers <joseph@codesourcery.com>
20682
20683 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20684
20685 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
20686
20687 * doc/invoke.texi: Remove reference to compiler internals from
20688 user documentation.
20689
20690 * reg-notes.def: Remove REG_VALUE_PROFILE.
20691 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
20692
20693 2011-02-05 Jakub Jelinek <jakub@redhat.com>
20694
20695 PR middle-end/47610
20696 * varasm.c (default_section_type_flags): If decl is NULL,
20697 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
20698
20699 2011-02-05 Jie Zhang <jie@codesourcery.com>
20700
20701 PR debug/42631
20702 * web.c (entry_register): Don't clobber the number of the
20703 first uninitialized reference in used[].
20704
20705 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
20706
20707 PR tree-optimization/46194
20708 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
20709 (build_classic_dist_vector_1): Do not represent classic distance
20710 vectors when the access functions are variating in different loops.
20711
20712 2011-02-04 Joseph Myers <joseph@codesourcery.com>
20713
20714 * config/mips/iris6.opt: New.
20715 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
20716
20717 2011-02-04 Richard Henderson <rth@redhat.com>
20718 Steve Ellcey <sje@cup.hp.com>
20719
20720 PR target/46997
20721 * config/ia64/predicates.md (mux1_brcst_element): New.
20722 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
20723 * config/ia64/ia64.c (ia64_unpack_assemble): New.
20724 (ia64_unpack_sign): New.
20725 (ia64_expand_unpack): Rewrite using new routines.
20726 (ia64_expand_widen_sum): Ditto.
20727 (ia64_expand_dot_prod_v8qi): Ditto.
20728 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
20729 routines, add endian check.
20730 (pmpy2_even): Rename from pmpy2_r, add endian check.
20731 (pmpy2_odd): Rename from pmpy2_l, add endian check.
20732 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
20733 (vec_widen_smult_hi_v4hi): Ditto.
20734 (vec_widen_umult_lo_v4hi): Ditto.
20735 (vec_widen_umult_hi_v4hi): Ditto.
20736 (mulv2si3): Change endian checks.
20737 (sdot_prodv4hi): Rewrite with new calls.
20738 (udot_prodv4hi): New.
20739 (vec_pack_ssat_v4hi): Add endian check.
20740 (vec_pack_usat_v4hi): Ditto.
20741 (vec_pack_ssat_v2si): Ditto.
20742 (max1_even): Rename from max1_r, add endian check.
20743 (max1_odd): Rename from max1_l, add endian check.
20744 (*mux1_rev): Format change.
20745 (*mux1_mix): Ditto.
20746 (*mux1_shuf): Ditto.
20747 (*mux1_alt): Ditto.
20748 (*mux1_brcst_v8qi): Use new predicate.
20749 (vec_extract_evenv8qi): Remove endian check.
20750 (vec_extract_oddv8qi): Ditto.
20751 (vec_interleave_lowv4hi): Format change.
20752 (vec_interleave_highv4hi): Ditto.
20753 (mix2_even): Rename from mix2_r, add endian check.
20754 (mix2_odd): Rename from mux2_l, add endian check.
20755 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
20756 (vec_extract_evenodd_helper): Format change.
20757 (vec_extract_evenv4hi): Remove endian check.
20758 (vec_extract_oddv4hi): Remove endian check.
20759 (vec_interleave_lowv2si): Format change.
20760 (vec_interleave_highv2si): Format change.
20761 (vec_initv2si): Remove endian check.
20762 (vecinit_v2si): Add endian check.
20763 (reduc_splus_v2sf): Add endian check.
20764 (reduc_smax_v2sf): Ditto.
20765 (reduc_smin_v2sf): Ditto.
20766 (vec_initv2sf): Remove endian check.
20767 (fpack): Add endian check.
20768 (fswap): Add endian check.
20769 (vec_interleave_highv2sf): Add endian check.
20770 (vec_interleave_lowv2sf): Add endian check.
20771 (fmix_lr): Add endian check.
20772 (vec_setv2sf): Format change.
20773 (*vec_extractv2sf_0_be): Use shift to extract operand.
20774 (*vec_extractv2sf_1_be): New.
20775 (vec_pack_trunc_v4hi): Add endian check.
20776 (vec_pack_trunc_v2si): Format change.
20777
20778 2011-02-04 Jakub Jelinek <jakub@redhat.com>
20779
20780 PR inline-asm/23200
20781 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
20782 do bb, locus and block comparison and disallow loads if it is not set.
20783 (stmt_is_replaceable_p): New function.
20784 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
20785 callers.
20786 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
20787 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
20788 SSA_NAME_DEF_STMT.
20789 * tree-flow.h (stmt_is_replaceable_p): New prototype.
20790
20791 2011-02-04 Joseph Myers <joseph@codesourcery.com>
20792
20793 * config/rs6000/xilinx.opt: New.
20794 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
20795
20796 2011-02-04 Joseph Myers <joseph@codesourcery.com>
20797
20798 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
20799
20800 2011-02-03 Anatoly Sokolov <aesok@post.ru>
20801
20802 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
20803 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
20804 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
20805 secondary_reload_info, xtensa_secondary_reload): Remove.
20806 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
20807 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
20808 (xtensa_preferred_reload_class): Make static. Change return and
20809 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
20810 Use CONST_DOUBLE_P predicate.
20811 (xtensa_preferred_output_reload_class): New function.
20812 (xtensa_secondary_reload): Make static.
20813
20814 2011-02-03 Joseph Myers <joseph@codesourcery.com>
20815
20816 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
20817 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
20818 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
20819
20820 2011-02-03 Jakub Jelinek <jakub@redhat.com>
20821
20822 PR middle-end/31490
20823 * output.h (SECTION_RELRO): Define.
20824 (SECTION_MACH_DEP): Adjust.
20825 (get_variable_section): New prototype.
20826 * varpool.c (varpool_finalize_named_section_flags): New function.
20827 (varpool_assemble_pending_decls): Call it.
20828 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
20829 * cgraphunit.c (cgraph_output_in_order): Call
20830 varpool_finalize_named_section_flags.
20831 * varasm.c (get_section): Allow section flags conflicts between
20832 relro and read-only sections if the section hasn't been declared yet.
20833 Set SECTION_OVERRIDE after diagnosing section type conflict.
20834 (get_variable_section): No longer static.
20835 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
20836 readonly sections that need relocations.
20837 (decl_readonly_section_1): New function.
20838 (decl_readonly_section): Use it.
20839
20840 Revert:
20841 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
20842 Steve Ellcey <sje@cup.hp.com>
20843
20844 PR middle-end/31490
20845 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
20846 if section attribute used.
20847
20848 2011-02-03 Jakub Jelinek <jakub@redhat.com>
20849
20850 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
20851 * config/darwin.c (SECTION_NO_ANCHOR): Define.
20852 (darwin_init_sections): Remove assertion.
20853
20854 2011-02-03 Nick Clifton <nickc@redhat.com>
20855
20856 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
20857 lt and ge.
20858 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
20859 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
20860 instead of "n" and "pz".
20861 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
20862 CC_FLAG_S.
20863
20864 2011-02-03 Jakub Jelinek <jakub@redhat.com>
20865
20866 PR target/47312
20867 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
20868 fma, expand FMA_EXPR as fma{,f,l} call.
20869
20870 PR lto/47274
20871 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
20872 copy them into a unsigned char variable and pass address of it to
20873 lto_output_data_stream.
20874
20875 PR target/47564
20876 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
20877 around backend_init_target and lang_dependent_init_target calls.
20878 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
20879 (verify_cgraph_node): Don't call set_cfun here. Use
20880 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
20881 Set error_found for incorrectly represented calls to thunks.
20882
20883 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
20884
20885 PR debug/43092
20886 PR rtl-optimization/43494
20887 * rtl.h (for_each_inc_dec_fn): New type.
20888 (for_each_inc_dec): Declare.
20889 * rtlanal.c (struct for_each_inc_dec_ops): New type.
20890 (for_each_inc_dec_find_inc_dec): New fn.
20891 (for_each_inc_dec_find_mem): New fn.
20892 (for_each_inc_dec): New fn.
20893 * dse.c (struct insn_size): Remove.
20894 (replace_inc_dec, replace_inc_dec_mem): Remove.
20895 (emit_inc_dec_insn_before): New fn.
20896 (check_for_inc_dec): Use it, along with for_each_inc_dec.
20897 (canon_address): Pass mem modes to cselib_lookup.
20898 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
20899 (cselib_lookup_from_insn): Likewise.
20900 (cselib_subst_to_values): Likewise.
20901 * cselib.c (find_slot_memmode): New var.
20902 (cselib_find_slot): New fn. Use it instead of
20903 htab_find_slot_with_hash everywhere.
20904 (entry_and_rtx_equal_p): Use find_slot_memmode.
20905 (autoinc_split): New fn.
20906 (rtx_equal_for_cselib_p): Rename and implement in terms of...
20907 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
20908 Deal with autoinc. Special-case recursion into MEMs.
20909 (cselib_hash_rtx): Likewise.
20910 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
20911 address and MEM modes.
20912 (cselib_subst_to_values): Add memmode, pass it on.
20913 Deal with autoinc.
20914 (cselib_lookup): Add memmode argument, pass it on.
20915 (cselib_lookup_from_insn): Add memmode.
20916 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
20917 (struct cselib_record_autoinc_data): New.
20918 (cselib_record_autoinc_cb): New fn.
20919 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
20920 mode to cselib_lookup. Reset autoinced REGs here instead of...
20921 (cselib_process_insn): ... here.
20922 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
20923 to cselib_lookup.
20924 (add_uses): Likewise, also to cselib_subst_to_values.
20925 (add_stores): Likewise.
20926 * sched-deps.c (add_insn_mem_dependence): Pass mode to
20927 cselib_subst_to_values.
20928 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
20929 * gcse.c (do_local_cprop): Adjusted.
20930 * postreload.c (reload_cse_simplify_set): Adjusted.
20931 (reload_cse_simplify_operands): Adjusted.
20932 * sel-sched-dump (debug_mem_addr_value): Pass mode.
20933
20934 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
20935
20936 PR tree-optimization/45122
20937 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
20938 unsafe assumptions when there's more than one loop exit.
20939
20940 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
20941
20942 PR target/47272
20943 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
20944 Document using vector double with the load/store builtins, and
20945 that the load/store builtins always use Altivec instructions.
20946
20947 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
20948 to use altivec memory instructions, even on VSX.
20949 (vector_altivec_store_<mode>): Ditto.
20950
20951 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
20952 function.
20953
20954 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20955 V2DF, V2DI support to load/store overloaded builtins.
20956
20957 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
20958 altivec load/store builtins for V2DF/V2DI types.
20959
20960 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20961 set avoid indexed addresses on power6 if -maltivec.
20962 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
20963 vector_altivec_load/vector_altivec_store builtins.
20964 (altivec_expand_st_builtin): Ditto.
20965 (altivec_expand_builtin): Add VSX memory builtins.
20966 (rs6000_init_builtins): Add V2DI types to internal types.
20967 (altivec_init_builtins): Add support for V2DF/V2DI altivec
20968 load/store builtins.
20969 (rs6000_address_for_altivec): Insure memory address is appropriate
20970 for Altivec.
20971
20972 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
20973 vec_vsx_ld and vec_vsx_st.
20974 (vsx_store_<mode>): Ditto.
20975
20976 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
20977 variables to hold long long types for VSX vector memory builtins.
20978 (RS6000_BTI_unsigned_long_long): Ditto.
20979 (long_long_integer_type_internal_node): Ditti.
20980 (long_long_unsigned_type_internal_node): Ditti.
20981
20982 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
20983 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
20984 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
20985
20986 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
20987 short cuts.
20988 (vec_vsx_st): Ditto.
20989
20990 2011-02-02 Joseph Myers <joseph@codesourcery.com>
20991
20992 * config/pa/pa-hpux10.opt: New.
20993 * config/hpux11.opt (pthread): New Driver option.
20994 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
20995 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
20996
20997 2011-02-02 Joseph Myers <joseph@codesourcery.com>
20998
20999 * config/ia64/vms.opt: New.
21000 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
21001
21002 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
21003
21004 PR target/47580
21005 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
21006 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
21007 generator functions.
21008 (vsx_floatuns<VSi><mode>2): Ditto.
21009 (vsx_fix_trunc<mode><VSi>2): Ditto.
21010 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
21011
21012 2011-02-02 Joseph Myers <joseph@codesourcery.com>
21013
21014 * config/i386/djgpp.opt (posix): New Driver option.
21015
21016 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
21017
21018 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
21019 Move to the unsupported targets list.
21020
21021 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
21022
21023 PR rtl-optimization/47525
21024 * df-scan.c: Update copyright years.
21025 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
21026 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
21027
21028 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21029
21030 * config/i386/sysv4.h (TARGET_VERSION): Remove.
21031 (SUBTARGET_RETURN_IN_MEMORY): Remove.
21032 (ASM_OUTPUT_ASCII): Remove.
21033 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
21034
21035 2011-02-02 Jeff Law <law@redhat.com>
21036
21037 PR middle-end/47543
21038 * reload.c (find_reloads_address): Handle reg+d address where both
21039 components are invalid by reloading the entire address.
21040
21041 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21042 Richard Guenther <rguenther@suse.de>
21043
21044 PR tree-optimization/40979
21045 PR bootstrap/47044
21046 * passes.c (init_optimization_passes): After LIM call copy_prop
21047 and DCE to clean up.
21048 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
21049
21050 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
21051
21052 PR tree-optimization/47576
21053 PR tree-optimization/47555
21054 * doc/invoke.texi (scev-max-expr-complexity): Documented.
21055 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21056 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
21057 * tree-scalar-evolution.c (follow_ssa_edge): Use
21058 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
21059
21060 2011-02-02 Richard Guenther <rguenther@suse.de>
21061
21062 PR tree-optimization/47566
21063 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
21064
21065 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
21066
21067 PR debug/47106
21068 PR debug/47402
21069 * tree-inline.c (declare_return_variable): Remove unused caller
21070 variable.
21071
21072 PR debug/47106
21073 PR debug/47402
21074 * tree-flow-inline.h (clear_is_used, is_used_p): New.
21075 * cfgexpand.c (account_used_vars_for_block): Use them.
21076 * tree-nrv.c (tree_nrv): Likewise.
21077 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
21078 (dump_scope_block): Likewise.
21079 (remove_unused_locals): Likewise.
21080
21081 PR debug/47106
21082 PR debug/47402
21083 * tree-inline.c (declare_return_variable): Add result decl to
21084 local decls only once.
21085 * gimple-low.c (record_vars_into): Mark newly-created variables
21086 as referenced.
21087
21088 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
21089
21090 PR debug/47498
21091 PR debug/47501
21092 PR debug/45136
21093 PR debug/45130
21094 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21095 debug insns.
21096 (no_real_insns_p, schedule_block, set_priorities): Drop special
21097 treatment of boundary debug insns.
21098 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21099 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
21100 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21101 (BOUNDARY_DEBUG_INSN_P): Likewise.
21102 (SCHEDULE_DEBUG_INSN_P): Likewise.
21103 * sched-rgn.c (init_ready_list): Drop special treatment of
21104 boundary debug insns.
21105 * final.c (rest_of_clean_state): Clear notes' BB.
21106
21107 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21108
21109 * config/openbsd.opt (assert=): New Driver option.
21110
21111 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21112
21113 * config/i386/nto.opt: New.
21114 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
21115
21116 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21117
21118 * config/i386/netware.opt: New.
21119 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
21120
21121 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21122
21123 * config/interix.opt (posix): New Driver option.
21124
21125 2011-02-01 DJ Delorie <dj@redhat.com>
21126
21127 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
21128
21129 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
21130 class for A0/A1.
21131
21132 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
21133
21134 PR tree-optimization/47561
21135 * toplev.c (process_options): Print the Graphite flags. Add
21136 flag_loop_flatten to the list of options requiring Graphite.
21137
21138 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21139
21140 * config/i386/cygming.opt (posix): New Driver option.
21141
21142 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21143
21144 * config/arm/vxworks.opt: New.
21145 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
21146
21147 2011-02-01 Joseph Myers <joseph@codesourcery.com>
21148
21149 * config/alpha/elf.opt: New.
21150 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
21151 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
21152
21153 2011-02-01 Richard Guenther <rguenther@suse.de>
21154
21155 PR tree-optimization/47559
21156 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
21157 store-motion on references that can throw.
21158
21159 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
21160
21161 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
21162 * tree-pass.h (TDF_CSELIB): New macro.
21163 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
21164 cselib_lookup): Check for it rather than for TDF_DETAILS.
21165
21166 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
21167
21168 PR driver/47547
21169 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
21170 is HOST_BIT_BUCKET.
21171
21172 * opts.c (finish_options): Don't add x_aux_base_name if it is
21173 HOST_BIT_BUCKET.
21174
21175 2011-02-01 Richard Guenther <rguenther@suse.de>
21176
21177 PR tree-optimization/47555
21178 Revert
21179 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
21180
21181 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
21182
21183 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
21184
21185 PR gcc/46692
21186 * config/lm32/t-lm32: Add multilib for all CPU options.
21187
21188 2011-02-01 Richard Guenther <rguenther@suse.de>
21189
21190 PR tree-optimization/47541
21191 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
21192 sure to have a field at offset zero.
21193
21194 2011-01-31 Joseph Myers <joseph@codesourcery.com>
21195
21196 * config/arc/arc.opt (EB, EL): New Driver options.
21197
21198 2011-01-31 Joseph Myers <joseph@codesourcery.com>
21199
21200 * config/alpha/osf5.opt: New.
21201 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
21202
21203 2011-01-31 Joseph Myers <joseph@codesourcery.com>
21204
21205 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
21206
21207 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
21208
21209 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
21210 -floop-interchange.
21211 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
21212 is an alias of -floop-interchange and that it requires the
21213 Graphite infrastructure.
21214 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
21215 flag_loop_interchange based on the value of flag_tree_loop_linear.
21216
21217 2011-01-31 Jakub Jelinek <jakub@redhat.com>
21218 Richard Guenther <rguenther@suse.de>
21219
21220 PR tree-optimization/47538
21221 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
21222 type instead of r1type, except for comparisons. For right
21223 shifts and comparisons punt if there are mismatches in
21224 sizetype vs. non-sizetype types.
21225
21226 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21227
21228 * doc/sourcebuild.texi (Effective-Target Keywords): Document
21229 avx_runtime.
21230
21231 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21232
21233 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
21234 version number.
21235 * configure: Regenerate.
21236
21237 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21238
21239 * configure.ac (gcc_cv_ld_static_option): Define.
21240 (gcc_cv_ld_dynamic_option): Define.
21241 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
21242 instead.
21243 (HAVE_LD_STATIC_DYNAMIC): Update message.
21244 (LD_STATIC_OPTION): Define.
21245 (LD_DYNAMIC_OPTION): Define.
21246 * configure: Regenerate.
21247 * config.in: Regenerate.
21248 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
21249 HAVE_LD_STATIC_DYNAMIC]: Use them.
21250
21251 2011-01-31 Nick Clifton <nickc@redhat.com>
21252
21253 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
21254 registers inside interrupt handlers if the handler is not a leaf
21255 function.
21256
21257 2011-01-31 Nick Clifton <nickc@redhat.com>
21258
21259 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
21260 reg_renumber returning an INVALID_REGNUM.
21261
21262 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
21263
21264 PR libgcj/44341
21265 * doc/install.texi: Document host options discarded when cross
21266 configuring target libraries.
21267
21268 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
21269
21270 Reverted:
21271 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
21272 PR debug/45136
21273 PR debug/45130
21274 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21275 debug insns.
21276 (no_real_insns_p, schedule_block, set_priorities): Drop special
21277 treatment of boundary debug insns.
21278 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21279 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21280 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21281 (BOUNDARY_DEBUG_INSN_P): Likewise.
21282 (SCHEDULE_DEBUG_INSN_P): Likewise.
21283 * sched-rgn.c (init_ready_list): Drop special treatment of
21284 boundary debug insns.
21285 * final.c (rest_of_clean-state): Clear notes' BB.
21286
21287 2011-01-31 Alan Modra <amodra@gmail.com>
21288
21289 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
21290 toc relative expressions as we do in print_operand_address.
21291
21292 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
21293
21294 * doc/extend.texi: Follow spelling conventions.
21295 * doc/invoke.texi: Fix a typo.
21296
21297 2011-01-30 Joseph Myers <joseph@codesourcery.com>
21298
21299 * config/hpux11.opt: New.
21300 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
21301 ia64*-*-hpux*): Use hpux11.opt.
21302
21303 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
21304
21305 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
21306 to tmake_file.
21307
21308 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21309
21310 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
21311 support sites.
21312
21313 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21314
21315 * doc/install.texi (Binaries): Remove outdated reference for
21316 Motorola 68HC11/68HC12 downloads.
21317
21318 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
21319
21320 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
21321 Drepper's paper.
21322
21323 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
21324
21325 PR bootstrap/47147
21326 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
21327 used by NetBSD.
21328
21329 2011-01-28 Ahmad Sharif <asharif@google.com>
21330
21331 * value-prof.c (check_counter): Corrected error message.
21332
21333 2011-01-29 Jie Zhang <jie@codesourcery.com>
21334
21335 * config/arm/arm.c (arm_legitimize_reload_address): New.
21336 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
21337 arm_legitimize_reload_address.
21338 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
21339
21340 2011-01-28 Ian Lance Taylor <iant@google.com>
21341
21342 * godump.c (go_define): Ignore macros whose definitions include
21343 two adjacent operands.
21344
21345 2011-01-28 Jakub Jelinek <jakub@redhat.com>
21346
21347 PR target/42894
21348 * varasm.c (force_const_mem): Store copy of x in desc->constant
21349 instead of x itself.
21350 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
21351 itself into REG_EQUAL note.
21352
21353 2011-01-28 Joseph Myers <joseph@codesourcery.com>
21354
21355 * config/freebsd.opt (posix, rdynamic): New Driver options.
21356
21357 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21358
21359 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
21360 -Bstatic/-Bdynamic.
21361 * configure: Regenerate.
21362
21363 2011-01-27 Joseph Myers <joseph@codesourcery.com>
21364
21365 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
21366 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
21367
21368 2011-01-27 Anatoly Sokolov <aesok@post.ru>
21369
21370 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
21371 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
21372 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
21373 (s390_preferred_reload_class): Make static. Change return and
21374 'rclass' argument type to reg_class_t.
21375
21376 2011-01-27 Jan Hubicka <jh@suse.cz>
21377
21378 PR middle-end/46949
21379 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
21380 (process_function_and_variable_attributes): Check defined weakrefs.
21381
21382 2011-01-27 Martin Jambor <mjambor@suse.cz>
21383
21384 PR tree-optimization/47228
21385 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
21386 build_ref_for_offset.
21387
21388 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21389
21390 * config/spu/spu-elf.h (ASM_SPEC): Remove.
21391
21392 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
21393
21394 PR rtl-optimization/46856
21395 * postreload.c (reload_combine_recognize_const_pattern): Do not
21396 separate cc0 setter and user on cc0 targets.
21397
21398 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
21399
21400 PR c/43082
21401 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
21402 passed a VOID_TYPE expression, immediately emit an error and
21403 return error_mark_node.
21404
21405 2011-01-26 Jeff Law <law@redhat.com>
21406
21407 PR rtl-optimization/47464
21408 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
21409 rather than may_trap_p as needed.
21410
21411 2011-01-26 DJ Delorie <dj@redhat.com>
21412
21413 PR rtl-optimization/46878
21414 * combine.c (insn_a_feeds_b): Check for the implicit cc0
21415 setter/user dependency as well.
21416
21417 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
21418
21419 PR rtl-optimization/44469
21420 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
21421 after removing trivially dead basic blocks.
21422
21423 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21424
21425 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
21426 * config/frv/frv.h (LINK_SPEC): Likewise.
21427 * config/i386/netware.h (LINK_SPEC): Likewise.
21428 * config/m68k/linux.h (ASM_SPEC): Likewise.
21429 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
21430 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21431 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21432 * config/sparc/linux.h (ASM_SPEC): Likewise.
21433 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21434 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21435
21436 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21437
21438 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
21439 * config/frv/frv.h (ASM_SPEC): Likewise.
21440 * config/m68k/linux.h (ASM_SPEC): Likewise.
21441 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21442 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
21443 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21444 * config/sparc/linux.h (ASM_SPEC): Likewise.
21445 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21446 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21447
21448 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21449
21450 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
21451 * config/frv/frv.h (LINK_SPEC): Likewise.
21452 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
21453
21454 2011-01-26 Joseph Myers <joseph@codesourcery.com>
21455
21456 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
21457 * config/frv/frv.h (ASM_SPEC): Likewise.
21458 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
21459 * config/m68k/linux.h (ASM_SPEC): Likewise.
21460 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
21461 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
21462 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
21463 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
21464 * config/sparc/linux.h (ASM_SPEC): Likewise.
21465 * config/sparc/linux64.h (ASM_SPEC): Likewise.
21466 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
21467 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
21468
21469 2011-01-26 Steve Ellcey <sje@cup.hp.com>
21470
21471 PR target/46997
21472 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
21473 (*mux2): Ditto.
21474 (vec_extract_evenodd_help): Ditto.
21475 (vec_extract_evenv4hi): Ditto.
21476 (vec_extract_oddv4hi): Ditto.
21477 (vec_interleave_lowv2si): Ditto.
21478 (vec_interleave_highv2si): Ditto.
21479 (vec_extract_evenv2si): Ditto.
21480 (vec_extract_oddv2si: Ditto.
21481 (vec_pack_trunc_v2si): Ditto.
21482
21483 2011-01-22 Jan Hubicka <jh@suse.cz>
21484
21485 PR target/47237
21486 * cgraph.h (cgraph_local_info): New field can_change_signature.
21487 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
21488 signature can change.
21489 (ipcp_estimate_growth): Call sequence simplify only if calle signature
21490 can change.
21491 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
21492 (cgraph_function_versioning): We can not change signature of functions
21493 that don't allow that.
21494 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
21495 (lto_input_node): Likewise.
21496 * ipa-inline.c (compute_inline_parameters): Compute
21497 local.can_change_signature.
21498 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
21499 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
21500 functions that can not change signature.
21501 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
21502 init_cumulative_args): Do not use local calling conventions
21503 for functions that can not change signature.
21504
21505 2011-01-22 Jan Hubicka <jh@suse.cz>
21506
21507 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
21508
21509 2011-01-26 Richard Guenther <rguenther@suse.de>
21510
21511 PR tree-optimization/47190
21512 * cgraphunit.c (process_common_attributes): New function.
21513 (process_function_and_variable_attributes): Use it.
21514
21515 2011-01-26 Richard Guenther <rguenther@suse.de>
21516
21517 PR lto/47423
21518 * cgraphbuild.c (record_eh_tables): Record reference to personality
21519 function.
21520
21521 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
21522
21523 PR debug/45454
21524 * sel-sched.c (moveup_expr): Don't let debug insns prevent
21525 non-debug insns from moving up.
21526
21527 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21528
21529 PR target/40125
21530 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
21531 t-dlldir{,-x} fragment for build and add it to tmake_file.
21532 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
21533 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
21534 * config/i386/t-dlldir: New file.
21535 (SHLIB_DLLDIR): Define.
21536 * config/i386/t-dlldir-x: New file.
21537 (SHLIB_DLLDIR): Define.
21538 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
21539 (SHLIB_INSTALL): Use it.
21540
21541 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
21542
21543 PR target/47246
21544 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
21545 lower bound of the allowed Thumb-2 coprocessor load/store
21546 index range to -256. Add explaining comment.
21547
21548 2011-01-25 Ian Lance Taylor <iant@google.com>
21549
21550 * godump.c (go_define): Improve lexing of macro expansion to only
21551 accept expressions which match Go spec.
21552
21553 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
21554
21555 PR c++/43601
21556 * tree.c (handle_dll_attribute): Handle it.
21557 * doc/extend.texi (@item dllexport): Mention it.
21558 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
21559
21560 2011-01-25 Ian Lance Taylor <iant@google.com>
21561
21562 PR tree-optimization/26854
21563 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
21564 (decl_jump_unsafe): Move higher in file, with no other change.
21565 (bind): Set has_jump_unsafe_decl if appropriate.
21566 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
21567 (check_earlier_gotos): Likewise.
21568 (c_check_switch_jump_warnings): Likewise.
21569
21570 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
21571
21572 * doc/invoke.texi (Warning Options): Add missing hyphen.
21573 (-fprofile-dir): Minor grammatical fixes.
21574 (-fbranch-probabilities): Likewise.
21575
21576 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
21577
21578 PR debug/45136
21579 PR debug/45130
21580 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
21581 debug insns.
21582 (no_real_insns_p, schedule_block, set_priorities): Drop special
21583 treatment of boundary debug insns.
21584 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
21585 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
21586 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
21587 (BOUNDARY_DEBUG_INSN_P): Likewise.
21588 (SCHEDULE_DEBUG_INSN_P): Likewise.
21589 * sched-rgn.c (init_ready_list): Drop special treatment of
21590 boundary debug insns.
21591 * final.c (rest_of_clean-state): Clear notes' BB.
21592
21593 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21594
21595 * Makefile.in (LAMBDA_H): Removed.
21596 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
21597 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
21598 lambda-trans.o, and tree-loop-linear.o.
21599 (lto-symtab.o): Remove dependence on LAMBDA_H.
21600 (tree-loop-linear.o): Remove rule.
21601 (lambda-mat.o): Same.
21602 (lambda-trans.o): Same.
21603 (lambda-code.o): Same.
21604 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
21605 (tree-vect-slp.o): Same.
21606 * hwint.h (gcd): Moved here.
21607 (least_common_multiple): Same.
21608 * lambda-code.c: Removed.
21609 * lambda-mat.c: Removed.
21610 * lambda-trans.c: Removed.
21611 * lambda.h: Removed.
21612 * tree-loop-linear.c: Removed.
21613 * lto-symtab.c: Do not include lambda.h.
21614 * omega.c (gcd): Removed.
21615 * passes.c (init_optimization_passes): Remove pass_linear_transform.
21616 * tree-data-ref.c (print_lambda_vector): Moved here.
21617 (lambda_vector_copy): Same.
21618 (lambda_matrix_copy): Same.
21619 (lambda_matrix_id): Same.
21620 (lambda_vector_first_nz): Same.
21621 (lambda_matrix_row_add): Same.
21622 (lambda_matrix_row_exchange): Same.
21623 (lambda_vector_mult_const): Same.
21624 (lambda_vector_negate): Same.
21625 (lambda_matrix_row_negate): Same.
21626 (lambda_vector_equal): Same.
21627 (lambda_matrix_right_hermite): Same.
21628 * tree-data-ref.h: Do not include lambda.h.
21629 (lambda_vector): Moved here.
21630 (lambda_matrix): Same.
21631 (dependence_level): Same.
21632 (lambda_transform_legal_p): Removed declaration.
21633 (lambda_collect_parameters): Same.
21634 (lambda_compute_access_matrices): Same.
21635 (lambda_vector_gcd): Same.
21636 (lambda_vector_new): Same.
21637 (lambda_vector_clear): Same.
21638 (lambda_vector_lexico_pos): Same.
21639 (lambda_vector_zerop): Same.
21640 (lambda_matrix_new): Same.
21641 * tree-flow.h (least_common_multiple): Removed declaration.
21642 * tree-parloops.c (lambda_trans_matrix): Moved here.
21643 (LTM_MATRIX): Same.
21644 (LTM_ROWSIZE): Same.
21645 (LTM_COLSIZE): Same.
21646 (LTM_DENOMINATOR): Same.
21647 (lambda_trans_matrix_new): Same.
21648 (lambda_matrix_vector_mult): Same.
21649 (lambda_transform_legal_p): Same.
21650 * tree-pass.h (pass_linear_transform): Removed declaration.
21651 * tree-ssa-loop.c (tree_linear_transform): Removed.
21652 (gate_tree_linear_transform): Removed.
21653 (pass_linear_transform): Removed.
21654 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
21655 flag_loop_interchange.
21656
21657 2011-01-25 Jakub Jelinek <jakub@redhat.com>
21658
21659 PR tree-optimization/47265
21660 PR tree-optimization/47443
21661 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
21662 if name still has some uses.
21663
21664 2011-01-25 Martin Jambor <mjambor@suse.cz>
21665
21666 PR tree-optimization/47382
21667 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
21668 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
21669
21670 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
21671
21672 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
21673 sjlj_except_unwind_info.
21674
21675 2011-01-25 Richard Guenther <rguenther@suse.de>
21676
21677 PR tree-optimization/47426
21678 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
21679 visible functions results escape.
21680
21681 2011-01-25 Jakub Jelinek <jakub@redhat.com>
21682
21683 PR target/45701
21684 * config/arm/arm.c (any_sibcall_uses_r3): New function.
21685 (arm_get_frame_offsets): Use it.
21686
21687 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21688 Jakub Jelinek <jakub@redhat.com>
21689
21690 PR tree-optimization/47271
21691 * tree-if-conv.c (bb_postdominates_preds): New.
21692 (if_convertible_bb_p): Call bb_postdominates_preds.
21693 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
21694 (predicate_scalar_phi): Call bb_postdominates_preds.
21695
21696 2011-01-25 Nick Clifton <nickc@redhat.com>
21697
21698 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
21699 * config/rx/rx.c (rx_function_value): Likewise.
21700 (rx_promote_function_mode): Likewise.
21701 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
21702 in order to make it legitimate.
21703 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
21704 make sure that the first operand is the same as the result register.
21705 (addsi3_unspec): Delete.
21706 (subdi3): Do not accept immediate operands.
21707 (subdi3_internal): Likewise.
21708
21709 2011-01-25 Jeff Law <law@redhat.com>
21710
21711 PR rtl-optimization/37273
21712 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21713 handle them like argument loads from stack slots. Do not double
21714 count memory for memory constants and argument loads from stack slots.
21715
21716 2011-01-25 Jakub Jelinek <jakub@redhat.com>
21717
21718 PR tree-optimization/47427
21719 PR tree-optimization/47428
21720 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21721 coalesce if the new root var would be TREE_READONLY.
21722
21723 2011-01-25 Richard Guenther <rguenther@suse.de>
21724
21725 PR middle-end/47414
21726 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
21727 correct type for TBAA.
21728
21729 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21730
21731 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
21732 (close_phi_written_to_memory): Call for_each_index with
21733 dr_indices_valid_in_loop.
21734
21735 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21736
21737 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
21738 when it is initialized.
21739
21740 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21741
21742 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
21743 call to graphite_find_data_references_in_stmt.
21744 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
21745 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
21746 call to graphite_find_data_references_in_stmt.
21747 (analyze_drs_in_stmts): Same.
21748 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
21749 in which the scalar analysis of indices is performed.
21750 (create_data_ref): Same. Update call to dr_analyze_indices.
21751 (find_data_references_in_stmt): Update call to create_data_ref.
21752 (graphite_find_data_references_in_stmt): Same.
21753 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
21754 declaration.
21755 (create_data_ref): Same.
21756 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
21757 call to create_data_ref.
21758
21759 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21760
21761 * graphite-sese-to-poly.c (build_poly_scop): Move
21762 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
21763
21764 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21765
21766 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
21767 VAR_DECL, PARM_DECL, and RESULT_DECL.
21768
21769 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21770
21771 * graphite-dependences.c (reduction_dr_1): Allow several reductions
21772 in a reduction PBB.
21773 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
21774 that have already been marked as PBB_IS_REDUCTION.
21775
21776 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21777
21778 * graphite-scop-detection.c (same_close_phi_node): New.
21779 (remove_duplicate_close_phi): New.
21780 (make_close_phi_nodes_unique): New.
21781 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
21782
21783 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21784
21785 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
21786 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
21787 of both data references to be the same.
21788
21789 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21790
21791 * graphite-dependences.c (build_lexicographical_constraint): Remove
21792 the gdim parameter.
21793 (build_lexicographical_constraint): Adjust call to
21794 ppl_powerset_is_empty.
21795 (dependence_polyhedron): Same.
21796 (graphite_legal_transform_dr): Same.
21797 (graphite_carried_dependence_level_k): Same.
21798 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
21799 parameter.
21800 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
21801
21802 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21803
21804 * graphite-sese-to-poly.c
21805 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
21806 (close_phi_written_to_memory): New.
21807 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
21808 and unshare_expr.
21809
21810 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21811
21812 * doc/install.texi: Update the expected version number of PPL to 0.11.
21813 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
21814 #if PPL_VERSION_MINOR < 11.
21815
21816 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21817
21818 * graphite-dependences.c: Include graphite-cloog-util.h.
21819 (new_poly_ddr): Inlined into dependence_polyhedron.
21820 (free_poly_ddr): Moved close by new_poly_ddr.
21821 (dependence_polyhedron_1): Renamed dependence_polyhedron.
21822 Early return NULL when ppl_powerset_is_empty returns true.
21823 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
21824 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
21825 (graphite_legal_transform_dr): Call new_poly_ddr.
21826 (graphite_carried_dependence_level_k): Same.
21827 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
21828 (dot_transformed_deps_stmt_1): Removed.
21829 (dot_deps_stmt_1): Call dot_deps_stmt_2.
21830 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
21831 (dot_deps_1): Call dot_deps_2.
21832 * Makefile.in (graphite-dependences.o): Add missing dependence on
21833 graphite-cloog-util.h.
21834
21835 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21836
21837 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
21838 (build_lexicographical_constraint): Same.
21839 (dependence_polyhedron_1): Same.
21840 (graphite_legal_transform_dr): Same.
21841 (graphite_carried_dependence_level_k): Same.
21842 * graphite-ppl.c (ppl_powerset_is_empty): New.
21843 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
21844 * tree-data-ref.c (dump_data_reference): Print the basic block index.
21845
21846 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21847
21848 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
21849 the "a followed by b" relation and document it.
21850
21851 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21852
21853 * graphite-dependences.c (build_lexicographical_constraint): Stop the
21854 iteration when the bag of constraints is empty.
21855
21856 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21857
21858 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
21859
21860 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21861
21862 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
21863 nest and two loop depths as parameters.
21864 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
21865 lst_perfect_nestify.
21866
21867 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21868
21869 * graphite-dependences.c (print_pddr): Call
21870 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
21871
21872 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
21873
21874 * graphite-ppl.c (debug_gmp_value): New.
21875 * graphite-ppl.h (debug_gmp_value): Declared.
21876
21877 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
21878
21879 * doc/install.texi: Document availability of cloog-0.16.
21880
21881 2011-01-25 Vladimir Kargov <kargov@gmail.com>
21882
21883 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
21884 invalid postdominance info.
21885
21886 2011-01-24 Jan Hubicka <jh@suse.cz>
21887
21888 PR c/21659
21889 * doc/extend.texi (weak pragma): Drop claim that it must
21890 appear before definition.
21891 * varasm.c (merge_weak, declare_weak): Only sanity check
21892 that DECL is not output at a time it is declared weak.
21893
21894 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
21895
21896 * machmode.def: Fixed comments.
21897
21898 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
21899
21900 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
21901
21902 2011-01-24 Paul Koning <ni1d@arrl.net>
21903
21904 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
21905 WORDS_BIG_ENDIAN.
21906
21907 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
21908
21909 PR target/46519
21910 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
21911 (block_info): Add scanned and prev.
21912 (move_or_delete_vzeroupper_2): Return if the basic block
21913 has been scanned and the upper 128bit state is unchanged
21914 from the last scan.
21915 (move_or_delete_vzeroupper_1): Return true if the exit
21916 state is changed.
21917 (move_or_delete_vzeroupper): Visit basic blocks using the
21918 work-list based algorithm based on vt_find_locations in
21919 var-tracking.c.
21920
21921 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
21922
21923 2011-01-24 Nick Clifton <nickc@redhat.com>
21924
21925 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
21926 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
21927 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
21928 then define __v850e1__.
21929 * doc/invoke.texi: Document -mv850es.
21930
21931 2011-01-24 Richard Henderson <rth@redhat.com>
21932
21933 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
21934 compound unordered comparisons.
21935 * config/rx/rx.c (rx_split_fp_compare): Remove.
21936 * config/rx/rx-protos.h: Update.
21937 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
21938 (cbranchsf4): Don't call rx_split_fp_compare.
21939 (*cbranchsf4): Use rx_split_cbranch.
21940 (*cmpsf): Don't accept "i" constraint.
21941 (*conditional_branch): Only valid after reload.
21942 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
21943
21944 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
21945
21946 PR target/47385
21947 * config/rs6000/altivec.md (vector constant splitters): Add
21948 support for creating vector single precision constants if -mvsx is
21949 used and we would create the constant using Altivec primitives.
21950
21951 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
21952 Richard Sandiford <rdsandiford@googlemail.com>
21953
21954 PR rtl-optimization/47166
21955 * reload1.c (emit_reload_insns): Disable the spill_reg_store
21956 mechanism for PRE_MODIFY and POST_MODIFY.
21957 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
21958 reloadreg.
21959
21960 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
21961
21962 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
21963
21964 2011-01-22 Jan Hubicka <jh@suse.cz>
21965
21966 PR lto/47333
21967 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
21968
21969 2011-01-22 Jan Hubicka <jh@suse.cz>
21970
21971 PR tree-optimization/43884
21972 PR lto/44334
21973 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
21974 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
21975
21976 2011-01-22 Anatoly Sokolov <aesok@post.ru>
21977
21978 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21979 * config/s390/s390.c (s390_register_move_cost,
21980 s390_memory_move_cost): New.
21981 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
21982
21983 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21984
21985 PR middle-end/47401
21986 * except.c (sjlj_assign_call_site_values): Move setting the
21987 crtl->uses_eh_lsda flag to ...
21988 (sjlj_mark_call_sites): ... here.
21989 (sjlj_emit_function_enter): Support NULL dispatch label.
21990 (sjlj_build_landing_pads): In a function with no landing pads
21991 that still has must-not-throw regions, generate code to register
21992 a personality function with empty LSDA.
21993
21994 2011-01-21 Richard Henderson <rth@redhat.com>
21995
21996 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
21997
21998 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
21999
22000 * compare-elim.c: New file.
22001 * Makefile.in (OBJS-common): Add it.
22002 (compare-elim.o): New.
22003 * common.opt (fcompare-elim): New.
22004 * opts.c (default_options_table): Add OPT_fcompare_elim.
22005 * tree-pass.h (pass_compare_elim_after_reload): New.
22006 * passes.c (init_optimization_passes): Add it.
22007 * recog.h: Protect against re-inclusion.
22008 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
22009 * doc/invoke.texi (-fcompare-elim): Document it.
22010 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
22011 * doc/tm.texi: Rebuild.
22012
22013 2011-01-22 Nick Clifton <nickc@redhat.com>
22014
22015 * config/rx/rx.md (cstoresf4): Pass comparison operator to
22016 rx_split_fp_compare.
22017
22018 2011-01-22 Nick Clifton <nickc@redhat.com>
22019
22020 * config/rx/rx.md (UNSPEC_CONST): New.
22021 (deallocate_and_return): Wrap the amount popped off the stack in
22022 an UNSPEC_CONST in order to stop it being rejected by
22023 -mmax-constant-size.
22024 (pop_and_return): Add a "(return)" rtx.
22025 (call): Drop the immediate operand.
22026 (call_internal): Likewise.
22027 (call_value): Likewise.
22028 (call_value_internal): Likewise.
22029 (sibcall_internal): Likewise.
22030 (sibcall_value_internal): Likewise.
22031 (sibcall): Likewise. Generate an explicit call using
22032 sibcall_internal.
22033 (sibcall_value): Likewise.
22034 (mov<>): FAIL if a constant operand is not legitimate.
22035 (addsi3_unpsec): New pattern.
22036
22037 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
22038 (ok_for_max_constant): New function.
22039 (gen_safe_add): New function.
22040 (rx_expand_prologue): Use gen_safe_add.
22041 (rx_expand_epilogue): Likewise.
22042 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
22043 UNSPEC CONSTs.
22044
22045 2011-01-21 Jeff Law <law@redhat.com>
22046
22047 PR tree-optimization/47053
22048 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
22049 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
22050 statements are deleted.
22051 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
22052 is nonempty, then purge dead edges and cleanup the CFG.
22053
22054 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
22055
22056 PR debug/47402
22057 Temporarily revert:
22058 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
22059 PR debug/47106
22060 * tree-dfa.c (create_var_ann): Mark variable as used.
22061
22062 2011-01-21 Jakub Jelinek <jakub@redhat.com>
22063
22064 PR middle-end/45566
22065 * except.c (convert_to_eh_region_ranges): Emit queued no-region
22066 notes from other section in hot/cold partitioning even if
22067 last_action is -3. Increment call_site_base.
22068
22069 PR rtl-optimization/47366
22070 * fwprop.c (forward_propagate_into): Return bool. If
22071 any changes are made, -fnon-call-exceptions is used and
22072 REG_EH_REGION note is present, call purge_dead_edges
22073 and return true if it purged anything.
22074 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
22075 any EH edges were purged.
22076
22077 2011-01-21 Jeff Law <law@redhat.com>
22078
22079 PR rtl-optimization/41619
22080 * caller-save.c (setup_save_areas): Break out code to determine
22081 which hard regs are live across calls by examining the reload chains
22082 so that it is always used.
22083 Eliminate code which checked REG_N_CALLS_CROSSED.
22084
22085 2011-01-21 Jakub Jelinek <jakub@redhat.com>
22086
22087 PR tree-optimization/47355
22088 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
22089 NOP has non-debug uses beyond PHIs in new_bb.
22090
22091 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
22092
22093 PR debug/47106
22094 * cfgexpand.c (account_used_vars_for_block): Only account vars
22095 that are annotated as used.
22096 (estimated_stack_frame_size): Don't set TREE_USED.
22097 * tree-dfa.c (create_var_ann): Mark variable as used.
22098
22099 2011-01-21 Richard Guenther <rguenther@suse.de>
22100
22101 PR middle-end/47395
22102 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
22103
22104 2011-01-21 Richard Guenther <rguenther@suse.de>
22105
22106 PR tree-optimization/47365
22107 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
22108 (vn_reference_lookup_pieces): Adjust.
22109 (vn_reference_lookup): Likewise.
22110 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
22111 (vn_reference_lookup_3): Only look through kills if in
22112 VN_WALKREWRITE mode.
22113 (vn_reference_lookup_pieces): Adjust.
22114 (vn_reference_lookup): Likewise.
22115 (visit_reference_op_load): Likewise.
22116 (visit_reference_op_store): Likewise.
22117 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
22118 (compute_avail): Likewise.
22119 (eliminate): Likewise.
22120
22121 2011-01-21 Jakub Jelinek <jakub@redhat.com>
22122
22123 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
22124 DECL_IGNORED_P non-reg vars if they are used.
22125
22126 PR tree-optimization/47391
22127 * varpool.c (const_value_known_p): Return false if
22128 decl is volatile.
22129
22130 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
22131
22132 PR bootstrap/47215
22133 * config/i386/i386.c (ix86_local_alignment): Handle
22134 case for va_list_type_node is nil.
22135 (ix86_canonical_va_list_type): Likewise.
22136
22137 2011-01-21 Alan Modra <amodra@gmail.com>
22138
22139 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
22140 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
22141
22142 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22143
22144 * config/arm/arm.md (define_attr type): Rename f_load
22145 and f_store to f_fpa_load and f_fpa_store. Update.
22146 (write_conflict): Deal with rename fallout.
22147 (*push_fp_multi): Likewise.
22148 * config/arm/fpa.md (f_load): Use f_fpa_load.
22149 (f_store): Use f_fpa_store.
22150 (*movsf_fpa): Likewise.
22151 (*movdf_fpa): Likewise.
22152 (*movxf_fpa): Likewise.
22153 (*thumb2_movsf_fpa): Likewise.
22154 (*thumb2_movdf_fpa): Likewise.
22155 (*thumb2_movxf_fpa): Likewise.
22156 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
22157 f_loadd and f_stored.
22158 (*thumb2_movdi_vfp): Likewise.
22159 (*thumb2_movsf_vfp): Fix attribute to f_loads.
22160 (*thumb2_movsi_vfp): Likewise.
22161 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
22162 Use f_loads instead of f_load.
22163 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
22164
22165 2011-01-20 Anatoly Sokolov <aesok@post.ru>
22166
22167 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22168 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
22169 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22170 (xtensa_mode_dependent_address_p): New function.
22171 (constantpool_address_p): Make static. Change return type to bool.
22172 Change argument type to const_rtx. Use CONST_INT_P predicate.
22173
22174 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
22175
22176 PR debug/46583
22177 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
22178
22179 2011-01-20 Jakub Jelinek <jakub@redhat.com>
22180
22181 PR debug/47283
22182 * cfgexpand.c (expand_debug_expr): Instead of generating
22183 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
22184 etc. handling.
22185
22186 2011-01-20 Richard Guenther <rguenther@suse.de>
22187
22188 PR middle-end/47370
22189 * tree-inline.c (remap_gimple_op_r): Recurse manually for
22190 the pointer operand of MEM_REFs.
22191
22192 2011-01-20 Jakub Jelinek <jakub@redhat.com>
22193
22194 PR tree-optimization/46130
22195 * ipa-split.c (consider_split): If return_bb contains non-virtual
22196 PHIs other than for retval or if split_function would not adjust it,
22197 refuse to split.
22198
22199 2011-01-20 Richard Guenther <rguenther@suse.de>
22200
22201 PR tree-optimization/47167
22202 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
22203 Revert previous change, only avoid enumeral type changes.
22204
22205 2011-01-19 Mike Stump <mikestump@comcast.net>
22206
22207 * doc/tm.texi.in (BRANCH_COST): Englishify.
22208 * doc/tm.texi (BRANCH_COST): Likewise.
22209
22210 2011-01-19 Dodji Seketeli <dodji@redhat.com>
22211
22212 PR c++/47291
22213 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
22214 (gen_scheduled_generic_parms_dies): New functions.
22215 (gen_struct_or_union_type_die): Schedule template parameters DIEs
22216 generation for the end of CU compilation.
22217 (dwarf2out_finish): Generate template parameters DIEs here.
22218
22219 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
22220
22221 PR debug/46240
22222 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
22223 debug bind stmt on merge edges.
22224
22225 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
22226
22227 PR debug/47079
22228 PR debug/46724
22229 * function.c (instantiate_expr): Instantiate incoming rtl of
22230 implicit arguments, and recurse on VALUE_EXPRs.
22231 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
22232 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
22233
22234 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
22235
22236 * c-parser.c (c_parser_for_statement): Initialize
22237 collection_expression.
22238
22239 2011-01-19 Joseph Myers <joseph@codesourcery.com>
22240
22241 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
22242
22243 2011-01-19 Joseph Myers <joseph@codesourcery.com>
22244
22245 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
22246 (LINK_SHLIB_SPEC): Don't use %(link_path).
22247 (SUBTARGET_EXTRA_SPECS): Remove link_path.
22248
22249 2011-01-19 Joseph Myers <joseph@codesourcery.com>
22250
22251 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
22252 (NO_SHARED_LIB_SUPPORT): Remove.
22253 (LINK_SHLIB_SPEC): Remove one conditional definition.
22254
22255 2011-01-19 Joseph Myers <joseph@codesourcery.com>
22256
22257 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
22258 %{call_shared}.
22259 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
22260 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
22261 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
22262 %{call_shared} and conditionals on these options not being passed.
22263 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
22264 %{call_shared}.
22265
22266 2011-01-19 Jakub Jelinek <jakub@redhat.com>
22267
22268 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
22269 simplify.
22270
22271 * ipa-split.c: Spelling fixes.
22272
22273 2011-01-19 Richard Henderson <rth@redhat.com>
22274
22275 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
22276 (*mulsi3): Likewise.
22277
22278 * longlong.h [__mn10300__] (count_leading_zeros): New.
22279 [__mn10300__] (umul_ppmm, smul_ppmm): New.
22280 [__mn10300__] (add_ssaaaa, subddmmss): New.
22281 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
22282 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
22283
22284 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22285
22286 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
22287
22288 2011-01-19 Richard Henderson <rth@redhat.com>
22289
22290 * config/mn10300/mn10300.md (addsi3_flags): New.
22291 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
22292 (subsi3_flags, subc_internal, subdi3): New.
22293 (subdi3_internal, *subdi3_degenerate): New.
22294 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
22295
22296 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
22297 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
22298 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
22299 * config/mn10300/mn10300-protos.h: Update.
22300 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
22301 (return_ret): Likewise. Rename from return_internal_regs.
22302 (return_internal): Remove.
22303
22304 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
22305 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
22306 (mn10300_legitimate_constant_p): Likewise.
22307 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
22308 (mn10300_frame_size): New.
22309 (mn10300_expand_prologue): Use it.
22310 (mn10300_expand_epilogue): Likewise.
22311 (mn10300_initial_offset): Likewise.
22312 * config/mn10300/mn10300-protos.h: Update.
22313 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
22314 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
22315 (prologue, epilogue, return_internal): Tidy output code.
22316 (mn10300_store_multiple_operation, return): Likewise.
22317 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
22318 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
22319 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
22320 (load_pic, am33_load_pic): New.
22321 (mn10300_load_pic0, mn10300_load_pic1): New.
22322
22323 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
22324 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
22325 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
22326 (cc_flags_for_mode, cc_flags_for_code): New.
22327 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
22328 overflow flag is not valid. Validate that the flags we need
22329 for the comparison are valid.
22330 (mn10300_output_cmp): Remove.
22331 (mn10300_output_add): New.
22332 (mn10300_select_cc_mode): Use cc_flags_for_code.
22333 (mn10300_split_cbranch): New.
22334 (mn10300_match_ccmode): New.
22335 (mn10300_split_and_operand_count): New.
22336 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
22337 to the function.
22338 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
22339 (addsi3): ... here. Use mn10300_output_add.
22340 (*addsi3_flags): New.
22341 (*am33_subsi3, *mn10300_subsi3): Merge...
22342 (subsi3): ... here. Use attribute isa.
22343 (*subsi3_flags): New.
22344 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
22345 when possible.
22346 (*am33_andsi3, *mn10300_andsi3): Merge...
22347 (andsi3): ... here.
22348 (*andsi3_flags): New.
22349 (andsi3 splitters): New.
22350 (*am33_iorsi3, *mn10300_iorsi3): Merge...
22351 (iorsi3): ... here.
22352 (*iorsi3_flags): New.
22353 (*am33_xorsi3, *mn10300_xorsi3): Merge...
22354 (xorsi3): ... here.
22355 (*xorsi3_flags): New.
22356 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
22357 (one_cmplsi2): ... here.
22358 (*one_cmplsi2_flags): New.
22359 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
22360 instead of "dax" in constraints. Use mn10300_split_cbranch.
22361 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
22362 use matching constraints to eliminate a self-comparison.
22363 (*integer_conditional_branch): Rename from integer_conditional_branch.
22364 Use int_mode_flags to match CC_REG.
22365 (*cbranchsi4_btst, *btstsi): New.
22366 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
22367 mn10300_split_cbranch.
22368 (*am33_cmpsf): Rename from am33_cmpsf.
22369 (*float_conditional_branch): Rename from float_conditional_branch.
22370 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
22371 (zero_extendqisi2): ... here.
22372 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
22373 (zero_extendhisi2): ... here.
22374 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
22375 (extendqisi2): ... here.
22376 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
22377 (extendhisi2): ... here.
22378 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
22379 (ashlsi3): ... here.
22380 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
22381 (lshrsi3): ... here.
22382 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
22383 (ashrsi3): ... here.
22384 (consecutive add peephole): Remove.
22385 * config/mn10300/predicates.md (label_ref_operand): New.
22386 (int_mode_flags): New.
22387 (CCZN_comparison_operator): New.
22388
22389 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
22390 (throughput_42_latency_43): New reservation.
22391 (mulsidi3, umulsidi3): New expanders.
22392 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
22393 the MDR register to allocation; separately allocate the low and
22394 high parts of the DImode result.
22395 (umulsidi3_internal): Similarly.
22396 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
22397 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
22398 (udivsi3, umodsi3): Remove.
22399 (udivmodsi4, divmodsi4): New expanders.
22400 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
22401 (*divmodsi4): Simiarly.
22402 (ext_internal): New.
22403
22404 * config/mn10300/constraints.md ("z"): New constraint.
22405 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
22406 (FIXED_REGISTERS): Don't fix MDR.
22407 (CALL_USED_REGSITERS): Reformat nicely.
22408 (REG_ALLOC_ORDER): Add MDR.
22409 (enum regclass): Add MDR_REGS.
22410 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
22411 (IRA_COVER_CLASSES): Add MDR_REGS.
22412 (REGNO_REG_CLASS): Handle MDR_REG.
22413 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
22414 (mn10300_register_move_cost): Likewise.
22415 * config/mn10300/mn10300.md (MDR_REG): New.
22416 (*movsi_internal): Handle moves to/from MDR_REGS.
22417
22418 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
22419 POST_MODIFY.
22420 (mn10300_secondary_reload): Tidy combination reload classes.
22421 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
22422 addresses for AM33. Allow symbolic offsets for reg+imm.
22423 (mn10300_regno_in_class_p): New.
22424 (mn10300_legitimize_reload_address): New.
22425 * config/mn10300/mn10300.h (enum reg_class): Remove
22426 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
22427 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
22428 SP_OR_GENERAL_REGS.
22429 (REG_CLASS_NAMES): Update to match.
22430 (REG_CLASS_CONTENTS): Likewise.
22431 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
22432 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
22433 (REGNO_IN_RANGE_P): Remove.
22434 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
22435 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
22436 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
22437 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
22438 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
22439 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
22440 (REGNO_GENERAL_P): New.
22441 (HAVE_POST_MODIFY_DISP): New.
22442 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
22443 (LEGITIMIZE_RELOAD_ADDRESS): New.
22444 * config/mn10300/mn10300-protos.h: Update.
22445
22446 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
22447 DATA_REGS for AM33 stack-pointer destination.
22448 (mn10300_preferred_output_reload_class): Likewise.
22449 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
22450 into a form appropriate for ...
22451 (TARGET_SECONDARY_RELOAD): New.
22452 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
22453 * config/mn10300/mn10300-protos.h: Update.
22454 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
22455 reload_insi; use the "A" constraint for the scratch; handle AM33
22456 moves of sp to non-address registers.
22457
22458 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
22459 (*movqi_internal): ... here.
22460 (*am33_movhi, *mn10300_movhi): Merge into...
22461 (*movhi_internal): ... here.
22462 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
22463 as the source/destination of moves from/to SP.
22464 (movsf): Only allow for AM33-2.
22465 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
22466 any integer constant constraint. Only allow for AM33-2. Tidy
22467 all of the alternative outputs.
22468 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
22469 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
22470 for MN103.
22471 (udivsi3, umodsi3): New patterns for MN103 only.
22472
22473 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
22474
22475 * doc/tm.texi.in: Spell out that a lack of register class unions
22476 can lead to ICEs.
22477 * doc/tm.texi: Regenerate.
22478
22479 2011-01-19 Jakub Jelinek <jakub@redhat.com>
22480
22481 PR rtl-optimization/47337
22482 * dce.c (check_argument_store): New function.
22483 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
22484
22485 PR tree-optimization/47290
22486 * tree-eh.c (infinite_empty_loop_p): New function.
22487 (cleanup_empty_eh): Use it.
22488
22489 2011-01-18 Steve Ellcey <sje@cup.hp.com>
22490
22491 PR target/46997
22492 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
22493 (a64_expand_widen_sum): Ditto.
22494 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
22495 (vec_extract_evenodd_help): Ditto.
22496 (vec_extract_evenv4hi): Ditto.
22497 (vec_extract_oddv4hi): Ditto.
22498 (vec_extract_evenv2si): Ditto.
22499 (vec_extract_oddv2si): Ditto.
22500 (vec_extract_evenv2sf): Ditto.
22501 (vec_extract_oddv2sf): Ditto.
22502 (vec_pack_trunc_v4hi: Ditto.
22503 (vec_pack_trunc_v2si): Ditto.
22504 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
22505 (vec_interleave_highv8qi): Ditto.
22506 (mix1_r): Ditto.
22507 (vec_extract_oddv8qi): Ditto.
22508 (vec_interleave_lowv4hi): Ditto.
22509 (vec_interleave_highv4hi): Ditto.
22510 (vec_interleave_lowv2si): Ditto.
22511 (vec_interleave_highv2si): Ditto.
22512
22513 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22514
22515 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
22516 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
22517 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
22518 (pa_c_mode_for_suffix): New.
22519 (TARGET_EXPAND_BUILTIN): Define.
22520 (TARGET_C_MODE_FOR_SUFFIX): Define.
22521 (pa_builtins): Define.
22522 (pa_init_builtins): Register __float128 type and init new support
22523 builtins.
22524 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
22525 * config/pa/quadlib.c (_U_Qfcopysign): New.
22526
22527 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
22528
22529 PR middle-end/46894
22530 * explow.c (allocate_dynamic_stack_space): Do not assume more than
22531 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
22532 are defined.
22533
22534 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22535
22536 PR tree-optimization/47179
22537 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
22538 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
22539
22540 2011-01-18 Richard Guenther <rguenther@suse.de>
22541
22542 PR rtl-optimization/47216
22543 * emit-rtl.c: Include tree-flow.h.
22544 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
22545 of replicating it with different semantics.
22546 * Makefile.in (emit-rtl.o): Adjust.
22547
22548 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22549
22550 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
22551 (cortex_a9_dp): Handle neon types correctly.
22552
22553 2011-01-18 Jakub Jelinek <jakub@redhat.com>
22554
22555 PR rtl-optimization/47299
22556 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
22557 subtarget. Use normal multiplication if both operands are constants.
22558 * expmed.c (expand_widening_mult): Don't try to optimize constant
22559 multiplication if op0 has VOIDmode. Convert op1 constant to mode
22560 before using it.
22561
22562 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22563
22564 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
22565 spacing after 'e.g.', typos, comma, hyphenation.
22566
22567 2011-01-17 Richard Henderson <rth@redhat.com>
22568
22569 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
22570 (rx_restricted_mem_operand): New.
22571 (rx_shift_operand): Use register_operand.
22572 (rx_source_operand, rx_compare_operand): Likewise.
22573 * config/rx/rx.md (addsi3_flags): New expander.
22574 (adddi3): Rewrite as expander.
22575 (adc_internal, *adc_flags, adddi3_internal): New patterns.
22576 (subsi3_flags): New expander.
22577 (subdi3): Rewrite as expander.
22578 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
22579
22580 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
22581 (rx_init_builtins): Remove sat builtin.
22582 (rx_expand_builtin): Likewise.
22583 * config/rx/rx.md (ssaddsi3): New.
22584 (*sat): Rename from sat. Represent the CC_REG input.
22585
22586 * config/rx/predicates.md (rshift_operator): New.
22587 * config/rx/rx.c (rx_expand_insv): Remove.
22588 * config/rx/rx-protos.h: Update.
22589 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
22590 operand to the canonical position.
22591 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
22592 (*bitclr, *bitclr_in_memory): Similarly.
22593 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
22594 (insv): Retain the zero_extract in the expansion.
22595
22596 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
22597 (bswaphi2, bitinvert, revw): Likewise.
22598
22599 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
22600 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
22601 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
22602 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
22603 (bitset, bitset_in_memory): Likewise.
22604 (bitinvert, bitinvert_in_memory): Likewise.
22605 (bitclr, bitclr_in_memory): Likewise.
22606 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
22607 (rx_strend, rx_cmpstrn): Likewise.
22608 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
22609 (bitop peep2 patterns): Remove.
22610
22611 * config/rx/rx.c (rx_match_ccmode): New.
22612 * config/rx/rx-protos.h: Update.
22613 * config/rx/rx.md (abssi2): Clobber, don't set flags.
22614 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
22615 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
22616 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
22617 (fix_truncsfsi2, floatsisf2): Likewise.
22618 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
22619 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
22620 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
22621 (*subsi3_flags, *xorsi3_flags): New.
22622
22623 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
22624
22625 * config/rx/rx.c (rx_print_operand): Remove workaround for
22626 unsplit comparison operations.
22627
22628 * config/rx/rx.md (movsicc): Split after reload.
22629 (*movsicc): Merge *movsieq and *movsine via match_operator.
22630 (*stcc): New pattern.
22631
22632 * config/rx/rx.c (rx_float_compare_mode): Remove.
22633 * config/rx/rx.h (rx_float_compare_mode): Remove.
22634 * config/rx/rx.md (cstoresi4): Split after reload.
22635 (*sccc): New pattern.
22636
22637 * config/rx/predicates.md (label_ref_operand): New.
22638 (rx_z_comparison_operator): New.
22639 (rx_zs_comparison_operator): New.
22640 (rx_fp_comparison_operator): New.
22641 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
22642 Validate that the flags are set properly for the comparison.
22643 (rx_gen_cond_branch_template): Remove.
22644 (rx_cc_modes_compatible): Remove.
22645 (mode_from_flags): New.
22646 (flags_from_code): Rename from flags_needed_for_conditional.
22647 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
22648 (rx_select_cc_mode): Likewise.
22649 (rx_split_fp_compare): New.
22650 (rx_split_cbranch): New.
22651 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
22652 (*cbranchsi4): Use match_operator and rx_split_cbranch.
22653 (*cbranchsf4): Similarly.
22654 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
22655 match_operator and rx_split_cbranch.
22656 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
22657 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
22658 (*cmpsi): Rename from cmpsi.
22659 (*tstsi): Rename from tstsi.
22660 (*cmpsf): Rename from cmpsf; use CC_Fmode.
22661 (*conditional_branch): Rename from conditional_branch.
22662 (*reveresed_conditional_branch): Remove.
22663 (b<code>): Remove expander.
22664 * config/rx/rx-protos.h: Update.
22665
22666 * config/rx/rx.c (rx_compare_redundant): Remove.
22667 * config/rx/rx.md (cmpsi): Don't use it.
22668 * config/rx/rx-protos.h: Update.
22669
22670 * config/rx/rx-modes.def (CC_F): New mode.
22671 * config/rx/rx.c (rx_select_cc_mode): New.
22672 * config/rx/rx.h (SELECT_CC_MODE): Use it.
22673 * config/rx/rx-protos.h: Update.
22674
22675 2011-01-17 Richard Henderson <rth@redhat.com>
22676
22677 * except.c (dump_eh_tree): Fix stray ; after for statement.
22678
22679 2011-01-17 Richard Guenther <rguenther@suse.de>
22680
22681 PR tree-optimization/47313
22682 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
22683 handling before copying the body. Properly deal with
22684 by-reference result in SSA form.
22685
22686 2011-01-17 Ian Lance Taylor <iant@google.com>
22687
22688 PR target/47219
22689 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
22690 (struct_value_alias_set): Don't define.
22691 (sparc_option_override): Don't set sparc_sr_alias_set and
22692 struct_value_alias_set.
22693 (save_or_restore_regs): Use gen_frame_mem rather than calling
22694 set_mem_alias_set.
22695 (sparc_struct_value_rtx): Likewise.
22696
22697 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
22698
22699 PR target/47318
22700 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
22701 (_mm_maskstore_pd): Likewise.
22702 (_mm_maskload_ps): Likewise.
22703 (_mm_maskstore_ps): Likewise.
22704 (_mm256_maskload_pd): Change mask to __m256i.
22705 (_mm256_maskstore_pd): Likewise.
22706 (_mm256_maskload_ps): Likewise.
22707 (_mm256_maskstore_ps): Likewise.
22708
22709 * config/i386/i386-builtin-types.def: Updated.
22710 (ix86_expand_special_args_builtin): Likewise.
22711
22712 * config/i386/i386.c (bdesc_special_args): Update
22713 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
22714 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
22715 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
22716 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
22717
22718 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
22719 Use <avxpermvecmode> on mask register.
22720 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
22721
22722 2011-01-17 Olivier Hainque <hainque@adacore.com>
22723 Michael Haubenwallner <michael.haubenwallner@salomon.at>
22724 Eric Botcazou <ebotcazou@adacore.com>
22725
22726 PR target/46655
22727 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
22728 if <= USHRT_MAX in 32-bit mode.
22729
22730 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22731
22732 * doc/install.texi (Configuration, Specific): Wrap long
22733 lines in examples. Allow line wrapping in long options
22734 and URLs where beneficial for PDF output.
22735
22736 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
22737
22738 * config/mips/mips.c (mips_classify_symbol): Don't return
22739 SYMBOL_PC_RELATIVE for nonlocal labels.
22740
22741 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
22742
22743 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
22744
22745 2011-01-15 Jan Hubicka <jh@suse.cz>
22746
22747 PR tree-optimization/47276
22748 * ipa.c (function_and_variable_visibility): Do not try to mark alias
22749 declarations as needed.
22750
22751 2011-01-15 Martin Jambor <mjambor@suse.cz>
22752
22753 * common.opt (fdevirtualize): New flag.
22754 * doc/invoke.texi (Option Summary): Document it.
22755 * opts.c (default_options_table): Add devirtualize flag.
22756 * ipa-prop.c (detect_type_change): Return immediately if
22757 devirtualize flag is not set.
22758 (detect_type_change_ssa): Likewise.
22759 (compute_known_type_jump_func): Likewise.
22760 (ipa_analyze_virtual_call_uses): Likewise.
22761
22762 2011-01-14 Martin Jambor <mjambor@suse.cz>
22763
22764 PR tree-optimization/45934
22765 PR tree-optimization/46302
22766 * ipa-prop.c (type_change_info): New type.
22767 (stmt_may_be_vtbl_ptr_store): New function.
22768 (check_stmt_for_type_change): Likewise.
22769 (detect_type_change): Likewise.
22770 (detect_type_change_ssa): Likewise.
22771 (compute_complex_assign_jump_func): Check for dynamic type change.
22772 (compute_complex_ancestor_jump_func): Likewise.
22773 (compute_known_type_jump_func): Likewise.
22774 (compute_scalar_jump_functions): Likewise.
22775 (ipa_analyze_virtual_call_uses): Likewise.
22776 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
22777
22778 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22779
22780 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
22781 * config/i386/i386.opt (msse5): New Alias.
22782
22783 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22784
22785 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22786 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22787 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22788 * config/sparc/sparc.h (CC1_SPEC): Likewise.
22789
22790 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22791
22792 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
22793 -mcpu options.
22794 * config/sparc/linux64.h (CC1_SPEC): Likewise.
22795 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
22796 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
22797 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
22798 Likewise.
22799 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
22800
22801 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22802
22803 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
22804
22805 2011-01-14 Mike Stump <mikestump@comcast.net>
22806
22807 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
22808 * config/fr30/fr30.md: Likweise
22809 (movsi_push): Likewise.
22810 (movsi_pop): Likewise.
22811 (enter_func): Likewise.
22812 * config/moxie/moxie.md (movsi_push): Likewise.
22813 (movsi_pop): Likewise.
22814
22815 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22816
22817 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
22818 %{no_archive} %{exact_version}.
22819 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
22820 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
22821 %{no_archive} %{exact_version}.
22822 * config/mips/openbsd.h (LINK_SPEC): Likewise.
22823 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
22824 * config/mips/vxworks.h: Likewise.
22825
22826 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22827
22828 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
22829
22830 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22831
22832 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
22833 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
22834
22835 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22836
22837 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
22838 -nodefaultlib.
22839
22840 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22841
22842 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
22843 for mcpu not cpu.
22844 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
22845 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
22846 not cpu.
22847 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
22848 Don't handle -shlib.
22849
22850 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22851
22852 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
22853 (CC1_SPEC): Don't handle -profile.
22854
22855 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22856
22857 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
22858 * config/mips/mips.h (CC1_SPEC): Likewise.
22859
22860 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22861
22862 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
22863 * config/mips/mips.h (CC1_SPEC): Likewise.
22864
22865 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22866
22867 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
22868 * config/m32r/linux.h (LINK_SPEC): Likewise.
22869 * config/mips/linux.h (LINK_SPEC): Likewise.
22870 * config/mips/linux64.h (LINK_SPEC): Likewise.
22871 * config/sparc/linux.h (LINK_SPEC): Likewise.
22872 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
22873 LINK_SPEC): Likewise.
22874 * config/xtensa/linux.h (LINK_SPEC): Likewise.
22875
22876 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22877
22878 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
22879 %{version:-v}.
22880 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
22881
22882 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22883
22884 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
22885 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22886
22887 2011-01-14 Joseph Myers <joseph@codesourcery.com>
22888
22889 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
22890
22891 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22892
22893 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
22894 supports -Bstatic/-Bdynamic.
22895 * configure: Regenerate.
22896
22897 2011-01-14 Jan Hubicka <jh@suse.cz>
22898 Jack Howarth <howarth@bromo.med.uc.edu>
22899
22900 PR target/46037
22901 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
22902 when checking debug_info_level. Test write_symbols instead of
22903 debug_hooks->var_location when setting flag_var_tracking_uninit.
22904
22905 2011-01-14 Richard Guenther <rguenther@suse.de>
22906
22907 PR tree-optimization/47179
22908 * target.def (ref_may_alias_errno): New target hook.
22909 * targhooks.h (default_ref_may_alias_errno): Declare.
22910 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
22911 (default_ref_may_alias_errno): New function.
22912 * target.h (struct ao_ref_s): Declare.
22913 * tree-ssa-alias.c: Include target.h.
22914 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
22915 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
22916 (targhooks.o): Likewise.
22917 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
22918 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
22919
22920 2011-01-14 Richard Guenther <rguenther@suse.de>
22921
22922 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
22923
22924 2011-01-14 Richard Guenther <rguenther@suse.de>
22925
22926 PR tree-optimization/47280
22927 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
22928 return CFG changes.
22929 (tree_ssa_forward_propagate_single_use_vars): Deal with
22930 CFG changes from associate_plusminus.
22931
22932 2011-01-14 Richard Guenther <rguenther@suse.de>
22933
22934 PR middle-end/47281
22935 Revert
22936 2011-01-11 Richard Guenther <rguenther@suse.de>
22937
22938 PR tree-optimization/46076
22939 * tree-ssa.c (useless_type_conversion_p): Conversions from
22940 unprototyped to empty argument list function types are useless.
22941
22942 2011-01-14 Richard Guenther <rguenther@suse.de>
22943
22944 PR tree-optimization/47286
22945 * tree-ssa-structalias.c (new_var_info): Register variables are global.
22946
22947 2011-01-14 Martin Jambor <mjambor@suse.cz>
22948
22949 PR middle-end/46823
22950 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
22951
22952 2011-01-13 Anatoly Sokolov <aesok@post.ru>
22953
22954 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
22955 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22956 * config/xtensa/xtensa.c (xtensa_libcall_value,
22957 xtensa_function_value_regno_p): New functions.
22958 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22959
22960 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
22961
22962 PR c++/47213
22963 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
22964 PE specific hook.
22965 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
22966 New function prototype.
22967 * config/i386/winnt.c (i386_pe_assemble_visibility):
22968 Warn only if attribute was specified by user.
22969
22970 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
22971
22972 PR target/47251
22973 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
22974 floating point.
22975 (floatunsdidf2_fcfidu): Ditto.
22976
22977 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22978
22979 * config/s390/s390.c (print_operand_address): Replace 'error' with
22980 'output_operand_lossage'.
22981 (print_operand): Likewise.
22982
22983 2011-01-13 Jeff Law <law@redhat.com>
22984
22985 PR rtl-optimization/39077
22986 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
22987 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
22988 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
22989 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
22990 * gcse.c (prune_insertions_deletions): New function.
22991 (compute_pre_data): Use it.
22992
22993 2011-01-13 Dodji Seketeli <dodji@redhat.com>
22994
22995 PR debug/PR46973
22996 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
22997 static function.
22998 (prune_unused_types_mark): Use it.
22999
23000 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
23001
23002 PR rtl-optimization/45352
23003 * sel-sched.c: Update copyright years.
23004 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
23005 in the advancing loop when we have issued issue_rate insns.
23006
23007 2011-01-12 Richard Henderson <rth@redhat.com>
23008
23009 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
23010 (TARGET_MD_ASM_CLOBBERS): New.
23011
23012 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
23013 (TARGET_DELEGITIMIZE_ADDRESS): New.
23014
23015 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
23016 (clzsi2, *bsch): New patterns.
23017
23018 * config/mn10300/mn10300.md (INT): New mode iterator.
23019 (*mov<INT>_clr): New pattern, and peep2 to generate it.
23020
23021 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
23022 flag_split_wide_types.
23023
23024 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
23025 (mn10300_trampoline_init): Rewrite without a template, an immediate
23026 load and a direct branch.
23027 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
23028
23029 2011-01-12 Anatoly Sokolov <aesok@post.ru>
23030
23031 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23032 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
23033 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
23034 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23035
23036 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
23037
23038 PR debug/47209
23039 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
23040 of type.
23041
23042 2011-01-12 Jan Hubicka <jh@suse.cz>
23043
23044 PR driver/47244
23045 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
23046 (PLUGIN_COND_CLOSE): New macro.
23047 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
23048
23049 2011-01-12 Richard Guenther <rguenther@suse.de>
23050
23051 PR lto/47259
23052 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
23053 register variables in a MEM_REF.
23054
23055 2011-01-12 Joseph Myers <joseph@codesourcery.com>
23056
23057 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
23058 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
23059 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
23060 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
23061 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
23062 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
23063 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
23064 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
23065 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
23066 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
23067 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
23068 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
23069 * config/gnu-user.h: New. Copied from linux.h.
23070 (LINUX_TARGET_STARTFILE_SPEC): Rename to
23071 GNU_USER_TARGET_STARTFILE_SPEC.
23072 (LINUX_TARGET_ENDFILE_SPEC): Rename to
23073 GNU_USER_TARGET_ENDFILE_SPEC.
23074 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
23075 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
23076 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
23077 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
23078 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
23079 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
23080 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
23081 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
23082 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
23083 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
23084 * config/arm/linux-eabi.h (CC1_SPEC): Use
23085 GNU_USER_TARGET_CC1_SPEC.
23086 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
23087 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
23088 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
23089 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
23090 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
23091 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
23092 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
23093 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
23094
23095 2011-01-12 Richard Guenther <rguenther@suse.de>
23096
23097 PR other/46946
23098 * doc/invoke.texi (ffast-math): Document it is turned on
23099 with -Ofast.
23100
23101 2011-01-12 Jan Hubicka <jh@suse.cz>
23102
23103 PR tree-optimization/47233
23104 * opts.c (common_handle_option): Disable ipa-reference with profile
23105 feedback.
23106
23107 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
23108
23109 * c-parser.c (c_parser_objc_at_property_declaration): Improved
23110 error message.
23111
23112 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
23113
23114 * c-parser.c (c_lex_one_token): Updated and reindented some
23115 comments. No changes in code.
23116
23117 2011-01-11 Ian Lance Taylor <iant@google.com>
23118
23119 * godump.c (go_output_var): Don't output the variable if there is
23120 already a type with the same name.
23121
23122 2011-01-11 Ian Lance Taylor <iant@google.com>
23123
23124 * godump.c (go_format_type): Don't generate float80.
23125
23126 2011-01-11 Richard Henderson <rth@redhat.com>
23127
23128 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
23129 declaration. Rewrite for both speed and size.
23130 (mn10300_address_cost_1): Remove.
23131 (mn10300_register_move_cost): New.
23132 (mn10300_memory_move_cost): New.
23133 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
23134 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
23135 extensions, shifts, BSWAP, CLZ.
23136 (mn10300_wide_const_load_uses_clr): Remove.
23137 (TARGET_REGISTER_MOVE_COST): New.
23138 (TARGET_MEMORY_MOVE_COST): New.
23139 * config/mn10300/mn10300-protos.h: Update.
23140 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
23141
23142 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
23143 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
23144 * config/mn10300/mn10300-protos.h: Update.
23145 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
23146 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
23147 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
23148 (*test_int_bitfield, *test_byte_bitfield): Remove.
23149 (*bit_test, *subreg_bit_test): Remove.
23150 * config/mn10300/predicates.md (const_8bit_operand): Remove.
23151
23152 * config/mn10300/constraints.md ("c"): Rename from "A".
23153 ("A", "D"): New constraint letters.
23154 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
23155 (fmssf4, fnmasf4, fnmssf4): Likewise.
23156
23157 * config/mn10300/mn10300.md (isa): New attribute.
23158 (enabled): New attribute.
23159
23160 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
23161 (abssf2, negsf2): Define only for hardware fp.
23162 (sqrtsf2): Reformat.
23163 (addsf3, subsf3, mulsf3): Merge expander and insn.
23164
23165 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
23166 (DEBUGGER_AUTO_OFFSET): Remove.
23167 (DEBUGGER_ARG_OFFSET): Remove.
23168
23169 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
23170 Emit register stores with the same offsets as the hardware.
23171 (mn10300_store_multiple_operation): Don't check that the register
23172 save offsets are monotonic.
23173 * config/mn10300/mn10300-protos.h: Update.
23174
23175 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
23176
23177 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
23178 in terms of the value on the stack, not the MDR register.
23179
23180 2011-01-11 Jan Hubicka <jh@suse.cz>
23181
23182 PR lto/45721
23183 PR lto/45375
23184 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
23185 (symbol_alias_set_destroy, symbol_alias_set_contains,
23186 propagate_aliases_backward): Declare.
23187 * lto-streamer-out.c (struct sets): New sturcture.
23188 (trivally_defined_alias): New function.
23189 (output_alias_pair_p): Rewrite.
23190 (output_unreferenced_globals): Fix output of alias pairs.
23191 (produce_symtab): Likewise.
23192 * ipa.c (function_and_variable_visibility): Set weak alias destination
23193 as needed in lto.
23194 * varasm.c (symbol_alias_set_t): Remove.
23195 (symbol_alias_set_destroy): Export.
23196 (propagate_aliases_forward, propagate_aliases_backward): New functions
23197 based on ...
23198 (compute_visible_aliases): ... this one; remove.
23199 (trivially_visible_alias): New
23200 (trivially_defined_alias): New.
23201 (remove_unreachable_alias_pairs): Rewrite.
23202 (finish_aliases_1): Reorganize code checking if alias is defined.
23203 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
23204 in LTO mode.
23205
23206 2011-01-11 Richard Guenther <rguenther@suse.de>
23207
23208 PR tree-optimization/46076
23209 * tree-ssa.c (useless_type_conversion_p): Conversions from
23210 unprototyped to empty argument list function types are useless.
23211
23212 2011-01-11 Richard Guenther <rguenther@suse.de>
23213
23214 PR middle-end/45235
23215 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
23216 volatile MEMs as MEM_READONLY_P.
23217
23218 2011-01-11 Richard Guenther <rguenther@suse.de>
23219
23220 PR tree-optimization/47239
23221 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
23222
23223 2011-01-11 Jeff Law <law@redhat.com>
23224
23225 PR tree-optimization/47086
23226 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
23227 IVs from statements that might throw.
23228
23229 2011-01-10 Jan Hubicka <jh@suse.cz>
23230
23231 PR lto/45375
23232 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
23233
23234 2011-01-10 Jan Hubicka <jh@suse.cz>
23235
23236 PR lto/45375
23237 * profile.c (read_profile_edge_counts): Ignore profile inconistency
23238 when correcting profile.
23239
23240 2011-01-10 Jan Hubicka <jh@suse.cz>
23241
23242 PR lto/46083
23243 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
23244 DECL_FINI_PRIORITY.
23245 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
23246 Restore DECL_FINI_PRIORITY.
23247
23248 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23249
23250 * doc/gimple.texi: Fix quoting of multi-word return values in
23251 @deftypefn statements. Ensure presence of return value. Wrap
23252 overlong @deftypefn lines.
23253 (is_gimple_operand, is_gimple_min_invariant_address): Remove
23254 descriptions of removed functions.
23255 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
23256 of multi-word return value in @deftypefn statement.
23257
23258 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23259
23260 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
23261 (Conditional Expressions, Logical Operators)
23262 (Statement and operand traversals): Do not indent smallexample
23263 code. Fix duplicate function argument in example.
23264
23265 2011-01-10 Jeff Law <law@redhat.com>
23266
23267 PR tree-optimization/47141
23268 * ipa-split.c (split_function): Handle case where we are
23269 returning a value and the return block has a virtual operand phi.
23270
23271 2011-01-10 Jan Hubicka <jh@suse.cz>
23272
23273 PR tree-optimization/47234
23274 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
23275 (pass_feedback_split_functions): Declare.
23276 * passes.c (init_optimization_passes): Add ipa-split as subpass of
23277 tree-profile.
23278 * ipa-split.c (gate_split_functions): Update comments; disable
23279 split-functions for profile_arc_flag and branch_probabilities.
23280 (gate_feedback_split_functions): New function.
23281 (execute_feedback_split_functions): New function.
23282 (pass_feedback_split_functions): New global var.
23283
23284 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
23285
23286 PR lto/46760
23287 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
23288 calling gimple_call_set_cannot_inline.
23289
23290 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
23291
23292 * config/darwin-sections.def: Remove unused section.
23293
23294 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
23295
23296 PR c++/47218
23297 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
23298
23299 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
23300
23301 PR objc/47232
23302 * c-parser.c (c_parser_declaration_or_fndef): Improved
23303 error message.
23304
23305 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
23306
23307 * config/i386/winnt.c (i386_pe_start_function): Make sure
23308 to switch back to function's section.
23309
23310 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
23311
23312 PR gcc/46902
23313 PR testsuite/46912
23314 * plugin.c: Move include of dlfcn.h from here...
23315 * system.h: ... to here.
23316
23317 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23318
23319 * doc/cpp.texi (C++ Named Operators): Fix markup for header
23320 file name.
23321 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
23322 two extra empty pages in PDF output.
23323
23324 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
23325
23326 PR objc/47078
23327 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
23328 for error recovery purposes behave as if it was not specified so
23329 that the default type is usd.
23330
23331 2011-01-07 Jan Hubicka <jh@suse.cz>
23332
23333 PR tree-optmization/46469
23334 * ipa.c (function_and_variable_visibility): Clear needed flags on
23335 nodes with external decls; handle weakrefs merging correctly.
23336
23337 2011-01-07 Joseph Myers <joseph@codesourcery.com>
23338
23339 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
23340 not false.
23341
23342 2011-01-07 Jan Hubicka <jh@suse.cz>
23343
23344 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
23345 and no longer claim that gold is required for linker plugin.
23346 * configure: Regenerate.
23347 * gcc.c (PLUGIN_COND): New macro.
23348 (LINK_COMMAND_SPEC): Use it.
23349 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
23350 * config.in (HAVE_LTO_PLUGIN): New.
23351 * configure.ac (--with-lto-plugin): New parameter; autodetect
23352 HAVE_LTO_PLUGIN.
23353
23354 2011-01-07 Jan Hubicka <jh@suse.cz>
23355
23356 PR tree-optimization/46367
23357 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
23358 when we can update original.
23359 (cgraph_mark_inline_edge): Sanity check.
23360 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
23361
23362 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23363
23364 * config/spu/spu.h (ASM_COMMENT_START): Define.
23365
23366 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
23367
23368 PR driver/42445
23369 * gcc.c (%>S): New.
23370 (SWITCH_KEEP_FOR_GCC): Likewise.
23371 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
23372 (do_spec_1): Handle "%>".
23373
23374 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
23375
23376 2011-01-07 Jakub Jelinek <jakub@redhat.com>
23377
23378 PR target/47201
23379 * config/i386/i386.c (ix86_delegitimize_address): If
23380 simplify_gen_subreg fails, return orig_x.
23381
23382 PR bootstrap/47187
23383 * value-prof.c (gimple_stringop_fixed_value): Handle
23384 lhs of the call properly.
23385
23386 2011-01-07 Jan Hubicka <jh@suse.cz>
23387
23388 PR lto/45375
23389 * lto-opt.c (lto_reissue_options): Set flag_shlib.
23390
23391 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23392
23393 * target.def (function_switched_text_sections): New hook.
23394 * doc/tm.texi: Regenerated.
23395 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23396 * final.c (default_function_switched_text_sections): New.
23397 (final_scan_insn): Call function_switched_text_sections when a
23398 mid-function section change occurs.
23399 * output.h (default_function_switched_text_sections): Declare.
23400 * config/darwin-protos.h (darwin_function_switched_text_sections):
23401 Likewise.
23402 * config/darwin.c (darwin_function_switched_text_sections): New.
23403 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
23404
23405 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
23406
23407 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
23408 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
23409 the secondary code fragment when outputting for DWARF == 2.
23410
23411 2011-01-07 Anatoly Sokolov <aesok@post.ru>
23412
23413 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23414 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
23415 Remove.
23416 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
23417 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23418
23419 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
23420
23421 PR debug/46704
23422 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
23423 when it is not empty.
23424
23425 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
23426
23427 Bobcat Enablement
23428 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
23429 (case ${target}): Add btver1.
23430 * config/i386/driver-i386.c (host_detect_local_cpu): Let
23431 -march=native recognize btver1 processors.
23432 * config/i386/i386-c.c (ix86_target_macros_internal): Add
23433 btver1 def_and_undef
23434 * config/i386/i386.c (struct processor_costs btver1_cost): New
23435 btver1 cost table.
23436 (m_BTVER1): New definition.
23437 (m_AMD_MULTIPLE): Includes m_BTVER1.
23438 (initial_ix86_tune_features): Add btver1 tune.
23439 (processor_target_table): Add btver1 entry.
23440 (static const char *const cpu_names): Add btver1 entry.
23441 (software_prefetching_beneficial_p): Add btver1.
23442 (ix86_option_override_internal): Add btver1 instruction sets.
23443 (ix86_issue_rate): Add btver1.
23444 (ix86_adjust_cost): Add btver1.
23445 * config/i386/i386.h (TARGET_BTVER1): New definition.
23446 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
23447 (enum processor_type): Add PROCESSOR_BTVER1.
23448 * config/i386/i386.md (define_attr "cpu"): Add btver1.
23449
23450 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23451
23452 PR target/43309
23453 * config/i386/i386.c (legitimize_tls_address)
23454 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
23455 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
23456 (tls_initial_exec_64_sun): New pattern.
23457
23458 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
23459
23460 * doc/invoke.texi (Overall Options): Improve wording and markup
23461 of the description of -wrapper.
23462
23463 2011-01-06 Joseph Myers <joseph@codesourcery.com>
23464
23465 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
23466 rdynamic, threads): New Driver options.
23467
23468 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23469
23470 PR target/38118
23471 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
23472 if coming from .tdata.
23473 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
23474
23475 2011-01-06 Jan Hubicka <jh@suse.cz>
23476
23477 PR lto/47188
23478 * collect2.c (main): Do not enable LTOmode when plugin is active.
23479
23480 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23481
23482 PR other/45915
23483 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
23484 --version output if supported.
23485 * configure: Regenerate.
23486
23487 2011-01-06 Joseph Myers <joseph@codesourcery.com>
23488
23489 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
23490 Driver options.
23491
23492 2011-01-06 Jakub Jelinek <jakub@redhat.com>
23493
23494 PR c/47150
23495 * c-convert.c (convert): When converting a complex expression
23496 other than COMPLEX_EXPR to a different complex type, ensure
23497 c_save_expr is called instead of save_expr, unless in_late_binary_op.
23498 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
23499 when converting COMPLEX_TYPE.
23500
23501 2011-01-06 Ira Rosen <irar@il.ibm.com>
23502
23503 PR tree-optimization/47139
23504 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
23505 only the last reduction value is used outside the loop. Update
23506 documentation.
23507
23508 2011-01-05 Joseph Myers <joseph@codesourcery.com>
23509
23510 * config/rtems.opt: New.
23511 * config.gcc (*-*-rtems*): Use rtems.opt.
23512
23513 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
23514
23515 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
23516 processors do not support 3DNow instructions.
23517
23518 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23519
23520 * config/spu/spu.c (spu_option_override): Set parameter
23521 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
23522
23523 2011-01-05 Jan Hubicka <jh@suse.cz>
23524
23525 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
23526 at the command line.
23527
23528 2011-01-05 Martin Jambor <mjambor@suse.cz>
23529
23530 PR lto/47162
23531 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
23532 deltas on streamed outgoing edges.
23533 (output_node_opt_summary): Output info for outgoing edges only when
23534 the node is in new parameter set.
23535 (output_cgraph_opt_summary): New parameter set, passed to the two
23536 aforementioned functions. Update its forward declaration and its
23537 callee too.
23538
23539 2011-01-05 Tom Tromey <tromey@redhat.com>
23540
23541 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
23542 operator to c_finish_omp_atomic.
23543 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
23544 (build_unary_op): Update.
23545 (build_modify_expr): Update.
23546 (build_asm_expr): Update.
23547
23548 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23549
23550 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
23551 newly inserted insns.
23552 (pad_bb): Likewise.
23553 (spu_emit_branch_hint): Likewise.
23554 (insert_hbrp_for_ilb_runout): Likewise.
23555 (spu_machine_dependent_reorg): Call df_finish_pass after
23556 schedule_insns returns.
23557
23558 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23559
23560 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
23561
23562 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
23563
23564 PR tree-optimization/47005
23565 * tree-sra.c (struct access): Add 'non_addressable' bit.
23566 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
23567 (decide_one_param_reduction): Return 0 if the parameter is passed by
23568 reference and one of the accesses in the group is non_addressable.
23569
23570 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23571
23572 PR tree-optimization/47056
23573 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
23574 (mark_load): Likewise. Handle FUNCTION_DECL specially.
23575 (mark_store): Likewise. Pass STMT to ipa_record_reference.
23576
23577 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
23578
23579 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
23580 initializer. Skip view conversions from aggregate types.
23581
23582 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
23583
23584 PR bootstrap/47055
23585 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
23586
23587 2011-01-04 Philipp Thomas <pth@suse.de>
23588
23589 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
23590 obvious typo.
23591
23592 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23593
23594 * function.c (thread_prologue_and_epilogue_insns): Do not crash
23595 on empty epilogue sequences.
23596
23597 2011-01-04 Joseph Myers <joseph@codesourcery.com>
23598
23599 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
23600 non-static): New Driver options.
23601
23602 2011-01-04 Jie Zhang <jie@codesourcery.com>
23603
23604 PR driver/47137
23605 * gcc.c (default_compilers[]): Set combinable field to 0
23606 for all assembly languages.
23607
23608 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
23609
23610 * config/mips/loongson3a.md: New file.
23611 * config/mips/mips.md: Include loongson3a.md.
23612 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
23613 TUNE_LOONGSON_3A.
23614
23615 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
23616
23617 PR middle-end/47017
23618 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
23619 instead of convert_memory_address_addr_space on the base expression.
23620
23621 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23622
23623 * config/spu/spu.c (spu_option_override): Update error text
23624 for bad -march= / -mtune= values.
23625
23626 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23627
23628 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
23629 if branch-hint optimization will be performed.
23630
23631 2011-01-03 Jakub Jelinek <jakub@redhat.com>
23632
23633 PR tree-optimization/47148
23634 * ipa-split.c (split_function): Convert arguments to
23635 DECL_ARG_TYPE if possible.
23636
23637 PR tree-optimization/47155
23638 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
23639 when computing uns.
23640
23641 PR rtl-optimization/47157
23642 * combine.c (try_combine): If undobuf.other_insn becomes
23643 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
23644 and set *new_direct_jump_p too.
23645
23646 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
23647
23648 PR tree-optimization/47021
23649 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
23650
23651 2011-01-03 Jakub Jelinek <jakub@redhat.com>
23652
23653 * gcc.c (process_command): Update copyright notice dates.
23654 * gcov.c (print_version): Likewise.
23655 * gcov-dump.c (print_version): Likewise.
23656 * mips-tfile.c (main): Likewise.
23657 * mips-tdump.c (main): Likewise.
23658
23659 2011-01-03 Martin Jambor <mjambor@suse.cz>
23660
23661 PR tree-optimization/46801
23662 * tree-sra.c (type_internals_preclude_sra_p): Check whether
23663 aggregate fields start at byte boundary instead of the bit-field flag.
23664
23665 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
23666
23667 PR driver/47137
23668 * gcc.c (main): Revert revision 168407.
23669
23670 2011-01-03 Martin Jambor <mjambor@suse.cz>
23671
23672 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
23673
23674 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23675
23676 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
23677 vector optab to expand vector/scalar shift, update gimple to vector.
23678
23679 2011-01-03 Martin Jambor <mjambor@suse.cz>
23680
23681 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
23682 a thunk.
23683
23684 2011-01-03 Martin Jambor <mjambor@suse.cz>
23685
23686 PR tree-optimization/46984
23687 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
23688 HOST_WIDE_INT.
23689 (cgraph_create_indirect_edge): Fixed line length.
23690 (cgraph_indirect_call_info): Declare.
23691 (cgraph_make_edge_direct) Update declaration.
23692 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
23693 (cgraph_create_indirect_edge): Use it.
23694 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
23695 callees.
23696 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
23697 the new thunk_delta representation.
23698 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
23699 HOST_WIDE_INT.
23700 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
23701 (ipa_read_indirect_edge_info): Likewise.
23702 * lto-cgraph.c (output_edge_opt_summary): New function.
23703 (output_node_opt_summary): Call it on all outgoing edges.
23704 (input_edge_opt_summary): New function.
23705 (input_node_opt_summary): Call it on all outgoing edges.
23706
23707 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
23708
23709 PR driver/47137
23710 * gcc.c (main): Don't check have_o when settting combine_inputs.
23711
23712 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
23713
23714 * regrename.c: Add general comment describing the pass.
23715 (struct du_head): Remove 'length' field.
23716 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
23717 (regrename_optimize): Do not sort chains. Rework comments, add others.
23718 Force renaming to the preferred class (if any) in the first pass and do
23719 not consider registers that belong to it in the second pass.
23720 (create_new_chain): Do not set 'length' field.
23721 (scan_rtx_reg): Likewise.
23722
23723 2011-01-02 Jakub Jelinek <jakub@redhat.com>
23724
23725 PR tree-optimization/47140
23726 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
23727 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
23728 to bit_value_binop.
23729
23730 PR rtl-optimization/47028
23731 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
23732 parm_birth_insn instead of at the beginning of first bb.
23733
23734 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
23735
23736 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
23737 Remove the word "see" before "@pxref".
23738 * doc/rtl.texi: Remove the word "see" before "@pxref".
23739
23740 2011-01-01 Jan Hubicka <jh@suse.cz>
23741
23742 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
23743 memory.
23744
23745 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
23746
23747 PR target/38662
23748 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
23749
23750 \f
23751 Copyright (C) 2011 Free Software Foundation, Inc.
23752
23753 Copying and distribution of this file, with or without modification,
23754 are permitted in any medium without royalty provided the copyright
23755 notice and this notice are preserved.