]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Add support for floating-point fused multiply-add on Sparc.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7cbcf85b
DM
12011-09-25 David S. Miller <davem@davemloft.net>
2
3 * config/sparc/constraints.md (C, P, Z): New constraints for
4 const_doube, const_int, and const_vector "all ones" values.
5 Make unused constraint letters comment match reality.
6 * config/sparc/predicates.md (const_all_ones_operand,
7 register_or_zero_or_all_ones_operand): New predicates.
8 * config/sparc/sparc.c (sparc_expand_move): Allow all ones
9 as well as zero constants when VIS.
10 (sparc_legitimate_constant_p): Likewise.
11 * config/sparc/sparc.md (movsi_insn): Add fones alternative.
12 (movsf_insn): Likewise
13 (movdi_insn_sp64): Add fone alternative.
14 (movdf_insn_sp32_v9): Likewise.
15 (movdf_insn_sp64): Likewise.
16
e8b141b5
DM
17 * configure.ac: Add feature check to make sure the assembler
18 supports the FMAF, HPC, and VIS 3.0 instructions found on
19 Niagara-3 and later cpus.
20 * configure: Rebuild.
21 * config.in: Likewise.
22 * config/sparc/sparc.opt: New option '-mfmaf'.
23 * config/sparc/sparc.md: Add float fused multiply-add patterns.
24 * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
25 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
26 * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
27 ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
28 * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
29 by default for Niagara-3 and later. Turn it off if TARGET_FPU is
30 disabled.
31 (sparc_rtx_costs): Handle 'FMA'.
32 * doc/invoke.texi: Document -mfmaf.
33
960dcaf5
JJ
342011-09-25 Jakub Jelinek <jakub@redhat.com>
35
36 * tree-ssa-structalias.c (intra_create_variable_infos): Treat
37 TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
38 DECL_BY_REFERENCE parameters.
39
1ee0d660
EB
402011-09-25 Eric Botcazou <ebotcazou@adacore.com>
41
42 * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
43 if there is no outgoing edge.
44
45 * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
46 integral types.
47
8e19f5a1
IR
482011-09-25 Ira Rosen <ira.rosen@linaro.org>
49
50 * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
51 of vect_analyze_bb here.
52 (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
53
4e4452b6
IR
542011-09-25 Ira Rosen <ira.rosen@linaro.org>
55
56 * tree-data-ref.c (dr_analyze_innermost): Add new argument.
57 Allow not simple iv if analyzing basic block.
58 (create_data_ref): Update call to dr_analyze_innermost.
59 (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
60 * tree-loop-distribution.c (generate_memset_zero): Likewise.
61 * tree-predcom.c (find_looparound_phi): Likewise.
62 * tree-data-ref.h (dr_analyze_innermost): Add new argument.
63
10b859c0
DM
642011-09-24 David S. Miller <davem@davemloft.net>
65
66 * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
67 (SPARC_GSR_REG): Define.
68 (FIXED_REGISTERS): Mark GSR as fixed.
69 (CALL_USED_REGISTERS): Mark GSR as call used.
70 (HARD_REGNO_NREGS): GSR is always 1 register.
71 (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
72 (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
73 (REGISTER_NAMES): Add "%gsr".
74 * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL):
75 Delete.
76 (UNSPEC_WRGSR): New unspec.
77 (GSR_REG): New constant.
78 (type): Add new insn type 'gsr'.
79 (fpack16_vis, fpackfix_vis, fpack32_vis,
80 faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
81 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
82 rdgsr_v8plus): New expanders and insns.
83 (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
84 using patterns which show that this is a plus in addition to a
85 modification of GSR_REG, instead of an unspec.
86 * config/sparc/ultra1_2.md: Handle 'gsr'.
87 * config/sparc/ultra3.md: Likewise.
88 * config/sparc/niagara.md: Likewise.
89 * config/sparc/niagara2.md: Likewise.
90 * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
91 end of table.
92 (sparc_option_override): Make -mvis imply -mv8plus.
93 (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
94 for %gsr.
95 (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
96 __builtin_vis_read_gsr.
97 (sparc_expand_buildin): Handle builtins that take one argument and
98 return void.
99 (sparc_fold_builtin): Never fold writes to %gsr.
100 * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
101 * doc/extend.texi: Document new VIS intrinsics.
102
25837a2f
JH
1032011-09-23 Jan Hubicka <jh@suse.cz>
104
105 * ipa-inline-transform.c (inline_call): Add comment.
106 * ipa-inline.h (inline_param_summary): New structure and vector.
107 (struct inline_edge_summary): Add param field.
108 * ipa-inline-analysis.c (CHANGED): New constant.
109 (add_clause): Handle CHANGED and NOT_CONSTANT.
110 (predicate_probability): New function.
111 (dump_condition): Dump CHANGED predicate.
112 (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
113 of unknown function wide invariant.
114 (evaluate_conditions_for_edge): Handle change probabilities.
115 (inline_edge_duplication_hook): Copy param summaries.
116 (inline_edge_removal_hook): Free param summaries.
117 (dump_inline_edge_summary): Fix dumping of indirect edges and callee sizes;
118 dump param summaries.
119 (will_be_nonconstant_predicate): Use CHANGED predicate.
120 (record_modified_bb_info): New structure.
121 (record_modified): New function.
122 (param_change_prob): New function.
123 (estimate_function_body_sizes): Compute param summaries.
124 (estimate_edge_size_and_time): Add probability argument.
125 (estimate_node_size_and_time): Add inline_param_summary argument;
126 handle predicate probabilities.
127 (remap_predicate): Fix formating.
128 (remap_edge_change_prob): New function.
129 (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
130 (remap_edge_predicates): ... this one.
131 (inline_merge_summary): Remap edge summaries; handle predicate probabilities;
132 remove param summaries after we are done.
133 (do_estimate_edge_time): Update.
134 (do_estimate_edge_growth): Update.
135 (read_inline_edge_summary): Read param info.
136 (inline_read_summary): Fix formating.
137 (write_inline_edge_summary): Write param summaries.
138
1db4406e
JJ
1392011-09-23 Jakub Jelinek <jakub@redhat.com>
140
141 * config/i386/i386.c (ix86_print_operand): Handle %~.
142 (ix86_print_operand_punct_valid_p): Return true also for '~'.
143 * config/i386/sse.md (i128): New mode_attr.
144 (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
145 avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
146 *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
147 vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
148 patterns, use "<sseinsnmode>" for "mode" attribute.
149 (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
150 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
151 %~128 in the patterns, use "OI" for "mode" attribute.
152
a7c0acd0
GJL
1532011-09-23 Georg-Johann Lay <avr@gjlay.de>
154
155 PR target/50447
156 * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
157 "tstsi", "compare".
158 (*cmpqi_sign_extend): Use s8_operand.
159 (*cmphi, *cmpsi): Rewrite using avr_out_compare.
160 * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
161 prototypes.
162 (out_tsthi, out_tstsi): Remove prototypes.
163 (avr_out_tsthi, avr_out_tstsi): New prototypes.
164 * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
165 (avr_asm_len): Negative length now sets *plen to -length.
166 (compare_sign_p): Return bool instead of int.
167 (compare_diff_p, compare_eq_p): Ditto and make static.
168 (avr_out_tsthi): New function.
169 (avr_out_tstsi): New function.
170 (avr_out_compare): New function.
171 (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
172 ADJUST_LEN_COMPARE.
173
59024515
GJL
1742011-09-23 Georg-Johann Lay <avr@gjlay.de>
175
176 PR target/50447
177 * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
178 (addsi3): Rewrite using QI scratch register. Adjust text
179 peepholes using plus:SI.
180 (*addsi3_zero_extend.hi): New insn.
181 (*subsi3_zero_extend.hi): New insn.
182 (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
183 (*subsi3_zero_extend): Ditto.
184 (subsi3): Change predicate #2 to register_operand.
185 * config/avr/avr-protos.h (avr_out_plus): New prototype.
186 (avr_out_plus_1): New static function.
187 (avr_out_plus): New function.
188 (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
189
50926346
JJ
1902011-09-23 Jakub Jelinek <jakub@redhat.com>
191
192 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
193 GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
194
9e4ef69e
ILT
1952011-09-23 Ian Lance Taylor <iant@google.com>
196
197 * godump.c (go_define): Treat a single character in single quotes,
198 or a string, as an operand.
199
c7573249
MJ
2002011-09-23 Martin Jambor <mjambor@suse.cz>
201
202 * ipa-prop.h (jump_func_type): Updated comments.
203 (ipa_known_type_data): New type.
204 (ipa_jump_func): Use it to describe known type jump functions.
205 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
206 reflect the new known type jump function contents.
207 (compute_known_type_jump_func): Likewise.
208 (combine_known_type_and_ancestor_jfs): Likewise.
209 (try_make_edge_direct_virtual_call): Likewise.
210 (ipa_write_jump_function): Likewise.
211 (ipa_read_jump_function): Likewise.
212 * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
213 (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
214 (propagate_accross_jump_function): Likewise.
215
5d94b988
GJL
2162011-09-23 Georg-Johann Lay <avr@gjlay.de>
217
218 PR target/50446
219 * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
220 (rotlqi3_4): Turn insn into expander.
221 (*rotlqi3): New insn.
222 (rotlhi3, rotlsi3): Support rotate left/right by 1.
223 (*rotlhi2.1, *rotlhi2.15): New insns.
224 (*rotlsi2.1, *rotlsi2.31): New insns.
225 * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
226
9acebb8a
BC
2272011-09-23 Bin Cheng <bin.cheng@arm.com>
228
229 * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch
230 and processors.
231
3ea6239f
MK
2322011-09-22 Maxim Kuvyrkov <maxim@codesourcery.com>
233
234 * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
235
19077123
AK
2362011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
237
238 * reload.c (find_reloads): Set operand_mode to Pmode for address
239 operands consisting of just a CONST_INT.
240
63d045e1
UB
2412011-09-22 Uros Bizjak <ubizjak@gmail.com>
242
243 PR target/50482
244 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
245 blendv, force op_true to register if it doesn't satisfy
246 nonimmediate_operand predicate.
247
3576f984
RS
2482011-09-22 Richard Sandiford <rdsandiford@googlemail.com>
249
250 PR middle-end/50113
251 PR middle-end/50061
252 * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
253 get the locate.where_pad value for register-only arguments.
254 * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
255 (arm_pad_reg_upward): Handle null types.
256
9e990d14
JH
2572011-09-22 Jan Hubicka <jh@suse.cz>
258
259 * ipa-inline-analysis.c: Fix overly long lines.
260
5ee53a06
JH
2612011-09-22 Jan Hubicka <jh@suse.cz>
262
263 * ipa-inline-transform.c (inline_call): Always update jump functions
264 after inlining.
265 * ipa-inline.c (ipa_inline): Likewise; do not call
266 ipa_create_all_structures_for_iinln.
267 (ipa_inline): Always free jump functions.
63d045e1 268 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
5ee53a06
JH
269 (remap_edge_predicates): Fix pasto.
270 (inline_merge_summary): Remove nlined edge predicate; remove hack.
271 (inline_analyze_function): Always initialize jump functions.
272 (inline_generate_summary): Likewise.
273 (inline_write_summary): Always write jump functions when ipa-cp
274 is not doing that.
275 (inline_read_summary): Always read jump functions when ipa-cp
276 is not doing that.
277 * ipa-prop.c (iinlining_processed_edges): Remove.
278 (update_indirect_edges_after_inlining): Do not use
279 iinlining_processed_edges; instead set param_index to -1.
280 (propagate_info_to_inlined_callees): Only try to indirect inlining
281 when asked to do so; update jump functions of indirect calls, too;
282 remove jump functions of the inlined edge.
283 (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
284 (ipa_create_all_structures_for_iinln): Remove.
285 (ipa_free_all_structures_after_iinln): Do not free
286 iinlining_processed_edges.
287 * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
288
aa0b3f8f
RS
2892011-09-22 Richard Sandiford <richard.sandiford@linaro.org>
290
291 * config/arm/predicates.md (expandable_comparison_operator): New
292 predicate, extracted from...
293 (arm_comparison_operator): ...here.
294 * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
295 (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
296 (movdfcc): Use expandable_comparison_operator.
297
6ebe2d6c
GJL
2982011-09-22 Georg-Johann Lay <avr@gjlay.de>
299
300 PR target/50447
301 PR target/50465
302 * config/avr/avr-protos.h (avr_out_bitop): New prototype.
303 (avr_popcount_each_byte): New prototype.
304 * config/avr/avr.c (avr_popcount): New static function.
305 (avr_popcount_each_byte): New function.
306 (avr_out_bitop): New function.
307 (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
308 avr_out_bitop. Cleanup code.
309 * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
310 (Ca4, Co4, Cx4): New constraints.
311 * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
312 alternative.
313 (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
314 (andsi3, iorsi3, xorsi3): Ditto.
315 (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
316
29ed4920
IR
3172011-09-22 Ira Rosen <ira.rosen@linaro.org>
318
319 PR tree-optimization/50451
320 * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
321 constant operands in reduction.
322 (vect_get_slp_defs): Don't create vector operand for NULL scalar
323 operand.
324
f0d07099
DM
3252011-09-22 David S. Miller <davem@davemloft.net>
326
327 * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
328 fpack16, fpack32, fpackfix as const.
329
45a7dd80
DM
330 * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
331 I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
332 constants. Use them everywhere.
333
b7cf894f
OE
3342011-09-22 Oleg Endo <oleg.endo@t-online.de>
335
336 * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
337 Added AND special case. Adapted comments.
338 (sh_rtx_costs): Added XOR and IOR case.
339
5f9f3517
JH
3402011-09-21 Jan Hubicka <jh@suse.cz>
341
342 * ipa-inline-analsis.c (compute_inline_parameters): Set
343 cfun and current_function_decl.
344
3452011-09-21 Jan Hubicka <jh@suse.cz>
346
347 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
348 handled components in parameter of builtin_constant_p.
349 (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
350
b439486d
JH
3512011-09-21 Jan Hubicka <jh@suse.cz>
352
353 * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
354 * ipa-inline.h (estimate_edge_time): Fix pasto.
355 * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
356
b17e0d79
JJ
3572011-09-21 Jakub Jelinek <jakub@redhat.com>
358
359 * config/i386/i386.c (ix86_expand_sse_movcc): Use
360 blendvps, blendvpd and pblendvb if possible.
361
bd352290
UB
3622011-09-21 Uros Bizjak <ubizjak@gmail.com>
363
364 PR target/50464
365 * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
366 operand 1 predicate to register_operand and operand 2 predicate
367 to nonimmediate_operand.
368 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
369 xop_pcmov, force op_true to register. Also, force op_false to
370 register if it doesn't satisfy nonimmediate_operand predicate.
371
655d5157
KY
3722011-09-21 Kirill Yukhin <kirill.yukhin@intel.com>
373
374 * config/i386/bmi2intrin.h (_mulx_u64): New.
375 (_mulx_u32): Ditto.
376
116b9c07
JH
3772011-09-21 Jan Hubicka <jh@suse.cz>
378
379 PR tree-optimization/50433
bd352290
UB
380 * ipa-inline-analysis.c (eliminated_by_inlining_prob):
381 Use get_base_address.
116b9c07 382
bdbebb7d
JJ
3832011-09-21 Jakub Jelinek <jakub@redhat.com>
384
385 * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
386 nonimmediate_operand instead of register_operand predicate for operands
387 1 and 2, force them into registers if expanding them as comparison.
388 (<code><mode>3 umaxmin:VI124_128 expander): Similarly. For UMAX
389 V8HImode force into register just operand 1.
390
e3e28585
GJL
3912011-09-21 Georg-Johann Lay <avr@gjlay.de>
392
393 PR target/45099
394 * config/avr/avr.c (avr_function_arg_advance): Change error to
395 warning if a fixed register is needed as function argument.
396
8dab2ba5
GJL
3972011-09-21 Georg-Johann Lay <avr@gjlay.de>
398
399 PR target/50449
400 PR target/50465
401 * config/avr/avr.md (adjust_len): New insn attribute.
402 (*reload_insi, *reload_insf): Use it.
403 (*movsi, *movsf): Use new interface of output_movsisf.
404 * config/avr/avr-protos.h (output_movsisf): Change prototype.
405 * config/avr/avr.c (output_movsisf): Ditto.
406 (adjust_insn_length): Use insn attribute "adjust_len" to adjust
407 lengths of insns *reload_insi, *reload_insf.
408 (output_reload_insisf_1): New static function.
409 (output_reload_insisf): Use it.
410
3653988e
DM
4112011-09-21 David S. Miller <davem@davemloft.net>
412
413 * config/sparc/sparc.c (def_builtin): Change from macro into function.
414 (def_builtin_const): New.
415 (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
416 other than alignaddr and falignaddr.
417
f4d7f828
DM
418 * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
419 UNSPEC_FCMPEQ): New unspec codes.
420 (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
421 fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
422 * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
423 new pixel compare VIS patterns.
424 * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
425 __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
426 __vis_fcmpeq16, __vis_fcmpeq32): New.
427 * doc/extend.texi: Document new pixel compare VIS intrinsics.
428
0c514727
TV
4292011-09-21 Tom de Vries <tom@codesourcery.com>
430
431 * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
432
47640f40
DM
4332011-09-20 David S. Miller <davem@davemloft.net>
434
435 * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
436 (aligneddrl<P:mode>_vis): New pattern.
437 (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
438 edge32l_vis): Adjust to take Pmode arguments, and return SImode.
439 * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
440 alignaddrl insn, and adjust edge operations for updated types.
441 * config/sparc/visintrin.h: Likewise.
442 * doc/extend.texi: Make typing in VIS documentation match reality.
443
77d1f682
TG
4442011-09-20 Terry Guo <terry.guo@arm.com>
445
446 * config/arm/arm-arches.def: Add armv6s-m.
447 * config/arm/arm-tables.opt: Regenerate.
448
03230002
WG
4492011-09-20 Wei Guozhi <carrot@google.com>
450
451 PR rtl-optimization/49452
452 * postreload.c (reload_combine): Invalidate use information when across
453 volatile insn.
454
4ec5affa
MK
4552011-09-19 Maxim Kuvyrkov <maxim@codesourcery.com>
456
457 * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
458 Remove maintenance overhead.
459 (haifa_sched_init, sched_finish): Update.
460
b5344bf4
UB
4612011-09-19 Uros Bizjak <ubizjak@gmail.com>
462
463 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
464 to calculate unit, prefix_rep and prefix_data16 attributes.
465 (*mov<mode>_internal): Ditto for unit attribute.
466 (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
467 (*movv2sf_internal): Ditto.
468 * config/i386/sse.md (VI1248_256): Remove mode iterator.
469 (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
470 (*avx2_eq<mode>3): Ditto.
471 (avx2_gt<mode>3): Ditto.
472
52325f2c
UB
4732011-09-19 Uros Bizjak <ubizjak@gmail.com>
474
475 * config/i386/i386.md (maxmin): New code iterator.
476 * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
477 from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
478 code iterator.
479 (*avx2_<maxmin:code><mode>3): Macroize isn from
480 *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
481 maxmin code iterator.
482 (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
483 (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
484 <umaxmin:code>v16qi3.
485
0b5f3ce7
AM
4862011-09-19 Alan Modra <amodra@gmail.com>
487 Michael Meissner <meissner@linux.vnet.ibm.com>
488
489 PR target/50341
490 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
491 split the load of the indirect function's TOC from the call to
492 prevent the compiler from moving the load of the new TOC above
493 code that references the current function's TOC.
494 (call_indirect_aix<ptrsize>_internal): Ditto.
495 (call_indirect_aix<ptrsize>_nor11): Ditto.
496 (call_indirect_aix<ptrsize>_internal2): Ditto.
497 (call_value_indirect_aix<ptrsize>): Ditto.
498 (call_value_indirect_aix<ptrsize>_internal): Ditto.
499 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
500 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
501
5a1357fb
JJ
5022011-09-19 Jakub Jelinek <jakub@redhat.com>
503
504 * config/i386/sse.md (*sse4_1_extractps): Change into
505 define_insn_and_split, add =x 0 n and =x x n alternatives
506 and split them after reload.
507
d396f899
AO
5082011-09-19 Alexandre Oliva <aoliva@redhat.com>
509
510 * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
511
a52a87c3
AO
5122011-09-19 Alexandre Oliva <aoliva@redhat.com>
513
514 * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
515
7deb61cd
IR
5162011-09-19 Ira Rosen <ira.rosen@linaro.org>
517
518 PR tree-optimization/50413
519 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
520 a basic block if one of its data-refs can't be analyzed.
521
a3627303
PB
5222011-09-19 Paul Brook <paul@codesourcery.com>
523
a3627303
PB
524 * config/arm/predicates.md (shift_amount_operand): Check constant
525 shift count is in range.
526 (const_shift_operand): Remove.
527
3903f804
EB
5282011-09-18 Eric Botcazou <ebotcazou@adacore.com>
529 Iain Sandoe <developer@sandoe-acoustics.co.uk>
530
531 PR target/50091
532 * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
533 * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
534
e0cdd8d4
L
5352011-09-18 H.J. Lu <hongjiu.lu@intel.com>
536
537 * config/i386/bmiintrin.h: Remove tmp.
538 * config/i386/tbmintrin.h: Likewise.
539
0e93a64e
IR
5402011-09-18 Ira Rosen <ira.rosen@linaro.org>
541
542 PR tree-optimization/50414
543 * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
544 MIN_EXPR.
545
deaf836c
IR
5462011-09-18 Ira Rosen <ira.rosen@linaro.org>
547
548 PR tree-optimization/50412
549 * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
550 acceses that require epilogue loop if vectorizing outer loop.
551
b1e4f4dd
DM
5522011-09-17 David S. Miller <davem@davemloft.net>
553
554 * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
555 UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
556 New unspecs.
557 (define_attr type): New type 'edge'.
558 (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
559 edge32l_vis): New patterns.
560 * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
561 * config/sparc/ultra3.md: Likewise.
562 * config/sparc/niagara.md: Likewise.
563 * config/sparc/niagara2.md: Likewise.
564 * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
565 builtins for VIS edge instructions.
566 * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
567 (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
568 intrinsics.
569 (__v8qi, __v4qi): Make unsigned.
570 (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
571 __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
572 __vis_fpack32): Fix types.
573 * doc/extend.texi: Document new 'edge' VIS intrinsics.
574
ab0ca06f
DM
575 * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
576 divide costs.
577 (niagara3_costs): New.
578 (sparc_option_override): Use it.
579 * gcc/config/sparc/niagara2.md: Adjust with more accurate
580 Niagara-3 reservations.
581
32469ccc
JJ
5822011-09-17 Jakub Jelinek <jakub@redhat.com>
583
8a0436cb
JJ
584 * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
585 (sse2_avx, sseinsnmode): Add V2TI.
586 (REDUC_SMINMAX_MODE): New mode iterator.
587 (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
588 reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
589 (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
590 (sse2_lshrv1ti3): Rename to...
591 (<sse2_avx2>_lshr<mode>3): ... this. Use VIMAX_AVX2 mode
592 iterator. Move before umaxmin expanders.
593 * config/i386/i386.h (VALID_AVX256_REG_MODE,
594 SSE_REG_MODE_P): Accept V2TImode.
595 * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
596 V16HImode, V8SImode and V4DImode.
597
32469ccc
JJ
598 * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
599 and V4DImode.
600 (ix86_build_signbit_mask): Likewise.
52325f2c 601 (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode.
32469ccc
JJ
602 (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
603 instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
52325f2c 604 * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
32469ccc
JJ
605 (<code><mode>3) ... this.
606 (avx2_<code><mode>3 smaxmin expand): Rename to...
607 (<code><mode>3) ... this.
608 (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
609 (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
610 VI8_AVX2 mode iterator.
611 (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
612 VI8_AVX2 mode iterator.
613 (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
614 New expanders.
8a0436cb 615
ab2fd995
RS
6162011-09-17 Richard Sandiford <rdsandiford@googlemail.com>
617
618 * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
619 throughout file.
620
e7f799ce
DM
6212011-09-16 David S. Miller <davem@davemloft.net>
622
623 * config/sparc/visintrin.h: New file.
624 * config.gcc: Add it to extra_headers on sparc.
625
6e2cb391
JJ
6262011-09-16 Jakub Jelinek <jakub@redhat.com>
627
c0b0ee6f
JJ
628 * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
629 (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode.
630 * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
631 reduc_smin_v4sf): Adjust callers.
632 (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
633 New expanders.
634
6e2cb391
JJ
635 * config/i386/sse.md (vec_extract_hi_<mode>,
636 vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
637 vextracti128 instead of vextractf128 for -mavx2 and
638 integer vectors. For V4DFmode fix up mode attribute.
639 (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
640 (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
641 instead of V8SF mode attribute.
642 (avx2_extracti128): Change into define_expand.
643 * config/i386/i386.c (ix86_expand_vector_extract): Handle
644 32-byte vector modes if TARGET_AVX.
645
6deb5197 6462011-09-16 Georg-Johann Lay <avr@gjlay.de>
e7f799ce 647
6deb5197
GJL
648 * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
649 (umulqi3_highpart, smulqi3_highpart): Ditto.
650 (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
651 (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
652 (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
653
1b65da7d
GJL
6542011-09-16 Georg-Johann Lay <avr@gjlay.de>
655
656 PR target/50358
657 * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
658 (*maddqi4, *maddqi4.const): New insns.
659 (*msubqi4, *msubqi4.const): New insns.
660 * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
661 PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for
662 HImode by 1 in the case of multiplying with a CONST_INT.
663 Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
664
5548ca35
JH
6652011-09-15 Jan Hubicka <jh@suse.cz>
666
667 PR lto/50430
668 * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
669 error_mark_node in the DECL_INITIAL of vtable.
670
c875f596
DN
6712011-09-15 Diego Novillo <dnovillo@google.com>
672
673 * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
674 @SYSROOT_CFLAGS_FOR_TARGET@.
52325f2c 675 * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
c875f596
DN
676 * configure: Regenerate.
677 (site.exp): Add definition of TEST_ALWAYS_FLAGS.
678 Remove setting of GCC_UNDER_TEST.
679
167aa8cd
UB
6802011-09-15 Uros Bizjak <ubizjak@gmail.com>
681
682 * config/i386/i386.c (output_fp_compare): Return %v prefixed
683 instruction mnemonics for TARGET_AVX.
684
685 * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
686 "type" attribute calculation.
687 (*movdf_internal): Ditto.
688 (*movsf_internal): Ditto.
689
5d248b41
JG
6902011-09-15 James Greenhalgh <james.greenhalgh@arm.com>
691
692 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
693
f298ca26
JM
6942011-09-15 Jason Merrill <jason@redhat.com>
695
696 PR c++/50361
697 * expr.c (count_type_elements): Handle NULLPTR_TYPE.
698
a61bd030
JH
6992011-09-15 Jan Hubicka <jh@suse.cz>
700
701 * ipa-inline-analysis.c (add_condition): Add conditions parameter;
702 simplify obviously true clauses.
703 (and_predicates, or_predicates): Add conditions parameter.
704 (inline_duplication_hoook): Update.
705 (mark_modified): New function.
706 (unmodified_parm): New function.
707 (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
708 set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
709 Use unmodified_parm.
710 (estimate_function_body_sizes): Update.
711 (remap_predicate): Update.
712
e0521991
IR
7132011-09-15 Ira Rosen <ira.rosen@linaro.org>
714
715 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
716 read-after-read dependencies in basic block SLP.
717
fe0aee6c
RS
7182011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
719
720 * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
721 throughout file.
722
68ed2b9c
RS
7232011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
724
725 * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
726 throughout file.
727
d7f99b2c
RS
7282011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
729
730 * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
731 throughout file.
732
26b996c6
RS
7332011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
734
735 * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
736 throughout file.
737 * config/rs6000/constraints.md: Likewise.
738
5cf6e736
RS
7392011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
740
741 * config/microblaze/microblaze.md: Use match_test rather than
742 eq/ne symbol_ref throughout file.
743
dd02d5ef
RS
7442011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
745
746 * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
747 throughout file.
748
50025f91
TV
7492011-09-14 Tom de Vries <tom@codesourcery.com>
750
751 PR middle-end/50251
752 * explow.c (emit_stack_restore): Set crtl->need_drap if
753 stack_restore is emitted.
754
86b60116
JB
7552011-09-14 Julian Brown <julian@codesourcery.com>
756
757 * config/arm/arm.c (arm_override_options): Add unaligned_access
758 support.
167aa8cd 759 (arm_file_start): Emit attribute for unaligned access as appropriate.
86b60116
JB
760 * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
761 (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
762 (insv, extzv): Add unaligned-access support.
763 (extv): Change to expander. Likewise.
764 (extzv_t1, extv_regsi): Add helpers.
765 (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
766 (unaligned_storesi, unaligned_storehi): New.
767 (*extv_reg): New (previous extv implementation).
768 * config/arm/arm.opt (munaligned_access): Add option.
769 * config/arm/constraints.md (Uw): New constraint.
770 * expmed.c (store_bit_field_1): Adjust bitfield numbering according
771 to size of access, not size of unit, when BITS_BIG_ENDIAN !=
772 BYTES_BIG_ENDIAN. Don't use bitfield accesses for
773 volatile accesses when -fstrict-volatile-bitfields is in effect.
774 (extract_bit_field_1): Likewise.
775
fafaf06f
RS
7762011-09-14 Richard Sandiford <richard.sandiford@linaro.org>
777
778 * simplify-rtx.c (simplify_subreg): Check that the inner mode is
779 a scalar integer before applying integer-only optimisations to
780 inner arithmetic.
781
35511751
BS
7822011-09-14 Bernd Schmidt <bernds@codesourcery.com>
783
784 * config/mips/mips.c (mips_expand_epilogue): Generate a
785 simple_return only if the return address is in r31.
786
43052d45
BS
7872011-09-13 Bernd Schmidt <bernds@codesourcery.com>
788
789 * cfgcleanup.c (try_head_merge_bb): If get_condition returns
790 NULL for a jump that is a cc0 insn, pick the previous insn for
791 move_before.
792
61c4c150
RS
7932011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
794
795 * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
796 throughout file.
797
d3c7d136
RS
7982011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
799
800 * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
801 throughout file.
802
129043ff
RS
8032011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
804
805 * config/mn10300/mn10300.md: Use match_test rather than eq/ne
806 symbol_ref throughout file.
807
c5c68094
RS
8082011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
809
810 * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
811 throughout file.
812
9e53d97c
RS
8132011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
814
815 * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
816 throughout file.
817
b75b1be2
RS
8182011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
819
820 * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
821 throughout file.
822 * config/arm/neon.md: Likewise.
823 * config/arm/vfp.md: Likewise.
824 * config/arm/thumb2.md: Likewise.
825 * config/arm/cortex-m4.md: Likewise.
826
bd1aa4f4
SS
8272011-09-13 Sevak Sargsyan <sevak.sargsyan@ispras.ru>
828
829 * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
830 define_insn patterns for combine.
831
29b7399a
GS
8322011-09-13 Giuseppe Scrivano <gscrivano@gnu.org>
833
834 * reorg.c: Always define make_return_insns.
835
aa74f081
JH
8362011-09-13 Jan Hubicka <jh@suse.cz>
837
42f833bc
JH
838 PR other/49533
839 * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
840
8412011-09-13 Jan Hubicka <jh@suse.cz>
842
843 PR other/49533
aa74f081
JH
844 * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
845
1e874273 8462011-09-13 Paul Brook <paul@codesourcery.com>
167aa8cd 847
1e874273
PB
848 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
849 (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
850 * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
851 * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
852 * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
853 * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
854 * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
855 * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
856 enabling unwind tables.
857 (c6x_debug_unwind_info): New function.
858 (TARGET_ARM_EABI_UNWINDER): Define.
859 (TARGET_DEBUG_UNWIND_INFO): Define.
860 * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
861 (TARGET_EXTRA_CFI_SECTION): Remove.
862 * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
863 * ginclude/unwind-arm-common.h: New file.
864
3e0cef6d 8652011-09-13 Georg-Johann Lay <avr@gjlay.de>
167aa8cd 866
3e0cef6d
GJL
867 PR target/50358
868 * config/avr/predicates.md (const_1_to_6_operand): New predicate.
869 * config/avr/avr.md: (extend_s): New code attribute.
870 (mul_r_d): New code attribute.
871 (*maddqihi4, *umaddqihi4): New insns.
872 (*msubqihi4, *umsubqihi4): New insns.
873 (*usmaddqihi4, *sumaddqihi4): New insns.
874 (*usmsubqihi4, *susubdqihi4): New insns.
875 (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
876 (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
877 (*umsubqihi4.uconst.ashift): New insn-and-split.
878 (*msubqihi4.sconst.ashift): New insn-and-split.
879 (*sumaddqihi4.uconst): New insn-and-split.
880 (*sumsubqihi4.uconst): New insn-and-split.
881 * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
882 PLUS:HI and MINUS:HI.
883
a9fb4f13
RE
8842011-09-13 Revital Eres <revital.eres@linaro.org>
885
886 modulo-sched.c (remove_node_from_ps): Return void instead of bool.
887 (optimize_sc): Adjust call to remove_node_from_ps.
888 (sms_schedule): Add print info.
889
e7397618
BS
8902011-09-13 Bernd Schmidt <bernds@codesourcery.com>
891
892 * rtl.c (copy_rtx): Do not handle frame_related, jump or call
893 flags specially.
894
b84dad8e
JJ
8952011-09-12 Jakub Jelinek <jakub@redhat.com>
896
897 PR bootstrap/50010
898 * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
899 NOTE_INSN_CFI notes, with the exception of
900 NOTE_INSN_SWITCH_TEXT_SECTIONS.
901
3bd0817d
RS
9022011-09-12 Bernd Schmidt <bernds@codesourcery.com>
903 Richard Sandiford <rdsandiford@googlemail.com>
904
905 * config/mips/mips.c (mips_epilogue): New structure.
906 (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
907 restoring registers.
908 (mips_epilogue_emit_cfa_restores): New function.
909 (mips_epilogue_set_cfa): Likewise.
910 (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring
911 the current CFA register from the stack, redefine the CFA in terms
912 of the stack pointer.
913 (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information
914 to the epilogue instructions.
915
42ae51f4
RS
9162011-09-12 Richard Sandiford <rdsandiford@googlemail.com>
917
918 * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
919 argument.
920 (mips16e_build_save_restore): Update accordingly.
921
7d810276
JJ
9222011-09-12 Jakub Jelinek <jakub@redhat.com>
923
b58d3391
JJ
924 PR rtl-optimization/50212
925 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
926 Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
927
7d810276
JJ
928 PR debug/50299
929 * calls.c (load_register_parameters): Use use_reg_mode instead
930 of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
931 entry.
932 (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
933 for stack CALL_INSN_FUNCTION_USAGE uses.
934 * expr.h (use_reg_mode): New prototype.
935 (use_reg): Changed into inline around use_reg_mode.
936 * expr.c (use_reg): Renamed to...
937 (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST
938 mode to that mode instead of VOIDmode.
939 * var-tracking.c (prepare_call_arguments): Don't track parameters
940 whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
941 to it using lowpart_subreg. Convert VALUE and REG/MEM to the
942 EXPR_LIST mode.
943
886a64f9
GJL
9442011-09-12 Georg-Johann Lay <avr@gjlay.de>
945
946 PR target/43746
947 * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
948 (progmem_section): New Variable.
949 (avr_asm_init_sections): Initialize it.
950 (TARGET_ASM_SELECT_SECTION): Define to...
951 (avr_asm_select_section): ... this new Function.
952 (avr_replace_prefix): New Function.
953 (avr_asm_function_rodata_section): Use it.
954 (avr_insert_attributes): Don't add section attribute for PROGMEM.
955 (avr_section_type_flags): Use avr_progmem_p instead of section
956 name to detect if object is in PROGMEM.
957 (avr_asm_named_section): Set section name prefix for objects in
958 PROGMEM.
959
dc72b313
JJ
9602011-09-12 Jakub Jelinek <jakub@redhat.com>
961
962 PR bootstrap/50352
963 * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
964 sprintf format string.
965
ba02d3bc
RG
9662011-09-12 Richard Guenther <rguenther@suse.de>
967
968 PR tree-optimization/50343
969 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
167aa8cd 970 that the reduction is over an SSA name before checking its definition.
ba02d3bc 971
bf0b8cbe
RS
9722011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
973
974 * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
975 throughout file.
976
ae0087f2
RS
9772011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
978
979 * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
980 throughout file.
981 * config/mips/sb1.md: Likewise.
982 * config/mips/predicates.md: Replace (match_test "!...")
983 with (not (match_test "..."))
984 * config/mips/constraints.md: Likewise.
985
54e73f88
AS
9862011-09-09 Andrew Stubbs <ams@codesourcery.com>
987
988 * config/arm/arm-cores.def (generic-armv7-a): New architecture.
989 * config/arm/arm-tables.opt: Regenerate.
990 * config/arm/arm-tune.md: Regenerate.
991 * config/arm/arm.c (arm_file_start): Output .arch directive when
992 user passes -mcpu=generic-*.
993 (arm_issue_rate): Add genericv7a support.
994 * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
995 (ASM_CPU_SPEC): New define.
996 * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
997 * config/arm/semi.h (ASM_SPEC): Likewise.
998 * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
999 and -mtune=generic-*.
1000
107defbe
RG
10012011-09-09 Richard Guenther <rguenther@suse.de>
1002
1003 PR tree-optimization/50328
1004 * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
1005 constant or default-def operand.
1006
0aa16586
RG
10072011-09-09 Richard Guenther <rguenther@suse.de>
1008
1009 * tree-ssa-pre.c (create_expression_by_pieces): Fold the
1010 last statement.
1011
59401b92
RG
10122011-09-09 Richard Guenther <rguenther@suse.de>
1013
1014 * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
1015 instead of a statement.
1016 * gimple-fold.c (fold_stmt_inplace): Likewise.
1017 * sese.c (graphite_copy_stmts_from_block): Adjust.
1018 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1019 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
1020 fold_stmt.
1021 (forward_propagate_addr_into_variable_array_index): Likewise.
1022 (forward_propagate_addr_expr_1): adjust.
1023 (associate_plusminus): Likewise.
1024 (ssa_forward_propagate_and_combine): Likewise.
1025 * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
1026 (execute_cse_reciprocals): Likewise.
1027 * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
1028
cf13d9cf
NC
10292011-09-09 Nick Clifton <nickc@redhat.com>
1030
1031 * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
1032 Return a positive value to indicate that the bits at the
1033 bottom of the register should be cleared.
1034
64d9cb05
RG
10352011-09-09 Richard Guenther <rguenther@suse.de>
1036
1037 * tree-ssa-operands.c (swap_tree_operands): Always adjust
1038 existing operand positions.
1039
ffd78b30
RG
10402011-09-09 Richard Guenther <rguenther@suse.de>
1041
1042 PR middle-end/50333
1043 * tree-data-ref.c (split_constant_offset): Do not try to handle
1044 ternary ops.
1045
c3c5a1cc
AS
10462011-09-08 Andrew Stubbs <ams@codesourcery.com>
1047
1048 PR tree-optimization/50318
1049 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
1050 typo in use of mult_rhs1 and mult_rhs2.
1051
974e0ad6
UB
10522011-09-08 Uros Bizjak <ubizjak@gmail.com>
1053
1054 * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
1055 (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
1056
bd2777de
BS
10572011-09-08 Bernd Schmidt <bernds@codesourcery.com>
1058
1059 * config/arm/arm.md (push_multi): Emit predicates.
1060 (push_fp_multi): Likewise.
1061 * config/arm/arm.c (vfp_output_fstmd): Likewise.
1062
3797cb21
DS
10632011-09-08 Dodji Seketeli <dodji@redhat.com>
1064
1065 PR c++/33255 - Support -Wunused-local-typedefs warning
1066 * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
974e0ad6
UB
1067 (pushdecl): Use the new record_locally_defined_typedef.
1068 (store_parm_decls): Allocate cfun->language.
1069 (finish_function): Use the new maybe_warn_unused_local_typedefs,
1070 and free cfun->language.
1071 (c_push_function_context): Allocate cfun->language here only if needed.
1072 (c_pop_function_context): Likewise, mark cfun->language
1073 for collection only when it should be done.
1074 * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
1075 * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
1076 maybe_record_local_typedef_use.
3797cb21
DS
1077 * doc/invoke.texi: Update documentation for
1078 -Wunused-local-typedefs.
1079
d275ab8b
EI
10802011-09-08 Enkovich Ilya <ilya.enkovich@intel.com>
1081
1082 * config/i386/i386-protos.h (ix86_lea_outperforms): New.
1083 (ix86_avoid_lea_for_add): Likewise.
1084 (ix86_avoid_lea_for_addr): Likewise.
1085 (ix86_split_lea_for_addr): Likewise.
1086
1087 * config/i386/i386.c (LEA_MAX_STALL): New.
1088 (increase_distance): Likewise.
1089 (insn_defines_reg): Likewise.
1090 (insn_uses_reg_mem): Likewise.
1091 (distance_non_agu_define_in_bb): Likewise.
1092 (distance_agu_use_in_bb): Likewise.
1093 (ix86_lea_outperforms): Likewise.
1094 (ix86_ok_to_clobber_flags): Likewise.
1095 (ix86_avoid_lea_for_add): Likewise.
1096 (ix86_avoid_lea_for_addr): Likewise.
1097 (ix86_split_lea_for_addr): Likewise.
1098 (distance_non_agu_define): Search in pred BBs added.
1099 (distance_agu_use): Search in succ BBs added.
1100 (IX86_LEA_PRIORITY): Value changed from 2 to 0.
1101 (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
1102 (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
1103
1104 * config/i386/i386.md: Split added to transform non destructive
1105 add into move and add.
1106 (lea_1): transformed into insn_and_split to avoid AGU stalls.
1107 (lea<mode>_2): Likewise.
1108
86814190
MJ
11092011-09-08 Martin Jambor <mjambor@suse.cz>
1110
1111 PR tree-optimization/50287
1112 * ipa-split.c (split_function): Do not create SSA names for
1113 non-gimple-registers.
1114
996e1de5
RG
11152011-09-08 Richard Guenther <rguenther@suse.de>
1116
1117 PR tree-optimization/19831
1118 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
1119 skip builtins with vdefs that do not really store something.
1120 (propagate_necessity): For calls to free that we can associate
1121 with an allocation function do not mark the freed pointer
1122 definition necessary.
1123 (eliminate_unnecessary_stmts): Remove a call to free if
1124 the associated call to an allocation function is not necessary.
1125
c22c0db2
RG
11262011-09-08 Richard Guenther <rguenther@suse.de>
1127
1128 PR tree-optimization/19831
1129 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
1130 allocation functions as necessary.
1131
558c362a
IS
11322011-09-08 Iain Sandoe <iains@gcc.gnu.org>
1133
974e0ad6
UB
1134 * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
1135 cut from ...
1136 (darwin_default_min_version): Amended to provide defaults
558c362a
IS
1137 for the cross directory case.
1138 (darwin_driver_init): call darwin_default_min_version unconditionally.
1139 * config/darwin.h (DEF_MIN_OSX_VERSION): New.
1140 * config/darwin9.h: Likewise.
1141 * config/darwin10.h: Likewise.
1142 * config/rs6000/darwin7.h: Likewise.
1143
1542d97a
JJ
11442011-09-08 Jakub Jelinek <jakub@redhat.com>
1145
1146 PR target/50310
1147 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
1148 code early if TARGET_AVX.
1149 (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
1150
601a5d76
JJ
11512011-09-07 Jakub Jelinek <jakub@redhat.com>
1152
1153 * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
1154 duplicates.
1155
1156 PR target/50310
1157 * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
1158 "mode" attribute computation.
1159
8ffa0351
BS
11602011-09-07 Bernd Schmidt <bernds@codesourcery.com>
1161
1162 * regrename.c (struct du_head): Make nregs signed.
1163 (closed_chains): Remove.
1164 (create_new_chain): Return the new chain.
1165 (chain_from_id): New static function.
1166 (dump_def_use_chain): Change argument to be an int, indicating
1167 the first ID to print. All callers changed.
1168 (merge_overlapping_regs): Use chain_from_id. Assert that
1169 chains don't conflict with themselves.
1170 (rename_chains): Take no argument. Iterate over id_to_chain
974e0ad6 1171 rather to find chains to rename. Clear tick before the main loop.
8ffa0351
BS
1172 (struct incoming_reg_info): New struct.
1173 (struct bb_rename_info): New struct.
1174 (init_rename_info, set_incoming_from_chain, merge_chains): New
1175 static functions.
1176 (regrename_analyze): New static function, broken out of
1177 regrename_optimize. Record and make use of open chain information
1178 at basic block boundaries, and merge chains where possible.
1179 (scan_rtx_reg): Make this_nregs signed. Don't update
1180 closed_chains.
1181 (build_def_use): Return a bool to indicate success. All callers
1182 changed. Don't initialize global data here.
1183 (regrename_optimize): Move most code out of here into
1184 regrename_analyze.
1185 * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
1186 range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
1187 static inline functions.
1188 * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
1189
ca1ae7e3
BS
1190 * bb-reorder.c (insert_section_boundary_note): Don't check
1191 optimize_function_for_speed_p.
1192 (gate_handle_partition_blocks): Do it here instead.
1193 (gate_handle_reorder_blocks): Move preliminary checks here ...
1194 (rest_of_handle_reorder_blocks): ... from here.
1195
128c61ee
MJ
11962011-09-07 Martin Jambor <mjambor@suse.cz>
1197
1198 PR middle-end/50301
1199 * ipa-cp.c (find_more_values_for_callers_subset): Check jump
1200 function index bounds.
1201 (perhaps_add_new_callers): Likewise.
1202
da990dc0
MJ
12032011-09-07 Martin Jambor <mjambor@suse.cz>
1204
1205 PR tree-optimization/49911
1206 * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
1207 enumerations to the corresponding plain integer type.
1208
747633c5
RG
12092011-09-07 Richard Guenther <rguenther@suse.de>
1210
1211 PR tree-optimization/50319
1212 * tree-if-conv.c (set_bb_predicate): Assert we only set
1213 canonical predicates.
1214 (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR
1215 around canonical predicates.
1216 (predicate_bbs): Do not re-gimplify already canonical
1217 predicates. Properly unshare them though.
1218 (find_phi_replacement_condition): Simplify.
1219
723d95fe
RS
12202011-09-07 Richard Sandiford <richard.sandiford@linaro.org>
1221
1222 PR target/49030
1223 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
1224 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
1225 reusing the old code from get_arm_condition_code. Return ARM_NV
1226 for invalid comparison codes.
1227 (get_arm_condition_code): Redefine in terms of
1228 maybe_get_arm_condition_code.
1229 * config/arm/predicates.md (arm_comparison_operator): Use
1230 maybe_get_arm_condition_code.
1231
e8642944
RG
12322011-09-07 Richard Guenther <rguenther@suse.de>
1233
1234 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
1235 Canonicalize negated predicates by swapping edges.
1236 (forward_propagate_into_cond): Likewise.
1237
601f64e2
RG
12382011-09-07 Richard Guenther <rguenther@suse.de>
1239
1240 PR tree-optimization/50213
1241 * tree-flow.h (simple_iv_increment_p): Declare.
1242 * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle
1243 POINTER_PLUS_EXPR.
1244 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
1245 not propagate simple IV counter increments.
1246
1aeee5ad
IS
12472011-09-07 Eric Botcazou <ebotcazou@adacore.com>
1248 Iain Sandoe <iains@gcc.gnu.org>
1249
1250 * config/rs6000/rs6000.c (compute_save_world_info): Test
1251 cfun->has_nonlocal_label to determine if the out-of-line save
1252 world call may be used.
1253
da73162f
NC
12542011-09-07 Nick Clifton <nickc@redhat.com>
1255
1256 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
1257 label on the parallel part of the insn.
1258
5d506c77
JJ
12592011-09-07 Jakub Jelinek <jakub@redhat.com>
1260
1261 PR debug/50191
1262 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
1263 avoid_constant_pool_reference first instead of last.
1264
7b50d234
MM
12652011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com>
1266
1267 * doc/configfiles.texi (Configuration Files): Update documentation
1268 about tm_p.h and remove FIXME comment.
1269
8092dd90
UB
12702011-09-06 Uros Bizjak <ubizjak@gmail.com>
1271
1272 * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
1273 (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
1274
cf8fd309
IS
12752011-09-06 Iain Sandoe <iains@gcc.gnu.org>
1276
1277 * config/darwin10.h Remove duplicate LIB_SPEC.
1278
df7b0cc4
EI
12792011-09-06 Enkovich Ilya <ilya.enkovich@intel.com>
1280
1281 PR middle-end/44382
1282 * target.def (reassociation_width): New hook.
1283
1284 * doc/tm.texi.in (reassociation_width): Likewise.
1285
1286 * doc/tm.texi (reassociation_width): Likewise.
1287
1288 * doc/invoke.texi (tree-reassoc-width): New param documented.
1289
1290 * hooks.h (hook_int_uint_mode_1): New default hook.
1291
1292 * hooks.c (hook_int_uint_mode_1): Likewise.
1293
1294 * config/i386/i386.h (ix86_tune_indices): Add
974e0ad6 1295 X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
df7b0cc4
EI
1296
1297 (TARGET_REASSOC_INT_TO_PARALLEL): New.
1298 (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
1299
1300 * config/i386/i386.c (initial_ix86_tune_features): Add
974e0ad6 1301 X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
df7b0cc4 1302
974e0ad6 1303 (ix86_reassociation_width): New function.
df7b0cc4
EI
1304
1305 * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
1306
1307 * tree-ssa-reassoc.c (get_required_cycles): New function.
1308 (get_reassociation_width): Likewise.
1309 (swap_ops_for_binary_stmt): Likewise.
1310 (rewrite_expr_tree_parallel): Likewise.
1311
974e0ad6 1312 (rewrite_expr_tree): Refactored. Part of code moved into
df7b0cc4
EI
1313 swap_ops_for_binary_stmt.
1314
974e0ad6
UB
1315 (reassociate_bb): Now checks reassociation width to be used and
1316 call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
df7b0cc4 1317
df2f6100
RG
13182011-09-06 Richard Guenther <rguenther@suse.de>
1319
1320 PR tree-optimization/47025
1321 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
1322 uses nothing.
1323 (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
1324 BUILT_IN_FREE.
1325 (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
1326 definitely points to.
1327 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1328 BUILT_IN_VA_START doesn't let its va_list argument escape.
1329 * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
1330 not make any previous stores necessary.
1331
124f1be6
MJ
13322011-09-06 Martin Jambor <mjambor@suse.cz>
1333
1334 * ipa-inline.h (struct inline_summary): Move versionable flag...
1335 * cgraph.h (struct cgraph_local_info): ...here
1336 * ipa-cp.c (determine_versionability): Use the new versionable flag.
1337 (determine_versionability): Likewise.
1338 (ipcp_versionable_function_p): Likewise.
1339 (ipcp_generate_summary): Likewise.
1340 * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
1341 versionable flag.
1342 (compute_inline_parameters): Do not clear the versionable flag.
1343 (inline_read_section): Do not stream the versionable flag.
1344 (inline_write_summary): Likewise.
1345 * lto-cgraph.c (lto_output_node): Stream the versionable flag.
1346 (input_overwrite_node): Likewise.
1347
1a60c352
RG
13482011-09-06 Richard Guenther <rguenther@suse.de>
1349
1350 PR tree-optimization/48149
1351 * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug.
1352 (vn_valueize): Move earlier.
1353 (valueize_expr): Use vn_valueize.
1354 (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
1355 operands.
1356 (simplify_unary_expression): Simplify.
1357
5a7d7f9c
RG
13582011-09-06 Richard Guenther <rguenther@suse.de>
1359
1360 PR tree-optimization/48317
1361 * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
1362 trailing array.
1363 (sizeof_vn_nary_op): New inline function.
1364 (vn_nary_op_lookup_pieces): Adjust.
1365 (vn_nary_op_insert_pieces): Likewise.
1366 * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
1367 (init_vn_nary_op_from_pieces): Adjust signature. Deal with
1368 any number of operands.
1369 (vn_nary_length_from_stmt): New function.
1370 (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
1371 (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
1372 sized temporary.
1373 (vn_nary_op_lookup): Likewise.
1374 (vn_nary_op_lookup_stmt): Likewise.
1375 (vn_nary_op_insert_into): Likewise.
1376 (vn_nary_op_insert_stmt): Likewise.
1377 (visit_use): Handle CONSTRUCTOR as nary.
1378 * tree-ssa-pre.c (phi_translate_1): Adjust.
1379 (create_expression_by_pieces): Likewise.
1380 (compute_avail): Likewise.
1381
8f40ccea
IR
13822011-09-06 Ira Rosen <ira.rosen@linaro.org>
1383
1384 * config/arm/arm.c (arm_preferred_simd_mode): Check
1385 TARGET_NEON_VECTORIZE_DOUBLE instead of
1386 TARGET_NEON_VECTORIZE_QUAD.
1387 (arm_autovectorize_vector_sizes): Likewise.
1388 * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
1389 mask of mvectorize-with-neon-double. Add RejectNegative.
1390 (mvectorize-with-neon-double): New.
1391
32dba5ef
RG
13922011-09-06 Richard Guenther <rguenther@suse.de>
1393
974e0ad6 1394 * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
32dba5ef 1395
1255c03a
TV
13962011-09-06 Tom de Vries <tom@codesourcery.com>
1397
1398 * recog.c (asm_labels_ok): New function.
1399 (check_asm_operands): Use asm_labels_ok.
1400
81a478c8
RS
14012011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
1402
1403 PR target/49606
1404 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
1405 (PMODE_INSN): New macro.
1406 * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
1407 (mips_got_load, mips_expand_synci_loop): Likewise.
1408 (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
1409 cprestore patterns.
1410 (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode
1411 copygp_mips16 patterns.
1412 (mips_expand_prologue): Handle SImode and DImode potential_cprestore
1413 and use_cprestore patterns.
1414 (mips_override_options): Check for incompatible -mabi and -mlong
1415 combinations.
1416 * config/mips/mips.md (unspec_got<mode>): Rename to...
1417 (unspec_got_<mode>): ...this.
1418 (copygp_mips16): Use the Pmode iterator.
1419 (potential_cprestore, cprestore, use_cprestore): Likewise.
1420 (clear_cache, indirect_jump): Use PMODE_INSN.
1421 (indirect_jump<mode>): Rename to...
1422 (indirect_jump_<mode>): ...this.
1423 (tablejump): Use PMODE_INSN.
1424 (tablejump<mode>): Rename to...
1425 (tablejump_<mode>): ...this.
1426 (exception_receiver): Handle restore_gp_si and restore_gp_di.
1427 (restore_gp): Use the Pmode iterator.
1428 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
1429 PMODE_INSN.
1430
1ab9ec7b
RS
14312011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
1432
1433 * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
1434 Fix the type of the BIT_AND_EXPR.
1435
0913b2d6
DM
14362011-09-05 David S. Miller <davem@davemloft.net>
1437
1438 * config.host: Add driver-sparc.o and sparc/x-sparc on
1439 native sparc*-*-linux* builds.
1440 * config/sparc/driver-sparc.c: Correct Linux strings.
1441 * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
1442 * config/sparc/linux64.h: Likewise.
1443 * doc/invoke.texi: Document that Linux also supports
1444 -mcpu=native and -mtune=native on sparc.
1445
3e64c239
DM
1446 * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
1447 PROCESSOR_NIAGARA4): New.
1448 * config/sparc/sparc.opt: Handle new processor types.
1449 * config/sparc/sparc.md: Add to "cpu" attribute.
1450 * config/sparc/sparc.h (TARGET_CPU_niagara3,
1451 TARGET_CPU_niagara4): New, treat as niagara2.
974e0ad6 1452 * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
3e64c239 1453 * config/sparc/sol2.h: Likewise.
974e0ad6 1454 * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
3e64c239
DM
1455 * config/sparc/sparc.c (sparc_option_override): Add
1456 niagara3 and niagara4 handling.
1457 (sparc32_initialize_trampoline): Likewise.
1458 (sparc64_initialize_trampoline): Likewise.
1459 (sparc_use_sched_lookahead): Likewise.
1460 (sparc_issue_rate): Likewise.
1461 (sparc_register_move_cost): Likewise.
1462 * config/sparc/driver-sparc.c (cpu_names): Use niagara3
1463 and niagara4 as appropriate.
1464 * doc/invoke.texi: Document new processor types.
70847a48
DM
1465 * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
1466 and --with-tune options.
3e64c239 1467
4f4f4f54
DM
1468 * config/sparc/sol2-64.h: Move ...
1469 * config/sparc/default-64.h: ... to here. Update comment.
1470 * config.gcc: Update Solaris sparc to use default-64.h, also
1471 prefix this header into the list on sparc64-*-linux.
1472 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
1473 TARGET_64BIT_DEFAULT is defined. Remove commented out reference
1474 to MASK_HARD_QUAD.
1475
1e3a7e86
GJL
14762011-09-05 Georg-Johann Lay <avr@gjlay.de>
1477
1478 PR target/50289
1479 * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
1480 that contain global register variable.
1481
e1ab3876
RG
14822011-09-05 Richard Guenther <rguenther@suse.de>
1483
1484 * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
1485
830c740f
RG
14862011-09-05 Richard Guenther <rguenther@suse.de>
1487
1488 * stor-layout.c (layout_type): Use size_binop for array size
1489 calculations.
1490
c149e487 14912011-09-05 Georg-Johann Lay <avr@gjlay.de>
0913b2d6 1492
c149e487
GJL
1493 * config/avr/avr.h (progmem_section): Remove Declaration.
1494 * config/avr/avr.c (progmem_section): Make static and rename to
1495 progmem_swtable_section.
1496 (avr_output_addr_vec_elt): No need to switch sections.
1497 (avr_asm_init_sections): Use output_section_asm_op as section
1498 callback for progmem_swtable_section.
1499 (avr_output_progmem_section_asm_op): Remove Function.
1500 (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
1501 (avr_asm_function_rodata_section): New static Function.
1502 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
1503 alignment 2**1 for jump tables.
1504
c5ceeb87
JH
15052011-09-04 Jan Hubicka <jh@suse.cz>
1506
1507 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
1508 parameter is SSA name.
1509
5b970a1a
RG
15102011-09-04 Richard Guenther <rguenther@suse.de>
1511
1512 Revert
1513 2011-08-31 Richard Guenther <rguenther@suse.de>
1514
1515 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
1516 special-casing.
1517
c0c19685
IS
15182011-09-04 Iain Sandoe <iains@gcc.gnu.org>
1519
1520 PR debug/49901
1521 * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
1522
ad949bcc
JJ
15232011-09-04 Jakub Jelinek <jakub@redhat.com>
1524 Ira Rosen <ira.rosen@linaro.org>
1525
1526 PR tree-optimization/50208
1527 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
1528 argument. Check that def_stmt is inside the loop.
1529 (vect_recog_widen_mult_pattern): Update calls to
1530 vect_handle_widen_mult_by_cons.
1531 (vect_operation_fits_smaller_type): Check that def_stmt is
1532 inside the loop.
1533
7cd3603b
IR
15342011-09-04 Ira Rosen <ira.rosen@linaro.org>
1535
1536 * tree-vectorizer.c (vect_print_dump_info): Print line
1537 number when dumping to a file.
1538 (vectorize_loops): Add new messages to dump file.
1539
606d9a09
MJ
15402011-09-03 Martin Jambor <mjambor@suse.cz>
1541
1542 * ipa-prop.h (ipa_jump_func_t): New typedef.
1543 (struct ipa_edge_args): Removed field argument_count, field
1544 jump_functions turned into a vector.
1545 (ipa_set_cs_argument_count): Removed.
1546 (ipa_get_cs_argument_count): Updated to work on vectors.
1547 (ipa_get_ith_jump_func): Likewise.
1548 * ipa-prop.c (ipa_count_arguments): Removed.
1549 (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
1550 jump functions. Update caller.
1551 (compute_pass_through_member_ptrs): Likewise.
1552 (compute_cst_member_ptr_arguments): Likewise.
1553 (ipa_compute_jump_functions_for_edge): Get number of arguments from
1554 the statement, allocate vector.
1555 (ipa_compute_jump_functions): Do not call ipa_count_arguments.
1556 (duplicate_ipa_jump_func_array): Removed.
1557 (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
1558 (ipa_read_node_info): Allocate vector.
1559
15768583
JDA
15602011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1561
8f15b605 1562 PR middle-end/50232
15768583
JDA
1563 * config/pa/pa.md (return): Define "return" insn pattern.
1564 (epilogue): Use it when no epilogue is needed.
1565 * config/pa/pa.c (pa_can_use_return_insn): New function.
1566 * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
1567
13868f40
EB
15682011-09-03 Eric Botcazou <ebotcazou@adacore.com>
1569
1570 * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
1571 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
1572 Force at least BITS_PER_UNIT alignment on the new variable.
1573
58265ea6
GF
15742011-09-02 Gary Funck <gary@intrepid.com>
1575
1576 * opts.c (print_specific_help): Fix off-by-one compare in
1577 assertion check.
1578 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
1579 CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
1580 Increase by +5 to allow for more languages.
1581 * optc-gen.awk: Generate #if that ensures that the number of
1582 languages is within the implementation-defined limit.
1583
dde460d4
MM
15842011-09-02 Michael Matz <matz@suse.de>
1585
1586 PR middle-end/50260
1587 * ipa-split.c (split_function): Call add_referenced_var.
1588
1589 * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
1590 (cond_if_else_store_replacement_1): Ditto.
1591 * tree-ssa-pre.c (get_representative_for): Ditto.
1592 (create_expression_by_pieces): Ditto.
1593 (insert_into_preds_of_block): Ditto.
1594 * tree-sra.c (create_access_replacement): Ditto.
1595 (get_replaced_param_substitute): Ditto.
1596
6bd9bf42
BS
15972011-09-02 Bernd Schmidt <bernds@codesourcery.com>
1598
1599 * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
1600 automata_options.
1601 (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
1602 (l1w, s1w, l2w, s2w): Define in the main automaton.
1603 (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
1604 units.
1605 * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
1606 (c6x_unit_names): Add the new units.
1607 (c6x_unit_codes): New static array.
1608 (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
1609 UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
1610 UNIT_QID_SIDE_OFFSET): New macros.
1611 (RESERVATION_S2): Adjust value.
1612 (c6x_option_override): Compute c6x_unit_codes.
1613 (assign_reservations): Take the unit_mask of the last instruction
1614 into account. Detect floating point reservations by looking for
1615 the new units. Don't assign reservations if the field is already
1616 nonzero.
1617 (struct c6x_sched_context): Add member prev_cycle_state_ctx.
1618 (init_sched_state): Initialize it.
1619 (c6x_clear_sched_context): Free it.
1620 (insn_set_clock): Clear reservation.
1621 (prev_cycle_state): New static variable.
1622 (c6x_init_sched_context): Save it.
1623 (c6x_sched_init): Allocate space for it and clear it.
1624 (c6x_sched_dfa_pre_cycle_insn): New static function.
1625 (c6x_dfa_new_cycle): Save state at the start of a new cycle.
1626 (c6x_variable_issue): Only record units in the unit_mask that
1627 were not set at the start of the cycle.
1628 (c6x_variable_issue): Compute and store the unit_mask from the
1629 current state.
1630 (reorg_split_calls): Ensure the new information remains correct.
1631 (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1632 TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
1633 * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
1634 * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
1635 Add special reservations.
1636 * config/c6x/c6x-sched.md: Regenerate.
1637
d7da5cc8
MJ
16382011-09-02 Martin Jambor <mjambor@suse.cz>
1639
1640 * ipa-prop.h (ipa_node_params): Removed fields
1641 called_with_var_arguments and node_versionable.
1642 (ipa_set_called_with_variable_arg): Removed.
1643 (ipa_is_called_with_var_arguments): Likewise.
1644 * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
1645 (determine_versionability): Do not check for type attributes and va
1646 builtins. Record versionability into inline summary.
1647 (initialize_node_lattices): Do not check
1648 ipa_is_called_with_var_arguments.
1649 (propagate_constants_accross_call): Likewise, ignore arguments we do
1650 not have PARM_DECLs for, set variable flag for parameters that were
1651 not passed a value.
1652 (create_specialized_node): Dump info that we cannot change signature.
1653 * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
1654 number of arguments.
1655 (ipa_make_edge_direct_to_target): Likewise.
1656 (ipa_update_after_lto_read): Likewise.
1657 (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
1658 * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
1659 they were remapped.
1660
e9e1d143
RG
16612011-09-02 Richard Guenther <rguenther@suse.de>
1662
1663 PR tree-optimization/27460
1664 PR middle-end/29269
1665 * doc/md.texi (vcond): Document.
1666 * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
1667 optab with two modes.
1668 * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
1669 (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
1670 (vcond_optab): Adjust.
1671 (vcondu_optab): Likewise.
1672 (expand_vec_cond_expr_p): Adjust prototype.
1673 * optabs.c (get_vcond_icode): Adjust.
1674 (expand_vec_cond_expr_p): Likewise.
1675 (expand_vec_cond_expr): Likewise.
1676 * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
1677 vector type.
1678 (vectorizable_condition): Allow differing types for comparison
1679 and result.
1680 * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
1681 for the comparison.
1682 * config/i386/sse.md (vcond<mode>): Split to
1683 vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
1684 vcond<V_128:mode><VI124_128:mode> and
1685 vcondu<V_128:mode><VI124_128:mode>.
1686 (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
1687 (vconduv2di): Likewise.
1688 * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
1689 (vcondu<mode>): Likewise.
1690 * config/ia64/vect.md (vcond<mode>): Likewise.
1691 (vcondu<mode>): Likewise.
1692 (vcondv2sf): Likewise.
1693 * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
1694 * config/rs6000/paired.md (vcondv2sf): Likewise.
1695 * config/rs6000/vector.md (vcond<mode>): Likewise.
1696 (vcondu<mode>): Likewise.
1697 * config/spu/spu.md (vcond<mode>): Likewise.
1698 (vcondu<mode>): Likewise.
1699
aa547a51
RG
17002011-09-02 Richard Guenther <rguenther@suse.de>
1701
1702 * pretty-print.h (pp_unsigned_wide_integer): New.
1703 * tree-pretty-print.c (dump_generic_node): Print unsigned
1704 host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
1705
42ea8b27
RS
17062011-09-02 Richard Sandiford <richard.sandiford@linaro.org>
1707
1708 PR target/49987
1709 * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
1710 valid CONST_VECTOR operands.
1711 (rs6000_expand_vector_init): Likewise.
1712
81fa35bd
MJ
17132011-09-02 Martin Jambor <mjambor@suse.cz>
1714
1715 * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
1716 * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
1717 BINFO_VTABLE. Parameter delta removed, all callers updated.
1718 * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
1719 BINFO_VTABLE.
1720 * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
1721 all calls.
1722 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
1723 handling of thunk_delta.
1724 * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
1725 (devirtualization_time_bonus): Do not handle thunk deltas.
1726 (ipcp_discover_new_direct_edges): Likewise.
1727 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1728 (try_make_edge_direct_simple_call): Likewise.
1729 (try_make_edge_direct_virtual_call): Likewise.
1730 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
1731 parameter set as unused.
1732 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
1733 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
1734 parameter set as unused.
1735 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
1736 (input_edge_opt_summary): Likewise.
1737 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
1738 BINFO_VIRTUALS at all.
1739 * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
1740
5d882cc1
RG
17412011-09-02 Richard Guenther <rguenther@suse.de>
1742
8092dd90
UB
1743 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
1744 (ccp_fold_stmt): Continue replacing args when folding alloca fails.
5d882cc1 1745
4e71066d
RG
17462011-08-31 Richard Guenther <rguenther@suse.de>
1747
1748 * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
1749 handling here, from ...
1750 (expand_expr_real_1): ... here.
1751 * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
1752 and VEC_COND_EXPR.
1753 * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
1754 a GIMPLE_TERNARY_RHS.
1755 * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
1756 and VEC_COND_EXPR here ...
1757 (verify_gimple_assign_single): ... not here.
1758 * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
1759 * tree-object-size.c (cond_expr_object_size): Adjust.
1760 (collect_object_sizes_for): Likewise.
974e0ad6 1761 * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
8092dd90 1762 * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
4e71066d
RG
1763 (ssa_forward_propagate_and_combine): Adjust.
1764 * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
1765 as ternary.
1766 * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
1767 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
1768 * tree-vect-stmt.c (vectorizable_condition): Likewise.
1769 * tree-vrp.c (extract_range_from_cond_expr): Likewise.
1770 (extract_range_from_assignment): Likewise.
1771
67b2c493
RS
17722011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
1773
1774 * config/i386/i386.md: Use (match_test ...) for attribute tests.
1775 * config/i386/mmx.md: Likewise.
1776 * config/i386/sse.md: Likewise.
1777 * config/i386/predicates.md (call_insn_operand): Use
1778 (not (match_test "...")) instead of (match_test "!...")
1779 * config/i386/constraints.md (w): Likewise.
1780
0c0d3957
RS
17812011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
1782
1783 * doc/md.texi: Describe the use of match_tests in attribute tests.
1784 * rtl.def (MATCH_TEST): Update commentary.
1785 * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
1786 (write_test_expr, walk_attr_value): Handle MATCH_TEST.
1787
091ace58
RS
17882011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
1789
1790 * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
1791 (attr_string): Use copy_md_ptr_loc.
1792
201176d3
MJ
17932011-08-31 Martin Jambor <mjambor@suse.cz>
1794
1795 PR middle-end/49886
1796 * ipa-inline-analysis.c (compute_inline_parameters): Set
1797 can_change_signature of noes with typde attributes.
1798 * ipa-split.c (split_function): Do not skip any arguments if
1799 can_change_signature is set.
1800
51093fca
MJ
18012011-08-31 Martin Jambor <mjambor@suse.cz>
1802
1803 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
1804 check removed.
1805
32950a5d
RG
18062011-08-31 Richard Guenther <rguenther@suse.de>
1807
1808 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
1809 special-casing.
1810
680fba09
MG
18112011-08-31 Marc Glisse <marc.glisse@inria.fr>
1812
1813 * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
1814
1fed1006
TV
18152011-08-31 Tom de Vries <tom@codesourcery.com>
1816
1817 PR middle-end/43513
1818 * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
1819 * tree-ssa-ccp.c (params.h): Include.
1820 (fold_builtin_alloca_for_var): New function.
1821 (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
1822
c683a53a
UB
18232011-08-30 Uros Bizjak <ubizjak@gmail.com>
1824
1825 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1826 Handle FMA option.
1827
5de35240
AS
18282011-08-30 Andrew Stubbs <ams@codesourcery.com>
1829
1830 * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
1831 b3 and b4 unsigned.
1832
f8dd28d6
AS
18332011-08-30 Andrew Stubbs <ams@codesourcery.com>
1834
1835 * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
1836 when code is SET.
1837
315f5f1b
RG
18382011-08-30 Richard Guenther <rguenther@suse.de>
1839
1840 PR middle-end/48571
1841 * gimple.h (maybe_fold_offset_to_address): Remove.
1842 (maybe_fold_offset_to_reference): Likewise.
1843 (maybe_fold_stmt_addition): Likewise.
1844 (may_propagate_address_into_dereference): Likewise.
1845 * tree-inline.c (remap_gimple_op_r): Do not reconstruct
1846 array references.
1847 * gimple-fold.c (canonicalize_constructor_val): Likewise.
1848 Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
1849 addresses instead.
1850 (may_propagate_address_into_dereference): Remove.
1851 (maybe_fold_offset_to_array_ref): Likewise.
1852 (maybe_fold_offset_to_reference): Likewise.
1853 (maybe_fold_offset_to_address): Likewise.
1854 (maybe_fold_stmt_addition): Likewise.
1855 (fold_gimple_assign): Do not reconstruct array references but
1856 instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
1857 MEM_REF addresses.
1858 (gimple_fold_stmt_to_constant_1): Likewise.
1859 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1860 * gimplify.c (gimplify_conversion): Likewise.
1861 (gimplify_expr): Likewise.
1862
2ddd46d6
IT
18632011-08-30 Ilya Tocar <ilya.tocar@intel.com>
1864
1865 * config/i386/fmaintrin.h: New.
1866 * config.gcc: Add fmaintrin.h.
1867 * config/i386/i386.c
1868 (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
1869 <IX86_BUILTIN_VFMADDSD3>: Likewise.
1870 * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
1871 (*fmai_fmadd_<mode>): Likewise.
1872 (*fmai_fmsub_<mode>): Likewise.
1873 (*fmai_fnmadd_<mode>): Likewise.
1874 (*fmai_fnmsub_<mode>): Likewise.
1875 * config/i386/immintrin.h: Add fmaintrin.h.
1876
e12da141
BS
18772011-08-30 Bernd Schmidt <bernds@codesourcery.com>
1878
1879 * genautomata.c (NO_COMB_OPTION): New macro.
1880 (no_comb_flag): New static variable.
1881 (gen_automata_option): Handle NO_COMB_OPTION.
1882 (comb_vect_p): False if no_comb_flag.
1883 (add_vect): Move computation of min/max values. Return early if
1884 no_comb_flag.
1885 * doc/md.texi (automata_option): Document no-comb-vect.
1886
070f36cf
BS
1887 * config/i386/i386.c (get_pc_thunk_name): Change prefix to
1888 "__x86.get_pc_thunk".
1889
9645d434
BS
1890 * bb-reorder.c (insert_section_boundary_note): Only do it if
1891 we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
1892
cb89a171
CB
18932011-08-30 Christian Bruel <christian.bruel@st.com>
1894
1895 * coverage.c (coverage_init): Check flag_branch_probabilities instead of
1896 flag_profile_use.
c683a53a 1897
3167ec4a
MM
18982011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1899
1900 * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
1901 to off. Document switch.
1902 * doc/invoke.texi (-msave-toc-indirect): Ditto.
1903
e621f530
JJ
19042011-08-29 Jakub Jelinek <jakub@redhat.com>
1905
1906 * gthr-posix.h (__gthread_active_p): Do not use preprocessor
1907 conditionals and comments inside macro arguments.
1908
8092dd90
UB
19092011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1910 Richard Guenther <rguenther@suse.de>
544d960a
AS
1911
1912 * tree.h (constant_boolean_node): Adjust prototype.
1913 * fold-const.c (fold_convert_loc): Move aggregate conversion
1914 leeway down.
1915 (constant_boolean_node): Make value parameter boolean, add
1916 vector type handling.
1917 (fold_unary_loc): Use constant_boolean_node.
1918 (fold_binary_loc): Preserve types properly when folding
1919 COMPLEX_EXPR <__real x, __imag x>.
1920 * gimplify.c (gimplify_expr): Handle vector comparison.
1921 * tree.def (EQ_EXPR, ...): Document behavior on vector typed
1922 comparison.
1923 * tree-cfg.c (verify_gimple_comparison): Verify vector typed
1924 comparisons.
1925
776bebcd
JJ
19262011-08-29 Jakub Jelinek <jakub@redhat.com>
1927
1928 PR middle-end/48722
1929 * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
1930 reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
1931 (verify_rtl_sharing): Likewise and verify_rtx_sharing
1932 in there too.
1933 (unshare_all_rtl_in_chain): For CALL_INSNs
1934 copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
1935
4d59a001
RG
19362011-08-29 Richard Guenther <rguenther@suse.de>
1937
1938 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
1939 on the built ADDR_EXPR.
1940
304fe432
JJ
19412011-08-29 Jakub Jelinek <jakub@redhat.com>
1942
1943 PR debug/50215
1944 * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
1945 before adding ENTRY_VALUE to val->locs.
1946
76725a03
MP
19472011-08-28 Mikael Pettersson <mikpe@it.uu.se>
1948
1949 PR bootstrap/50218
1950 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
1951 comp.
1952
26898771
BS
19532011-08-27 Bernd Schmidt <bernds@codesourcery.com>
1954
1955 * doc/rtl.texi (simple_return): Document.
1956 (parallel, PATTERN): Here too.
1957 * doc/md.texi (return): Mention it's allowed to expand to simple_return
1958 in some cases.
1959 (simple_return): Document standard pattern.
1960 * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
1961 * final.c (final_scan_insn): Use ANY_RETURN_P on body.
1962 * reorg.c (function_return_label, function_simple_return_label):
1963 New static variables, replacing...
1964 (end_of_function_label): ... this.
1965 (simplejump_or_return_p): New static function.
1966 (optimize_skip, steal_delay_list_from_fallthrough,
1967 fill_slots_from_thread): Use it.
1968 (relax_delay_slots): Likewise. Use ANY_RETURN_P on body.
1969 (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
1970 (find_end_label): Take a new arg which is one of the two return
1971 rtxs. Depending on which, set either function_return_label or
1972 function_simple_return_label. All callers changed.
1973 (make_return_insns): Make both kinds.
1974 (dbr_schedule): Adjust for two kinds of end labels.
1975 * function.c (emit_return_into_block): Set JUMP_LABEL properly.
1976 * genemit.c (gen_exp): Handle SIMPLE_RETURN.
1977 (gen_expand, gen_split): Use ANY_RETURN_P.
1978 * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
1979 * rtl.def (SIMPLE_RETURN): New code.
1980 * ifcvt.c (find_if_case_1): Be more careful about
1981 redirecting jumps to the EXIT_BLOCK.
1982 * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
1983 returnjump_p_1): Handle SIMPLE_RETURNs.
1984 * print-rtl.c (print_rtx): Likewise.
1985 * rtl.c (copy_rtx): Likewise.
1986 * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
1987 * combine.c (simplify_set): Likewise.
1988 * resource.c (find_dead_or_set_registers, mark_set_resources):
1989 Likewise.
1990 * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
1991 copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
1992 (init_emit_regs): Initialize simple_return_rtx.
1993 * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
1994 force_nonfallthru_and_redirect.
1995 * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
1996 (GR_SIMPLE_RETURN): New enum value.
1997 (simple_return_rtx): New macro.
1998 * basic-block.h (force_nonfallthru_and_redirect): Adjust
1999 declaration.
2000 * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
2001 argument. All callers changed. Be careful about what kinds of
2002 returnjumps to generate.
2003 * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
2004 ix86_pad_short_function): Likewise.
2005 * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
2006 of return.
2007 * config/mips/mips.md (any_return): New code_iterator.
2008 (optab): Add cases for return and simple_return.
2009 (return): Expand to a simple_return.
2010 (simple_return): New pattern.
2011 (*<optab>, *<optab>_internal for any_return): New patterns.
2012 (return_internal): Remove.
2013 * config/mips/mips.c (mips_expand_epilogue): Make the last insn
2014 a simple_return_internal.
2015
3b0eee5d
UB
20162011-08-27 Uros Bizjak <ubizjak@gmail.com>
2017
2018 * config/i386/sse.md (*absneg<mode>2): Fix split condition.
2019 (vec_extract_lo_<mode>): Prevent both operands in memory.
2020 (vec_extract_lo_v16hi): Ditto.
2021 (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
2022
20232011-08-27 Uros Bizjak <ubizjak@gmail.com>
2024
2025 * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
2026 (*sse2_mulv4si3): Ditto.
2027 (mulv2di3): Ditto.
2028 * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
2029 notes to REG_EQUAL.
2030
b807694e
UB
20312011-08-27 Uros Bizjak <ubizjak@gmail.com>
2032
2033 PR target/50202
2034 * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
2035 when all outputs are unused.
3b0eee5d 2036 (sse4_2_pcmpistr): Ditto.
b807694e 2037
734dfb47
UB
20382011-08-26 Uros Bizjak <ubizjak@gmail.com>
2039
2040 * config/i386/i386.md (round<mode>2): New expander.
2041 * config/i386/i386.c (enum ix86_builtins): Add
2042 IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
2043 (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
2044 descriptions.
2045 (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
2046 (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
2047
44782c0c
UB
20482011-08-26 Uros Bizjak <ubizjak@gmail.com>
2049
2050 PR middle-end/50083
2051 * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
2052 only when TARGET_C99_FUNCTIONS.
2053 <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
2054 <BUILT_IN_RINT{,F,L}>: Ditto.
2055
0b11d702
MM
20562011-08-26 Michael Matz <matz@suse.de>
2057 Jakub Jelinek <jakub@redhat.com>
2058
2059 PR lto/50165
2060 * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
2061 don't call strlen twice, use memcpy.
2062
f13677ba
L
20632011-08-26 H.J. Lu <hongjiu.lu@intel.com>
2064
2065 * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
2066 * config/i386/bmiintrin.h: Likewise.
2067 * config/i386/lzcntintrin.h: Likewise.
2068
2069 * config/i386/immintrin.h: Include <lzcntintrin.h>,
2070 <bmiintrin.h> and <bmi2intrin.h>.
2071
a26479f3
RO
20722011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2073
2074 PR target/50166
2075 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
2076 * configure: Regenerate.
2077
f1a89dd0
JJ
20782011-08-26 Jakub Jelinek <jakub@redhat.com>
2079
2080 PR c/50179
2081 * c-typeck.c (c_process_expr_stmt): Skip over nops and
2082 call mark_exp_read even if exprv is ADDR_EXPR.
2083
fd3e0a33
RS
20842011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
2085
2086 * df-problems.c (df_note_bb_compute): Pass uses rather than defs
2087 to df_set_dead_notes_for_mw.
2088
315036fe
RG
20892011-08-26 Richard Guenther <rguenther@suse.de>
2090
2091 * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
2092
d8af4ba3
ZD
20932011-08-26 Zdenek Dvorak <ook@ucw.cz>
2094 Tom de Vries <tom@codesourcery.com>
2095
2096 * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
2097 (struct ivopts_data): Add loop_single_exit_p field.
2098 (niter_for_exit): Change parameter desc_p into return value. Return
2099 desc if desc->may_be_zero. Free desc if unused.
2100 (niter_for_single_dom_exit): Change return type.
2101 (find_induction_variables): Handle changed return type of
2102 niter_for_single_dom_exit. Dump may_be_zero.
2103 (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
2104 (set_use_iv_cost): Add and handle comp parameter.
2105 (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
2106 comp argument to set_use_iv_cost.
2107 (strip_wrap_conserving_type_conversions, expr_equal_p)
2108 (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
2109 (may_eliminate_iv): Add comp parameter. Handle new return type of
2110 niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt.
2111 (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
2112 and may_eliminate_iv.
2113 (rewrite_use_compare): Move call to iv_elimination_compare to ...
2114 (may_eliminate_iv): Here.
2115 (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
2116
fd1777ca
TV
21172011-08-26 Tom de Vries <tom@codesourcery.com>
2118
2119 * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
2120 accessing TREE_TYPE.
2121
990b31f7
JL
21222011-08-26 Jiangning Liu <jiangning.liu@arm.com>
2123
44782c0c
UB
2124 * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
2125 (*ior_scc_scc_cmp): Likewise
2126 (*and_scc_scc): Likewise.
2127 (*and_scc_scc_cmp): Likewise.
2128 (*and_scc_scc_nodom): Likewise.
2129 (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
990b31f7 2130
8840ae2b
JJ
21312011-08-26 Jakub Jelinek <jakub@redhat.com>
2132
2133 * rtlanal.c (nonzero_bits1): Handle CLRSB.
2134
321358d4
RG
21352011-08-26 Richard Guenther <rguenther@suse.de>
2136
2137 * expr.c (string_constant): Handle &MEM_REF.
2138
c2b640a7
AS
21392011-08-26 Andrew Stubbs <ams@codesourcery.com>
2140
2141 * config/arm/arm.c (struct four_ints): New type.
2142 (count_insns_for_constant): Delete function.
2143 (find_best_start): Delete function.
2144 (optimal_immediate_sequence): New function.
2145 (optimal_immediate_sequence_1): New function.
2146 (arm_gen_constant): Move constant splitting code to
2147 optimal_immediate_sequence.
2148 Rewrite constant negation/invertion code.
2149
21502011-08-26 Andrew Stubbs <ams@codesourcery.com>
2151
2152 * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
2153 * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
2154 Remove prototype. Remove static function type.
2155 * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
2156 Add arch attribute.
2157 * config/arm/constraints.md (Pj, PJ): New constraints.
2158
58a2bda0
RR
21592011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2160
44782c0c
UB
2161 * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
2162 ("cortex_a9_multiply_long"): New and use above. Handle all
58a2bda0 2163 long multiply cases.
44782c0c
UB
2164 ("cortex_a9_multiply"): Handle smmul and smmulr.
2165 ("cortex_a9_mac"): Handle smmla.
58a2bda0 2166
42aa5124
RH
21672011-08-25 Richard Henderson <rth@redhat.com>
2168
2169 PR 50132
2170 PR 49864
2171 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
2172 non-constant stack adjutment.
2173 * expr.c (find_args_size_adjust): Break out from ...
2174 (fixup_args_size_notes): ... here.
2175 * rtl.h (find_args_size_adjust): Declare.
2176
a02f398d
UB
21772011-08-25 Uros Bizjak <ubizjak@gmail.com>
2178
2179 * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
2180 sse4 and sse4_noavx.
2181 (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
2182 (*pushdf_rex64): Change Y2 register constraint to x.
2183 (*movdf_internal_rex64): Ditto.
2184 (*zero_extendsidi2_rex64): Ditto.
2185 (*movdi_internal): Change Y2 register constraint to x
2186 and update "isa" attribute.
2187 (*pushdf): Ditto.
2188 (*movdf internal): Ditto.
2189 (zero_extendsidi2_1): Ditto.
2190 (*truncdfdf_mixed): Ditto.
2191 (*truncxfdf2_mixed): Ditto.
2192 * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
2193 register constraint to x.
2194 (*movv2sf_internal_rex64): Ditto.
2195 (*mov<mode>_internal): Change Y2 register constraint to x
2196 and add "isa" attribute.
2197 (*movv2sf_internal): Ditto.
2198 (*vec_extractv2si_1): Ditto.
2199 * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
2200 constraints to x and update "isa" attribute.
2201 (*vec_interleave_highv2df): Change Y3 registerconstraint
2202 to x and update "isa" attribute.
2203 (*vec_interleave_lowv2df): Ditto.
2204 (*vec_concatv2df): Change Y2 register constraint to x and
2205 update "isa" attribute.
2206 (sse2_loadld): Ditto.
2207 (*vec_extractv2di_1): Ditto.
2208 (*vec_dupv4si): Ditto.
2209 (*vec_dupv2di): Ditto.
2210 (*vec_concatv4si): Ditto.
2211 (vec_concatv2di): Ditto.
2212 * config/i386/constraints.md (Y2): Remove.
2213 (Y3): Ditto.
2214 (Y4): Ditto.
2215
f24acbef
BS
22162011-08-25 Bernd Schmidt <bernds@codesourcery.com>
2217
2218 * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
2219 dump_def_use_chain): Don't declare.
2220 (mark_conflict, create_new_chain): Move before users.
2221 (regrename_optimize): Move to near end of file.
2222
c331eabe
GJL
22232011-08-25 Georg-Johann Lay <avr@gjlay.de>
2224
2225 * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
2226 (secondary_input_reload_class): Remove Prototype.
2227 * config/avr/avr.c (byte_immediate_operand): Remove Function.
2228 * config/avr/avr.md (setmemhi): Use u8_operand.
2229 (strlenhi): Use const0_rtx for comparison.
2230 * config/avr/avr.h (avr_reg_order): Remove Declaration.
2231
61af7eb4
GJL
22322011-08-25 Georg-Johann Lay <avr@gjlay.de>
2233
2234 * config/avr/avr.c (reg_class_tab): Make local to
2235 avr_regno_reg_class. Return smallest register class available.
a02f398d 2236
f2814222 22372011-08-25 Georg-Johann Lay <avr@gjlay.de>
f24acbef 2238
f2814222
GJL
2239 * config/avr/avr.c (STR_PREFIX_P): New Define.
2240 (avr_asm_declare_function_name): Use it.
2241 (avr_asm_named_section): Use it.
2242 (avr_section_type_flags): Use it.
2243
1e6a9047
BS
22442011-08-25 Bernd Schmidt <bernds@codesourcery.com>
2245
2246 * doc/md.texi (automata_option): Document collapse-ndfa.
2247 * genautomata.c (COLLAPSE_OPTION): New macro.
2248 (collapse_flag): New static variable.
2249 (struct description): New member normal_decls_num.
2250 (struct automaton): New members advance_ainsn and collapse_ainsn.
2251 (gen_automata_option): Check for COLLAPSE_OPTION.
2252 (collapse_ndfa_insn_decl): New static variable.
2253 (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
a02f398d 2254 (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
1e6a9047
BS
2255 (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
2256 necessary. Use normal_decls_num rather than decls_num, remove
2257 test for special decls.
a02f398d 2258 (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
1e6a9047
BS
2259 (make_automaton); Likewise. Use the new advance_cycle_insn member
2260 of struct automaton.
2261 (create_composed_state): Disallow advance-cycle arcs if collapse_flag
2262 is set.
2263 (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
2264 transition. Create the necessary transitions for it.
2265 (create_ainsns): Return void. Take an automaton_t argument, and
2266 update its ainsn_list, advance_ainsn and collapse_ainsn members. All
2267 callers changed.
2268 (COLLAPSE_NDFA_VALUE_NAME): New macro.
2269 (output_tables): Output code to define it.
2270 (output_internal_insn_code_evaluation): Output code to accept
2271 const0_rtx as collapse-ndfa transition.
2272 (output_default_latencies, output_print_reservation_func,
2273 output_print_description): Reorganize loops to use normal_decls_num
2274 as loop bound; remove special case for advance_cycle_insn_decl.
2275 (initiate_automaton_gen): Handle COLLAPSE_OPTION.
2276 (check_automata_insn_issues): Check for collapse_ainsn.
2277 (expand_automate): Allocate sufficient space. Initialize
2278 normal_decls_num.
2279
07f10472 22802011-08-25 Georg-Johann Lay <avr@gjlay.de>
1e6a9047 2281
07f10472
GJL
2282 * config/avr/avr.md: Fix indentation from r177991.
2283
d3e80850
BS
22842011-08-25 Bernd Schmidt <bernds@codesourcery.com>
2285
2286 * regrename.c (struct du_head): Remove member terminated.
2287 (create_new_chain): Don't initialize it.
2288 (scan_rtx_reg): Don't set or test it, test the open_chains_set
2289 bitmap instead.
2290 (tick, this_tick): New global variables, moved out of
2291 regrename_optimize.
2292 (current_id, open_chains, closed_chains, open_chains_set,
2293 live_in_chains, live_hard_regs): Reorder declarations.
2294 (dump_def_use_chain): Move function earlier in the file.
2295 (rename_chains): New static function, broken out of
2296 regrename_optimize.
2297 (regrename_optimize): Use it. Remove #if 0'ed code.
2298
8619577f
BRF
22992011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2300
2301 * varasm.c: (default_binds_local_p_1): Commentary typo fix.
2302
25963ac4
L
23032011-08-24 H.J. Lu <hongjiu.lu@intel.com>
2304
8020d73e 2305 PR target/50172
a02f398d 2306 * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
25963ac4 2307
9fcb758b
RG
23082011-08-24 Richard Guenther <rguenther@suse.de>
2309
2310 * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
2311 ref in the basic-block case. Move stripping array-refs
2312 to the place we create an access-function for it. Remove
2313 bogus stripping down a MEM_REF to its base.
2314
e66132e1
RG
23152011-08-24 Richard Guenther <rguenther@suse.de>
2316
2317 * fold-const.c (fold_comparison): Fold &a < &a + 4 even
2318 with -fno-strict-overflow.
2319
76f60b19
RG
23202011-08-24 Richard Guenther <rguenther@suse.de>
2321
2322 * tree-vectorizer.c (vect_print_dump_info): Avoid the
2323 file and location clutter when dumping to dump files.
2324
6f0faeed
SB
23252011-08-24 Simon Baldwin <simonb@google.com>
2326
2327 * gengtype-state.c (write_state): Remove timestamped header line.
2328
c5bc3df6
JM
23292011-08-24 Joseph Myers <joseph@codesourcery.com>
2330
2331 * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
2332 (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
2333 (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
2334 (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
2335 (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
2336 (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
2337 (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
2338 rules.
2339 (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
2340
295409e1
JM
23412011-08-24 Joseph Myers <joseph@codesourcery.com>
2342
2343 * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
2344
8c330caa
RG
23452011-08-24 Richard Guenther <rguenther@suse.de>
2346
2347 PR tree-optimization/50067
2348 * tree-data-ref.c (dr_analyze_indices): Do not add an access
2349 function for a MEM_REF base that has no evolution in the loop
2350 nest or that is not analyzable.
2351
d7b17703
VM
23522011-08-23 Vladimir Makarov <vmakarov@redhat.com>
2353
2354 * ira.c (ira_init_register_move_cost): Check small subclasses
2355 through ira_reg_class_max_nregs and ira_available_class_regs.
2356
78d8c16c
UB
23572011-08-23 Uros Bizjak <ubizjak@gmail.com>
2358
2359 * config/i386/constraints.md (Yp): New register constraint.
2360 * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
2361 Yp register constraint.
2362 (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
2363 (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
2364 (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
2365
2ddfea8a
KY
23662011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
2367
2368 * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
2369
a3a704a4
MH
23702011-08-23 Mark Heffernan <meheff@google.com>
2371
2372 PR middle-end/38509
2373 * common.opt (Wfree-nonheap-object): New option.
2374 * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
2375 * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
2376 to warning.
2377 (expand_builtin): Make warning conditional.
2378
82feeb8d
L
23792011-08-23 Uros Bizjak <ubizjak@gmail.com>
2380
2381 * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
2382 (length_immediate): Handle imulx, ishiftx and rotatex.
2383 (imm_disp): Ditto.
2384 (isa): Add bmi2.
2385 (enabled): Handle bmi2.
82feeb8d
L
2386 (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
2387 (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative.
2388 (*bmi2_umulditi3_1): New insn pattern.
2389 (*bmi2_umulsidi3_1): Ditto.
78d8c16c 2390 (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
82feeb8d
L
2391 (*bmi2_ashl<mode>3_1): New insn pattern.
2392 (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
78d8c16c 2393 (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
82feeb8d
L
2394 (*bmi2_ashlsi3_1_zext): New insn pattern.
2395 (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
78d8c16c 2396 (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
82feeb8d
L
2397 (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
2398 (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
2399 (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
2400 flags dependency.
2401 (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
2402 (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
2403 (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
2404 flags dependency.
2405 (*bmi2_rorx<mode>3_1): New insn pattern.
2406 (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
78d8c16c 2407 (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
82feeb8d
L
2408 (*rotatert<mode>3_1 splitter): Ditto.
2409 (*bmi2_rorxsi3_1_zext): New insn pattern.
2410 (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
78d8c16c 2411 (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
82feeb8d
L
2412 (*rotatertsi3_1_zext splitter): Ditto.
2413
24142011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
2415
78d8c16c 2416 * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
82feeb8d
L
2417 (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
2418 (ix86_handle_option): Handle OPT_mbmi2 case.
2419 * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
2420 (x86_64-*-*): Likewise.
2421 * config/i386/bmi2intrin.h: New file.
2422 * config/i386/cpuid.h (bit_BMI2): New.
2423 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2424 BMI2 feature.
2425 * config/i386/i386-c.c (ix86_target_macros_internal):
2426 Conditionally define __BMI2__.
2427 * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
2428 Handle BMI2 option.
2429 (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
2430 (print_reg): New code.
2431 (ix86_print_operand): Likewise.
2432 (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
2433 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
2434 IX86_BUILTIN_PEXT64.
2435 (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
2436 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
2437 IX86_BUILTIN_PEXT64.
2438 * config/i386/i386.h (TARGET_BMI2): New.
2439 * config/i386/i386.md (UNSPEC_PDEP): New.
2440 (UNSPEC_PEXT): Likewise.
2441 (*bmi2_bzhi_<mode>3): Likewise.
2442 (*bmi2_pdep_<mode>3): Likewise.
2443 (*bmi2_pext_<mode>3): Likewise.
2444 * config/i386/i386.opt (mbmi2): New.
2445 * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
2446 is defined.
2447 * doc/extend.texi: Document BMI2 built-in functions.
2448 * doc/invoke.texi: Document -mbmi2.
2449
e2f00837
JJ
24502011-08-23 Jakub Jelinek <jakub@redhat.com>
2451
2452 PR middle-end/50161
2453 * simplify-rtx.c (simplify_const_unary_operation): If
78d8c16c 2454 op is CONST_INT, don't look at op_mode, but use instead mode.
e2f00837
JJ
2455 * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
2456 CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
2457 operation and TRUNCATE/ZERO_EXTEND if needed.
2458 * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
2459 Document that operand mode must be same as operation mode,
2460 or VOIDmode.
2461 * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
2462 *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
2463 *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
2464 *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
2465 use the mode of operand for the operation and add truncate
2466 or zero_extend around if needed.
2467 * config/c6x/c6x.md (ctzdi2): Likewise.
2468 * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
2469
d466b407
MM
24702011-08-12 Michael Matz <matz@suse.de>
2471
2472 * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
2473 (gimple_expand_cfg): Merge alignment info for coalesced pointer
2474 SSA names.
2475
02f5d6c5
RG
24762011-08-23 Richard Guenther <rguenther@suse.de>
2477
2478 * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
2479 * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
2480 * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
2481 from ...
2482 * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
2483 (mem_refs_may_alias_p): Adjust.
2484 * tree-data-ref.h (dr_may_alias_p): Adjust.
2485 * tree-data-ref.c: Include tree-affine.h.
2486 (dr_analyze_indices): Do nothing for the non-loop case.
2487 (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate
2488 more cases in the non-loop case.
2489 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
2490 calls to dr_may_alias_p.
2491 (write_alias_graph_to_ascii_ecc): Likewise.
2492 (write_alias_graph_to_ascii_dot): Likewise.
2493 (build_alias_set_optimal_p): Likewise.
2494
336ecb65
RG
24952011-08-23 Richard Guenther <rguenther@suse.de>
2496
2497 PR tree-optimization/50162
2498 * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
2499
b8324815
RG
25002011-08-23 Richard Guenther <rguenther@suse.de>
2501
2502 * tree-data-ref.c (dr_analyze_indices): Add comments, handle
2503 REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
78d8c16c 2504 (create_data_ref): Also dump access functions for the created data-ref.
b8324815 2505
1707583b
UB
25062011-08-22 Uros Bizjak <ubizjak@gmail.com>
2507 Kirill Yukhin <kirill.yukhin@intel.com>
2508
2509 PR target/50155
2510 * config/i386/sse.md (VI_AVX2): New.
2511 (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
2512 (*<plusminus_insn><mode>3): Ditto.
d913744e 2513 (<sse2_avx2>_andnot<mode>3): Ditto.
1707583b
UB
2514 (*andnot<mode>3): Fix order of cond operands.
2515 Add asserts for correct TARGET_xxx.
2516 (*<any_logic:code><mode>3): Ditto.
2517
c4831cff
AS
25182011-08-22 Anatoly Sokolov <aesok@post.ru>
2519
2520 * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
2521 * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
2522 * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
2523 regclass argument type to reg_class_t. Change 'max' and 'v' vars
2524 and return types to unsigned char. Use reg_class_contents instead
2525 of class_contents.
2526 (TARGET_CLASS_MAX_NREGS): Define.
2527
60418b5d
BS
25282011-08-22 Bernd Schmidt <bernds@codesourcery.com>
2529
2530 * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
2531 to make computed_jump_p return true.
2532
e3aa9eba
RO
25332011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2534
2535 * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
2536 (PICFLAG_FOR_TARGET): Substitute.
2537 * aclocal.m4: Regenerate.
2538 * configure: Regenerate.
2539
671d9f12
DS
25402011-08-22 Dodji Seketeli <dodji@redhat.com>
2541
2542 * c-family/c-pch.c (c_common_read_pch): Re-set line table right
2543 after reading in the pch.
2544
b0894e1f
L
25452011-08-22 H.J. Lu <hongjiu.lu@intel.com>
2546
44782c0c 2547 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
b0894e1f
L
2548 * configure: Regenerated.
2549
e4269c78
JJ
25502011-08-22 Jakub Jelinek <jakub@redhat.com>
2551
ad885386
JJ
2552 PR tree-optimization/50133
2553 * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
2554 from stmt instead of some statement around gsi.
2555
e4269c78
JJ
2556 PR middle-end/50141
2557 * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
2558 innerdecl is a VAR_DECL.
2559
977e83a3
KY
25602011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
2561
2562 * config/i386/avx2intrin.h: New file.
2563 * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
2564 PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
2565 V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
2566 V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
2567 V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
2568 V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
2569 V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
2570 V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
2571 V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
2572 V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
2573 V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
2574 V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
2575 V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
2576 V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
2577 V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
2578 V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
2579 V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
2580 V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
2581 VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
2582 VOID_FTYPE_PV8SI_V8SI_V8SI,
2583 V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
2584 V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
2585 V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
2586 V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
2587 V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
2588 V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
2589 V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
2590 V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
2591 V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
2592 V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
2593 V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
2594 V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
2595 V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
2596 V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
2597 V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
2598 V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
2599 V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
2600 V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
2601 V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
2602 V4DI_FTYPE_V4DI_INT_CONVERT,
2603 V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
2604 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
2605 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
2606 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
2607 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
2608 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
2609 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
2610 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
2611 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
2612 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
2613 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
2614 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
2615 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
2616 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
2617 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
2618 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
2619 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
2620 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
2621 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
2622 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
2623 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
2624 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
2625 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
2626 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
2627 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
2628 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
2629 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
2630 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
2631 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
2632 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
2633 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
2634 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
2635 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
2636 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
2637 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
2638 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
2639 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
2640 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
2641 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
2642 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
2643 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
2644 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
2645 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
2646 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
2647 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
2648 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
2649 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
2650 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
2651 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
2652 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
2653 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
2654 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
2655 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
2656 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
2657 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
2658 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
2659 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
2660 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
2661 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
2662 IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
2663 IX86_BUILTIN_VBROADCASTSS_PS256,
2664 IX86_BUILTIN_VBROADCASTSD_PD256,
2665 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
2666 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
2667 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
2668 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
2669 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
2670 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
2671 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
2672 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
2673 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
2674 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
2675 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
2676 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
2677 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
2678 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
2679 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
2680 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
2681 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
2682 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
2683 IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
2684 IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
2685 IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
2686 IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
2687 IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
2688 IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
2689 IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
2690 IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
2691 (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
2692 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
2693 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
2694 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
2695 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
2696 (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
2697 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
2698 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
2699 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
2700 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
2701 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
2702 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
2703 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
2704 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
2705 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
2706 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
2707 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
2708 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
2709 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
2710 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
2711 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
2712 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
2713 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
2714 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
2715 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
2716 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
2717 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
2718 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
2719 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
2720 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
2721 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
2722 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
2723 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
2724 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
2725 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
2726 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
2727 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
2728 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
2729 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
2730 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
2731 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
2732 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
2733 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
2734 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
2735 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
2736 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
2737 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
2738 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
2739 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
2740 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
2741 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
2742 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
2743 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
2744 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
2745 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
2746 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
2747 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
2748 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
2749 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
2750 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
2751 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
2752 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
2753 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
2754 IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
2755 IX86_BUILTIN_VBROADCASTSD_PD256,
2756 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
2757 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
2758 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
2759 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
2760 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
2761 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
2762 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
2763 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
2764 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
2765 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
2766 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
2767 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
2768 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
2769 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
2770 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
2771 IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
2772 IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
2773 IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
2774 IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
2775 IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
2776 IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
2777 IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
2778 IX86_BUILTIN_GATHERDIV8SI.
2779 (ix86_preferred_simd_mode): Support AVX2 modes.
eb3e9f60 2780 (ix86_expand_args_builtin): Support AVX2 builtins.
977e83a3
KY
2781 (ix86_expand_special_args_builtin): Likewise.
2782 (ix86_expand_builtin): Likewise.
2783 * config/i386/i386.md (UNSPEC_VPERMSI): New.
2784 (UNSPEC_VPERMDF): Likewise.
2785 (UNSPEC_VPERMSF): Likewise.
2786 (UNSPEC_VPERMDI): Likewise.
2787 (UNSPEC_VPERMTI): Likewise.
2788 (UNSPEC_GATHER): Likewise.
2789 (ssemodesuffix): Extend.
2790 * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
2791 is defined.
2792 * config/i386/predicates.md (const1248_operand): New.
8b46e440 2793 * config/i386/sse.md (VI1_AVX2): New mode iterator.
977e83a3
KY
2794 (VI2_AVX2): Likewise.
2795 (VI4_AVX2): Likewise.
2796 (VI8_AVX2): Likewise.
2797 (VIMAX_AVX2): Likewise.
2798 (SSESCALARMODE): Likewise.
2799 (VI12_AVX2): Likewise.
2800 (VI24_AVX2): Likewise.
eb3e9f60 2801 (VI124_AVX2): Likewise.
977e83a3
KY
2802 (VI248_AVX2): Likewise.
2803 (VI48_AVX2): Likewise.
2804 (VI4SD_AVX2): Likewise.
2805 (V48_AVX2): Likewise.
eb3e9f60
UB
2806 (AVX256MODE2P): Likewise.
2807 (AVXMODE48P_DI): Likewise.
2808 (sse2_avx2): New mode attribute.
977e83a3
KY
2809 (ssse3_avx2): Likewise.
2810 (sse4_1_avx2): Likewise.
2811 (avx_avx2): Likewise.
eb3e9f60 2812 (ssebytemode): Likewise.
977e83a3 2813 (AVXTOSSEMODE): Likewise.
977e83a3
KY
2814 (AVXMODE48P_DI): Likewise.
2815 (gthrfirstp): Likewise.
2816 (gthrlastp): Likewise.
eb3e9f60
UB
2817 (lshift): New code_iterator
2818 (lshift): New code attribute.
2819 (lshift): Likewise.
2820 (ssescalarmodesuffix): Update.
2821 (sseunpackmode): Likewise.
2822 (ssepackmode): Likewise.
2823 (avx2_vec_dupv4sf): New insn pattern.
977e83a3
KY
2824 (avx2_vec_dupv8sf): Likewise.
2825 (avx2_interleave_highv4di): Likewise.
2826 (avx2_interleave_lowv4di): Likewise.
eb3e9f60
UB
2827 (avx2_umulv4siv4di3): Likewise
2828 (*avx2_umulv4siv4di3): Likewise
2829 (avx2_pmaddwd): Likewise.
977e83a3 2830 (*avx2_pmaddwd): Likewise.
eb3e9f60
UB
2831 (avx2_lshrqv4di3): Likewise.
2832 (avx2_lshlqv4di3): Likewise.
977e83a3 2833 (avx2_lshl<mode>3): Likewise.
eb3e9f60
UB
2834 (avx2_<umaxmin:code><mode>3): Likewise.
2835 (*avx2_<umaxmin:code><mode>3): Likewise.
2836 (avx2_<smaxmin:code><mode>3): Likewise.
2837 (*avx2_<smaxmin:code><mode>3): Likewise.
977e83a3
KY
2838 (avx2_eq<mode>3): Likewise.
2839 (*avx2_eq<mode>3): Likewise.
2840 (avx2_gt<mode>3): Likewise.
977e83a3
KY
2841 (avx2_interleave_highv32qi): New.
2842 (avx2_interleave_lowv32qi): Likewise.
2843 (avx2_interleave_highv16hi): Likewise.
2844 (avx2_interleave_lowv16hi): Likewise.
2845 (avx2_interleave_highv8si): Likewise.
2846 (avx2_interleave_lowv8si): Likewise.
eb3e9f60 2847 (avx2_pshufd): Likewise.
977e83a3
KY
2848 (avx2_pshufd_1): Likewise.
2849 (avx2_pshuflwv3): Likewise.
2850 (avx2_pshuflw_1): Likewise.
2851 (avx2_pshufhwv3): Likewise.
2852 (avx2_pshufhw_1): Likewise.
2853 (avx2_uavgv32qi3): Likewise.
2854 (*avx2_uavgv32qi3): Likewise.
2855 (avx2_uavgv16hi3): Likewise.
2856 (*avx2_uavgv16hi3): Likewise.
eb3e9f60 2857 (avx2_pmovmskb): Likewise.
977e83a3
KY
2858 (avx2_phaddwv16hi3): Likewise.
2859 (avx2_phadddv8si3): Likewise.
2860 (avx2_phaddswv16hi3): Likewise.
2861 (avx2_phsubwv16hi3): Likewise.
2862 (avx2_phsubdv8si3): Likewise.
2863 (avx2_phsubswv16hi3): Likewise.
2864 (avx2_pmaddubsw256): Likewise.
2865 (avx2_umulhrswv16hi3): Likewise.
2866 (*avx2_umulhrswv16hi3): Likewise.
eb3e9f60
UB
2867 (avx2_packusdw): Likewise.
2868 (avx2_pblendd<mode>): Likewise.
977e83a3
KY
2869 (avx2_<code>v16qiv16hi2): Likewise.
2870 (avx2_<code>v8qiv8si2): Likewise.
2871 (avx2_<code>v8hiv8si2): Likewise.
2872 (avx2_<code>v4qiv4di2): Likewise.
2873 (avx2_<code>v4hiv4di2): Likewise.
2874 (avx2_<code>v4siv4di2): Likewise.
2875 (avx2_pbroadcast<mode>): Likewise.
2876 (avx2_permvarv8si): Likewise.
2877 (avx2_permv4df): Likewise.
2878 (avx2_permvarv8sf): Likewise.
2879 (avx2_permv4di): Likewise.
2880 (avx2_permv2ti): Likewise.
2881 (avx2_vec_dupv4df): Likewise.
2882 (avx2_vbroadcasti128_<mode>): Likewise.
2883 (avx2_vec_set_lo_v4di): Likewise.
2884 (avx2_vec_set_hi_v4di): Likewise.
eb3e9f60 2885 (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
977e83a3
KY
2886 (avx2_extracti128): Likewise.
2887 (avx2_inserti128): Likewise.
2888 (avx2_ashrvv8si): Likewise.
2889 (avx2_ashrvv4si): Likewise.
2890 (avx2_<lshift>vv8si): Likewise.
2891 (avx2_<lshift>v<mode>): Likewise.
2892 (avx2_<lshift>vv2di): Likewise.
2893 (avx2_gathersi<mode>): Likewise.
2894 (*avx2_gathersi<mode>): Likewise.
2895 (avx2_gatherdi<mode>): Likewise.
2896 (*avx2_gatherdi<mode>): Likewise.
2897 (avx2_gatherdi<mode>256): Likewise.
2898 (*avx2_gatherdi<mode>256): Likewise.
8b46e440
UB
2899 (<plusminus_insn><mode>3): Use VI mode iterator.
2900 (*<plusminus_insn><mode>3): Use VI mode iterator.
eb3e9f60
UB
2901 (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
2902 sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
2903 (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
2904 *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
8b46e440
UB
2905 (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator.
2906 (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator.
eb3e9f60
UB
2907 (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
2908 Use VI2_AVX2 mode iterator.
2909 (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
8b46e440
UB
2910 Use VI2_AVX2 mode iterator.
2911 (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator.
2912 (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator.
2913 (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
2914 Use VI4_AVX2 mode iterator.
2915 (ashr<mode>3): Use VI24_AVX2 mode iterator.
2916 (lshr<mode>3): Use VI248_AVX2 mode iterator.
2917 (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
2918 Use VIMAX_AVX2 mode iterator.
2919 (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
2920 Use VI mode iterator.
2921 (*andnot<mode>3): Update for AVX2.
2922 (*<any_logic:code><mode>3): Likewise.
eb3e9f60 2923 (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
8b46e440 2924 Use VI1_AVX mode iterator.
eb3e9f60 2925 (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
8b46e440 2926 Use VI2_AVX mode iterator.
eb3e9f60 2927 (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
8b46e440
UB
2928 Use VI1_AVX mode iterator.
2929 (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
2930 Use VI8_AVX2 mode iterator.
2931 (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
2932 Use VI1_AVX2 mode iterator.
2933 (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
2934 Use VI124_AVX2 mode iterator.
2935 (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
2936 Use SSESCALARMODE mode iterator.
2937 (abs<mode>2): Use VI124_AVX2 mode iterator.
2938 (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
2939 Use VI8_AVX2 mode iterator.
2940 (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
2941 Use VI1_AVX2 mode iterator.
2942 (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
2943 Use VI1_AVX2 mode iterator.
2944 (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
2945 Use VI2_AVX2 mode iterator.
eb3e9f60 2946 (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
8b46e440 2947 avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
eb3e9f60 2948 (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
8b46e440
UB
2949 avx_maskstore<ssemodesuffix><avxsizesuffix>.
2950 Use V48_AVX2 mode iterator.
977e83a3
KY
2951 * doc/extend.texi: Document AVX2 built-in functions.
2952 * doc/invoke.texi: Document -mavx2.
2953
1ad1ae80
MK
29542011-08-22 Matthias Klose <doko@debian.org>
2955
2956 Revert:
2957 2011-07-11 Arthur Loiret <aloiret@debian.org>
2958 Matthias Klose <doko@debian.org>
2959 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
2960 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
2961 convention.
2962 * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
2963
fbddb81d
MP
29642011-08-22 Mikael Pettersson <mikpe@it.uu.se>
2965
2966 PR bootstrap/50146
2967 * ira-color.c (assign_hard_reg): Move saved_nregs declaration
2968 to #ifndef HONOR_REG_ALLOC_ORDER block.
2969
8f06d483
RH
29702011-08-21 Richard Henderson <rth@redhat.com>
2971
2972 * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
2973 * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
2974 * resource.c (next_insn_no_annul): Likewise.
2975 (mark_set_resources): Likewise.
2976 * reorg.c (delete_from_delay_slot): Likewise.
2977 (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
2978 (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
2979
38acd291
UB
29802011-08-21 Uros Bizjak <ubizjak@gmail.com>
2981
2982 * config/i386/i386.md (any_div): Remove.
2983 (sgnprefix): Update for removal.
2984 (u): Ditto.
2985
51935358
VM
29862011-08-20 Vladimir Makarov <vmakarov@redhat.com>
2987
2988 * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
2989 for ira_reg_class_max_nregs. Increase pressure by 1.
2990 (mark_pseudo_regno_subword_dead): Use allocno class
2991 for ira_reg_class_max_nregs.
2992
2b28ecea
RH
29932011-08-20 Richard Henderson <rth@redhat.com>
2994
2995 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
38acd291 2996 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
2b28ecea
RH
2997 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
2998 config/c6x/ltf.c: Adjust include path for soft-fp.
2999
9ce7ad7f
L
30002011-08-20 H.J. Lu <hongjiu.lu@intel.com>
3001
3002 PR other/46770
3003 * config.gcc (tm_file): Add initfini-array.h if
3004 .init_arrary/.fini_array are supported.
3005
3006 * crtstuff.c: Don't generate .ctors nor .dtors sections if
3007 USE_INITFINI_ARRAY is defined.
3008
3009 * output.h (default_elf_init_array_asm_out_constructor): New.
3010 (default_elf_fini_array_asm_out_destructor): Likewise.
3011 * varasm.c (elf_init_array_section): Likewise.
3012 (elf_fini_array_section): Likewise.
3013 (get_elf_initfini_array_priority_section): Likewise.
3014 (default_elf_init_array_asm_out_constructor): Likewise.
3015 (default_elf_fini_array_asm_out_destructor): Likewise.
3016
3017 * config/initfini-array.h: New.
3018
894113c3
RS
30192011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
3020
3021 * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
3022 OK for ST_REGS and FP_REGS before taking those classes into account.
3023
9e187b31
RS
30242011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
3025
3026 * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
3027 before checking for annulled branches.
3028
f0cac80b
UB
30292011-08-20 Uros Bizjak <ubizjak@gmail.com>
3030
3031 * config/i386/i386.c (ix86_binary_operator_ok): Use
3032 satisfies_constraint_L.
3033
198cb166
UB
30342011-08-20 Uros Bizjak <ubizjak@gmail.com>
3035 Michael Matz <matz@suse.de>
3036
3037 * config/i386/i386.c (ix86_expand_round_sse4): Expand as
3038 trunc (a + copysign (nextafter (0.5, 0.0), a)).
3039
f47a61f3
AS
30402011-08-20 Anatoly Sokolov <aesok@post.ru>
3041
3042 * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3043 * doc/tm.texi: Regenerate.
3044 * targhooks.c (default_preferred_output_reload_class): Don't use
3045 PREFERRED_OUTPUT_RELOAD_CLASS macro.
3046 * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
3047
94e3faf6
JJ
30482011-08-20 Jakub Jelinek <jakub@redhat.com>
3049
3050 PR tree-optimization/48739
3051 * tree-ssa.c: Include cfgloop.h.
198cb166
UB
3052 (execute_update_addresses_taken): When updating ssa, if in loop closed
3053 SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
94e3faf6
JJ
3054 * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
3055
3bb19a90
VM
30562011-08-19 Vladimir Makarov <vmakarov@redhat.com>
3057
3058 PR rtl-optimization/49936
3059 * ira.c (ira_init_register_move_cost): Ignore too small subclasses
3060 for calculation of max register move costs.
3061
02ee3d31
JM
30622011-08-19 Joseph Myers <joseph@codesourcery.com>
3063
3064 * c-parser.c (c_parser_postfix_expression): Convert operands of
3065 __builtin_complex to their semantic types.
3066
54f6892e
L
30672011-08-19 H.J. Lu <hongjiu.lu@intel.com>
3068
3069 PR middle-end/49721
3070 * explow.c (convert_memory_address_addr_space): Also permute the
3071 conversion and addition of constant for zero-extend.
3072
d4a83c10
JM
30732011-08-19 Joseph Myers <joseph@codesourcery.com>
3074
198cb166 3075 * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
d4a83c10
JM
3076 * doc/extend.texi (__builtin_complex): Document.
3077
a6f969f4
AS
30782011-08-19 Andrew Stubbs <ams@codesourcery.com>
3079
3080 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
3081 beyond conversions.
3082 (convert_mult_to_widen): Convert constant inputs to the right type.
3083 (convert_plusminus_to_widen): Don't automatically reject inputs that
3084 are not an SSA_NAME.
3085 Convert constant inputs to the right type.
3086
75161d2c
AS
30872011-08-19 Andrew Stubbs <ams@codesourcery.com>
3088
3089 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
3090 to the correct type.
3091
6a228c2c
AS
30922011-08-19 Andrew Stubbs <ams@codesourcery.com>
3093
3094 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
3095 unsigned inputs of different modes.
3096 (convert_plusminus_to_widen): Likewise.
3097
26a855d7
AS
30982011-08-19 Andrew Stubbs <ams@codesourcery.com>
3099
3100 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
3101 'type'.
3102 Use 'type' from caller, not inferred from 'rhs'.
3103 Don't reject non-conversion statements. Do return lhs in this case.
3104 (is_widening_mult_p): Add new argument 'type'.
3105 Use 'type' from caller, not inferred from 'stmt'.
3106 Pass type to is_widening_mult_rhs_p.
3107 (convert_mult_to_widen): Pass type to is_widening_mult_p.
3108 (convert_plusminus_to_widen): Likewise.
3109
ff63d754
AS
31102011-08-19 Andrew Stubbs <ams@codesourcery.com>
3111
3112 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
3113 Ensure the the larger type is the first operand.
3114
db719f50
AS
31152011-08-19 Andrew Stubbs <ams@codesourcery.com>
3116
3117 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
3118 unsupported unsigned multiplies to signed.
3119 (convert_plusminus_to_widen): Likewise.
3120
cefb4d4f
AS
31212011-08-19 Andrew Stubbs <ams@codesourcery.com>
3122
3123 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
3124 conversion statement separating multiply-and-accumulate.
3125
2946bd34
RG
31262011-08-19 Richard Guenther <rguenther@suse.de>
3127
3128 PR tree-optimization/50067
3129 * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
3130 offset only if we accounted for it.
3131
5dfe80ba
AS
31322011-08-19 Andrew Stubbs <ams@codesourcery.com>
3133
3134 * config/arm/arm.md (maddhidi4): Remove '*' from name.
3135 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
3136 * optabs.c (find_widening_optab_handler_and_mode): New function.
3137 (expand_widen_pattern_expr): Use find_widening_optab_handler.
3138 (expand_binop_directly): Likewise.
3139 (expand_binop): Likewise.
3140 * optabs.h (find_widening_optab_handler): New macro define.
3141 (find_widening_optab_handler_and_mode): New prototype.
3142 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
3143 type precision rules.
3144 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
3145 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
3146 (is_widening_mult_rhs_p): Allow widening by more than one mode.
3147 Explicitly disallow mis-matched input types.
3148 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
3149 input types to fit the new handler.
3150 (convert_plusminus_to_widen): Likewise.
3151
a484f6ba
AS
31522011-08-19 Andrew Stubbs <ams@codesourcery.com>
3153
3154 * expr.c (expand_expr_real_2): Use widening_optab_handler.
3155 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
3156 (gen_insn): $N now means $a must be wider than $b, not consecutive.
3157 * optabs.c (widened_mode): New function.
3158 (expand_widen_pattern_expr): Use widening_optab_handler.
3159 (expand_binop_directly): Likewise.
3160 (expand_binop): Likewise.
3161 * optabs.h (widening_optab_handlers): New struct.
3162 (optab_d): New member, 'widening'.
3163 (widening_optab_handler): New function.
3164 (set_widening_optab_handler): New function.
3165 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
3166 widening_optab_handler.
3167 (convert_plusminus_to_widen): Likewise.
3168
c4b3a0a0
JM
31692011-08-19 Joseph Myers <joseph@codesourcery.com>
3170
3171 * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
3172 pedantic.
198cb166 3173 * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
c4b3a0a0
JM
3174 * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
3175
f6d08ab2
JM
31762011-08-19 Joseph Myers <joseph@codesourcery.com>
3177
3178 * opth-gen.awk: Do not declare target save/restore structures and
3179 functions if IN_RTS defined.
3180
a3f94870
JY
31812011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
3182
3183 PR target/49437
3184 * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
3185 when stack was realigned in interrupt handler prologue.
3186
bbceee64
JM
31872011-08-18 Joseph Myers <joseph@codesourcery.com>
3188
3189 * c-decl.c (shadow_tag_warned): Check for _Noreturn.
3190 (quals_from_declspecs): Assert _Noreturn not present.
3191 (grokdeclarator): Handle _Noreturn.
3192 (build_null_declspecs): Initialize noreturn_p.
3193 (declspecs_add_scspec): Handle RID_NORETURN.
3194 * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
3195 (c_parser_attributes): Handle RID_NORETURN.
3196 * c-tree.h (struct c_declspecs): Add noreturn_p.
3197 * ginclude/stdnoreturn.h: New.
3198 * Makefile.in (USER_H): Add stdnoreturn.h.
3199
7afac110
KY
32002011-08-18 Kirill Yukhin <kirill.yukhin@intel.com>
3201
3202 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
3203 (OPTION_MASK_ISA_AVX_UNSET): Update.
3204 (OPTION_MASK_ISA_AVX2_UNSET): New.
3205 (ix86_handle_option): Handle OPT_mavx2 case.
3206 * config/i386/cpuid.h (bit_AVX2): New.
3207 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3208 AVX2 feature.
3209 * config/i386/i386-c.c (ix86_target_macros_internal):
3210 Conditionally define __AVX2__.
198cb166
UB
3211 * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
3212 Define "core-avx2" processor alias. Handle avx2 option.
7afac110
KY
3213 (ix86_valid_target_attribute_inner_p): Handle avx2 option.
3214 * config/i386/i386.h (TARGET_AVX2): New.
3215 * config/i386/i386.opt (mavx2): New.
3216 * doc/invoke.texi: Document -mavx2.
3217
6277a710
VM
32182011-08-18 Vladimir Makarov <vmakarov@redhat.com>
3219
3220 PR rtl-optimization/49890
3221 * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
3222 subclasses of class which is superset of a pressure class.
3223
df385b9c
L
32242011-08-18 H.J. Lu <hongjiu.lu@intel.com>
3225 Igor Zamyatin <igor.zamyatin@intel.com>
3226
3227 * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
3228 with HOST_WIDE_INT for isa_flag.
3229 (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
3230 isa variables.
3231
3232 * config/i386/i386.c (ix86_target_string): Replace int with
3233 HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa.
3234 (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
3235 (pta_flags): Removed.
3236 (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
3237 (pta): Use HOST_WIDE_INT on flags.
3238 (builtin_isa): Use HOST_WIDE_INT on isa.
3239 (ix86_add_new_builtins): Likewise.
3240 (def_builtin): Use HOST_WIDE_INT on mask.
3241 (def_builtin_const): Likewise.
3242 (builtin_description): Likewise.
3243
3244 * config/i386/i386.opt (ix86_isa_flags): Replace int with
3245 HOST_WIDE_INT.
3246 (ix86_isa_flags_explicit): Likewise.
3247 (x_ix86_isa_flags_explicit): Likewise.
3248
9181a6e5
VM
32492011-08-17 Vladimir Makarov <vmakarov@redhat.com>
3250
3251 PR rtl-optimization/50107
3252 * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
3253 (ira_hard_reg_in_set_p): New.
3254
3255 * ira-color.c (calculate_saved_nregs): New.
3256 (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all
3257 hard regs.
3258 (allocno_reload_assign, fast_allocation): Use
3259 ira_hard_reg_set_intersection_p instead of
3260 ira_hard_reg_not_in_set_p.
3261
3262 * ira.c (setup_reg_renumber): Use
3263 ira_hard_reg_set_intersection_p instead of
3264 ira_hard_reg_not_in_set_p.
3265 (setup_allocno_assignment_flags, calculate_allocation_cost): Use
3266 ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
3267
3268 * ira-costs.c (ira_tune_allocno_costs): Use
3269 ira_hard_reg_set_intersection_p instead of
3270 ira_hard_reg_not_in_set_p.
3271
99114bbf
L
32722011-08-18 H.J. Lu <hongjiu.lu@intel.com>
3273 Igor Zamyatin <igor.zamyatin@intel.com>
3274
3275 * hwint.h (HOST_WIDE_INT_1): New.
3276
3277 * opt-functions.awk (switch_bit_fields): Initialize the
3278 host_wide_int field.
3279 (host_wide_int_var_name): New.
3280 (var_type_struct): Check and return HOST_WIDE_INT.
3281
3282 * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
3283
3284 * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
3285
3286 * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly
3287 check masks for HOST_WIDE_INT.
3288
3289 * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
3290 (option_enabled): Likewise.
3291 (get_option_state): Likewise.
3292
3293 * opts.h (cl_option): Add cl_host_wide_int. Change var_value
3294 to HOST_WIDE_INT.
3295
5b880ea6
RO
32962011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3297 Marc Glisse <marc.glisse@normalesup.org>
3298
3299 PR libstdc++-v3/1773
3300 * target.def (decl_mangling_context): New C++ hook.
3301 * doc/tm.texi: Regenerate.
3302 * config/sol2-cxx.c, config/sol2-stubs.c: New files.
3303 * config/sol2-protos.h: Group by source file.
3304 (solaris_cxx_decl_mangling_context): Declare.
3305 * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
3306 * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
3307 Use $<.
3308 * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
3309 Add sol2-stubs.o to extra_objs.
3310
4dee9718
JJ
33112011-08-18 Jakub Jelinek <jakub@redhat.com>
3312
f44157f8
JJ
3313 PR target/50009
3314 * stor-layout.c (update_alignment_for_field): Don't ICE on
3315 packed flexible array members if ms_bitfield_layout_p.
3316
2a63286d
JJ
3317 PR target/50092
3318 * config/i386/i386.c (assign_386_stack_local): Call validize_mem
3319 on the result before returning it.
3320
4dee9718
JJ
3321 PR debug/50017
3322 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
3323 is a debug stmt, use location of the first non-debug stmt after it.
3324
b28e37f1
RS
33252011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
3326
3327 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
3328 (arm_size_rtx_costs): Likewise.
3329
6b8045e1
RG
33302011-08-18 Richard Guenther <rguenther@suse.de>
3331
3332 * tree.h (tree_int_cst_msb): Remove.
3333 * tree.c (tree_int_cst_msb): Likewise.
3334 (tree_int_cst_sign_bit): Move from ...
3335 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
3336
68f932c4
RS
33372011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
3338
3339 * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
3340 * doc/tm.texi: Regenerate.
3341 * target.def (rtx_costs): Add an opno parameter.
3342 * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
3343 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
3344 * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
3345 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
3346 * cse.c (COST_IN): Add an opno parameter.
3347 (notreg_cost): Likewise. Update call to rtx_cost.
3348 (COST, fold_rtx): Update accordingly.
3349 * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
3350 * expmed.c (emit_store_flag): Likewise.
3351 * optabs.c (avoid_expensive_constant): Add an opno parameter.
3352 Update call to rtx_cost.
3353 (expand_binop_directly, expand_binop): Likewise.
3354 (expand_twoval_binop, prepare_cmp_insn): Likewise.
3355 * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
3356 (set_src_cost, get_full_set_src_cost): Update accordingly.
3357 * rtlanal.c (rtx_cost): Add an opno parameter. Update call
3358 to target hook.
3359 (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
3360 (default_adress_cost): Update calls to rtx_cost.
3361
3362 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
3363 (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
3364 (arm_rtx_costs): Add an opno parameter.
3365 * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
3366 adjust any recursive rtx-cost calls.
3367 * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
3368 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
3369 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
3370 * config/cris/cris.c (cris_rtx_costs): Likewise.
3371 * config/frv/frv.c (frv_rtx_costs): Likewise.
3372 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
3373 * config/i386/i386.c (ix86_rtx_costs): Likewise.
3374 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
3375 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
3376 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
3377 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
3378 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
3379 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
3380 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
3381 * config/mep/mep.c (mep_rtx_cost): Likewise.
3382 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
3383 * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
3384 (mips_zero_extend_cost): Add an opno parameter.
3385 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
3386 * config/mn10300/mn10300.c (mn10300_address_cost): Update call
3387 to rtx_cost.
3388 (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
3389 rtx-cost calls.
3390 * config/pa/pa.c (hppa_rtx_costs): Likewise.
3391 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
3392 * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
3393 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
3394 (rs6000_debug_rtx_costs): Likewise.
3395 * config/s390/s390.c (s390_rtx_costs): Likewise.
3396 * config/score/score-protos.h (score_rtx_costs): Likewise.
3397 * config/score/score.c (score_rtx_costs): Likewise.
3398 * config/sh/sh.c (andcosts): Update call to rtx_cost.
3399 (sh_rtx_costs): Add an opno parameter.
3400 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
3401 * config/spu/spu.c (spu_rtx_costs): Likewise.
3402 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
3403 * config/v850/v850.c (v850_rtx_costs): Likewise.
3404 * config/vax/vax.c (vax_rtx_costs): Likewise.
3405 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
3406
5e8f01f4
RS
34072011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
3408
3409 * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
3410 * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
3411 rtx_cost.
3412 * calls.c (precompute_register_parameters): Likewise.
3413 * combine.c (expand_compound_operation, make_extraction): Likewise.
3414 (force_to_mode, distribute_and_simplify_rtx): Likewise.
3415 * dse.c (find_shift_sequence): Likewise.
3416 * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
3417 * expr.c (compress_float_constant): Likewise.
3418 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
3419 * gcse.c (want_to_gcse_p): Likewise.
3420 * ifcvt.c (noce_try_sign_mask): Likewise.
3421 * loop-doloop.c (doloop_optimize): Likewise.
3422 * loop-invariant.c (create_new_invariant): Likewise.
3423 * optabs.c (avoid_expensive_constant): Likewise.
3424 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
3425 (try_replace_in_use, reload_cse_move2add): Likewise.
3426 * reload1.c (calculate_elim_costs_all_insns): Likewise.
3427 (note_reg_elim_costly): Likewise.
3428 * rtlanal.c (insn_rtx_cost): Likewise.
3429 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3430 * stmt.c (lshift_cheap_p): Likewise.
3431 * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
3432 * config/avr/avr.c (final_prescan_insn): Likewise.
3433 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
3434 * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
3435
d51102f3
RS
34362011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
3437
3438 * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
3439 * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
3440 * cfgloopanal.c (seq_cost): Likewise.
3441 * loop-invariant.c (create_new_invariant): Likewise.
3442 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
3443 (reload_cse_move2add): Use get_full_set_rtx_cost.
3444
fdb4f315
RG
34452011-08-18 Richard Guenther <rguenther@suse.de>
3446
3447 * expr.c (get_inner_reference): Fix typo in last change.
3448
4c9cf7af
PC
34492011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
3450 Joseph Myers <joseph@codesourcery.com>
3451
3452 PR tree-optimization/49963
3453 * hwint.c (absu_hwi): Define.
3454 * hwint.h (absu_hwi): Declare.
3455 * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
3456 of abs_hwi.
3457 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
3458 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
3459
97919ae7
RG
34602011-08-18 Richard Guenther <rguenther@suse.de>
3461
3462 * expr.c (get_inner_reference): Sign-extend the constant
3463 twos-complement offset before doing arbitrary precision
3464 arithmetic on it.
3465 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
3466 (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
3467 to get_constraint_for_ptr_offset.
3468
b566132b
KK
34692011-08-17 Kaz Kojima <kkojima@gcc.gnu.org>
3470
3471 PR target/50068
3472 * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
3473
0d82a1c8
RG
34742011-08-17 Richard Guenther <rguenther@suse.de>
3475
3476 * tree.h (convert_to_ptrofftype_loc): New function.
3477 (convert_to_ptrofftype): Define.
3478 * builtins.c (expand_builtin_bzero): Use size_type_node.
3479 (fold_builtin_bzero): Likewise.
3480 (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
3481 * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
3482 * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
3483 (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
3484 * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
198cb166 3485 * fold-const.c (build_range_check): Negate using the original type.
0d82a1c8
RG
3486 (fold_unary_loc): Use fold_build_pointer_plus_loc.
3487 * gimple-fold.c (gimple_adjust_this_by_delta): Use
3488 convert_to_ptrofftype.
3489 * gimplify.c (gimplify_self_mod_expr): Likewise.
3490 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
3491 (graphite_create_new_loop_guard): Likewise.
3492 * graphite-sese-to-poly.c (my_long_long): Remove.
3493 (scop_ivs_can_be_represented): Adjust.
3494 * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
3495 * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
3496 * tree-loop-distribution.c (build_size_arg_loc): Use
3497 size_type_node.
3498 (generate_memset_zero): Simplify.
3499 * tree-mudflap.c: Use fold_convert, not convert.
3500 * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
3501 its own type.
3502 (determine_offset): Likewise for DR_STEP.
3503 (valid_initializer_p): Likewise.
3504 * tree-profile.c (prepare_instrumented_value): Convert the pointer
3505 to an integer type of same size.
3506 * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
3507 to sizetype without need.
3508 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3509 * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
3510 * tree-ssa-loop-manip.c (create_iv): Likewise.
3511 (determine_exit_conditions): Adjust comment.
3512 * tree-ssa-pre.c (create_expression_by_pieces): Use
3513 convert_to_ptrofftype.
3514 * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
3515 * varasm.c (array_size_for_constructor): Compute using double_ints.
3516
0b01f619
UW
35172011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3518
3519 * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
3520 when generating an integer result where possible. Short-cut
3521 comparison against 0 also for QImode.
3522
2ea0be59
UW
35232011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3524
3525 * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
3526 * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
3527 prototype.
3528 * config/spu/spu.c (spu_legitimize_reload_address): New function.
3529 (spu_legitimate_address_p): Do not check displacement if the base
3530 is an eliminable stack register.
3531
b05933f5
AS
35322011-08-16 Anatoly Sokolov <aesok@post.ru>
3533
3534 * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
3535 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
3536 * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
3537 m32c_preferred_output_reload_class): Remove.
3538 * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
3539 Change rclass argument and return types to reg_class_t. Use
3540 reg_class_subset_p instead of class_sizes.
3541 (m32c_preferred_output_reload_class): Make static. Change rclass
3542 argument and return types to reg_class_t.
3543 (TARGET_PREFERRED_RELOAD_CLASS,
3544 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3545
c9c8f2e8
KT
35462011-08-16 Kai Tietz <ktietz@redhat.com>
3547
3548 * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
3549
e8dbf8b5
RG
35502011-08-16 Richard GUenther <rguenther@suse.de>
3551
3552 PR tree-optimization/50082
3553 * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
3554 warnings here, instead of ...
3555 (ssa_forward_propagate_and_combine): ... here.
3556 (forward_propagate_into_comparison_1): Adjust.
3557 (forward_propagate_into_comparison): Likewise.
3558 (forward_propagate_into_gimple_cond): Likewise.
3559 (forward_propagate_into_cond): Likewise.
3560
870d0521
AS
35612011-08-16 Andreas Schwab <schwab@redhat.com>
3562
3563 * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
3564 instead of ggc_alloc_zone_vec_rtvec_def.
3565
370f4759
RG
35662011-08-16 Richard Guenther <rguenther@suse.de>
3567
3568 * tree.h (ptrofftype_p): New helper function.
3569 * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
3570 offset verification.
3571 (verify_gimple_assign_binary): Likewise.
3572 * tree.c (build2_stat): Likewise.
3573 * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
3574 (reset_evolution_in_loop): Likewise.
3575 * tree-chrec.h (build_polynomial_chrec): Likewise.
3576
c5058418
LW
35772011-08-16 Liang Wang <lwang1@marvell.com>
3578
3579 * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
3580 ggc_alloc_zone_vec_rtvec_def.
3581
a1bc7628
RG
35822011-08-16 Richard Guenther <rguenther@suse.de>
3583
3584 * tree-vrp.c (extract_range_from_multiplicative_op_1): New
3585 helper factored out from ...
3586 (extract_range_from_binary_expr_1): ... here. Re-structure
3587 to not glob handling too different tree codes.
3588
efec771a
RH
35892011-08-15 Richard Henderson <rth@redhat.com>
3590
3591 PR middle-end/50006
3592 * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
3593 setting out to include allocate_stack named pattern as well.
3594 * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
3595 * stmt.c (expand_stack_restore): Likewise.
3596
d510820a
RG
35972011-08-15 Richard Guenther <rguenther@suse.de>
3598
3599 PR middle-end/50082
3600 * fold-const.c (maybe_canonicalize_comparison_1): Properly
3601 convert the modified operand to the other operand type.
3602 (fold_comparison): Call maybe_canonicalize_comparison_1 with
3603 useless conversions stripped from comparison operands.
3604
1a0fcfa9
RG
36052011-08-15 Richard Guenther <rguenther@suse.de>
3606
3607 * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
3608 (extract_range_from_unary_expr_1): Restructure.
3609
4f9dbaaa
RG
36102011-08-15 Richard Guenther <rguenther@suse.de>
3611
3612 PR tree-optimization/50058
3613 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
3614 copy matching.
3615
3598da80
RR
36162011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3617
3618 PR target/50022
3619 * config/arm/arm.c (output_move_double): Add 2 parameters
3620 to count the number of insns emitted and whether to emit or not.
3621 Use the flag to decide when to emit and count number of instructions
3622 that will be emitted.
3623 Handle case where output_move_double might be called for calculating
3624 lengths with an invalid constant.
3625 (arm_count_output_move_double_insns): Define.
3626 * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
3627 (output_move_double): Adjust prototype.
3628 * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
3629 output_move_double.
3630 ("*movdi_vfp_cortexa8"): Likewise and add attribute
3631 for ce_count.
3632 * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
3633 ("*movdf_soft_insn"): Likewise.
3634 * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
3635 ("*cirrus_thumb2_movdi"): Likewise.
3636 ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
3637 ("*cirrus_movdf_hard_insn"): Likewise.
3638 * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
3639 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
3640 ("mov<mode>_internal VMMX"): Likewise.
3641 * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
3642
f4ab7b99
UB
36432011-08-14 Uros Bizjak <ubizjak@gmail.com>
3644
3645 * config/i386/i386.c (ix86_expand_round_sse4): New function.
3646 * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
3647 * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
3648 for TARGET_ROUND.
3649
3650 (rint<mode>2): Simplify TARGET_ROUND check.
3651 (floor<mode>2): Ditto.
3652 (ceil<mode>2): Ditto.
3653 (btrunc<mode>2): Ditto.
3654
12e502c6
AS
36552011-08-14 Anatoly Sokolov <aesok@post.ru>
3656
3657 * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
3658 as mmix_preferred_output_reload_class.
3659
f3713778 36602011-08-14 Georg-Johann Lay <avr@gjlay.de>
f4ab7b99 3661
f3713778
GJL
3662 * PR target/49903
3663 * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
3664 (branch_unspec): New insn.
3665 (branch): Beauty farm.
3666 * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC
3667 to be IF_THEN_ELSE.
3668 (avr_compare_pattern, avr_reorg_remove_redundant_compare):
3669 New static functions.
3670 (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN.
3671 Use CONST_INT_P. Beauty.
3672
7b4ef662
RH
36732011-08-12 Richard Henderson <rth@redhat.com>
3674
3675 PR rtl-opt/49994
3676 * sched-init.h (struct deps_desc): Add sched_before_next_jump.
3677 * sched-deps.c (init_deps): Clear it.
3678 (deps_analyze_insn): Consume it.
3679 (sched_analyze_insn): Fill it.
3680
10c241af
RR
36812011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3682
198cb166 3683 PR target/48328
10c241af
RR
3684 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
3685 for tbh instructions.
3686
198cb166 36872011-08-12 Diego Novillo <dnovillo@google.com>
412288f1
DN
3688
3689 * data-streamer.h (streamer_write_zero): Rename from output_zero.
f4ab7b99
UB
3690 (streamer_write_uhwi): Rename from lto_output_uleb128.
3691 (streamer_write_hwi): Rename from output_sleb128.
3692 (streamer_write_string): Rename from lto_output_string.
3693 (streamer_string_index): Rename from lto_string_index.
3694 (streamer_write_string_with_length): Rename from
3695 lto_output_string_with_length.
3696 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
3697 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
3698 (streamer_read_string): Rename from lto_input_string.
3699 (streamer_read_indexed_string): Rename from input_string_internal.
3700 (streamer_read_uhwi): Rename from lto_input_uleb128.
3701 (streamer_read_hwi): Rename from lto_input_sleb128.
3702 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
3703 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
3704 (streamer_write_enum): Rename from lto_output_enum.
3705 (streamer_read_enum): Rename from lto_input_enum.
3706 (streamer_write_record_start): Rename from output_record_start.
3707 (streamer_read_record_start): Rename from input_record_start.
3708 (streamer_write_bitpack): Rename from lto_output_bitpack.
3709 (streamer_read_bitpack): Rename from lto_input_bitpack.
3710 (streamer_write_char_stream): Rename from lto_output_1_stream.
3711 (streamer_read_uchar): Rename from lto_input_1_unsigned.
3712 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
3713 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
3714 (streamer_read_string_cst): Rename from input_string_cst.
3715 (streamer_read_chain): Rename from lto_input_chain.
3716 (streamer_alloc_tree): Rename from lto_materialize_tree.
3717 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
3718 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
3719 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
3720 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
3721 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
3722 (streamer_write_chain): Rename from lto_output_chain.
3723 (streamer_write_tree_header): Rename from lto_output_tree_header.
3724 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
3725 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
3726 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
3727 (streamer_write_builtin): Rename from lto_output_builtin_tree.
3728 (streamer_check_handled_ts_structures): Rename from
3729 check_handled_ts_structures.
3730 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
3731 (streamer_tree_cache_insert_at): Rename from
3732 lto_streamer_cache_insert_at.
3733 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
3734 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
3735 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
3736 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
3737 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
3738 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
3739 (write_identifier): Rename from output_identifier.
3740 (write_ts_common_tree_pointers): Rename from
3741 lto_output_ts_common_tree_pointers.
3742 (write_ts_vector_tree_pointers): Rename from
3743 lto_output_ts_vector_tree_pointers.
3744 (write_ts_complex_tree_pointers): Rename from
3745 lto_output_ts_complex_tree_pointers.
3746 (write_ts_decl_minimal_tree_pointers): Rename from
3747 lto_output_ts_decl_minimal_tree_pointers.
3748 (write_ts_decl_common_tree_pointers): Rename from
3749 lto_output_ts_decl_common_tree_pointers.
3750 (write_ts_decl_non_common_tree_pointers): Rename from
3751 lto_output_ts_decl_non_common_tree_pointers.
3752 (write_ts_decl_with_vis_tree_pointers): Rename from
3753 lto_output_ts_decl_with_vis_tree_pointers.
3754 (write_ts_field_decl_tree_pointers): Rename from
3755 lto_output_ts_field_decl_tree_pointers.
3756 (write_ts_function_decl_tree_pointers): Rename from
3757 lto_output_ts_function_decl_tree_pointers.
3758 (write_ts_type_common_tree_pointers): Rename from
3759 lto_output_ts_type_common_tree_pointers.
3760 (write_ts_type_non_common_tree_pointers): Rename from
3761 lto_output_ts_type_non_common_tree_pointers.
3762 (write_ts_list_tree_pointers): Rename from
3763 lto_output_ts_list_tree_pointers.
3764 (write_ts_vec_tree_pointers): Rename from
3765 lto_output_ts_vec_tree_pointers.
3766 (write_ts_exp_tree_pointers): Rename from
3767 lto_output_ts_exp_tree_pointers.
3768 (write_ts_block_tree_pointers): Rename from
3769 lto_output_ts_block_tree_pointers.
3770 (write_ts_binfo_tree_pointers): Rename from
3771 lto_output_ts_binfo_tree_pointers.
3772 (write_ts_constructor_tree_pointers): Rename from
3773 lto_output_ts_constructor_tree_pointers.
3774 (write_ts_target_option): Rename from lto_output_ts_target_option.
3775 (write_ts_translation_unit_decl_tree_pointers): Rename from
3776 lto_output_ts_translation_unit_decl_tree_pointers.
3777 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
3778 Rename from lto_streamer_cache_add_to_node_array.
3779 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
3780 (record_common_node): Rename from lto_record_common_node.
412288f1
DN
3781
3782 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
3783 declarations.
3784 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
3785 function.
3786 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
3787 unused function.
3788 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
3789 (ipa-reference.o): Likewise.
3790 * lto-section-out.c: Include data-streamer.h.
3791 * ipa-reference.c: Include data-streamer.h.
3792
9b0f6f5e
NC
37932011-08-12 Nick Clifton <nickc@redhat.com>
3794
f4ab7b99 3795 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
9b0f6f5e
NC
3796 * doc/md.texi (cmpstrn): Note that the comparison stops if both
3797 fetched bytes are zero.
3798 (cmpstr): Likewise.
3799 (cmpmem): Note that the comparison does not stop if both of the
3800 fetched bytes are zero.
3801
6c32ee74
UB
38022011-08-12 Uros Bizjak <ubizjak@gmail.com>
3803
3804 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
3805 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
3806 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
3807 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
3808 to integer_type_node.
3809 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
3810 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
3811 * builtins.c (expand_builtin_in): Ditto.
3812 (mathfn_built_in_1): Ditto.
3813 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
3814 BUILT_IN_IFLOOR.
3815 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
3816 BUILT_IN_IROUND.
3817 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
3818 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
3819 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
3820
d9fbc86e
RB
38212011-08-12 Richard Guenther <rguenther@suse.de>
3822
198cb166 3823 * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
d9fbc86e
RB
3824
38252011-08-12 Romain Geissler <romain.geissler@gmail.com>
f895fc2a
RG
3826
3827 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
3828
20fe71c2
RS
38292011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
3830
3831 * config/arm/arm.c (get_label_padding): New function.
c789cb77 3832 (create_fix_barrier, arm_reorg): Use it.
20fe71c2 3833
88b590c5
UB
38342011-08-11 Uros Bizjak <ubizjak@gmail.com>
3835
3836 PR target/49781
3837 * config/i386/i386.md (*lea_5_zext): New.
3838 (*lea_6_zext): Ditto.
3839 * config/i386/predicates.md (const_32bit_mask): New predicate.
3840 (lea_address_operand): Reject AND.
3841 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
3842 const_32bit_mask immediate.
3843 (ix86_print_operand_address): Handle AND.
3844 (memory_address_length): Ditto.
3845
4309e92c 38462011-08-11 Romain Geissler <romain.geissler@gmail.com>
88b590c5 3847 Brian Hackett <bhackett1024@gmail.com>
4309e92c
RG
3848
3849 * plugin.def: Add event for finish_decl.
3850 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
3851 * c-decl.c (finish_decl): Invoke callbacks on above event.
3852 * doc/plugins.texi: Document above event.
3853
25aa059e
RG
38542011-08-11 Richard Guenther <rguenther@suse.de>
3855
3856 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
3857 lookups, make looking through aggregate copies stronger.
3858
6bfd73a6
RH
38592011-08-11 Richard Henderson <rth@redhat.com>
3860
3861 PR bootstrap/50018
3862 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
3863
022676dc
RG
38642011-08-11 Richard Guenther <rguenther@suse.de>
3865
3866 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
3867 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
3868 (vrp_visit_stmt): Likewise.
3869
8d2b0410
RG
38702011-08-11 Richard Guenther <rguenther@suse.de>
3871
3872 PR middle-end/50040
3873 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
3874 load of the other piece with TREE_NO_WARNING.
3875 * tree-flow.h (warn_uninit): Adjust prototype.
3876 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
3877 the base variable and the expression that is used separately.
3878 Properly query all TREE_NO_WARNING flags.
3879 (struct walk_data): Remove.
3880 (warn_uninitialized_var): Likewise.
3881 (warn_uninitialized_vars): Do not walk gimple pieces but simply
3882 look at all SSA uses of the statement. Handle unused memory
3883 separately.
3884 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
3885
78926be1
KI
38862011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
3887
88b590c5 3888 * config/rx/rx.md (movsicc): Allow register to register transfers.
78926be1
KI
3889 (*movsicc): Likewise.
3890 (*stcc): Restrict this pattern to EQ and NE compares.
3891 (*stcc_reg): New pattern. Works for any comparison but only for
3892 register transfers.
3893
b9393656
DN
38942011-08-11 Diego Novillo <dnovillo@google.com>
3895
3896 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
3897 Call stream_write_tree instead of output_record_start.
3898 (lto_output_ts_binfo_tree_pointers): Likewise.
3899
3900 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
3901 Convert it to a macro.
3902 (stream_read_tree): Likewise.
3903
3904 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
3905 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
3906
3907 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
3908 and tree_read_bitfields.
3909 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
3910 (lto_write_tree): Call it.
3911 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
3912 * streamer-hooks.h (struct streamer_hooks): Remove fields
3913 name, is_streamable and alloc_tree. Update all users.
3914 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
3915 (lto_materialize_tree): ... here.
3916 Handle CALL_EXPR codes.
3917 Remove call to lto_streamer_cache_append.
88b590c5 3918 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
b9393656
DN
3919 * tree-streamer.h (tree_read_bitfields): Declare.
3920
3921 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
3922 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
3923 * tree-streamer.h (stream_read_tree): New. Replace all calls
3924 to lto_input_tree with it.
3925 (stream_write_tree): New. Replace all calls to lto_output_tree,
3926 lto_output_tree_ref and lto_output_tree_or_ref with it.
3927 * lto-streamer-in.c (lto_read_tree): Inline code from
3928 lto_streamer_read_tree.
3929 (lto_input_tree): Move from tree-streamer-in.c.
3930 * lto-streamer-out.c (lto_output_tree_ref): Make static.
3931 Remove handling of NULL values for EXPR.
3932 Do not handle EXPRs that are not indexable.
3933 (lto_write_tree): Move from tree-streamer-out.c.
3934 Inline lto_streamer_write_tree.
3935 (lto_output_tree): Move from tree-streamer-out.c.
3936 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
3937 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
3938 (lto_preload_common_nodes): Likewise.
3939 Remove assertions and adjustments for nodes
3940 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
3941 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
88b590c5 3942 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
b9393656
DN
3943 * lto-streamer.h (lto_input_tree): Declare.
3944 (lto_output_tree_ref): Remove.
3945 * streamer-hooks.h (struct streamer_hooks): Remove fields
3946 preload_common_nodes, indexable_with_decls_p,
3947 pack_value_fields, unpack_value_fields and output_tree_header.
3948 Update all users.
3949 * tree-streamer-in.c (lto_materialize_tree): Make extern.
3950 (lto_input_tree_pointers): Likewise.
3951 (lto_read_tree): Move to lto-streamer-in.c.
3952 (lto_input_integer_cst): Make extern.
3953 (lto_get_pickled_tree): Likewise.
3954 (lto_get_builtin_tree): Likewise.
3955 (lto_input_tree): Move to lto-streamer-in.c.
3956 * tree-streamer-out.c (pack_value_fields): Make extern.
3957 (lto_output_tree_or_ref): Remove. Replace all callers with
3958 calls to stream_write_tree.
3959 (lto_output_builtin_tree): Make extern.
3960 (lto_streamer_write_tree): Inline into lto_write_tree.
3961 (lto_output_tree_pointers): Make extern.
3962 (lto_output_tree_header): Likewise.
3963 (lto_output_integer_cst): Likewise.
3964 (lto_write_tree): Move to lto-streamer-out.c.
3965 (lto_output_tree): Likewise.
88b590c5 3966 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
b9393656
DN
3967 (preload_common_nodes): Likewise.
3968 (lto_streamer_cache_create): Call it.
3969 * tree-streamer.h: Include streamer-hooks.h.
3970 (stream_write_tree): New.
3971 (stream_read_tree): New.
3972 (lto_input_tree): Remove.
3973 (lto_materialize_tree): Declare.
3974 (lto_input_tree_pointers): Declare.
3975 (lto_get_pickled_tree): Declare.
3976 (lto_get_builtin_tree): Declare.
3977 (lto_input_integer_cst): Declare.
3978 (lto_output_tree_header): Declare.
3979 (pack_value_fields): Declare.
3980 (lto_output_tree_pointers): Declare.
3981 (lto_output_integer_cst): Declare.
3982 (lto_output_builtin_tree): Declare.
3983
ca31ca94
SG
39842011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
3985
3986 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
3987 only if producer writes to the register given by regno.
3988
f0898307
SG
39892011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
3990 Alexander Monakov <amonakov@ispras.ru>
3991
3992 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
3993 (sched_get_condition_with_rev_uncached): ... this. Factor out
3994 condition caching logic into ...
3995 (sched_get_condition_with_rev): ... this. Reimplement. Do not
3996 attempt to use cache for instructions with zero luid.
3997 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
3998 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
3999
0d9439b0
SG
40002011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
4001
4002 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
4003 get_seqno_for_a_jump. Update the caller.
4004 (get_seqno_by_succs): New. Use it ...
4005 (get_seqno_for_a_jump): ... here to find a seqno if looking at
4006 predecessors was not sufficient.
4007 (get_seqno_by_preds): Include head in iteration range, exclude insn.
4008
5c416724
DM
40092011-08-11 Dmitry Melnik <dm@ispras.ru>
4010
4011 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
4012
cf3d5824
SG
40132011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
4014
4015 * sel-sched-ir.h (register_unavailable_p): Declare.
4016 * sel-sched-ir.c (register_unavailable_p): New. Use it...
4017 (set_unavailable_target_for_expr): ... here to properly test
4018 availability of a register.
4019 (speculate_expr): Ditto.
4020 * sel-sched.c (substitute_reg_in_expr): Ditto.
4021 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
4022
944499ed
SG
40232011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
4024
4025 * sel-sched.c (verify_target_availability): Fix usage of
4026 hard_regno_nregs.
4027
6bf2d156
DM
40282011-08-11 Dmitry Melnik <dm@ispras.ru>
4029
4030 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
4031 recognized by cannot_copy_insn_p hook and volatile instructions.
4032
bf3a40e9
DM
40332011-08-11 Dmitry Melnik <dm@ispras.ru>
4034
4035 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
4036
f9bf5a8e
RS
40372011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
4038
4039 * doc/md.texi (define_bypass): Say that the instruction names can
4040 be filename-style globs.
4041 * Makefile.in (FNMATCH_H): Define.
4042 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
4043 * genattrtab.c: Include fnmatch.h.
4044 (bypass_list): Change field name from "insn" to "pattern".
4045 (gen_bypass_1): Update accordingly.
4046 (process_bypasses): Use fnmatch to check for matches between
4047 insn reservations and define_bypasses.
4048 * genautomata.c: Include fnmatch.h.
4049 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
4050 and out_pattern respectively.
4051 (gen_bypass, insert_bypass): Update accordingly.
4052 (for_each_matching_insn, process_bypass_2, process_bypass_1)
4053 (process_bypass): New functions.
4054 (process_decls): Use process_bypass. Update after field name changes.
4055
7ece3881 40562011-08-11 Georg-Johann Lay <avr@gjlay.de>
78926be1 4057
7ece3881
GJL
4058 PR target/49687
4059 * config/avr/avr.md (smulqi3_highpart): New insn.
4060 (umulqi3_highpart): New insn.
4061 (*subqi3.ashiftrt7): New insn.
4062 (smulhi3_highpart): New expander.
4063 (umulhi3_highpart): Nex expander.
4064 (*smulhi3_highpart_call): New insn.
4065 (*umulhi3_highpart_call): New insn.
4066 (extend_u): New code attribute.
4067 (extend_prefix): Rename code attribute to extend_su.
4068 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
4069 widening QI/HI multiply.
4070
fb2c2b16
IR
40712011-08-11 Ira Rosen <ira.rosen@linaro.org>
4072
4073 PR tree-optimization/50039
4074 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
4075 that DEF_STMT has a stmt_vec_info.
4076
b126811e
RG
40772011-08-10 Richard Guenther <rguenther@suse.de>
4078
4079 * tree.h (can_trust_pointer_alignment): Remove.
4080 * builtins.c (can_trust_pointer_alignment): Remove.
4081
0e3a99ae
AS
40822011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
4083
4084 * c-typeck.c (scalar_to_vector): New function. Try scalar to
4085 vector conversion.
4086 (stv_conv): New enum for scalar_to_vector return type.
4087 (build_binary_op): Adjust.
4088 * doc/extend.texi: Description of scalar to vector expansion.
4089
0eb77834
RG
40902011-08-10 Richard Guenther <rguenther@suse.de>
4091
4092 * tree.h (get_pointer_alignment): Remove max-align argument.
4093 (get_object_alignment): Likewise.
4094 * builtins.c (get_object_alignment_1): Adjust.
4095 (get_object_alignment): Remove max-align argument.
4096 (get_pointer_alignment): Likewise.
4097 (expand_builtin_strlen): Adjust.
4098 (expand_builtin_memcpy): Likewise.
4099 (expand_builtin_mempcpy_args): Likewise.
4100 (expand_builtin_strncpy): Likewise.
4101 (expand_builtin_memset_args): Likewise.
4102 (expand_builtin_memcmp): Likewise.
4103 (expand_builtin_strcmp): Likewise.
4104 (expand_builtin_strncmp): Likewise.
4105 (get_builtin_sync_mem): Likewise.
4106 (fold_builtin_memset): Likewise.
4107 (fold_builtin_memory_op): Likewise.
4108 (expand_builtin_memory_chk): Likewise.
4109 * emit-rtl.c (get_mem_align_offset): Likewise.
4110 (set_mem_attributes_minus_bitpos): Likewise.
4111 * expr.c (expand_assignment): Likewise.
4112 (expand_expr_real_1): Likewise.
4113 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
4114 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
4115 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
4116 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
4117 * value-prof.c (gimple_stringops_transform): Likewise.
4118
1c7836f0
PM
41192011-08-10 Paulo J. Matos <paulo.matos@csr.com>
4120
4121 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
4122 * doc/tm.texi: Regenerate.
4123
4ada410b 41242011-08-10 Georg-Johann Lay <avr@gjlay.de>
88b590c5 4125
4ada410b
GJL
4126 PR target/29560
4127 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
4128 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
4129 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
4130 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
4131 shift target is unused.
4132
d1f4e15f
RG
41332011-08-10 Richard Guenther <rguenther@suse.de>
4134
4135 PR tree-optimization/49937
4136 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
4137 using get_object_alignment_1.
4138
2813f1b1
UB
41392011-08-09 Uros Bizjak <ubizjak@gmail.com>
4140
4141 * config/i386/i386.c (ix86_emit_i387_round): New function.
4142 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
4143 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
4144 Use ix86_emit_i387_round to expand round function for i387 math.
4145 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
4146 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
4147
c6412d86
RO
41482011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4149
4150 * config/sync.c: Move to ../libgcc.
2813f1b1 4151 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
c6412d86
RO
4152 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
4153 Remove.
4154
6e9ee54c
AS
41552011-08-09 Anatoly Sokolov <aesok@post.ru>
4156
4157 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
4158 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
4159 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
4160 Change 'from' and 'to' arguments type to reg_class_t.
4161 (TARGET_REGISTER_MOVE_COST): Define.
4162
394b1520
VM
41632011-08-09 Vladimir Makarov <vmakarov@redhat.com>
4164
4165 PR target/50026
4166 Revert:
4167 PR rtl-optimization/49990
4168 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
4169 ignore classes which can not change mode.
4170 (find_costs_and_classes): Ditto.
4171
4001900f
RG
41722011-08-09 Richard Guenther <rguenther@suse.de>
4173
4174 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
4175 information for ranges with only negative values.
4176 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
4177 BIT_AND_EXPR handling to handle ranges with negative values.
4178
6cf9eb27
KY
41792011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
4180
88b590c5
UB
4181 * config/i386/i386.c: Remove traling spaces.
4182 * config/i386/sse.md: Likewise.
4183 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
4184 (*fma_fmsub_<mode>): Likewise.
4185 (*fma_fnmadd_<mode>): Likewise.
4186 (*fma_fnmsub_<mode>): Likewise.
6cf9eb27 4187
d6257cf0
NC
41882011-08-09 Nick Clifton <nickc@redhat.com>
4189
4190 * config/rx/rx.md: Disable extender peepholes at -O3.
4191
3968b050
UB
41922011-08-09 Uros Bizjak <ubizjak@gmail.com>
4193
4194 PR target/49781
4195 * config/i386/i386.md (reload_noff_load): New.
4196 (reload_noff_store): Ditto.
4197 * config/i386/i386.c (ix86_secondary_reload): Use
4198 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
4199 double-word moves from/to non-offsetable addresses instead of
4200 generating XMM temporary.
4201
2292df60
AS
42022011-08-09 Anatoly Sokolov <aesok@post.ru>
4203
4204 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
4205
1684ca6b
IR
42062011-08-09 Ira Rosen <ira.rosen@linaro.org>
4207
4208 PR tree-optimization/50014
4209 * tree-vect-loop.c (vectorizable_reduction): Get def type before
4210 calling vect_get_vec_def_for_stmt_copy ().
4211
40118062
VM
42122011-08-08 Vladimir Makarov <vmakarov@redhat.com>
4213
4214 PR rtl-optimization/49990
4215 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
4216 ignore classes which can not change mode.
4217 (find_costs_and_classes): Ditto.
4218
8714c21f
RH
42192011-08-08 Richard Henderson <rth@redhat.com>
4220
4221 PR middle-end/49990
4222 * config/i386/i386.c (ix86_expand_prologue): Call
4223 for SEH target gen_prologue_use instead of gen_blockage
4224 at prologue's end.
4225
1ad663a8
MJ
42262011-08-08 Martin Jambor <mjambor@suse.cz>
4227
4228 PR middle-end/49923
4229 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
4230 memory alignment.
4231
f0efc7aa
DN
42322011-08-08 Diego Novillo <dnovillo@google.com>
4233
4234 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
4235 (DATA_STREAMER_H): New.
4236 (GIMPLE_STREAMER_H): New.
4237 (TREE_STREAMER_H): New.
4238 (STREAMER_HOOKS_H): New.
4239 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
4240 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
4241 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
4242 (data-streamer.o): New.
4243 (data-streamer-in.o): New.
4244 (data-streamer-out.o): New.
4245 (gimple-streamer-in.o): New.
4246 (gimple-streamer-out.o): New.
4247 (streamer-hooks.o): New.
4248 (tree-streamer.o): New.
4249 (tree-streamer-in.o): New.
4250 (tree-streamer-out.o): New.
3968b050 4251 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
4252 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
4253 GIMPLE_STREAMER_H and TREE_STREAMER_H.
4254 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
4255 GIMPLE_STREAMER_H and TREE_STREAMER_H.
4256 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
3968b050 4257 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
4258 (ipa-inline-analysis.o): Likewise.
4259 (ipa-pure-const.o): Likewise.
4260 * data-streamer-in.c: New.
4261 * data-streamer-out.c: New.
4262 * data-streamer.c: New.
4263 * data-streamer.h: New.
4264 * gimple-streamer-in.c: New.
4265 * gimple-streamer-out.c: New.
4266 * gimple-streamer.h: New.
4267 * ipa-inline-analysis.c: Include data-streamer.h.
4268 * ipa-prop.c: Include data-streamer.h.
4269 * ipa-pure-const.c: Include data-streamer.h.
4270 * lto-cgraph.c: Include data-streamer.h.
4271 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
4272 (lto_input_widest_uint_uleb128): Likewise.
4273 (lto_input_sleb128): Likewise.
4274 (bp_unpack_var_len_unsigned): Likewise.
4275 (bp_unpack_var_len_int): Likewise.
4276 * lto-section-out.c (lto_output_uleb128_stream): Move to
4277 data-streamer-out.c.
4278 (lto_output_widest_uint_uleb128_stream): Likewise.
4279 (lto_output_sleb128_stream): Likewise.
4280 (bp_pack_var_len_unsigned): Likewise.
4281 (bp_pack_var_len_int): Likewise.
3968b050 4282 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
f0efc7aa
DN
4283 (struct string_slot): Remove. Update all users.
4284 (lto_tag_check_set): Make extern.
4285 (lto_tag_check_range): Move to lto-streamer.h.
4286 (lto_tag_check): Likewise.
4287 (hash_string_slot_node): Remove. Update all users.
4288 (eq_string_slot_node): Remove. Update all users.
4289 (string_for_index): Move to data-streamer-in.c
4290 (input_string_internal): Likewise.
4291 (input_string_cst): Move to tree-streamer-in.c.
4292 (input_identifier): Likewise.
4293 (lto_input_string): Move to data-streamer-in.c
4294 (input_record_start): Move to data-streamer.h
4295 (canon_file_name): Use new definition of struct string_slot
3968b050 4296 from data-streamer.h. Set S_SLOT.LEN.
f0efc7aa
DN
4297 (lto_input_location): Make extern.
4298 (lto_input_chain): Move to tree-streamer-in.c.
4299 (lto_init_eh): Make extern.
4300 (input_phi): Move to gimple-streamer-in.c.
4301 (input_gimple_stmt): Likewise.
4302 (input_bb): Likewise.
4303 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
4304 (unpack_ts_real_cst_value_fields): Likewise.
4305 (unpack_ts_fixed_cst_value_fields): Likewise.
4306 (unpack_ts_decl_common_value_fields): Likewise.
4307 (unpack_ts_decl_wrtl_value_fields): Likewise.
4308 (unpack_ts_decl_with_vis_value_fields): Likewise.
4309 (unpack_ts_function_decl_value_fields): Likewise.
4310 (unpack_ts_type_common_value_fields): Likewise.
4311 (unpack_ts_block_value_fields): Likewise.
4312 (unpack_ts_translation_unit_decl_value_fields): Likewise.
4313 (unpack_value_fields): Likewise.
4314 (lto_materialize_tree): Likewise.
4315 (lto_input_ts_common_tree_pointers): Likewise.
4316 (lto_input_ts_vector_tree_pointers): Likewise.
4317 (lto_input_ts_complex_tree_pointers): Likewise.
4318 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
4319 (lto_input_ts_decl_common_tree_pointers): Likewise.
4320 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
4321 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
4322 (lto_input_ts_field_decl_tree_pointers): Likewise.
4323 (lto_input_ts_function_decl_tree_pointers): Likewise.
4324 (lto_input_ts_type_common_tree_pointers): Likewise.
4325 (lto_input_ts_type_non_common_tree_pointers): Likewise.
4326 (lto_input_ts_list_tree_pointers): Likewise.
4327 (lto_input_ts_vec_tree_pointers): Likewise.
4328 (lto_input_ts_exp_tree_pointers): Likewise.
4329 (lto_input_ts_block_tree_pointers): Likewise.
4330 (lto_input_ts_binfo_tree_pointers): Likewise.
4331 (lto_input_ts_constructor_tree_pointers): Likewise.
4332 (lto_input_ts_target_option): Likewise.
4333 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
4334 (lto_input_tree_pointers): Likewise.
4335 (lto_get_pickled_tree): Likewise.
4336 (lto_get_builtin_tree): Likewise.
4337 (lto_read_tree): Likewise.
4338 (lto_input_integer_cst): Likewise.
4339 (lto_input_tree): Likewise.
4340 * lto-streamer-out.c: Include data-streamer.h,
4341 gimple-streamer.h and streamer-hooks.h.
4342 (struct string_slot): Move to data-streamer.h.
4343 (hash_string_slot_node): Likewise.
4344 (eq_string_slot_node): Likewise.
4345 (lto_string_index): Move to data-streamer-out.c.
4346 (lto_output_string_with_length): Likewise.
4347 (lto_output_string): Likewise.
4348 (output_string_cst): Move to tree-streamer-out.c.
4349 (output_identifier): Likewise.
4350 (output_zero): Move to data-streamer-out.c
4351 (output_uleb128): Likewise.
4352 (output_sleb128): Likewise.
4353 (output_record_start): Move to data-streamer.h
4354 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
4355 (pack_ts_real_cst_value_fields): Likewise.
4356 (pack_ts_fixed_cst_value_fields): Likewise.
4357 (pack_ts_decl_common_value_fields): Likewise.
4358 (pack_ts_decl_wrtl_value_fields): Likewise.
4359 (pack_ts_decl_with_vis_value_fields): Likewise.
4360 (pack_ts_function_decl_value_fields): Likewise.
4361 (pack_ts_type_common_value_fields): Likewise.
4362 (pack_ts_block_value_fields): Likewise.
4363 (pack_ts_translation_unit_decl_value_fields): Likewise.
4364 (pack_value_fields): Likewise.
4365 (lto_output_chain): Likewise.
4366 (lto_output_ts_common_tree_pointers): Likewise.
4367 (lto_output_ts_vector_tree_pointers): Likewise.
4368 (lto_output_ts_complex_tree_pointers): Likewise.
4369 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
4370 (lto_output_ts_decl_common_tree_pointers): Likewise.
4371 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
4372 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
4373 (lto_output_ts_field_decl_tree_pointers): Likewise.
4374 (lto_output_ts_function_decl_tree_pointers): Likewise.
4375 (lto_output_ts_type_common_tree_pointers): Likewise.
4376 (lto_output_ts_type_non_common_tree_pointers): Likewise.
4377 (lto_output_ts_list_tree_pointers): Likewise.
4378 (lto_output_ts_vec_tree_pointers): Likewise.
4379 (lto_output_ts_exp_tree_pointers): Likewise.
4380 (lto_output_ts_block_tree_pointers): Likewise.
4381 (lto_output_ts_binfo_tree_pointers): Likewise.
4382 (lto_output_ts_constructor_tree_pointers): Likewise.
4383 (lto_output_ts_target_option): Likewise.
4384 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
4385 (lto_output_tree_pointers): Likewise.
4386 (lto_output_tree_header): Likewise.
4387 (lto_output_builtin_tree): Likewise.
4388 (lto_write_tree): Likewise.
4389 (lto_output_integer_cst): Likewise.
4390 (lto_output_tree): Likewise.
4391 (output_phi): Move to gimple-streamer-out.c.
4392 (output_gimple_stmt): Likewise.
4393 (output_bb): Likewise.
4394 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
4395 (streamer_hooks): Move to streamer-hooks.c.
4396 (check_handled_ts_structures): Move to tree-streamer.c
4397 (lto_streamer_cache_add_to_node_array): Likewise.
4398 (lto_streamer_cache_insert_1): Likewise.
4399 (lto_streamer_cache_insert): Likewise.
4400 (lto_streamer_cache_insert_at): Likewise.
4401 (lto_streamer_cache_append): Likewise.
4402 (lto_streamer_cache_lookup): Likewise.
4403 (lto_streamer_cache_get): Likewise.
4404 (lto_record_common_node): Likewise.
4405 (lto_preload_common_nodes): Likewise.
4406 (lto_streamer_cache_create): Likewise.
4407 (lto_streamer_cache_delete): Likewise.
4408 (streamer_hooks_init): Move to streamer-hooks.c.
4409 * lto-streamer.h: Include diagnostic.h
4410 (struct output_block, struct lto_input_block,
3968b050 4411 struct data_in, struct bitpack_d): Remove forward declarations.
f0efc7aa
DN
4412 (struct bitpack_d): Move to data-streamer.h.
4413 (struct lto_streamer_cache_d): Move to tree-streamer.h.
4414 (struct streamer_hooks): Move to streamer-hooks.h.
4415 (bp_pack_var_len_unsigned): Move to data-streamer.h.
4416 (bp_pack_var_len_int): Likewise.
4417 (bp_unpack_var_len_unsigned): Likewise.
4418 (bp_unpack_var_len_int): Likewise.
4419 (lto_input_location): Declare.
4420 (lto_tag_check_set): Declare.
4421 (lto_init_eh): Declare.
4422 (lto_output_tree_ref): Declare.
4423 (lto_output_location): Declare.
4424 (bitpack_create): Move to data-streamer.h.
4425 (bp_pack_value): Likewise.
4426 (lto_output_bitpack): Likewise.
4427 (lto_input_bitpack): Likewise.
4428 (bp_unpack_value): Likewise.
4429 (lto_output_1_stream): Likewise.
4430 (lto_input_1_unsigned): Likewise.
4431 (lto_output_int_in_range): Likewise.
4432 (lto_input_int_in_range): Likewise.
4433 (bp_pack_int_in_range): Likewise.
4434 (bp_unpack_int_in_range): Likewise.
4435 (lto_output_enum): Likewise.
4436 (lto_input_enum): Likewise.
4437 (bp_pack_enum): Likewise.
4438 (bp_unpack_enum): Likewise.
4439 * streamer-hooks.c: New.
4440 * streamer-hooks.h: New.
4441 * tree-streamer-in.c: New.
4442 * tree-streamer-out.c: New.
4443 * tree-streamer.c: New.
4444 * tree-streamer.h: New.
4445
ddaad3c8
RO
44462011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4447
4448 * gthr-posix95.h: Remove.
4449 * gthr.h [_PTHREADS95]: Remove.
4450 * configure.ac (enable_threads): Remove posix95.
4451 * configure: Regenerate.
3968b050 4452 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
ddaad3c8 4453
3968b050 44542011-08-08 Uros Bizjak <ubizjak@gmail.com>
473b30ce
UB
4455
4456 PR target/49781
4457 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
4458 SImode addresses.
4459 (ix86_print_operand_address): Handle zero-extended addresses.
4460 (memory_address_length): Add length of addr32 prefix for
4461 zero-extended addresses.
4462 (ix86_secondary_reload): Handle moves to/from double-word general
4463 registers from/to zero-extended addresses.
4464 * config/i386/predicates.md (lea_address_operand): Reject
4465 zero-extended operands.
4466
cca2207a
L
44672011-08-08 H.J. Lu <hongjiu.lu@intel.com>
4468
4469 PR other/48007
473b30ce 4470 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
cca2207a
L
4471
4472 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
4473 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
4474
4475 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
4476 (_Unwind_Context_Reg_Val): Likewise.
4477 (_Unwind_Get_Unwind_Word): Likewise.
4478 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
4479 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
4480 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
4481 for EXTENDED_CONTEXT_BIT.
4482 (__frame_state_for): Likewise.
4483 (uw_init_context_1): Likewise.
4484 (_Unwind_GetGR): Updated.
4485 (_Unwind_SetGR): Likewise.
4486 (_Unwind_GetGRPtr): Likewise.
4487 (_Unwind_SetGRPtr): Likewise.
4488 (_Unwind_SetGRValue): Likewise.
4489 (_Unwind_GRByValue): Likewise.
4490 (uw_install_context_1): Likewise.
4491
4492 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
4493 ASSUME_EXTENDED_UNWIND_CONTEXT.
4494 * doc/tm.texi: Regenerated.
4495
b6ee5bef
RO
44962011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4497
4498 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
4499
46135ba7
RO
45002011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4501
4502 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
4503 Linux/GNU-specific.
4504 (DEC Alpha Options, -mtune): Likewise.
4505 (MIPS Options, -march): native is supported on IRIX.
4506
e3b3fa45
RO
45072011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4508
4509 * config/sparc/driver-sparc.c: New file.
4510 * config/sparc/x-sparc: New file.
473b30ce
UB
4511 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
4512 * config/sparc/sparc.opt (native): New value for enum processor_type.
e3b3fa45
RO
4513 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
4514 * config/sparc/sparc.c (sparc_option_override): Abort if
4515 PROCESSOR_NATIVE gets here.
4516 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
4517 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
4518 DRIVER_SELF_SPECS): Define.
4519 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
4520 (SPARC Options, -mtune): Likewise.
4521 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
4522 Substitute result.
4523 * configure: Regenerate.
4524 * Makefile.in (EXTRA_GCC_LIBS): Set.
4525 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
4526 (cpp$(exeext)): Likewise.
4527
ce6bfa50
RG
45282011-08-08 Richard Guenther <rguenther@suse.de>
4529
4530 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
4531 split out from ...
4532 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
4533 by composition.
4534
daae4650
MP
45352011-08-08 Mikael Pettersson <mikpe@it.uu.se>
4536
4537 PR tree-optimization/50005
4538 * ipa-inline-analysis (remap_predicate): Add cast to
4539 silence signed/unsigned comparison warning.
4540
3e762578
RS
45412011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
4542
4543 * modulo-sched.c (get_sched_window): Use a table for the debug output.
4544 Print the current ii.
4545 (sms_schedule_by_order): Reduce whitespace in dump line.
4546
fe43febc
RS
45472011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
4548
4549 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
4550 and one loop for successors. Fix upper bound of memory range.
4551
1e46eb2a
UB
45522011-08-06 Uros Bizjak <ubizjak@gmail.com>
4553
4554 PR target/50001
4555 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
4556 (TARGET_INSTANTIATE_DECLS): New define.
4557
cc3801b0 45582011-08-06 Paolo Bonzini <bonzini@gnu.org>
473b30ce 4559 Mikael Morin <mikael.morin@sfr.fr>
cc3801b0
PB
4560
4561 * Makefile.in (INCLUDES_FOR_TARGET): New.
4562 (LIBGCC2_CFLAGS): Use it.
1e46eb2a 4563 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
cc3801b0 4564
f68c9aa8
UB
45652011-08-06 Uros Bizjak <ubizjak@gmail.com>
4566
4567 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
4568 frame->save_regs_using_mov calculation.
4569
cd7c6bc5
UB
45702011-08-06 Uros Bizjak <ubizjak@gmail.com>
4571
4572 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
4573 * config/i386/sse.md (castmode): New mode attribute.
4574 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
4575 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
4576
9911e25a
JH
45772011-08-05 Jan Hubicka <jh@suse.cz>
4578
4579 PR middle-end/49494
4580 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
4581
75d3e6e3
JH
45822011-08-05 Jan Hubicka <jh@suse.cz>
4583
4584 PR middle-end/49500
4585 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
4586 handle aliases.
4587 (create_emultls_var):New function.
4588 (ipa_lower_emutls): Handle aliases correctly.
4589
f791d333
JH
45902011-08-05 Jan Hubicka <jh@suse.cz>
4591
4592 PR middle-end/49735
4593 * ipa-inline.c (recursive_inlining): Look through aliases.
4594
f93b21e2
JM
45952011-08-05 Jason Merrill <jason@redhat.com>
4596
4597 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
4598 declarations to beginning of function.
4599
2c331232
BS
46002011-08-05 Bernd Schmidt <bernds@codesourcery.com>
4601
4602 PR rtl-optimization/49900
4603 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
4604 ensure basic blocks stay in the same order.
4605
44e95206
AH
46062011-08-05 Aldy Hernandez <aldyh@redhat.com>
4607
4608 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
4609 store_bit_field.
4610 (s390_expand_atomic): Same.
4611
6fe818aa
RH
46122011-08-05 Richard Henderson <rth@redhat.com>
4613
4614 PR rtl-opt/49977
4615 * dwarf2cfi.c (scan_insn_after): Split out of ...
4616 (scan_trace): ... here. Correctly place notes wrt sequences.
4617
7ac17442
KK
46182011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
4619 Richard Henderson <rth@redhat.com>
4620
4621 PR rtl-opt/49982
4622 * expr.c (fixup_args_size_notes): Look through no-op moves.
4623
24911a50
UB
46242011-08-05 Uros Bizjak <ubizjak@gmail.com>
4625
4626 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
4627 of "m" for operand 0. Add type and mode attribute.
4628 (*pushxf_nointeger"): Use "<" constraint for operand 0.
4629 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
4630 constraint instead of "o" for opreand 1.
4631 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
42443bdb
UB
4632 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
4633 operand 0, alternative 4.
4634 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
24911a50
UB
4635
46362011-08-05 Uros Bizjak <ubizjak@gmail.com>
4637
4638 * config/i386/predicates.md (lea_address_operand): Rename from
4639 no_seg_address_operand.
4640 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
4641 (*lea_1_zext): Ditto.
4642 (*lea_2): Ditto.
4643 (*lea_2_zext): Ditto.
4644
46452011-08-05 Uros Bizjak <ubizjak@gmail.com>
4646
4647 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
4648 parts.base and parts.index.
4649 * config/i386/predicates.md (aligned_operand): Ditto.
4650 (cmpxchg8b_pic_memory_operand): Ditto.
4651
aca0b0b3
RO
46522011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4653
4654 * config/soft-fp: Move to ../libgcc.
4655 * Makefile.in (SFP_MACHINE): Remove.
4656 (libgcc-support): Remove $(SFP_MACHINE) dependency.
4657 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
4658 * config/arm/t-arm-softfp: Move to
4659 ../libgcc/config/arm/t-softfp.
4660 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
4661 * config/c6x/t-c6x-softfp: Remove.
4662 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
4663 * config/i386/t-fprules-softfp: Move to
4664 ../libgcc/config/t-softfp-tf.
4665 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
4666 * config/ia64/t-fprules-softfp: Remove.
4667 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
4668 * config/lm32/t-fprules-softfp: Remove.
4669 * config/moxie/sfp-machine.h: Remove.
4670 * config/moxie/t-moxie-softfp: Remove.
4671 * config/rs6000/darwin-ldouble-format: Move to
4672 ../libgcc/config/rs6000/ibm-ldouble-format.
4673 * config/rs6000/darwin-ldouble.c: Move to
4674 ../libgcc/config/rs6000/ibm-ldouble.c
4675 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
4676 * config/rs6000/libgcc-ppc64.ver: Likewise.
4677 * config/rs6000/sfp-machine.h: Likewise.
4678 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
4679 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
4680 (LIB2FUNCS_EXTRA): Remove.
4681 (TARGET_LIBGCC2_CFLAGS): Remove.
4682 * config/rs6000/t-aix52: Likewise
4683 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
4684 $(srcdir)/config/rs6000/darwin-ldouble.c.
4685 (SHLIB_MAPFILES): Remove.
4686 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
4687 $(srcdir)/config/rs6000/darwin-ldouble.c.
4688 * config/rs6000/t-fprules-softfp: Move to
4689 ../libgcc/config/t-softfp-sfdf.
4690 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
4691 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
4692 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
4693 $(srcdir)/config/rs6000/darwin-ldouble.c.
4694 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
4695 * config/score/t-score-softfp: Remove.
4696 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
4697 soft-fp/t-softfp from tmake_file.
4698 (arm*-*-uclinux*): Likewise.
4699 (arm*-*-ecos-elf): Likewise.
4700 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
4701 (arm*-*-rtems*): Likewise.
4702 (arm*-*-elf): Likewise.
4703 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
4704 tmake_file.
4705 (moxie-*-uclinux*): Likewise.
4706 (moxie-*-rtems*): Likewise.
4707 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
4708 tmake_file.
4709 (lm32-*-rtems*): Likewise.
4710 (lm32-*-uclinux*): Likewise.
4711 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
4712 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
4713 (powerpc-*-linux*, powerpc64-*-linux*): Remove
4714 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
4715 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
4716 tmake_file.
4717 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
4718 tmake_file.
4719 (tic6x-*-uclinux): Likewise.
4720 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
4721 soft-fp/t-softfp from tmake_file.
4722 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
4723 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
4724 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
24911a50 4725 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
aca0b0b3
RO
4726 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
4727
569dc494
RO
47282011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4729
4730 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
24911a50 4731 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
569dc494
RO
4732 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
4733 TPBIT, TPBIT_FUNCS.
4734 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
4735 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
4736 Remove.
4737 * config/arm/t-vxworks: Likewise.
4738 * config/arm/t-wince-pe: Likewise.
4739 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
4740 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4741 * config/bfin/t-bfin-elf: Likewise.
4742 * config/bfin/t-bfin-linux: Likewise.
4743 * config/bfin/t-bfin-uclinux: Likewise.
4744 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
4745 Remove.
4746 * config/fr30/t-fr30: Likewise.
4747 * config/frv/t-frv: Likewise.
4748 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
4749 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4750 * config/m32c/t-m32c: Likewise.
4751 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
4752 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4753 * config/mcore/t-mcore: Likewise.
4754 * config/mep/t-mep: Likewise.
4755 * config/microblaze/t-microblaze: Likewise.
4756 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
4757 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4758 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
4759 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4760 * config/mn10300/t-linux: Remove.
4761 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4762 * config/pdp11/t-pdp11: Likewise.
4763 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
4764 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
4765 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4766 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
4767 * config/rs6000/t-aix52: Likewise.
4768 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
4769 $(srcdir)/config/rs6000/ppc64-fp.c.
4770 * config/rs6000/t-fprules-fpbit: Remove.
4771 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
4772 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4773 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
4774 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4775 * config/sparc/t-elf: Likewise.
4776 * config/sparc/t-leon: Likewise.
4777 * config/sparc/t-leon3: Likewise.
4778 * config/spu/t-spu-elf: Likewise.
4779 (DPBIT_FUNCS): Remove.
4780 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
4781 * config/v850/t-v850: Likewise.
4782 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
4783 (avr-*-*): Likewise.
4784 (h8300-*-rtems*): Set libgcc_tm_file.
4785 (h8300-*-elf*): Likewise.
4786 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
4787 tmake_file.
4788 (powerpc-*-eabisim*): Likewise.
4789 (powerpc-*-elf*): Likewise.
4790 (powerpc-*-eabialtivec*): Likewise.
4791 (powerpc-xilinx-eabi*): Likewise.
4792 (powerpc-*-eabi*): Likewise.
4793 (powerpc-*-rtems*): Likewise.
4794 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
4795 (powerpcle-*-elf*): Likewise.
4796 (powerpcle-*-eabisim*): Likewise.
4797 (powerpcle-*-eabi*): Likewise.
4798 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
4799 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
4800 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
4801 Remove.
4802
201cdb74
RO
48032011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4804
4805 * Makefile.in (UNWIND_H): Remove.
4806 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
4807 ../libgcc/Makefile.in.
4808 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
4809 (LIBUNWINDDEP): Remove.
4810 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
4811 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
4812 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
4813 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
4814 Don't copy $(UNWIND_H).
24911a50 4815 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
201cdb74
RO
4816 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
4817 * aclocal.m4: Regenerate.
4818 * configure: Regenerate.
4819 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
4820 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
4821 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
4822 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
4823 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
4824 * config/arm/libunwind.S, config/arm/pr-support.c,
4825 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
4826 ../libgcc/config/arm.
4827 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
4828 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
4829 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
4830 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
4831 ($(T)frvend$(objext)): Likewise.
4832 * config/ia64/t-glibc (LIB2ADDEH): Remove.
4833 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
4834 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
4835 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
4836 ../libgcc/config/ia64.
4837 * config/ia64/t-hpux (LIB2ADDEH): Remove.
4838 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
4839 * config/ia64/t-vms (LIB2ADDEH): Remove.
4840 * config/ia64/vms.h (UNW_IVMS_MODE,
4841 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
4842 * config/picochip/t-picochip (LIB2ADDEH): Remove.
4843 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
4844 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
4845 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
4846 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
4847 $(srcdir)/../libgcc to refer to unwinder sources.
4848 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
4849 * config/t-darwin (LIB2ADDEH): Remove.
4850 * config/t-freebsd (LIB2ADDEH): Remove.
4851 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
4852 * config/t-libunwind-elf: Move to ../libgcc/config.
4853 * config/t-linux (LIB2ADDEH): Remove.
4854 * config/t-sol2 (LIB2ADDEH): Remove.
4855 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
4856 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
4857
cee0d6d2
L
48582011-08-05 H.J. Lu <hongjiu.lu@intel.com>
4859
4860 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
4861
4862 * doc/invoke.texi: Document core-avx-i.
4863
96c891b3
RO
48642011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4865
4866 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
4867
2aacf3c3
IR
48682011-08-05 Ira Rosen <ira.rosen@linaro.org>
4869
4870 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
4871 result of multiple results reduction when extracting the final
4872 value using scalar code.
4873
0f36b2da
RG
48742011-08-05 Richard Guenther <rguenther@suse.de>
4875
4876 PR tree-optimization/49984
4877 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
4878
8b201bc5
RG
48792011-08-05 Richard Guenther <rguenther@suse.de>
4880
4881 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
4882 return true for constant integer ranges.
4883 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
4884 BIT_IOR_EXPR handling.
4885
c1ea7f07
KT
48862011-08-04 Kai Tietz <ktietz@redhat.com>
4887
4888 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
4889 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
4890
1107f3ae
IR
48912011-08-04 Ira Rosen <ira.rosen@linaro.org>
4892
4893 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
4894 pattern def statement, and its access macro.
4895 (NUM_PATTERNS): Set to 5.
4896 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
4897 pattern def statement.
4898 (vect_transform_loop): Likewise.
4899 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
4900 function vect_recog_over_widening_pattern ().
4901 (vect_operation_fits_smaller_type): New function.
4902 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
4903 Likewise.
4904 (vect_pattern_recog_1): Move the code that marks pattern
4905 statements to vect_mark_pattern_stmts (), and call it. Update
4906 documentation.
4907 * tree-vect-stmts.c (vect_supportable_shift): New function.
4908 (vect_analyze_stmt): Handle pattern def statement.
4909 (new_stmt_vec_info): Initialize pattern def statement.
4910
6394830f
RH
49112011-08-04 Richard Henderson <rth@redhat.com>
4912
4913 PR target/49964
4914 * config/i386/i386.c (ix86_expand_call): Don't create nested
4915 PARALLELs for TARGET_VZEROUPPER.
4916 (ix86_split_call_vzeroupper): Fix extraction of the original call.
4917 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
4918 recognize nested PARALLELs.
4919 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
4920 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
4921 *sibcall_value_pop_vzeroupper): Likewise.
4922
faf7a23d
RH
49232011-08-04 Richard Henderson <rth@redhat.com>
4924
4925 PR middle-end/49968
4926 * calls.c (expand_call): Use fixup_args_size_notes for
4927 emit_stack_restore.
4928 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
4929 in non-standard modes.
4930
84f405a1
JJ
49312011-08-04 Jakub Jelinek <jakub@redhat.com>
4932
4933 * gcc.c (self_spec): New variable.
4934 (static_specs): Add self_spec.
4935 (main): Call do_self_spec on "self_spec" specs after reading
4936 user specs files. Move compare_debug handling right after that.
4937
4d320da4
RG
49382011-08-04 Richard Guenther <rguenther@suse.de>
4939
4940 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
4941 (value_range_nonnegative_p): New function.
4942 (ssa_name_nonnegative_p): Use it.
4943 (value_range_constant_singleton): New function.
4944 (op_with_constant_singleton_value_range): Use it.
4945 (extract_range_from_binary_expr_1): New function, split out from ...
4946 (extract_range_from_binary_expr): ... this. Remove fallback
4947 constant folding done here.
4948
7e29ba60
RG
49492011-08-04 Richard Guenther <rguenther@suse.de>
4950
4951 PR tree-optimization/49806
4952 * tree-vrp.c (op_with_boolean_value_range_p): New function.
4953 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
4954 a new statement for a final conversion to bool.
4955
f142b5bc
RG
49562011-08-04 Romain Geissler <romain.geissler@gmail.com>
4957
4958 * gengtype-state.c: Include "bconfig.h" if
4959 GENERATOR_FILE is defined, "config.h" otherwise.
4960 * gengtype.c: Likewise.
4961 * gengtype-lex.l: Likewise.
4962 * gengtype-parse.c: Likewise.
4963 * Makefile.in (gengtype-lex.o-warn): New variable.
4964 (plugin_resourcesdir): Likewise.
4965 (plugin_bindir): Likewise.
4966 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
4967 (MOSTLYCLEANFILES): Add gengtype$(exeext).
4968 (native): Depend on gengtype$(exeext) is $enable_plugin
4969 is set to "yes".
4970 (gtype.state): Depend on s-gtype. Use temporary file.
4971 (gengtype-lex.o): New rule.
4972 (gengtype-parse.o): Likewise.
4973 (gengtype-state.o): Likewise.
4974 (gengtype$(exeext)): Likewise.
4975 (install-gengtype): Likewise.
4976 (gengtype.o): Likewise.
4977 (build/gengtype.o): Depend on version.h.
4978 (build/gengtype-state): Depend on double-int.h, version.h,
4979 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
4980 (install-plugin): Depend on install-gengtype.
4981
8dd00781
JJ
49822011-08-04 Jakub Jelinek <jakub@redhat.com>
4983
4984 PR middle-end/49905
4985 * tree.h (init_attributes): New prototype.
4986 * attribs.c (init_attributes): No longer static.
4987
6eb9142a
RR
49882011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4989
4990 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
4991 maybe_suffix.
4992
63a73071
DL
49932011-08-03 David Li <davidxl@google.com>
4994
4995 * tree-optimize.c (execute_fixup_cfg): Fix up entry
4996 outgoing edge counts after inlining.
4997
90037898
DL
49982011-08-03 David Li <davidxl@google.com>
4999
5000 * profile.c (compute_branch_probabilities): Compute
5001 function frequency after profile annotation.
5002
ea6c2b0e
AM
50032011-08-04 Alan Modra <amodra@gmail.com>
5004
5005 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
5006 use_backchain_to_restore_sp initialisation.
5007 (rs6000_legitimate_offset_address_p): Simplify offset test.
5008
4b39813a
RH
50092011-08-03 Richard Henderson <rth@redhat.com>
5010
5011 * config/spu/spu.md: Use define_c_enum instead of define_constants.
5012 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
5013 (UNSPECV_NOP): New.
5014
a6365e99
RH
50152011-08-03 Richard Henderson <rth@redhat.com>
5016
5017 PR target/34888
5018 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
5019
cb3d2e33
JJ
50202011-08-03 Jakub Jelinek <jakub@redhat.com>
5021
5022 PR tree-optimization/49948
5023 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
5024
35bdbc69
AS
50252011-08-03 Anatoly Sokolov <aesok@post.ru>
5026
5027 * config/m32c/m32c.c (class_sizes): Remove.
5028 (reduce_class): Change arguments and return type to reg_class_t.
5029 Change type cc var to HARD_REG_SET. Change type best var to
5030 reg_class_t. Change type best_size var to unsigned int. Remove
5031 initialization class_sizes var. Use reg_class_size array instead
5032 of class_sizes. Use reg_class_contents array instead
5033 of class_contents.
5034
a130fb24
RG
50352011-08-03 Richard Guenther <rguenther@suse.de>
5036
5037 PR middle-end/49958
5038 * fold-const.c (fold_binary_loc): Only associate
5039 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
5040 overflow wraps.
5041
276e0224
AM
50422011-08-03 Alan Modra <amodra@gmail.com>
5043
5044 PR rtl-optimization/49941
5045 * jump.c (mark_jump_label): Comment.
5046 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
5047 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
5048 (mark_used_flags): Don't mark RETURN.
5049
eb723fa3
RG
50502011-08-03 Richard Guenther <rguenther@suse.de>
5051
5052 PR tree-optimization/49938
5053 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
5054 deal with a POLYNOMIAL_CHREC.
5055
edc429ff
RE
50562011-08-03 Revital Eres <revital.eres@linaro.org>
5057
5058 * modulo-sched.c (calculate_stage_count,
5059 calculate_must_precede_follow, get_sched_window,
5060 try_scheduling_node_in_cycle, remove_node_from_ps): Add
5061 declaration.
5062 (update_node_sched_params, set_must_precede_follow, optimize_sc):
5063 New functions.
5064 (reset_sched_times): Call update_node_sched_params.
5065 (sms_schedule): Call optimize_sc.
5066 (get_sched_window): Change function arguments.
5067 (sms_schedule_by_order): Update call to get_sched_window.
5068 Call set_must_precede_follow.
5069 (calculate_stage_count): Add function argument.
5070
9a08d230
RH
50712011-08-02 Richard Henderson <rth@redhat.com>
5072
5073 PR target/49864
a3fef928 5074 PR target/49879
9a08d230
RH
5075 * reg-notes.def (REG_ARGS_SIZE): New.
5076 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
5077 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
5078 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
5079 different stack levels.
5080 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
5081 (maybe_move_args_size_note): New.
5082 (combine_stack_adjustments_for_block): Use it.
5083 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
5084 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
5085 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
5086 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
5087 (cur_cfa): New.
5088 (queued_args_size): Remove.
5089 (add_cfi_args_size): Assert size is non-negative.
5090 (stack_adjust_offset, dwarf2out_args_size): Remove.
5091 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
5092 (notice_args_size, notice_eh_throw): New.
5093 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
5094 (dwarf2out_frame_debug_adjust_cfa): Likewise.
5095 (dwarf2out_frame_debug_cfa_offset): Likewise.
5096 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
5097 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
5098 (change_cfi_row): Don't emit args_size.
5099 (maybe_record_trace_start_abnormal): Split out from ...
5100 (maybe_record_trace_start): Here. Set args_size_undefined.
5101 (create_trace_edges): Update to match.
5102 (scan_trace): Handle REG_ARGS_SIZE.
5103 (connect_traces): Connect args_size between EH insns.
5104 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
5105 * explow.c (suppress_reg_args_size): New.
5106 (adjust_stack_1): Split out from ...
5107 (adjust_stack): ... here.
5108 (anti_adjust_stack): Use it.
5109 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
5110 * expr.c (mem_autoinc_base): New.
5111 (fixup_args_size_notes): New.
5112 (emit_single_push_insn_1): Rename from emit_single_push_insn.
5113 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
5114 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
5115 * reload1.c (reload_as_needed): Likewise.
5116 * rtl.h (fixup_args_size_notes): Declare.
5117
9f813990
PC
51182011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
5119
5120 PR bootstrap/49914
5121 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
5122 of abs.
5123 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
5124 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
5125
8f1594b2
RH
51262011-08-02 Richard Henderson <rth@redhat.com>
5127
5128 * config/h8300/h8300.c (push, pop): Return the insn.
5129 (h8300_swap_into_er6): Generate correct unwind info.
5130 (h8300_swap_out_of_er6): Likewise.
cde7b553
RH
5131 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
5132 complex cfa expression.
5133 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
8f1594b2 5134
3ed2c643
L
51352011-08-02 H.J. Lu <hongjiu.lu@intel.com>
5136
5137 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
5138
f9b4f8c1
RH
51392011-08-02 Richard Henderson <rth@redhat.com>
5140
5141 PR target/49878
5142 * config/h8300/h8300.c (h8300_move_ok): New.
5143 * config/h8300/h8300-protos.h: Declare it.
5144 * config/h8300/h8300.md (P): New mode iterator.
5145 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
5146 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
5147 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
5148 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
5149 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
5150 and pushqi1_h8300hs_normal; use PRE_MODIFY and
5151 register_no_sp_elim_operand.
5152 (*pushhi1_h8300hs_<P>): Similarly.
5153 (pushqi1, pushhi1, pushhi1_h8300): Remove.
5154 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
5155
b7cef595
RH
51562011-08-02 Richard Henderson <rth@redhat.com>
5157
5158 PR target/49881
5159 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
5160
20906c66
JJ
51612011-08-02 Jakub Jelinek <jakub@redhat.com>
5162
5163 * c-parser.c (enum c_parser_prec): New enum, moved from within
5164 c_parser_binary_expression.
5165 (c_parser_binary_expression): Add PREC argument. Stop parsing
5166 if operator has lower or equal precedence than PREC.
5167 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
5168 callers.
5169 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
5170 Adjust c_finish_omp_atomic caller.
5171 (c_parser_omp_taskyield): New function.
5172 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
5173 (c_parser_omp_clause_name): Handle final and mergeable clauses.
5174 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
5175 functions.
5176 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
5177 and PRAGMA_OMP_CLAUSE_MERGEABLE.
5178 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
5179 (c_parser_omp_clause_reduction): Handle min and max.
5180 * c-typeck.c (c_finish_omp_clauses): Don't complain about
5181 const qualified predetermined vars in firstprivate clause.
5182 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
5183 Handle MIN_EXPR and MAX_EXPR.
5184 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
5185 and OMP_CLAUSE_MERGEABLE.
5186 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
5187 and OMP_ATOMIC_CAPTURE_NEW.
5188 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
5189 OMP_CLAUSE_MERGEABLE.
5190 (omp_clause_code_name): Likewise.
5191 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
5192 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
5193 and OMP_CLAUSE_MERGEABLE.
5194 (OMP_CLAUSE_FINAL_EXPR): Define.
5195 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
5196 OMP_CLAUSE_MERGEABLE.
5197 (expand_task_call): Likewise.
5198 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
5199 (expand_omp_atomic_fetch_op): Handle cases where old or new
5200 value is needed afterwards.
5201 (expand_omp_atomic): Call expand_omp_atomic_load resp.
5202 expand_omp_atomic_store.
5203 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
5204 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
5205 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
5206 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
5207 * tree-nested.c (convert_nonlocal_omp_clauses,
5208 convert_local_omp_clauses): Likewise.
5209 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
5210 OMP_ATOMIC_CAPTURE_NEW): New.
5211 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
5212 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
5213 New inlines.
5214 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
5215 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
5216 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
5217
9b80d091
KT
52182011-08-02 Kai Tietz <ktietz@redhat.com>
5219
5220 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
5221 boolean-type.
5222 (ssa_forward_propagate_and_combine): Interprete result of
5223 forward_propagate_comparison.
5224 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
5225 boolean-typed operands for comparisons.
5226
7ea56b23 52272011-08-02 Georg-Johann Lay <avr@gjlay.de>
276e0224 5228
7ea56b23
GJL
5229 * config/avr/libgcc.S: Gather related function in the
5230 same input section.
276e0224 5231 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7ea56b23
GJL
5232 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
5233 references.
5234 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
5235 __udivmodsi4, __divmodsi4, __prologue_saves__,
5236 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
5237 __do_copy_data, __do_clear_bss, __do_global_ctors,
5238 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
5239
643e867f
UB
52402011-08-02 Uros Bizjak <ubizjak@gmail.com>
5241
5242 PR target/47766
5243 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
5244 (stack_protect_test): The pattern compares ptr_mode value.
5245
390fa588
AM
52462011-08-02 Alan Modra <amodra@gmail.com>
5247
5248 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
5249 note for save_LR_around_toc_setup sequence.
5250
d4be16f6
L
52512011-08-01 H.J. Lu <hongjiu.lu@intel.com>
5252
643e867f 5253 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
d4be16f6 5254
3c67fd9c
SP
52552011-08-01 Sebastian Pop <sebastian.pop@amd.com>
5256 Joseph Myers <joseph@codesourcery.com>
5257
5258 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
5259 * hwint.c: Include diagnostic-core.h.
5260 (abs_hwi): New.
5261 (gcd): Moved here...
5262 (pos_mul_hwi): New.
5263 (mul_hwi): New.
5264 (least_common_multiple): Moved here...
5265 * hwint.h (gcd): ... from here.
5266 (least_common_multiple): ... from here.
5267 (HOST_WIDE_INT_MIN): New.
5268 (HOST_WIDE_INT_MAX): New.
5269 (abs_hwi): Declared.
5270 (gcd): Declared.
5271 (pos_mul_hwi): Declared.
5272 (mul_hwi): Declared.
5273 (least_common_multiple): Declared.
5274 * omega.c (check_pos_mul): Removed.
5275 (check_mul): Removed.
5276 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
5277 mul_hwi instead of check_mul.
5278
172c08a5
RH
52792011-08-01 Richard Henderson <rth@redhat.com>
5280
5281 PR target/49881
5282 * config/avr/avr.h (PUSH_ROUNDING): New.
5283 * config/avr/avr.md (pushqi1): Rename from *pushqi.
5284 (*pushhi, *pushsi, *pushsf): Remove.
5285 (MPUSH): New mode iterator.
5286 (push<MPUSH>1): New expander.
5287
0d5e496f
AS
52882011-08-01 Anatoly Sokolov <aesok@post.ru>
5289
5290 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
5291 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
5292 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
5293 mmix_preferred_output_reload_class): Remove.
5294 * config/mmix/mmix.c (mmix_preferred_reload_class,
5295 mmix_preferred_output_reload_class): Make static. Change rclass
5296 argument and return type to reg_class_t.
5297 (TARGET_PREFERRED_RELOAD_CLASS,
5298 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5299
a44250f4
JR
53002011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
5301
5302 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
5303 handling.
5304
efd7630c
L
53052011-08-01 H.J. Lu <hongjiu.lu@intel.com>
5306
5307 PR target/47766
5308 * config/i386/i386.md (PTR): New.
5309 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
5310 (stack_protect_test): Likewise.
5311 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
5312 (stack_tls_protect_set_<mode>): Likewise.
5313 (stack_tls_protect_test_<mode>): Likewise.
5314
03acddfe
UB
53152011-08-01 Uros Bizjak <ubizjak@gmail.com>
5316
5317 PR target/49927
5318 * config/i386/i386.c (ix86_address_subreg_operand): New.
5319 (ix86_decompose_address): Use ix86_address_subreg_operand.
5320 (ix86_legitimate_address_p): Do not assert that subregs satisfy
5321 register_no_elim_operand in DImode.
5322
67f2d54f
IR
53232011-08-01 Ira Rosen <ira.rosen@linaro.org>
5324
5325 PR tree-optimization/49926
5326 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
5327 in a chain doesn't have uses both inside and outside the loop.
5328
f2c308fa 53292011-08-01 Georg-Johann Lay <avr@gjlay.de>
03acddfe 5330
f2c308fa
GJL
5331 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
5332 * config/avr/avr-devices.c (avr_mcu_types): Use it.
5333 * config/avr/avr-mcus.def (AVR_MCU): Use it.
5334 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
5335 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
5336 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
5337 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
5338 to detect if XJMP must not be skipped.
5339
bd15e32c
AM
53402011-08-02 Alan Modra <amodra@gmail.com>
5341
03acddfe
UB
5342 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
5343 Delete.
bd15e32c
AM
5344 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
5345 (rs6000_emit_prologue): Don't prematurely return when
5346 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
5347 save_toc_in_prologue case.
5348 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
5349 calls_alloca.
5350
d80de9e1 53512011-08-01 Georg-Johann Lay <avr@gjlay.de>
bd15e32c 5352
d80de9e1
GJL
5353 * config/avr/avr-devices.c: Delete SVN property svn:executable.
5354 * config/avr/predicates.md: Ditto.
5355 * config/avr/driver-avr.c: Ditto.
5356 * config/avr/genopt.sh: Set SVN property svn:executable to *.
5357
ee222ce0
L
53582011-08-01 H.J. Lu <hongjiu.lu@intel.com>
5359
5360 * calls.c (emit_library_call_value_1): Declare size only if
5361 BLOCK_REG_PADDING is defined.
5362
5fcafa60
KY
53632011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
5364
5365 PR target/49547
03acddfe 5366 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
5fcafa60
KY
5367 (x86_64-*-*): Likewise.
5368 * config/i386/i386.opt (mlzcnt): New.
5369 * config/i386/abmintrin.h: File removed.
5370 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
03acddfe 5371 * config/i386/lzcntintrin.h: ... here. New file.
5fcafa60
KY
5372 (__lzcnt): Rename to ...
5373 (__lzcnt32): ... this.
5374 * config/i386/bmiintrin.h (head): Update copyright year.
5375 (__lzcnt_u16): Removed.
5376 (__lzcnt_u32): Likewise.
5377 (__lzcnt_u64): Likewise.
5378 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
5379 is defined, remove abmintrin.h.
5380 * config/i386/cpuid.h (bit_LZCNT): New.
5381 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5382 LZCNT feature.
5383 * config/i386/i386-c.c (ix86_target_macros_internal): Define
5384 __LZCNT__ if needed.
5385 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
5386 (ix86_option_override_internal): Handle LZCNT option.
5387 (ix86_valid_target_attribute_inner_p): Likewise.
5388 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
5389 * config/i386/i386.h (TARGET_LZCNT): New.
5390 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
5391 * config/i386/i386.md (clz<mode>2): Update insn constraint.
5392 (clz<mode>2_lzcnt): Likewise.
5393 * doc/invoke.texi: Mention -mlzcnt option.
5394 * doc/extend.texi: Likewise.
5395
655b30bf
JB
53962011-08-01 Julian Brown <julian@codesourcery.com>
5397
5398 * configure.ac (fixed-point): Add ARM support.
5399 * configure: Regenerate.
5400 * config/arm/arm.c (arm_fixed_mode_set): New struct.
5401 (arm_set_fixed_optab_libfunc): New.
5402 (arm_set_fixed_conv_libfunc): New.
5403 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
5404 ARM-specific names.
5405 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
5406 return values in SImode.
5407 (arm_return_in_msb): Return fixed-point types in the msb.
5408 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
5409 upwards.
5410 (arm_scalar_mode_supported_p): Support fixed-point modes.
5411 (arm_vector_mode_supported_p): Support vector fixed-point modes.
5412 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
5413 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
5414 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
5415 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
5416 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
5417 New mode iterators.
5418 (qaddsub_suf): New mode attribute.
5419 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
5420 vector modes.
5421 * config/arm/predicates.md (sat_shift_operator): New predicate.
5422 * config/arm/arm-fixed.md: New.
5423 * config/arm/arm.md: Include arm-fixed.md.
5424 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
5425
460b171d
JB
54262011-08-01 Julian Brown <julian@codesourcery.com>
5427
5428 * calls.c (emit_library_call_value_1): Support padding for libcall
5429 arguments and return values.
5430 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
5431 downwards in big-endian mode.
5432
b6193c94
RO
54332011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5434
5435 PR debug/49887
5436 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
5437 * config/sol2-protos.h: Likewise.
5438 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
5439 solaris_code_end.
5440 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
5441 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
5442 solaris_file_end.
5443 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
5444
0747aae4
JB
54452011-08-01 Julian Brown <julian@codesourcery.com>
5446
5447 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
5448
848fac28
JB
54492011-08-01 Julian Brown <julian@codesourcery.com>
5450
5451 * final.c (output_addr_const): Print fixed-point constants as
5452 decimal not hex.
5453
e62a2b6e
RG
54542011-08-01 Richard Guenther <rguenther@suse.de>
5455
5456 * stor-layout.c (initialize_sizetypes): Properly sign-extend
5457 bitsiztype TYPE_MAX_VALUE.
5458
f64398b5
JB
54592011-08-01 Julian Brown <julian@codesourcery.com>
5460
5461 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
5462 comparison helpers.
5463
c469244e
RH
54642011-07-31 Richard Henderson <rth@redhat.com>
5465
5466 * config/h8300/crti.asm: Add flags to .section directive.
5467 * config/h8300/crtn.asm: Likewise.
5468
b87ac615
RH
54692011-07-31 Richard Henderson <rth@redhat.com>
5470
5471 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
5472 * tree.c (build_common_tree_nodes): Likewise.
5473
05eb5cc3
KK
54742011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
5475
5476 PR target/49880
5477 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
5478 (divsi3_i1): Likewise.
5479
a3059635
BS
54802011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5481
5482 PR tree-optimization/49749
5483 * tree-ssa-reassoc.c (get_rank): New forward declaration.
5484 (PHI_LOOP_BIAS): New macro.
5485 (phi_rank): New function.
5486 (loop_carried_phi): Likewise.
5487 (propagate_rank): Likewise.
5488 (get_rank): Add calls to phi_rank and propagate_rank.
bd15e32c 5489
3ee7be4c
L
54902011-07-31 H.J. Lu <hongjiu.lu@intel.com>
5491
5492 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
5493 of TARGET_64BIT.
5494 (PTRDIFF_TYPE): Likewise.
5495
deb1f617
UB
54962011-07-31 Uros Bizjak <ubizjak@gmail.com>
5497
5498 PR target/49920
5499 * config/i386/i386.md (strset): Do not expand strset_singleop
5500 when %eax or $edi are fixed.
5501 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
5502 (*strsetsi_1): Ditto.
5503 (*strsethi_1): Ditto.
5504 (*strsetqi_1): Ditto.
5505 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
5506 (*rep_stossi): Ditto.
5507 (*rep_stosqi): Ditto.
03acddfe 5508 (*strlenqi_1): Ditto.
deb1f617
UB
5509 (cmpstrnsi): Also fail when %ecx is fixed.
5510 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
5511 (*cmpstrnqi_1): Ditto.
deb1f617
UB
5512 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
5513 (*strmovsi_1): Ditto.
5514 (*strmovhi_1): Ditto.
5515 (*strmovqi_1): Ditto.
5516 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
5517 (*rep_movsi): Ditto.
5518 (*rep_movqi): Ditto.
5519
03e69b12
MP
55202011-07-31 Mikael Pettersson <mikpe@it.uu.se>
5521
5522 PR target/47908
5523 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
5524 Disable instruction scheduling for non-ColdFire targets.
5525 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
5526
dcaac07d
RE
55272011-07-31 Revital Eres <revital.eres@linaro.org>
5528
5529 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
5530 of anti-dep edge from a branch.
5531 (add_cross_iteration_register_deps): Create anti-dep edge from
5532 a branch.
5533
413e50a2
RE
55342011-07-31 Revital Eres <revital.eres@linaro.org>
5535
5536 * modulo-sched.c: Change comment.
5537 (reset_sched_times): Fix print message.
5538 (print_partial_schedule): Add print info.
5539
f047e518
TV
55402011-07-31 Tom de Vries <tom@codesourcery.com>
5541
5542 PR middle-end/43513
5543 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
5544 get_object_alignment and TYPE_ALIGN.
5545
b3421a06
TV
55462011-07-30 Tom de Vries <tom@codesourcery.com>
5547
5548 PR middle-end/43513
5549 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
5550 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
5551
cc822cc1
RO
55522011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5553
5554 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
5555 <sys/sbd.h>.
5556 (cpu_types): New array.
5557 (cputype): New function.
5558 (host_detect_local_cpu): Only define buf, f if !__sgi__.
5559 Use scaninvent instead of /proc/cpuinfo if __sgi__.
5560 * config.host: Also use driver-native.o, mips/x-native on
5561 mips-sgi-irix*.
deb1f617 5562 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
5563 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
5564 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
5565
25142650
JJ
55662011-07-29 Jakub Jelinek <jakub@redhat.com>
5567
5568 PR middle-end/49897
5569 PR middle-end/49898
5570 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
5571 in nested parallel and outer is a gimple_reg, mark it as addressable
5572 and set its bit in task_shared_vars bitmap too.
5573
89840058
UB
55742011-07-29 Uros Bizjak <ubizjak@gmail.com>
5575
5576 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
5577
d2da41f5
RO
55782011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5579
5580 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
5581 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
5582 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
5583 AMASK_LOCKPFTCHOK): Define.
5584 (host_detect_local_cpu): Remove buf, f, cpu_names.
5585 Define cpu_types, implver, amask.
5586 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
5587 native CPU.
5588 * config.host: Also use driver-alpha.o, alpha/x-alpha on
5589 alpha*-dec-osf*.
5590 * config/alpha/osf5.h [__alpha__ || __alpha]
5591 (host_detect_local_cpu): Declare.
5592 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
5593 (DRIVER_SELF_SPECS): Define.
5594
dadecee2
UB
55952011-07-29 Uros Bizjak <ubizjak@gmail.com>
5596
5597 PR target/47715
5598 * config/i386/i386.md (*load_tp_x32): New.
5599 (*load_tp_x32_zext): Ditto.
5600 (*add_tp_x32): Ditto.
5601 (*add_tp_x32_zext): Ditto.
5602 (*load_tp_<mode>): Disable for TARGET_X32 targets.
5603 (*add_tp_<mode>): Ditto.
5604 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
5605 ptr_mode and convert to Pmode if needed.
5606
db7ccee2 56072011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 5608
db7ccee2
GJL
5609 PR target/49687
5610 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
5611 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
5612 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
5613 Add X to register footprint: Clobber r26/r27.
5614
96d03496
RG
56152011-07-29 Richard Guenther <rguenther@suse.de>
5616
5617 * builtins.c (fold_builtin_signbit): Build the comparison
5618 with a proper type.
5619
64fb0d3a
RG
56202011-07-29 Richard Guenther <rguenther@suse.de>
5621
5622 PR tree-optimization/49893
5623 * tree-predcom.c (suitable_reference_p): Volatile references
5624 are not suitable.
5625
6130646b 56262011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 5627
6130646b
GJL
5628 PR target/49313
5629 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
5630 (__ctzsi2): Result for 0 may be undefined.
5631 (__ctzhi2): Result for 0 may be undefined.
5632 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
5633 (__popcountsi2): Ditto. And don't clobber r26.
5634 (__popcountdi2): Ditto. And don't clobber r27.
5635 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
5636 (parityhi2): New expand.
5637 (paritysi2): New expand.
5638 (popcounthi2): New expand.
5639 (popcountsi2): New expand.
5640 (clzhi2): New expand.
5641 (clzsi2): New expand.
5642 (ctzhi2): New expand.
5643 (ctzsi2): New expand.
5644 (ffshi2): New expand.
5645 (ffssi2): New expand.
5646 (copysignsf3): New insn.
5647 (bswapsi2): New expand.
5648 (*parityhi2.libgcc): New insn.
5649 (*parityqihi2.libgcc): New insn.
5650 (*paritysihi2.libgcc): New insn.
5651 (*popcounthi2.libgcc): New insn.
5652 (*popcountsi2.libgcc): New insn.
5653 (*popcountqi2.libgcc): New insn.
5654 (*popcountqihi2.libgcc): New insn-and-split.
5655 (*clzhi2.libgcc): New insn.
5656 (*clzsihi2.libgcc): New insn.
5657 (*ctzhi2.libgcc): New insn.
5658 (*ctzsihi2.libgcc): New insn.
5659 (*ffshi2.libgcc): New insn.
5660 (*ffssihi2.libgcc): New insn.
5661 (*bswapsi2.libgcc): New insn.
5662
a9b332d4
RG
56632011-07-29 Richard Guenther <rguenther@suse.de>
5664
5665 * tree-vrp.c (get_value_range): Only set parameter default
5666 definitions to varying, leave others at undefined.
5667 (extract_range_from_binary_expr): Fix undefined handling.
5668 (vrp_visit_phi_node): Handle merged undefined state.
5669
154516d9
WG
56702011-07-29 Wei Guozhi <carrot@google.com>
5671
5672 PR rtl-optimization/49799
5673 * combine.c (make_compound_operation): Check if the bit field is valid
5674 before change it to bit field extraction.
5675
e40a0b69
BS
56762011-07-29 Bernd Schmidt <bernds@codesourcery.com>
5677
5678 PR rtl-optimization/49891
5679 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
5680 newly created returnjumps.
5681
13a23442
DD
56822011-07-28 DJ Delorie <dj@redhat.com>
5683
69135c94
DD
5684 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
5685 local frame in a naked function, and produce a suitable error for
5686 that specific case.
5687
13a23442
DD
5688 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
5689 registers to be reloaded in HI classes when the target is HI.
5690
6c6c79a9
SP
56912011-07-28 Sebastian Pop <sebastian.pop@amd.com>
5692
5693 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
5694 bound_one, bound_two.
5695
0c43dbaf
SP
56962011-07-28 Sebastian Pop <sebastian.pop@amd.com>
5697
5698 PR middle-end/48648
5699 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
5700 CLAST assignments.
5701 (translate_clast): Same.
5702 (translate_clast_assignment): New.
5703
60cf26cc
SP
57042011-07-28 Sebastian Pop <sebastian.pop@amd.com>
5705
5706 PR tree-optimization/49876
5707 * sese.c (rename_uses): Do not return false on gloog_error: set
5708 the new_expr to integer_zero_node and continue code generation.
5709 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
5710
4fe249e7
JJ
57112011-07-28 Jakub Jelinek <jakub@redhat.com>
5712
5713 PR debug/49846
5714 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
5715 arguments also check if they aren't initialized with a MODE_INT
5716 mode of the same size.
5717
86f98641
AH
57182011-07-28 Aldy Hernandez <aldyh@redhat.com>
5719
5720 * expr.c (get_bit_range): Handle *MEM_REF's.
5721
dc0ff1c8
BS
57222011-07-28 Bernd Schmidt <bernds@codesourcery.com>
5723
5724 * rtlanal.c (tablejump_p): False for returns.
5725 * reorg.c (first_active_target_insn): New static function.
5726 (find_end_label): Set JUMP_LABEL for a new returnjump.
5727 (optimize_skip, get_jump_flags, rare_destination,
5728 mostly_true_jump, get_branch_condition,
5729 steal_delay_list_from_target, own_thread_p,
5730 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
5731 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
5732 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
5733 * jump.c (delete_related_insns): Likewise.
5734 (jump_to_label_p): New function.
5735 (redirect_target): New static function.
5736 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
5737 (redirect_jump_1): Assert that the new label is nonnull.
5738 (redirect_jump): Likewise.
5739 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
5740 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
5741 exit block.
5742 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
5743 changed. Ensure that the right label is passed to redirect_jump.
5744 * function.c (emit_return_into_block,
5745 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
5746 ret_rtx in their JUMP_LABEL.
5747 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
5748 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
5749 pass ret_rtx as label.
5750 * cfglayout.c (fixup_reorder_chain): Use
5751 force_nonfallthru_and_redirect rather than force_nonfallthru.
5752 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
5753 * rtl.h (ANY_RETURN_P): New macro.
5754 (jump_to_label_p): Declare.
5755 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
5756 JUMP_LABELs.
5757 (mark_target_live_regs): Likewise.
5758 * basic-block.h (force_nonfallthru_and_redirect): Declare.
5759 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
5760 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
5761 alpha_tablejump_best_label): Remove functions.
5762 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
5763 alpha_tablejump_best_label): Remove declarations.
5764 * config/sh/sh.c (barrier_align, split_branches): Adjust for
5765 ret_rtx in JUMP_LABELs.
5766 * config/arm/arm.c (is_jump_table): Likewise.
5767
a2e49bb2
UB
57682011-07-28 Uros Bizjak <ubizjak@gmail.com>
5769
5770 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
5771 special predicate. Remove explicit mode checks.
5772
64153cce
JJ
57732011-07-28 Jakub Jelinek <jakub@redhat.com>
5774
a2e49bb2
UB
5775 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
5776 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 5777
64153cce
JJ
5778 PR debug/49871
5779 * dwarf2out.c (size_of_die, value_format, output_die): Use
5780 DW_FORM_udata instead of DW_FORM_data[48] for
5781 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
5782
0465f4f8
L
57832011-07-28 H.J. Lu <hongjiu.lu@intel.com>
5784
844bf05b
UB
5785 * config/i386/i386.md (*tls_global_dynamic_64): Update
5786 length attribute.
0465f4f8 5787
f51c4a8a
UB
57882011-07-28 Uros Bizjak <ubizjak@gmail.com>
5789
5790 PR target/47715
5791 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
5792 tls_symbolic_operand check. Update code sequence for TARGET_X32.
5793 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
5794 (tls_dynamic_gnu2_64): Ditto.
5795 (*tls_dynamic_gnu2_lea_64): Ditto.
5796 (*tls_dynamic_gnu2_call_64): Ditto.
5797 (*tls_dynamic_gnu2_combine_64): Ditto.
5798
5e9627ca
L
57992011-07-28 H.J. Lu <hongjiu.lu@intel.com>
5800
5801 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
5802
40b9321d
L
58032011-07-28 H.J. Lu <hongjiu.lu@intel.com>
5804
5805 PR target/47364
5806 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
5807
95f89bb3
RR
58082011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5809
5810 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
5811 before the core constraints. Adjust attributes.
a2e49bb2 5812 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 5813
98958241
KT
58142011-07-28 Kai Tietz <ktietz@redhat.com>
5815
f51c4a8a 5816 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
5817 (simplify_truth_ops_using_ranges): Likewise.
5818 (build_assert_expr_for): Likewise.
5819 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
5820 and handle BIT_NOT_EXPR for truth-operation.
5821
f627fef2 58222011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 5823
f627fef2
GJL
5824 PR target/49313
5825 Undo r176835 from trunk
5826 2011-07-27 Georg-Johann Lay
5827
296799ba 58282011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 5829
296799ba
GJL
5830 PR target/49687
5831 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
5832 Add _muluhisi3, _mulshisi3, _usmulhisi3.
5833 * config/avr/libgcc.S (__mulsi3): Rewrite.
5834 (__mulhisi3): Rewrite.
5835 (__umulhisi3): Rewrite.
5836 (__usmulhisi3): New.
5837 (__muluhisi3): New.
5838 (__mulshisi3): New.
5839 (__mulohisi3): New.
5840 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
5841 declare.
5842 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
5843 (pseudo_register_or_const_int_operand): New.
5844 (combine_pseudo_register_operand): New.
5845 (u16_operand): New.
5846 (s16_operand): New.
5847 (o16_operand): New.
5848 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
5849 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
5850 (any_extend, any_extend2): New code iterators.
5851 (extend_prefix): New code attribute.
5852 (mulsi3): Rewrite. Turn insn to expander.
5853 (mulhisi3): Ditto.
5854 (umulhisi3): Ditto.
5855 (usmulhisi3): New expander.
5856 (*mulsi3): New insn-and-split.
5857 (mulu<mode>si3): New insn-and-split.
5858 (muls<mode>si3): New insn-and-split.
5859 (mulohisi3): New insn-and-split.
5860 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
5861 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
5862 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
5863 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
5864 insn-and-split.
5865 (*mulsi3_call): Rewrite.
5866 (*mulhisi3_call): Rewrite.
5867 (*umulhisi3_call): Rewrite.
5868 (*usmulhisi3_call): New insn.
5869 (*muluhisi3_call): New insn.
5870 (*mulshisi3_call): New insn.
5871 (*mulohisi3_call): New insn.
5872 (extendqihi2): Use combine_pseudo_register_operand as predicate
5873 for operand 1.
5874 (extendqisi2): Ditto.
5875 (zero_extendqihi2): Ditto.
5876 (zero_extendqisi2): Ditto.
5877 (zero_extendhisi2): Ditto.
5878 (extendhisi2): Ditto. Don't early-clobber operand 0.
5879
d8fa1b73
UB
58802011-07-28 Uros Bizjak <ubizjak@gmail.com>
5881
5882 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
5883
3689198d
SP
58842011-07-27 Sebastian Pop <sebastian.pop@amd.com>
5885
5886 PR tree-optimization/49471
5887 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
5888 iv only when the largest type is unsigned. Do not call
5889 lang_hooks.types.type_for_size.
5890
27165edd
SP
58912011-07-27 Sebastian Pop <sebastian.pop@amd.com>
5892
5893 PR middle-end/45450
5894 * graphite-poly.c (apply_poly_transforms): Disable legality check
5895 after an openscop read.
5896
bd4a54da
SP
58972011-07-27 Sebastian Pop <sebastian.pop@amd.com>
5898
5899 PR middle-end/47691
5900 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
5901 copy_bb_and_scalar_dependences.
5902 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
5903 (graphite_copy_stmts_from_block): Update call to rename_uses.
5904 (copy_bb_and_scalar_dependences): Update call to
5905 graphite_copy_stmts_from_block.
5906 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
5907
04c9ea12 59082011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 5909
04c9ea12
GJL
5910 PR target/49313
5911 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
5912 (__ctzsi2): Result for 0 may be undefined.
5913 (__ctzhi2): Result for 0 may be undefined.
5914 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
5915 (__popcountsi2): Ditto. And don't clobber r26.
5916 (__popcountdi2): Ditto. And don't clobber r27.
5917 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
5918 (parityhi2): New expand.
5919 (paritysi2): New expand.
5920 (popcounthi2): New expand.
5921 (popcountsi2): New expand.
5922 (clzhi2): New expand.
5923 (clzsi2): New expand.
5924 (ctzhi2): New expand.
5925 (ctzsi2): New expand.
5926 (ffshi2): New expand.
5927 (ffssi2): New expand.
5928 (copysignsf3): New insn.
5929 (bswapsi2): New expand.
5930 (*parityhi2.libgcc): New insn.
5931 (*parityqihi2.libgcc): New insn.
5932 (*paritysihi2.libgcc): New insn.
5933 (*popcounthi2.libgcc): New insn.
5934 (*popcountsi2.libgcc): New insn.
5935 (*popcountqi2.libgcc): New insn.
5936 (*popcountqihi2.libgcc): New insn-and-split.
5937 (*clzhi2.libgcc): New insn.
5938 (*clzsihi2.libgcc): New insn.
5939 (*ctzhi2.libgcc): New insn.
5940 (*ctzsihi2.libgcc): New insn.
5941 (*ffshi2.libgcc): New insn.
5942 (*ffssihi2.libgcc): New insn.
5943 (*bswapsi2.libgcc): New insn.
5944
479a4921
UB
59452011-07-27 Uros Bizjak <ubizjak@gmail.com>
5946
5947 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
5948 the mode of symbolic_opreand RTXes.
5949
7aecd4e8
UB
59502011-07-27 Uros Bizjak <ubizjak@gmail.com>
5951
a2e49bb2
UB
5952 * config/i386/predicates.md (x86_64_movabs_operand): Return false
5953 for pic_32bit_operand RTXes.
7aecd4e8
UB
5954 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
5955 in DImode.
5956
eb9820c0
KT
59572011-07-27 Kai Tietz <ktietz@redhat.com>
5958
2fe83a0c
KT
5959 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
5960 for 32-bit, too.
5961 (ix86_handle_abi_attribute): Allow function attributes
5962 ms_abi/sysv_abi in 32-bit mode, too.
5963 * doc/extend.texi: Adjust attribute documentation.
5964
eb9820c0
KT
5965 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
5966 expression handling.
5967 (and_var_with_comparison_1): Likewise.
5968
1169e45d
AH
59692011-07-27 Aldy Hernandez <aldyh@redhat.com>
5970
5971 * params.h (ALLOW_STORE_DATA_RACES): New.
5972 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
5973 * Makefile.in (expr.o): Depend on PARAMS_H.
5974 * machmode.h (get_best_mode): Add argument.
5975 * fold-const.c (optimize_bit_field_compare): Add argument to
5976 get_best_mode.
5977 (fold_truthop): Same.
5978 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
5979 * expr.c (emit_group_store): Same.
5980 (copy_blkmode_from_reg): Same.
5981 (write_complex_part): Same.
5982 (optimize_bitfield_assignment_op): Add argument.
5983 Add argument to get_best_mode.
5984 (get_bit_range): New.
7aecd4e8 5985 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 5986 (store_field): New argument.
7aecd4e8 5987 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
5988 * expr.h (store_bit_field): New argument.
5989 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
5990 into account maxbits.
5991 * calls.c (store_unaligned_arguments_into_pseudos): New argument
5992 to store_bit_field.
5993 * expmed.c (store_bit_field_1): New argument. Use it.
5994 (store_bit_field): Same.
5995 (store_fixed_bit_field): Same.
5996 (store_split_bit_field): Same.
5997 (extract_bit_field_1): Pass new argument to get_best_mode.
5998 (extract_bit_field): Same.
5999 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
6000 * doc/invoke.texi: Document parameter allow-store-data-races.
6001
7bbdd4e9
JJ
60022011-07-27 Jakub Jelinek <jakub@redhat.com>
6003
7aecd4e8 6004 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 6005
aebf4828
KT
60062011-07-27 Kai Tietz <ktietz@redhat.com>
6007
6008 * tree-vrp.c (extract_range_from_binary_expr): Remove
6009 TRUTH-binary cases and add new bitwise-cases.
6010 (extract_range_from_assignment): Likewise.
6011 (register_edge_assert_for_1): Likeiwise.
6012 (register_edge_assert_for): Likewise.
6013 (simplify_truth_ops_using_ranges): Likewise.
6014 (simplify_stmt_using_ranges): Likewise.
6015
65ceed36
L
60162011-07-26 H.J. Lu <hongjiu.lu@intel.com>
6017
6018 PR target/47372
6019 * config/i386/i386.c (ix86_delegitimize_address): Call
6020 simplify_gen_subreg for PIC with mode of x only if modes of
6021 x and orig_x are different.
6022
b56bc05b
JJ
60232011-07-26 Jakub Jelinek <jakub@redhat.com>
6024
6025 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
6026 to GC allocated copy of the string.
6027 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
6028 before .debug_line, not after it.
6029
bce26def
SP
60302011-07-26 Sebastian Pop <sebastian.pop@amd.com>
6031
6032 PR middle-end/47046
6033 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
6034 evolution_function_is_affine_p on CHREC_RIGHT.
6035
5f72e02d
SP
60362011-07-26 Sebastian Pop <sebastian.pop@amd.com>
6037
6038 * tree-data-ref.c (max_stmt_executions_tree): Do not call
6039 lang_hooks.types.type_for_size.
6040
cbc1994b
SP
60412011-07-26 Sebastian Pop <sebastian.pop@amd.com>
6042
6043 PR middle-end/47653
6044 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
6045 loops using wrapping semantics.
6046
4c7d6755
SP
60472011-07-26 Sebastian Pop <sebastian.pop@amd.com>
6048
6049 PR middle-end/48805
6050 * tree-scalar-evolution.c (instantiate_scev_r): Return
6051 chrec_dont_know for ADDR_EXPR.
6052
e207e41f
UB
60532011-07-26 Uros Bizjak <ubizjak@gmail.com>
6054 H.J. Lu <hongjiu.lu@intel.com>
6055
6056 PR target/47369
6057 PR target/49853
6058 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
6059 if legitimize_tls_address returned operand in wrong mode. Allow
6060 SImode and DImode symbolic operand for PIC. Call convert_to_mode
6061 if legitimize_pic_address returned operand in wrong mode.
6062
842eeb9b
MJ
60632011-07-26 Martin Jambor <mjambor@suse.cz>
6064
6065 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
6066 return false for invariants.
6067
98d2c0ad
UB
60682011-07-26 Uros Bizjak <ubizjak@gmail.com>
6069
6070 * config/i386/i386.md (add->lea splitter): Implement using SWI
6071 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
6072 (add->lea zext splitter): Change operand 2 predicate to
6073 x86_64_nonmemory_operand.
6074
c21510a9
RG
60752011-07-26 Richard Guenther <rguenther@suse.de>
6076
6077 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
6078 frequency makes everything hot.
6079
9f61fd17
RG
60802011-07-26 Richard Guenther <rguenther@suse.de>
6081
6082 PR tree-optimization/49840
6083 * tree-vrp.c (range_fits_type_p): Properly handle full
6084 double-int precision.
6085
5bf3d50d
MJ
60862011-07-26 Martin Jambor <mjambor@suse.cz>
6087
6088 PR bootstrap/49786
6089 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
6090 counts.
6091 (update_specialized_profile): Likewise.
6092
536e3f49
UB
60932011-07-26 Uros Bizjak <ubizjak@gmail.com>
6094 H.J. Lu <hongjiu.lu@intel.com>
6095
6096 PR target/47381
6097 PR target/49832
6098 PR target/49833
6099 * config/i386/i386.md (i): Change SImode attribute to "e".
6100 (g): Change SImode attribute to "rme".
6101 (di): Change SImode attribute to "nF".
6102 (general_operand): Change SImode attribute to x86_64_general_operand.
6103 (general_szext_operand): Change SImode attribute to
6104 x86_64_szext_general_operand.
6105 (immediate_operand): Change SImode attribute to
6106 x86_64_immediate_operand.
6107 (nonmemory_operand): Change SImode attribute to
6108 x86_64_nonmemory_operand.
6109 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
6110 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
6111 (*lea_1): Use SWI48 mode iterator.
6112 (*lea_1_zext): New insn pattern.
6113 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
6114 (*bt<mode>): Ditto.
6115 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
6116 Update operand constraints.
6117 (addsi_1_zext): Ditto.
6118 (*add<mode>2): Ditto.
6119 (*addsi_3_zext): Ditto.
6120 (*subsi_1_zext): Ditto.
6121 (*subsi_2_zext): Ditto.
6122 (*subsi_3_zext): Ditto.
6123 (*addsi3_carry_zext): Ditto.
6124 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
6125 (*mulsi3_1_zext): Ditto.
6126 (*andsi_1): Ditto.
6127 (*andsi_1_zext): Ditto.
6128 (*andsi_2_zext): Ditto.
6129 (*<any_or:code>si_1_zext): Ditto.
6130 (*<any_or:code>si_2_zext): Ditto.
6131 (*test<mode>_1): Use <general_operand> predicate for operand 1.
6132 (*and<mode>_2): Ditto.
6133 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
6134 (add->lea splitter): Check operand modes in insn constraint. Extend
6135 operands less than SImode wide to SImode.
6136 (add->lea zext splitter): Do not extend input operands to DImode.
6137 (*lea_general_1): Handle only QImode and HImode operands.
6138 (*lea_general_2): Ditto.
6139 (*lea_general_3): Ditto.
6140 (*lea_general_1_zext): Remove.
6141 (*lea_general_2_zext): Ditto.
6142 (*lea_general_3_zext): Ditto.
6143 (*lea_general_4): Check operand modes in insn constraint. Extend
6144 operands less than SImode wide to SImode.
6145 (ashift->lea splitter): Ditto.
6146 * config/i386/i386.c (ix86_print_operand_address): Print address
6147 registers with 'q' modifier on 64bit targets.
6148 * config/i386/predicates.md (pic_32bit_opreand): Define as special
6149 predicate. Reject non-SI and non-DI modes.
6150
0de204de
AP
61512011-07-25 Andrew Pinski <apinski@cavium.com>
6152
6153 PR tree-opt/49671
6154 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
6155 TREE_THIS_NOTRAP into the inner most MEM_REF.
6156 Always copy TREE_THIS_VOLATILE.
6157 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
6158 arguments are not volatile references.
6159
104fcc7a
RH
61602011-07-25 Richard Henderson <rth@redhat.com>
6161
6162 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
6163 * final.c (final_scan_insn): Don't test for it.
6164 (rest_of_clean_state): Likewise.
6165
c24a6738
RH
61662011-07-25 Richard Henderson <rth@redhat.com>
6167
6168 PR debug/49841
6169 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
6170 (emit_frame_save): Likewise.
6171 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
6172 insn onto a dummy blockage insn after the join label.
6173
200e10dc
RH
61742011-07-25 Richard Henderson <rth@redhat.com>
6175
6176 * dwarf2cfi.c (dw_trace_info): Add ID member.
6177 (get_trace_index): Remove. Change users to use ID member.
6178 (before_next_cfi_note): New.
6179 (connect_traces): Remove unreachable traces before the main loop.
6180 Look across one trace and generate remember/restore_state if needed.
6181
a5d0ce89
RH
61822011-07-25 Richard Henderson <rth@redhat.com>
6183
6184 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
6185
c344a866
JR
61862011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
6187
6188 * genattr.c (write_upcase, gen_attr <enum definition writing>):
6189 Move to ...
6190 * genattr-common.c ... here.
6191 (main): Call gen_attr.
6192 * optc-gen.awk: Make generated program include insn-attr-common.h .
6193 * Makefile.in (oprions.o): Depend on insn-attr-common.h
6194
4645179e
AS
61952011-07-25 Anatoly Sokolov <aesok@post.ru>
6196
6197 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
6198 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
6199 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
6200 m32c_print_operand, m32c_print_operand_address): Remove.
6201 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
6202 Change return type to bool. Change argument type to bool.
6203 (m32c_print_operand, m32c_print_operand_address): Make static.
6204 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
6205 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6206
8175c19c
RO
62072011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6208
6209 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
6210 attributes): Document mmap.
6211
5057fa13
AS
62122011-07-25 Anatoly Sokolov <aesok@post.ru>
6213
6214 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
6215 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
6216 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
6217 mmix_print_operand, mmix_print_operand_address): Remove.
6218 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
6219 Change return type to bool. Change argument type to bool.
6220 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 6221 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
6222 to const_rtx.
6223 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
6224 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6225
f4da258f 62262011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 6227
f4da258f
GJL
6228 PR target/39386
6229 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
6230 shift counter for x << x and x >> x shifts.
6231
1500b428
RO
62322011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6233
6234 PR target/47124
6235 * config.gcc: Reject *-*-solaris2 configuration.
6236
59daeef4
RS
62372011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
6238
6239 PR tree-optimization/49809
6240 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
6241 gimple_get_lhs instead of gimple_assign_lhs.
6242
4d1c7421
RO
62432011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6244
6245 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
6246
7fdab8d4
RG
62472011-07-25 Richard Guenther <rguenther@suse.de>
6248
6249 PR tree-optimization/49822
6250 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
6251 more. Make sure to preserve stmts with side-effects. Properly
6252 handle virtual defs, follow a longer def chain.
6253
1baae426
RG
62542011-07-22 Romain Geissler <romain.geissler@gmail.com>
6255
6256 PR plugins/45348
6257 PR plugins/48425
6258 PR plugins/46577
6259 * Makefile.in: Do not flatten c-family directory when installing
6260 plugin headers.
6261
264b47b0
EB
62622011-07-25 Eric Botcazou <ebotcazou@adacore.com>
6263
6264 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
6265 original nodes if we are dealing with virtual clones.
6266
3d02ae65
BS
62672011-07-25 Bernd Schmidt <bernds@codesourcery.com>
6268
6269 * common/config/c6x/c6x-common.c: New file.
6270
2eaa698b
RZ
62712011-07-25 Roman Zhuykov <zhroma@ispras.ru>
6272
6273 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
6274
ebeadd91
RG
62752011-07-25 Richard Guenther <rguenther@suse.de>
6276
6277 PR tree-optimization/49715
6278 * tree-vrp.c: Include expr.h and optabs.h.
6279 (range_fits_type_): New function.
6280 (simplify_float_conversion_using_ranges): Likewise.
6281 (simplify_stmt_using_ranges): Call it.
6282 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
6283 * optabs.c (can_float_p): Export.
6284 * optabs.h (can_float_p): Declare.
6285
d9256277
RG
62862011-07-25 Richard Guenther <rguenther@suse.de>
6287
6288 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
6289 (get_value_range): For out-of-range SSA names or names created
6290 after propagation return a read-only varying range.
6291 (dump_all_value_ranges): Adjust.
6292 (vrp_initialize): Likewise.
6293 (vrp_finalize): Likewise.
6294
149e741d
RH
62952011-07-24 Richard Henderson <rth@redhat.com>
6296
6297 PR debug/49831
6298 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
6299 them entirely.
6300
981dc735
RH
63012011-07-24 Richard Henderson <rth@redhat.com>
6302
6303 PR debug/49825
6304 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
6305 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
6306
3382318a
RH
63072011-07-24 Richard Henderson <rth@redhat.com>
6308
6309 PR debug/49827
6310 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
6311
2f23f97a
RH
63122011-07-24 Richard Henderson <rth@redhat.com>
6313
6314 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
6315 Zero args_size for abnormal edges. Adjust all callers.
6316
2edb462e
RH
63172011-07-24 Richard Henderson <rth@redhat.com>
6318
6319 PR debug/49825
6320 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
6321
96d5384b
L
63222011-07-24 H.J. Lu <hongjiu.lu@intel.com>
6323
6324 PR bootstrap/49835
6325 * collect2.c (demangle_flag): Removed.
6326
df45fc34
SL
63272011-07-24 Sandra Loosemore <sandra@codesourcery.com>
6328
6329 * configure.ac (demangler_in_ld): Default to yes.
6330 * configure: Regenerated.
6331 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
6332 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
6333 --no-demangle options straight through to ld. When
6334 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
6335 way that has the intended effect on Windows.
6336
829bdd4b
RH
63372011-07-23 Richard Henderson <rth@redhat.com>
6338
6339 * dwarf2cfi.c: Include basic-block.h.
6340 (dw_label_info): Remove.
6341 (trace_work_list, trace_index): New.
6342 (remember_row, emit_cfa_remember): Remove.
6343 (dw_trace_info_hash, dw_trace_info_eq): New.
6344 (get_trace_index, get_trace_info): New.
6345 (save_point_p): New.
6346 (free_cfi_row): Remove.
6347 (add_cfi): Do not emit DW_CFA_remember_state.
6348 (cfa_row_equal_p): New.
6349 (barrier_args_size): Remove.
6350 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
6351 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
6352 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
6353 (dwarf2out_cfi_begin_epilogue): Remove.
6354 (dwarf2out_frame_debug_restore_state): Remove.
6355 (connect_traces, create_pseudo_cfg): New.
6356 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
6357 * Makefile.in (dwarf2cfi.o): Update.
6358
43215a89
RH
63592011-07-23 Richard Henderson <rth@redhat.com>
6360
6361 * dwarf2cfi.c (dw_trace_info): New.
6362 (dw_label_info): New.
6363 (cie_return_save): New.
6364 (cur_trace): New.
6365 (queued_args_size): Rename from args_size. Update all users.
6366 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
6367 (def_cfa_1): Use cur_trace instead of cfa_*.
6368 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
6369 (clobbers_queued_reg_save, reg_saved_in): Likewise.
6370 (dwarf2out_frame_debug_expr): Likewise.
6371 (create_cie_data): Split out from ...
6372 (execute_dwarf2_frame): ... here. Initialize cur_trace.
6373
6ffc63e1
RH
63742011-07-23 Richard Henderson <rth@redhat.com>
6375
6376 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
6377 Update all users to match.
6378 (execute_dwarf2_frame): Free reg_saved_in_data.
6379
999646c1
RH
63802011-07-23 Richard Henderson <rth@redhat.com>
6381
6382 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
6383 (queued_reg_saves): Don't GTY. Change to a VEC.
6384 (queue_reg_save): Update to match.
6385 (dwarf2out_flush_queued_reg_saves): Likewise.
6386 (clobbers_queued_reg_save): Likewise.
6387 (reg_saved_in): Likewise.
6388 (execute_dwarf2_frame): Free queued_reg_saves.
6389
ce363ef2
RH
63902011-07-23 Richard Henderson <rth@redhat.com>
6391
6392 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
6393
57e16c96
RH
63942011-07-23 Richard Henderson <rth@redhat.com>
6395
6396 * dwarf2cfi.c (add_cfi_args_size): Split out from...
6397 (dwarf2out_args_size): ... here.
6398 (add_cfi_restore): Split out from ...
6399 (dwarf2out_frame_debug_cfa_restore): ... here.
6400 (def_cfa_0): Split out from ...
6401 (def_cfa_1): ... here.
6402 (cfi_oprnd_equal_p, cfi_equal_p): New.
6403 (change_cfi_row): New.
6404 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
6405 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
6406 (output_cfis): Remove.
6407 * dwarf2out.c (output_fde): Simplify output_cfi loop.
6408 (dwarf2out_switch_text_section): Don't call output_cfis.
6409 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
6410 * dwarf2out.h: Update decls.
6411 (enum dw_val_class): Add dw_val_class_none.
6412
f1a0e830
RH
64132011-07-23 Richard Henderson <rth@redhat.com>
6414
6415 * dwarf2cfi.c (update_row_reg_save): New.
6416 (dwarf2out_frame_debug_cfa_expression): Use it.
6417 (dwarf2out_frame_debug_cfa_restore): Likewise.
6418 (reg_save): Likewise. Do not emit DW_CFA_same_value.
6419
141618e2
RH
64202011-07-23 Richard Henderson <rth@redhat.com>
6421
6422 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
6423
f17d3401
RH
64242011-07-23 Richard Henderson <rth@redhat.com>
6425
6426 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
6427 (cie_cfi_row): New.
6428 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
6429 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
6430 (cur_row, remember_row): New.
6431 (def_cfa_1): Use cur_row instead of the old_* variables.
6432 (dwarf2out_frame_debug_restore_state): Similarly.
6433 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
6434 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
6435 (dwarf2out_frame_debug_adjust_cfa): Likewise.
6436 (dwarf2out_frame_debug_cfa_offset): Likewise.
6437 (dwarf2out_frame_debug_expr): Likewise.
6438 (execute_dwarf2_frame): Set up cur_row.
6439 * dwarf2out.h (struct cfa_loc): Mark for GTY.
6440
0be7e7a6
RH
64412011-07-23 Richard Henderson <rth@redhat.com>
6442
6443 * basic-block.h (EDGE_PRESERVE): New.
6444 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
6445 * bb-reorder.c: Include except.h.
6446 (fix_up_crossing_landing_pad): New.
536e3f49 6447 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
6448 landing pads in the right partition. Duplicate as necessary.
6449 (partition_hot_cold_basic_blocks): Fix up DF info after
6450 duplicating landing pads.
6451 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
6452 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
6453 is set properly. Validate that EH edges are not CROSSING.
6454 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
6455 (dw2_build_landing_pads): ... here.
6456 (convert_to_eh_region_ranges): Remove code to fixup crossing
6457 landing pads.
6458 * except.h (expand_dw2_landing_pad_for_region): Declare.
6459 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
6460
e0170551
RE
64612011-07-23 Richard Earnshaw <rearnsha@arm.com>
6462
6463 PR target/49816
6464 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
6465
15c2ccba
JM
64662011-07-22 Jason Merrill <jason@redhat.com>
6467
6468 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
6469
295331a4
RH
64702011-07-22 Richard Henderson <rth@redhat.com>
6471
6472 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
6473
5f93b30a
RH
64742011-07-22 Richard Henderson <rth@redhat.com>
6475
6476 * jump.c (maybe_propagate_label_ref): Split out of...
6477 (mark_all_labels): ... here. Do not attempt label_ref
6478 propagation while in cfglayout mode.
6479
e967adf4
JJ
64802011-07-22 Jakub Jelinek <jakub@redhat.com>
6481
520cda8c
JJ
6482 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
6483 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
6484 (dwarf_attr_name): Handle DW_AT_GNU_macros.
6485 (dwarf2out_define): If the vector is empty and
6486 lineno is 0, emit a dummy entry first.
6487 (dwarf2out_undef): Likewise. Remove redundant semicolon.
6488 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
6489 optimize_macinfo_range): New functions.
6490 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
6491 mergeable, optimize longer strings using
6492 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
6493 optimize longer sequences of define/undef ops from headers
6494 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
6495 emit a section headers.
6496 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
6497 and macinfo_section_label to DEBUG_MACRO_SECTION
6498 resp. DEBUG_MACRO_SECTION_LABEL.
6499 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
6500 instead of DW_AT_macro_info.
6501
e967adf4
JJ
6502 PR other/32998
6503 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
6504 options.
6505 * dwarf2out.c: Include opts.h.
6506 (dchar_p): New typedef. Define heap VEC for it.
6507 (producer_string): New variable.
6508 (gen_producer_string): New function.
6509 (gen_compile_unit_die): Use it.
536e3f49 6510 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
6511 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
6512 * doc/invoke.texi: Document -grecord-gcc-switches and
6513 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
6514 to -frecord-gcc-switches description.
6515
3a636414
JM
65162011-07-22 Jason Merrill <jason@redhat.com>
6517
6518 PR c++/30112
6519 * c-decl.c (c_linkage_bindings): Define.
6520
8b9b2275
EB
65212011-07-22 Eric Botcazou <ebotcazou@adacore.com>
6522
6523 PR debug/49815
6524 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
6525
3de69514
L
65262011-07-22 H.J. Lu <hongjiu.lu@intel.com>
6527
6528 * config/i386/i386.c (ix86_option_override_internal): Disallow
6529 MS ABI in x32 mode.
6530 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
6531 only for TARGET_LP64.
536e3f49 6532 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 6533
49f6f4f7 65342011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
6535
6536 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
6537 avoid warnings when GCC is built with a C++ compiler.
6538
b75d1e21
MJ
65392011-07-22 Martin Jambor <mjambor@suse.cz>
6540
6541 PR lto/49796
6542 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 6543 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 6544
63708bf5
UB
65452011-07-22 Uros Bizjak <ubizjak@gmail.com>
6546
e3c666fd 6547 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
6548 default_gnu_indirect_function to yes.
6549
27315aa6
RG
65502011-07-22 Richard Guenther <rguenther@suse.de>
6551
6552 PR tree-optimization/45819
6553 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6554 preserve volatile and notrap flags.
6555
5b6d595b
RO
65562011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6557 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6558
6559 PR bootstrap/49794
6560 * configure.ac: Test AM_ICONV with CXX.
6561 * configure: Regenerate.
6562 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
6563
7e2fe488
RO
65642011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6565
6566 PR bootstrap/49797
6567 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
6568 (set_cloog_options): Use it.
6569
d423df48
JJ
65702011-07-22 Jakub Jelinek <jakub@redhat.com>
6571
6572 PR c++/49756
6573 * gcc.c (main): Call stack_limit_increase (64MB).
6574 * toplev.c (toplev_main): Likewise.
6575
7fd72c6f
L
65762011-07-21 H.J. Lu <hongjiu.lu@intel.com>
6577
6578 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
6579 instead of force_reg.
6580
96f0b772
L
65812011-07-21 H.J. Lu <hongjiu.lu@intel.com>
6582
6583 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
6584 needed and use force_reg after convert.
6585 (ix86_expand_call): Likewise.
6586 (ix86_expand_special_args_builtin): Likewise.
6587 (ix86_expand_builtin): Likewise.
6588
ef74e2ba
SP
65892011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6590
6591 PR middle-end/47654
6592 PR middle-end/49649
6593 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
6594 in parameter. Initialize v1 and v2 based on the values returned
6595 by clast_name_to_lb_ub.
6596 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
6597 values.
6598 (type_for_clast_bin): Same.
6599 (type_for_clast_expr): Same.
6600 (type_for_clast_eq): Update calls to type_for_clast_expr.
6601 (type_for_clast_for): Same.
6602 (build_iv_mapping): Same.
6603 * graphite-ppl.h (value_min): New.
6604
84f2ffea
SP
66052011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6606
6607 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
6608 types whenever possible.
6609
3d9784cb
SP
66102011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6611
6612 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
6613 and ub fields.
6614 (new_clast_name_index): Add lb and ub parameters.
6615 (free_clast_name_index): New.
6616 (clast_name_to_lb_ub): New.
6617 (save_clast_name_index): Add lb and ub parameters.
6618 (compute_bounds_for_param): New.
6619 (type_for_level): Removed.
6620 (type_for_clast_for): Removed level parameter. Do not call
6621 type_for_level.
6622 (graphite_create_new_loop): Store the lb and ub for the clast_name
6623 of the iterator of the loop that has been generated.
6624 (graphite_create_new_loop_guard): Remove parameter level.
6625 (create_params_index): Store the lb and ub of each parameter.
6626 (gloog): Use free_clast_name_index. Pass to create_params_index
6627 the current scop.
6628
12b30e6d
SP
66292011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6630
6631 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
6632 (max_precision_type): Inline max_signed_precision_type.
6633 (type_for_clast_red): Use max_precision_type.
6634 (type_for_clast_bin): Same.
6635 (type_for_clast_for): Same.
6636
0cdd9dcf
SP
66372011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6638
6639 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
6640 type_for_interval.
6641 (gcc_type_for_value): Renamed type_for_value.
6642 (gcc_type_for_clast_term): Renamed type_for_clast_term.
6643 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
6644 (gcc_type_for_clast_red): Renamed type_for_clast_red.
6645 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
6646 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
6647 (graphite_translate_clast_equation): Update calls.
6648 (compute_type_for_level): Renamed type_for_level.
6649 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
6650 (build_iv_mapping): Update calls.
6651 (graphite_create_new_loop_guard): Same.
6652
8aab43a0
SP
66532011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6654
6655 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
6656 comment.
6657
cf7eab7d
SP
66582011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6659
6660 * graphite-clast-to-gimple.c (struct ivs_params): New.
6661 (clast_name_to_gcc): Use ivs_params to pass around parameters.
6662 (clast_to_gcc_expression): Same.
6663 (clast_to_gcc_expression_red): Same.
6664 (gcc_type_for_clast_term): Same.
6665 (gcc_type_for_clast_expr): Same.
6666 (gcc_type_for_clast_red): Same.
6667 (gcc_type_for_clast_bin): Same.
6668 (gcc_type_for_clast_eq): Same.
6669 (graphite_translate_clast_equation): Same.
6670 (graphite_create_guard_cond_expr): Same.
6671 (graphite_create_new_guard): Same.
6672 (graphite_create_new_loop): Same.
6673 (build_iv_mapping): Same.
6674 (translate_clast_user): Same.
6675 (graphite_create_new_loop_guard): Same.
6676 (translate_clast): Same.
6677 (translate_clast_for_loop): Same.
6678 (translate_clast_for): Same.
6679 (translate_clast_guard): Same.
6680 (initialize_cloog_names): Fix typo.
6681 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
6682
7b1e9596
SP
66832011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6684
6685 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
6686 (new_clast_name_index): Add level parameter.
6687 (clast_name_to_level): New.
6688 (save_clast_name_index): Add level parameter.
6689 (newivs_to_depth_to_newiv): Removed.
6690 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
6691 (graphite_create_new_loop): Add level parameter. Pass level to
6692 save_clast_name_index.
6693 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
6694 (create_params_index): Pass level to save_clast_name_index.
6695
6e6568db
SP
66962011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6697
6698 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
6699 recompute type, lb, and ub. Get them from...
6700 (graphite_create_new_loop_guard): ...here. Pass in parameter
6701 pointers to type, lb, and ub.
6702 (translate_clast_for_loop): Update function calls.
6703 (translate_clast_for): Same.
6704
dff62090
SP
67052011-07-21 Sebastian Pop <sebastian.pop@amd.com>
6706
6707 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
6708 psct_dynamic_dim.
6709 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
6710 (gcc_type_for_iv_of_clast_loop): Update use of level.
6711 (gloog): Start counting nesting level from 0.
6712 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
6713 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
6714 psct_dynamic_dim on level.
6715
628c1ac9
L
67162011-07-21 H.J. Lu <hongjiu.lu@intel.com>
6717
6718 * config/i386/i386.c (ix86_legitimize_address): Convert to
6719 Pmode if needed.
6720
08a8923e
L
67212011-07-21 H.J. Lu <hongjiu.lu@intel.com>
6722
6723 * config/i386/i386.c (function_value_64): Always return pointers
6724 in Pmode.
6725 (ix86_promote_function_mode): New.
6726 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
6727
777a4e9a
BS
67282011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6729
6730 PR tree-optimization/49749
6731 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
6732 remove no-longer-used maxrank variable.
63708bf5 6733
e9514725 67342011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 6735
e9514725
GJL
6736 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
6737
9ca1483b
JM
67382011-07-21 Jason Merrill <jason@redhat.com>
6739
6740 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
6741 * recog.h (struct insn_data_d): Check it instead of
6742 HAVE_DESIGNATED_INITIALIZERS.
6743 * genoutput.c (output_insn_data): Likewise.
6744
3ceaf2f5
RG
67452011-07-21 Richard Guenther <rguenther@suse.de>
6746
6747 PR tree-optimization/49770
6748 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
6749 valueized any operand. Renamed from ...
6750 (valueize_refs): ... this. New wrapper around valueize_refs_1.
6751 (valueize_shared_reference_ops_from_ref): Return whether we
6752 valueized any operand.
6753 (vn_reference_lookup): Only when we valueized any operand
6754 use the valueized reference for alias analysis. Do not preserve
6755 the original reference tree in this case.
6756
7c53a140
UB
67572011-07-21 Uros Bizjak <ubizjak@gmail.com>
6758
6759 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 6760 register operands and subregs of DImode hard registers in index.
7c53a140 6761
7f3ff782
KT
67622011-07-21 Kai Tietz <ktietz@redhat.com>
6763
6764 * fold-const.c (fold_unary_loc): Preserve indirect
6765 comparison cast to none-boolean type.
6766 * tree-ssa.c (useless_type_conversion_p): Preserve cast
6767 from/to boolean-type.
7c53a140
UB
6768 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
6769 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
6770 * tree-cfg.c (verify_gimple_comparison): Check result
6771 type of comparison expression.
7c53a140
UB
6772 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
6773 of condition result and disallow type-cast sinking into comparison.
7f3ff782 6774
91bc6112
RG
67752011-07-21 Richard Guenther <rguenther@suse.de>
6776
6777 * tree-ssa-forwprop.c (combine_conversions): Return whether
6778 we have to run cfg-cleanup. Properly remove dead stmts.
6779 (ssa_forward_propagate_and_combine): Adjust.
6780
d6f23738
RS
67812011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
6782
6783 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
6784
fec3cad3
KT
67852011-07-21 Kai Tietz <ktietz@redhat.com>
6786
6787 * tree-ssa-propagate.c (substitute_and_fold): Use
6788 do_dce flag to deside, if BB's statements are scanned
6789 in last to first, or first to last order.
6790
21f3ae2f 67912011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 6792
21f3ae2f
GJL
6793 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
6794
6025b127
L
67952011-07-20 H.J. Lu <hongjiu.lu@intel.com>
6796 Uros Bizjak <ubizjak@gmail.com>
6797 Richard Henderson <rth@redhat.com>
6798
6799 * config/i386/constraints.md (w): New.
6800
6801 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
6802 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
6803
6804 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
6805 instead of TARGET_64BIT.
6806
6807 * config/i386/i386.md (indirect_jump): Replace
6808 nonimmediate_operand with indirect_branch_operand.
6809 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
6810 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
6811 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
6812 (*tablejump_1): Replace nonimmediate_operand with
6813 indirect_branch_operand. Replace constraint "m" with "w".
6814 (*call_vzeroupper): Replace constraint "m" with "w".
6815 (*call): Likewise.
6816 (*call_rex64_ms_sysv_vzeroupper): Likewise.
6817 (*call_rex64_ms_sysv): Likewise.
6818 (*call_value_vzeroupper): Likewise.
6819 (*call_value): Likewise.
6820 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
6821 (*call_value_rex64_ms_sysv): Likewise.
a4235495 6822 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
6823
6824 * config/i386/predicates.md (indirect_branch_operand): New.
6825 (call_insn_operand): Support x32.
6826
7f8925a1
ME
68272011-07-20 Michael Eager <eager@eagercon.com>
6828
6829 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
6830
510a442a
RH
68312011-07-20 Richard Henderson <rth@redhat.com>
6832
6833 * cfg.c (dump_bb_info): Dump basic_block->flags.
6834 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
6835
00b40d0d
UB
68362011-07-20 Uros Bizjak <ubizjak@gmail.com>
6837
6838 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
6839 of DImode hard registers in index.
6840 (ix86_legitimate_address_p): Allow subregs of base and index to span
6841 more than a word. Assert that subregs of base and index satisfy
6842 register_no_elim_operand predicates. Reject addresses where
6843 base and index have different modes.
6844
87f53554
RM
68452011-07-20 Robert Millan <rmh@gnu.org>
6846
6847 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
6848
742f29ab
UW
68492011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6850
6851 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
6852 removing now-unnecessary assignment.
6853
d05f3564
UW
68542011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6855
6856 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
6857 memory address space to the type's address space.
6858
8c352fa8 68592011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 6860
8c352fa8
GJL
6861 PR target/36467
6862 PR target/49687
00b40d0d
UB
6863 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
6864 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
6865 (usmulqihi3): New insn.
6866 (*sumulqihi3): New insn.
6867 (*osmulqihi3): New insn.
6868 (*oumulqihi3): New insn.
6869 (*muluqihi3.uconst): New insn_and_split.
6870 (*muluqihi3.sconst): New insn_and_split.
6871 (*mulsqihi3.sconst): New insn_and_split.
6872 (*mulsqihi3.uconst): New insn_and_split.
6873 (*mulsqihi3.oconst): New insn_and_split.
6874 (*ashifthi3.signx.const): New insn_and_split.
6875 (*ashifthi3.signx.const7): New insn_and_split.
6876 (*ashifthi3.zerox.const): New insn_and_split.
6877 (mulsqihi3): New insn.
6878 (muluqihi3): New insn.
6879 (muloqihi3): New insn.
6880 * config/avr/predicates.md (const_2_to_7_operand): New.
6881 (const_2_to_6_operand): New.
6882 (u8_operand): New.
6883 (s8_operand): New.
6884 (o8_operand): New.
6885 (s9_operand): New.
6886 (register_or_s9_operand): New.
6887
be31603a
KT
68882011-07-20 Kai Tietz <ktietz@redhat.com>
6889
6890 * builtins.c (fold_builtin_expect): See through the cast
6891 from truthvalue_type_node to long.
6892
c36193c6
MM
68932011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
6894
6895 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
6896 where we can use them from the standard and altivec instruction
6897 sets, instead of always using the 3 operand VSX forms that require
6898 the destination to overlap one of the inputs.
6899 (vsx_fms*): Ditto.
6900 (vsx_fnma*): Ditto.
6901 (vsx_fnms*): Ditto.
6902
6903 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
6904 for DF types.
6905 (fmsdf4_fpr): Ditto.
6906 (nfmadf4_fpr): Ditto.
6907 (nfmsdf4_fpr): Ditto.
6908
02aec184
SL
69092011-07-20 Sandra Loosemore <sandra@codesourcery.com>
6910
6911 * genrecog.c (make_insn_sequence): Correct position numbering
6912 when filtering out match_scratch and match_dup.
6913
f8ecf734
RG
69142011-07-20 Richard Guenther <rguenther@suse.de>
6915
6916 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
6917 against already removed statements.
6918 (forward_propagate_into_comparison): Remove dead defining stmts.
6919 (forward_propagate_into_gimple_cond): Likewise.
6920 (forward_propagate_into_cond): Simplify.
6921 (ssa_forward_propagate_and_combine): Handle changed cfg from
6922 forward_propagate_into_comparison.
6923 * tree-ssa-phiopt.c (conditional_replacement): Use proper
6924 locations for newly built statements.
6925
73451ae7
GJL
69262011-07-20 Georg-Johann Lay <avr@gjlay.de>
6927
6928 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
6929
c4100a35
AK
69302011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6931
6932 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
6933 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
6934
dca412a1
RG
69352011-07-20 Richard Guenther <rguenther@suse.de>
6936
6937 PR middle-end/18908
6938 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
6939 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
6940 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
6941
73d7e266
VM
69422011-07-20 Vladimir Makarov <vmakarov@redhat.com>
6943
6944 * config/frv/frv.c (frv_register_move_cost): Define explicitly
6945 costs for subclasses of GR_REGS.
6946
5e27a6d4
UB
69472011-07-20 Uros Bizjak <ubizjak@gmail.com>
6948
6949 PR target/49780
6950 * config/i386/predicates.md (no_seg_addres_operand): No more special.
6951 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
6952 of DImode hard registers in base.
6953 (ix86_legitimate_address_p): Allow SImode and DImode base and index
6954 registers.
6955
74d8fa44
RG
69562011-07-20 Richard Guenther <rguenther@suse.de>
6957
5e27a6d4 6958 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
6959 (unify_nodes): Deal with that.
6960 (solve_graph): Likewise.
6961
b0e43da8
CLT
69622011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
6963
6964 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
6965 canonicalize left operand from ZERO_EXTEND to AND.
6966
a8c44c52
AS
69672011-07-20 Anatoly Sokolov <aesok@post.ru>
6968
6969 * target.def (class_max_nregs): New hook.
6970 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
6971 * doc/tm.texi: Regenerate.
6972 * targhooks.c (default_class_max_nregs): New function.
6973 * targhooks.h (default_class_max_nregs): Declare.
6974 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
6975 x_ira_reg_class_min_nregs arrays to unsigned char.
6976 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
6977 hook instead of CLASS_MAX_NREGS macro.
6978 * reginfo.c (restore_register_info): Ditto.
6979 * ira-conflicts.c (process_regs_for_copy): Use
6980 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
6981 Change type rclass and aclass vars to reg_class_t.
6982 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
6983 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
6984 reg_class_t.
6985 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
6986 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
6987
6988 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
6989 * config/i386/i386.c (ix86_class_max_nregs): New function.
6990 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
6991 instead of CLASS_MAX_NREGS macro.
6992 (TARGET_CLASS_MAX_NREGS): Define.
6993 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
6994 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
6995 * config/avr/avr.c (class_max_nregs): Remove function.
6996 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
6997 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
6998 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
6999 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
7000 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
7001 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
7002 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
7003 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
7004 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
7005 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
7006 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
7007 * config/score/score.h (CLASS_MAX_NREGS): Remove.
7008 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
7009 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
7010 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
7011
fd811f03
EB
70122011-07-19 Eric Botcazou <ebotcazou@adacore.com>
7013
7014 * cif-code.def (OVERWRITABLE): Fix typo and move around.
7015 (TARGET_OPTIMIZATION_MISMATCH): Delete.
7016 (EH_PERSONALITY): Fix typo.
7017 (NON_CALL_EXCEPTIONS): Fix message.
7018 (OPTIMIZATION_MISMATCH): Adjust message.
7019 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
7020
78767fd9
ILT
70212011-07-19 Ian Lance Taylor <iant@google.com>
7022
7023 * doc/install.texi (Configuration): Document
7024 --enable-build-poststage1-with-cxx.
7025
0baeec1b
RM
70262011-07-19 Robert Millan <rmh@gnu.org>
7027
7028 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
7029 (GLIBC_DYNAMIC_LINKER): Remove.
7030
7031 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
7032 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
7033 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
7034 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
7035 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
7036 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
7037
7038 * config/mips/linux.h: Remove everything except for ...
7039 (GLIBC_DYNAMIC_LINKER): ... this macro.
7040
7041 * config/mips/linux64.h: Remove everything except for ...
7042 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
7043 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
7044 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
7045 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
7046 (GNU_USER_LINK_EMULATIONN32): New macros.
7047
5e27a6d4
UB
7048 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
7049 Use the new headers.
0baeec1b 7050
754c3d5d
RS
70512011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
7052
7053 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
7054 Add offset_known_p and size_known_p fields.
7055 (MEM_OFFSET_KNOWN_P): Update accordingly.
7056 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
7057 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
7058 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
7059 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
7060 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
7061 (init_emit_regs): Likewise.
7062
527210c4
RS
70632011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
7064
7065 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
7066 (MEM_OFFSET): Change from returning an rtx to returning a
7067 HOST_WIDE_INT.
7068 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
7069 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
7070 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
7071 (clear_mem_offset): Declare.
7072 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
7073 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
7074 MEM_OFFSET to get a HOST_WIDE_INT offset.
7075 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
7076 (adjust_offset_for_component_ref): Take a bool "known_p"
7077 parameter and a HOST_WIDE_INT "offset" parameter.
7078 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
7079 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
7080 than an rtx. Use clear_mem_offset to clear the offset.
7081 * cfgcleanup.c (merge_memattrs): Likewise.
7082 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
7083 * function.c (assign_parm_find_stack_rtl): Likewise.
7084 (assign_parm_setup_stack): Likewise.
7085 * print-rtl.c (print_rtx): Likewise.
7086 * reload.c (find_reloads_subreg_address): Likewise.
7087 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
7088 * var-tracking.c (INT_MEM_OFFSET): Likewise.
7089 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
7090 (get_mem_align_offset): Likewise.
7091 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
7092 (clear_mem_offset): New function.
7093 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
7094 offset rather than an rtx. Assume both the expressio and offset
7095 are available.
7096 (r10k_needs_protection_p_1): Update accordingly, checking the
7097 expression and offset availability here instead.
7098
f5541398
RS
70992011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
7100
7101 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
7102 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
7103 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
7104 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
7105 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
7106 (clear_mem_size): Declare.
7107 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
7108 (clear_mem_size): New function.
7109 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
7110 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
7111 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
7112 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
7113 to clear the size.
7114 (nonoverlapping_memrefs_p): Likewise.
7115 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
7116 (expand_builtin_init_trampoline): Likewise.
7117 * calls.c (compute_argument_addresses): Likewise.
7118 * cfgcleanup.c (merge_memattrs): Likewise.
7119 * dce.c (find_call_stack_args): Likewise.
7120 * dse.c (record_store, scan_insn): Likewise.
7121 * dwarf2out.c (dw_sra_loc_expr): Likewise.
7122 * expr.c (emit_block_move_hints): Likewise.
7123 * function.c (assign_parm_find_stack_rtl): Likewise.
7124 * print-rtl.c (print_rtx): Likewise.
7125 * reload.c (find_reloads_subreg_address): Likewise.
7126 * rtlanal.c (may_trap_p_1): Likewise.
7127 * var-tracking.c (track_expr_p): Likewise.
7128 * varasm.c (assemble_trampoline_template): Likewise.
7129 * config/arm/arm.c (arm_print_operand): Likewise.
7130 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
7131 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
7132 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
7133 (expand_constant_setmem_prologue): Likewise.
7134 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
7135 * config/rs6000/rs6000.c (expand_block_move): Likewise.
7136 (adjacent_mem_locations): Likewise.
7137 * config/s390/s390.c (s390_expand_setmem): Likewise.
7138 (s390_expand_insv): Likewise.
7139 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
7140 (*extendqi<mode>2_short_displ): Likewise.
7141 * config/sh/sh.c (expand_block_move): Likewise.
7142 * config/sh/sh.md (extv, extzv): Likewise.
7143
f12144dd
RS
71442011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
7145
7146 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
7147 (mem_attrs_htab_eq): ...here.
7148 (find_mem_attrs): Replace with...
7149 (set_mem_attrs): ...this function. Take a mem_attrs structure
7150 rather than individual fields.
7151 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
7152 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
7153 (set_mem_size, change_address, adjust_address_1, offset_address)
7154 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
7155 Update accordingly.
7156
1c3f523e
RS
71572011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
7158
7159 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
7160 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
7161 Provide a dummy definition of MEM_ADDR_SPACE for generators.
7162 (target_rtl): Add x_mode_mem_attrs.
7163 (mode_mem_attrs): New macro.
7164 (get_mem_attrs): New function.
7165 * emit-rtl.c (get_mem_attrs): Rename to...
7166 (find_mem_attrs): ...this.
7167 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
7168 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
7169 (set_mem_size, change_address, adjust_address_1, offset_address)
7170 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
7171 Update accordingly.
7172 (init_emit_regs): Initialize mode_mem_attrs.
7173
3046b1a9
RG
71742011-07-19 Richard Guenther <rguenther@suse.de>
7175
7176 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
7177 TRUTH_*_EXPR handling.
7178 * tree-ssa-operands.c (get_expr_operands): Likewise.
7179 * tree-ssa-pre.c (fully_constant_expression): Likewise.
7180 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
7181 Likewise.
7182 (is_and_or_or): Likewise.
7183 (is_norm_cond_subset_of): Likewise.
7184
5d49b6a7
RG
71852011-07-19 Richard Guenther <rguenther@suse.de>
7186
7187 * tree.h (fold_build_pointer_plus_loc): New helper function.
7188 (fold_build_pointer_plus_hwi_loc): Likewise.
7189 (fold_build_pointer_plus): Define.
7190 (fold_build_pointer_plus_hwi): Likewise.
7191 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
7192 (fold_builtin_memory_op): Likewise.
7193 (fold_builtin_stpcpy): Likewise.
7194 (fold_builtin_memchr): Likewise.
7195 (fold_builtin_strstr): Likewise.
7196 (fold_builtin_strchr): Likewise.
7197 (fold_builtin_strrchr): Likewise.
7198 (fold_builtin_strpbrk): Likewise.
7199 (fold_builtin_strcat): Likewise.
7200 (expand_builtin_memory_chk): Likewise.
7201 (fold_builtin_memory_chk): Likewise.
7202 * c-typeck.c (build_unary_op): Likewise.
7203 * cgraphunit.c (thunk_adjust): Likewise.
7204 * fold-const.c (build_range_check): Likewise.
7205 (fold_binary_loc): Likewise.
7206 * omp-low.c (extract_omp_for_data): Likewise.
7207 (expand_omp_for_generic): Likewise.
7208 (expand_omp_for_static_nochunk): Likewise.
7209 (expand_omp_for_static_chunk): Likewise.
7210 * tree-affine.c (add_elt_to_tree): Likewise.
7211 * tree-data-ref.c (split_constant_offset_1): Likewise.
7212 * tree-loop-distribution.c (generate_memset_zero): Likewise.
7213 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
7214 * tree-predcom.c (ref_at_iteration): Likewise.
7215 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
7216 (add_to_parts): Likewise.
7217 (create_mem_ref): Likewise.
7218 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
7219 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
7220 (number_of_iterations_le): Likewise.
7221 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
7222 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
7223 (vect_create_addr_base_for_vector_ref): Likewise.
7224 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
7225 (vect_create_cond_for_alias_checks): Likewise.
7226 * tree-vrp.c (extract_range_from_assert): Likewise.
7227 * config/alpha/alpha.c (alpha_va_start): Likewise.
7228 (alpha_gimplify_va_arg_1): Likewise.
7229 * config/i386/i386.c (ix86_va_start): Likewise.
7230 (ix86_gimplify_va_arg): Likewise.
7231 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7232 * config/mep/mep.c (mep_expand_va_start): Likewise.
7233 (mep_gimplify_va_arg_expr): Likewise.
7234 * config/mips/mips.c (mips_va_start): Likewise.
7235 (mips_gimplify_va_arg_expr): Likewise.
7236 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
7237 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
7238 (rs6000_gimplify_va_arg): Likewise.
7239 * config/s390/s390.c (s390_va_start): Likewise.
7240 (s390_gimplify_va_arg): Likewise.
7241 * config/sh/sh.c (sh_va_start): Likewise.
7242 (sh_gimplify_va_arg_expr): Likewise.
7243 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
7244 * config/spu/spu.c (spu_va_start): Likewise.
7245 (spu_gimplify_va_arg_expr): Likewise.
7246 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
7247 Likewise.
7248 (xstormy16_gimplify_va_arg_expr): Likewise.
7249 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
7250 (xtensa_gimplify_va_arg_expr): Likewise.
7251
d906fd7f
RG
72522011-07-19 Richard Guenther <rguenther@suse.de>
7253
7254 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
7255 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
7256 handling.
7257
7258 PR middle-end/18908
7259 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
7260 result of BIT_*_EXPR to bitfield precision.
7261
1b14d815
RS
72622011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
7263
7264 PR tree-optimization/49742
7265 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
7266 as a potential write.
7267
d906fd7f
RG
72682011-07-19 Richard Guenther <rguenther@suse.de>
7269
7270 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
7271 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
7272 (forward_propagate_comparison): Simplify, remove obsolete code.
7273
53020648
RG
72742011-07-19 Richard Guenther <rguenther@suse.de>
7275
7276 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
7277 BIT_XOR_EXPR, same as the RTL expander does.
7278 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
7279 (verify_gimple_assign_unary): Likewise.
7280 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
7281 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
7282 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
7283
b8b2b009
JJ
72842011-07-19 Jakub Jelinek <jakub@redhat.com>
7285
7286 PR tree-optimization/49768
7287 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
7288 if offset is smaller than bitoffset, but offset+size is bigger
7289 than bitoffset.
7290
338f655d
IR
72912011-07-19 Ira Rosen <ira.rosen@linaro.org>
7292
7293 PR tree-optimization/49771
7294 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
7295 zero step, set segment length to the size of the data-ref's type.
7296
310bc633
MJ
72972011-07-18 Martin Jambor <mjambor@suse.cz>
7298
7299 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
7300 comments.
7301 (ipcp_values_pool): Declare.
7302 (ipcp_sources_pool): Likewise.
7303 (ipcp_lattice): Changed to forward declaration.
7304 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
7305 cannot_devirtualize.
7306 (ipa_node_params): New fields descriptors, lattices, known_vals,
7307 clone_for_all_contexts and node dead, removed fields params and
7308 count_scale.
7309 (ipa_set_param_count): Removed.
7310 (ipa_get_param_count): Made to work with descriptors vector.
7311 (ipa_get_param): Updated.
7312 (ipa_param_cannot_devirtualize_p): Removed.
7313 (ipa_param_types_vec_empty): Likewise.
7314 (ipa_set_param_used): New function.
7315 (ipa_get_param_used): Updated to use descriptors vector.
7316 (ipa_func_list): Removed.
7317 (ipa_init_func_list): Removed declaration.
7318 (ipa_push_func_to_list_1): Likewise.
7319 (ipa_pop_func_from_list): Likewise.
7320 (ipa_push_func_to_list): Removed.
7321 (ipa_lattice_from_jfunc): Remove declaration.
7322 (ipa_get_jf_pass_through_result): Declare.
7323 (ipa_get_jf_ancestor_result): Likewise.
7324 (ipa_value_from_jfunc): Likewise.
7325 (ipa_get_lattice): Update.
7326 (ipa_lat_is_single_const): New function.
7327 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
7328 (ipa_init_func_list): Likewise.
7329 (ipa_pop_func_from_list): Likewise.
7330 (ipa_get_param_decl_index): Fix coding style.
7331 (count_formal_params): Removed.
7332 (count_formal_params_1): Renamed to count_formal_params.
7333 (ipa_populate_param_decls): Update to use descriptors vector.
7334 (ipa_initialize_node_params): Likewise.
7335 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
7336 (ipa_analyze_params_uses): Likewise.
7337 (ipa_free_node_params_substructures): Likewise and free also lattices
7338 and known values.
7339 (duplicate_array): Removed.
7340 (ipa_edge_duplication_hook): Add the new edge to the list of edge
7341 clones.
7342 (ipa_node_duplication_hook): Update to use new lattices.
7343 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
7344 (ipa_free_all_structures_after_iinln): Likewise.
7345 (ipa_write_node_info): Update to use new lattices.
7346 (ipa_read_node_info): Likewise.
7347 (ipa_get_jf_pass_through_result): New function.
7348 (ipa_get_jf_ancestor_result): Likewise.
7349 (ipa_value_from_jfunc): Likewise.
7350 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
7351 * ipa-cp.c: Reimplemented.
7352 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
7353 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
7354 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
7355 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
7356 * doc/invoke.texi (devirt-type-list-size): Removed description.
7357 (ipa-cp-value-list-size): Added description.
7358
6774a66f
RH
73592011-07-18 Richard Henderson <rth@redhat.com>
7360
7361 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
7362 before calling create_basic_block.
7363
8b316874
JJ
73642011-07-18 Jakub Jelinek <jakub@redhat.com>
7365
7366 PR middle-end/49675
7367 * tree.c (build_common_builtin_nodes): Register
7368 __builtin_return_address, __cyg_profile_func_enter
7369 and __cyg_profile_func_exit.
7370
9f68560b
RH
73712011-07-18 Richard Henderson <rth@redhat.com>
7372
7373 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
7374 (add_labels_and_missing_jumps): ... here.
7375 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
7376
03126412
UB
73772011-07-18 Uros Bizjak <ubizjak@gmail.com>
7378
7379 PR target/47744
7380 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
7381 of DImode hard registers in PLUS address chains.
7382
fbf80ef7
RO
73832011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7384
7385 PR bootstrap/49769
7386 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
7387 (alpha*-*-freebsd*): Likewise.
7388 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
7389 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
7390 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
7391 crtprec80.o, crtfastmath.o to extra_parts for all targets.
7392 (ia64*-*-elf*): Remove extra_parts.
7393 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
7394 (sparc64-*-linux*): Likewise.
7395 (sparc64-*-freebsd*): Likewise.
7396
7397 Revert:
7398 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
7399 (ia64*-*-linux*): Likewise.
7400 (mips64*-*-linux*): Likewise.
7401 (mips*-*-linux*): Likewise.
7402
daf633ba
DE
74032011-07-18 David Edelsohn <dje.gcc@gmail.com>
7404
7405 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
7406
4b4455e5
RG
74072011-07-18 Richard Guenther <rguenther@suse.de>
7408
7409 * gimplify.c (gimplify_expr): Use input_location, not saved_location
7410 when building new trees.
7411
e002c7cb
RG
74122011-07-18 Richard Guenther <rguenther@suse.de>
7413
7414 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
7415 expansion result to bitfield precision if required.
7416
e44dbbe1
RO
74172011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7418
7419 * config.gcc (i[3456x]86-*-netware*): Remove.
7420
7421 * gthr-nks.h: Remove.
7422 * configure.ac (enable_threads): Remove nks.
7423 * configure: Regenerate.
7424
7425 * config/i386/i386.c (ix86_encode_section_info): Remove netware
7426 reference.
7427 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
7428 <netware.h> reference.
7429
7430 * config/i386/netware-libgcc.c,
7431 gcc/config/i386/netware-libgcc.def,
7432 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
7433 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
7434 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
7435 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
7436
7437 * doc/extend.texi (Function Attributes,
7438 callee_pop_aggregate_return): Remove i?86-netware reference.
7439 * doc/install.texi (Configuration, --enable-threads): Remove nks.
7440
fd862017
JDA
74412011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7442
7443 PR target/49746
7444 Revert:
7445 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7446
7447 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
7448 patterns.
7449
1ff24749
EB
74502011-07-17 Eric Botcazou <ebotcazou@adacore.com>
7451
7452 PR middle-end/49732
7453 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
7454
a4a2c37d
MK
74552011-07-16 Matthias Klose <doko@ubuntu.com>
7456
7457 * doc/install.texi: Document --enable-static-libjava.
7458
ea6136a2
RH
74592011-07-15 Richard Henderson <rth@redhat.com>
7460
7461 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
7462 Replace all three arguments by returning a VEC of edges.
7463 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
7464 pointers and counts.
7465 (fix_edges_for_rarely_executed_code): Merge ...
7466 (rest_of_handle_partition_blocks): ... into...
7467 (partition_hot_cold_basic_blocks): ... here. Return todo items if
7468 any work was performed.
7469 (pass_partition_blocks): Clear todo_flags_finish.
7470
6545e33e
PC
74712011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
7472 Jakub Jelinek <jakub@redhat.com>
7473 Jonathan Wakely <jwakely.gcc@gmail.com>
7474
7475 PR libstdc++/49745
7476 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
7477 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
7478
6feeed06
JM
74792011-07-15 Jason Merrill <jason@redhat.com>
7480
7481 PR testsuite/49741
7482 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
7483 rather than --tool_opts.
7484
44762055
BS
74852011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
7486
7487 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 7488 corresponding gtype.state.
44762055 7489
1be0310c
JDA
74902011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7491
7492 PR target/49723
7493 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
7494
12c5ffe5
EB
74952011-07-15 Eric Botcazou <ebotcazou@adacore.com>
7496
7497 PR target/48220
7498 * doc/md.texi (Standard Names): Document window_save.
7499 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
7500 expand_debug_expr and expand_debug_source_expr. If the target has
7501 a window_save instruction, adjust the ENTRY_VALUE_EXP.
7502 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
7503 SSA_NAME_VAR is a parameter.
7504 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
7505 * var-tracking.c (parm_reg_t): New type and associated vector type.
7506 (windowed_parm_regs): New variable.
7507 (adjust_insn): If the target has a window_save instruction and this
7508 is the instruction, make its effect on parameter registers explicit.
7509 (next_non_note_insn_var_location): New function.
7510 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
7511 (vt_add_function_parameter): If the target has a window_save insn,
7512 adjust the incoming RTL and record that in windowed_parm_regs.
7513 (vt_finalize): Free windowed_parm_regs.
7514
bcead286
BS
75152011-07-15 Bernd Schmidt <bernds@codesourcery.com>
7516
7517 * doc/invoke.texi (C6X Options): New section.
7518 * doc/md.texi (TI C6X family): New section.
7519 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
7520 tic6x-*-uclinux.
7521 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
7522 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
7523 Provide C6X definitions.
7524 * config/c6x/c6x.md: New file.
7525 * config/c6x/constraints.md: New file.
7526 * config/c6x/predicates.md: New file.
7527 * config/c6x/c6x-sched.md.in: New file.
7528 * config/c6x/c6x-sched.md: New file.
7529 * config/c6x/gensched.sh: New file.
7530 * config/c6x/c6x-mult.md.in: New file.
7531 * config/c6x/genmult.sh: New file.
7532 * config/c6x/c6x-mult.md: New file.
7533 * config/c6x/sync.md: New file.
7534 * config/c6x/c6x-protos.h: New file.
7535 * config/c6x/sfp-machine.h: New file.
7536 * config/c6x/c6x.c: New file.
7537 * config/c6x/c6x.h: New file.
7538 * config/c6x/crti.s: New file.
7539 * config/c6x/crtn.s: New file.
7540 * config/c6x/lib1funcs.asm: New file.
7541 * config/c6x/c6x-modes.def: New file.
7542 * config/c6x/genopt.sh: New file.
7543 * config/c6x/c6x.opt: New file.
7544 * config/c6x/c6x-tables.opt: New file.
7545 * config/c6x/c6x-opts.h: New file.
7546 * config/c6x/c6x-isas.def: New file.
7547 * config/c6x/elf.h: New file.
7548 * config/c6x/elf-common.h: New file.
7549 * config/c6x/uclinux-elf.h: New file.
7550 * config/c6x/t-c6x: New file.
7551 * config/c6x/t-c6x-elf: New file.
7552 * config/c6x/t-c6x-uclinux: New file.
7553 * config/c6x/t-c6x-softfp: New file.
7554 * config/c6x/gtd.c: New file.
7555 * config/c6x/gtf.c: New file.
7556 * config/c6x/ltd.c: New file.
7557 * config/c6x/ltf.c: New file.
7558 * config/c6x/ged.c: New file.
7559 * config/c6x/gef.c: New file.
7560 * config/c6x/led.c: New file.
7561 * config/c6x/lef.c: New file.
7562 * config/c6x/eqd.c: New file.
7563 * config/c6x/eqf.c: New file.
7564 * config/c6x/libgcc-c6xeabi.ver: New file.
7565
aef0e7a8
BS
7566 Revert
7567 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
7568 PR rtl-optimization/11320
7569 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
7570 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
7571 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
7572 current_sched_info->compute_jump_reg_dependencies. Record which
7573 registers are used and which registers are set by the jump.
7574 Clear deps->reg_conditional_sets after a barrier.
7575 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
7576 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
7577 (init_deps): Initialize reg_conditional_sets.
7578 (free_deps): Clear reg_conditional_sets.
7579 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
7580 Mark registers live on entry of the fallthrough block and conditionally
7581 set as set by the jump. Mark registers live on entry of non-fallthrough
7582 blocks as used by the jump.
7583 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
7584 Mark new parameters as unused.
7585
9bed2f0d
AP
75862011-07-14 Andrew Pinski <pinskia@gmail.com>
7587
7588 PR tree-opt/49309
7589 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
7590 Use fold_build2_loc instead of build2.
7591 Use the correct type for the new tree.
7592
1f88caaa
BS
75932011-07-14 Bernd Schmidt <bernds@codesourcery.com>
7594
7595 PR rtl-optimization/11320
7596 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
7597 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
7598
d772f97c 75992011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 7600
d772f97c
GJL
7601 PR target/49487
7602 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
7603 of REG.
7604 (*rotw<mode>): Use const_int_operand for operand2.
7605 Use match_scatch for operand3.
7606 (*rotb<mode>): Ditto
7607 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
7608
1a5d20a4
RG
76092011-07-14 Richard Guenther <rguenther@suse.de>
7610
7611 PR tree-optimization/49651
7612 * tree-ssa-structalias.c (get_constraint_for_1): Properly
7613 handle dereferences with subvariables.
7614
5fbcc0ed
RG
76152011-07-14 Richard Guenther <rguenther@suse.de>
7616
7617 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
7618 (fold_stmt_1): Do it here directly on gimple and as a first thing.
7619
fbf3fee2
RG
76202011-07-14 Richard Guenther <rguenther@suse.de>
7621
7622 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
7623 not bool_var when folding bool_var != 1 or bool_var == 0.
7624
b953c2b8
BS
76252011-07-14 Bernd Schmidt <bernds@codesourcery.com>
7626
7627 * haifa-sched.c (schedule_insns): Remove outdated comment.
7628 (schedule_block): When computing a known value for TODO_SPEC,
7629 just set it rather than using logical operations.
7630 (try_ready): Likewise. Use a local variable rather than a
7631 pointer to TODO_SPEC. Reorder an if statement to move the
7632 easy case to the then block.
7633 * sched-deps.c (dep_spec_p): New static function.
7634 (update_dep): Use it to decide whether to call
7635 change_spec_dep_to_hard.
7636 (get_back_and_forw_lists): Use it.
7637 (sd_resolve_dep): Likewise.
7638 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
7639 (haifa_note_mem_dep): Likewise.
7640 (check_dep): Likewise.
7641 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
7642 (sched_free_deps): Free in two passes.
7643
1f098f07
RS
76442011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
7645
7646 PR middle-end/49736
7647 * expr.c (all_zeros_p): Undo bogus part of last change.
7648
73059910
MK
76492011-07-14 Matthias Klose <doko@ubuntu.com>
7650
7651 * doc/extend.texi (optimize attribute): Fix typo.
7652
bd5d002e
RG
76532011-07-14 Richard Guenther <rguenther@suse.de>
7654
7655 * gimplify.c (gimplify_expr): Only do required conversions.
7656
eb1dcdff
GJL
76572011-07-14 Georg-Johann Lay <avr@gjlay.de>
7658
7659 PR target/43746
7660 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
7661 i.e. use default_elf_select_section.
7662 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
7663 (READONLY_DATA_SECTION_ASM_OP): Remove.
7664 (TARGET_ASM_NAMED_SECTION): Move from here...
7665 * config/avr/avr.c: ...to here.
03126412 7666 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
7667 (avr_asm_named_section): Make static.
7668
d31fb329
RO
76692011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7670
7671 PR bootstrap/49739
03126412
UB
7672 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
7673 and crtfastmath.o for Linux/x86.
d31fb329 7674
26965010
BS
76752011-07-14 Bernd Schmidt <bernds@codesourcery.com>
7676
7677 * haifa-sched.c: Include "hashtab.h"
7678 (sched_no_dce): New global variable.
7679 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
7680 SHADOW_P): New macros.
7681 (last_clock_var, cycle_issued_insns): Move declarations.
7682 (must_backtrack): New static variable.
7683 (struct delay_pair): New structure.
7684 (delay_htab, delay_htab_i2): New static variables.
7685 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
7686 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
7687 functions.
7688 (dep_cost_1): If delay pairs exist, try to look up the insns and
7689 use the correct pair delay if we find them.
7690 (rank-for_schedule): Tweak priority for insns that must be scheduled
7691 soon to avoid backtracking.
7692 (queue_insn): Detect conditions which force backtracking.
7693 (ready_add): Likewise.
7694 (struct sched_block_state): Add member shadows_only_p.
7695 (struct haifa_save_data): New structure.
7696 (backtrack_queue): New static variable.
7697 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
7698 unschedule_insns_until, restore_last_backtrack_point,
7699 free_topmost_backtrack_point, free_backtrack_queue,
7700 estimate_insn_tick, estimate_shadow_tick): New functions.
7701 (prune_ready_list): New arg shadows_only_p. All callers changed.
7702 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 7703 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
7704 (verify_shadows): New function.
7705 (schedule_block): Add machinery to enable backtracking.
7706 (sched_init): Take sched_no_dce into account when setting
7707 DF_LR_RUN_DCE.
7708 (free_delay_pairs): New function.
7709 (init_h_i_d): Initialize INSN_EXACT_TICK.
7710 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
7711 * sched-deps.c (sd_unresolve_dep): New function.
7712 * sched-int. (struct haifa_sched_info): New fields save_state
7713 and restore_state.
7714 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
7715 feeds_backtrack_insn and shadow_p.
7716 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
7717 (sched_no_dce): Declare variable.
7718 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
7719 sd_unresolve_dep): Declare functions.
7720 * modulo-sched.c (sms_sched_info): Clear the two new fields.
7721 * sched-rgn.c (rgn_const_sched_info): Likewise.
7722 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
7723 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
7724 (ebb_sched_info): Add them for the two new fields.
7725 (add_deps_for_risky_insns): Call add_delay_dependencies.
7726
1db75f6c
MM
77272011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
7728
7729 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
7730 Rename -mr11.
7731 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
7732 (rs6000_call_indirect_aix): Ditto.
7733 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
7734 (call_indirect_aix<ptrsize>_internal): Ditto.
7735 (call_indirect_aix<ptrsize>_nor11): Ditto.
7736 (call_indirect_aix<ptrsize>_internal2): Ditto.
7737 (call_value_indirect_aix<ptrsize>): Ditto.
7738 (call_value_indirect_aix<ptrsize>_internal): Ditto.
7739 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
7740 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
7741 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
7742
e2995714
JM
77432011-07-13 Jason Merrill <jason@redhat.com>
7744
7745 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
7746
4dfe3ad5
UW
77472011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7748
7749 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
7750 * config/spu/spu.md ("clrsb<mode>2"): New expander.
7751
dddc6762
TS
77522011-07-13 Thomas Schwinge <thomas@schwinge.name>
7753
7754 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
7755 * configure: Regenerate.
7756
b4d80e56
UW
77572011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7758
7759 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
7760 (asm_file_start): Remove.
7761 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
7762 free_bb_for_insn around code that modifies insns before
7763 restarting df analysis.
7764
9e34e53f
RO
77652011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7766
7767 PR target/49541
03126412 7768 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
7769 (LINK_SPEC): ... here.
7770
51564684
BS
77712011-07-13 Bernd Schmidt <bernds@codesourcery.com>
7772
7773 * haifa-sched.c (struct sched_block_state): New.
7774 (schedule_block): Move some local variables into such a structure.
7775
b3fe1584
RO
77762011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7777
7778 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
7779 * config/i386/t-crtpc: Remove.
7780 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
7781 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
7782 tmake_file.
7783 (x86_64-*-darwin*): Likewise.
7784 (i[34567]86-*-linux*): Likewise.
7785 (x86_64-*-linux*): Likewise.
7786
7787 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
7788 Handle -mpc32, -mpc64, -mpc80.
7789
35d8090d
RO
77902011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7791
7792 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
7793 * config/alpha/t-crtfm: Remove.
7794 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
7795 * config/i386/t-crtfm: Remove.
7796 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
7797 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
7798 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
7799 * config/sparc/t-crtfm: Remove.
7800
7801 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
7802 (alpha*-*-freebsd*): Likewise.
7803 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
7804 (x86_64-*-darwin*): Likewise.
7805 (i[34567]86-*-linux*): Likewise.
7806 (x86_64-*-linux*): Likewise.
7807 (x86_64-*-mingw*): Likewise.
7808 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
7809 (ia64*-*-freebsd*): Likewise.
7810 (ia64*-*-linux*): Likewise.
7811 (mips64*-*-linux*): Likewise.
7812 (mips*-*-linux*): Likewise.
7813 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
7814 (sparc64-*-linux*): Likewise.
7815 (sparc64-*-freebsd*): Likewise.
7816
e141542e
RO
78172011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7818
7819 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
7820 * config/darwin-crt3.c: Move to ../libgcc/config.
7821 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
7822 ($(T)crt3$(objext)): Remove.
7823 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
7824 ($(T)crt2$(objext)): Remove.
7825 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
7826 (powerpc64-*-darwin*): Likewise.
7827
72fbc381
L
78282011-07-13 H.J. Lu <hongjiu.lu@intel.com>
7829
03126412 7830 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
7831
7832 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
7833 (addsi_1_zext): This.
7834
727a65e6
BS
78352011-07-13 Bernd Schmidt <bernds@codesourcery.com>
7836
7837 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
7838 * doc/tm.texi: Regenerate.
73451ae7 7839 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
7840 * varasm.c (mergeable_string_section, mergeable_constant_section):
7841 Use it. Allocate name with alloca.
7842
cb77b6cf
L
78432011-07-13 H.J. Lu <hongjiu.lu@intel.com>
7844
7845 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
7846
36fc3799
RS
78472011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
7848
7849 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
7850 overlap check.
7851
953d0c90
RS
78522011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
7853
7854 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
7855 (count_type_elements): Delete.
7856 (complete_ctor_at_level_p): Declare.
7857 * expr.c (flexible_array_member_p): New function, split out from...
7858 (count_type_elements): ...here. Make static. Replace allow_flexarr
7859 parameter with for_ctor_p. When for_ctor_p is true, return the
7860 number of elements that should appear in the top-level constructor,
7861 otherwise return an estimate of the number of scalars.
7862 (categorize_ctor_elements): Replace p_must_clear with p_complete.
7863 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
7864 (complete_ctor_at_level_p): New function, borrowing union logic
7865 from old categorize_ctor_elements_1.
7866 (mostly_zeros_p): Return true if the constructor is not complete.
7867 (all_zeros_p): Update call to categorize_ctor_elements.
7868 * gimplify.c (gimplify_init_constructor): Update call to
7869 categorize_ctor_elements. Don't call count_type_elements.
7870 Unconditionally prevent clearing for variable-sized types,
7871 otherwise rely on categorize_ctor_elements to detect
7872 incomplete initializers.
7873
9111c715
RG
78742011-07-13 Richard Guenther <rguenther@suse.de>
7875
7876 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
7877 the final type is integral.
7878
a19af9c4
BS
78792011-07-13 Bernd Schmidt <bernds@codesourcery.com>
7880
7881 * sched-int.h (struct _dep): Add member cost.
7882 (DEP_COST, UNKNOWN_DEP_COST): New macros.
7883 * sched-deps.c (init_dep_1): Initialize DEP_COST.
7884 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
7885 (sched_change_pattern): Reset it for dependent insns.
7886
2d1efe2d
RO
78872011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7888
7889 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
7890 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
7891 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
7892 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
7893 (CRT0_S, MCRT0_S): Remove.
7894 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
7895 Remove.
7896 (s-crt0): Remove.
7897 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
7898
e84a58ff
EB
78992011-07-12 Eric Botcazou <ebotcazou@adacore.com>
7900
7901 * cse.c (insert_with_costs): Put semi-colon after empty loop body
7902 on the next line.
7903 * emit-rtl.c (push_to_sequence): Likewise.
7904 * haifa-sched.c (max_issue): Likewise.
7905 * matrix-reorg.c (add_allocation_site): Likewise.
7906 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
7907 * reload.c (alternative_allows_const_pool_ref): Likewise.
7908 * sched-rgn.c (rgn_add_block): Likewise.
7909 (rgn_fix_recovery_cfg): Likewise.
7910 * tree.c (attribute_list_contained): Likewise.
7911
3a4ffde6
UB
79122011-07-12 Uros Bizjak <ubizjak@gmail.com>
7913
7914 * config/i386/i386.c: Tidy processor feature bitmasks.
7915 (m_P4_NOCONA): New.
7916
10b75750
AP
79172011-07-12 Andrew Pinski <pinskia@gmail.com>
7918
7919 PR rtl-opt/49474
7920 * cprop.c (find_implicit_sets): Correct the condition.
7921
4f42d714
RH
79222011-07-12 Richard Henderson <rth@redhat.com>
7923
7924 PR target/49713
7925 * dwarf2out.h (dwarf_frame_regnum): Remove.
7926 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
7927 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
7928 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
7929 (execute_dwarf2_frame): Initialize them.
7930 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
7931 users of the macros with the variables.
7932 (expand_builtin_dwarf_sp_column): Revert last change.
7933 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
7934 result of DWARF_FRAME_REGNUM into a local variable.
7935
3a5e4ad6
RH
79362011-07-12 Richard Henderson <rth@redhat.com>
7937
7938 PR target/49714
7939 * config/i386/i386.c (x86_output_mi_thunk): Use
7940 machopic_indirect_call_target instead of machopic_indirection_name
7941 directly.
7942
9e9bd455
LG
79432011-07-12 Laurent GUERBY <laurent@guerby.net>
7944 Eric Botcazou <ebotcazou@adacore.com>
7945
7946 * prefix.h: Wrap up in extern "C" block.
7947
4d652a18
HJ
79482011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
7949
7950 AMD bdver2 Enablement
7951 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
7952 (case ${target}): Add bdver2.
7953 * config/i386/driver-i386.c (host_detect_local_cpu): Let
7954 -march=native recognize bdver2 processors.
7955 * config/i386/i386-c.c (ix86_target_macros_internal): Add
7956 bdver2 def_and_undef
7957 * config/i386/i386.c (struct processor_costs bdver2_cost): New
7958 bdver2 cost table.
7959 (m_BDVER2): New definition.
7960 (m_AMD_MULTIPLE): Includes m_BDVER2.
7961 (initial_ix86_tune_features): Add bdver2 tuning.
7962 (processor_target_table): Add bdver2 entry.
7963 (static const char *const cpu_names): Add bdver2 entry.
7964 (ix86_option_override_internal): Add bdver2 instruction sets.
7965 (ix86_issue_rate): Add bdver2.
7966 (ix86_adjust_cost): Add bdver2.
7967 (has_dispatch): Add bdver2.
7968 * config/i386/i386.h (TARGET_BDVER2): New definition.
7969 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
7970 (enum processor_type): Add PROCESSOR_BDVER2.
7971 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
7972 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
7973 description.
7974
5756d08c
RH
79752011-07-12 Richard Henderson <rth@redhat.com>
7976
7977 PR target/49714
7978 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
7979 destination address in memory on some paths.
7980
123148b5
BS
79812011-07-12 Bernd Schmidt <bernds@codesourcery.com>
7982
7983 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
7984 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
7985 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
7986 * function.c (locate_and_pad_parm): Take it into account.
7987 * target.def (function_arg_round_boundary): New hook.
7988 * targhooks.c (default_function_arg_round_boundary): New function.
7989 * targhooks.h (default_function_arg_round_boundary): Declare.
7990 * doc/tm.texi: Regenerate.
7991
b7a83ad8
RG
79922011-07-12 Richard Guenther <rguenther@suse.de>
7993
7994 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
7995 Do not perform no-op changes.
7996
12c4ecb1
RS
79972011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
7998
7999 * config/arm/predicates.md (neon_struct_operand): Make a normal
8000 predicate.
8001 (neon_struct_or_register_operand): New predicate.
8002 * config/arm/neon.md (movmisalign<mode>): Replace predicates
8003 with neon_struct_or_register_operand.
8004 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
8005 neon_struct_operand instead of memory_operand.
8006
ab079773
MJ
80072011-07-12 Martin Jambor <mjambor@suse.cz>
8008
8009 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
8010 * cgraph.c (cgraph_get_node_or_alias): Removed.
8011 (change_decl_assembler_name): Changed all calls to
8012 cgraph_get_node_or_alias to a call to cgraph_get_node.
8013 (cgraph_make_decl_local): Likewise.
8014 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
8015 * varasm.c (default_binds_local_p_1): Likewise.
8016 (decl_binds_to_current_def_p): Likewise.
8017
d5fed62d
JJ
80182011-07-12 Jakub Jelinek <jakub@redhat.com>
8019
8020 PR tree-optimization/49712
8021 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
8022
c0b6224a
BS
80232011-07-11 Bernd Schmidt <bernds@codesourcery.com>
8024
8025 * genautomata.c (add_arc): Return void. All callers changed.
8026 (make_automaton): Remove dead code.
8027
7263c6d7
RH
80282011-07-11 Richard Henderson <rth@redhat.com>
8029
8030 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
8031 (DW_FRAME_POINTER_REGNUM): New.
8032 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
8033 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
8034 (dwf_regno): New.
8035 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
8036 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
8037 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
8038 Use it.
8039 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
8040 * dwarf2out.h (dwarf_frame_regnum): New.
8041 (struct cfa_loc): Document the domain of the reg member.
8042
f9610d20
UB
80432011-07-11 Uros Bizjak <ubizjak@gmail.com>
8044
8045 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
8046 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
8047
96ae7458
JJ
80482011-07-11 Jakub Jelinek <jakub@redhat.com>
8049
8050 PR debug/49676
8051 * dwarf2out.c (int_shift_loc_descriptor): New function.
8052 (int_loc_descriptor): If shorter, emit i as
8053 (i >> shift), shift, DW_OP_shl for suitable shift value.
8054 Similarly, try to optimize large negative values using
8055 DW_OP_neg of a positive value if shorter.
8056 (size_of_int_shift_loc_descriptor): New function.
8057 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
8058 changes.
8059 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
8060 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
8061 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
8062 is shorter.
8063 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
8064 addend as added DW_OP_plus if it is shorter.
8065
feffaec4
RO
80662011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8067
8068 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
8069 (DTORS_SECTION_ASM_OP): Define.
8070
2d8d5935
RO
80712011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8072
8073 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
8074 * config/t-dfprules: Move to ../libgcc/config.
8075 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
8076 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
8077 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
8078 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
8079 Likewise.
8080 (i[34567]86-*-cygwin*): Likewise.
8081 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
8082 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
8083 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
8084 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
8085 D64PBIT_FUNCS, D128PBIT_FUNCS.
8086
dcc95c20
RG
80872011-07-11 Richard Guenther <rguenther@suse.de>
8088
8089 * tree-vrp.c (simplify_conversion_using_ranges): Manually
8090 translate the source value-range through the conversion chain.
8091
28164eed
RS
80922011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
8093
8094 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
8095
f3054223
AL
80962011-07-11 Arthur Loiret <aloiret@debian.org>
8097
8098 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
8099 a bi-arch compiler defaulting to 31-bit. In this case:
8100 (tmake_file): Add s390/t-linux64.
8101 * doc/install.texi: Add s390-linux to the list of targets supporting
8102 --enable-targets=all.
8103
bd5ab709
AL
81042011-07-11 Arthur Loiret <aloiret@debian.org>
8105 Matthias Klose <doko@debian.org>
8106
8107 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
8108 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
8109 (tm_file): Add mips/linux64.h.
8110 (tmake_file): Add mips/t-linux64.
8111 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
8112 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
8113 instead of hardcoded mabi=n32.
8114 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
8115 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
8116 convention.
8117
d3b7e946
AK
81182011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8119
8120 * passes.c (init_optimization_passes): Add invariant motion pass
8121 after induction variable optimization.
8122
7e4ec472 81232011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 8124
7e4ec472
GJL
8125 PR target/39633
8126 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
8127 offsets 1..5 set cc0 in a usable way.
8128
0e65e631
RG
81292011-07-11 Romain Geissler <romain.geissler@gmail.com>
8130
8131 * tree.h (call_expr_arg): Remove.
8132 (call_expr_argp): Likewise.
8133
18970372
EB
81342011-07-11 Eric Botcazou <ebotcazou@adacore.com>
8135
8136 * config/sparc/sparc.md (save_register_window_1): Rename to...
8137 (window_save): ...this.
8138 * config/sparc/sparc.c (emit_save_register_window): Rename to...
8139 (emit_window_save): ...this.
8140 (sparc_expand_prologue): Adjust to above renaming.
8141
9e419e38
L
81422011-07-10 H.J. Lu <hongjiu.lu@intel.com>
8143
8144 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
8145 of movabs for x32.
8146
3db72de3
RH
81472011-07-10 Richard Henderson <rth@redhat.com>
8148
8149 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
8150 run final, instead of emitting text directly.
8151
a1f91bca
L
81522011-07-10 H.J. Lu <hongjiu.lu@intel.com>
8153
8154 * config/i386/i386.c (ix86_option_override_internal): Turn on
8155 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
8156 small PIC models for TARGET_X32.
8157
a50023f9
HPN
81582011-07-10 Hans-Peter Nilsson <hp@axis.com>
8159
9a0b29f0
HPN
8160 PR target/49684
8161 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
8162 $(LIBGCC2_CFLAGS).
8163
a50023f9
HPN
8164 PR bootstrap/49680
8165 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
8166 stray notes and debug insns by using prev_nonnote_nondebug_insn
8167 instead of PREV_INSN.
8168
948d330e
RH
81692011-07-09 Richard Henderson <rth@redhat.com>
8170
8171 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
8172 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
8173 * dwarf2out.c: ... here.
8174 (output_all_cfis): Remove.
8175 (dwarf2out_switch_text_section): Use output_cfis directly.
8176 (size_of_locs): Export.
8177 (output_loc_sequence, output_loc_sequence_raw): Export.
8178 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
8179 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
8180 output_cfa_loc_raw): Move to ...
8181 * dwarfcfi.c: ... here.
8182 * dwarf2out.h: Update decls.
8183
db42e39d
RH
81842011-07-09 Richard Henderson <rth@redhat.com>
8185
8186 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
8187 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
8188 * dwarf2cfi.c: ... here.
8189 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
8190 (DWARF_ROUND, DWARF_CIE_ID): Remove.
8191 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
8192 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
8193 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
8194
a8e5c0e7
RH
81952011-07-09 Richard Henderson <rth@redhat.com>
8196
8197 * dwarf2cfi.c (cie_return_save): New.
8198 (queue_reg_save): Use compare_reg_or_pc.
8199 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
8200 (dwarf2out_frame_debug_expr): Likewise.
8201 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
8202 (initial_return_save): Likewise.
8203 (execute_dwarf2_frame): Save and restore initial return save from
8204 the cie to the fde.
8205 * config/mips/mips.c (mips_frame_set): Remove special case for
8206 DWARF_FRAME_RETURN_COLUMN.
8207
4a8ee122
RH
82082011-07-09 Richard Henderson <rth@redhat.com>
8209
8210 * dwarf2cfi.c (lookup_cfa): Remove.
8211 (execute_dwarf2_frame): Assert queues are empty on entry.
8212 Setup initial cfa directly, not via lookup_cfa.
8213 Don't clear args_size state here.
8214
3edb53aa
RH
82152011-07-09 Richard Henderson <rth@redhat.com>
8216
8217 * dwarf2cfi.c (add_cfi_vec): New.
8218 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
8219 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
8220 (execute_dwarf2_frame): Set add_cfi_vec.
8221
ded49a7f
RH
82222011-07-09 Richard Henderson <rth@redhat.com>
8223
8224 * defaults.h (ASM_COMMENT_START): Move here...
8225 * dwarf2asm.c: ... from here.
8226 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
8227 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
8228 * varasm.c: Likewise.
8229
45fba6d1
RH
82302011-07-09 Richard Henderson <rth@redhat.com>
8231
8232 PR debug/49686
8233 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
8234 (create_cfi_notes): ... do it here instead.
8235
5b696ba2
JJ
82362011-07-09 Jakub Jelinek <jakub@redhat.com>
8237
8238 PR debug/49676
8239 * dwarf2out.c (size_of_int_loc_descriptor): New function.
8240 (address_of_int_loc_descriptor): Use it.
f9610d20 8241 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 8242
8662b2ba
RH
82432011-07-09 Richard Henderson <rth@redhat.com>
8244
8245 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
8246 (prologue, epilogue): New.
8247 (return, *rts): New.
8248 (blockage, setd, seti): New.
8249 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
8250 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
8251 (pdp11_saved_regno): New.
8252 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
8253 generate rtl instead of text.
8254 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
8255 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
8256 * config/pdp11/pdp11-protos.h: Update.
8257
28b21ebb
RH
82582011-07-09 Richard Henderson <rth@redhat.com>
8259
8260 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
8261 try to insert an rtl prologue here.
8262 (rs6000_output_function_epilogue): Similarly.
8263 * config/rs6000/rs6000.md (prologue): Emit a barrier to
8264 satisfy !TARGET_SCHED_PROLOG.
8265 (epilogue, sibcall_epilogue): Likewise.
8266
0a222ba7
EB
82672011-07-09 Eric Botcazou <ebotcazou@adacore.com>
8268
8269 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
8270 (FP_REG_P): Delete.
8271 (IN_OR_GLOBAL_P): Likewise.
8272
2fda8e14
JM
82732011-07-08 Jason Merrill <jason@redhat.com>
8274
4063e61b
JM
8275 PR c++/45437
8276 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
8277 compound assignment.
8278
2fda8e14
JM
8279 * cgraph.c (cgraph_add_to_same_comdat_group): New.
8280 * cgraph.h: Declare it.
8281 * ipa.c (function_and_variable_visibility): Make sure thunks
8282 have the right visibility.
8283
830f11fe
RH
82842011-07-08 Richard Henderson <rth@redhat.com>
8285
8286 PR bootstrap/49680
8287 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
8288 any tablejump vector.
8289
965b2557
RH
8290 PR bootstrap/49680
8291 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
8292 end of the prologue.
8293
70db9095
JJ
82942011-07-08 Jakub Jelinek <jakub@redhat.com>
8295
8296 PR target/49621
8297 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 8298 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
8299 * config/rs6000/vector.md (vector_select_<mode>,
8300 vector_select_<mode>_uns): Change second operand of NE to
8301 CONST0_RTX (<MODE>mode) instead of const0_rtx.
8302 * config/rs6000/altivec.md (*altivec_vsel<mode>,
8303 *altivec_vsel<mode>_uns): Expect second operand of NE to be
8304 zero_constant of the corresponding vector mode.
8305 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
8306 Likewise.
8307
e92c5020
SP
83082011-07-08 Sebastian Pop <sebastian.pop@amd.com>
8309
8310 * graphite-dependences.c (build_alias_set_powerset): Remove
8311 continue from loop, add one more assert.
8312
3e4f8484 83132011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 8314
3e4f8484
GJL
8315 PR target/46779
8316 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
8317 In particular, allow 8-bit values in r28 and r29.
8318 (avr_hard_regno_scratch_ok): Disallow any register that might be
8319 part of the frame pointer.
8320 (avr_hard_regno_rename_ok): Same.
8321 (avr_legitimate_address_p): Don't allow SUBREGs.
8322
0094f21b
JB
83232011-07-08 Julian Brown <julian@codesourcery.com>
8324
8325 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
8326 big-endian mode.
8327 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
8328 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
8329 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
8330 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
8331 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
8332 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
8333 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
8334 registers in big-endian mode.
8335
9ae60101
BS
83362011-07-08 Bernd Schmidt <bernds@codesourcery.com>
8337
8338 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
8339 in terms of another.
8340 (write_attr_value): Write a cast if necessary.
8341
c0a6a1ef
BS
8342 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
8343 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
8344 (REG_WORDS_BIG_ENDIAN): Document.
8345 * doc/tm.texi: Regenerate.
8346 * reload.c (operands_match_p): Take it into account.
8347 (reload_adjust_reg_for_mode): Likewise.
8348 * rtlanal.c (subreg_get_info): Likewise.
8349
b862187a
RG
83502011-07-08 Richard Guenther <rguenther@suse.de>
8351
8352 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
8353 folding.
8354
e8e8c74b
KT
83552011-07-08 Kai Tietz <ktietz@redhat.com>
8356
8357 * fold-const.c (fold_truth_andor): Factored out truth_andor
8358 label from fold_binary as function.
8359 (fold_binary_loc): Replace truth_andor lable
8360 by function fold_truth_andor.
8361
6c3cb698
KY
83622011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
8363
8364 PR middle-end/49519
8365 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
8366 check if address is stored in register. If so - give up.
8367 (check_sibcall_argument_overlap_1): Do not perform check of
8368 overlapping when it is call to address.
8369
7d8d6d73 83702011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 8371
7d8d6d73
GJL
8372 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
8373 of magic '31'.
8374
69660a70
BS
83752011-07-08 Bernd Schmidt <bernds@codesourcery.com>
8376
8377 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
8378 GET_MODE_BITSIZE where appropriate.
8379 (widen_leading, expand_parity, expand_ctz, expand_ffs,
8380 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
8381 expand_float, expand_fix): Likewise.
8382 * expr.c (convert_move, convert_modes, expand_expr_real_2,
8383 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
8384 * stor-layout.c (get_mode_bounds): Likewise.
8385 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
8386 Likewise.
8387 * convert.c (convert_to_integer): Likewise.
8388 * expmed.c (expand_shift_1): Likewise.
8389
86cdf393
BS
8390 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
8391 a bitsize.
8392
0d44736e
BS
8393 * optabs.c (expand_binop): Tighten conditions for doubleword
8394 expansions.
f9610d20 8395 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
8396 * stor-layout.c (get_best_mode): Skip modes that have lower
8397 precision than bitsize.
8398 * recog.c (simplify_while_replacing): Assert that bitsize and
8399 precision are the same.
8400
2c50b2c3
RO
84012011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8402
8403 * Makefile.in (LIBGCOV): Remove.
8404 (libgcc.mvars): Remove LIBGCOV.
8405 * libgov.c: Move to ../libgcc.
8406
a039d7c2
RO
84072011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8408
8409 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
8410
e923ef41
MJ
84112011-07-08 Martin Jambor <mjambor@suse.cz>
8412
8413 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
8414 is too big for total scalarization.
8415
b709e189
RH
84162011-07-07 Richard Henderson <rth@redhat.com>
8417
8418 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
8419 (DBX_DEBUGGING_INFO): Undef.
8420
2867fa7c
RH
84212011-07-07 Richard Henderson <rth@redhat.com>
8422
8423 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
8424 Handle some opcodes specially for debugging.
8425 * print-rtl.c: Include dwarf2out.h
8426 (print_rtx): Handle NOTE_INSN_CFI.
8427 * Makefile.in (print-rtl.o): Update.
8428
7644b3c7
RH
84292011-07-07 Richard Henderson <rth@redhat.com>
8430
8431 * tree-pass.h (pass_dwarf2_frame): Declare.
8432 * passes.c (init_optimization_passes): Add it.
8433 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
8434 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
8435 make static, do not call add_cfis_to_fde.
8436 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
8437 dwarf2out_frame_init): Merge into...
8438 (execute_dwarf2_frame): ... here. New function.
8439 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
8440 saved_do_cfi_asm to a tri-state variable.
8441 (gate_dwarf2_frame, pass_dwarf2_frame): New.
8442 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
8443 if it has yet to be done. Don't call dwarf2cfi_function_init.
8444 * dwarf2out.h, debug.h: Update decls.
8445 * final.c (final_start_function): Don't call
8446 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
8447 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
8448 * toplev.c (lang_dependent_init): Likewise.
8449
a518b996
RH
84502011-07-07 Richard Henderson <rth@redhat.com>
8451
8452 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
8453 FDE_TABLE_INCREMENT): Replace with...
8454 (fde_vec): ... this, a new vector.
8455 (current_fde): Remove. Replace all users with cfun->fde.
8456 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
8457 (size_of_aranges, dwarf2out_finish): Likewise.
8458 (dwarf2out_alloc_current_fde): Break out from ...
8459 (dwarf2out_begin_prologue): ... here.
8460 (dwarf2out_frame_init): Remove.
8461 * dwarf2cfi.c: Update all users of current_fde.
8462 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
8463 * dwarf2out.h: Update decls.
8464 (dw_fde_node): Add fde_index member.
8465 * function.h (struct function): Add fde member.
8466
89e25f95
BS
84672011-07-07 Bernd Schmidt <bernds@codesourcery.com>
8468 Richard Henderson <rth@redhat.com>
8469
8470 * dwarf2cfi.c (add_cfi): Remove.
8471 (dwarf2out_cfi_label): Remove force argument. Only generate the
8472 label name.
8473 (add_fde_cfi): Simplify the different code paths.
8474 (add_cie_cfi): New.
8475 (old_cfa, old_cfa_remember): New.
8476 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
8477 (last_reg_save_label): Remove.
8478 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
8479 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
8480 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
8481 dwarf2out_frame_debug_cfa_expression,
8482 dwarf2out_frame_debug_cfa_restore,
8483 dwarf2out_frame_debug_cfa_window_save,
8484 dwarf2out_frame_debug_expr): Remove label parameter.
8485 (cfi_label_required_p, add_cfis_to_fde): New.
8486 (dwarf2out_frame_debug_after_prologue): New.
8487 (dwarf2cfi_frame_init): Initialize old_cfa.
8488 (dwarf2out_frame_debug_restore_state): Likewise.
8489 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
8490 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
8491 * final.c (final_start_function): Call
8492 dwarf2out_frame_debug_after_prologue.
8493
bc5612ed
BS
84942011-07-07 Bernd Schmidt <bernds@codesourcery.com>
8495 Richard Henderson <rth@redhat.com>
8496
8497 * dwarf2cfi.c (cfi_insn): New.
8498 (dwarf2out_cfi_label): Don't emit cfi label here.
8499 (add_fde_cfi): Create a NOTE_INSN_CFI.
8500 (dwarf2out_frame_debug): Setup cfi_insn.
8501 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
8502 (dwarf2out_cfi_begin_epilogue): Make static.
8503 (dwarf2out_frame_debug_restore_state): Make static.
8504 * dwarf2out.c (output_cfi_directive): Make static.
8505 (dwarf2out_emit_cfi): New.
8506 * dwarf2out.h: Update.
8507 * final.c (final): Remove CFI notes.
8508 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
8509 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
8510 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
8511 * insn-notes.def (NOTE_INSN_CFI): New.
8512 (NOTE_INSN_CFI_LABEL): New.
8513 * rtl.h (union rtunion_def): Add rt_cfi member.
8514 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
8515
647a1567
RH
85162011-07-07 Richard Henderson <rth@redhat.com>
8517
8518 * dwarf2cfi.c: New file.
8519 * Makefile.in (OBJS): Add it.
8520 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
8521 * gengtype.c (open_base_files): Include dwarf2out.h.
8522 * coretypes.h (enum var_init_status): Move from ...
8523 * rtl.h: ... here.
8524 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
8525 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
8526 expand_builtin_dwarf_sp_column, init_return_column_size,
8527 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
8528 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
8529 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
8530 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
8531 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
8532 compute_barrier_args_size, dwarf2out_args_size,
8533 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
8534 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
8535 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
8536 queue_reg_save, dwarf2out_flush_queued_reg_saves,
8537 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
8538 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
8539 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
8540 dwarf2out_frame_debug_cfa_expression,
8541 dwarf2out_frame_debug_cfa_restore,
8542 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
8543 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
8544 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
8545 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
8546 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
8547 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
8548 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
8549 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
8550 dw_loc_descr_node): Move to dwarf2out.h.
8551 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
8552 mem_loc_descriptor): Export.
8553 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
8554 (dwarf2out_frame_init): Extract CIE generation code to
8555 dwarf2cfi_frame_init.
8556
b286d9ed
EB
85572011-07-07 Eric Botcazou <ebotcazou@adacore.com>
8558
8559 PR target/49660
8560 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
8561 MASK_V8PLUS, remove commented out flag and reorder.
8562
c4603e7c
JJ
85632011-07-07 Jakub Jelinek <jakub@redhat.com>
8564
8565 PR c/49644
8566 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
8567 one non-complex and one complex argument, call c_save_expr on both
8568 operands.
8569
81361831
MJ
85702011-07-07 Martin Jambor <mjambor@suse.cz>
8571
8572 PR middle-end/49495
8573 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
8574 (verify_cgraph_node): Some functinality moved to
8575 verify_edge_corresponds_to_fndecl, call it.
8576
1e4b2746
JM
85772011-07-07 Joseph Myers <joseph@codesourcery.com>
8578
8579 * config.gcc (*local*): Remove.
8580 * doc/install-old.texi: Don't mention local configurations.
8581
d7ff1e11
JJ
85822011-07-07 Jakub Jelinek <jakub@redhat.com>
8583
8584 PR debug/49522
8585 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
8586 referencing debug insns that have been reset.
8587 (dead_debug_insert_before): Don't assert reg is non-NULL,
8588 instead return immediately if it is NULL.
8589
2492731a
JM
85902011-07-07 Joseph Myers <joseph@codesourcery.com>
8591
f9610d20 8592 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 8593
9d9c740d
BS
85942011-07-07 Bernd Schmidt <bernds@codesourcery.com>
8595
8596 * hw-doloop.c: New file.
8597 * hw-doloop.h: New file.
8598 * Makefile.in (OBJS): Add hw-doloop.o.
8599 (hw-doloop.o): New rule.
8600 ($(obj_out_file)): Add hw-doloop.h dependency.
8601 * config/bfin/bfin.c: Include "hw-doloop.h".
8602 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
8603 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
8604 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
8605 type changed to hwloop_info. Return bool, true if the loop was
8606 successfully optimized. Remove code that was moved to
8607 hw-doloop.c, and adjust other parts.
8608 (hwloop_fail): New static function, containing parts that used
8609 to be in bfin_optimize_loop.
8610 (bfin_discover_loop, bfin_discover_loops, free_loops,
8611 bfin_reorder_loops): Remove.
8612 (hwloop_pattern_reg): New static function.
8613 (bfin_doloop_hooks): New variable.
8614 (bfin_reorg_loops): Remove most code, call reorg_loops.
8615 * config/bfin/bfin.md (doloop_end splitter): Also enable if
8616 loop counter is a memory_operand.
8617
f0ea7581
L
86182011-07-07 H.J. Lu <hongjiu.lu@intel.com>
8619
f9610d20 8620 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
8621
8622 * configure.ac: Mention x86-64 for --with-multilib-list.
8623 * configure: Regenerated.
8624
8625 * config/i386/gnu-user64.h (SPEC_64): Support x32.
8626 (SPEC_32): Likewise.
8627 (ASM_SPEC): Likewise.
8628 (LINK_SPEC): Likewise.
8629 (TARGET_THREAD_SSP_OFFSET): Likewise.
8630 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
8631 (SPEC_X32): New.
8632
8633 * config/i386/i386.h (TARGET_X32): New.
8634 (TARGET_LP64): New.
8635 (LONG_TYPE_SIZE): Likewise.
8636 (POINTER_SIZE): Likewise.
8637 (POINTERS_EXTEND_UNSIGNED): Likewise.
8638 (OPT_ARCH64): Support x32.
8639 (OPT_ARCH32): Likewise.
8640
8641 * config/i386/i386.opt (mx32): New.
8642
8643 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
8644 (GLIBC_DYNAMIC_LINKERX32): Likewise.
8645 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
8646 (GLIBC_DYNAMIC_LINKERX32): Likewise.
8647
8648 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
8649 (BIONIC_DYNAMIC_LINKERX32): Likewise.
8650 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
8651
8652 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
8653
f9610d20 8654 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
8655
8656 * doc/invoke.texi: Document -mx32.
8657
38460025
RS
86582011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
8659
8660 * doc/invoke.texi (mwords-little-endian): Deprecate.
8661 * config/arm/arm.opt (mwords-little-endian): Likewise.
8662 * config/arm/arm.c (arm_option_override): Warn about the deprecation
8663 of -mwords-little-endian.
8664
3f125532
RS
86652011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
8666
8667 * reload1.c (choose_reload_regs): Use mode sizes to check whether
8668 an old reload register completely defines the required value.
8669
bbc210ab
RG
86702011-07-07 Richard Guenther <rguenther@suse.de>
8671
8672 * fold-const.c (fold_unary_loc): Do not strip sign-changes
8673 for NEGATE_EXPR.
8674
29c5134a
RG
86752011-07-07 Richard Guenther <rguenther@suse.de>
8676
8677 * tree-vrp.c (simplify_conversion_using_ranges): New function.
8678 (simplify_stmt_using_ranges): Call it.
8679
0816a42a
KT
86802011-07-07 Kai Tietz <ktietz@redhat.com>
8681
8682 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
8683 (lookup_logical_inverted_value): Likewise.
8684 (simplify_bitwise_binary_1): Likewise.
8685 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
8686
3ce9f090
JM
86872011-07-07 Joseph Myers <joseph@codesourcery.com>
8688
8689 * gcc.c (%[Spec]): Don't document.
8690 (struct spec_list): Update comment.
8691 (do_spec_1): Don't handle %[Spec].
8692 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
8693
41dfca87
JM
86942011-07-07 Joseph Myers <joseph@codesourcery.com>
8695
8696 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
8697 default based on TARGET_ASM_NAMED_SECTION.
8698 * common/common-target.def (have_named_sections): Default to true.
8699 * common/config/default-common.c: Don't include tm.h.
8700 * common/config/picochip/picochip-common.c
8701 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
8702 * common/config/m32c/m32c-common.c: Remove.
8703 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
8704 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
8705 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
8706 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 8707 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
8708 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
8709 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 8710
19c44640
JJ
87112011-07-07 Jakub Jelinek <jakub@redhat.com>
8712
8713 PR middle-end/49640
f9610d20
UB
8714 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
8715 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 8716
891a2e42
RO
87172011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8718
8719 PR libmudflap/49550
8720 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
8721
fbdd5d87
RO
87222011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8723
8724 PR target/39150
8725 * configure.ac (gcc_cv_as_hidden): Also accept
8726 x86_64-*-solaris2.1[0-9]*.
8727 (gcc_cv_as_cfi_directive): Likewise.
8728 (gcc_cv_as_comdat_group_group): Likewise.
8729 (set_have_as_tls): Likewise.
8730 * configure: Regenerate.
8731 * config.gcc (i[34567]86-*-solaris2*): Also handle
8732 x86_64-*-solaris2.1[0-9]*.
8733 * config.host (i[34567]86-*-solaris2*): Likewise.
8734 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
8735 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
8736 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
8737 (TARGET_LD_EMULATION): Use it.
8738 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
8739 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
8740 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
8741 (ASM_CPU64_DEFAULT_SPEC): Define.
8742 (ASM_CPU_SPEC): Use %(asm_cpu_default).
8743 (ASM_SPEC): Redefine.
8744 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
8745 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 8746 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
8747 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
8748 configuration.
8749 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
8750
fcf7471a
RO
87512011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8752
8753 * config/sol2.h (ASM_SPEC): Split into ...
8754 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
8755 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
8756 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
8757 (ASM_SPEC): Use ASM_SPEC_BASE.
8758 * config/sparc/sol2.h (ASM_SPEC): Redefine.
8759
1e6a67d1 87602011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 8761
1e6a67d1
GJL
8762 * config/avr/avr.md (*reload_insi): Change predicate #1 to
8763 const_int_operand. Ditto for peep2 producing this insn.
8764 Add argument to output_reload_insisf call.
8765 (*movsi,*movsf): Add argument to output_movsisf call.
8766 (*reload_insf): New insn and new peep2 to produce it.
8767 * config/avr/avr-protos.h (output_movsisf): Change prototype.
8768 (output_reload_insisf): Change prototype.
8769 * config/avr/avr.c (avr_asm_len): New function.
8770 (output_reload_insisf): Rewrite.
8771 (output_movsisf): Change prototype. output_reload_insisf for
8772 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
8773 (adjust_insn_length): Add argument to output_movsisf and
8774 output_reload_insisf call.
8775
6a4bdc79
BS
87762011-07-07 Bernd Schmidt <bernds@codesourcery.com>
8777
8778 * emit-rtl.c (paradoxical_subreg_p): New function.
8779 * rtl.h (paradoxical_subreg_p): Declare.
8780 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
8781 apply_distributive_law, simplify_comparison, simplify_set): Use it.
8782 * cse.c (record_jump_cond, cse_insn): Likewise.
8783 * expr.c (force_operand): Likewise.
8784 * rtlanal.c (num_sign_bit_copies1): Likewise.
8785 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
8786 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
8787 (push_reload): Use precision to check for paradoxical subregs.
8788 * expmed.c (extract_bit_field_1): Likewise.
8789
46c9550f
BS
8790 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
8791 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
8792 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
8793 simplify_set, simplify_logical, expand_compound_operation,
8794 make_extraction, force_to_mode, if_then_else_cond, extended_count,
8795 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
8796 record_value_for_reg): Likewise.
8797 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
8798 * simplify-rtx. c (simplify_unary_operation_1,
8799 simplify_binary_operation_1, simplify_const_relational_operation):
8800 Likewise.
8801
5511bc5a
BS
8802 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
8803 instead of GET_MODE_BITSIZE where appropriate.
8804 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
8805 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
8806 init_num_sign_bit_copies_in_rep): Likewise.
8807 * cse.c (fold_rtx, cse_insn): Likewise.
8808 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
8809 * simplify-rtx.c (simplify_unary_operation_1,
8810 simplify_const_unary_operation, simplify_binary_operation_1,
8811 simplify_const_binary_operation, simplify_ternary_operation,
8812 simplify_const_relational_operation, simplify_subreg): Likewise.
8813 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
8814 simplify_if_then_else, simplify_set, expand_compound_operation,
8815 expand_field_assignment, make_extraction, if_then_else_cond,
8816 make_compound_operation, force_to_mode, make_field_assignment,
8817 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
8818 extended_count, try_widen_shift_mode, simplify_shift_const_1,
8819 simplify_comparison, record_promoted_value, simplify_compare_const,
8820 record_dead_and_set_regs_1): Likewise.
8821
d58c1a38
BS
8822 Revert:
8823 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
8824 shift_truncation_mask hook instead of performing modulo by width.
8825 Compare against mode precision, not bitsize.
d58c1a38 8826 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 8827 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 8828
76594d53
MM
88292011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
8830
8831 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
8832 declaration.
8833 (rs6000_save_toc_in_prologue_p): Ditto.
8834
8835 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
8836 up the static chain (r11) during indirect function calls.
8837 (-msave-toc-indirect): New undocumented debug switch.
8838
8839 * config/rs6000/rs6000.c (struct machine_function): Add
8840 save_toc_in_prologue field to note whether the prologue needs to
8841 save the TOC value in the reserved stack location.
8842 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
8843 to save the TOC in the prologue, do so.
8844 (rs6000_trampoline_init): Don't allow creating AIX style
8845 trampolines if -mno-r11 is in effect.
8846 (rs6000_call_indirect_aix): New function to create AIX style
8847 indirect calls, adding support for -mno-r11 to suppress loading
8848 the static chain, and saving the TOC in the prologue instead of
8849 the call body.
8850 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
8851 TOC in the prologue.
8852
8853 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
8854 register numbers.
8855 (TOC_REGNUM): Ditto.
8856 (STATIC_CHAIN_REGNUM): Ditto.
8857 (ARG_POINTER_REGNUM): Ditto.
8858 (SFP_REGNO): Delete, unused.
8859 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
8860 function descriptor offsets.
8861 (TOC_SAVE_OFFSET_64BIT): Ditto.
8862 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
8863 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
8864 (AIX_FUNC_DESC_SC_32BIT): Ditto.
8865 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
8866 (ptrload): New mode attribute for the appropriate load of a pointer.
8867 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
8868 (call_indirect_aix64): Ditto.
8869 (call_value_indirect_aix32): Ditto.
8870 (call_value_indirect_aix64): Ditto.
8871 (call_indirect_nonlocal_aix32_internal): Ditto.
8872 (call_indirect_nonlocal_aix32): Ditto.
8873 (call_indirect_nonlocal_aix64_internal): Ditto.
8874 (call_indirect_nonlocal_aix64): Ditto.
8875 (call): Rewrite AIX indirect function calls. Add support for
8876 eliminating the static chain, and for moving the save of the TOC
8877 to the function prologue.
8878 (call_value): Ditto.
8879 (call_indirect_aix<ptrsize>): Ditto.
8880 (call_indirect_aix<ptrsize>_internal): Ditto.
8881 (call_indirect_aix<ptrsize>_internal2): Ditto.
8882 (call_indirect_aix<ptrsize>_nor11): Ditto.
8883 (call_value_indirect_aix<ptrsize>): Ditto.
8884 (call_value_indirect_aix<ptrsize>_internal): Ditto.
8885 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
8886 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
8887 (call_nonlocal_aix32): Relocate in the rs6000.md file.
8888 (call_nonlocal_aix64): Ditto.
8889
8890 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
8891 -mno-r11 documentation.
8892
49d6830d
JW
88932011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
8894
8895 PR other/49658
8896 * doc/extend.texi (Compound Literals): Fix typo.
8897
c884924f
JG
88982011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
8899
f9610d20 8900 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 8901
bf588455
BS
89022011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
8903
8904 * configure.ac (plugin-version.h): Generate
8905 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
8906 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
8907 macros.
8908
8909 * configure: Regenerate.
8910
8911 * doc/plugins.texi (Building GCC plugins): Mention
8912 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
8913
d0edd768
BS
89142011-07-06 Bernd Schmidt <bernds@codesourcery.com>
8915
8916 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
8917 * combine.c (make_extraction, gen_lowpart_or_truncate,
8918 apply_distributive_law, simplify_comparison,
8919 reg_truncated_to_mode, record_truncated_value): Use it.
8920 * cse.c (notreg_cost): Likewise.
8921 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8922 * expr.c (convert_move, convert_modes): Likewise.
8923 * optabs.c (expand_binop, expand_unop): Likewise.
8924 * postreload.c (move2add_last_label): Likewise.
8925 * regmove.c (optimize_reg_copy_3): Likewise.
8926 * rtlhooks.c (gen_lowpart_general): Likewise.
8927 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8928
e5cabdfb
JM
89292011-07-06 Joseph Myers <joseph@codesourcery.com>
8930
8931 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
8932
2d0c270f
BS
89332011-07-06 Bernd Schmidt <bernds@codesourcery.com>
8934
8935 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
8936 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
8937 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
8938 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
8939 simplify_const_binary_operation, simplify_const_relational_operation):
8940 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
8941 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
8942 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
8943 simplify_shift_const_1, simplify_comparison): Likewise.
8944 * expr.c (convert_modes): Likewise.
8945 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 8946 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
8947 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
8948
f9c08345
BS
8949 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
8950
6d6c9525
RG
89512011-07-06 Richard Guenther <rguenther@suse.de>
8952
8953 PR tree-optimization/49645
8954 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
8955 register variables.
8956 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
8957 in type qualification here ...
8958 (copy_reference_ops_from_ref): ... not here.
8959 (vn_reference_lookup_3): ... or here.
8960 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
8961 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
8962
d1a6ec10
ILT
89632011-07-06 Ian Lance Taylor <iant@google.com>
8964
8965 * doc/install.texi (Configuration): It's
8966 --enable-gnu-indirect-function, not --enable-indirect-function.
8967
ff3e08af
BS
89682011-07-06 Bernd Schmidt <bernds@codesourcery.com>
8969
8970 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
8971 shift_truncation_mask hook instead of performing modulo by width.
8972 Compare against mode precision, not bitsize.
ff3e08af 8973 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 8974 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 8975
a369b639
L
89762011-07-06 H.J. Lu <hongjiu.lu@intel.com>
8977
8978 PR middle-end/47383
8979 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
8980 address computation and convert to address_mode if needed.
8981
1a072294
RG
89822011-07-06 Richard Guenther <rguenther@suse.de>
8983
8984 * tree.c (build_common_tree_nodes_2): Merge with
8985 build_common_tree_nodes.
8986 * tree.h (build_common_tree_nodes): Adjust prototype.
8987 (build_common_tree_nodes_2): Remove.
8988 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
8989 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
8990
f2c3a8ce
JJ
89912011-07-05 Jakub Jelinek <jakub@redhat.com>
8992
8993 PR tree-optimization/49618
8994 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
8995 t recurse on the decl.
8996 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
8997 return true if expr isn't known to be defined in current
8998 TU or some other LTO partition.
8999
3aa439ed
MM
90002011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9001
9002 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
9003 override CASE_VALUES_THRESHOLD.
9004
9005 * stmt.c (toplevel): Include params.h.
9006 (case_values_threshold): Use the --param case-values-threshold
9007 value if non-zero, otherwise use machine dependent value.
9008 (expand_case): Use case_values_threshold.
9009
9010 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
9011
9012 * doc/invoke.texi (--param case-values-threshold): Document.
9013
49956667
RH
90142011-07-05 Richard Henderson <rth@redhat.com>
9015
9016 * dwarf2out.c (dwarf2out_cfi_label): Make static.
9017 (dwarf2out_flush_queued_reg_saves): Make static.
9018 (dwarf2out_reg_save): Remove.
9019 (dwarf2out_return_save): Remove.
9020 (dwarf2out_return_reg): Remove.
9021 (dwarf2out_reg_save_reg): Remove.
9022 (dwarf2out_def_cfa): Merge into ...
9023 (dwarf2out_frame_init): ... here.
9024 * dwarf2out.h, tree.h: Remove declarations as necessary.
9025
9f2ff8e5
RH
90262011-07-05 Richard Henderson <rth@redhat.com>
9027
c2b40eba
RH
9028 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
9029 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
9030 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
9031 the alloc insn.
9032
7d3c6cd8
RH
9033 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
9034 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
9035 (process_epilogue): Don't call dwarf2out_def_cfa.
9036
5f740973
RH
9037 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
9038 indicate the return address save.
9039 (process_cfa_register): Likewise.
9040
a1880147
RH
9041 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
9042 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
9043
9f2ff8e5
RH
9044 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
9045 for ar.pfs save at alloc insn.
9046
ddc6e7d6
RH
90472011-07-05 Richard Henderson <rth@redhat.com>
9048
9049 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
9050 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
9051 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
9052 stack pointer save.
9053 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
9054 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
9055 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
9056 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
9057
a3515605
RH
90582011-07-05 Richard Henderson <rth@redhat.com>
9059
9060 * config/vax/vax.md (define_c_enum unspecv): New. Define the
9061 VUNSPEC_* constants here instead of via define_constants.
9062 (VUNSPEC_PEM): New constant.
9063 (procedure_entry_mask): New insn.
9064 (prologue): New expander.
9065 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
9066 (vax_expand_prologue): Rename from vax_output_function_prologue;
9067 emit rtl instead of text.
9068 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
9069 (print_operand): Add 'x' prefix.
9070
a7adbbcb
L
90712011-07-05 H.J. Lu <hongjiu.lu@intel.com>
9072
9073 PR middle-end/47715
9074 * calls.c (precompute_register_parameters): Promote the function
9075 argument before checking non-legitimate constant.
9076
cec11ec4
SP
90772011-07-05 Sebastian Pop <sebastian.pop@amd.com>
9078
9079 PR tree-optimization/47654
9080 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
9081 (lst_do_strip_mine_loop): Return an int.
9082 (lst_do_strip_mine): Same.
9083 (scop_do_strip_mine): Same.
9084 (scop_do_block): Loop blocking should strip-mine at least two loops.
9085 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
9086 (scop_do_interchange): Same.
9087 * graphite-poly.h (scop_do_interchange): Update declaration.
9088 (scop_do_strip_mine): Same.
9089
9b0d314a
SP
90902011-07-05 Sebastian Pop <sebastian.pop@amd.com>
9091
9092 * graphite-clast-to-gimple.c (precision_for_value): Removed.
9093 (precision_for_interval): Removed.
9094 (gcc_type_for_interval): Use mpz_sizeinbase.
9095
81d6d080
SP
90962011-07-05 Sebastian Pop <sebastian.pop@amd.com>
9097
9098 * graphite-ppl.h (value_max): Correct computation of max.
9099
369e3430
SP
91002011-07-05 Sebastian Pop <sebastian.pop@amd.com>
9101
9102 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
9103
fce5dddd
RG
91042011-07-05 Richard Guenther <rguenther@suse.de>
9105
9106 * c-decl.c (c_init_decl_processing): Defer building common
9107 tree nodes to c_common_nodes_and_builtins.
9108
12037899
RL
91092011-07-05 Razya Ladelsky <razya@il.ibm.com>
9110
9111 PR tree-optimization/49580
f9610d20 9112 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 9113 the loop's number of iterations.
f9610d20
UB
9114 * tree-parloops.c (transform_to_exit_first_loop): Add the
9115 handling of the loop's number of iterations before the call
12037899 9116 to gimple_duplicate_sese_tail.
28b21ebb 9117 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
9118 condition stmt to the preheader instead of iters_bb.
9119
509a31f8
L
91202011-07-05 H.J. Lu <hongjiu.lu@intel.com>
9121
9122 PR rtl-optimization/47449
9123 * fwprop.c (forward_propagate_subreg): Don't propagate hard
9124 register nor zero/sign extended hard register.
9125
39becbac
RG
91262011-07-05 Richard Guenther <rguenther@suse.de>
9127
9128 PR tree-optimization/49518
9129 PR tree-optimization/49628
9130 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
9131 irrelevant and invariant data-references.
9132 (vect_analyze_data_ref_access): For invariant loads clear the
9133 group association.
9134
15923c25
JJ
91352011-07-04 Jakub Jelinek <jakub@redhat.com>
9136
af421d9c
JJ
9137 PR rtl-optimization/49619
9138 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
9139 pass VOIDmode as op0_mode to recursive call, and return temp even
9140 when different from tor, just if it is not IOR of the original
9141 PLUS arguments.
9142
707f9919
JJ
9143 PR rtl-optimization/49472
9144 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
9145 negating MULT, negate the second operand instead of first.
9146 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
9147 a NEG and the other is MULT, don't attempt to optimize by negation
9148 of the MULT operand if it only moves the NEG operation around.
707f9919 9149
15923c25
JJ
9150 PR debug/49602
9151 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
9152 get_current_def return value if it can't be trusted to be
9153 the current value of the variable in the current bb.
9154
0d5e0c1b
UB
91552011-07-04 Uros Bizjak <ubizjak@gmail.com>
9156
9157 PR target/49600
9158 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
9159 general register to memory for !TARGET_INTER_UNIT_MOVES.
9160
db297e20
GJL
91612011-07-04 Georg-Johann Lay <avr@gjlay.de>
9162
9163 PR target/44643
9164 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
9165 instead of TREE_READONLY.
9166
f451d14d
GJL
91672011-07-04 Georg-Johann Lay <avr@gjlay.de>
9168
9169 * doc/extend.texi (AVR Built-in Functions): Update documentation
9170 of __builtin_avr_fmul*.
0d5e0c1b 9171 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
9172 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
9173 * config/avr/avr.md (fmul): Rename to fmul_insn.
9174 (fmuls): Rename to fmuls_insn.
9175 (fmulsu): Rename to fmulsu_insn.
9176 (fmul,fmuls,fmulsu): New expander.
9177 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
9178 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
9179 * config/avr/libgcc.S (__fmul): New function.
9180 (__fmuls): New function.
9181 (__fmulsu,__fmulsu_exit): New function.
9182
30f1e6de
RG
91832011-07-04 Richard Guenther <rguenther@suse.de>
9184
9185 PR tree-optimization/49615
9186 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
9187 basic-block index check.
9188
6dab9931
GJL
91892011-07-04 Georg-Johann Lay <avr@gjlay.de>
9190
9191 * longlong.h (count_leading_zeros, count_trailing_zeros,
9192 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
9193 resp. 64.
9194
b5066d8b
IR
91952011-07-03 Ira Rosen <ira.rosen@linaro.org>
9196
9197 PR tree-optimization/49610
9198 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
9199 a basic block.
9200
bc712852
EB
92012011-07-02 Eric Botcazou <ebotcazou@adacore.com>
9202 Olivier Hainque <hainque@adacore.com>
9203 Nicolas Setton <setton@adacore.com>
9204
9205 * tree.h (TYPE_ARTIFICIAL): New flag.
9206 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
9207 the DIE of the type if it is artificial.
9208 (gen_array_type_die): Likewise.
9209 (gen_enumeration_type_die): Likewise.
9210 (gen_struct_or_union_type_die): Likewise.
9211 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
9212 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
9213
8b1bdcc5
JJ
92142011-07-01 Jakub Jelinek <jakub@redhat.com>
9215
9216 * tree-object-size.c (pass_through_call): Handle
9217 BUILT_IN_ASSUME_ALIGNED.
9218
06e88d73
MJ
92192011-07-01 Martin Jambor <mjambor@suse.cz>
9220
9221 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
9222
6bbec3e1
L
92232011-07-01 H.J. Lu <hongjiu.lu@intel.com>
9224
9225 PR middle-end/48016
9226 * explow.c (update_nonlocal_goto_save_area): Use proper mode
9227 for stack save area.
9228 * function.c (expand_function_start): Likewise.
9229
e8fdf1cd
RG
92302011-07-01 Richard Guenther <rguenther@suse.de>
9231
9232 PR middle-end/49596
9233 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
9234 may have unknown refs.
9235
80d3dd38
KT
92362011-07-01 Kai Tietz <ktietz@redhat.com>
9237
9238 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
9239
179fc656
RO
92402011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9241
9242 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
9243 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
9244 (Specific, mips-sgi-irix6): Likewise.
9245
14a393a3
RO
92462011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9247
9248 PR libmudflap/49549
9249 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
9250
3aecd443
JJ
92512011-07-01 Jakub Jelinek <jakub@redhat.com>
9252
9253 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
9254 [idx]= and [idx1 ... idx2]= before initializers if needed for
9255 array initializers.
9256
7474f719
CL
92572011-07-01 Chen Liqin <liqin.gcc@gmail.com>
9258
9259 * config.gcc (score-*-elf): Remove score7.o.
9260 * config/score/t-score-elf: Likewise.
9261 * config/score/score.c: Merge score7 to score.c and
9262 remove forwarding functions.
9263 * config/score/score7.c: Deleted.
9264 * config/score/score7.h: Deleted.
9265
ab70d825
RG
92662011-07-01 Richard Guenther <rguenther@suse.de>
9267
9268 PR tree-optimization/49603
0d5e0c1b 9269 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 9270
1ac93f10
MJ
92712011-06-30 Martin Jambor <mjambor@suse.cz>
9272
9273 * tree-sra.c (struct access): Rename total_scalarization to
9274 grp_total_scalarization
9275 (completely_scalarize_var): New function.
9276 (sort_and_splice_var_accesses): Set total_scalarization in the
9277 representative access.
9278 (analyze_access_subtree): Propagate total scalarization accross the
9279 tree, no holes in totally scalarized trees, simplify coverage
9280 computation.
9281 (analyze_all_variable_accesses): Call completely_scalarize_var instead
9282 of completely_scalarize_record.
9283
97f309c3
RH
92842011-06-30 Richard Henderson <rth@redhat.com>
9285
9286 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
9287 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
9288 * config/i386/i386.c: Don't include dwarf2out.h.
9289 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
9290 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
9291 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
9292 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
9293 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
9294
ef284364
RH
92952011-06-30 Richard Henderson <rth@redhat.com>
9296
9297 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
9298 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
9299 * final.c (final_scan_insn): Look for it, and invoke
9300 dwarf2out_frame_debug before the insn if found.
9301
c8412f97
RH
93022011-06-30 Richard Henderson <rth@redhat.com>
9303
9304 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
9305 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
9306
e3f903d8
RH
93072011-06-30 Richard Henderson <rth@redhat.com>
9308
9309 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
9310 Define a vector of this type.
9311 (regs_saved_in_regs): Use a VEC.
9312 (num_regs_saved_in_regs): Remove.
9313 (compare_reg_or_pc): New.
9314 (record_reg_saved_in_reg): Split out from...
9315 (dwarf2out_flush_queued_reg_saves): ... here.
9316 (clobbers_queued_reg_save): Update for VEC.
9317 (reg_saved_in): Likewise.
9318 (dwarf2out_frame_debug_init): Likewise.
9319 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
9320 (dwarf2out_frame_debug_cfa_register): Likewise.
9321
e2c9010a
EB
93222011-06-30 Eric Botcazou <ebotcazou@adacore.com>
9323
9324 PR tree-optimization/49572
9325 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
9326 type of the RHS instead of that of the LHS for the expression type.
9327
dbb07bbc
EB
93282011-06-30 Eric Botcazou <ebotcazou@adacore.com>
9329
9330 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
9331 unconditionally.
9332
1565af08
RG
93332011-06-30 Richard Guenther <rguenther@suse.de>
9334
9335 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
9336 * tree-ssa-structalias.c (create_variable_info_for): Do not
9337 add initial constraints for non-var-decls. Properly handle
9338 globals in other ltrans partitions.
9339 (intra_create_variable_infos): Manually create constraints for
9340 the fake no-alias parameter.
9341 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
9342 and assert there are no clones.
9343
42373e0b
RG
93442011-06-30 Richard Guenther <rguenther@suse.de>
9345
9346 PR tree-optimization/46787
9347 * tree-data-ref.c (dr_address_invariant_p): Remove.
9348 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 9349 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
9350 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
9351 invariant loads.
9352
7aa62ea1
MJ
93532011-06-30 Martin Jambor <mjambor@suse.cz>
9354
9355 PR tree-optimization/49094
9356 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
9357 (build_accesses_from_assign): Use it.
9358
f60f32b3
JJ
93592011-06-30 Jakub Jelinek <jakub@redhat.com>
9360
d9048d16
JJ
9361 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
9362 handling of BUILT_IN_ASSUME_ALIGNED.
9363
f60f32b3
JJ
9364 PR debug/49364
9365 * dwarf2out.c (output_abbrev_section): Don't return early
9366 if abbrev_die_table_in_use is 1.
9367 (dwarf2out_finish): Instead don't call output_abbrev_section
9368 nor emit abbrev_section_label in that case.
9369
7cce15d4
NC
93702011-06-30 Nick Clifton <nickc@redhat.com>
9371
9372 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
9373 for the V850E.
9374
ce7e54ff
JJ
93752011-06-30 Jakub Jelinek <jakub@redhat.com>
9376
9377 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
9378 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
9379
83197f37
IR
93802011-06-30 Ira Rosen <ira.rosen@linaro.org>
9381
9382 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
9383 both pattern and original statements if necessary.
9384 (vect_transform_loop): Likewise.
9385 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
9386 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
9387 Mark the pattern statement only if the original statement doesn't
9388 have its own uses.
9389 (process_use): Call vect_mark_relevant with additional parameter.
9390 (vect_mark_stmts_to_be_vectorized): Likewise.
9391 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
9392 (vect_analyze_stmt): Handle both pattern and original statements
9393 if necessary.
9394 (vect_transform_stmt): Don't store vectorized pattern statement
9395 in the original statement.
9396 (vect_is_simple_use_1): Use related pattern statement only if the
9397 original statement is irrelevant.
9398 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
9399
dbb07bbc 94002011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 9401
dbb07bbc
EB
9402 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
9403 option.
9404 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
9405 entry.
5c0d88e6
CF
9406 (TARGET_AVX128_OPTIMAL): New definition.
9407 * config/i386/i386.c (initial_ix86_tune_features): Initialize
9408 X86_TUNE_AVX128_OPTIMAL entry.
9409 (ix86_option_override_internal): Enable the generation
9410 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
9411 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
9412 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
9413
931050d0
EB
94142011-06-29 Eric Botcazou <ebotcazou@adacore.com>
9415
9416 PR tree-optimization/49539
9417 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
9418 names by means of stmt_references_abnormal_ssa_name.
9419 (associate_plusminus): Call can_propagate_from before propagating
9420 from definition statements.
9421 (ssa_forward_propagate_and_combine): Remove superfluous newline.
9422
dfedbe40
RG
94232011-06-29 Richard Guenther <rguenther@suse.de>
9424
9425 * doc/invoke.texi: Document -scev dump modifier.
9426 * tree-pass.h (TDF_SCEV): New dump flag.
9427 * tree-dump.c (dump_option_value_in): Add scev.
9428 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
9429 * tree-scalar-evolution.c: Likewise.
9430
3a86cfeb
NS
94312011-06-29 Nathan Sidwell <nathan@codesourcery.com>
9432
9433 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
9434 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
9435 (__gnu_unwind_pr_common): Reconstruct additional indirection
9436 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 9437
f3678bfb
UW
94382011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9439
9440 PR rtl-optimization/49114
9441 * reload.c (struct replacement): Remove SUBREG_LOC member.
9442 (push_reload): Do not set it.
9443 (push_replacement): Likewise.
9444 (subst_reload): Remove dead code.
9445 (copy_replacements): Remove assertion.
9446 (copy_replacements_1): Do not handle SUBREG_LOC.
9447 (move_replacements): Likewise.
9448 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
9449 Detect subregs via recursive descent instead of via SUBREG_LOC.
9450
433ba0a5 94512011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 9452
433ba0a5
GJL
9453 * config/avr/avr.c (avr_encode_section_info): Dispatch to
9454 default_encode_section_info.
9455
73f6eabc
RS
94562011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
9457
9458 PR tree-optimization/49545
9459 * builtins.c (get_object_alignment_1): Update function comment.
9460 Do not use DECL_ALIGN for functions, but test
9461 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
9462 * fold-const.c (get_pointer_modulus_and_residue): Don't check
9463 for functions here.
9464 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
9465
a0f33d3a
JJ
94662011-06-29 Jakub Jelinek <jakub@redhat.com>
9467
9468 PR debug/49567
0d5e0c1b
UB
9469 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
9470 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 9471
946c8b23 94722011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 9473
946c8b23 9474 PR target/34734
0d5e0c1b 9475 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
9476 about uninitialized data attributed 'progmem' from here...
9477 (avr_encode_section_info): ...to this new function.
9478 (TARGET_ENCODE_SECTION_INFO): New define.
9479 (avr_section_type_flags): For data in ".progmem.data", remove
9480 section flag SECTION_WRITE.
9481
9a63dee4 94822011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 9483
9a63dee4
GJL
9484 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
9485 _xmulhisi3_exit.
9486 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
9487 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
9488 (__umulhisi3): Ditto.
9489 * config/avr/avr.md (mulhisi3): New insn expender.
9490 (umulhisi3): New insn expender.
9491 (*mulhisi3_call): New insn.
9492 (*umulhisi3_call): New insn.
9493
4374ce45
JM
94942011-06-28 Joseph Myers <joseph@codesourcery.com>
9495
9496 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
9497
94759030
RH
94982011-06-28 Richard Henderson <rth@redhat.com>
9499
9500 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
9501 all code and arguments that handled pushes. Update all callers.
9502
d018b46e
RH
95032011-06-28 Richard Henderson <rth@redhat.com>
9504
9505 * config/arm/arm.c (arm_output_function_prologue): Don't call
9506 thumb1_output_function_prologue.
9507 (arm_expand_prologue): Avoid dead store.
9508 (number_of_first_bit_set): Use ctz_hwi.
9509 (thumb1_emit_multi_reg_push): New.
9510 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
9511 to emit the entire prologue as rtl.
9512 (thumb1_output_interwork): Split out from
9513 thumb1_output_function_prologue.
9514 (thumb1_output_function_prologue): Remove.
9515 (arm_attr_length_push_multi): Handle thumb1.
9516 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
9517 (prologue_thumb1_interwork): New.
9518 (*push_multi): Allow thumb1; use push_mult_memory_operand.
9519 * config/arm/predicates.md (push_mult_memory_operand): New.
9520
97269a23
EB
95212011-06-28 Eric Botcazou <ebotcazou@adacore.com>
9522
9523 * config/sparc/sync.md (*stbar): Delete.
9524 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
9525
4a9206ce
EB
95262011-06-28 Eric Botcazou <ebotcazou@adacore.com>
9527
9528 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
9529
6138f9bd
RO
95302011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9531
9532 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
9533 (TARGET_64BIT_DEFAULT): Define.
9534 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
9535 of tm_file.
9536 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
9537
a7d0d30f
JM
95382011-06-28 Joseph Myers <joseph@codesourcery.com>
9539
9540 * common.opt (in_lto_p): New Variable entry.
9541 * flags.h (in_lto_p): Move to common.opt.
9542 * gcc.c: Include params.h.
9543 (set_option_handlers): Also use common_handle_option and
9544 target_handle_option.
0d5e0c1b 9545 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
9546 * opts.c (debug_type_names): Move from toplev.c.
9547 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
9548 (common_handle_option): Return early in the driver for some options.
9549 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
9550 opts pointer.
a7d0d30f
JM
9551 * toplev.c (in_lto_p): Move to common.opt.
9552 (debug_type_names): Move to opts.c.
9553 * Makefile.in (OBJS): Remove opts.o.
9554 (OBJS-libcommon-target): Add opts.o.
9555 (gcc.o): Update dependencies.
9556
420863a9
KT
95572011-06-28 Kai Tietz <ktietz@redhat.com>
9558
0d5e0c1b 9559 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 9560
0498a2be
RR
95612011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9562
9563 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
9564 with '=' constraint modifier.
9565 (*divdf3_vfp): Likewise.
9566 ("*mulsf3_vfp"): Likewise.
9567 ("*muldf3_vfp"): Likewise.
9568 ("*mulsf3negsf_vfp"): Likewise.
9569 ("*muldf3negdf_vfp"): Likewise.
9570
4a68b724
NC
95712011-06-28 Nick Clifton <nickc@redhat.com>
9572
9573 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
9574 relaxation when performing an incremental link.
9575
72a32729
KT
95762011-06-28 Kai Tietz <ktietz@redhat.com>
9577
9578 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
9579 within BB from last to first.
9580
88a00ef7
JM
95812011-06-28 Joseph Myers <joseph@codesourcery.com>
9582
9583 * genattr-common.c: New. Based on genattr.c.
9584 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
9585 (MOSTLYCLEANFILES): Add insn-attr-common.h.
9586 (opts.o): Update dependencies.
9587 (.PRECIOUS): Add insn-attr-common.h.
9588 (simple_rtl_generated_h): Add insn-attr-common.h.
9589 (build/genattr-common.o): New.
9590 (genprogrtl): Add attr-common.
9591 * genattr.c (main): Include insn-attr-common.h. Don't generate
9592 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 9593 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 9594
880962ac
GJL
95952011-06-28 Georg-Johann Lay <avr@gjlay.de>
9596
4a68b724 9597 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 9598 avr-*-* and avr-*-rtems* targets.
4a68b724 9599
880962ac
GJL
9600 * config/avr/elf.h: New file.
9601 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
9602 (TARGET_ASM_SELECT_SECTION): Define.
9603 (INIT_SECTION_ASM_OP): Undefine.
9604 (FINI_SECTION_ASM_OP): Undefine.
9605 (READONLY_DATA_SECTION_ASM_OP): Undefine.
9606 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
9607 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
9608 * config/avr/avr.h:
9609 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
9610 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
9611 (MAX_OFILE_ALIGNMENT): Move to elf.h.
9612 (STRING_LIMIT): Move to elf.h.
9613 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
9614 (ASM_DECLARE_OBJECT_NAME): Remove.
9615 (ESCAPES): Remove.
9616 (ASM_OUTPUT_SKIP): Remove.
9617 (DWARF2_DEBUGGING_INFO): Remove.
9618 (OBJECT_FORMAT_ELF): Remove.
9619 (USER_LABEL_PREFIX): Remove.
9620 (ASM_OUTPUT_EXTERNAL): Remove.
9621 (ASM_OUTPUT_ASCII): Remove.
9622 (TYPE_ASM_OP): Remove.
9623 (SIZE_ASM_OP): Remove.
9624 (WEAK_ASM_OP): Remove.
9625 (STRING_ASM_OP): Remove.
9626 (SET_ASM_OP): Remove.
9627 (ASM_WEAKEN_LABEL): Remove.
9628 (TYPE_OPERAND_FMT): Remove.
9629 (ASM_DECLARE_FUNCTION_SIZE): Remove.
9630 (ASM_FINISH_DECLARE_OBJECT): Remove.
9631 (NO_DOLLAR_IN_LABEL): Remove.
9632 (ASM_GENERATE_INTERNAL_LABEL): Remove.
9633 (ASM_OUTPUT_CASE_LABEL): Remove.
9634 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
9635 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
9636 (gas_output_ascii): Remove.
9637 (gas_output_limited_string): Remove.
9638 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
9639 * config/avr/avr-protos.h
9640 (gas_output_ascii): Remove prototye.
9641 (gas_output_limited_string): Remove prototype.
9642
a1b5eb93
RE
96432011-06-27 Richard Earnshaw <rearnsha@arm.com>
9644
9645 PR target/48637
9646 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
9647 asm operands.
9648
310e71a8
JH
96492011-06-27 Jan Hubicka <jh@suse.cz>
9650
4a9206ce
EB
9651 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
9652 node instead of references in node.
310e71a8 9653
171da07a
RH
96542011-06-27 Richard Henderson <rth@redhat.com>
9655
9656 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
9657 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
9658 inside ifdef.
9659
dc2a58da
JJ
96602011-06-27 Jakub Jelinek <jakub@redhat.com>
9661
56300785
JJ
9662 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
9663
45d439ac
JJ
9664 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
9665 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
9666 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
9667 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
9668 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
9669 (evaluate_stmt, execute_fold_all_builtins): Handle
9670 BUILT_IN_ASSUME_ALIGNED.
9671 * tree-ssa-dce.c (propagate_necessity): Likewise.
9672 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
9673 call_may_clobber_ref_p_1): Likewise.
9674 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
9675 (expand_builtin_assume_aligned): New function.
9676 * doc/extend.texi (__builtin_assume_aligned): Document.
9677
dc2a58da
JJ
9678 PR debug/49544
9679 * cselib.c (promote_debug_loc): If cselib_preserve_constants
9680 and l has two DEBUG_INSN owned locs instead of just one, adjust
9681 the second location's setting_insn too.
9682
0d72f628
RO
96832011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9684
9685 PR libmudflap/38738
9686 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
9687
bebd619e
NC
96882011-06-27 Nick Clifton <nickc@redhat.com>
9689
0d5e0c1b
UB
9690 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
9691 bit position of highest bit set into a count of the high zero bits.
bebd619e 9692
353b39fa
EB
96932011-06-27 Eric Botcazou <ebotcazou@adacore.com>
9694
9695 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
9696
a7af037b
EB
96972011-06-27 Eric Botcazou <ebotcazou@adacore.com>
9698
9699 PR lto/48492
9700 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
9701 to a NULL parent.
9702
1c86160a
RG
97032011-06-27 Richard Guenther <rguenther@suse.de>
9704
9705 PR tree-optimization/49394
9706 * passes.c (execute_one_pass): Restore current_pass after
9707 applying IPA transforms.
9708
5da49a9d
KT
97092011-06-27 Kai Tietz <ktietz@redhat.com>
9710
9711 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
9712 out of type precision after operation.
0d5e0c1b
UB
9713 (find_bswap): Take for limit value the integer auto-promotion
9714 into account.
5da49a9d 9715
9242213f
EB
97162011-06-27 Eric Botcazou <ebotcazou@adacore.com>
9717
9718 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
9719 forward scan as well.
9720
db8b22ef
TG
97212011-06-27 Tristan Gingold <gingold@adacore.com>
9722
9723 PR target/44241
9724 * config/vms/vms-protos.h: New file.
9725 * config/vms/vms-crtlmap.map: New file.
9726 * config/vms/vms.c: New file.
9727 * config/vms/make-crtlmap.awk: New file.
9728 * config/vms/vms-crtl.h: File removed.
9729 * config/vms/vms-crtl-64.h: File removed.
9730 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
9731 * config/alpha/vms64.h: Do not include vms-crtl-64.h
9732 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
9733 clear some builtins on VMS. Calls vms_patch_builtins.
9734 (avms_asm_output_external): Remove.
9735 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
9736 (struct crtl_name_spec): Remove
9737 (DO_CTRL_NAMES): Remove.
9738 * config/ia64/vms.h (struct crtl_name_spec): Remove
9739 (DO_CTRL_NAMES): Remove.
9740 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
9741 clear some builtins on VMS. Calls vms_patch_builtins.
9742 (ia64_asm_output_external): Remove DO_CRTL_NAME.
9743 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 9744 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 9745
b213221d
TG
97462011-06-27 Tristan Gingold <gingold@adacore.com>
9747
9748 * config/alpha/alpha.c (alpha_end_function): Always generate .end
9749 directive on VMS.
9750
157b9300
EB
97512011-06-27 Eric Botcazou <ebotcazou@adacore.com>
9752
9753 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
9754 the function receives nonlocal gotos.
9755
ccbf5bb4
RG
97562011-06-27 Richard Guenther <rguenther@suse.de>
9757
9758 PR tree-optimization/49536
9759 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
9760 For non-scalar inner types use a scalar type according to
9761 the scalar inner mode.
9762
fe4cd14b
RG
97632011-06-27 Richard Guenther <rguenther@suse.de>
9764
9765 PR tree-optimization/49365
9766 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
9767
afc3f22f
RS
97682011-06-27 Richard Guenther <rguenther@suse.de>
9769
9770 PR tree-optimization/49169
9771 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
9772 the alignment of function decls.
9773
92590751 97742011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
9775
9776 PR target/47997
9777 * config/darwin.c (darwin_mergeable_string_section): Place string
9778 constants in '.cstring' rather than '.const' when CF/NSStrings are
9779 active.
9780
605354f3
EB
97812011-06-26 Eric Botcazou <ebotcazou@adacore.com>
9782
9783 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
9784 (emit_save_register_window): Likewise.
9785 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
9786 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
9787 Swap back %o7/%i7 in register naming.
9788
0e9197f5
IS
97892011-06-25 Iain Sandoe <iains@gcc.gnu.org>
9790
9791 PR driver/49371
9792 * config/darwin.c (darwin_override_options): Improve warning when
9793 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
9794 is given with fpie/fPIE.
9795 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
9796 * config/darwin9.h (PIE_SPEC): New.
53461199 9797
605354f3 97982011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
9799
9800 * timevar.c (timevar_print): Increase width for display of timevar
9801 name.
9802
f796c438
JJ
98032011-06-24 Jakub Jelinek <jakub@redhat.com>
9804
9805 PR c++/46400
9806 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
9807 instead of TYPE_CHAIN for chain_next for types.
9808
a7289eaf
RH
98092011-06-24 Richard Henderson <rth@redhat.com>
9810
9811 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
9812 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
9813 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
9814 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
9815 (sparc_flat_expand_prologue): Emit individual instructions
9816 instead of one of the above.
9817
c4b9a87e
ER
98182011-06-24 Easwaran Raman <eraman@google.com>
9819
9820 PR rtl-optimization/49429
9821 PR target/49454
9822 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
9823 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
9824 used to copy y into x.
9825 * calls.c (initialize_argument_information): Mark
9826 an argument addressable if it is passed by invisible reference.
9827 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
9828 if it is passed by reference.
9829
5ac6c59e
L
98302011-06-24 H.J. Lu <hongjiu.lu@intel.com>
9831
9832 PR rtl-optimization/49504
9833 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
9834 subtraction of a pointer in Pmode if pointers extend unsigned.
9835 (num_sign_bit_copies1): Likewise.
5ac6c59e 9836
b807e627
MJ
98372011-06-24 Martin Jambor <mjambor@suse.cz>
9838
9839 PR tree-optimizations/49516
9840 * tree-sra.c (sra_modify_assign): Choose the safe path for
9841 aggregate copies if we also did scalar replacements.
9842
9a1ea4b9
RR
98432011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9844
9845 PR target/49335
9846 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 9847 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 9848
949cfd0a
AK
98492011-06-24 Andi Kleen <ak@linux.intel.com>
9850
9851 * tree-sra.c (type_internals_preclude_sra_p): Add msg
9852 parameter. Split up ifs and report reason in *msg.
9853 (reject): Add.
9854 (find_var_candiate): Add msg variable.
9855 Split up ifs and report reason to reject.
9856 (find_param_candidates): Add msg variable.
9857 Pass msg to type_internals_preclude_sra_p.
9858
49e9c661 98592011-06-23 Jeff Law <law@redhat.com>
ad3577df 9860
b0c11403
JL
9861 PR middle-end/48770
9862 * reload.h (reload): Change to return a bool.
9863 * ira.c (ira): If requested by reload, run a fast DCE pass after
9864 reload has completed. Fix comment typo.
9865 * reload1.c (need_dce): New file scoped static.
9866 (reload): Set reload_completed here. Return whether or not a DCE
9867 pass after reload is needed.
9868 (delete_dead_insn): Set need_dce as needed.
9869
ad3577df
JL
9870 PR middle-end/49465
9871 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
9872 to detect threading through joiner block. If there was already
9873 an edge to the new target, then do not change the PHI nodes.
9874
7cf64710
JJ
98752011-06-23 Jakub Jelinek <jakub@redhat.com>
9876
9877 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
9878 get_pointer_alignment to see if base isn't sufficiently aligned.
9879
febb1302
JH
98802011-06-23 Jan Hubicka <jh@suse.cz>
9881
9882 PR tree-optimize/49373
9883 * tree-pass.h (all_late_ipa_passes): Declare.
9884 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
9885 (cgraph_optimize): Execute late passes; remove unreachable funcions
9886 after materialization.
9887 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
9888 LTOing.
febb1302
JH
9889 * passes.c (all_late_ipa_passes): Declare.
9890 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
9891 (init_optimization_passes): Move ipa_pta to late passes; schedule
9892 fixup_cfg at beggining of all_passes.
febb1302
JH
9893 (apply_ipa_transforms): New function.
9894 (execute_one_pass): When doing simple ipa pass, apply all transforms.
9895
4c77620d
JM
98962011-06-23 Joseph Myers <joseph@codesourcery.com>
9897
9898 * params.c: Include common/common-target.h. Don't include tm.h.
9899 (lang_independent_params): Move from toplev.c.
9900 (global_init_params): New.
9901 * params.h (global_init_params): Declare.
9902 * target.def (default_params): Move to common-target.def.
9903 * toplev.c (lang_independent_options): Remove.
9904 (lang_independent_params): Move to params.c.
9905 (general_init): Use global_init_params.
9906 * common/common-target.def (option_default_params): Move from
9907 target.def.
9908 * common/config/ia64/ia64-common.c: Include params.h.
9909 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
9910 from ia64.c.
9911 * common/config/rs6000/rs6000-common.c: Include params.h.
9912 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
9913 from rs6000.c.
9914 * common/config/sh/sh-common.c: Include params.h.
9915 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
9916 from sh.c.
9917 * common/config/spu/spu-common.c: Include params.h.
9918 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
9919 from spu.c.
9920 * config/ia64/ia64.c (ia64_option_default_params,
9921 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
9922 * config/rs6000/rs6000.c (rs6000_option_default_params,
9923 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
9924 * config/sh/sh.c (sh_option_default_params,
9925 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
9926 * config/spu/spu.c (spu_option_default_params,
9927 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
9928 * Makefile.in (OBJS): Remove params.o.
9929 (OBJS-libcommon-target): Add params.o.
9930 (params.o, $(common_out_object_file)): Update dependencies.
9931 * doc/tm.texi: Regenerate.
9932
6aad1e38
AM
99332011-06-23 Alan Modra <amodra@gmail.com>
9934
9935 PR bootstrap/49383
9936 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
9937 invocation for 2011-06-09 changes.
9938
4fb489e7
JJ
99392011-06-22 Jakub Jelinek <jakub@redhat.com>
9940
fb79f500
JJ
9941 PR libgomp/49490
9942 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
9943 use n ceil/ nthreads size for the first n % nthreads threads in the
9944 team instead of all threads except for the last few ones which
fb79f500
JJ
9945 get less work or none at all.
9946
4fb489e7
JJ
9947 PR debug/49496
9948 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
9949 uses.
9950
9c7c9f10
RG
99512011-06-22 Richard Guenther <rguenther@suse.de>
9952
9953 PR tree-optimization/49493
9954 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
9955 Refer to the alias target of variables.
9956 (associate_varinfo_to_alias_1): Remove.
9957 (ipa_pta_execute): Do not associate aliases with anything.
9958 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
9959 (cgraph_function_node): Likewise.
9960 (cgraph_function_or_thunk_node): Likewise.
9961 (varpool_variable_node): Likewise.
9962
7cf13d1f
NS
99632011-06-22 Nathan Sidwell <nathan@codesourcery.com>
9964
0d5e0c1b 9965 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
9966 * config.gcc (arm*-*-linux*): Default to gnu tls.
9967 (arm*-*-*): Add --with-tls option.
9968 (all_defaults): Add 'tls'.
9969
78a8eb4e
RH
99702011-06-22 Richard Henderson <rth@redhat.com>
9971
9972 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
9973 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
9974 (dwarf2out_frame_debug_cfa_window_save): Rename from
9975 dwarf2out_window_save; make static.
9976 * tree.h (dwarf2out_window_save): Don't declare.
9977
9978 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
9979 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
9980 (emit_save_register_window): Rename from gen_save_register_window;
9981 emit the insn and add REG_CFA_* notes.
9982 (sparc_expand_prologue): Update to match.
9983 * config/sparc/sparc.md (save_register_window_1): Simplify from
9984 save_register_window<P:mode>.
9985
3b4c46d7
L
99862011-06-22 H.J. Lu <hongjiu.lu@intel.com>
9987
9988 PR target/49497
9989 * config/i386/i386.md (*lea_general_2): Always allow SImode.
9990 (*lea_general_2_zext): Likewise.
9991 (imul to lea peepholes): Use const359_operand and check
9992 TARGET_PARTIAL_REG_STALL.
9993
9994 * config/i386/predicates.md (const359_operand): New.
9995
4399cf59
MM
99962011-06-22 Michael Matz <matz@suse.de>
9997
9998 * cgraphunit.c (assemble_thunk): Use correct return type.
9999
31a0c825 100002011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 10001 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
10002
10003 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
10004 (neon_output_shift_immediate): Ditto.
10005 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
10006 prototype.
10007 (neon_output_shift_immediate): Ditto.
10008 * config/arm/neon.md (vashl<mode>3): Modified constraint.
10009 (vashr<mode>3_imm): New insn pattern.
10010 (vlshr<mode>3_imm): Ditto.
10011 (vashr<mode>3): Modified constraint.
10012 (vlshr<mode>3): Ditto.
10013 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
10014 predicate.
10015 (imm_for_neon_rshift_operand): Ditto.
10016 (imm_lshift_or_reg_neon): Ditto.
10017 (imm_rshift_or_reg_neon): Ditto.
10018
10019 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
10020
ddb555ed
JJ
100212011-06-22 Jakub Jelinek <jakub@redhat.com>
10022
36dc1a88
JJ
10023 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
10024 builtin calls even if likelyvalue is not CONSTANT.
10025 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
10026 Return get_value_for_expr of first operand
10027 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
10028 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
10029 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
10030 their non-checking counterparts.
10031 (call_may_clobber_ref_p_1): Likewise.
10032 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
10033 like their non-checking counterparts.
10034 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10035 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
10036 like their non-checking counterparts.
10037 (find_func_clobbers): Likewise.
10038 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
10039 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
10040
41cd4957
JJ
10041 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
10042 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
10043 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
10044 of base type reference as argument.
10045 (resolve_addr_in_expr): Likewise. Fix keep computation.
10046 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
10047 (convert_descriptor_to_mode): ... this. For wider types convert to
10048 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
10049 (typed_binop): New function.
10050 (scompare_loc_descriptor, ucompare_loc_descriptor,
10051 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
10052 default to unsigned type instead of signed.
10053
ddb555ed
JJ
10054 PR debug/47858
10055 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
10056 (gimple_build_debug_source_bind_stat): New prototype.
10057 (gimple_build_debug_source_bind): Define.
10058 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
10059 gimple_debug_source_bind_get_value,
10060 gimple_debug_source_bind_get_value_ptr,
10061 gimple_debug_source_bind_set_var,
10062 gimple_debug_source_bind_set_value): New inlines.
10063 * gimple.c (gimple_build_debug_source_bind_stat): New function.
10064 * gimple-pretty-print.c (dump_gimple_debug): Handle
10065 GIMPLE_DEBUG_SOURCE_BIND.
10066 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
10067 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10068 * tree-parloops.c (eliminate_local_variables,
10069 separate_decls_in_region): Likewise.
10070 (separate_decls_in_region_debug): Renamed from
10071 separate_decls_in_region_debug_bind. Handle
10072 gimple_debug_source_bind_p.
10073 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
10074 prototypes.
10075 (DECL_HAS_DEBUG_ARGS_P): Define.
10076 (struct tree_function_decl): Add has_debug_args_flag field.
10077 * tree.c (debug_args_for_decl): New variable.
10078 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
10079 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
10080 (rewrite_debug_stmt_uses): New function.
10081 (rewrite_stmt): Use it to rewrite debug stmt uses.
10082 * rtl.def (DEBUG_PARAMETER_REF): New.
10083 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
10084 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
10085 DEBUG_PARAMETER_REF.
10086 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
10087 * print-rtl.c (print_rtx): Likewise.
10088 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
10089 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
10090 debug stmts in the first bb.
10091 * tree-inline.c (remap_ssa_name): If remapping default def
10092 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
10093 a source bind debug stmt.
10094 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
10095 (maybe_move_debug_stmts_to_successors): Likewise.
10096 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
10097 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
10098 debug args vector from old_decl to new_decl.
10099 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
10100 or modified parameters, add debug bind stmts before call
0d5e0c1b 10101 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
10102 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
10103 on DECL_DEBUG_EXPRs from debug args vector.
10104 (expand_debug_source_expr): New function.
10105 (expand_debug_locations): Use it for source bind insns.
10106 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
10107 * var-tracking.c (prepare_call_arguments): Add debug args
10108 to call_arguments if any.
10109 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
10110 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
10111 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
10112 (get_ref_die_offset, parameter_ref_descriptor): New functions.
10113 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
10114 (gen_subprogram_die): Handle parameters identified by
10115 DEBUG_PARAMETER_REF.
10116
ccdc2164
NS
101172011-06-22 Nathan Sidwell <nathan@codesourcery.com>
10118
10119 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
10120 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
10121 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
10122 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
10123 (arm_tls_descseq_addr): New.
10124 (legitimize_tls_address): Add tlsdesc support.
10125 (arm_cannot_copy_insn_p): Check for tlscall.
10126 (arm_emit_tls_decoration): Likewise.
10127 * config/arm/arm.h (TARGET_GNU2_TLS): New.
10128 (OPTION_DEFAULT_SPECS): Add with-tls support.
10129 * config/arm/arm.md (R1_REGNUM): Define.
10130 (tlscall): New.
10131 * config/arm/arm.opt (tls_type): New enumeration type and values.
10132 (mtls-dialect): New switch.
10133 * config/arm/arm-opts.h (enum tls_type): New.
10134
70e41a6a
NP
101352011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
10136
10137 * attribs.c (register_attribute): Added assert to check that all
10138 attribute specs are registered with a name that is not empty and
10139 does not start with '_'.
10140 (decl_attributes): Avoid the lookup of the "naked" attribute spec
10141 if the function has no attributes.
10142 * tree.c (is_attribute_with_length_p): Removed.
10143 (is_attribute_p): Removed.
0d5e0c1b 10144 (private_is_attribute_p): New.
70e41a6a
NP
10145 (private_lookup_attribute): New.
10146 (lookup_attribute): Removed.
10147 (lookup_ident_attribute): New.
10148 (remove_attribute): Require the first argument to be in the form
10149 'text', not '__text__'. Updated asserts.
10150 (merge_attributes): Use lookup_ident_attributes instead of
10151 lookup_attribute.
10152 (merge_dllimport_decl_attributes): Use remove_attribute.
10153 (attribute_list_contained): Likewise.
10154 (attribute_list_equal): Immediately return 1 if the arguments are
10155 identical pointers.
10156 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
10157 'int'. Require the first argument to be in the form 'text', not
10158 '__text__'. Require the second argument to be an identifier.
10159 (lookup_attribute): Made inline. Require the first argument to be
10160 in the form 'text', not '__text__'.
10161 (private_is_attribute_p, private_lookup_attribute): New.
10162 Updated comments.
0d5e0c1b 10163
e0a8ecf2
AM
101642011-06-21 Andrew MacLeod <amacleod@redhat.com>
10165
10166 * builtins.c: Add sync_ or SYNC__ to builtin names.
10167 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
10168 * omp-low.c: Add sync_ or SYNC__ to builtin names.
10169
663827d3 101702011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 10171
663827d3
GJL
10172 PR target/33049
10173 * config/avr/avr.md (extzv): New expander.
10174 (*extzv): New insn.
10175 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
10176 * config/avr/constraints.md (C04): New constraint.
10177 * doc/md.texi (Machine Constraints): Document it.
10178
146aef0b
JJ
101792011-06-21 Jakub Jelinek <jakub@redhat.com>
10180
10181 PR middle-end/49489
10182 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
10183 unsignedp argument instead of 1 for clrsb_optab.
10184 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
10185 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
10186 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
10187 * optabs.c (widen_leading): Call widen_operand and expand_unop
10188 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 10189 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 10190
c0503294
GJL
101912011-06-21 Georg-Johann Lay <avr@gjlay.de>
10192
10193 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
10194
3801c801
BS
101952011-06-21 Bernd Schmidt <bernds@codesourcery.com>
10196
0bddee8e
BS
10197 * gensupport.c (add_define_attr): New static function.
10198 (is_predicable): Allow multi-alternative lists for the "predicable"
10199 attribute.
10200 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
10201 (process_one_cond_exec): Call alter_attrs_for_insn.
10202 * doc/md.texi (Defining Attributes): Mention some standard names.
10203 (Conditional Execution): Update documentation for "predicable".
10204
3801c801
BS
10205 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
10206 __builtin_clrsbll): Document.
10207 * doc/rtl.texi (clrsb): New entry.
10208 * optabs.c (widen_leading): Renamed from widen_clz. New argument
10209 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
10210 (expand_unop): Handle clrsb_optab.
10211 (init_optabs): Initialize it.
10212 * optabs.h (enum optab_index): New entry OTI_clrsb.
10213 (clrsb_optab): Define.
10214 * genopinit.c (optabs): Add an entry for it.
10215 * builtins.c (expand_builtin): Handle clrsb builtin functions.
10216 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
10217 BUILT_IN_CLRSBLL): New.
10218 * rtl.def (CLRSB): New code.
10219 * dwarf2out.c (mem_loc_descriptor): Handle it.
10220 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10221 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
10222 and popcount.
10223 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
10224 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
10225 (__ctzDI2): Move declaration.
10226 * config/bfin/bfin.md (clrsbsi2): New expander.
10227 (signbitssi2): Use the CLRSB rtx.
10228 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
10229 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
10230
55f01229
RG
102312011-06-21 Richard Guenther <rguenther@suse.de>
10232
637c11bd 10233 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 10234
5181cd6a
IR
102352011-06-21 Ira Rosen <ira.rosen@linaro.org>
10236
10237 PR tree-optimization/49478
10238 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
10239 with constant operand.
10240
e4ee3d70
RG
102412011-06-21 Richard Guenther <rguenther@suse.de>
10242
10243 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 10244
7b7ec6c5
RG
102452011-06-21 Richard Guenther <rguenther@suse.de>
10246
10247 PR tree-optimization/49483
10248 * tree-vect-stmts.c (vectorizable_assignment): Also handle
10249 VIEW_CONVERT_EXPR conversions.
10250
1b916ca6
JM
102512011-06-21 Joseph Myers <joseph@codesourcery.com>
10252
10253 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
10254 * config/avr/avr-tables.opt: New file (generated).
10255 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
10256 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
10257 avr-mcus.def.
10258 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
10259 (avr_option_override): Don't process -mmcu= argument here. Set
10260 avr_current_device using avr_mcu_index.
637c11bd 10261 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
10262 * config/avr/avr.opt (mmcu=): Use Enum.
10263 * config/avr/t-avr (avr-devices.o): Update dependencies.
10264 ($(srcdir)/config/avr/avr-tables.opt): New.
10265 * target.def (help): Remove.
10266 * doc/tm.texi.in (TARGET_HELP): Remove.
10267 * doc/tm.texi: Regenerate.
10268 * opts.c: Don't include target.h.
10269 (common_handle_option): Don't call targetm.help.
10270 * system.h (TARGET_HELP): Poison.
10271 * Makefile.in (opts.o): Update dependencies.
10272
7ecfa34f
RO
102732011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10274
10275 * config/usegld.h: New file.
10276 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
10277 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 10278 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
10279 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
10280 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
10281 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
10282 Define.
7ecfa34f
RO
10283 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
10284 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
10285 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
10286 (STACK_CHECK_STATIC_BUILTIN): Define.
10287 * config/sol2.opt (compat-bsd): Remove.
10288 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
10289 * config/sol2-bi.h: New file.
10290 * config/sol2-gld.h: Remove.
10291 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
10292 (NO_DBX_BNSYM_ENSYM): Remove.
10293 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
10294 (STACK_CHECK_STATIC_BUILTIN): Remove.
10295 Test USE_GLD instead of TARGET_GNU_LD.
10296 * config/i386/sol2-10.h: Rename to ...
10297 * config/i386/sol2-bi.h .. this.
10298 (SUBTARGET_EXTRA_SPECS): Redefine.
10299 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
10300 (MULTILIB_DEFAULTS): Remove.
10301 (DEFAULT_ARCH32_P): Define.
10302 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
10303 (ARCH64_SUBDIR): Define.
10304 Test USE_GLD instead of TARGET_GNU_LD.
10305 (I386_EMULATION): Rename to ...
10306 (ARCH32_EMULATION): ... this.
10307 (X86_64_EMULATION): Rename to ...
10308 (ARCH64_EMULATION): ... this.
10309 (TARGET_LD_EMULATION): Remove.
10310 (LINK_ARCH_SPEC): Remove.
10311 * config/i386/sol2-gas.h: Remove.
10312 * config/i386/t-sol2-10: Rename to ...
10313 * config/i386/t-sol2-64: ... this.
10314 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
10315 (AS_SPARC64_FLAG): Define.
10316 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
10317 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
10318 depending on TARGET_CPU_DEFAULT.
10319 (CPP_CPU_SPEC): Redefine.
10320 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
10321 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
10322 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
10323 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
10324 ASM_ARCH_DEFAULT_SPEC): Redefine.
10325 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10326 LINK_ARCH_DEFAULT_SPEC.
10327 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
10328 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
10329 (ARCH64_SUBDIR): Define.
10330 (LINK_ARCH64_SPEC): Redefine.
10331 (CC1_SPEC): Redefine.
10332 (OPTION_DEFAULT_SPECS): Redefine.
10333 (MULTILIB_DEFAULTS): Define.
10334 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
10335 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
10336 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
10337 (NO_DBX_BNSYM_ENSYM): Remove.
10338 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
10339 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
10340 (TARGET_ASM_NAMED_SECTION): Likewise.
10341 (STACK_CHECK_STATIC_BUILTIN): Remove.
10342 * config/sparc/sol2-bi.h: Remove.
10343 * config/sparc/sol2-gas-bi.h: Remove.
10344 * config/sparc/sol2-gas.h: Remove.
10345 * config/sparc/sol2-gld-bi.h: Remove.
10346 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
10347 common parts ...
10348 (*-*-solaris2*): ... here.
10349
4b583c43 103502011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 10351
4b583c43 10352 PR other/43564
637c11bd
UB
10353 * ipa-inline.c (can_inline_edge_p): Check
10354 !DECL_DISREGARD_INLINE_LIMITS.
10355
3bb556ad 103562011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 10357
3bb556ad
CB
10358 PR middle-end/49139
10359 * cgraphunit.c (process_function_and_variable_attributes): warn when
10360 always_inline functions that are not inline.
637c11bd
UB
10361 * ipa-inline-transform.c (inline_transform): Always call
10362 optimize_inline.
10363 * tree-inline.c (tree_inlinable_function_p): Use error instead
10364 of sorry.
3bb556ad 10365 (expand_call_inline): Likewise.
637c11bd 10366
f1ee724c
JJ
103672011-06-21 Jakub Jelinek <jakub@redhat.com>
10368
10369 * Makefile.in (dg_target_exps): Set.
10370 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
10371 instead of 7, try to divide it more evenly.
10372
103732011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 10374
931050d0 10375 PR target/49089
97ef5ae6
CF
10376 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
10377 (avx256_split_unaligned_store): New definition.
10378 (ix86_option_override_internal): Enable avx256 unaligned load/store
10379 splitting only when avx256_split_unaligned_load/store is set.
10380
998c75b6
BS
103812011-06-20 Bernd Schmidt <bernds@codesourcery.com>
10382
10383 * regrename.c (scan_rtx_reg): Handle the case where we write to an
10384 open chain in a smaller mode without failing the entire block.
10385
3a769784
AM
103862011-06-21 Alan Modra <amodra@gmail.com>
10387
10388 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
10389 CONST high part large-toc address.
10390 (rs6000_tls_referenced_p): Make static.
10391 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
10392
c2954af9
RR
103932011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10394
10395 PR target/49385
10396 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
10397 one of the operands is a register.
10398
a95015b6
KT
103992011-06-20 Kai Tietz <ktietz@redhat.com>
10400
637c11bd
UB
10401 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
10402 operations in combination with binary and.
a95015b6 10403
49a30d00
BS
104042011-06-20 Bernd Schmidt <bernds@codesourcery.com>
10405
10406 * regrename.c (do_replace): Don't update notes.
10407
3bae1d98
AM
104082011-06-20 Alan Modra <amodra@gmail.com>
10409
10410 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
10411 of toc-relative address in CONST.
10412 (rs6000_delegitimize_address): Recognize changed address.
10413 (rs6000_legitimize_reload_address): Likewise.
10414 (rs6000_emit_move): Don't force these constants to memory.
10415 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
10416 toc-relative address in CONST.
10417 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
10418 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
10419
10937b0c
L
104202011-06-18 H.J. Lu <hongjiu.lu@intel.com>
10421
637c11bd 10422 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
10423 (count_trailing_zeros): Likewise.
10424
0c587260
L
104252011-06-18 H.J. Lu <hongjiu.lu@intel.com>
10426
10427 PR other/49325
10428 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
10429 .init_array can be used with .ctors on targets.
10430 * configure: Regenerated.
10431
c020c92b
EB
104322011-06-18 Eric Botcazou <ebotcazou@adacore.com>
10433
10434 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
10435 if the element type is volatile.
10436
cd35bcf7
JH
104372011-06-18 Jan Hubicka <jh@suse.cz>
10438
10439 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
10440 extra name aliases.
10441 (lto_symtab_resolve_can_prevail_p): Likewise.
10442 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
10443 * cgraphbuild.c (record_reference): Remove extra body alias code.
10444 (mark_load): Likewise.
10445 (mark_store): Likewise.
10446 * cgraph.h (varpool_node): Remove extra_name filed;
10447 add alias_of and extraname_alias.
10448 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
10449 (varpool_alias_aliased_node): New inline function.
10450 (varpool_variable_node): New function.
10451 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
10452 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
10453 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
10454 (input_varpool_node): Likewise.
10455 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
10456 (varpool_externally_visible_p): Remove extra body alias code.
10457 (function_and_variable_visibility): Likewise.
10458 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
10459 (ipa_pta_execute): Use it.
10460 * varpool.c (varpool_remove_node): Remove extra name alias code.
10461 (varpool_mark_needed_node): Likewise.
10462 (varpool_analyze_pending_decls): Analyze aliases.
10463 (assemble_aliases): New functoin.
10464 (varpool_assemble_decl): Use it.
10465 (varpool_create_variable_alias): New function.
10466 (varpool_extra_name_alias): Rewrite.
10467 (varpool_for_node_and_aliases): New function.
10468
c96b4102
JJ
104692011-06-18 Jakub Jelinek <jakub@redhat.com>
10470
10471 PR target/49411
10472 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
10473 last_arg_constant and last argument doesn't match its predicate,
10474 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
10475 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
10476 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
10477 spelling of error message.
10478 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
10479 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
10480 const_0_to_255_operand instead of const_int_operand.
10481
10482 Revert:
10483 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
10484
10485 * config/i386/sse.md (blendbits): Remove mode attribute.
10486 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
10487 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
10488 Check integer value of operand 3 in insn constraint.
10489
9a2091cd
HPN
104902011-06-17 Hans-Peter Nilsson <hp@axis.com>
10491
10492 PR rtl-optimization/48542
10493 * reload.c (find_equiv_reg): Stop looking when finding a
10494 setjmp-type call.
10495 * reload1.c (reload_as_needed): Invalidate all reload
10496 registers when crossing a setjmp-type call.
10497
361b51c0
JL
104982011-06-16 Jeff Law <law@redhat.com>
10499
10500 * tree-ssa-threadupdate.c (struct redirection_data): New field
10501 intermediate_edge.
10502 (THREAD_TARGET2): Define.
637c11bd 10503 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
10504 (lookup_redirection_data): Drop useless argument. Extract the
10505 outgoing_edge and intermediate edge from E. Callers updated.
10506 (copy_phi_args, update_destination_phis): New functions.
10507 (fix_duplicate_block_edges): Likewise.
10508 (create_edge_and_update_destination_phis): Duplicate all the edges
10509 hung off e->aux. Use copy_phi_args.
10510 (create_duplicates): Use fix_duplicate_block_edges.
10511 (fixup_template_block): Likewise.
10512 (redirect_edges): If necessary, redirect the joiner block's incoming
10513 edge to the duplicate of the joiner block.
10514 (thread_block): Don't muck up loops when threading through a joiner
10515 block.
637c11bd 10516 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
10517 (mark_threaded_blocks, register_jump_thread): Likewise.
10518 * tree-flow.h (register_jump_thread): Add new argument. Callers
10519 updated.
10520 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
10521 (thread_across_edge): Handle threading through a joiner block.
637c11bd 10522
ee460e75
MJ
105232011-06-16 Martin Jambor <mjambor@suse.cz>
10524
10525 PR tree-optimization/49343
10526 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
10527 calculate offset, provide 2nd operand for the new COMPONENT_REF.
10528
a285ba2e
IS
105292011-06-16 Iain Sandoe <iains@gcc.gnu.org>
10530
10531 * config/darwin-protos.h (machopic_select_rtx_section): Move to
10532 inside RTX_CODE ifdef.
10533
0703f020
TV
105342011-06-16 Tom de Vries <tom@codesourcery.com>
10535
10536 PR target/45098
637c11bd
UB
10537 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
10538 Disallow NULL pointer for pointer arithmetic.
0703f020 10539
900c07da
RR
105402011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10541
10542 PR target/49398
10543 Revert.
10544 2011-06-10 Wei Guozhi <carrot@google.com>
10545
10546 PR target/45335
10547 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
10548 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
10549 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
10550 related peephole2.
10551 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
10552 related peephole2.
10553 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
10554 (arm_legitimate_ldrd_p): New prototype.
10555 (arm_output_ldrd): New prototype.
10556 * config/arm/arm.c (arm_check_ldrd_operands): New function.
10557 (arm_legitimate_ldrd_p): New function.
10558 (arm_output_ldrd): New function.
10559
c020c92b 105602011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
10561
10562 PR middle-end/46500
10563 * doc/tm.texi.in: Update Copyright date.
10564 * doc/tm.texi: Regenerate.
10565 * targhooks.c (default_setup_incoming_varargs): Replace
10566 CUMULATIVE_ARGS* argument type with cumulative_args_t.
10567 (default_pretend_outgoing_varargs_named): Likewise.
10568 (hook_pass_by_reference_must_pass_in_stack): Likewise.
10569 (hook_callee_copies_named): Likewise.
10570 (default_function_arg_advance): Likewise.
10571 (default_function_arg): Likewise.
10572 (default_function_incoming_arg): Likewise.
10573 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
10574 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
10575 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
10576 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
10577 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
10578 * targhooks.h (default_setup_incoming_varargs): Likewise.
10579 (default_pretend_outgoing_varargs_named): Likewise.
10580 (hook_pass_by_reference_must_pass_in_stack): Likewise.
10581 (hook_callee_copies_named): Likewise.
10582 (default_function_arg_advance): Likewise.
10583 (default_function_arg): Likewise.
10584 (default_function_incoming_arg): Likewise.
10585 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
10586 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
10587 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
10588 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
10589 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
10590 * target.def (pass_by_reference): Likewise.
10591 (setup_incoming_varargs, strict_argument_naming): Likewise.
10592 (pretend_outgoing_varargs_named, callee_copies): Likewise.
10593 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
10594 (function_incoming_arg): Likewise.
10595 * target.h: Don't include "tm.h" .
10596 (cumulative_args_t): New typedef.
10597 [GCC_TM_H] (get_cumulative_args): New static inline function.
10598 [GCC_TM_H] (pack_cumulative_args): Likewise.
10599 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
10600 argument type with cumulative_args_t.
10601 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
10602 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
10603 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
10604 (frv_arg_partial_bytes, frv_function_arg): Likewise.
10605 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
10606 (frv_function_arg_1): Likewise.
10607 * config/s390/s390.c (s390_pass_by_reference): Likewise.
10608 (s390_function_arg_advance, s390_function_arg): Likewise.
10609 * config/m32c/m32c.c (m32c_function_arg): Likewise.
10610 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
10611 (m32c_strict_argument_naming): Likewise.
10612 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
10613 (spu_function_arg_advance): Likewise.
10614 (spu_setup_incoming_varargs): Likewise. Make static.
10615 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
10616 Remove prototype.
10617 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
10618 CUMULATIVE_ARGS* argument type with cumulative_args_t.
10619 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
10620 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
10621 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
10622 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
10623 (mep_pass_by_reference, mep_function_arg): Likewise.
10624 (mep_function_arg_advance): Likewise.
10625 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
10626 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
10627 (m32r_function_arg, m32r_function_arg_advance): Likewise.
10628 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
10629 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
10630 (ix86_function_arg, ix86_pass_by_reference): Likewise.
10631 (ix86_setup_incoming_varargs): Likewise.
10632 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
10633 (sh_strict_argument_naming): Likewise.
10634 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
10635 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
10636 (sh_function_arg_advance, sh_function_arg): Likewise.
10637 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
10638 (pdp11_function_arg_advance): Likewise.
10639 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
10640 Likewise.
10641 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
10642 * config/avr/avr.c (avr_function_arg): Likewise.
10643 (avr_function_arg_advance): Likewise.
10644 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
10645 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
10646 (xtensa_function_arg_1): Likewise.
637c11bd
UB
10647 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
10648 Likewise.
d5cc9181
JR
10649 (xstormy16_function_arg): Likewise.
10650 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
10651 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
10652 (fr30_function_arg_advance): Likewise.
10653 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
10654 (lm32_function_arg, lm32_function_arg_advance): Likewise.
10655 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
10656 (moxie_function_arg, moxie_function_arg_advance): Likewise.
10657 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
10658 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
10659 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
10660 (cris_function_arg, cris_function_incoming_arg): Likewise.
10661 (cris_function_arg_advance, cris_function_arg_1): Likewise.
10662 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
10663 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
10664 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
10665 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
10666 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
10667 (mn10300_arg_partial_bytes): Likewise.
10668 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
10669 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
10670 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
10671 (ia64_function_arg_1): Likewise.
10672 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
10673 (m68k_function_arg): Likewise.
10674 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
10675 (rs6000_function_arg, setup_incoming_varargs): Likewise.
10676 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
10677 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
10678 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
10679 (picochip_arg_advance): Likewise.
10680 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
10681 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
10682 (mcore_function_arg_advance): Likewise.
10683 * config/score/score.c (score_pass_by_reference): Likewise.
10684 (score_function_arg_advance): Likewise.
10685 (score_arg_partial_bytes): Likewise. Make static.
10686 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
10687 * config/arm/arm.c (arm_arg_partial_bytes): Replace
10688 CUMULATIVE_ARGS* argument type with cumulative_args_t.
10689 (arm_function_arg, arm_function_arg_advance): Likewise.
10690 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
10691 * config/pa/pa.c (pa_pass_by_reference): Likewise.
10692 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
10693 (pa_function_arg): Likewise.
10694 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
10695 (mips_function_arg, mips_function_arg_advance): Likewise.
10696 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
10697 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
10698 * config/vax/vax.c (vax_function_arg): Likewise.
10699 (vax_function_arg_advance): Likewise.
10700 * config/h8300/h8300.c (h8300_function_arg): Likewise.
10701 (h8300_function_arg_advance): Likewise.
10702 * config/v850/v850.c (v850_pass_by_reference): Likewise.
10703 (v850_strict_argument_naming, v850_function_arg): Likewise.
10704 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
10705 (v850_setup_incoming_varargs): Likewise.
10706 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
10707 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
10708 (mmix_function_arg, mmix_pass_by_reference): Likewise.
10709 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
10710 with const void *.
10711 * config/bfin/bfin.c (setup_incoming_varargs): Replace
10712 CUMULATIVE_ARGS* argument type with cumulative_args_t.
10713 (bfin_function_arg_advance, bfin_function_arg): Likewise.
10714 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
10715 * calls.c (emit_call_1): Change type of args_so_far to
10716 cumulative_args_t. Changed all callers.
10717 (initialize_argument_information): Likewise.
10718 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
10719 * dse.c (get_call_args): Likewise.
10720 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
10721 * function.c (pass_by_reference, reference_callee_copied): Likewise.
10722 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
10723 New member args_so_far_v. Changed all users.
10724 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
10725 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
10726 * config/mips/mips.c (mips_output_args_xfer): Likewise.
10727 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
10728 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
10729 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10730 Likewise.
d5cc9181
JR
10731 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
10732 m32r_pass_by_reference.
10733
51312233
IR
107342011-06-16 Ira Rosen <ira.rosen@linaro.org>
10735
10736 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
10737 argument to be a VEC of statements.
637c11bd
UB
10738 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
10739 assert that pattern statements have to have their vector type set.
51312233
IR
10740 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
10741 Change the first argument to be a VEC of statements. Update
10742 documentation.
10743 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
10744 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
10745 (vect_recog_widen_mult_pattern): Change the first argument to be a
10746 VEC of statements. Update documentation. Check that the constant is
10747 INTEGER_CST. Support multiplication by a constant that fits an
10748 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
10749 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
10750 call. Handle additional pattern statements if necessary.
10751
fd4df33d
NC
107522011-06-16 Nick Clifton <nickc@redhat.com>
10753
10754 PR target/49427
10755 * config.gcc: Set cpu_type to v850 for any V850 architecture.
10756 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
10757 md_file, extra_modes, out_file and extra_options are these are all
10758 deduced from cpu_type.
10759
fbd05da0
GJL
107602011-06-16 Georg-Johann Lay <avr@gjlay.de>
10761
10762 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
10763 truncation mask to 63.
10764
0ad8bb3b
GJL
107652011-06-16 Georg-Johann Lay <avr@gjlay.de>
10766
10767 PR target/49313
10768 PR target/29524
10769 * longlong.h: Add AVR support:
10770 (count_leading_zeros): New macro.
10771 (count_trailing_zeros): New macro.
10772 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
10773 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
10774 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
10775 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
10776 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
10777 (LIB2FUNCS_EXCLUDE): Add _clz.
10778 * config/avr/libgcc.S (XCALL): Move up in file.
10779 (XJMP): New C Macro.
10780 (DEFUN): New asm macro.
10781 (ENDF): New asm macro.
10782 (__ffssi2): New function.
10783 (__ffshi2): New function.
10784 (__loop_ffsqi2): New function.
10785 (__ctzsi2): New function.
10786 (__ctzhi2): New function.
10787 (__clzdi2): New function.
10788 (__clzsi2): New function.
10789 (__clzhi2): New function.
10790 (__paritydi2): New function.
10791 (__paritysi2): New function.
10792 (__parityhi2): New function.
59c1e10b 10793 (__parityqi2): New function.
0ad8bb3b
GJL
10794 (__popcounthi2): New function.
10795 (__popcountsi2): New function.
10796 (__popcountdi2): New function.
10797 (__popcountqi2): New function.
10798 (__bswapsi2): New function.
10799 (__bswapdi2): New function.
10800 (__ashldi3): New function.
10801 (__ashrdi3): New function.
10802 (__lshrdi3): New function.
10803 Fix suspicous lines.
10804
12430896
RG
108052011-06-16 Richard Guenther <rguenther@suse.de>
10806
10807 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
10808 the same as x != 0.
637c11bd
UB
10809 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
10810 to (bool) X & 1.
12430896
RG
10811 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
10812 equality compares against zero for the lower bit.
10813
09302442
JJ
108142011-06-16 Jakub Jelinek <jakub@redhat.com>
10815
10816 PR tree-optimization/49419
10817 * tree-vrp.c (execute_vrp): Call init_range_assertions
10818 before estimate_numbers_of_iterations, call
10819 free_number_of_iterations_estimates before calling
10820 remove_range_assertions.
10821
81c41166
RE
108222011-06-16 Revital Eres <revital.eres@linaro.org>
10823
10824 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
10825 (struct partial_schedule): Add rows_length field.
10826 (verify_partial_schedule): Check rows_length.
10827 (ps_insert_empty_row): Handle rows_length.
10828 (create_partial_schedule): Likewise.
10829 (free_partial_schedule): Likewise.
10830 (reset_partial_schedule): Likewise.
10831 (create_ps_insn): Remove rest_count argument.
10832 (remove_node_from_ps): Update rows_length.
10833 (add_node_to_ps): Update rows_length and call create_ps_insn
10834 without passing row_rest_count.
10835 (rotate_partial_schedule): Update rows_length.
10836
d24dc7b3
RE
108372011-06-16 Revital Eres <revital.eres@linaro.org>
10838
10839 * ddg.c (add_intra_loop_mem_dep): New function.
10840 (build_intra_loop_deps): Call it.
10841
361b51c0 108422011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
10843
10844 * df-problems.c (df_lr_local_compute): Manually CSE
10845 PIC_OFFSET_TABLE_REGNUM.
10846 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
10847 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
10848
85ce9375
JH
108492011-06-13 Jan Hubicka <jh@suse.cz>
10850
10851 * cgraphunit.c (handle_alias_pairs): New function.
10852 (cgraph_finalize_compilation_unit): Use it.
10853 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
10854 as externally visible.
10855
a577c405
RG
108562011-06-15 Richard Guenther <rguenther@suse.de>
10857
10858 * expr.c (expand_expr_real_2): Reduce all integral types to
10859 bitfield precision.
10860 (expand_expr_real_1): Likewise.
10861
93536c97
MJ
108622011-06-15 Martin Jambor <mjambor@suse.cz>
10863
10864 PR tree-optimization/48613
10865 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
10866 ipa_node_params_vector is NULL.
fd4df33d 10867
ba45cfc4
JJ
108682011-06-15 Jakub Jelinek <jakub@redhat.com>
10869
10870 PR debug/49382
10871 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
10872 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
10873 location in the list, even if it is modified before first real insn.
ba45cfc4 10874 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 10875 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 10876
6fc5966f
AM
108772011-06-15 Alexander Monakov <amonakov@ispras.ru>
10878
10879 PR target/49349
10880 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
10881 (fence_to_rewind). Use it to notice when bookkeeping will be placed
10882 above a fence. Update comments.
10883 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
10884 placed just above it. Do not allow NULL place_to_insert.
10885
9d5e7640
IR
108862011-06-15 Ira Rosen <ira.rosen@linaro.org>
10887
10888 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
10889 (slpeel_tree_peel_loop_to_edge): Don't call
10890 remove_dead_stmts_from_loop.
10891 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
10892 remove irrelevant pattern statements. For irrelevant statements
10893 check if it is the last statement of a detected pattern, use
10894 corresponding pattern statement instead.
10895 (destroy_loop_vec_info): No need to remove pattern statements,
10896 only free stmt_vec_info.
10897 (vect_transform_loop): For irrelevant statements check if it is
10898 the last statement of a detected pattern, use corresponding
10899 pattern statement instead.
10900 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
10901 pattern statements. Set basic block for the new statement.
10902 (vect_pattern_recog): Update documentation.
10903 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
10904 operands of pattern statements.
10905 (vectorizable_call): Fix printing. In case of a pattern statement
10906 use the lhs of the original statement when creating a dummy
10907 statement to replace the original call.
10908 (vect_analyze_stmt): For irrelevant statements check if it is
10909 the last statement of a detected pattern, use corresponding
10910 pattern statement instead.
10911 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
10912 statements use gsi of the original statement.
10913
677f3fa8
JM
109142011-06-14 Joseph Myers <joseph@codesourcery.com>
10915
10916 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
10917 common/common-target-def.h.
10918 * target.def (default_target_flags, handle_option,
10919 supports_split_stack, optimization_table, init_struct,
10920 except_unwind_info, unwind_tables_default, have_named_sections):
10921 Move to common/common-target.def.
10922 * target.h (enum opt_levels, struct default_options): Move to
10923 common/common-target.h.
10924 * targhooks.c (default_except_unwind_info,
10925 dwarf2_except_unwind_info, sjlj_except_unwind_info,
10926 default_target_handle_option, empty_optimization_table): Move to
10927 common/common-targhooks.c.
10928 * targhooks.h (default_except_unwind_info,
10929 dwarf2_except_unwind_info, sjlj_except_unwind_info,
10930 default_target_handle_option, empty_optimization_table): Move to
10931 common/common-targhooks.h.
10932 * common/common-target-def.h: Include common/common-targhooks.h.
10933 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
10934 defined.
10935 * common/common-target.def (handle_option, option_init_struct,
10936 option_optimization_table, default_target_flags,
10937 except_unwind_info, supports_split_stack, unwind_tables_default,
10938 have_named_sections): Move from target.def.
10939 (HOOK_PREFIX): Undefine at end of file.
10940 * common/common-target.h: Include input.h.
10941 (enum opt_levels, struct default_options): Move from target.h.
10942 * common/common-targhooks.c, common/common-targhooks.h: New.
10943 * config.gcc (target_has_targetm_common): Default to yes.
10944 (moxie*): Set target_has_targetm_common=no.
10945 (hppa*-*-*): Don't set target_has_targetm_common=yes.
10946 * doc/tm.texi: Regenerate.
10947 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
10948 (C_TARGET_DEF_H): Add common/common-targhooks.h.
10949 (GCC_OBJS): Remove vec.o.
10950 (OBJS): Remove hooks.o and vec.o.
10951 (OBJS-libcommon-target): Add vec.o, hooks.o and
10952 common/common-targhooks.o.
10953 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
10954 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
10955 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
10956 cfglayout.o, $(out_object_file), $(common_out_object_file)):
10957 Update dependencies.
10958 (common/common-targhooks.o): New.
637c11bd 10959 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
10960 * common/config/pa/pa-common.c: Include more headers. Take
10961 copyright dates from pa.c.
10962 (pa_option_optimization_table, pa_handle_option,
10963 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
10964 TARGET_HANDLE_OPTION): Move from pa.c.
10965 * common/config/alpha/alpha-common.c,
10966 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
10967 common/config/bfin/bfin-common.c,
10968 common/config/cris/cris-common.c,
10969 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
10970 common/config/h8300/h8300-common.c,
10971 common/config/i386/i386-common.c,
10972 common/config/ia64/ia64-common.c,
10973 common/config/iq2000/iq2000-common.c,
10974 common/config/lm32/lm32-common.c,
10975 common/config/m32c/m32c-common.c,
10976 common/config/m32r/m32r-common.c,
10977 common/config/m68k/m68k-common.c,
10978 common/config/mcore/mcore-common.c,
10979 common/config/mep/mep-common.c,
10980 common/config/microblaze/microblaze-common.c,
10981 common/config/mips/mips-common.c,
10982 common/config/mmix/mmix-common.c,
10983 common/config/mn10300/mn10300-common.c,
10984 common/config/pdp11/pdp11-common.c,
10985 common/config/picochip/picochip-common.c,
10986 common/config/rs6000/rs6000-common.c,
10987 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
10988 common/config/score/score-common.c, common/config/sh/sh-common.c,
10989 common/config/sparc/sparc-common.c,
10990 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
10991 common/config/vax/vax-common.c,
10992 common/config/xstormy16/xstormy16-common.c,
10993 common/config/xtensa/xtensa-common.c: New.
10994 * config/alpha/alpha.c: Include common/common-target.h.
10995 (alpha_option_optimization_table, alpha_handle_option,
10996 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10997 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
10998 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
10999 * config/arm/arm.c (arm_option_optimization_table,
11000 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
11001 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
11002 arm-common.c.
11003 * config/avr/avr.c (avr_option_optimization_table,
11004 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
11005 to avr-common.c.
11006 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
11007 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
11008 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
11009 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
11010 * config/cris/cris.c (cris_option_optimization_table,
11011 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11012 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
11013 cris-common.c.
11014 * config/fr30/fr30.c (fr30_option_optimization_table,
11015 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
11016 to fr30-common.c.
11017 * config/frv/frv.c (frv_option_optimization_table,
11018 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
11019 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
11020 * config/h8300/h8300.c (h8300_option_optimization_table,
11021 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
11022 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
11023 * config/i386/i386-protos.h (ix86_handle_option): Declare.
11024 * config/i386/i386.c: Include common/common-target.h.
11025 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
11026 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
11027 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
11028 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
11029 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
11030 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
11031 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
11032 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
11033 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
11034 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
11035 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
11036 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
11037 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
11038 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
11039 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
11040 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
11041 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
11042 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
11043 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
11044 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
11045 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
11046 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
11047 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
11048 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
11049 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
11050 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
11051 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
11052 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
11053 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
11054 ix86_option_optimization_table, ix86_option_init_struct,
11055 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
11056 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
11057 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
11058 i386-common.c.
11059 * config/i386/t-i386 (i386.o): Update dependencies.
11060 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
11061 * config/ia64/ia64.c (ia64_option_optimization_table,
11062 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
11063 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11064 ia64_handle_option): Move to ia64-common.c.
11065 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
11066 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
11067 * config/lm32/lm32.c (lm32_option_optimization_table,
11068 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
11069 to lm32-common.c.
11070 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
11071 m32c-common.c.
11072 * config/m32r/m32r.c (m32r_option_optimization_table,
11073 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11074 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
11075 m32r_handle_option): Move to m32r-common.c.
11076 (m32r_memory_move_cost): Remove comment referring to
11077 TARGET_HANDLE_OPTION.
11078 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
11079 Move to m68k-common.c.
11080 * config/mcore/mcore.c (mcore_option_optimization_table,
11081 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
11082 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
11083 * config/mep/mep.c (mep_option_optimization_table,
11084 mep_handle_option, TARGET_HANDLE_OPTION,
11085 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
11086 Move to mep-common.c.
11087 * config/microblaze/microblaze.c
11088 (microblaze_option_optimization_table,
11089 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
11090 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
11091 * config/mips/mips.c (mips_handle_option,
11092 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
11093 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
11094 mips-common.c.
11095 * config/mmix/mmix.c (mmix_option_optimization_table,
11096 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
11097 Move to mmix-common.c.
11098 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
11099 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
11100 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11101 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
11102 * config/pa/pa.c: Include common/common-target.h.
11103 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
11104 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11105 pa_handle_option): Move to pa-common.c.
11106 (pa_option_override): Use targetm_common.except_unwind_info.
11107 (pa_asm_output_mi_thunk, pa_function_section): Use
11108 targetm_common.have_named_sections.
11109 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
11110 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11111 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
11112 pdp11_handle_option, pdp11_option_init_struct): Move to
11113 pdp11-common.c.
11114 * config/picochip/picochip.c (picochip_option_optimization_table,
11115 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
11116 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
11117 * config/rs6000/rs6000.c: Include common/common-target.h.
11118 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
11119 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
11120 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
11121 rs6000_handle_option): Move to rs6000-common.c.
11122 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
11123 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
11124 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
11125 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
11126 * config/s390/s390.c (processor_flags_table,
11127 s390_option_optimization_table, s390_option_init_struct,
11128 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
11129 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
11130 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
11131 * config/s390/s390.h (processor_flags_table): Declare.
11132 * config/score/score.c (score_option_optimization_table,
11133 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11134 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
11135 score_handle_option): Move to score-common.c.
11136 * config/sh/sh.c (sh_option_optimization_table,
11137 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
11138 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
11139 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
11140 * config/sparc/sparc.c: Include common/common-target.h.
11141 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
11142 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
11143 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
11144 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
11145 spu_option_init_struct): Move to spu-common.c.
11146 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
11147 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
11148 * config/v850/v850.c (small_memory_physical_max,
11149 v850_handle_memory_optionn v850_handle_option,
11150 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
11151 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
11152 v850-common.c.
637c11bd 11153 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
11154 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
11155 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
11156 Move to xtensa-common.c.
11157 * cfglayout.c: Include common/common-target.h.
11158 (fixup_reorder_chain): Use targetm_common.have_named_sections.
11159 * cfgrtl.c: Include common/common-target.h.
11160 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
11161 targetm_common.have_named_sections.
11162 * dbxout.c: Include common/common-target.h.
11163 (dbxout_function_end): Use targetm_common.have_named_sections.
11164 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
11165 targetm_common.except_unwind_info.
11166 * dwarf2out.c: Include common/common-target.h.
11167 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
11168 dwarf2out_begin_prologue, dwarf2out_frame_init,
11169 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
11170 targetm_common.except_unwind_info.
11171 * except.c: Include common/common-target.h.
11172 (init_eh, finish_eh_generation,
11173 output_one_function_exception_table): Use
11174 targetm_common.except_unwind_info.
637c11bd 11175 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
11176 * explow.c: Include common/common-target.h.
11177 * expr.c: Include common/common-target.h.
637c11bd 11178 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
11179 * function.c: Include common/common-target.h.
11180 (expand_function_end): Use targetm_common.except_unwind_info.
11181 * haifa-sched.c: Include common/common-target.h.
637c11bd 11182 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
11183 * lto-opts.c: Include common/common-target.h instead of target.h.
11184 (lto_reissue_options): Use targetm_common.handle_option.
11185 * opts.c: Include common/common-target.h.
11186 (target_handle_option): Use targetm_common.handle_option.
11187 (init_options_struct): Update comment referring to
11188 targetm.target_option.optimization. Use
11189 targetm_common.default_target_flags,
11190 targetm_common.unwind_tables_default and
11191 targetm_common.option_init_struct.
11192 (default_options_optimization): Use
11193 targetm_common.option_optimization_table.
11194 (finish_options): Use targetm_common.except_unwind_info,
11195 targetm_common.unwind_tables_default,
11196 targetm_common.have_named_sections and
11197 targetm_common.supports_split_stack.
11198 * toplev.c: Include common/common-target.h.
11199 (process_options): Use targetm_common.have_named_sections.
11200 * tree-tailcall.c: Include common/common-target.h.
637c11bd 11201 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 11202 * tree.c: Include common/common-target.h.
637c11bd 11203 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
11204 * varasm.c: Include common/common-target.h.
11205 (resolve_unique_section, hot_function_section,
11206 default_function_section): Use targetm_common.have_named_sections.
11207
d26c7090
ER
112082011-06-14 Easwaran Raman <eraman@google.com>
11209
11210 PR rtl-optimization/44194
11211 * dse.c: Include tree-flow.h
11212 (insn_info): Add new field non_frame_wild_read.
11213 (group_info): Add new fields escaped_n and escaped_p.
11214 (kill_on_calls): New variable.
11215 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
11216 (dse_step0): Initialize kill_on_calls.
11217 (can_escape): New function.
11218 (set_usage_bits): Add additional parameter; record information
11219 about escaped locations.
637c11bd 11220 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
11221 (dse_step2_nospill): Set kill_on_calls based on
11222 group->escaped_n and group->escaped_n.
11223 (add_wild_read): Refactor into...
11224 (reset_active_stores): ... New function, and
11225 (free_read_records): ... New function.
11226 (add_non_frame_wild_read): New function.
11227 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 11228 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
11229 (dse_step5_nospill): Call scan_reads_nospill for instructions
11230 marked as non_frame_wild_read.
637c11bd 11231 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 11232
c49a6962
JM
112332011-06-14 Joseph Myers <joseph@codesourcery.com>
11234
11235 * common/common-target-def.h, common/common-target.def,
11236 common/common-target.h, common/config/default-common.c,
11237 common/config/pa/pa-common.c: New files.
11238 * Makefile.in (common_out_file, common_out_object_file,
11239 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
11240 (OBJS-libcommon-target): Include $(common_out_object_file).
11241 (prefix.o): Update dependencies.
11242 ($(common_out_object_file), common/common-target-hooks-def.h,
11243 s-common-target-hooks-def-h): New.
11244 (s-tm-texi): Also check timestamp on common-target.def.
11245 (build/genhooks.o): Update dependencies.
11246 * config.gcc (common_out_file, target_has_targetm_common): Define.
11247 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
11248 TARGET_ALWAYS_STRIP_DOTDOT.
11249 * configure.ac (common_out_object_file): Define.
11250 (common_out_file, common_out_object_file): Substitute.
11251 (common): Create directory.
11252 * configure: Regenerate.
11253 * doc/tm.texi.in (targetm_common): Document.
11254 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
11255 * doc/tm.texi: Regenerate.
11256 * genhooks.c (hook_array): Also include common/common-target.def.
11257 * prefix.c (tm.h): Don't include.
11258 (common/common-target.h): Include.
11259 (ALWAYS_STRIP_DOTDOT): Don't define.
11260 (update_path): Use targetm_common.always_strip_dotdot instead of
11261 ALWAYS_STRIP_DOTDOT.
11262 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
11263
22c5fa5f
DL
112642011-06-14 David Li <davidxl@google.com>
11265
11266 * passes.c (execute_function_todo): Remove TODO_dump_func.
11267 (execute_one_pass): Remove TODO_dump_func.
11268 (execute_function_dump): New function.
11269 * tree-vrp.c: Remove TODO_dump_func.
11270 * regrename.c: Remove TODO_dump_func.
11271 * fwprop.c: Remove TODO_dump_func.
11272 * tree-into-ssa.c: Remove TODO_dump_func.
11273 * tree-complex.c: Remove TODO_dump_func.
11274 * tracer.c: Remove TODO_dump_func.
11275 * tree-loop-distribution.c: Remove TODO_dump_func.
11276 * postreload-gcse.c: Remove TODO_dump_func.
11277 * postreload.c: Remove TODO_dump_func.
11278 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
11279 * tree-tailcall.c: Remove TODO_dump_func.
11280 * ipa-cp.c: Remove TODO_dump_func.
11281 * final.c: Remove TODO_dump_func.
11282 * tree-emutls.c: Remove TODO_dump_func.
11283 * omp-low.c: Remove TODO_dump_func.
11284 * tree-ssa-dse.c: Remove TODO_dump_func.
11285 * tree-ssa-uncprop.c: Remove TODO_dump_func.
11286 * auto-inc-dec.c: Remove TODO_dump_func.
11287 * reorg.c: Remove TODO_dump_func.
11288 * tree-ssa-copyrename.c: Remove TODO_dump_func.
11289 * tree-ssa-ccp.c: Remove TODO_dump_func.
11290 * compare-elim.c: Remove TODO_dump_func.
11291 * mode-switching.c: Remove TODO_dump_func.
11292 * modulo-sched.c: Remove TODO_dump_func.
11293 * tree-call-cdce.c: Remove TODO_dump_func.
11294 * cse.c: Remove TODO_dump_func.
11295 * web.c: Remove TODO_dump_func.
11296 * tree-stdarg.c: Remove TODO_dump_func.
11297 * lto-streamer-out.c: Remove TODO_dump_func.
11298 * tree-ssa-math-opts.c: Remove TODO_dump_func.
11299 * tree-ssa-dom.c: Remove TODO_dump_func.
11300 * tree-nrv.c: Remove TODO_dump_func.
11301 * loop-init.c: Remove TODO_dump_func.
11302 * gimple-low.c: Remove TODO_dump_func.
11303 * ipa-inline.c: Remove TODO_dump_func.
11304 * tree-ssa-sink.c: Remove TODO_dump_func.
11305 * jump.c: Remove TODO_dump_func.
11306 * ifcvt.c: Remove TODO_dump_func.
11307 * tree-ssa-loop.c: Remove TODO_dump_func.
11308 * recog.c: Remove TODO_dump_func.
11309 * dse.c: Remove TODO_dump_func.
11310 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
11311 * matrix-reorg.c: Remove TODO_dump_func.
11312 * tree-eh.c: Remove TODO_dump_func.
11313 * regmove.c: Remove TODO_dump_func.
11314 * function.c: Remove TODO_dump_func.
11315 * tree-vectorizer.c: Remove TODO_dump_func.
11316 * ipa-split.c: Remove TODO_dump_func.
11317 * gcse.c: Remove TODO_dump_func.
11318 * tree-if-conv.c: Remove TODO_dump_func.
11319 * init-regs.c: Remove TODO_dump_func.
11320 * tree-ssa-phiopt.c: Remove TODO_dump_func.
11321 * implicit-zee.c: Remove TODO_dump_func.
11322 * lower-subreg.c: Remove TODO_dump_func.
11323 * bt-load.c: Remove TODO_dump_func.
11324 * tree-dfa.c: Remove TODO_dump_func.
11325 * except.c: Remove TODO_dump_func.
11326 * emit-rtl.c: Remove TODO_dump_func.
11327 * store-motion.c: Remove TODO_dump_func.
11328 * cfgexpand.c: Remove TODO_dump_func.
11329 * tree-cfgcleanup.c: Remove TODO_dump_func.
11330 * cfgcleanup.c: Remove TODO_dump_func.
11331 * tree-ssa-pre.c: Remove TODO_dump_func.
11332 * tree-sra.c: Remove TODO_dump_func.
11333 * tree-mudflap.c: Remove TODO_dump_func.
11334 * tree-ssa-copy.c: Remove TODO_dump_func.
11335 * cfglayout.c: Remove TODO_dump_func.
11336 * tree-ssa-forwprop.c: Remove TODO_dump_func.
11337 * tree-ssa-dce.c: Remove TODO_dump_func.
11338 * ira.c: Remove TODO_dump_func.
11339 * tree-ssa.c: Remove TODO_dump_func.
11340 * integrate.c: Remove TODO_dump_func.
11341 * tree-optimize.c: Remove TODO_dump_func.
11342 * tree-ssa-phiprop.c: Remove TODO_dump_func.
11343 * tree-object-size.c: Remove TODO_dump_func.
11344 * combine.c: Remove TODO_dump_func.
11345 * bb-reorder.c: Remove TODO_dump_func.
11346 * cprop.c: Remove TODO_dump_func.
11347 * var-tracking.c: Remove TODO_dump_func.
11348 * tree-profile.c: Remove TODO_dump_func.
11349 * tree-vect-generic.c: Remove TODO_dump_func.
11350 * reg-stack.c: Remove TODO_dump_func.
11351 * sched-rgn.c: Remove TODO_dump_func.
11352 * tree-ssa-structalias.c: Remove TODO_dump_func.
11353 * tree-switch-conversion.c: Remove TODO_dump_func.
11354 * tree-cfg.c: Remove TODO_dump_func.
11355 * tree-ssa-reassoc.c: Remove TODO_dump_func.
11356 * combine-stack-adj.c: Remove TODO_dump_func.
11357 * dce.c: Remove TODO_dump_func.
11358 * tree-ssanames.c: Remove TODO_dump_func.
11359 * regcprop.c: Remove TODO_dump_func.
11360
fa465762
L
113612011-06-14 H.J. Lu <hongjiu.lu@intel.com>
11362
11363 PR middle-end/47364
11364 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
11365 and properly handle result not in Pmode.
11366
7d8d16c3
RM
113672011-06-14 Robert Millan <rmh@gnu.org>
11368
11369 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
11370 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
11371 `config/linux.h'.
11372
11373 * config/i386/kfreebsd-gnu64.h: New file.
11374 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
11375 with `i386/kfreebsd-gnu64.h'.
11376
11377 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
11378 (GNU_USER_LINK_EMULATION64): New macros.
11379 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
11380 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
11381 of hardcoding `elf_i386' and `elf_x86_64'.
11382
0ccef3d2
NC
113832011-06-14 Nick Clifton <nickc@redhat.com>
11384
11385 PR target/49403
11386 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
11387
11388 PR target/49402
11389 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
11390
8a76c4a0
JJ
113912011-06-14 Jakub Jelinek <jakub@redhat.com>
11392
1ace6185
JJ
11393 PR fortran/49103
11394 * tree.h (DECL_NONSHAREABLE): Define.
11395 (struct tree_decl_common): Change decl_common_unused to
11396 decl_nonshareable_flag.
11397 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
11398 Ignore vars with DECL_NONSHAREABLE bit set.
11399 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
11400 on stores to automatic aggregate vars.
11401
8a76c4a0
JJ
11402 PR rtl-optimization/49390
11403 Revert:
11404 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
11405
11406 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
11407 MEM_ALIAS_SET.
11408
b4a9343c
ZD
114092011-06-14 Zdenek Dvorak <ook@ucw.cz>
11410 Tom de Vries <tom@codesourcery.com>
11411
11412 PR target/45098
11413 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
11414 Document changed semantics.
11415 (max_stmt_executions, max_stmt_executions_int): Declare.
11416 * tree-data-ref.c (estimated_loop_iterations)
11417 (estimated_loop_iterations_int): Move functions...
11418 * tree-ssa-loop-niter.c (estimated_loop_iterations)
11419 (estimated_loop_iterations_int): here.
11420 (record_estimate): Change nb_iterations_upper_bound and
11421 nb_iterations_estimate semantics.
11422 (max_stmt_executions, max_stmt_executions_int): New function.
11423 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
11424 (max_stmt_executions_tree): this.
11425 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
11426 estimated_loop_iterations_tree.
11427 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
11428 max_stmt_executions_int instead of estimated_loop_iterations_int.
11429 * predict.c (predict_loops): Idem.
11430 * tree-parloops.c (parallelize_loops): Idem.
11431 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
11432 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
11433 (init_omega_for_ddr_1): Idem.
11434 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
11435 (loop_prefetch_arrays): Idem
11436 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
11437 max_stmt_executions instead of estimated_loop_iterations.
11438 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
11439 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
11440 instead of nb_iterations_upper_bound.
11441
d2640c43
JH
114422011-06-13 Jan Hubicka <jh@suse.cz>
11443
11444 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
11445
40873cdd
RH
114462011-06-14 Richard Henderson <rth@redhat.com>
11447
11448 PR debug/48459
11449 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
11450 (based_loc_descr): Assert it's true.
11451 (compute_frame_pointer_to_fb_displacement): Set it, rather than
11452 aborting immediately.
11453
73e8cb24
SL
114542011-06-14 Sanjin Liu <scliu@faraday-tech.com>
11455 Mingfeng Wu <mingfeng@faraday-tech.com>
11456
11457 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
11458
f835f0a7
JH
114592011-06-13 Jan Hubicka <jh@suse.cz>
11460
11461 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
11462
ee6f1177
JH
114632011-06-13 Jan Hubicka <jh@suse.cz>
11464
11465 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
11466 similarly to DECL_COMDAT.
11467 * cgraphunit.c (cgraph_analyze_function): Likewise.
11468 * ipa.c (function_and_variable_visibility): Likewise.
11469
618abf9a
JH
114702011-06-13 Jan Hubicka <jh@suse.cz>
11471
11472 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
11473 BINFO_VIRTUALS when streaming for ltrans unit.
11474
a45fe02f
DE
114752011-06-13 David Edelsohn <dje.gcc@gmail.com>
11476
11477 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
11478 (movdi_internal64): Same.
11479
114802011-06-13 Edmar Wienskoski <edmar@freescale.com>
11481
e641e495 11482 PR target/44618
7d8d16c3
RM
11483 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
11484 a set of similar patterns, where the MATCH_OPERAND for the function
11485 argument is replaced with individual references to hardware registers.
a45fe02f
DE
11486 (save_fpregs_<mode>): Ditto
11487 (restore_gpregs_<mode>): Ditto
11488 (return_and_restore_gpregs_<mode>): Ditto
11489 (return_and_restore_fpregs_<mode>): Ditto
11490 (return_and_restore_fpregs_aix_<mode>): Ditto
11491
8775a18b
JH
114922011-06-13 Jan Hubicka <jh@suse.cz>
11493
11494 * ipa-utils.c (postorder_stack): New structure.
11495 (ipa_reverse_postorder): Handle aliases.
11496
114972011-06-13 Jan Hubicka <jh@suse.cz>
11498
11499 * ipa-inline.c (reset_edge_caches): Walk aliases.
11500 (update_caller_keys): Do not test inlinability of aliases.
11501 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
11502 (do_estimate_growth): Fix typo.
11503
6c69a029
JH
115042011-06-13 Jan Hubicka <jh@suse.cz>
11505
11506 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
11507 (can_remove_node_now_p): ... here; handle same comdat groups.
11508 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
11509 (inline_call): Update use of can_remove_node_now_p.
11510
10c63ba4 115112011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 11512
10c63ba4 11513 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
11514 condition to disallow non-identical memory locations.
11515 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
11516 preference to bit manipulation instructions.
495f8c14 11517
9aa3f5c5
JH
115182011-06-13 Jan Hubicka <jh@suse.cz>
11519
11520 * cgraph.c (cgraph_for_node_thunks_and_aliases,
11521 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
11522 (nonremovable_p): New function.
11523 (cgraph_can_remove_if_no_direct_calls_p): New function.
11524 (used_from_object_file_p): New functoin.
10c63ba4
EB
11525 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
11526 references from aliases.
9aa3f5c5
JH
11527 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
11528 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
11529 (want_inline_function_called_once_p): Use it; accept aliases called
11530 once, too.
9aa3f5c5
JH
11531 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
11532
30cecf17
RR
115332011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11534
11535 PR target/48454
11536 * config/arm/neon.md (vec_pack_trunc): Set the lengths
11537 correctly for the case with Quad vectors.
11538
29f85237
JJ
115392011-06-13 Jakub Jelinek <jakub@redhat.com>
11540 Ira Rosen <ira.rosen@linaro.org>
11541
11542 PR tree-optimization/49352
11543 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
11544 all, make sure loop_use_stmt after the loop is a def stmt of a used
11545 SSA_NAME that is the only one defined inside of the loop. Don't
11546 check for COND_EXPR and GIMPLE_BINARY_RHS.
11547 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
11548 check_reduction is true.
11549
c3e3f090
JH
115502011-06-11 Jan Hubicka <jh@suse.cz>
11551
11552 PR middle-end/49373
11553 * ipa.c (cgraph_externally_visible_p): Check resolution info.
11554
516e0768
JH
115552011-06-11 Jan Hubicka <jh@suse.cz>
11556
11557 PR middle-end/48836
11558 * ipa-inline-transform.c: Include tree-pass.h
11559 (inline_transform): Set TODO_update_ssa_only_virtuals.
11560 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
11561
903b0a8b
JH
115622011-06-11 Jan Hubicka <jh@suse.cz>
11563
11564 PR middle-end/49378
11565 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
11566 aliases and thunks.
11567
44542f8e
IR
115682011-06-12 Ira Rosen <ira.rosen@linaro.org>
11569
11570 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
11571 Take number of iterations to peel into account for equally frequent
11572 misalignment values.
11573
ea89702b
JH
115742011-06-11 Jan Hubicka <jh@suse.cz>
11575
637c11bd
UB
11576 * lto-streamer-out.c (produce_symtab): Stream out the newly
11577 represented aliases.
ea89702b 11578
380ed5ed
JH
115792011-06-11 Jan Hubicka <jh@suse.cz>
11580
637c11bd
UB
11581 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
11582 varying args.
380ed5ed
JH
11583 (ipa_update_after_lto_read): Likewise.
11584 (ipa_write_node_info): Do not sream call_with_var_arguments.
11585 (ipa_read_node_info): Likewise.
11586
00cfc363
JH
115872011-06-11 Jan Hubicka <jh@suse.cz>
11588
11589 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
11590
39e2db00
JH
115912011-06-11 Jan Hubicka <jh@suse.cz>
11592
11593 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
11594 (lto_symtab_resolve_can_prevail_p): Likewise.
11595 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
11596 * cgraph.c (same_body_aliases_done): New global var.
11597 (cgraph_same_body_alias_1): Rename to ...
11598 (cgraph_create_function_alias): ... this one; reorg to new
11599 representation.
11600 (cgraph_same_body_alias): Use cgraph_create_function_alias;
11601 record references when asked to.
11602 (cgraph_add_thunk): Fix formating.
11603 (cgraph_get_node): Kill same body alias code.
11604 (cgraph_node_for_asm): Likewise.
11605 (cgraph_remove_same_body_alias): Remove.
11606 (cgraph_remove_node): Kill same body alias code.
11607 (cgraph_mark_address_taken_node): Mark also the aliased function
11608 as having address taken.
11609 (dump_cgraph_node): Dump same body aliases.
11610 (cgraph_for_node_thunks_and_aliases): Update for new alias
11611 representation.
11612 (cgraph_for_node_and_aliases): Likewise.
11613 * cgraph.h (same_body): Kll pointer.
11614 (same_body_alias): Update comment.
11615 (same_body_aliases_done): Declare.
11616 (cgraph_remove_same_body_alias): Remove declaration.
11617 (cgraph_create_function_alias): Declare.
11618 (cgraph_process_same_body_aliases): Declare.
11619 (cgraph_function_with_gimple_body_p): Check for alias.
11620 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
11621 (cgraph_alias_aliased_node): New function.
11622 (cgraph_function_node): Update for new aliases.
11623 (cgraph_function_or_thunk_node): Likewise.
11624 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
11625 (inline_call): Remove dead aliases.
10c63ba4
EB
11626 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
11627 name hack for same body aliases.
39e2db00
JH
11628 (clone_of_p): Look through aliases.
11629 (verify_cgraph_node): Verify aliases.
11630 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
11631 (cgraph_process_same_body_aliases): New function.
11632 (process_function_and_variable_attributes): Disable weakref warning on
11633 alias.
11634 (cgraph_analyze_functions): Handle aliases.
11635 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
11636 (assemble_thunks): Rename to ...
11637 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
11638 (cgraph_expand_function): Remove alias output code.
11639 (cgraph_output_in_order): Skip aliases.
11640 (cgraph_preserve_function_body_p): Aliases don't need preserving.
11641 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
11642 (ipa_record_reference): Do not assert on alias references.
11643 (ipa_ref_has_aliases_p): New function.
11644 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
11645 (ipa_ref_has_aliases_p): Declare.
11646 * lto-cgraph.c (lto_output_node): Handle aliases.
11647 (input_node): Likewise.
11648 * lto-streamer-out.c (lto_output): Skip aliases.
11649 (produce_symtab): Kill same_body_alias code.
11650 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
11651 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
11652 * ipa-inline.c (update_caller_keys): Walk aliases.
11653 (inline_small_functions): Fix thinko in previous patch.
11654 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
11655 (function_and_variable_visibility): Do not walk same body aliases.
11656 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
11657 (ipa_pta_execute): Use it.
11658
9ee65b55
UB
116592011-06-11 Uros Bizjak <ubizjak@gmail.com>
11660
11661 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
11662 (*vec_dupv2df): Rename from vec_dupv2df.
11663 (vec_dupv2df): New expander.
11664
116652011-06-11 Uros Bizjak <ubizjak@gmail.com>
11666
11667 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
11668
116692011-06-11 Uros Bizjak <ubizjak@gmail.com>
11670
11671 * config/i386/i386.md: Use default value in "isa" attribute.
11672 * config/i386/sse.md: Ditto.
11673 * config/i386/mmx.md: Ditto.
11674
ba68a139
WG
116752011-06-10 Wei Guozhi <carrot@google.com>
11676
11677 PR target/45335
11678 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
11679 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
11680 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
11681 related peephole2.
11682 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
11683 related peephole2.
11684 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
11685 (arm_legitimate_ldrd_p): New prototype.
11686 (arm_output_ldrd): New prototype.
11687 * config/arm/arm.c (arm_check_ldrd_operands): New function.
11688 (arm_legitimate_ldrd_p): New function.
11689 (arm_output_ldrd): New function.
11690
deced1e2
XDL
116912011-06-10 David Li <davidxl@google.com>
11692
11693 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
11694 * passes.c (passr_eq): New function.
11695 (create_pass_tab): New function.
11696 (pass_traverse): New function.
11697 (dump_one_pass): New function.
11698 (dump_pass_list): New function.
11699 (dump_passes): New function.
11700
71fb4f92
JH
117012011-06-10 Jan Hubicka <jh@suse.cz>
11702
11703 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
11704 setting the nothrow flag.
11705 * ipa-reference.c (propagate): Skip aliases.
11706 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
11707 (propagate_nothrow): Skip aliases; do not update cgraph.
11708 (local_pure_const): Do not update cgraph.
11709 * tree-profile.c (tree_profiling): Do fixup_cfg.
11710
41817394
JH
117112011-06-10 Jan Hubicka <jh@suse.cz>
11712
11713 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
11714 (cgraph_local_node_p): ... here; handle aliases.
11715 (has_addr_references_p): Break out from ...;
11716 (cgraph_remove_unreachable_nodes) ... here.
11717
fb37c1de
JH
117182011-06-10 Jan Hubicka <jh@suse.cz>
11719
11720 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
11721 * common.opt (flag_inline_functions_called_once): Do not
11722 initialize to 1.
fb37c1de 11723
0818c24c
JH
117242011-06-10 Jan Hubicka <jh@suse.cz>
11725
11726 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
11727 (ipcp_initialize_node_lattices): Do not deal with aliases;
11728 Do not try to propagate through thunks.
0818c24c
JH
11729 (ipcp_change_tops_to_bottom): Do not deal with aliases.
11730
c8246dbe
JH
117312011-06-10 Jan Hubicka <jh@suse.cz>
11732
9ee65b55
UB
11733 * ipa-prop.c (ipa_write_node_info): Stream jump functions
11734 for indirect calls.
c8246dbe
JH
11735 (ipa_read_node_info): Likewise.
11736
d7e2a1c1
BS
117372011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11738
11739 PR lto/49302
11740 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
11741 (build_and_insert_call): Likewise.
11742 (build_and_insert_ref): New.
11743 (gimple_expand_builtin_pow): Minor cleanup.
11744 (gimple_expand_builtin_cabs): New.
11745 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 11746
749f25d8
JH
117472011-06-10 Jan Hubicka <jh@suse.cz>
11748
11749 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
11750 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
11751 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
11752 (ipcp_propagate_stage): Skip aliases when propagating.
11753 (ipcp_need_redirect_p): Skip aliases.
11754 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
11755 collect_callers_of_node.
11756 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
11757 for aliases.
11758 (ipa_compute_jump_functions): Look through aliases.
11759
8340fbd7
RO
117602011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11761
11762 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
11763
9aaa7e47
HPN
117642011-06-10 Hans-Peter Nilsson <hp@axis.com>
11765
11766 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
11767 Adjust comments.
11768 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
11769
f1724940
JH
117702011-06-10 Jan Hubicka <jh@suse.cz>
11771
11772 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
11773 Update call of gimple_get_virt_method_for_binfo.
11774 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
11775 refuse_thunks parameter.
11776 (gimple_fold_call): Update.
11777 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
11778
a6f834c5
JH
117792011-06-10 Jan Hubicka <jh@suse.cz>
11780
11781 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
11782 (not_all_callers_have_enough_arguments_p): ... this one; turn into
11783 worker for cgraph_for_node_and_aliases.
11784 (convert_callers_for_node): Break out from ...
11785 (convert_callers): ... here.
11786 (modify_function): Use collect_callers_of_node.
11787 (ipa_early_sra): Use cgraph_for_node_and_aliases.
11788
7871eee3
RG
117892011-06-10 Richard Guenther <rguenther@suse.de>
11790
11791 PR tree-optimization/49361
11792 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
11793 when not already in gimple form.
11794
dae957ae
RG
117952011-06-10 Richard Guenther <rguenther@suse.de>
11796
11797 PR bootstrap/49344
11798 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
11799 FOR_EACH_PHI_OR_STMT_USE.
11800
a5b1779f
JH
118012011-06-10 Jan Hubicka <jh@suse.cz>
11802
11803 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
11804 (clone_inlined_nodes): ... here.
11805 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
11806 to real destination prior inlining.
11807 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
11808 can_early_inline_edge_p, want_early_inline_function_p,
11809 want_early_inline_function_p, want_inline_small_function_p,
11810 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
11811 edge_badness, update_all_callee_keys, lookup_recursive_calls,
11812 add_new_edges_to_heap, inline_small_functions, flatten_function,
11813 inline_always_inline_functions, early_inline_small_functions): Use
11814 cgraph_function_or_thunk_node.
11815 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
11816 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
11817 (do_estimate_edge_growth_1): Break out from ...
11818 (do_estimate_growth) ... here; walk aliases.
11819 (inline_generate_summary): Skip aliases.
11820
c1ae3ca5
RG
118212011-06-10 Richard Guenther <rguenther@suse.de>
11822
9ee65b55
UB
11823 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
11824 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 11825
b504a918
PC
118262011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
11827
11828 * tree.h (error_operand_p): Add.
11829 * dbxout.c (dbxout_type_fields): Use the latter.
11830 * c-decl.c (add_stmt): Likewise.
11831 * gimplify.c (omp_add_variable, omp_notice_variable,
11832 gimplify_scan_omp_clauses): Likewise.
11833
3f5ea9dc 118342011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 11835
3f5ea9dc
GJL
11836 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
11837 when a value is actually passed in regs.
11838
b11b0904 118392011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 11840 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
11841
11842 * doc/invoke.texi (SPARC options): Add -mflat.
11843 * config/sparc/sparc.opt: Likewise.
11844 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
11845 (sparc_flat_expand_prologue): Declare.
11846 (sparc_flat_expand_epilogue): Likewise.
11847 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
11848 (CPP_ENDIAN_SPEC): Replace with...
11849 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
11850 (CPP_SPEC): Adjust to above change.
11851 (EXTRA_SPECS): Likewise.
11852 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
11853 (INCOMING_REGNO): Likewise.
11854 (OUTGOING_REGNO): Likewise.
11855 (LOCAL_REGNO): Likewise.
11856 (SETUP_FRAME_ADDRESSES): Likewise.
11857 (FIXED_REGISTERS): Set 0 for %fp.
11858 (CALL_USED_REGISTERS): Likewise.
11859 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
11860 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
11861 (RETURN_ADDR_REGNUM): Define.
11862 (RETURN_ADDR_RTX): Use it.
11863 (INCOMING_RETURN_ADDR_REGNUM): Define.
11864 (INCOMING_RETURN_ADDR_RTX): Use it.
11865 (DWARF_FRAME_RETURN_COLUMN): Likewise.
11866 (EH_RETURN_REGNUM): Define.
11867 (EH_RETURN_STACKADJ_RTX): Use it.
11868 (EH_RETURN_HANDLER_RTX): Delete.
11869 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
11870 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
11871 Delete.
11872 (struct machine_function): Add frame_size, apparent_frame_size,
11873 frame_base_reg, frame_base_offset, n_global_fp_regs and
11874 save_local_in_regs_p fields.
11875 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
11876 sparc_frame_base_offset, sparc_n_global_fp_regs,
11877 sparc_save_local_in_regs_p): New macros.
11878 (sparc_option_override): Error out if -fcall-saved-REG is specified
11879 for Out registers.
11880 (eligible_for_restore_insn): Fix formatting.
11881 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
11882 (eligible_for_sibcall_delay): Likewise.
11883 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
11884 (sparc_legitimate_address_p): Adjust to above change.
11885 (save_global_or_fp_reg_p): New predicate.
11886 (return_addr_reg_needed_p): Likewise.
11887 (save_local_or_in_reg_p): Likewise.
11888 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
11889 (SORR_SAVE, SORR_RESTORE): Delete.
11890 (sorr_pred_t): New typedef.
11891 (sorr_act_t): New enum.
11892 (save_or_restore_regs): Rename to...
11893 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
11894 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
11895 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
11896 mechanism. Add CFI information for double-word saves in 32-bit mode.
11897 (emit_adjust_base_to_offset): New function extracted from...
11898 (emit_save_or_restore_regs): ...this. Rename the rest to...
11899 (emit_save_or_restore_regs_global_fp_regs): ...this.
11900 (emit_save_or_restore_regs_local_in_regs): New function.
11901 (gen_create_flat_frame_[123]): New functions.
11902 (sparc_expand_prologue): Use SIZE local variable. Adjust.
11903 (sparc_flat_expand_prologue): New function.
11904 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
11905 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
11906 (sparc_flat_expand_epilogue): New function.
11907 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
11908 (output_return): Likewise.
11909 (output_sibcall): Likewise.
11910 (sparc_output_mi_thunk): Likewise.
11911 (sparc_frame_pointer_required): Likewise.
11912 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
11913 function optimization.
11914 * config/sparc/sparc.md (flat): New attribute.
11915 (prologue): Add TARGET_FLAT handling.
11916 (save_register_window): Disable if TARGET_FLAT.
11917 (create_flat_frame_[123]): New patterns.
11918 (epilogue): Add TARGET_FLAT handling.
11919 (sibcall_epilogue): Likewise.
11920 (eh_return): New expander.
11921 (eh_return_internal): New insn and splitter.
11922 (return_internal): Add TARGET_FLAT handling.
11923 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
11924 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
11925 (nonlocal_goto): Add TARGET_FLAT handling.
11926 * config/sparc/t-elf: Add -mflat multilib.
11927 * config/sparc/t-leon: Likewise.
11928
fede8efa
JH
119292011-06-10 Jan Hubicka <jh@suse.cz>
11930
11931 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
11932 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
11933 (self_recursive_p): Use cgraph_function_node.
11934 (propagate_pure_const): Likewise.
11935 (propagate_nothrow): Likewise.
11936 * ipa-reference.c (ipa_reference_get_not_read_global): Use
11937 cgraph_function_node.
11938 (propagate_bits): Likewise.
11939 (propagate): Likewise.
11940
0127c76f
RR
119412011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11942 Richard Earnshaw <rearnsha@arm.com>
11943
9ee65b55 11944 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
11945 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
11946 (*thumb2_movdi_vfp): Delete.
11947 (*arm_movdi_vfp_cortexa8): Delete.
11948 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
11949 (*movdi_vfp_cortexa8): Likewise.
11950
f93fe5a0
RG
119512011-06-10 Richard Guenther <rguenther@suse.de>
11952
11953 * stor-layout.c (initialize_sizetypes): Give names to all
11954 sizetype kinds.
11955
f2164f87
IR
119562011-06-10 Ira Rosen <ira.rosen@linaro.org>
11957
11958 PR tree-optimization/49318
11959 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
11960 irrelevant pattern statements.
11961
3f91c962
HPN
119622011-06-10 Hans-Peter Nilsson <hp@axis.com>
11963
3d223145
HPN
11964 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
11965
3f91c962
HPN
11966 PR bootstrap/49354
11967 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
11968 to last assignment.
11969
b125ad45
JH
119702011-06-09 Jan Hubicka <jh@suse.cz>
11971
11972 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
11973 do not recompute reachable flag.
11974 (cgraph_finalize_function, cgraph_analyze_functions): Set
11975 redefined_extern_inline here.
11976
be330ed4
JH
119772011-06-09 Jan Hubicka <jh@suse.cz>
11978
11979 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
11980 (cgraph_only_called_directly_p): ... this one; bring offline.
11981 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
11982 varpool_used_from_object_file_p): Drop names from the declaratoin.
11983 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
11984 collect_callers_of_node): New.
11985 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
11986 (cgraph_edge_recursive_p): Use cgraph_function_node.
11987 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
11988 (cgraph_node_cannot_be_local_p_1): Break out from ...
11989 (cgraph_node_can_be_local_p): ... here; walk aliases.
11990 (cgraph_for_node_thunks_and_aliases): New function.
11991 (cgraph_for_node_and_aliases): New function.
11992 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
11993 (cgraph_make_node_local) ... here; use
11994 cgraph_for_node_thunks_and_aliases.
be330ed4 11995 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
11996 (cgraph_set_nothrow_flag) ... here;
11997 use cgraph_for_node_thunks_and_aliases.
be330ed4 11998 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
11999 (cgraph_set_const_flag) ... here;
12000 use cgraph_for_node_thunks_and_aliases.
be330ed4 12001 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
12002 (cgraph_set_pure_flag) ... here;
12003 use cgraph_for_node_thunks_and_aliases.
be330ed4 12004 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
12005 (cgraph_propagate_frequency) ... here; use
12006 cgraph_for_node_thunks_and_aliases.
be330ed4 12007 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
12008 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
12009 New functions.
be330ed4
JH
12010 (collect_callers_of_node_1, collect_callers_of_node): New functions.
12011
2ea91d6b
HPN
120122011-06-10 Hans-Peter Nilsson <hp@axis.com>
12013
12014 PR rtl-optimization/49154
12015 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
12016 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
12017 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
12018 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
12019 * config/cris/cris.h (cris_register_move_cost): Remove
12020 !TARGET_V32 code. Tweak comments.
12021
9cf4fb5a
JH
120222011-06-09 Jan Hubicka <jh@suse.cz>
12023
12024 * cgraphbuild.c (record_eh_tables): Mark personality function as having
12025 address taken.
12026
6049a4c8
HPN
120272011-06-10 Hans-Peter Nilsson <hp@axis.com>
12028
c577822e 12029 PR rtl-optimization/49154
9ee65b55
UB
12030 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
12031 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 12032
54e1e4f7 12033 PR rtl-optimization/49154
6049a4c8
HPN
12034 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
12035 register classes.
12036 * doc/tm.texi: Regenerate.
12037
3be68b64
KK
120382011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
12039
12040 PR target/49307
12041 * config/sh/sh.md (UNSPEC_CHKADD): New.
12042 (chk_guard_add): New define_insn_and_split.
12043 (symGOT_load): Use chk_guard_add instead of blockage.
12044
bf806a90
KT
120452011-06-09 Kai Tietz <ktietz@redhat.com>
12046
12047 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
12048
d5a9738b
EB
120492011-06-09 Eric Botcazou <ebotcazou@adacore.com>
12050
12051 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
12052
527e82c2
WG
120532011-06-09 Wei Guozhi <carrot@google.com>
12054
12055 PR target/46975
12056 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
12057 (peephole2 for conditional move): Generate 16 bit instructions.
12058
b8bc3a43
UB
120592011-06-09 Uros Bizjak <ubizjak@gmail.com>
12060
12061 * config/i386/i386.md (*movdi_internal_rex64): Merge
12062 alternatives 6 and 8.
12063
4745da6e
DL
120642011-06-09 David Li <davidxl@google.com>
12065
12066 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
12067 * passes.c (passr_eq): New function.
12068 (create_pass_tab): New function.
12069 (pass_traverse): New function.
12070 (dump_one_pass): New function.
12071 (dump_pass_list): New function.
12072 (dump_passes): New function.
12073
bdf67bcb
DL
120742011-06-09 David Li <davidxl@google.com>
12075
12076 * tree-complex.c (tree_lower_complex): Gate cleanup.
12077 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
12078 (execute_optimize_stdarg): Ditto.
12079 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
12080 (execute_cleanup_eh_1): Ditto.
12081 (execute_cleanup_eh): Ditto.
12082 * gcse.c (gate_rtl_pre): Ditto.
12083 (execute_rtl_pre): Ditto.
12084 * except.c (finish_eh_generation): Ditto.
12085 (convert_to_eh_region_ranges): Ditto.
12086 * cprop.c (one_cprop_pass): Ditto.
12087
547fdef8
BS
120882011-06-09 Bernd Schmidt <bernds@codesourcery.com>
12089
12090 PR target/48673
12091 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
12092 in all basic blocks.
12093
10e48e39
RO
120942011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12095
12096 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
12097 (HAVE_ENABLE_EXECUTE_STACK): Define.
12098 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
12099 (HAVE_ENABLE_EXECUTE_STACK): Define.
12100 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
12101 (HAVE_ENABLE_EXECUTE_STACK): Define.
12102 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
12103 (ENABLE_EXECUTE_STACK): Remove.
12104 (HAVE_ENABLE_EXECUTE_STACK): Define.
12105 [IN_LIBGCC2]: Don't include <windows.h>.
12106 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
12107 (HAVE_ENABLE_EXECUTE_STACK): Define.
12108 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
12109 (HAVE_ENABLE_EXECUTE_STACK): Define.
12110 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
12111 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
12112 (HAVE_ENABLE_EXECUTE_STACK): Define.
12113 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
12114 (HAVE_ENABLE_EXECUTE_STACK): Define.
12115 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
12116 (HAVE_ENABLE_EXECUTE_STACK): Define.
12117 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
12118 (HAVE_ENABLE_EXECUTE_STACK): Define.
12119 * config/alpha/alpha.c (alpha_trampoline_init): Test
12120 HAVE_ENABLE_EXECUTE_STACK.
12121 * config/i386/i386.c (ix86_trampoline_init): Likewise.
12122 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
12123 (sparc64_initialize_trampoline): Likewise.
12124 * libgcc2.c [L_enable_execute_stack]: Remove.
12125 * system.h (ENABLE_EXECUTE_STACK): Poison.
12126 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
12127 * doc/tm.texi: Regenerate.
12128 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
12129
8ced31fe
JJ
121302011-06-09 Jakub Jelinek <jakub@redhat.com>
12131
12132 PR middle-end/49308
12133 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
12134 variable. After resetting and rescanning insn continue with previous
12135 statement.
12136
ee610fcd
RO
121372011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12138
12139 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
12140 (gcc_cv_ld_hidden): Likewise.
12141 * configure: Regenerate.
12142 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
12143 (ix86_stack_protect_fail): Mark unused.
12144 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
12145 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
12146 [TARGET_MACHO]: Don't define.
12147 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
12148 (TARGET_STACK_PROTECT_FAIL): Likewise.
12149 (rs6000_stack_protect_fail): Mark unused.
12150 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 12151 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 12152
8f2e22ff
AK
121532011-06-08 Andi Kleen <ak@linux.intel.com>
12154
12155 * varasm.c (get_section): Print location of other conflict
12156 for section conflicts.
12157
815cecbe
AK
121582011-06-08 Andi Kleen <ak@linux.intel.com>
12159
12160 * config/i386/driver-i386.c (host_detect_local_cpu):
12161 Add model 0x2d Intel CPU.
12162
1460ec5c
AK
121632011-06-08 Andi Kleen <ak@linux.intel.com>
12164
12165 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
12166 (globalize_reg): Add decl parameter. Compute location. Pass location
12167 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
12168 * rtl.h (globalize_reg): Update prototype.
12169 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
12170
df17530a
MX
121712011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
12172
12173 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
12174
409fed48
KK
121752011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
12176
12177 PR target/49305
12178 * config/sh/predicates.md (general_movsrc_operand): Check
12179 mode for memory with indexed address for QI and HImode.
12180 (general_movdst_operand): Likewise.
12181
87c16a45
NP
121822011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
12183
b8bc3a43 12184 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 12185
49931fcb
AO
121862011-06-08 Alexandre Oliva <aoliva@redhat.com>
12187
12188 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
12189 (num_ssa_operands): Likewise.
12190 (op_iter_init_phiuse): Forward-declare.
12191 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
12192
29494d1f
NC
121932011-06-08 Nick Clifton <nickc@redhat.com>
12194
12195 * doc/invoke.texi (ARM Options): Update description of
12196 -mthumb-interwork.
12197
4ffae7ff
L
121982011-06-08 H.J. Lu <hongjiu.lu@intel.com>
12199
12200 * config/i386/driver-i386.c (host_detect_local_cpu): Support
12201 unknown Intel family 0x6 CPUs.
12202
d9c77712
MJ
122032011-06-08 Martin Jambor <mjambor@suse.cz>
12204
12205 * tree-sra.c (mark_rw_status): Removed.
12206 (analyze_access_subtree): New parameter parent instead of
12207 mark_read and mark_write, propagate from that.
12208
b1def36c
JB
122092011-06-08 Julian Brown <julian@codesourcery.com>
12210
12211 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
12212 for double-precision helper functions in hard-float mode if only
12213 single-precision arithmetic is supported in hardware.
12214
6c8e9fc9
AM
122152011-06-08 Alexander Monakov <amonakov@ispras.ru>
12216
12217 PR rtl-optimization/49303
12218 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
12219 code_motion_path_driver returned 0 or 1.
12220 (sel_region_finish): Clear h_d_i_d.
12221
c2bbcb0d
KK
122222011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
12223
12224 * config/sh/sh.c (prepare_move_operands): Set pic register
12225 appropriately for global and local dynamic tls models even
12226 if flag_pic is unset.
12227
6976ae51
JM
122282011-06-07 Jason Merrill <jason@redhat.com>
12229
12230 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
12231
bb5b1f5e
XDL
122322011-06-07 Xinliang David Li <davidxl@google.com>
12233 * passes.c (enable_disable_pass): Handle assembler name.
12234 (is_pass_explicitly_enabled_or_disabled): Ditto.
12235
91ffe356
RO
122362011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12237
12238 PR tree-optimization/48497
12239 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
12240
06bc3ec7
BS
122412011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12242
12243 PR tree-optimization/46728
12244 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
12245 to use gimple_val_nonnegative_real_p.
12246 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
12247 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 12248
c074d740
L
122492011-06-07 H.J. Lu <hongjiu.lu@intel.com>
12250
12251 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
12252
8973b112
SG
122532011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
12254
12255 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
12256 constant vectors.
12257
67b88453
RG
122582011-06-07 Richard Guenther <rguenther@suse.de>
12259
12260 * stor-layout.c (initialize_sizetypes): Initialize all
12261 sizetypes based on target definitions.
12262 (set_sizetype): Remove.
12263 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
12264 * tree.h (set_sizetype): Remove.
12265
1dcad079
NC
122662011-06-07 Nick Clifton <nickc@redhat.com>
12267
12268 * config.gcc: Unify V850 architecture options and add support for
12269 newer V850 architectures.
12270 * config/v850/t-v850e: Delete.
12271
009db074
RG
122722011-06-07 Richard Guenther <rguenther@suse.de>
12273
12274 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
12275 Call set_sizetype from here.
12276
f373314f
AS
122772011-06-07 Andrew Stubbs <ams@codesourcery.com>
12278
12279 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
12280 (*maddhisi4tb, *maddhisi4tt): New define_insns.
12281
c536876e
AS
122822011-06-07 Bernd Schmidt <bernds@codesourcery.com>
12283 Andrew Stubbs <ams@codesourcery.com>
12284
12285 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
12286 multiplies.
12287 * doc/md.texi (Canonicalization of Instructions): Document widening
12288 multiply canonicalization.
12289
308dc890
JJ
122902011-06-07 Jakub Jelinek <jakub@redhat.com>
12291
12292 PR gcov-profile/49299
b8bc3a43 12293 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 12294
383d9c83
IR
122952011-06-07 Ira Rosen <ira.rosen@linaro.org>
12296
12297 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
12298 a pointer.
12299 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
12300 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
12301 vect_recog_pow_pattern): Likewise.
12302 (vect_pattern_recog_1): Remove declaration.
12303 (widened_name_p): Remove declaration. Add new argument to specify
12304 whether to check that both types are either signed or unsigned.
12305 (vect_recog_widen_mult_pattern): Update documentation. Handle
12306 unsigned patterns and multiplication by constants.
12307 (vect_pattern_recog_1): Update vect_recog_func references. Use
12308 statement information from the statement returned from pattern
12309 detection functions.
12310 (vect_pattern_recog): Update vect_recog_func reference.
12311 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
12312 multiplication by a constant use the type of the other operand.
12313
4de4b0f2
RS
123142011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
12315
12316 PR rtl-optimization/49145
12317 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
12318
a9d24544
JJ
123192011-06-06 Jakub Jelinek <jakub@redhat.com>
12320
99a5e049
JJ
12321 PR debug/49262
12322 * dwarf2out.c (native_encode_initializer): Decrement count in each
12323 iteration.
12324
04902d4c
JJ
12325 PR debug/49294
12326 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
12327 non-MODE_INT modes.
12328
a9d24544
JJ
12329 PR c++/49264
12330 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
12331 if stmt folded into nothing.
b8bc3a43
UB
12332 * tree-inline.c (fold_marked_statements): If a builtin at the end of
12333 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
12334 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
12335 to be NULL. Don't compute count and frequency if new_call is NULL.
12336
47c79d56
DN
123372011-06-04 Diego Novillo <dnovillo@google.com>
12338
12339 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
12340 (cgraph.o): Likewise.
12341 (cgraphunit.o): Likewise.
12342 * cgraphunit.c: Include lto-streamer.h
12343 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
12344 if LTO is enabled.
12345 * lto-streamer-in.c (unpack_value_fields): Call
12346 streamer_hooks.unpack_value_fields if set.
12347 (lto_materialize_tree): For unhandled nodes, first try to
12348 call lto_streamer_hooks.alloc_tree, if it exists.
12349 (lto_input_ts_decl_common_tree_pointers): Move reading of
12350 DECL_INITIAL to lto_streamer_read_tree.
12351 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
12352 (lto_streamer_read_tree): New.
12353 (lto_reader_init): Rename from lto_init_reader.
12354 Move initialization code to lto/lto.c.
12355 * lto-streamer-out.c (pack_value_fields): Call
12356 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
12357 (lto_output_tree_ref): For tree nodes that are not normally indexable,
12358 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 12359 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
12360 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
12361 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
12362 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
12363 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
12364 (lto_streamer_write_tree): New.
12365 (lto_output): Call lto_streamer_init directly.
12366 (lto_writer_init): Remove.
12367 * lto-streamer.c (streamer_hooks): New.
12368 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
12369 instead of lto_preload_common_nodes.
12370 (lto_is_streamable): Move from lto-streamer.h
12371 (lto_streamer_hooks_init): New.
12372 (streamer_hooks): New.
12373 (streamer_hooks_init): New.
12374 * lto-streamer.h (struct output_block): Forward declare.
12375 (struct lto_input_block): Likewise.
12376 (struct data_in): Likewise.
12377 (struct bitpack_d): Likewise.
12378 (struct streamer_hooks): Declare.
12379 (streamer_hooks): Declare.
12380 (lto_streamer_hooks_init): Declare.
12381 (lto_streamer_write_tree): Declare.
12382 (lto_streamer_read_tree): Declare.
12383 (streamer_hooks_init): Declare.
12384 (lto_is_streamable): Move to lto-streamer.c
12385
22afe143
AK
123862011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12387
12388 * longlong.h (smul_ppmm): The resulting register pair contains the
12389 higher order word first.
12390
3906ea1b
BS
123912011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12392
12393 PR tree-optimization/46728
12394 * builtins.c (powi_table): Remove.
12395 (powi_lookup_cost): Remove.
12396 (powi_cost): Remove.
12397 (expand_powi_1): Remove.
12398 (expand_powi): Remove.
12399 (expand_builtin_pow_root): Remove.
12400 (expand_builtin_pow): Remove.
12401 (expand_builtin_powi): Eliminate handling of constant exponent.
12402 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 12403
3598cabd
AO
124042011-06-06 Alexandre Oliva <aoliva@redhat.com>
12405
12406 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
12407
a7a110bb
AO
124082011-06-06 Alexandre Oliva <aoliva@redhat.com>
12409
12410 * dce.c (reset_unmarked_insns_debug_uses): New.
12411 (delete_unmarked_insns): Skip debug insns.
12412 (prescan_insns_for_dce): Likewise.
12413 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
12414 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
12415 active reg can be found.
12416 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
12417 (convert_regs_1): Use it.
12418
6d8402ac
AO
124192011-06-06 Alexandre Oliva <aoliva@redhat.com>
12420
12421 * tree-pretty-print.c (dump_function_header): Add flags.
12422 Don't dump decl_uid with nouid.
12423 * tree-pretty-print.h (dump_function_header): Adjust.
12424 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
12425 * passes.c (pass_init_dump_file): Pass dump_flags on.
12426 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
12427
f75e1f1e
AO
124282011-06-06 Alexandre Oliva <aoliva@redhat.com>
12429
12430 PR bootstrap/49270
12431 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
12432
275311c4
MP
124332011-06-06 Mikael Pettersson <mikpe@it.uu.se>
12434
12435 PR tree-optimization/49243
12436 * calls.c (setjmp_call_p): Also check if fndecl has the
12437 returns_twice attribute.
12438
aa4203e7
RO
124392011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12440
12441 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
12442 -ffast-math etc.
12443
48f9d59a
RH
124442011-06-06 Richard Henderson <rth@redhat.com>
12445 Georg-Johann Lay <avr@gjlay.de>
12446
12447 PR target/42210
12448 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
12449 New predicates.
12450 * config/avr/avr.md ("insv"): New insn expander.
12451 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
12452 "*insv.not.io", "*insv.reg"): New insns.
12453
11494830
HPN
124542011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
12455
12456 PR target/49285
b8bc3a43
UB
12457 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
12458 to nonimmediate_operand from memory_operand for the operand that is to
12459 be forced to memory by the expander. Lose the constraints.
11494830 12460
679e70df
EB
124612011-06-05 Eric Botcazou <ebotcazou@adacore.com>
12462
12463 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
12464 EH return when delayed branches are disabled.
12465
4d3d7f15
UB
124662011-06-05 Uros Bizjak <ubizjak@gmail.com>
12467
12468 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
12469 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
12470 calculation.
12471 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
12472 Simplify MODE_V1DF and MODE_V2SF handling.
12473 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
12474 Simplify MODE_SF handling.
12475
a45c0557
JH
124762011-06-04 Jan Hubicka <jh@suse.cz>
12477
12478 PR tree-optimization/48893
12479 PR tree-optimization/49091
12480 PR tree-optimization/49179
12481 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
12482 Bounds check.
12483
26740835
JH
124842011-06-04 Jan Hubicka <jh@suse.cz>
12485
12486 PR lto/48954
b8bc3a43
UB
12487 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
12488 bitmaps.
26740835 12489
014ab419
JW
124902011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
12491
12492 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
12493
407bcba7
JJ
124942011-06-04 Jakub Jelinek <jakub@redhat.com>
12495
12496 PR target/49281
12497 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
12498 to be strictly smaller than 1 << shiftcount.
12499
e3195c52
JH
125002011-06-04 Jan Hubicka <jh@suse.cz>
12501
12502 PR tree-optimize/48929
12503 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
12504 of empty predicate.
12505
047d33a0
AO
125062011-06-04 Alexandre Oliva <aoliva@redhat.com>
12507
12508 PR debug/48333
12509 * calls.c (emit_call_1): Prefer the __builtin declaration of
12510 builtin functions.
12511
dc587809
DN
125122011-06-03 Diego Novillo <dnovillo@google.com>
12513
12514 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
12515 (lto_input_tree_pointers): Likewise.
12516 * lto-streamer-out.c (pack_value_fields): Likewise.
12517 (lto_output_tree_pointers): Likewise.
12518 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
12519 and OPTIMIZATION_NODE.
12520
58cd1d70
RO
125212011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12522
12523 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
12524 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
12525 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
12526 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
12527 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
12528 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
12529 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
12530 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
12531 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
12532 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
12533 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
12534 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
12535 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
12536 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
12537 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
12538 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
12539 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
12540 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
12541 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
12542 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
12543 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
12544 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
12545 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
12546 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
12547 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
12548 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
12549 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
12550 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
12551 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
12552 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
12553 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
12554 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
12555 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
12556 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
12557 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
12558 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
12559 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
12560 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
12561 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
12562 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
12563 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
12564 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
12565 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
12566 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
12567 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
12568 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
12569 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
12570 * system.h (MD_UNWIND_SUPPORT): Poison.
12571 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
12572 * doc/tm.texi: Regenerate.
12573 * unwind-dw2.c: Include md-unwind-support.h instead of
12574 MD_UNWIND_SUPPORT.
12575 * config/ia64/unwind-ia64.c: Likewise.
12576 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
12577
10c63ba4 125782011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
12579
12580 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
12581
1b7a0148
RH
125822011-06-03 Richard Henderson <rth@redhat.com>
12583 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12584
12585 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
12586 (sigill_hdlr): Correct insn, insn size.
12587 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
12588
737346fa
RO
125892011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12590
12591 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
12592 t-slibgcc-dummy.
12593 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
12594 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
12595 * config/mips/t-iris: Remove.
12596 * config/mips/t-irix6: New file.
12597 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
12598
c192cee6
RO
125992011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12600
12601 * Makefile.in (LIB2ADDEHDEP): Remove.
12602 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
12603 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
12604 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
12605 * config/t-darwin (LIB2ADDEHDEP): Remove.
12606 * config/t-freebsd (LIB2ADDEHDEP): Remove.
12607 * config/t-linux (LIB2ADDEHDEP): Remove.
12608
d5828cc7
DN
126092011-06-03 Diego Novillo <dnovillo@google.com>
12610
12611 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
12612 (lto_register_var_decl_in_symtab): Likewise.
12613 (lto_register_function_decl_in_symtab): Likewise.
12614 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 12615 logic to uniquify_nodes.
d5828cc7 12616
ee33b5f0
RO
126172011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12618
12619 * config/alpha/t-osf5: Remove.
12620 * config/alpha/t-osf-pthread: Remove.
12621 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
12622 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
12623
16868d84
JB
126242011-06-03 Julian Brown <julian@codesourcery.com>
12625
12626 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
12627 (strongarm1110): Use strongarm tuning.
4d3d7f15 12628 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
12629 * config/arm/arm.c (arm_strongarm_tune): New.
12630 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
12631 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
12632 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
12633 setting, using previous defaults or 1 for Cortex-A5.
12634 (arm_option_override): Set max_insns_skipped from current tuning.
12635
1cec1285
NS
126362011-06-03 Nathan Sidwell <nathan@codesourcery.com>
12637
12638 * doc/install.texi (Options specification): Document --with-specs.
12639
eed55426
RR
126402011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12641
12642 * config/arm/neon.md (orndi3_neon): Actually split it.
12643
d5b6cc25
AO
126442011-06-02 Alexandre Oliva <aoliva@redhat.com>
12645
12646 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
12647 * var-tracking.c (reverse_op): Limite recurse depth to 5.
12648
2ba42841
AO
126492011-06-02 Alexandre Oliva <aoliva@redhat.com>
12650
12651 PR debug/47590
12652 * target.def (delay_sched2, delay_vartrack): New.
12653 * doc/tm.texi.in: Update.
12654 * doc/tm.texi: Rebuild.
12655 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
12656 * var-tracking.c (gate_handle_var_tracking): Likewise.
12657 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
12658 (bfin_flag_var_tracking): Drop.
12659 (output_file_start): Don't save and override flag_var_tracking.
12660 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
12661 (bfin_reorg): Test original variables.
12662 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
12663 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
12664 (ia64_flag_var_tracking): Drop.
12665 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
12666 (ia64_file_start): Don't save and override flag_var_tracking.
12667 (ia64_override_options_after_change): Ditto
12668 flag_schedule_insns_after_reload.
12669 (ia64_reorg): Test original variables.
12670 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
12671 (picochip_flag_var_tracking): Drop.
12672 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
12673 (picochip_option_override): Don't save and override
12674 flag_schedule_insns_after_reload.
12675 (picochip_asm_file_start): Ditto flag_var_tracking.
12676 (picochip_reorg): Test original variables.
12677 * config/spu/spu.c (spu_flag_var_tracking): Drop.
12678 (TARGET_DELAY_VARTRACK): Define.
12679 (spu_var_tracking): New.
12680 (spu_machine_dependent_reorg): Call it.
12681 (asm_file_start): Don't save and override flag_var_tracking.
12682
a700b5f0
KK
126832011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
12684
12685 PR target/49163
12686 * config/sh/predicates.md (general_movsrc_operand): Return 0
12687 for memory and memory subreg of which address is an invalid
12688 indexed address for QI and HImode.
12689 (general_movdst_operand): Likewise.
12690
76015c34
EB
126912011-06-02 Eric Botcazou <ebotcazou@adacore.com>
12692
12693 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
12694 edges only, when there is a non-local label in the function.
12695 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
12696
4e76acd2
UB
126972011-06-02 Uros Bizjak <ubizjak@gmail.com>
12698
12699 * config/i386/constraints.md (Y3): New register constraint.
12700 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
12701 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
12702 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
12703 *sse2_interleave_lowv2df.
12704
288f605f
JB
127052011-06-02 Julian Brown <julian@codesourcery.com>
12706
12707 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
12708 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
12709 (arm_cortex_a5_tune): New.
12710
7ec70105
JB
127112011-06-02 Julian Brown <julian@codesourcery.com>
12712
153668ec
JB
12713 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
12714 * config/arm/arm.c (arm_default_branch_cost): New.
12715 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
12716 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
12717 (arm_fa726_tune): Set branch_cost field using
12718 arm_default_branch_cost.
12719 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
12720 current_tune structure.
12721 * dojump.c (tm_p.h): Include file.
12722
127232011-06-02 Julian Brown <julian@codesourcery.com>
12724
12725 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
12726 tuning.
7ec70105
JB
12727 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
12728 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
12729 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
12730 field.
12731 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
12732 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
12733 (arm_fa726te_tune): Add prefer_constant_pool setting.
12734 (arm_v6t2_tune, arm_cortex_tune): New.
12735 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
12736 prefer_constant_pool setting.
12737
aad61732
UB
127382011-06-02 Uros Bizjak <ubizjak@gmail.com>
12739
4e76acd2
UB
12740 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
12741 switch statement.
aad61732
UB
12742 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
12743 (*movdf_internal) <case 6,7,8>: Ditto.
12744
4e76acd2 12745 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
12746 * config/i386/sse.md (vec_set<mode>_0): Merge with
12747 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
12748 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
12749 *vec_extractv2di_1_sse.
12750 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
12751 and *vec_concatv2di_rex64_sse.
12752
6e588138
SH
127532011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
12754
12755 PR target/48807
12756 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
12757 of cgraph_local_info for null before attempting to use it.
12758
bc6d3f91
EB
127592011-06-02 Eric Botcazou <ebotcazou@adacore.com>
12760
12761 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
12762 (current_function_dynamic_alloc_count): Delete.
12763 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
12764 (expand_builtin_nonlocal_goto): Remove obsolete comment.
12765 (expand_builtin_update_setjmp_buf): Remove dead code.
12766 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
12767 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
12768 support.
12769 * function.c (instantiate_virtual_regs): Likewise.
12770 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
12771 for a block with a single abnormal incoming edge.
12772 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 12773 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
12774 * config/sparc/sparc-protos.h (load_got_register): Declare.
12775 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
12776 (load_got_register): Make global.
12777 (sparc_frame_pointer_required): Add 'static'.
12778 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
12779 (sparc_builtin_setjmp_frame_value): New function.
12780 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
12781 (save_stack_nonlocal): New expander.
12782 (restore_stack_nonlocal): Likewise.
12783 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
12784 (nonlocal_goto_internal): New insn.
12785 (goto_handler_and_restore): Delete.
12786 (builtin_setjmp_setup): Likewise.
12787 (do_builtin_setjmp_setup): Likewise.
12788 (setjmp): Likewise.
12789 (builtin_setjmp_receiver): New expander.
12790
69282fee
DL
127912011-06-01 David Li <davidxl@google.com>
12792
12793 PR middle-end/49261
12794 * tree-pretty-print.c (dump_function_header): Format cleanup.
12795
e95873dd
KK
127962011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
12797
12798 PR target/49238
12799 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
12800 needed when original operands are used for msw_skip comparison.
12801
88c15821
JJ
128022011-06-01 Jakub Jelinek <jakub@redhat.com>
12803
12804 PR debug/49250
12805 * var-tracking.c (add_uses, add_stores): Don't call
12806 cselib_subst_to_values on ENTRY_VALUE.
12807
07233947
DN
128082011-06-01 Diego Novillo <dnovillo@google.com>
12809
12810 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
12811 output_record_start with LTO_null instead of output_zero.
12812 (lto_output_ts_binfo_tree_pointers): Likewise.
12813 (lto_output_tree): Likewise.
12814 (output_eh_try_list): Likewise.
12815 (output_eh_region): Likewise.
12816 (output_eh_lp): Likewise.
12817 (output_eh_regions): Likewise.
12818 (output_bb): Likewise.
12819 (output_function): Likewise.
12820 (output_unreferenced_globals): Likewise.
12821 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
12822 instead of NUM_TREE_CODES.
12823 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
12824 (lto_output_int_in_range): Change << to >> when shifting VAL.
12825
4ee3537a
DN
128262011-06-01 Diego Novillo <dnovillo@google.com>
12827
12828 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
12829 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
12830
02972eaf
RS
128312011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
12832
12833 PR target/45074
12834 * optabs.h (valid_multiword_target_p): Declare.
12835 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
12836 doing multi-word operations.
12837 * optabs.c (expand_binop): Likewise.
12838 (expand_doubleword_bswap): Likewise.
12839 (expand_absneg_bit): Likewise.
12840 (expand_unop): Likewise.
12841 (expand_copysign_bit): Likewise.
12842 (multiword_target_p): New function.
12843
4d41c2d1
RS
128442011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
12845
12846 PR rtl-optimization/48830
12847 PR rtl-optimization/48808
12848 PR rtl-optimization/48792
12849 * reload.c (push_reload): Check contains_reg_of_mode.
12850 * reload1.c (strip_paradoxical_subreg): New function.
12851 (gen_reload_chain_without_interm_reg_p): Use it to handle
12852 paradoxical subregs.
12853 (emit_output_reload_insns, gen_reload): Likewise.
12854
5f57dccb
DL
128552011-06-01 David Li <davidxl@google.com>
12856
12857 * predict.c : Change pass name
12858 * ipa.c: Ditto.
12859 * dce.c: Ditto.
12860 * tree-profile.c: Ditto.
12861 * except.c: Ditto.
12862
ea6cf778
DL
128632011-06-01 David Li <davidxl@google.com>
12864
12865 * tree-pretty-print.c (dump_function_header): New function.
12866 * final.c (rest_of_clean_state): Use header dumper.
12867 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
12868 * passes.c (pass_init_dump_file): Use header dumper.
12869
ebdc0d4b
JJ
128702011-06-01 Jakub Jelinek <jakub@redhat.com>
12871
eeeb9b49
JJ
12872 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
12873 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
12874 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
12875 New functions.
12876 (mem_loc_descriptor): Use them.
12877
ebdc0d4b
JJ
12878 * var-tracking.c (create_entry_value): New function.
12879 (vt_add_function_parameter): Use it.
12880
0699e415
RO
128812011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12882
12883 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
12884 Include <signal.h>, <ucontext.h>.
12885 (sigill_caught): Define.
12886 (sigill_hdlr): New function.
12887 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
12888 insns can be executed.
aad61732 12889 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
12890 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
12891
ca24c5ad
RO
128922011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12893
12894 * config/t-slibgcc-darwin: Move to ...
aad61732 12895 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
12896 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
12897 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
12898 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 12899 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
12900 Remove i386/t-crtstuff from tmake_file.
12901 (i[34567]86-*-solaris2*): Remove t-svr4,
12902 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
12903 t-slibgcc-dummy.
12904 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
12905 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
12906 sparc/t-crtfm from tmake_file.
12907 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
12908 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
12909 Remove extra_parts.
12910 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
12911 * config/i386/t-nwld (SHLIB_LINK): Remove.
12912 * config/i386/t-rtems-i386: Rename to ...
12913 * config/i386/t-rtems: ... this.
12914 ($(T)crti.o, $(T)crtn.o): Remove.
12915 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
12916 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
12917 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
12918 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
12919 EXTRA_MULTILIB_PARTS): Remove.
12920 * config/sparc/t-sol2-64: Likewise.
12921 * config/sparc/t-sol2: Remove.
12922 * config/sparc/t-crtin: Remove.
12923 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
12924 * config/i386/gmon-sol2.c: Remove.
12925 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
12926 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
12927 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
12928 * config/i386/sol2-gc1.asm: Remove.
12929 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
12930 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
12931 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
12932 * config/t-slibgcc-sld: Remove.
12933
a78d13c3
JJ
129342011-06-01 Jakub Jelinek <jakub@redhat.com>
12935
12936 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
12937 base_type_for_mode with op_mode instead of mode.
12938
572070ef
PB
129392011-06-01 Paul Brook <paul@cpodesourcery.com>
12940
12941 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
12942 Cortex-A15.
12943 * config/arm/arm-tune.md: Regenerate.
12944 * config/arm/arm-tables.opt: Regenerate.
12945 * config/arm/arm.c (FL_DIV): Rename...
12946 (FL_THUMB_DIV): ... to this.
12947 (FL_ARM_DIV): Define.
12948 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
12949 (arm_arch_hwdiv): Remove.
12950 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
12951 (arm_issue_rate): Add cortexr5.
12952 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
12953 __ARM_ARCH_EXT_IDIV__.
12954 (TARGET_IDIV): Define.
12955 (arm_arch_hwdiv): Remove.
12956 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
12957 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
12958 (divsi3, udivsi3): New patterns.
12959 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
12960 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
12961
11026b51
MJ
129622011-06-01 Martin Jambor <mjambor@suse.cz>
12963
12964 * ipa-utils.c (ipa_dfs_info): New field scc_no.
12965 * ipa-utils.c (searchc): Set scc_no.
12966
b6156cf2
MJ
129672011-06-01 Martin Jambor <mjambor@suse.cz>
12968
12969 * ipa-utils.c (searchc_env): New field allow_overwritable.
12970 (searchc): do not ignore edges to overwritable nodes if indicated
12971 by env->allow_overwritable.
12972 (ipa_reduced_postorder): Set env.allow_overwritable.
12973
6807da97
RG
129742011-06-01 Richard Guenther <rguenther@suse.de>
12975
12976 * tree.c (free_lang_data): Do not reset boolean_type_node nor
12977 char_type_node.
12978 * lto-streamer.c (lto_record_common_node): Take node pointer,
12979 do not register types.
12980 (lto_preload_common_nodes): Explicitly skip preloading nodes
12981 that differ between frontends.
12982
66bd20e7 129832011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
12984
12985 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
12986 NON_FLOAT_REGS.
12987
66bd20e7 129882011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
12989
12990 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
12991 parameter value for dump. Dump cost on outermost call only.
12992 (rs6000_memory_move_cost): Dump cost on outermost call only.
12993
7351d8da
JJ
129942011-05-31 Jakub Jelinek <jakub@redhat.com>
12995
ead7c399
JJ
12996 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
12997 DW_OP_GNU_convert ops.
12998
509f4495
JJ
12999 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
13000 cselib_preserve_constants.
13001 (cselib_lookup_1): If cselib_preserve_constants,
13002 a new VALUE is being created for REG and there is a VALUE for the
13003 same register in wider mode, add another loc with lowpart SUBREG of
13004 the wider VALUE.
13005 (cselib_subst_to_values): Handle ENTRY_VALUE.
13006 * var-tracking.c (replace_expr_with_values): Return NULL for
13007 ENTRY_VALUE too.
13008 * dwarf2out.c (convert_descriptor_to_signed): New function.
13009 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
13010 instead of two shifts.
13011 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
13012 the right mode if needed.
13013 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
13014 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
13015 convert_descriptor_to_signed.
13016 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
13017 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
13018
7351d8da
JJ
13019 PR target/48688
13020 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
13021
5cc93ee0
UB
130222011-05-31 Uros Bizjak <ubizjak@gmail.com>
13023
13024 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
13025 of X87MODEI12 and SWI48x instead of SSEMODEI24.
13026 (SWI248x): New mode iterator, rename from X87MODEI.
13027 (X87MODEI): Remove mode iterator.
13028 (X87MODEI12): Ditto.
13029 (SSEMODEI24): Ditto.
13030
f0686e78
AO
130312011-05-31 Alexandre Oliva <aoliva@redhat.com>
13032
13033 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
13034 * doc/invoke.texi: Document max-vartrack-expr-depth.
13035 * var-tracking.c (EXPR_DEPTH): New.
13036 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
13037
f3308413
AO
130382011-05-31 Alexandre Oliva <aoliva@redhat.com>
13039
13040 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
13041 * config/i386/sse.md: Add n to negated FMA pattern names.
13042
28c14a04
AO
130432011-05-31 Alexandre Oliva <aoliva@redhat.com>
13044
13045 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
13046
70efc82d
AO
130472011-05-31 Alexandre Oliva <aoliva@redhat.com>
13048
5cc93ee0 13049 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 13050
6ba5d856
UB
130512011-05-31 Uros Bizjak <ubizjak@gmail.com>
13052
13053 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
13054 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
13055
130562011-05-31 Uros Bizjak <ubizjak@gmail.com>
13057
13058 * config/i386/i386.md (*movtf_internal): Avoid allocating general
13059 registers. Penalize F*r->o alternative to prevent partial memory
13060 stalls. Slightly penalize *roF->*r alternative. Generate SSE
13061 CONST_DOUBLE immediates when optimizing function for size. Do not move
13062 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
13063 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
13064 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
13065 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
13066 alternatives.
13067 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
13068
13069 (fp_register_operand splitters): Use fp_register_operand
13070 constraint. Do not use FP_REG_P in insn condition.
13071 (any_fp_register_operand splitters): Use any_fp_register_operand
13072 constraint. Do not use ANY_FP_REG_P in insn condition.
13073
533c07c5
JH
130742011-05-31 Jan Hubicka <jh@suse.cz>
13075
13076 * cgraph.h (cgraph_inline_failed_t): Give enum a name
13077 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
13078 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
13079 (lto_output_edge): Use output_enum and var_len_unsigned.
13080 (lto_output_varpool_node): Likewise.
13081 (input_overwrite_node): Do not take resolution parameter;
13082 extract it from a bitpack.
13083 (input_node): Do not read resolution; use input_enum and
13084 var_len_unsigned.
13085 (input_varpool_node): Likewise.
13086 (input_edge): Likewise.
13087 (input_cgraph_1): Likewise.
13088
2611db71
RG
130892011-05-31 Richard Guenther <rguenther@suse.de>
13090
13091 * gimple.c (gimple_register_canonical_type): Do not register
13092 any types via gimple_register_type.
13093
b9e57365
JH
130942011-05-31 Jan Hubicka <jh@suse.cz>
13095
13096 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
13097 of thunks.
13098
35979cc2
JJ
130992011-05-31 Jakub Jelinek <jakub@redhat.com>
13100
13101 PR rtl-optimization/49235
13102 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
13103 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
13104
8f7de592
IR
131052011-05-31 Ira Rosen <ira.rosen@linaro.org>
13106
13107 PR tree-optimization/49093
13108 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
13109 data references.
13110
8d8a3bda
DS
131112011-05-31 Dodji Seketeli <dodji@redhat.com>
13112
13113 PR debug/49047
13114 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 13115 for concrete functions containing the code of cloned functions.
8d8a3bda 13116
2e87621c
RG
131172011-05-31 Richard Guenther <rguenther@suse.de>
13118
13119 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
13120 to ...
13121 (forward_propagate_into_comparison_1): ... this.
13122 (forward_propagate_comparison): Rename to ...
13123 (forward_propagate_into_comparison): ... this. Split out
13124 real forward propagation code to ...
13125 (forward_propagate_comparison): ... this.
13126 (forward_propagate_into_gimple_cond): Remove looping.
13127 (forward_propagate_into_cond): Likewise.
13128 (simplify_not_neg_expr): Return whether we have done something.
13129 (simplify_gimple_switch): Likewise.
13130 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
13131 (ssa_forward_propagate_and_combine): ... this. Re-structure
13132 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 13133 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
13134 (pass_forwprop): Adjust.
13135
5a880d5d
ILT
131362011-05-30 Ian Lance Taylor <iant@google.com>
13137
13138 * godump.c (go_format_type): Correct length of name added to
13139 obstack for anonymous field.
13140
5f133038
KK
131412011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
13142
13143 PR target/49186
13144 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
13145 part of the second operand is 0.
13146
b17d5426
UB
131472011-05-30 Uros Bizjak <ubizjak@gmail.com>
13148
13149 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
13150 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
13151 to memory for !TARGET_MEMORY_MISMATCH_STALL.
13152 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 13153 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
13154 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
13155 when optimizing function for size. Do not move CONST_DOUBLEs
13156 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
13157 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
13158 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
13159 check for ANY_FP_REGNO_P instead.
13160 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
13161 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
13162 function for speed.
13163 * config/i386/i386.c (ix86_option_override_internal): Do not
13164 set TARGET_INTEGER_DFMODE_MOVES here.
13165
a0cd843f
L
131662011-05-30 H.J. Lu <hongjiu.lu@intel.com>
13167
13168 PR target/49168
aad61732 13169 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 13170
006a5f38
JJ
131712011-05-30 Jakub Jelinek <jakub@redhat.com>
13172
13173 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
13174 DW_TAG_rvalue_reference_type even for
13175 -gdwarf-4 -fno-debug-types-section.
13176
6e96f98a
BS
131772011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13178
13179 PR tree-optimization/46728
13180 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
13181 (build_and_insert_binop): New.
13182 (gimple_expand_builtin_pow): Reorder args for
13183 build_and_insert_call; use build_and_insert_binop; add more
13184 optimizations for fractional exponents.
b17d5426 13185
4f60111f
NF
131862011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
13187
13188 PR bootstrap/49190
13189
13190 Revert:
13191 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
13192
13193 * tree.h (struct tree_identifier): Inherit from tree_typed, not
13194 tree_common.
13195 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
13196 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
13197 TS_BASE instead of TS_COMMON.
13198 * varasm.c (assemble_name): Remove assert.
13199
3fd7879d
RS
132002011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
13201
13202 * config.gcc: Keep obselete list sorted.
13203
80060f7a
JJ
132042011-05-30 Jakub Jelinek <jakub@redhat.com>
13205 Eric Botcazou <ebotcazou@adacore.com>
13206
13207 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
13208 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
13209 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
13210 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
13211 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
13212
17e99cdb
RG
132132011-05-30 Richard Guenther <rguenther@suse.de>
13214
13215 * gimple.c (gimple_types_compatible_p_1): Compare record
13216 and union type members properly.
13217
42b05b6e
RG
132182011-05-30 Richard Guenther <rguenther@suse.de>
13219
13220 PR tree-optimization/49210
6ba5d856
UB
13221 * ipa-split.c (split_function): Care for the case where the call
13222 result is not trivially convertible to the result holding variable.
42b05b6e 13223
f3321158
RG
132242011-05-30 Richard Guenther <rguenther@suse.de>
13225
13226 PR tree-optimization/49218
13227 * tree-vrp.c (adjust_range_with_scev): Properly check whether
13228 overflow occured.
13229
d12d8efe
RG
132302011-05-30 Richard Guenther <rguenther@suse.de>
13231
13232 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
13233 New function split out from ...
13234 (forward_propagate_into_gimple_cond): ... here. Adjust.
13235 (forward_propagate_into_cond): Likewise.
13236 (forward_propagate_comparison): Also propagate into
13237 comparisons on assignment RHS. Change return value to
13238 behave similar to forward_propagate_into_cond.
13239 (tree_ssa_forward_propagate_single_use_vars): Handle
13240 strict-overflow warnings properly for forward_propagate_comparison.
13241
df33b41f
RO
132422011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13243
13244 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
13245 from plugin linker.
13246 * configure: Regenerate.
13247
69940d4d
IR
132482011-05-30 Ira Rosen <ira.rosen@linaro.org>
13249
13250 PR tree-optimization/49199
13251 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 13252 non-reduction operands are either defined in the loop or by induction.
69940d4d 13253
226c52aa
XDL
132542011-05-29 Xinliang David Li <davidxl@google.com>
13255
13256 * opts-global.c (handle_common_deferred_options): Handle new options.
13257 * passes.c (register_one_dump_file): Call register_pass_name.
13258 (execute_one_pass): Check explicit enable/disable flag.
13259 (passr_hash): New function.
13260 (passr_eq): Ditto.
13261 (register_pass_name): Ditto.
13262 (get_pass_by_name): Ditto.
13263 (pass_hash): Ditto.
13264 (pass_eq): Ditto.
13265 (enable_pass): Ditto.
13266 (disable_pass): Ditto.
13267 (is_pass_explicitly_enabled_or_disabled): Ditto.
13268
491d8eed
UB
132692011-05-29 Uros Bizjak <ubizjak@gmail.com>
13270
13271 * config/i386/i386.md (*movoi_internal_avx): Use
13272 standard_sse_constant_opcode for alternative 0.
13273 (*movti_internal_sse): Ditto.
13274 (*movti_internal_rex64): Use standard_sse_constant_opcode for
13275 alternative 2.
13276 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
13277 sselog1 type moves.
13278 (*movsi_internal): Ditto.
13279 (*movdi_internal): Ditto. Add ssecvt type moves.
13280
eb93b31f
EB
132812011-05-29 Eric Botcazou <ebotcazou@adacore.com>
13282
13283 PR target/48830
13284 * rtlanal.c (simplify_subreg_regno): Adjust comment.
13285
3f831b7d
JJ
132862011-05-29 Jakub Jelinek <jakub@redhat.com>
13287
13288 PR rtl-optimization/49095
13289 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
13290 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
13291
ee3ee488
RS
132922011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
13293
13294 PR target/43995
13295 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
13296 recurse_p argument. Only follow register copies if it is set,
13297 and prevent mips_find_pic_call_symbol from recursing.
13298 (mips_find_pic_call_symbol): Add a recurse_p argument.
13299 Pass it to mips_pic_call_symbol_from_set.
13300 (mips_annotate_pic_calls): Update accordingly.
13301
65f3dedb
RS
133022011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
13303
13304 * emit-rtl.c (try_split): Use a loop to search for
13305 NOTE_INSN_CALL_ARG_LOCATIONs.
13306
61e374ab
RG
133072011-05-29 Richard Guenther <rguenther@suse.de>
13308
13309 PR tree-optimization/49217
13310 * ipa-pure-const.c (propagate_pure_const): Fix typos.
13311
fac009a8
JH
133122011-05-28 Jan Hubicka <jh@suse.cz>
13313
13314 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
13315 length.
13316 (string_slot_free): Remove
13317 (create_output_block): Initialize obstack.
13318 (destroy_output_block): Free obstack.
13319 (lto_string_index): Add PERSISTENT parameter; do not duplicate
13320 the string unless it needs to be added into the hash.
13321 (lto_output_string_with_length): Add persistent attribute;
13322 handle NULL strings.
13323 (lto_output_string): Add PERSISTENT parameter.
13324 (output_string_cst, output_identifier): Simplify.
13325 (lto_output_location_bitpack): Update.
13326 (lto_output_builtin_tree): Update.
13327 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
13328 (lto_output_string, lto_output_string_with_length): Remove
13329 declarations; functions are static now.
fac009a8 13330
fa766006
JH
133312011-05-28 Jan Hubicka <jh@suse.cz>
13332
13333 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
13334 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
13335 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
13336 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
13337 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
13338 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
13339 unpack_ts_decl_with_vis_value_fields,
13340 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
13341 lto_get_builtin_tree): Use enum and variable length i/o.
13342 * basic-block.h (profile_status_d): Add PROFILE_LAST.
13343 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
13344 New functions.
13345 (bp_pack_enum, bp_unpack_enum): New macros.
13346
e092158b
RS
133472011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
13348
13349 * genrecog.c: Remove redundant forward declarations.
13350
7ca2afa0
RS
133512011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
13352
13353 * config.gcc: Deprecate mips*-*-openbsd*.
13354
a601a53a
RS
133552011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
13356
13357 PR bootstrap/49195
13358 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
13359 for match_op_dup.
13360
fc64b448
AP
133612011-05-27 Andrew Pinski <pinskia@gmail.com>
13362
13363 PR middle-end/48981
13364 * gengtype.c (vec_prefix_type): New function.
13365 (note_def_vec): Use vec_prefix_type and change the length
13366 attribute to be based on the prefix.
13367 * vec.c: Include coretypes.h before vec.h.
13368 (struct vec_prefix): Remove.
13369 (vec_gc_p_reserve): Change the offsetof to sizeof.
13370 (vec_gc_p_reserve_exact): Likewise.
13371 (vec_heap_p_reserve): Likewise.
13372 (vec_heap_p_reserve_exact): Likewise.
13373 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
13374 (vec_stack_p_reserve): Change the offsetof to sizeof.
13375 (vec_stack_p_reserve_exact): Likewise.
13376 * vec.h (struct vec_prefix): New struct definition.
13377 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
13378 (VEC_T_GTY(T,B)): Likewise.
13379 (DEF_VEC_FUNC_P(T)): Use prefix field.
13380 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
13381 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
13382
ba869341
BS
133832011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13384
13385 PR tree-optimization/46728
13386 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
13387 (powi_as_mults): Add gimple_set_location.
13388 (build_and_insert_call): New.
13389 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
13390 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 13391
d296760d
AM
133922011-05-27 Alexander Monakov <amonakov@ispras.ru>
13393
13394 * doc/contrib.texi: Update copyright years.
13395 (Contributors): Add Zdenek Sojka.
13396
38e01f9e
NF
133972011-05-27 Nathan Froyd <froydnj@codesourcery.com>
13398
13399 * c-decl.c (c_push_function_context): Copy the current statement
13400 list stack.
13401 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
13402 (finish_struct): Call building_stmt_list_p instead of checking
13403 cur_stmt_list.
13404 * c-parser.c (c_parser_postfix_expression): Likewise.
13405 * c-typeck.c (c_end_compound_stmt): Likewise.
13406 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
13407 * tree-iterator.c (stmt_list_cache): Change to a VEC.
13408 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
13409 (free_stmt_list): Likewise.
13410 * tree.h (struct tree_statement_list): Include typed_tree instead
13411 of tree_common.
13412 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
13413 as TS_TYPED instead of TS_COMMON.
13414
8950516e 134152011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 13416 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
13417
13418 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
13419 (HAVE_AS_IX86_TLSGDPTL): Define.
13420 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
13421 (HAVE_AS_IX86_TLSLDMPLT): Define.
13422 * configure: Regenerate.
13423 * config.in: Regenerate.
13424 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
13425 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
13426 TARGET_SUN_TLS, use @tlsgdplt or @plt.
13427 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
13428 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
13429 @tlsldmplt or @plt.
13430 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
13431
b0bd15f7
BS
134322011-05-27 Bernd Schmidt <bernds@codesourcery.com>
13433
13434 * sched-int.h (struct _haifa_deps_insn_data): New members cond
13435 and reverse_cond.
13436 (INSN_COND, INSN_REVERSE_COND): New macros.
13437 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
13438 once.
13439 (sched_get_condition_with_rev): Cache the results, and look them up
13440 if possible.
13441 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
13442 are clobbered by the current insn.
13443 * target.def (exposed_pipline): New sched data hook.
13444 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
13445 * doc/tm.texi: Regenerate.
13446
fa65a9cf
BS
134472011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13448
13449 PR tree-optimization/49170
13450 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
13451 sincos or cexp.
b0bd15f7 13452
c2299dfe
RG
134532011-05-27 Richard Guenther <rguenther@suse.de>
13454
13455 PR middle-end/49189
13456 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
13457 of comparisons.
13458
a95b23b4
BS
134592011-05-27 Bernd Schmidt <bernds@codesourcery.com>
13460
13461 * haifa-sched.c (sched_scan_info): Remove.
13462 (schedule_block): Call sched_extend_luids rather than sched_init_luids
13463 with NULL args.
13464 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
13465 Remove functions.
13466 (sched_scan): Remove.
13467 (sched_extend_luids): Renamed from luids_extend_insn and no longer
13468 static. All callers changed.
13469 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
13470 static. All callers changed.
13471 (sched_init_luids): Remove all arguments except the first. All
13472 callers changed. Don't use sched_scan.
13473 (haifa_init_h_i_d): Likewise.
13474 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
13475 manually rather than using sched_init_luids. Likewise with
13476 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
13477 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
13478 rather than sched_init_luids with NULL args.
13479 * sel-sched-ir.c (new_insns): Remove variable.
13480 (sched_scan): New static function, previously in haifa-sched.c. Remove
13481 all arguments but the first two; all callers changed.
13482 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
13483 rather than sched_init_luids.
13484 (sel_init_bbs): Remove second argument. All callers changed.
13485 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
13486 with NULL arguments.
13487 (create_insn_rtx_from_pattern): Likewise.
13488 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
13489 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
13490 (sched_init_insn_luid, sched_extend_luids): Declare.
13491 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
13492 declarations.
13493
f8f972fc
RB
134942011-05-27 Richard Guenther <rguenther@suse.de>
13495
13496 PR middle-end/49177
13497 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
13498 A CMP B ? (T) true : (T) false for non-integral types T again.
13499
51a9ed47
JH
135002011-05-27 Jan Hubicka <jh@suse.cz>
13501
13502 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
13503 so 0 means NULL string.
13504 (lto_output_string_with_length): ... here.
f8f972fc
RB
13505 (lto_output_string, output_string_cst, output_identifier): Update
13506 handling of NULL strings.
51a9ed47
JH
13507 (lto_output_location_bitpack): New function.
13508 (lto_output_location): Use it.
13509 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
13510 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
13511 len values.
13512 * lto-streamer-in.c (string_for_index): Break out from ...; offset
13513 values by 1.
491d8eed 13514 (input_string_internal): ... here;
f8f972fc
RB
13515 (input_string_cst, input_identifier, lto_input_string): Update handling
13516 of NULL strings.
51a9ed47
JH
13517 (lto_input_location_bitpack): New function
13518 (lto_input_location): Use it.
f8f972fc
RB
13519 (unpack_ts_type_common_value_fields): Pack align & alias in var len
13520 values.
51a9ed47
JH
13521 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
13522 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
13523 (bp_pack_value): Sanity check the value range.
13524 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
13525 New functions.
13526 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
13527 New functions.
13528
66bd20e7 135292011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
13530
13531 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
13532 call_arg_location instructions down the floor.
13533
574e418a
VM
135342011-05-26 Vladimir Makarov <vmakarov@redhat.com>
13535
13536 PR rtl-optimization/49154
13537 * ira.c (setup_pressure_classes): Process class without sublcasses
13538 as a candidate for pressure classes.
13539
6a1a787e
RS
135402011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
13541
13542 PR rtl-optimization/48575
13543 * genrecog.c (position_type): New enum.
13544 (position): New structure.
13545 (decision): Use position structure instead of a string.
13546 (root_pos, peep2_insn_pos_list): New variables.
13547 (next_position, compare_positions): New functions.
13548 (new_decision): Use position structures instead of strings.
13549 (maybe_both_true): Likewise.
13550 (change_state): Likewise.
13551 (write_tree): Likewise.
13552 (make_insn_sequence): Likewise.
13553
92e948a8
NF
135542011-05-26 Nathan Froyd <froydnj@codesourcery.com>
13555
13556 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
13557 TS_BASE instead of TS_COMMON.
13558 (find_decls_types_r): Check for TS_TYPED structure before looking at
13559 TREE_TYPE.
13560 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
13561 Add chain field.
13562 (BLOCK_CHAIN): Use new chain field.
13563
66bd20e7 135642011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
13565
13566 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
13567 moves expensive on Power7 also.
13568
1f498652
RG
135692011-05-26 Richard Guenther <rguenther@suse.de>
13570
13571 * fold-const.c (fold_unary_loc): Remove bogus code.
13572
a2fc3e63
NF
135732011-05-26 Nathan Froyd <froydnj@codesourcery.com>
13574
13575 * tree.h (struct tree_identifier): Inherit from tree_typed, not
13576 tree_common.
13577 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
13578 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
13579 TS_BASE instead of TS_COMMON.
13580 * varasm.c (assemble_name): Remove assert.
13581
d11bf18f
BS
135822011-05-26 Bernd Schmidt <bernds@codesourcery.com>
13583
13584 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
13585 substituted first.
13586 * libgcc-std.ver: Delete file.
13587
ac8e1875
RG
135882011-05-26 Richard Guenther <rguenther@suse.de>
13589
13590 PR tree-optimization/48702
13591 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
13592 only when we know the base address is within bounds.
13593 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
13594 assume the base address of TARGET_MEM_REFs is in bounds.
13595
7e32e652
RO
135962011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13597
13598 PR target/49099
13599 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
13600 declaration in TARGET_SOLARIS.
13601
66bd20e7 136022011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
13603
13604 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 13605 The instruction is then expanded explicitly.
43660e0b
HS
13606 (supported_compare): Callable instruction.
13607 (compare): Likewise.
13608
1537737f
JJ
136092011-05-26 Jakub Jelinek <jakub@redhat.com>
13610
13611 PR c++/49165
13612 * gimplify.c (shortcut_cond_r): Don't special case
13613 COND_EXPRs if they have void type on one of their arms.
13614
7b1ac803
BS
136152011-05-26 Bernd Schmidt <bernds@codesourcery.com>
13616
13617 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
13618 to reduce duplication, and to achieve a slightly more logical order
13619 of operations.
13620
1aa9438f
JJ
136212011-05-26 Jakub Jelinek <jakub@redhat.com>
13622
13623 PR tree-optimization/49161
13624 * tree-vrp.c (struct case_info): New type.
13625 (compare_case_labels): Sort case_info structs instead of
13626 trees, and not primarily by CASE_LABEL uids but by
13627 label_for_block indexes.
13628 (find_switch_asserts): Put case labels into struct case_info
13629 array instead of TREE_VEC, adjust sorting, compare label_for_block
13630 values instead of CASE_LABELs.
13631
50fed7bf
RR
136322011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13633
13634 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
13635 ("orndi3_neon"): Likewise.
13636 ("bic<mode>3_neon"): Likewise.
13637
48df3fa6
IR
136382011-05-26 Ira Rosen <ira.rosen@linaro.org>
13639
13640 PR tree-optimization/49038
13641 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
13642 Ensure at least one epilogue iteration if required by data
13643 accesses with gaps.
13644 * tree-vectorizer.h (struct _loop_vec_info): Add new field
13645 to mark loops that require peeling for gaps.
13646 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
13647 (vect_get_known_peeling_cost): Take peeling for gaps into
13648 account.
13649 (vect_transform_loop): Generate epilogue if required by data
13650 access with gaps.
13651 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
13652 loop as requiring an epilogue if there are gaps in the end of
13653 the strided group.
13654
53febcba
ILT
136552011-05-25 Ian Lance Taylor <iant@google.com>
13656
13657 * godump.c (go_format_type): Output the first field with a usable
13658 Go type, if any.
13659
dbbc4d4c
ILT
136602011-05-25 Ian Lance Taylor <iant@google.com>
13661
13662 * godump.c (go_format_type): Check for invalid type names, pointer
13663 target types, and struct field types.
13664
f03a5402
JM
136652011-05-25 Jason Merrill <jason@redhat.com>
13666
13667 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
13668
c497c412
UB
136692011-05-25 Uros Bizjak <ubizjak@gmail.com>
13670
13671 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
13672
e470affe
L
136732011-05-25 H.J. Lu <hongjiu.lu@intel.com>
13674
13675 * config/i386/i386.md (*movqi_extv_1)): Put back
13676 "register_operand" check in "type" calculation.
13677 (*movqi_extzv_2): Likewise.
13678
6c81b2bc
L
136792011-05-25 H.J. Lu <hongjiu.lu@intel.com>
13680
c497c412 13681 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 13682
0c007eb2
BS
136832011-05-25 Bernd Schmidt <bernds@codesourcery.com>
13684
13685 PR bootstrap/49160
13686 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
13687 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
13688 __divxc3, __divtc3): Wrap definitions in #ifndef.
13689
521ca78e
L
136902011-05-25 H.J. Lu <hongjiu.lu@intel.com>
13691
13692 PR target/49142
13693 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
13694 "register_operand" check and replace q_regs_operand with
13695 QIreg_operand in "type" calculation.
13696 (*movqi_extv_1): Likewise.
13697 (*movqi_extzv_2_rex64): Likewise.
13698 (*movqi_extzv_2): Likewise.
13699
13700 * config/i386/predicates.md (QIreg_operand): New.
13701
29f8b844
RG
137022011-05-25 Richard Guenther <rguenther@suse.de>
13703
13704 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
13705 type-based offset disambiguation, streamline MEM_REF and
13706 TARGET_MEM_REF handling.
13707
74838de3
L
137082011-05-25 H.J. Lu <hongjiu.lu@intel.com>
13709
13710 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
13711 (bdesc_special_args): Add pause intrinsic.
13712
13713 * config/i386/i386.md (UNSPEC_PAUSE): New.
13714 (pause): Likewise.
13715 (*pause): Likewise.
13716 * config/i386/ia32intrin.h (__pause): Likewise.
13717
13718 * doc/extend.texi (X86 Built-in Functions): Add documentation for
13719 pause intrinsic.
13720
d24ad7d6
BS
137212011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13722
13723 PR tree-optimization/46728
13724 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
13725 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 13726
d9f8303f
NF
137272011-05-25 Nathan Froyd <froydnj@codesourcery.com>
13728
13729 * tree.h (struct tree_exp): Inherit from struct tree_typed.
13730 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
13731 instead of TS_COMMON.
13732
cdbf4541
BS
137332011-05-25 Bernd Schmidt <bernds@codesourcery.com>
13734
13735 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
13736 LIBGCC2_GNU_PREFIX is defined.
13737 (__N): New macro.
13738 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
13739 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
13740 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
13741 __clz_tab): Define using __N.
13742 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
13743 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
13744 * target.def (libfunc_gnu_prefix): New hook.
13745 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
13746 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
13747 * doc/tm.texi: Regenerate.
13748 * system.h (LIBGCC2_GNU_PREFIX): Poison.
13749 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
13750 account.
13751 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
13752 (init_optabs): Likewise for the bswap libfuncs.
13753 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
13754 and divide.
13755 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
13756 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
13757 * libgcc-std.ver: Remove.
13758 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
13759 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
13760 libgcc-std.ver.
13761 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
13762 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
13763 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
13764 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
13765 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
13766 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
13767 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
13768 * config/fixed-bit.h (FIXED_OP): Define differently depending on
13769 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
13770 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
13771
f242c0a5
JH
137722011-05-25 Jan Hubicka <jh@suse.cz>
13773
13774 * lto-streamer-out.c (output_record_start): Use lto_output_enum
13775 (lto_output_tree): Use output_record_start.
13776 * lto-streamer-in.c (input_record_start): Use lto_input_enum
13777 (lto_get_pickled_tree): Use input_record_start.
13778 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
13779 (lto_value_range_error): New function.
13780 * lto-streamer.h (lto_value_range_error): Declare.
13781 (lto_output_int_in_range, lto_input_int_in_range): New functions.
13782 (lto_output_enum, lto_input_enum): New macros.
13783
a11e0df4
EB
137842011-05-25 Eric Botcazou <ebotcazou@adacore.com>
13785
13786 * common.opt (flag_stack_usage_info): New variable.
13787 (-Wstack-usage): New option.
13788 * doc/invoke.texi (Warning options): Document -Wstack-usage.
13789 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
13790 <OPT_fstack_usage>: Likewise.
13791 * toplev.c (output_stack_usage): Handle -Wstack-usage.
13792 * calls.c (expand_call): Test flag_stack_usage_info variable instead
13793 of flag_stack_usage.
13794 (emit_library_call_value_1): Likewise.
13795 * explow.c (allocate_dynamic_stack_space): Likewise.
13796 * function.c (instantiate_virtual_regs ): Likewise.
13797 (prepare_function_start): Likewise.
13798 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
13799 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
13800 * config/arm/arm.c (arm_expand_prologue): Likewise.
13801 (thumb1_expand_prologue): Likewise.
13802 * config/avr/avr.c (expand_prologue): Likewise.
13803 * config/i386/i386.c (ix86_expand_prologue): Likewise.
13804 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
13805 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
13806 * config/mips/mips.c (mips_expand_prologue): Likewise.
13807 * config/pa/pa.c (hppa_expand_prologue): Likewise.
13808 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
13809 * config/s390/s390.c (s390_emit_prologue): Likewise.
13810 * config/sh/sh.c (sh_expand_prologue): Likewise.
13811 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
13812 * config/spu/spu.c (spu_expand_prologue): Likewise.
13813
e7cfe241
RG
138142011-05-25 Richard Guenther <rguenther@suse.de>
13815
13816 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
13817 (gimple_canonical_types_compatible_p): Likewise.
13818
c5235f4c
JH
138192011-05-25 Jan Hubicka <jh@suse.cz>
13820
13821 PR middle-end/49062
13822 * ipa.c (function_and_variable_visibility): Only add to same
13823 comdat group list if DECL_ONE_ONLY.
13824
8242a0f6
AB
138252011-05-25 Andrey Belevantsev <abel@ispras.ru>
13826
13827 PR rtl-optimization/49014
13828 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
13829
642a011d
JJ
138302011-05-25 Jakub Jelinek <jakub@redhat.com>
13831
13832 PR target/49128
13833 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
13834
30a435d8
VM
138352011-05-24 Vladimir Makarov <vmakarov@redhat.com>
13836
13837 PR rtl-optimization/48757
13838 * ira-build.c (loop_with_eh_edge_p): Rename to
13839 loop_with_complex_edge_p, check edges on complexity, make function
13840 conditional.
13841 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
13842 conditional.
13843
24d1bbc7
EB
138442011-05-24 Eric Botcazou <ebotcazou@adacore.com>
13845
13846 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
13847 force flag_ira_share_save_slots to 0.
13848
65773087
EB
138492011-05-24 Eric Botcazou <ebotcazou@adacore.com>
13850
13851 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
13852 (vt_initialize): Set PROLOGUE_BB unconditionally.
13853 Add block comment about CFA_BASE_RTX machinery.
13854 Reset FP_CFA_OFFSET to -1 on all invalid paths.
13855 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
13856
4e26ba90
NP
138572011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
13858
13859 PR objc/48187
13860 * c-parser.c (c_parser_objc_class_instance_variables): More robust
13861 parsing of syntax error in ObjC instance variable lists. In
13862 particular, avoid an infinite loop if there is a stray ']'.
13863 Updated error message.
13864
936fd13c
ILT
138652011-05-24 Ian Lance Taylor <iant@google.com>
13866
13867 * godump.c (go_define): Don't accept a string immediately after
13868 another operand.
13869
f17333e3
ILT
138702011-05-24 Ian Lance Taylor <iant@google.com>
13871
13872 * godump.c (struct godump_container): Add invalid_hash field.
13873 (go_format_type): Return false if type is found in invalid_hash.
13874 (go_output_typedef): Add invalid type to invalid_hash.
13875 (go_finish): Create and delete invalid_hash.
13876
d24ad7d6 138772011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 13878
78be79d5
BS
13879 PR tree-optimization/46728
13880 * tree-ssa-math-opts.c (powi_table): New.
13881 (powi_lookup_cost): New.
13882 (powi_cost): New.
13883 (powi_as_mults_1): New.
13884 (powi_as_mults): New.
13885 (gimple_expand_builtin_powi): New.
13886 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
13887 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 13888
caee412b
RO
138892011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13890
13891 PR target/3746
13892 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
13893 mips-tdump native.
13894 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
13895 * mips-tdump.c: Likewise.
13896
5eed4f27
L
138972011-05-24 H.J. Lu <hongjiu.lu@intel.com>
13898
13899 PR target/49128
13900 * config/i386/driver-i386.c (host_detect_local_cpu): Always
13901 add -mno-XXX. Handle FMA.
13902
8c5fdaae
VM
139032011-05-24 Vladimir Makarov <vmakarov@redhat.com>
13904
13905 PR rtl-optimization/48633
13906 * ira-build.c (loop_with_eh_edge_p): New function.
13907 (mark_loops_for_removal): Use it.
13908
139092011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
13910
13911 PR rtl-optimization/48971
13912 * ira.c (setup_pressure_classes): Don't check register move cost
13913 for classes with one registers. Don't add pressure class if there
13914 is a pressure class with the same available hard registers.
13915 Check contains_reg_of_mode. Fix a typo in collecting
13916 temp_hard_regset. Ignore hard registers not belonging to a class.
13917
df1f7315
UB
139182011-05-24 Uros Bizjak <ubizjak@gmail.com>
13919
13920 PR target/49133
13921 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
13922
ee0cb37c
EB
139232011-05-24 Eric Botcazou <ebotcazou@adacore.com>
13924 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13925
13926 PR gcov-profile/48845
13927 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
13928
6a20ce76
RG
139292011-05-24 Richard Guenther <rguenther@suse.de>
13930
13931 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
13932 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
13933 (gimple_types_compatible_p_1): Adjust.
13934 (iterative_hash_canonical_type): Do not bother about complete vs.
13935 incomplete types.
13936 (gimple_canonical_types_compatible_p): Likewise.
13937
2fcb858c
RO
139382011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13939
13940 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
13941
96d91dcf
RG
139422011-05-24 Richard Guenther <rguenther@suse.de>
13943
13944 PR bootstrap/49078
13945 * gimple.c (gimple_register_canonical_type): Revert
13946 previous change.
13947 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
13948 does not for a tree for the case where it matters. Cache
13949 pointer-type alias-sets.
13950
1ed1641d
JM
139512011-05-24 Joseph Myers <joseph@codesourcery.com>
13952
13953 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
13954 (OBJS): Remove options.o, opts-common.o and prefix.o.
13955 (OBJS-libcommon-target): New.
13956 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
13957 (BACKEND): Include libcommon-target.a.
13958 (MOSTLYCLEANFILES): Include libcommon-target.a.
13959 (libcommon-target.a): New.
13960 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
13961 prefix.o.
13962
57dfdff0
JM
139632011-05-23 Joseph Myers <joseph@codesourcery.com>
13964
13965 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
13966 parts of output shared with the driver.
13967 * optc-gen.awk: Don't generate parts of output not shared with the
13968 driver.
13969 * opth-gen.awk: Remove GCC_DRIVER conditionals.
13970 * doc/options.texi (SourcerInclude): Mention options-save.c.
13971 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
13972 (OBJS): Add options-save.o.
13973 (options-save.c, options-save.o): New.
13974 (options.o): Update dependencies.
13975 (gcc-options.o): Remove.
13976 (mostlyclean): Remove options-save.c.
13977
0e0d82a7
JJ
139782011-05-23 Jakub Jelinek <jakub@redhat.com>
13979
9166988f
JJ
13980 PR debug/49032
13981 * dbxout.c: Include cgraph.h.
13982 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
13983 and without value expr, return NULL if no varpool node exists for
13984 it or if it is not needed.
13985 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
13986
0e0d82a7
JJ
13987 PR c/49120
13988 * c-decl.c (start_decl): Convert expr to void_type_node.
13989
65712d5c
RS
139902011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
13991
13992 PR rtl-optimization/48826
13993 * emit-rtl.c (try_split): When splitting a call that is followed
13994 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
13995
9025085e
JJ
139962011-05-23 Jakub Jelinek <jakub@redhat.com>
13997
13998 * cfgexpand.c (expand_debug_expr): For unused non-addressable
13999 parameters passed in memory prefer using DECL_INCOMING_RTL over
14000 the pseudos it will be copied into.
14001
34a061be
L
140022011-05-23 H.J. Lu <hongjiu.lu@intel.com>
14003
14004 PR target/47315
14005 * config/i386/i386.c (ix86_option_override_internal): Save the
14006 initial options after checking vzeroupper.
14007
c375a3a4
DL
140082011-05-23 David Li <davidxl@google.com>
14009
14010 PR tree-optimization/48988
14011 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
14012 Initialize has_valid_pred for each pred chain.
14013
e1caba18
RG
140142011-05-23 Richard Guenther <rguenther@suse.de>
14015
14016 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
14017 (iterative_hash_gimple_type): Always hash type names.
14018
dde05067
NF
140192011-05-23 Nathan Froyd <froydnj@codesourcery.com>
14020
14021 * c-typeck.c (build_function_call_vec): Tweak call to
14022 check_function_arguments.
14023
094f6ab3
RG
140242011-05-23 Richard Guenther <rguenther@suse.de>
14025
14026 PR tree-optimization/49115
14027 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
14028 is not necessarily carried out, do not claim it kills the ref.
14029 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
14030
9a9822e1
RG
140312011-05-23 Richard Guenther <rguenther@suse.de>
14032
14033 PR middle-end/15419
14034 * builtins.c (fold_builtin_memory_op): Be less restrictive about
14035 what pointer types we accept for folding.
14036
c8028650
RO
140372011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14038
14039 * gthr-gnat.c: Remove.
14040 * gthr-gnat.h: Remove.
14041 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
14042 * config/t-freebsd (LIB2ADDEH): Likewise.
14043 * config/t-linux (LIB2ADDEH): Likewise.
14044 * config/t-sol2 (LIB2ADDEH): Likewise.
14045 * config/ia64/t-vms (LIB2ADDEH): Likewise.
14046 * configure.ac (target_thread_file): Remove gnat handling.
14047 * configure: Regenerate.
14048 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
14049
15882fe9
TG
140502011-05-23 Tristan Gingold <gingold@adacore.com>
14051 Eric Botcazou <ebotcazou@adacore.com>
14052
14053 * gcov.c (create_file_names): If no object directory is specified,
14054 keep the directory of the file.
14055
da90c957
RO
140562011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14057
14058 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
14059 * configure: Regenerate.
14060
7bba408b
JJ
140612011-05-23 Jakub Jelinek <jakub@redhat.com>
14062
14063 PR middle-end/48973
14064 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
14065 failed and the comparison has a single bit signed type, use
14066 constm1_rtx instead of const1_rtx for true value.
14067 (do_store_flag): If ops->type is single bit signed type, disable
14068 signel bit test optimization and pass -1 instead of 1 as last
14069 parameter to emit_store_flag_force.
14070
bc69f7ff
TV
140712011-05-23 Tom de Vries <tom@codesourcery.com>
14072
14073 PR target/45098
14074 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
14075 function.
14076 (infer_loop_bounds_from_undefined): Use new function.
14077
29cedf8e
RS
140782011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
14079
14080 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
14081 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
14082 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
14083 and -O0 otherwise.
14084 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
14085
afe8b6ec
EB
140862011-05-22 Eric Botcazou <ebotcazou@adacore.com>
14087
14088 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
14089 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
14090 returns true.
14091
872dab53
RS
140922011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
14093
14094 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
14095
145f6c5b
EB
140962011-05-22 Eric Botcazou <ebotcazou@adacore.com>
14097
14098 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
14099 UNSPEC_MOVE_PIC pattern.
14100
8ac79835
EB
141012011-05-22 Eric Botcazou <ebotcazou@adacore.com>
14102
14103 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
14104 (sparc-*-rtems*): Likewise.
14105 (sparc64-*-elf*): Likewise.
14106 (sparc64-*-rtems*): Likewise.
14107 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
14108 * config/sparc/t-crtin: New file.
14109 * config/sparc/t-sol2 (crti.o): Delete rule.
14110 (crtn.o): Likewise.
14111 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
14112 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
14113 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
14114 (ENDFILE_SPEC): Add crtn.o.
14115
5fb43dd8
TV
141162011-05-22 Tom de Vries <tom@codesourcery.com>
14117
14118 PR middle-end/48689
14119 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
14120 CODE_CONTAINS_STRUCT (TS_COMMON).
14121
ccb1b17b
JJ
141222011-05-22 Jakub Jelinek <jakub@redhat.com>
14123
14124 PR middle-end/49029
14125 * expmed.c (extract_fixed_bit_field): Test whether target can be used
14126 only after deciding which mode to use.
14127
50ad7db2
TV
141282011-05-22 Tom de Vries <tom@codesourcery.com>
14129
14130 PR target/45098
dc0a3366 14131 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
14132 for call to get_shiftadd_cost.
14133
ef230b38
UB
141342011-05-22 Uros Bizjak <ubizjak@gmail.com>
14135
14136 PR target/49104
14137 * config/i386/cpuid.h (bit_MMXEXT): New define.
14138
15f072f9
NC
141392011-05-22 Nick Clifton <nickc@redhat.com>
14140
14141 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
14142 initialisation of non-existant args[2] element. Use args[] array
14143 not arg[] array to pass arguments to build_function_type_list.
14144
e38fdc94
IR
141452011-05-22 Ira Rosen <ira.rosen@linaro.org>
14146
14147 PR tree-optimization/49087
ef230b38 14148 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 14149
5b018c65
JM
141502011-05-21 Jason Merrill <jason@redhat.com>
14151
14152 PR c++/49092
14153 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
14154 static storage duration.
14155
abd9a770
EB
141562011-05-21 Eric Botcazou <ebotcazou@adacore.com>
14157
14158 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
14159 frame pointer.
14160
bd9a3248
EB
141612011-05-21 Eric Botcazou <ebotcazou@adacore.com>
14162
14163 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
14164 false if there are call-saved registers here...
14165 (sparc_can_use_return_insn_p): ...but here instead.
14166 (save_or_restore_regs): Fix thinko.
14167 (sparc_expand_prologue): Use current_function_is_leaf.
14168 (sparc_frame_pointer_required): Likewise.
14169
a5dfec9a
NC
141702011-05-21 Nick Clifton <nickc@redhat.com>
14171
14172 PR target/49098
14173 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
14174
555c3771
NP
141752011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
14176
14177 * gengtype.c (walk_type): Implemented "atomic" GTY option.
14178 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
14179
86fa5de4
JM
141802011-05-21 Joseph Myers <joseph@codesourcery.com>
14181
14182 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
14183 * optc-gen.awk: Move common code to opt-read.awk.
14184 * opth-gen.awk: Likewise.
ef230b38 14185 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 14186
bce33ab2
NF
141872011-05-20 Nathan Froyd <froydnj@codesourcery.com>
14188
14189 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
14190
e6450c11
TV
141912011-05-20 Tom de Vries <tom@codesourcery.com>
14192
14193 PR target/45098
14194 * tree-ssa-loop-ivopts.c: Include expmed.h.
14195 (get_shiftadd_cost): New function.
14196 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
14197
0e8b84ec
JJ
141982011-05-20 Jakub Jelinek <jakub@redhat.com>
14199
14200 PR bootstrap/49086
14201 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
14202 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
14203
946bdf67
JM
142042011-05-20 Joseph Myers <joseph@codesourcery.com>
14205
14206 * Makefile.in: Update comment referring to $(OBJS-common).
14207
c53aafdf
ILT
142082011-05-20 Ian Lance Taylor <iant@google.com>
14209
14210 * godump.c (go_output_typedef): Put enum constants in the macro
14211 hash table to avoid duplicate Go const definitions.
14212
2691e6d7
JM
142132011-05-20 Joseph Myers <joseph@codesourcery.com>
14214
14215 * Makefile.in (LIBDEPS): Add libcommon.a.
14216 (LIBS): Likewise.
14217 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
14218 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
14219 pretty-print.o and version.o.
14220 (OBJS-libcommon): New.
14221 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
14222 (BACKEND): Add libcommon.a.
14223 (MOSTLYCLEANFILES): Likewise.
14224 (libcommon.a): New.
14225 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
14226 (cpp$(exeext)): Likewise.
14227 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
14228 pretty-print.o and input.o.
14229 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
14230 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
14231 (errors.o): Remove.
14232 (mips-tfile): Don't explicitly use version.o.
14233 (mips-tdump): Likewise.
14234 (gcov.o): Depend on $(DIAGNOSTIC_H).
14235 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
14236 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
14237 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
14238 * gcov-dump.c: Include intl.h and diagnostic.h.
14239 (main): Initialize diagnostics.
14240 * gcov.c: Include diagnostic.h.
14241 (fnotice): Remove.
14242 (main): Initialize diagnostics.
14243 * lto-wrapper.c: Include diagnostic.h.
14244 (main): Initialize diagnostics.
14245
252b3e8c
MM
142462011-05-20 Michael Matz <matz@suse.de>
14247
14248 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
14249
2ee36ba6
MM
142502011-05-20 Michael Matz <matz@suse.de>
14251 Richard Guenther <rguenther@suse.de>
14252
14253 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
14254 use lto_streamer_cache_append directly instead of returning a VEC.
14255 (preload_common_node): Remove.
14256 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
14257 track seen nodes.
14258 (lto_streamer_cache_create): Call lto_preload_common_nodes.
14259
90ff582f
RG
142602011-05-20 Richard Guenther <rguenther@suse.de>
14261
14262 PR tree-optimization/49079
14263 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
14264 MEM_REFs correctly for the trailing array access detection.
14265 Special case constants the same way as decls for overall size
14266 constraining.
14267
3cda91d8
UB
142682011-05-20 Uros Bizjak <ubizjak@gmail.com>
14269
14270 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
14271 argument expansion.
14272
6c66f733
JJ
142732011-05-20 Jakub Jelinek <jakub@redhat.com>
14274
14275 PR tree-optimization/49073
3cda91d8
UB
14276 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
14277 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
14278 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
14279
0ea80a16
RG
142802011-05-20 Richard Guenther <rguenther@suse.de>
14281
14282 PR middle-end/48849
14283 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
14284 of pointer types the same way the middle-end does.
14285
fb291a1e
RG
142862011-05-20 Richard Guenther <rguenther@suse.de>
14287
3cda91d8
UB
14288 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
14289 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 14290
37cb25ed
QN
142912011-05-19 Quentin Neill <quentin.neill@amd.com>
14292
14293 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
14294 (fma4_fmaddsub): Likewise
14295
a30726a4
JH
142962011-05-19 Jan Hubicka <jh@suse.cz>
14297
14298 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
14299 (GIMPLE_TYPE_PAIR_SIZE): New macro.
14300 (type_pair_cache): New static var.
14301 (lookup_type_pair): Use fixed sized custom hash; make inline.
14302 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
14303 calls of lookup_type_pair.
14304 (print_gimple_types_stats): Remove cache stats.
14305 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
14306 and gtc_ob.
14307
0955cf61
UB
143082011-05-19 Uros Bizjak <ubizjak@gmail.com>
14309
14310 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
14311 when TARGET_RDRND is active.
14312 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
14313 Generate dummy SImode target register when target is NULL.
14314
12d844c8
JM
143152011-05-19 Joseph Myers <joseph@codesourcery.com>
14316
14317 * config/arm/arm-fpus.def: New.
14318 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
14319 arm-fpus.def.
14320 * config/arm/arm-tables.opt: Regenerate.
14321 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
14322 (arm_option_override): Don't decode FPU name to string here.
14323 * config/arm/arm.opt (mfpu=): Use Enum.
14324 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
14325 Update dependencies.
14326
9e350e99
JM
143272011-05-19 Joseph Myers <joseph@codesourcery.com>
14328
14329 * collect2.c: Include diagnostic.h.
14330 (fatal_perror, fatal, error, fancy_abort): Remove.
14331 (main): Set progname. Call xmalloc_set_program_name and
14332 diagnostic_initialize.
14333 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
14334 scan_libraries, resolve_lib_name): Call fatal_error instead of
14335 fatal and fatal_perror.
14336 * collect2.h (error, fatal, fatal_perror): Don't declare.
14337 * tlink.c: Include diagnostic-core.h.
14338 (recompile_files): Call fatal_error instead of fatal_perror.
14339 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
14340 pretty-print.o and input.o.
14341 (collect2.o, tlink.o): Update dependencies.
14342
86ff4081
RO
143432011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14344
14345 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
14346
2ca48caa
RO
143472011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14348
14349 PR target/40483
14350 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
14351 COMDAT group syntax, both SPARC and x86 variants.
14352 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
14353 * configure: Regenerate.
14354 * config/sol2.h (TARGET_SOLARIS): Define.
14355 (PUSHSECTION_FORMAT): Remove.
14356 (SECTION_NAME_FORMAT): Define.
14357 * config/sol2.c: Include hashtab.h.
14358 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
14359 expansion, using SECTION_NAME_FORMAT.
14360 (solaris_comdat_htab): New variable.
14361 (struct comdat_entry): Define.
14362 (comdat_hash): New function.
14363 (comdat_eq): New function.
14364 (solaris_elf_asm_comdat_section): New function.
14365 (solaris_define_comdat_signature): New function.
14366 (solaris_code_end): New function.
14367 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
14368 (solaris_code_end): Declare.
14369 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
14370 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
14371 solaris_code_end.
14372 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
14373 Remove ATTRIBUTE_UNUSED.
14374 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
14375 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 14376 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
14377 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
14378 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
14379 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
14380 (PUSHSECTION_FORMAT): Remove.
14381 (SECTION_NAME_FORMAT): Redefine.
14382
da5fb469
KT
143832011-05-19 Kai Tietz <ktietz@redhat.com>
14384
14385 * tree-cfg.c (verify_gimple_assign_binary): Barf on
14386 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
14387 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
14388
1651e703 143892011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
14390 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14391
14392 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
14393
e497b9bd
RG
143942011-05-19 Richard Guenther <rguenther@suse.de>
14395
14396 PR middle-end/48985
14397 * tree-object-size.c (addr_object_size): If the pointed-to
14398 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
14399
31b3ca64
RG
144002011-05-19 Richard Guenther <rguenther@suse.de>
14401
14402 * gimple.c (gimple_types_compatible_p_1): Compare names of
14403 the types themselves.
14404 (iterative_hash_gimple_type): And hash them that way.
14405 (gimple_register_type_1): If we register a main variant properly
14406 initialize the leader to ourselves.
14407
bb8d292d
TV
144082011-05-19 Tom de Vries <tom@codesourcery.com>
14409
14410 PR target/45098
14411 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
14412 get_loop_invariant_expr_id.
14413 (get_loop_invariant_expr_id): Use get_expr_id.
14414 (parm_decl_cost): New function.
14415 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
14416 Improve bound cost estimation. Use different inv_expr_id for elim and
14417 express cases.
14418
a53c5024
TV
144192011-05-19 Tom de Vries <tom@codesourcery.com>
14420
14421 PR target/45098
14422 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
14423 cost_base.cost == 0.
14424
31f9eb59
L
144252011-05-18 H.J. Lu <hongjiu.lu@intel.com>
14426
14427 PR target/49002
66bd20e7
EB
14428 * config/i386/sse.md
14429 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
14430 load cast.
31f9eb59 14431
681056ae
JJ
144322011-05-18 Jakub Jelinek <jakub@redhat.com>
14433
14434 PR tree-optimization/49039
14435 * tree-vrp.c (extract_range_from_binary_expr): For
14436 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
14437 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
14438
b5ee6752
TV
144392011-05-18 Tom de Vries <tom@codesourcery.com>
14440
14441 PR target/45098
14442 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
14443
0bda47a3
UB
144442011-05-18 Uros Bizjak <ubizjak@gmail.com>
14445
14446 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
14447 (*tls_global_dynamic_64): Ditto.
14448 (*tls_local_dynamic_base_32_gnu): Ditto.
14449 (*tls_local_dynamic_base_64): Ditto.
14450 (tls_initial_exec_64_sun): Ditto.
14451
033b0805
SH
144522011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
14453
14454 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
14455 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
14456 bf592-none.
14457 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
14458 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
14459 * config/bfin/bfin.c (bfin_cpus): Add bf592.
14460 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 14461 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
14462 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
14463 * config/bfin/elf.h (LIB_SPEC): Add bf592.
14464
ba163417
JM
144652011-05-18 Joseph Myers <joseph@codesourcery.com>
14466
14467 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 14468 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
14469 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
14470 target_thread_pointer, arm_structure_size_boundary, struct
14471 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
14472 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
14473 (arm_option_override) Don't process most enumerated option values here.
14474 Don't process target_fpe_name here. Work with integer not string for
14475 structure size boundary; use separate diagnostics for each case.
ba163417
JM
14476 * config/arm/arm.h (enum float_abi_type, enum
14477 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
14478 to arm-opts.h.
14479 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
14480 arm_structure_size_boundary): Remove.
14481 * config/arm/arm.opt (mabi=): Use Enum and Init.
14482 (arm_abi_type): New Enum and EnumValue entries.
14483 (mfloat-abi=): Use Enum and Init.
14484 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 14485 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
14486 (mfp16-format=): Use Enum and Init.
14487 (arm_fp16_format_type): New Enum and EnumValue entries.
14488 (mstructure-size-boundary=): Use UInteger and Init.
14489 (mtp=): Use Enum and Init.
14490 (arm_tp_type): New Enum and EnumValue entries.
14491
179184e3
RG
144922011-05-18 Richard Guenther <rguenther@suse.de>
14493
14494 PR tree-optimization/49018
14495 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
14496 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
14497 gimple_has_side_effects.
14498
93b2a207
RG
144992011-05-18 Richard Guenther <rguenther@suse.de>
14500
14501 * gimple.c (gimple_register_type_1): New function, split out from ...
14502 (gimple_register_type): ... here. Avoid infinite recursion.
14503
b010117a
IR
145042011-05-18 Ira Rosen <ira.rosen@linaro.org>
14505
14506 PR tree-optimization/41881
14507 * tree-vectorizer.h (struct _loop_vec_info): Add new field
14508 reduction_chains along with a macro for its access.
14509 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
14510 (destroy_loop_vec_info): Free reduction chains.
14511 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
14512 (vect_is_slp_reduction): New function.
14513 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
14514 (vect_create_epilog_for_reduction): Support SLP reduction chains.
14515 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
14516 definition types for reduction chains.
14517 (vect_supported_load_permutation_p): Don't allow permutations for
14518 reduction chains.
14519 (vect_analyze_slp_instance): Support reduction chains.
14520 (vect_analyze_slp): Try to build SLP instance from reduction chains.
14521 (vect_get_constant_vectors): Handle reduction chains.
14522 (vect_schedule_slp_instance): Mark the first statement of the
14523 reduction chain as reduction.
14524
e14c1050
IR
145252011-05-18 Ira Rosen <ira.rosen@linaro.org>
14526
14527 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
14528 names for group elements access.
14529 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
14530 reduction chains as well. Remove data reference and interleaving
14531 related words from the fields names.
14532 * tree-vect-loop.c (vect_transform_loop): Use new names for group
14533 elements access.
14534 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
14535 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
14536 vect_update_interleaving_chain, vect_same_range_drs,
14537 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
14538 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
14539 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
14540 vect_analyze_group_access, vect_analyze_data_ref_access,
14541 vect_create_data_ref_ptr, vect_transform_strided_load,
14542 vect_record_strided_load_vectors): Likewise.
14543 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
14544 vect_model_load_cost, vectorizable_store, vectorizable_load,
14545 vect_remove_stores, new_stmt_vec_info): Likewise.
14546 * tree-vect-slp.c (vect_build_slp_tree,
14547 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
14548
51c213f7
RG
145492011-05-18 Richard Guenther <rguenther@suse.de>
14550
14551 PR middle-end/48989
14552 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
14553 operand verification.
14554 (verify_gimple_assign_binary): Likewise.
14555 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
14556 to non-1-precision BOOLEAN_TYPEs.
14557
8f5e5434
TV
145582011-05-18 Tom de Vries <tom@codesourcery.com>
14559
14560 PR target/45098
14561 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
14562
116bc3a4
JJ
145632011-05-18 Jakub Jelinek <jakub@redhat.com>
14564
14565 PR tree-optimization/49000
14566 * tree-ssa.c (execute_update_addresses_taken): Call
14567 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
14568 be rewritten and decl has been marked for renaming, reset
14569 the debug stmt.
14570
26a8964c
JM
145712011-05-17 Joseph Myers <joseph@codesourcery.com>
14572
14573 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
14574 enum_opts_set when testing if attributes have set -mfpmath=.
14575
82bd45d7
RS
145762011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
14577
14578 * config/mips/mips.c (mips_handle_option): Remove unused variable.
14579
267ffce3
UB
145802011-05-17 Uros Bizjak <ubizjak@gmail.com>
14581
14582 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
14583 info->entry with 0
14584 * tree-inline.c (maybe_inline_call_in_expr): Initialize
14585 id.transform_lang_insert_block with NULL.
14586
145872011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
14588
14589 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
14590 (output_fp_compare): Change args 3 and 4 to bool.
14591 (ix86_expand_call): Change arg 6 to bool.
14592 (ix86_attr_length_immediate_default): Change arg 2 to bool.
14593 (ix86_attr_length_vex_default): Change arg 3 to bool.
14594 * config/i386/i386.md: Update all uses.
14595 * config/i386/i386.c: Ditto.
14596 (ix86_flags_dependent): Change return type to bool.
14597
5beaf664
RG
145982011-05-17 Richard Guenther <rguenther@suse.de>
14599
14600 * gimple.c (type_hash_pair_compare): Fix comparison.
14601
008bad7a
RG
146022011-05-17 Richard Guenther <rguenther@suse.de>
14603
14604 * gimple.c (iterative_hash_gimple_type): Simplify singleton
14605 case some more, fix final hash value of the non-singleton case.
14606
36461340
RG
146072011-05-17 Richard Guenther <rguenther@suse.de>
14608
14609 PR bootstrap/49013
14610 Revert
14611 2011-05-16 Richard Guenther <rguenther@suse.de>
14612
14613 * gimple.c (gimple_types_compatible_p_1): Use names of the
14614 type itself, not its main variant.
14615 (iterative_hash_gimple_type): Likewise.
14616
6b6a59f3
RG
146172011-05-17 Richard Guenther <rguenther@suse.de>
14618
14619 * gimple.c (gimple_register_canonical_type): Use the main-variant
14620 leader for computing the canonical type.
14621
4ffc4134
NC
146222011-05-17 Nick Clifton <nickc@redhat.com>
14623
a1d8754e
NC
14624 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
14625 moves.
14626
4ffc4134
NC
14627 * config/rx/rx.md: Add peephole to remove redundant extensions
14628 after loads.
39960f7a
NC
14629 (bitset_in_memory): Use rx_restricted_mem_operand.
14630 (bitinvert_in_memory): Likewise.
14631 (bitclr_in_memory): Likewise.
4ffc4134 14632
b3db92ac
KI
146332011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
14634 Nick Clifton <nickc@redhat.com>
14635
14636 * config/rx/rx.md: Add peepholes to match a register move followed
14637 by a comparison of the moved register. Replace these with an
14638 addition of zero that does both actions in one instruction.
14639
8637e32a
JJ
146402011-05-17 Jakub Jelinek <jakub@redhat.com>
14641
14642 PR target/48986
14643 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
14644 predicate to allow CONST_INT.
14645 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
14646
8023568e
JM
146472011-05-16 Joseph Myers <joseph@codesourcery.com>
14648
14649 * opts-common.c (opt_enum_arg_to_value): New.
14650 * opts.h (opt_enum_arg_to_value): Declare.
14651 * config/i386/i386.opt (fpmath): Remove.
14652 (mfpmath=): Use Enum, Init and Save.
14653 (fpmath_unit): New Enum and EnumValue entries.
14654 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
14655 name for function fpmath state.
14656 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
14657 * config/i386/i386.c: Include diagnostic.h.
14658 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 14659 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 14660 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 14661 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
14662 (x86_function_specific_save, ix86_function_specific_restore):
14663 Don't handle fpmath state specially.
14664 (ix86_function_specific_print): Pass fpmath state to
14665 ix86_target_string instead of printing in this function.
14666 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
14667 Handle enum attributes.
14668 (IX86_ATTR_ENUM, ix86_opt_enum): New.
14669 (ix86_valid_target_attribute_tree): Update option_strings
14670 handling. Handle fpmath as enum option.
14671 (ix86_can_inline_p): Update field names for function fpmath state.
14672 (ix86_expand_builtin): Update call to ix86_target_string.
14673 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
14674 (ix86_fpmath): Remove.
14675 * config/i386/t-i386 (i386.o): Update dependencies.
14676
9e8d926e
JM
146772011-05-16 Joseph Myers <joseph@codesourcery.com>
14678
14679 PR preprocessor/48677
14680 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
14681 from decoded_options[0], not from itself.
14682
f6449011
UB
146832011-05-16 Uros Bizjak <ubizjak@gmail.com>
14684
14685 * config/i386/constraints.md (z): New constraint.
14686 * config/i386/i386.c (c): New mode attribute.
14687 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
14688 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
14689 constraint for operand 0.
14690 (*call_vzeroupper): Ditto.
14691 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
14692 (*call_rex64_ms_sysv_vzeroupper): Ditto.
14693 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
14694 Use "lzm" constraint for operand 0.
14695 (*call_pop_vzeroupper): Ditto.
14696 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
14697 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
14698 constraint for operand 0.
14699 (*sibcall_vzeroupper): Ditto.
14700 (*sibcall_rex64_ms_sysv): Ditto.
14701 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
14702 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
14703 *sibcall_pop_1. Use "Uz" constraint for operand 0.
14704 (*sibcall_pop_vzeroupper): Ditto.
14705 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
14706 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
14707 mode iterator. Use "<c>zm" constraint for operand 1.
14708 (*call_value_vzeroupper): Ditto.
14709 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 14710 for operand 1.
f6449011
UB
14711 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
14712 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
14713 *call_value_pop_1. Use "lzm" constraint for operand 1.
14714 (*call_value_pop_vzeroupper): Ditto.
14715 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
14716 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
14717 mode iterator. Use "Uz" constraint for operand 1.
14718 (*sibcall_value_vzeroupper): Ditto.
14719 (*sibcall_value_rex64_ms_sysv): Ditto.
14720 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
14721 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
14722 constraint for operand 1.
14723 (*sibcall_value_pop_vzeroupper): Ditto.
14724 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
14725 and "z" constraint for operand 2.
14726 (*tls_global_dynamic_32_gnu): Ditto.
14727 (*tls_local_dynamic_base_32_gnu): Ditto.
14728 (*tls_local_dynamic_base_64): Ditto.
14729 (*tls_local_dynamic_32_once): Ditto.
14730 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
14731 Update all callers.
14732 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
14733
c11b6902
RG
147342011-05-16 Richard Guenther <rguenther@suse.de>
14735
14736 * gimple.c (gimple_types_compatible_p_1): Use names of the
14737 type itself, not its main variant.
14738 (iterative_hash_gimple_type): Likewise.
14739
1e83b5f1
RG
147402011-05-16 Richard Guenther <rguenther@suse.de>
14741
f6449011
UB
14742 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
14743 always visit pointer target and function result and argument types.
1e83b5f1 14744
62e36382
JM
147452011-05-16 Jason Merrill <jason@redhat.com>
14746
14747 PR c++/48999
14748 * tree-inline.c (copy_statement_list): Put back recursion.
14749
687027a4
GJL
147502011-05-16 Georg-Johann Lay <avr@gjlay.de>
14751
14752 PR target/27663
14753 PR target/41076
14754 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
14755 * config/avr/avr.md ("*ior<mode>qi.byte0",
14756 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
14757
f24a5190
GJL
147582011-05-16 Georg-Johann Lay <avr@gjlay.de>
14759
14760 PR target/45099
14761 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
14762 register is needed for a function argument.
14763
3066f593
RG
147642011-05-16 Richard Guenther <rguenther@suse.de>
14765
14766 * gimple.c (struct type_hash_pair): New type.
14767 (type_hash_pair_compare): New function.
f6449011 14768 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 14769
b2ab2cf4
RE
147702011-05-16 Revital Eres <revital.eres@linaro.org>
14771
f6449011 14772 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 14773
dfb737fc
UB
147742011-05-15 Uros Bizjak <ubizjak@gmail.com>
14775
14776 * config/i386/i386.md (floating point move splitters): Fix
14777 usage of standard_80387_constant_p.
f6449011 14778 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 14779
8caa1de0
UB
147802011-05-15 Uros Bizjak <ubizjak@gmail.com>
14781
14782 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
14783
8a519095
EB
147842011-05-14 Eric Botcazou <ebotcazou@adacore.com>
14785
14786 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
14787 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
14788 (tree_ssa_lim_finalize): Likewise.
14789
479fecd3
UB
147902011-05-14 Uros Bizjak <ubizjak@gmail.com>
14791
14792 * config/i386/constraint.md (Yd, Yx): New register constraints.
14793 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
14794 Yd conditional register constraint.
14795 (*movtf_internal): Use standard_sse_constant_opcode.
14796 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
14797 Yx conditional register constraint.
14798 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
14799 Yd conditional register constraint. Use standard_sse_constant_p to
14800 check for valid SSE constants and call standard_sse_constant_opcode to
14801 output SSE insn.
14802 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
14803 constants and call standard_sse_constant_opcode to output SSE insn.
14804 * config/i386/i386.c (ix86_option_ovverride_internal): Set
14805 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
14806 optimize_size is set.
14807 (standard_sse_constant_opcode): Output conditional AVX insn templates.
14808
2d8c9ad5
TB
148092011-05-14 Tobias Burnus <burnus@net-b.de>
14810
14811 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
14812
411a20d6
MJ
148132011-05-13 Martin Jambor <mjambor@suse.cz>
14814
14815 * ipa-prop.c (ipa_cst_from_jfunc): New function.
14816 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
14817 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
14818 (evaluate_conditions_for_ipcp_clone): Removed.
14819 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
14820 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
14821 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
14822
dc764d10
EB
148232011-05-13 Eric Botcazou <ebotcazou@adacore.com>
14824
14825 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
14826 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
14827 lieu of MAY_HAVE_DEBUG_STMTS.
14828 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
14829 debug statements if !MAY_HAVE_DEBUG_STMTS.
14830
9f47a24e
MT
148312011-05-13 Martin Thuresson <martint@google.com>
14832
14833 PR gcov-profile/47793
14834 * libgcov.c (gcov_exit): Support relative profile paths.
14835 * doc/invoke.texi (-fprofile-dir): Update for above change.
14836
b8a71aed
RG
148372011-05-13 Richard Guenther <rguenther@suse.de>
14838
14839 * gimple.c (gimple_canonical_types_compatible_p): Do not use
14840 type-pair caching, do not compare hashes.
14841
eb9f9259
NF
148422011-05-13 Nathan Froyd <froydnj@codesourcery.com>
14843
14844 PR middle-end/48965
14845 * tree-cfg.c (edge_to_cases_cleanup): Return true.
14846 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
14847
3c6cbf7a
KT
148482011-05-13 Kai Tietz <ktietz@redhat.com>
14849
14850 * gimplify.c (gimplify_expr): Make sure operand is boolified.
14851 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
14852 compatible type for TRUTH_NOT_EXPR.
14853
2e7f5dc0
L
148542011-05-13 H.J. Lu <hongjiu.lu@intel.com>
14855
dc764d10 14856 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
14857 (ix86_hard_regno_mode_ok): Change return value to bool. Use
14858 can_create_pseudo_p ().
14859
e834e95c
RG
148602011-05-13 Richard Guenther <rguenther@suse.de>
14861
14862 PR lto/48978
14863 * gimple.c (iterative_hash_gimple_type): Revert change in
14864 pointer target and function result and argument hashing.
14865
34203483
UB
148662011-05-13 Uros Bizjak <ubizjak@gmail.com>
14867
14868 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
14869 (*movxf_internal_nointeger): Ditto.
14870 (*movdf_internal_rex64): Ditto.
14871 (*movdf_internal): Ditto.
14872 (*movdf_internal_nointeger): Ditto.
14873 (*movsf_internal): Ditto.
14874 (sincos splitters): Use can_create_pseudo ().
14875
7eb68c06
JM
148762011-05-13 Joseph Myers <joseph@codesourcery.com>
14877
14878 * config/i386/i386-opts.h: New.
14879 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
14880 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
14881 ix86_section_threshold): Remove.
14882 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
14883 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
14884 OPT_mbranch_cost_.
14885 (ix86_option_override_internal): Don't decode strings for options
14886 other than -march=, -mtune= and -mfpmath=. Don't allow for
14887 __attribute__ uses in remaining diagnostics for options with
34203483 14888 string arguments. Don't check for integer arguments being negative.
7eb68c06 14889 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 14890 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
14891 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
14892 ix86_branch_cost, ix86_section_threshold): Remove.
14893 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
14894 HeaderInclude.
14895 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
14896 but not Var.
14897 (masm=): Use Enum and Init.
14898 (asm_dialect): New Enum and EnumValue entries.
14899 (mbranch-cost=): Use UInteger.
14900 (mlarge-data-threshold=): Use UInteger and Init.
14901 (mcmodel=): Use Enum and Init.
14902 (cmodel): New Enum and EnumValue entries.
14903 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
14904 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
14905 mregparm=): Use UInteger.
14906 (mstringop-strategy=): Use Enum and Init.
14907 (stringop_alg): New Enum and EnumValue entries.
14908 (mtls-dialect=): Use Enum and Init.
14909 (tls_dialect): New Enum and EnumValue entries.
14910 (mabi=): Use Enum and Init.
14911 (calling_abi): New Enum and EnumValue entries.
14912 (mveclibabi=): Use Enum and Init.
14913 (ix86_veclibabi): New Enum and EnumValue entries.
14914
f67e203c
NC
149152011-05-13 Nick Clifton <nickc@redhat.com>
14916
34203483
UB
14917 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
14918 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 14919
221df0b6
KT
149202011-05-13 Kai Tietz <ktietz@redhat.com>
14921
14922 PR middle-end/48984
14923 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
14924 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
14925 (gimple_boolify): Check for cast for boolean_type_node instead for
14926 BOOLEAN_TYPE.
14927
208cb8cb
RG
149282011-05-13 Richard Guenther <rguenther@suse.de>
14929
14930 PR tree-optimization/48172
14931 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
14932 multiplying by number of iterations for equal step.
14933 (vect_create_cond_for_alias_checks): Likewise.
14934
b88ecf55
AS
149352011-05-13 Andreas Schwab <schwab@redhat.com>
14936
14937 * configure.ac: Use AS_HELP_STRING throughout.
14938 * configure: Regenerate.
14939
569b527e
L
149402011-05-12 H.J. Lu <hongjiu.lu@intel.com>
14941
34203483 14942 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
14943 (ix86_emit_restore_regs_using_mov): Likewise.
14944 (ix86_emit_restore_sse_regs_using_mov): Likewise.
14945
8b9a1428
AS
149462011-05-12 Anatoly Sokolov <aesok@post.ru>
14947
14948 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
14949 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
14950 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
14951 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
14952 RTX_OK_FOR_OLO10_P): ...here.
14953 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
14954 SYMBOLIC_CONST.
14955
1d15f620
KT
149562011-05-12 Kai Tietz <ktietz@redhat.com>
14957
14958 * gimplify.c (gimple_boolify): Re-boolify expression
14959 arguments even if expression type is of kind BOOLEAN_TYPE.
14960 (gimplify_boolean_expr): Removed.
14961 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
14962 and XOR. Additional take care that we keep expression's type.
14963 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
14964 of TRUTH_AND|OR|XOR_EXPR.
14965
c2b5fc8d
JJ
149662011-05-12 Jakub Jelinek <jakub@redhat.com>
14967
14968 PR tree-optimization/48975
14969 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
14970 on all bbs here and free and clear ifc_bbs at the end.
14971
61332f77
RG
149722011-05-12 Richard Guenther <rguenther@suse.de>
14973
14974 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
14975 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
14976 until after simple checks.
14977 (gimple_types_compatible_p): Likewise.
14978 (iterative_hash_gimple_type): Always hash pointer targets
14979 and function return and argument types.
14980 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
14981 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
14982 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
14983 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
14984 completely in the simple compare section.
14985 (gimple_register_canonical_type): Query the cache again after
14986 registering.
14987
e2a3a5f1
RG
149882011-05-12 Richard Guenther <rguenther@suse.de>
14989
14990 PR tree-optimization/48172
14991 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
14992 the number of iterations from the segment size calculation.
14993 (vect_create_cond_for_alias_checks): Adjust.
14994
2c703f3a
JJ
149952011-05-12 Jakub Jelinek <jakub@redhat.com>
14996
14997 PR debug/48967
14998 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
14999 if validate_subreg fails.
15000
150012011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
15002
15003 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
15004 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
15005 early.
15006
87e91fca
DD
150072011-05-12 DJ Delorie <dj@redhat.com>
15008
d53903d6 15009 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
15010 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
15011 created builtin into rx_builtins array.
15012 (rx_builtin_decl): New function.
34203483 15013 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 15014
5f2f13fd
DD
150152011-05-12 DJ Delorie <dj@redhat.com>
15016 Nick Clifton <nickc@redhat.com>
15017
15018 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
15019 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
15020 (rx_is_legitimate_address): Add pre-decrement and post-increment
15021 addressing in HImode and QImode. Fix test for out of range
15022 REG+INT addressing.
87e91fca 15023 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 15024 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 15025 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 15026 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 15027
57421f45
JM
150282011-05-11 Jason Merrill <jason@redhat.com>
15029
15030 * tree.c (type_hash_canon): Use struct tree_type_non_common.
15031
898c90c0
EB
150322011-05-11 Eric Botcazou <ebotcazou@adacore.com>
15033
15034 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
15035 reindent the subsequent block.
15036
79bec923
ST
150372011-05-11 Satoru Takabayashi <satorux@google.com>
15038 Paul Pluzhnikov <ppluzhnikov@google.com>
15039
34203483 15040 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
15041 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
15042 * config.in: Add LINKER_HASH_STYLE.
15043 * configure.ac: Add --with-linker-hash-style.
15044 * configure: Regenerate.
79bec923 15045
d0340959
RG
150462011-05-11 Richard Guenther <rguenther@suse.de>
15047
15048 PR middle-end/48964
15049 * gimple.c (iterative_hash_canonical_type): Fix typo.
15050
cb032fee
UB
150512011-05-11 Uros Bizjak <ubizjak@gmail.com>
15052
15053 * config/i386/i386.c (legitimize_tls_address)
479fecd3 15054 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
15055 expanders directly for TARGET_GNU2_TLS. Determine pic and
15056 __tls_get_addr symbol reference here. Update call to
15057 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 15058 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
15059 expanders directly for TARGET_GNU2_TLS. Determine
15060 __tls_get_addr symbol reference here. Update call to
15061 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
15062 unique UNSPEC REG_EQUIV to libcall block.
15063 (ix86_tls_get_addr): Declare static.
15064 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
15065 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
15066 Do not determine pic and __tls_get_addr symbol reference here. Do not
15067 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
15068 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
15069 (tls_global_dynamic_64): Add operand 2. Do not determine
15070 __tls_get_addr symbol reference here. Do not call
15071 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
15072 (tls_local_dynamic_base64): Ditto for operand 1.
15073
6d3cc8f0
EB
150742011-05-11 Eric Botcazou <ebotcazou@adacore.com>
15075
15076 * function.c (expand_function_start): Initialize stack_check_probe_note
15077 only if the generic stack checking mechanism is used.
15078
51e020fc
RG
150792011-05-11 Richard Guenther <rguenther@suse.de>
15080
15081 PR tree-optimization/15256
15082 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
15083 (A & B) | C, combine (A op CST1) op CST2.
15084 (tree_ssa_forward_propagate_single_use_vars): Only bother to
15085 visit assigns that have uses.
15086
51545682
NF
150872011-05-11 Nathan Froyd <froydnj@codesourcery.com>
15088
cb032fee 15089 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
15090 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
15091 (unpack_ts_type_common_value_fields): ...this. Update comment.
15092 (unpack_value_fields): Adjust for renaming.
15093 (lto_input_ts_type_tree_pointers): Split into...
15094 (lto_input_ts_type_common_tree_pointer): ...this and...
15095 (lto_input_ts_type_non_common_tree_pointers): ...this.
15096 (lto_input_tree_pointers): Adjust for above split.
15097 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
15098 (pack_ts_type_common_value_fields): ...this. Update comment.
15099 (lto_output_ts_type_tree_pointers): Split into...
15100 (lto_output_ts_type_common_tree_pointers): ...this and...
15101 (lto_output_ts_type_non_common_tree_pointers): ...this.
15102 (lto_output_tree_pointers): Adjust for above split.
15103 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
15104 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
15105 * stor-layout.c (vector_type_mode): Adjust location of mode field.
15106 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
15107 Define.
15108 (struct tree_type): Split into...
15109 (struct tree_type_common: ...this and...
15110 (struct tree_type_with_lang_specific): ...this and...
15111 (struct tree_type_non_common): ...this. Adjust accessor macros
15112 accordingly.
15113 (TYPE_VALUES_RAW): Define.
15114 (union tree_node): Update for above changes.
15115 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
15116 TS_TYPE_NON_COMMON.
15117 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
15118 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
15119 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
15120 * treestructu.def (TS_TYPE): Remove.
15121 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
15122 Define.
15123
b03c3082
JJ
151242011-05-11 Jakub Jelinek <jakub@redhat.com>
15125
15126 PR debug/48159
15127 * tree-ssa.c (reset_debug_uses): New function.
15128 * tree-flow.h (reset_debug_uses): New prototype.
15129 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
15130 * tree-loop-distribution.c (generate_loops_for_partition): Call
15131 reset_debug_uses on the stmts that will be removed. Keep around
15132 all debug stmts, don't count them as bits in partition bitmap.
15133 (generate_builtin): Don't count debug stmts or labels as bits in
15134 partition bitmap.
15135
b5e04de5
RG
151362011-05-11 Richard Guenther <rguenther@suse.de>
15137
15138 * gimple.c (gimple_type_hash_1): Merge with ...
15139 (gimple_type_hash): ... this.
15140 (gtc_visit): Remove mode parameter and simplify accordingly.
15141 (gimple_types_compatible_p_1): Likewise.
15142 (gimple_types_compatible_p): Likewise.
15143 (iterative_hash_gimple_type): Likewise.
15144 (visit): Likewise.
15145 (gimple_type_eq): Adjust.
15146
fc6970e4
RE
151472011-05-11 Revital Eres <revital.eres@linaro.org>
15148
15149 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
15150 enters the branch create an anti edge in the opposite direction
15151 to prevent the creation of reg-moves.
15152 * modulo-sched.c: Adjust comment to reflect the fact we are
15153 scheduling closing branch.
15154 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
15155 (stage_count): New field in struct partial_schedule.
15156 (calculate_stage_count): New function.
15157 (normalize_sched_times): Rename to reset_sched_times and handle
15158 incrementing the sched time of the nodes by a constant value
15159 passed as parameter.
15160 (duplicate_insns_of_cycles): Skip closing branch.
15161 (sms_schedule_by_order): Schedule closing branch.
15162 (ps_insn_find_column): Handle closing branch.
15163 (sms_schedule): Call reset_sched_times and adjust the code to
15164 support scheduling of the closing branch.
15165 (ps_insert_empty_row): Update calls to normalize_sched_times
15166 and rotate_partial_schedule functions.
15167
41a58a92
RG
151682011-05-11 Richard Guenther <rguenther@suse.de>
15169
15170 PR middle-end/48953
15171 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
15172
e9f8dcf9
JM
151732011-05-11 Joseph Myers <joseph@codesourcery.com>
15174
cb032fee
UB
15175 * opts.c (finish_options): Move warning settings from process_options.
15176 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 15177
10c224a9
RG
151782011-05-11 Richard Guenther <rguenther@suse.de>
15179
15180 PR tree-optimization/18041
15181 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
15182 (simplify_bitwise_binary): ... this. Handle operand conversions
15183 by applying them to the result instead.
15184 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
15185
825b27de
RG
151862011-05-11 Richard Guenther <rguenther@suse.de>
15187
15188 * gimple.c (gimple_canonical_types_compatible_p): Split out
15189 from gimple_types_compatible_p and friends. Do not recurse
15190 to pointed-to types.
15191 (gimple_canonical_type_eq): Use it.
15192 (iterative_hash_canonical_type): Split out from
15193 iterative_hash_gimple_type and friends. Do not recurse
15194 to pointed-to types.
15195 (gimple_canonical_type_hash): Use it, allocate the hash here.
15196
ca756625
RE
151972011-05-11 Revital Eres <revital.eres@linaro.org>
15198
15199 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
15200 recognizing doloop.
15201
b8abece3
RE
152022011-05-11 Revital Eres <revital.eres@linaro.org>
15203
15204 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
15205 instead of PREV_INSN.
15206
ce7b3761
RE
152072011-05-11 Revital Eres <revital.eres@linaro.org>
15208
15209 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
15210 * loop-doloop.c (doloop_condition_get): Likewise.
15211 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
15212 (doloop_end): New.
15213 * config/arm/arm.md (*addsi3_compare0): Remove "*".
15214
a9dc9d37
NF
152152011-05-10 Nathan Froyd <froydnj@codesourcery.com>
15216
15217 * tree.def (CASE_LABEL_EXPR): Add an operand.
15218 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
15219
96703596
JM
152202011-05-10 Joseph Myers <joseph@codesourcery.com>
15221
15222 * c-decl.c (c_override_global_bindings_to_false): Remove.
15223 (global_bindings_p): Don't check
15224 c_override_global_bindings_to_false.
15225 * c-tree.h (c_override_global_bindings_to_false): Remove.
15226 * c-typeck.c (composite_type): Don't set
15227 c_override_global_bindings_to_false.
15228
dbcc9f08
MM
152292011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
15230
15231 PR target/48857, 48495
15232 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
15233 (VSX_MODE): Ditto.
15234 (VSX_MOVE_MODE): Ditto.
15235 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
15236 VSX vector types. Add V2DImode.
15237 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
15238 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
15239 (MODES_TIEABLE_P): Ditto.
15240
15241 * config/rs6000/rs6000.c (rs6000_emit_move): Use
15242 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
15243 VSX_VECTOR_MODE.
15244 (init_cumulative_args): Ditto.
15245 (rs6000_function_arg_boundary): Ditto.
15246 (rs6000_function_arg_advance_1): Ditto.
15247 (rs6000_function_arg): Ditto.
15248 (rs6000_function_ok_for_sibcall): Ditto.
15249 (emit_frame_save): Ditto.
15250 (rs6000_function_value): Ditto.
15251 (rs6000_libcall_value): Ditto.
15252
4a68b4ca
JM
152532011-05-10 Joseph Myers <joseph@codesourcery.com>
15254
15255 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
15256 i386/darwin-lib.h to $libgcc_tm_file.
15257 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
15258
bcb521e9
JM
152592011-05-10 Joseph Myers <joseph@codesourcery.com>
15260
15261 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
15262
f10d3ac9
JM
152632011-05-10 Joseph Myers <joseph@codesourcery.com>
15264
cb032fee 15265 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
15266 * config/rs6000/rs6000-tables.opt: New file (generated).
15267 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
15268 rs6000/rs6000-tables.opt to extra_options.
15269 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
15270 * config/rs6000/rs6000.c (rs6000_select): Remove.
15271 (processor_target_table): Move contents to rs6000-cpus.def.
15272 (darwin_rs6000_override_options): Check
15273 global_options_set.x_rs6000_cpu_index instead of
15274 rs6000_select[1].string.
15275 (rs6000_option_override_internal): Likewise.
15276 (rs6000_handle_option): Don't assert that global structures are in
15277 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
15278 (rs6000_default_cpu): New variable.
15279 (rs6000_file_start): Set it instead of local default_cpu. Check
15280 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
15281 global_options_set.x_rs6000_tune_index instead of rs6000_select.
15282 (rs6000_darwin_file_start): Check rs6000_default_cpu and
15283 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
15284 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
15285 rs6000_select): Remove.
15286 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
15287 Remove.
15288 (mcpu=, mtune=): Use Var, Init, Enum and Save.
15289 * config/rs6000/t-rs6000
15290 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
15291 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
15292 global_options_set.x_rs6000_cpu_index instead of
15293 rs6000_select[1].string.
15294 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
15295 global_options_set.x_rs6000_cpu_index instead of
15296 rs6000_select[1].string.
15297
80cf2e08
JM
152982011-05-10 Joseph Myers <joseph@codesourcery.com>
15299
15300 * config.gcc (libgcc_tm_file): Define instead of including files
15301 from ../../libgcc/config/ in tm_file.
cb032fee 15302 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
15303 * configure: Regenerate.
15304 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
15305 libgcc_tm.h, cs-libgcc_tm.h): New.
15306 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
15307 (clean): Remove libgcc_tm.h.
15308 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
15309 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
15310 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
15311
fd01a351
GJL
153122011-05-10 Georg-Johann Lay <avr@gjlay.de>
15313
15314 PR target/48896
15315 * config/avr/avr.c (avr_ret_register): Return unsigned int
15316 instead of int.
15317 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
15318 it to avr_libcall_value.
15319 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
15320 expand_expr.
15321 (avr_expand_binop_builtin): Ditto.
15322 (avr_expand_unop_builtin): Ditto.
15323
34cc3c86
DD
153242011-05-10 DJ Delorie <dj@redhat.com>
15325
15326 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
15327 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
15328 * config/rx/rx.c (rx_align_for_label): Add label and
15329 uses_threshold parameters. Do not align when the label is not
15330 used enough.
15331 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
15332
be173289
RG
153332011-05-10 Richard Guenther <rguenther@suse.de>
15334
15335 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
15336 a series of conversions and apply foldings similar to what
15337 fold-const does.
15338 (tree_ssa_forward_propagate_single_use_vars): Call it.
15339
e7f78021
JJ
153402011-05-10 Jakub Jelinek <jakub@redhat.com>
15341
6ae70ea2
JJ
15342 PR tree-optimization/48611
15343 PR tree-optimization/48794
15344 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
15345 referenced from RESX or EH_DISPATCH arguments.
15346
e7f78021
JJ
15347 PR debug/48928
15348 * dfp.c (decimal_to_decnumber): Handle conversion from
15349 dconst{1,2,m1,half}.
15350
fca132b9
UB
153512011-05-09 Uros Bizjak <ubizjak@gmail.com>
15352
15353 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
15354 for !flag_prefer_avx128.
15355 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
15356
e4c03378
EB
153572011-05-09 Eric Botcazou <ebotcazou@adacore.com>
15358
15359 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
15360 (fold_ternary_loc): Use expr_location_or.
15361
805d6a75
L
153622011-05-09 H.J. Lu <hongjiu.lu@intel.com>
15363
15364 PR debug/48853
15365 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
15366 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
15367 Pmode and mem_mode is not VOIDmode.
15368
e4c03378 153692011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 15370
e4c03378
EB
15371 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
15372 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 15373
51e7f377
UB
153742011-05-09 Uros Bizjak <ubizjak@gmail.com>
15375
15376 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
15377 (const_pow2_1_to_8_operand): Ditto.
15378 (const_pow2_1_to_128_operand): Ditto.
15379 (const_pow2_1_to_32768_operand): Ditto.
15380 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
15381 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
15382 in insn constraint to check integer value of operand 3.
15383 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
15384
15385 (PINSR_MODE): New mode iterator.
15386 (sse2p4_1): New mode attribute.
15387 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
15388 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
15389 iterator. Use const_int_operand instead of
15390 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
15391 exact_log2 in insn constraint to check integer value of operand 3.
15392
153932011-05-09 Uros Bizjak <ubizjak@gmail.com>
15394
15395 * config/i386/sse.md (blendbits): Remove mode attribute.
15396 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
15397 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
15398 Check integer value of operand 3 in insn constraint.
15399
0ca8de87
RG
154002011-05-09 Richard Guenther <rguenther@suse.de>
15401
15402 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
15403 for diagnostics.
15404 (lto_symtab_merge): Likewise. Do not register types here.
15405 (lto_symtab_merge_decls_2): Likewise.
15406 (lto_symtab_merge_decls_1): Likewise.
15407 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
15408 * gimple.c (enum gtc_mode): Declare.
15409 (gimple_types_compatible_p): Make static.
15410
a9e6994a
AK
154112011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15412
15413 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
15414 temporary register to match Pmode.
15415
fb55d62e
UB
154162011-05-09 Uros Bizjak <ubizjak@gmail.com>
15417
15418 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
15419 and *vec_concatv4si_1_avx.
15420
eb1485a6
UB
154212011-05-09 Uros Bizjak <ubizjak@gmail.com>
15422
15423 PR rtl-optimization/48927
15424 * ira-conflicts.c (commutative_constraint_p): Use
15425 recog_data.alternative_enabled_p to disable alternatives where
15426 "enabled" attribute is false.
15427 (get_dup_num): Ditto.
15428 * ira-lives.c (single_reg_class): Ditto.
15429 (ira_implicitly_set_insn_hard_regs): Ditto.
15430
c46d001a
EB
154312011-05-09 Eric Botcazou <ebotcazou@adacore.com>
15432
15433 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
15434 (dataflow_set_preserve_mem_locs): Likewise.
15435
154362011-05-09 Philipp Thomas <pth@suse.de>
15437
6d9e7c41
PT
15438 * config/mep/mep.c (mep_validate_vliw): Syntax description
15439 should not be translated.
15440
d371df6f
JM
154412011-05-09 Joseph Myers <joseph@codesourcery.com>
15442
15443 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
15444 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 15445 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
15446 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
15447 MIPS_ARCH_OPTION_NATIVE): Define.
15448 * config/mips/mips.c (mips_cpu_info_table): Move contents to
15449 mips-cpus.def.
15450 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
15451 mips_parse_cpu): Remove.
15452 (mips_cpu_info_from_opt, mips_default_arch): New.
15453 (mips_handle_option): Don't assert that global structures are in
15454 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
15455 (mips_option_override): Use new variables and functions to set
eb1485a6 15456 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
15457 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
15458 definition.
15459 * config/mips/mips.opt (march=): Use ToLower and Enum.
15460 (mips): Use ToLower, Enum and Var.
15461 (mtune=): Use ToLower and Enum.
15462 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
15463
4fc07af9
JH
154642011-05-08 Jan Hubicka <jh@suse.cz>
15465
15466 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
15467 Arrange type pairs to be UID ordered.
15468 (gimple_lookup_type_leader): Make inline.
15469
2cf320a8
NC
154702011-05-09 Nick Clifton <nickc@redhat.com>
15471
61d6def5
NC
15472 PR target/48899
15473 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
15474 PROCESSOR_DEFAULT.
15475
2cf320a8
NC
15476 PR target/48897
15477 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
15478 variable 's'.
15479
4f82319d
CLT
154802011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
15481
15482 * combine.c (simplify_comparison): Abstract out parts into...
15483 (simplify_compare_const): ... new function.
15484 (try_combine): Generalize parallel arithmetic/compare combining
15485 to call simplify_compare_const() and CANONICALIZE_COMPARE().
15486
74605a11
JH
154872011-05-08 Jan Hubicka <jh@suse.cz>
15488
15489 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
15490 (cgraph_create_virtual_clone): Call hooks once virtual clone
15491 is finished.
74605a11 15492 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
15493 * ipa-cp.c (ipcp_estimate_growth): Use
15494 estimate_ipcp_clone_size_and_time.
74605a11
JH
15495 * ipa-inline-transform.c (clone_inlined_nodes): Update.
15496 * lto-cgraph.c (input_node): Update.
15497 * ipa-inline.c (recursive_inlining): Update.
15498 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
15499 (evaluate_conditions_for_known_args): Break out from ...
15500 (evaluate_conditions_for_edge): ... here.
15501 (evaluate_conditions_for_ipcp_clone): New function.
15502 (inline_node_duplication_hook): Update clone summary based
15503 on parameter map.
15504 (estimate_callee_size_and_time): Rename to ...
15505 (estimate_node_size_and_time): take NODE instead of EDGE;
15506 take POSSIBLE_TRUTHS as argument.
15507 (estimate_callee_size_and_time): Update.
15508 (estimate_ipcp_clone_size_and_time): New function.
15509 (do_estimate_edge_time): Update.
15510
5c049507
RG
155112011-05-08 Richard Guenther <rguenther@suse.de>
15512
15513 PR middle-end/48908
15514 PR middle-end/48905
15515 * expmed.c (expand_shift_1): Compute adjusted constant shift
15516 amount manually.
15517
f64c36ba
EB
155182011-05-08 Eric Botcazou <ebotcazou@adacore.com>
15519
15520 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
15521
c461a957
EB
155222011-05-08 Eric Botcazou <ebotcazou@adacore.com>
15523
15524 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
15525
7c74e556
JW
155262011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
15527
15528 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
15529
b4c0a884
JH
155302011-05-07 Jan Hubicka <jh@suse.cz>
15531
a9bcb3f0
EB
15532 * ipa-inline-transform.c (inline_call): Account when program size
15533 decreases.
b4c0a884 15534 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
15535 (edge_badness): Reorganize to be power 2 based; fix thinko when
15536 computing badness for negative growth; update comments to match
15537 reality; better dumps.
b4c0a884 15538
c99c0026
EB
155392011-05-07 Eric Botcazou <ebotcazou@adacore.com>
15540
15541 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
15542 type to bool and adjust comment.
15543 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
15544 (fold_mathfn_compare): Remove calls to global_bindings_p.
15545 (fold_inf_compare): Likewise.
15546 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
15547 * c-tree.h (global_bindings_p): Adjust prototype.
15548 * c-decl.c (global_bindings_p): Return bool and simplify.
15549
1400c8e5
ZD
155502011-05-07 Zdenek Dvorak <ook@ucw.cz>
15551
15552 PR tree-optimization/48837
15553 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
15554 when accumulator transformation is performed.
15555
5d0878e7
JH
155562011-05-06 Jan Hubicka <jh@suse.cz>
15557
a9bcb3f0
EB
15558 * i386.h (ix86_tune_indices): Add
15559 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 15560 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
15561 * i386.c (initial_ix86_tune_features): Add
15562 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
15563 (software_prefetching_beneficial_p): Remove predicate.
15564 (ix86_option_override_internal): Use new macro.
15565
58696ce5
JH
155662011-05-06 Jan Hubicka <jh@suse.cz>
15567
15568 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
15569
c47d0034
JH
155702011-05-06 Jan Hubicka <jh@suse.cz>
15571
15572 * cgraph.c (cgraph_add_thunk): Create real function node instead
15573 of alias node; finalize it and mark needed/reachale; arrange visibility
15574 to be right and add it into the corresponding same comdat group list.
15575 (dump_cgraph_node): Dump thunks.
15576 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
15577 cgraph_function_with_gimple_body_p,
15578 cgraph_first_function_with_gimple_body,
c47d0034
JH
15579 cgraph_next_function_with_gimple_body): New functions.
15580 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
15581 New macros.
15582 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
15583 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
15584 * cgraphunit.c (cgraph_finalize_function): Only look into possible
15585 devirtualization when optimizing.
15586 (verify_cgraph_node): Verify thunks.
15587 (cgraph_analyze_function): Analyze thunks.
15588 (cgraph_mark_functions_to_output): Output thunks only in combination
15589 with function they are assigned to.
15590 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
15591 alias into normal node.
15592 (assemble_thunks): New functoin.
15593 (cgraph_expand_function): Use it.
15594 * lto-cgraph.c (lto_output_node): Stream thunks.
15595 (input_overwrite_node): Stream in thunks.
15596 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
15597 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
15598 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
15599 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
15600 (inline_analyze_function): Do not care about thunk jump functions.
15601 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
15602 * ipa-prop.c (ipa_prop_write_jump_functions): Use
15603 cgraph_function_with_gimple_body_p.
15604 * passes.c (do_per_function_toporder): Use
15605 cgraph_function_with_gimple_body_p.
c47d0034
JH
15606 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
15607 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
15608 (function_called_by_processed_nodes_p): Likewise.
15609
d8f426ec
JM
156102011-05-06 Joseph Myers <joseph@codesourcery.com>
15611
15612 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
15613 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
15614 entries.
15615 (mabi=): Replace with separate entries for mabi=altivec,
15616 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
15617 mabi=ieeelongdouble and mabi=ibmlongdouble.
15618 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
15619 check for -mabi=spe without SPE ABI support here.
15620 (rs6000_handle_option): Replace OPT_mabi_ handling with
15621 OPT_mabi_altivec and OPT_mabi_spe handling.
15622
80bde45b
CC
156232011-05-06 Cary Coutant <ccoutant@google.com>
15624
15625 * dwarf2out.c (contains_subprogram_definition): New function.
15626 (should_move_die_to_comdat): Call it.
15627
a91926b9
JL
156282011-05-06 Jeff Law <law@redhat.com>
15629
15630 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
15631 remove_ctrl_stmt_and_useless_edges.
15632 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
15633 (fixup_template_block, thread_single_edge): Likewise.
15634 (mark_threaded_blocks): Use THREAD_TARGET.
15635
1fc1b66d
AM
156362011-05-06 Alan Modra <amodra@gmail.com>
15637
15638 PR target/48900
15639 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
15640 const0_rtx as the arg to the dummy __tls_get_addr libcall.
15641
e194de64
UB
156422011-05-06 Uros Bizjak <ubizjak@gmail.com>
15643
15644 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
15645 constraint modifier to "r".
15646
d740dc9e
JM
156472011-05-06 Joseph Myers <joseph@codesourcery.com>
15648
15649 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
15650 fall through for OPT_mcmodel_.
15651
cab78b15
AK
156522011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15653
15654 * config/s390/s390.c (s390_asm_trampoline_template): Comment
15655 instruction sizes.
e194de64 15656 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 15657
ee6824ae
RR
156582011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15659
eb1485a6
UB
15660 PR target/47930
15661 * config/arm/arm.opt (marm): Document it.
15662 (mthumb): Reject negative variant.
ee6824ae 15663
9ef58464
UB
156642011-05-06 Uros Bizjak <ubizjak@gmail.com>
15665
15666 PR target/48898
15667 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
15668 Fix typo in "ccvt" variable name.
15669
155b6176
TG
156702011-05-06 Tristan Gingold <gingold@adacore.com>
15671
15672 PR target/48895
15673 * config/vms/vms-ar.c (main): Remove cwd variable.
15674
3becc47b
JJ
156752011-05-06 Jakub Jelinek <jakub@redhat.com>
15676
15677 PR debug/48902
15678 * var-tracking.c (prepare_call_arguments): Move else before #endif.
15679
3d528853
NF
156802011-05-05 Nathan Froyd <froydnj@codesourcery.com>
15681
15682 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
15683 * gimplify.c (gimplify_switch_expr): Likewise.
15684 * omp-low.c (expand_omp_sections): Likewise.
15685 * tree-eh.c (lower_try_finally_switch): Likewise.
15686 (lower_eh_dispatch): Likewise.
15687 * tree.h (build_case_label): Declare.
15688 * tree.c (build_case_label): Define.
15689
deb5046b
JM
156902011-05-05 Jason Merrill <jason@redhat.com>
15691
15692 PR c++/40975
15693 * tree-inline.c (copy_tree_r): Use copy_statement_list.
15694 (copy_statement_list): Don't recurse.
15695 * stor-layout.c (copy_self_referential_tree_r): Don't allow
15696 STATEMENT_LIST.
15697
013c0411
JM
156982011-05-05 Joseph Myers <joseph@codesourcery.com>
15699
15700 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
15701 through from -mfpu= handling.
15702 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
15703
a0905f8b
BS
157042011-05-05 Bernd Schmidt <bernds@codesourcery.com>
15705
15706 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
15707 POST_MODIFY.
15708
fc4538e4
SE
157092011-05-05 Steve Ellcey <sje@cup.hp.com>
15710
15711 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
15712 for 11.31.
15713 (hppa[12]*-*-hpux11*): Ditto.
15714 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
15715 * config/ia64/hpux-unix2003.h: New.
15716 * config/pa/pa-hpux1131.opt: New.
15717 * config/pa/pa-hpux1131.h: New.
15718 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
15719 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 15720 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 15721
1e30c578
JJ
157222011-05-05 Jakub Jelinek <jakub@redhat.com>
15723
15724 PR debug/48853
15725 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
15726 instead of mode as 3rd argument to recursive call.
15727 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
15728 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
15729 VOIDmode.
15730 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
15731 don't give up if mode is Pmode and mem_mode is not VOIDmode.
15732 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
15733 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
15734
d19eb620
JB
157352011-05-05 Julian Brown <julian@codesourcery.com>
15736
15737 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
15738 parenthesis in D-register case.
15739
c860fe8c
JM
157402011-05-05 Joseph Myers <joseph@codesourcery.com>
15741
15742 * opt-functions.awk (var_type_struct): Handle Enum options.
15743 * optc-gen.awk: Don't check range of variables of character type.
15744 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
15745 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
15746 rs6000_sdata_name, rs6000_explicit_options): Remove.
15747 (rs6000_option_override_internal): Check for -malign-power here.
15748 Use global_options_set instead of rs6000_explicit_options.
15749 (rs6000_parse_fpu_option): Remove.
15750 (rs6000_handle_option): Access variables via opts and opts_set
15751 pointers. Use error_at and warning_at. Add fall-through
15752 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
15753 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
15754 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
15755 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
15756 here. Don't use rs6000_parse_fpu_option.
15757 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
15758 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
15759 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
15760 (mrecip=): Use Var.
15761 (mspe): Use Var and Save.
15762 (mtraceback=): Use Enum and Var.
15763 (rs6000_traceback_type): New Enum and EnumValue entries.
15764 (mfloat-gprs=): Use Enum, Var and Save.
15765 (rs6000_float_gprs): New Enum and EnumValue entries.
15766 (mlong-double-): use Var and Save.
15767 (msched-costly-dep=, minsert-sched-nops=): Use Var.
15768 (malign-): Use Enum and Var.
15769 (rs6000_alignment_flags): New Enum and EnumValue entries.
15770 (mfpu=): Use Enum.
15771 (fpu_type_t): New Enum and EnumValue entries.
15772 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
15773 global_options_set instead of rs6000_explicit_options.
15774 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
15775 global_options_set instead of rs6000_explicit_options.
15776 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
15777 global_options_set instead of rs6000_explicit_options.
15778 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
15779 global_options_set instead of rs6000_explicit_options.
15780 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
15781 global_options_set instead of rs6000_explicit_options.
15782 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
15783 global_options_set instead of rs6000_explicit_options.
15784 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
15785 definition.
15786 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
15787 global_options_set instead of rs6000_explicit_options.
15788 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
15789 (rs6000_cmodel): New Enum and EnumValue entries.
15790 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
15791 global_options_set instead of rs6000_explicit_options.
15792 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
15793 (mtls-size=): Use Enum and Var.
15794 (rs6000_tls_size): New Enum and EnumValue entries.
15795
0691dde9
MM
157962011-05-05 Michael Matz <matz@suse.de>
15797
15798 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
15799 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
15800 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
15801 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
15802 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
15803 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
15804 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
15805 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
15806 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
15807 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
15808 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
15809 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
15810 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
15811 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
15812 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
15813 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
15814
86529a49
RG
158152011-05-05 Richard Guenther <rguenther@suse.de>
15816
15817 * expmed.c (expand_variable_shift): Rename to ...
15818 (expand_shift_1): ... this. Take an expanded shift amount.
15819 For rotates recurse directly not building trees for the shift amount.
15820 (expand_variable_shift): Wrap around expand_shift_1.
15821 (expand_shift): Adjust.
15822
d0228c2e
JJ
158232011-05-05 Jakub Jelinek <jakub@redhat.com>
15824
15825 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
15826
907a08d9
EB
158272011-05-05 Eric Botcazou <ebotcazou@adacore.com>
15828
15829 * tree.h (get_pending_sizes): Remove prototype.
15830 (put_pending_size): Likewise.
15831 (put_pending_sizes): Likewise.
15832 * stor-layout.c (pending_sizes): Delete.
15833 (get_pending_sizes): Likewise.
15834 (put_pending_size): Likewise.
15835 (put_pending_sizes): Likewise.
15836 (variable_size): Do not call put_pending_size and tidy up.
15837 * function.h (struct function): Remove dont_save_pending_sizes_p.
15838 * lto-streamer-in.c (input_function): Do not stream it.
15839 * lto-streamer-out.c (output_function): Likewise.
15840 * tree-inline.c (initialize_cfun): Do not copy it.
15841 * c-decl.c (store_parm_decls): Do not set it.
15842 * omp-low.c (create_task_copyfn): Likewise.
15843 * tree-optimize.c (tree_rest_of_compilation): Likewise.
15844
386d9c57
UB
158452011-05-05 Uros Bizjak <ubizjak@gmail.com>
15846
15847 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
15848 conditions.
15849 (*movdf_internal): Ditto.
15850 (*movdf_internal_nointeger): Ditto.
15851 (*movsf_internal): Ditto.
15852
a04a722b
JM
158532011-05-05 Joseph Myers <joseph@codesourcery.com>
15854
15855 * c-decl.c (finish_decl): Don't call get_pending_sizes.
15856 (grokparm): Add parameter expr. Pass it to grokdeclarator.
15857 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
15858 (c_variable_size): Remove.
15859 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
15860 call put_pending_sizes.
15861 (get_parm_info): Add parameter expr. Use it to set
15862 arg_info->pending_sizes.
15863 (store_parm_decls): Use arg_info->pending_sizes instead or calling
15864 get_pending_sizes.
15865 * c-parser.c (c_parser_parms_declarator): Update call to
15866 c_parser_parms_list_declarator.
15867 (c_parser_parms_list_declarator): Take parameter expr. Update
15868 call to push_parm_decl. Update recursive call. Don't call
15869 get_pending_sizes. Update calls to get_parm_info.
15870 (c_parser_objc_method_definition): Update calls to
15871 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 15872 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
15873 (c_parser_objc_method_decl): Add parameter expr. Update call to
15874 grokparm.
386d9c57 15875 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
15876 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
15877 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
15878
c92a6f97
MH
158792011-05-05 Michael Hope <michael.hope@linaro.org>
15880
386d9c57
UB
15881 PR pch/45979
15882 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
15883 __ARM_EABI__ hosts.
c92a6f97 15884
07ea0048
UW
158852011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15886
15887 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
15888 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
15889 (spu_output_mi_thunk): New function.
15890
d634bfa1
RO
158912011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15892
15893 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
15894 targetm.asm_out.print_operand.
15895 * config/sol2.c: Include target.h.
15896
40fda55b
JH
158972011-05-04 Jan Hubicka <jh@suse.cz>
15898
15899 * ipa-inline.c (reset_edge_caches): New function.
15900 (update_caller_keys): Add check_inlinablity_for; do not
15901 reset edge caches; remove now unnecesary loop.
386d9c57 15902 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
15903 (update_all_callee_keys): Likewise.
15904 (inline_small_functions): Sanity check cache; update code
15905 recomputing it.
15906
0360f70d
BS
159072011-05-04 Bernd Schmidt <bernds@codesourcery.com>
15908
15909 PR rtl-optimization/47612
15910 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
15911 as the last insn of the sequence to be moved.
15912
7a994646
TB
159132011-05-04 Tobias Burnus <burnus@net-b.de>
15914
15915 PR fortran/48864
15916 * doc/invoke.texi (Ofast): Document that it
15917 enables Fortran's -fno-protect-parens.
15918
7a2f7208
UB
159192011-05-04 Uros Bizjak <ubizjak@gmail.com>
15920
15921 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
15922
a2d42931
EB
159232011-05-04 Eric Botcazou <ebotcazou@adacore.com>
15924
15925 * stor-layout.c (variable_size): Do not issue errors.
15926
f81b1a3d
RG
159272011-05-04 Richard Guenther <rguenther@suse.de>
15928
15929 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
15930 for array-ref indices.
15931 (tree_coverage_counter_addr): Likewise.
15932 (build_fn_info_type): Use size_int for index types.
15933 (build_gcov_info): Likewise.
15934
c62c040f
RG
159352011-05-04 Richard Guenther <rguenther@suse.de>
15936
15937 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
15938 to build_int_cst.
15939 * c-typeck.c (really_start_incremental_init): Use bitsize_int
15940 for constructor indices.
15941 (push_init_level): Likewise.
15942
1e3287d0
RG
159432011-05-04 Richard Guenther <rguenther@suse.de>
15944
15945 * explow.c (promote_mode): Move variable declarations before code.
15946
6c32445b
NF
159472011-05-04 Nathan Froyd <froydnj@codesourcery.com>
15948
15949 * tree.h (build_function_type_array): Declare.
15950 (build_varargs_function_type_array): Declare.
15951 (build_function_type_vec, build_varargs_function_type_vec): Define.
15952 * tree.c (build_function_type_array_1): New function.
15953 (build_function_type_array): New function.
15954 (build_varargs_function_type_array): New function.
15955
fdabf269
RS
159562011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
15957
15958 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
15959 before setting STMT_VINFO_TYPE.
15960
a207915a
UW
159612011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15962
15963 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
15964 instead of spu_pass_by_reference.
15965
5e617be8
AK
159662011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15967
15968 * calls.c (emit_library_call_value_1): Invoke
15969 promote_function_mode hook on libcall arguments.
15970 * explow.c (promote_function_mode, promote_mode): Handle TYPE
15971 argument being NULL.
15972 * targhooks.c (default_promote_function_mode): Lisewise.
15973 * config/s390/s390.c (s390_promote_function_mode): Likewise.
15974 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
15975
15976 * doc/tm.texi: Document that TYPE argument might be NULL.
15977
486d04be
SH
159782011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
15979
15980 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
15981
9b19b026
SH
159822011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
15983
15984 From Bernd Schmidt
15985 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
15986
502bc3df
RO
159872011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15988
15989 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
15990 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
15991 Move ...
15992 * mips-tfile.c: ... here.
15993 Don't include coretypes.h, tm.h, filenames.h.
15994 (saber_stop): Remove definition and all calls.
15995 [__SABER__]: Remove.
15996 (__LINE__): Remove default.
15997 (Size_t, Ptrdiff_t): Remove definitions.
15998 Replace by size_t, ptrdiff_t.
15999 [!MIPS_DEBUGGING_INFO]: Remove.
16000 (SHASH_SIZE, THASH_SIZE): Remove defaults.
16001 (progname): Add const.
16002 (STATIC): Remove.
16003 Replace all uses by static.
16004 (ALIGN_SYMTABLE_OFFSET): Remove default.
16005 * mips-tdump.c: Don't include coretypes.h, tm.h.
16006 Remove !MIPS_IS_STAB guard.
16007 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
16008 $(TM_H), filenames.h dependencies.
16009 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
16010
991eb6ef
SH
160112011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
16012
16013 From Jie Zhang
16014 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
16015 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
16016
420ccc84
SH
160172011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
16018
16019 From Bernd Schmidt
16020 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
16021 account and save/restore RETS.
16022 (PROFILE_BEFORE_PROLOGUE): Define.
16023 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
16024 the push insn to use predecrement.
16025
9f8d69ee
SH
160262011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
16027
16028 From Jie Zhang
16029 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
16030
662c03f4
NC
160312011-05-04 Nick Clifton <nickc@redhat.com>
16032
16033 * config/mn10300/mn10300.c: Include cfgloop.h.
16034 (DUMP): New macro.
16035 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
16036 Lcc or a FLcc insn into the instruction stream.
16037 (mn10300_block_contains_call): New function. Returns true if the
16038 given basic block contains a CALL insn.
16039 (mn10300_loop_contains_call_insn): New function. Returns true if
16040 the given loop contains a CALL insn.
16041 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
16042 to use the SETLB and Lcc or FLcc insns.
16043 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
16044 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
16045 * config/mn10300/mn10300.opt (msetlb): New option. Used to
16046 disable the SETLB optimization.
16047 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
16048 __SETLB__ or __NO_SETLB__.
16049 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
16050 (movsf_internal): Handle MDR register.
16051 (cmpsi): Make visible.
16052 (setlb): New pattern.
16053 (Lcc): New pattern.
16054 (FLcc): New pattern.
16055
843b6915
UB
160562011-05-04 Uros Bizjak <ubizjak@gmail.com>
16057
16058 PR target/48860
16059 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
16060 for reg<->xmm moves.
16061 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
16062 (vec_concatv2di_rex64_sse): Ditto.
16063 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
16064 (*vec_extractv2di_1_rex64): Ditto.
16065
16066 Revert:
16067 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
16068
16069 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
16070 reg<->xmm moves.
16071 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
16072
d35936ab
RG
160732011-05-04 Richard Guenther <rguenther@suse.de>
16074
16075 * tree.h (int_const_binop): Remove notrunc argument.
16076 * fold-const.c (int_const_binop): Remove notrunc argument. Always
16077 create integer constants that are properly truncated.
16078 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
16079 (const_binop): Remove zero notrunc argument to int_const_binop.
16080 (size_binop_loc): Likewise.
16081 (fold_div_compare): Likewise.
16082 (maybe_canonicalize_comparison_1): Likewise.
16083 (fold_comparison): Likewise.
16084 (fold_binary_loc): Likewise.
16085 (multiple_of_p): Likewise.
16086 * expr.c (store_constructor): Likewise.
16087 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16088 (maybe_fold_stmt_addition): Likewise.
16089 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
16090 * stor-layout.c (layout_type): Likewise.
16091 * tree-data-ref.c (tree_fold_divides_p): Likewise.
16092 * tree-sra.c (build_ref_for_offset): Likewise.
16093 (build_user_friendly_ref_for_offset): Likewise.
16094 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
16095 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
16096 * tree-ssa-loop-niter.c (inverse): Likewise.
16097 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
16098 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
16099 * tree-switch-conversion.c (check_range): Likewise.
16100 (build_constructors): Likewise.
16101 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
16102 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
16103 (extract_range_from_assert): Likewise.
16104 (vrp_int_const_binop): Likewise.
16105 (extract_range_from_binary_expr): Likewise.
16106 (extract_range_from_unary_expr): Likewise.
16107 (check_array_ref): Likewise.
16108 (find_case_label_range): Likewise.
16109 (simplify_div_or_mod_using_ranges): Likewise.
16110 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
16111 comparing case labels for merging.
16112
8992c063
MW
161132011-05-03 Mark Wielaard <mjw@redhat.com>
16114
16115 * dwarf2out.c (debug_str_hash_forced): Removed.
16116 (gen_label_for_indirect_string): Removed.
16117 (get_debug_string_label): Removed.
16118 (AT_string_form): Generate label directly.
16119 (output_indirect_string): Test indirect_string_node for
16120 DW_FORM_strp instead of checking label and refcount.
16121 (prune_indirect_string): Removed.
16122 (prune_unused_types): Don't check debug_str_hash_forced or
16123 call prune_indirect_string.
16124
4868e6ea
AO
161252011-05-04 Alexandre Oliva <aoliva@redhat.com>
16126
16127 PR other/48093
16128 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
16129
01a5c0ab
AO
161302011-05-04 Alexandre Oliva <aoliva@redhat.com>
16131
16132 PR debug/47994
16133 PR debug/47919
16134 * combine.c (try_combine): Skip debug insns at m_split tests.
16135
6ac00218
MW
161362011-04-26 Mark Wielaard <mjw@redhat.com>
16137
16138 PR42288
16139 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
16140 when info_section_emitted.
16141
3af42a7b
JM
161422011-05-03 Joseph Myers <joseph@codesourcery.com>
16143
16144 * config/mips/mips-opts.h: New.
16145 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
16146 to mips-opts.h.
16147 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
16148 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
16149 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
16150 via opts pointer.
16151 * config/mips/mips.h (enum mips_code_readable_setting): Move to
16152 mips-opts.h.
16153 (mips_abi, mips_code_readable): Don't declare.
843b6915 16154 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
16155 (mabi=): Use Enum and Var.
16156 (mips_abi): New Enum and EnumValue entries.
16157 (mcode-readable=): Use Enum and Var.
16158 (mips_code_readable_setting): New Enum and EnumValue entries.
16159 (mr10k-cache-barrier=): Use Enum and Var.
16160 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
16161
1cb1a99f
JH
161622011-05-03 Jan Hubicka <jh@suse.cz>
16163
16164 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
16165 replace hash by pointer map.
16166 (cgraph_node_set_element_def, cgraph_node_set_element,
16167 const_cgraph_node_set_element, varpool_node_set_element_def,
16168 varpool_node_set_element, const_varpool_node_set_element): Remove.
16169 (free_cgraph_node_set, free_varpool_node_set): New function.
16170 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
16171 * tree-emutls.c: Free varpool node set.
16172 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
16173 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
16174 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
16175 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
16176 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
16177 Move here from ipa.c; implement using pointer_map
16178 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
16179 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
16180 debug_cgraph_node_set, varpool_node_set_new,
16181 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
16182 dump_varpool_node_set, debug_varpool_node_set):
16183 Move to ipa-uitls.c.
16184 * passes.c (ipa_write_summaries): Update.
16185
7f31f4db
SH
161862011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
16187
7a2f7208
UB
16188 From Mike Frysinger:
16189 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
16190 bf542/bf544/bf547/bf548/bf549.
7f31f4db 16191
b70fce6d
UB
161922011-05-03 Uros Bizjak <ubizjak@gmail.com>
16193
16194 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
16195
265b1d82
SH
161962011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
16197
16198 From Bernd Schmidt:
16199 * config/bfin/bfin.md (MOVCC): New mode_macro.
16200 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
16201 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
16202 comments from generated assembly.
16203
f0b568f3
SH
162042011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
16205
16206 From Bernd Schmidt
16207 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
16208 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
16209 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
16210 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
16211 * config/bfin/lib1funcs.asm (___muldi3): New function.
16212
2c67cf6e
NF
162132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16214
16215 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
16216 build_function_type_list instead of build_function_type.
16217 Rearrange initialization of `args' to do so.
16218
f9ac28ad
NF
162192011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16220
16221 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
16222 instead of build_function_type.
16223
22b8798c
NF
162242011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16225
16226 * config/rs6000/rs6000.c (spe_init_builtins): Call
16227 build_function_type_list instead of build_function_type.
16228 (paired_init_builtins, altivec_init_builtins): Likewise.
16229 (builtin_function_type): Likewise.
16230
4cb44528
NF
162312011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16232
16233 * config/sh/sh.c (sh_media_init_builtins): Call
16234 build_function_type_list instead of build_function_type.
16235
4c203a6a
NF
162362011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16237
16238 * config/sparc/sparc.c (sparc_file_end): Call
16239 build_function_type_list instead of build_function_type.
16240
d6a3d62b
NF
162412011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16242
16243 * config/alpha/alpha.c (alpha_init_builtins): Call
16244 build_function_type_list instead of build_function_type.
16245
de530b86
NF
162462011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16247
16248 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
16249 build_function_type_list instead of build_function_type.
16250
baeec5f2
NF
162512011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16252
16253 * config/iq2000/i2000.c (iq2000_init_builtins): Call
16254 build_function_type_list instead of build_function_type.
16255 Delete `endlink' variable.
16256
c19afe52
NF
162572011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16258
16259 * config/avr/avr.c (avr_init_builtins): Call
16260 build_function_type_list instead of build_function_type.
16261
a341df0a
NF
162622011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16263
16264 * config/picochip/picochip.c (picochip_init_builtins): Call
16265 build_function_type_list instead of build_function_type.
16266 Delete `endlink' variable.
16267
2102b1e1
NF
162682011-05-03 Nathan Froyd <froydnj@codesourcery.com>
16269
16270 * config/bfin/bfin.c (bfin_init_builtins): Call
16271 build_function_type_list instead of build_function_type.
16272
9f111209
SH
162732011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
16274
16275 From Bernd Schmidt
16276 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
16277 that's not CONST_INT. Seemingly redundant check is due to PR39768.
16278
7071d064
SH
162792011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
16280
16281 From Jie Zhang:
16282 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
16283 libbffastfp overrides libgcc when -mfast-fp.
16284
748f7574 162852011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
16286
16287 Originally from Bernd Schmidt
16288 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
16289 * config/bfin/bfin.c (override_options): Test it and error if
16290 TARGET_FDPIC.
16291
1a3a9152
SH
162922011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
16293
16294 Originally From Bernd Schmidt
16295 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
16296 FD-PIC.
16297
7134c090
JL
162982011-05-03 Jeff Law <law@redhat.com>
16299
16300 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
16301 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
16302 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
16303 than accessing AUX field directly. Free the AUX field before
16304 clearing it.
7134c090
JL
16305 (thread_block, thread_through_loop_header): Likewise.
16306 (thread_single_edge, mark_threaded_blocks): Likewise.
16307 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
16308 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 16309
2c7eebae
BS
163102011-05-03 Bernd Schmidt <bernds@codesourcery.com>
16311
16312 * function.c (init_function_start): Call decide_function_section.
16313 * varasm.c (decide_function_section): New function.
16314 (assemble_start_function): When not using
16315 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
16316 or first_function_block_is_cold.
16317 * rtl.h (decide_function_section): Declare.
16318
17038fcf
JJ
163192011-05-03 Uros Bizjak <ubizjak@gmail.com>
16320 Jakub Jelinek <jakub@redhat.com>
16321
16322 PR target/48774
16323 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
16324 only succeed if req_mode is the same as set_mode.
16325
3810076b
BS
163262011-05-03 Bernd Schmidt <bernds@codesourcery.com>
16327
16328 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
16329 * genemit.c (gen_exp): Handle RETURN.
16330 * emit-rtl.c (verify_rtx_sharing): Likewise.
16331 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
16332 * rtl.c (copy_rtx): RETURN is shared.
16333 * rtl.h (enum global_rtl_index): Add GR_RETURN.
16334 (ret_rtx): New.
16335 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
16336 * config/s390/s390.c (s390_emit_epilogue): Likewise.
16337 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
16338 * config/cris/cris.c (cris_expand_return): Likewise.
16339 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
16340 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
16341 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
16342 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
16343 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
16344 Likewise.
16345 * config/v850/v850.c (expand_epilogue): Likewise.
16346 * config/bfin/bfin.c (bfin_expand_call): Likewise.
16347 * config/arm/arm.md (epilogue): Likewise.
16348 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
16349 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
16350 variable to ret_reg.
16351
9efdb4ad
RG
163522011-05-03 Richard Guenther <rguenther@suse.de>
16353
16354 PR lto/48846
16355 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
16356 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
16357 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
16358
60a45536
RG
163592011-05-03 Richard Guenther <rguenther@suse.de>
16360
16361 * c-decl.c (grokdeclarator): Instead of looking at
16362 TREE_OVERFLOW check if the constant fits in the index type.
16363
3188ed59
RS
163642011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
16365
16366 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
16367 (vec_store_lanes<mode><mode>): Likewise.
16368
272c6793
RS
163692011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
16370
16371 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
16372 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
16373 convert_optab_index values.
16374 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
16375 * genopinit.c (optabs): Initialize the new optabs.
16376 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
16377 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
16378 (expand_STORE_LANES): New functions.
16379 * tree.h (build_array_type_nelts): Declare.
16380 * tree.c (build_array_type_nelts): New function.
16381 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
16382 (vect_model_load_cost): Likewise.
16383 (vect_store_lanes_supported, vect_load_lanes_supported)
16384 (vect_record_strided_load_vectors): Declare.
16385 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
16386 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
16387 (vect_transform_strided_load): Split out statement recording into...
16388 (vect_record_strided_load_vectors): ...this new function.
16389 * tree-vect-stmts.c (create_vector_array, read_vector_array)
16390 (write_vector_array, create_array_ref): New functions.
16391 (vect_model_store_cost): Add store_lanes_p argument.
16392 (vect_model_load_cost): Add load_lanes_p argument.
16393 (vectorizable_store): Try to use store-lanes functions for
16394 interleaved stores.
16395 (vectorizable_load): Likewise load-lanes and loads.
16396 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
16397 to vect_model_store_cost.
16398 (vect_build_slp_tree): Likewise vect_model_load_cost.
16399
0f6d54f7
RS
164002011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
16401
16402 * hooks.h (hook_bool_mode_uhwi_false): Declare.
16403 * hooks.c (hook_bool_mode_uhwi_false): New function.
16404 * target.def (array_mode_supported_p): New hook.
16405 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
16406 * doc/tm.texi: Regenerate.
16407 * stor-layout.c (mode_for_array): New function.
16408 (layout_type): Use it.
16409 * config/arm/arm.c (arm_array_mode_supported_p): New function.
16410 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
16411
b15eacc7
EB
164122011-05-03 Eric Botcazou <ebotcazou@adacore.com>
16413
16414 PR target/48723
16415 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
16416 for -fstack-check if the size to allocate is negative.
16417
575bfb00
LC
164182011-05-02 Lawrence Crowl <crowl@google.com>
16419
16420 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
16421 (timevar_cond_start): New for starting a timer only when it is not
16422 already running.
16423 (timevar_cond_stop): New for stopping a timer when it was not already
16424 running.
16425
16426 * timevar.c (timevar_stop): Enable start/stop timers to start again.
16427 (timevar_cond_start): New as above.
16428 (timevar_cond_stop): New as above.
16429
16430 * timevar.def: Add start/stop timers for compiler phases,
16431 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
16432 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
16433 and TV_PHASE_FINALIZE.
16434 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
16435 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
16436 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
16437 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
16438 Make unused TV_OVERLOAD into a start/stop timer.
16439
16440 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
16441 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
16442 to indicate that they are start/stop timers.
16443
16444 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
16445 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
16446 Move initialization to do_compile.
16447 (do_compile): Add initialization from above.
16448 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
16449
16450 * c-decl.c (c_write_global_declarations): Add start/stop of
16451 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
16452
16453 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
16454 or TV_PARSE_INLINE, as appropriate.
16455 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
16456 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
16457
3533b943
JM
164582011-05-02 Jason Merrill <jason@redhat.com>
16459
16460 PR c++/40975
16461 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
16462
2609a0ce
SM
164632011-05-02 Simon Martin <simartin@users.sourceforge.net>
16464
16465 PR c/35445
16466 * c-decl.c (finish_decl): Only create a composite if the types are
16467 compatible.
16468
6b0e4cbb
JM
164692011-05-02 Joseph Myers <joseph@codesourcery.com>
16470
16471 * config/fr30/fr30-protos.h (Mmode): Don't define.
16472 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
16473 definition where used.
16474 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
16475 define. Expand definitions where used.
16476 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
16477 Expand definitions where used.
16478 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
16479 rx_function_arg, rx_function_arg_advance,
16480 rx_function_arg_boundary): Expand definitions of those macros.
16481 * config/v850/v850-protos.h (Mmode): Don't define. Expand
16482 definition where used.
16483
4e938ce6
UB
164842011-05-02 Uros Bizjak <ubizjak@gmail.com>
16485
16486 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
16487 reg<->xmm moves.
16488 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
16489 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
16490 with *movv2sf_internal_rex64_avx.
16491 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
16492 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
16493 Use %v prefix in insn mnemonic to handle TARGET_AVX.
16494 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
16495 "vex" in "prefix" attribute calculation.
16496 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
16497
36019c19
SH
164982011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
16499
7a2f7208
UB
16500 PR target/47951
16501 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
16502 inputs match the output.
36019c19 16503
f69ea688
AS
165042011-05-02 Andreas Schwab <schwab@linux-m68k.org>
16505
16506 PR target/47955
16507 * config/m68k/m68k.c (m68k_expand_prologue): Set
16508 current_function_static_stack_size.
16509
c33406f5
JH
165102011-05-02 Jan Hubicka <jh@suse.cz>
16511
16512 * lto-streamer.c (lto_streamer_cache_insert_1,
16513 lto_streamer_cache_lookup, lto_streamer_cache_create,
16514 lto_streamer_cache_delete): Use pointer map instead of hashtable.
16515 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
16516
47c94d21
JM
165172011-05-02 Joseph Myers <joseph@codesourcery.com>
16518
16519 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
16520 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
16521 config/m68k/t-opts: New files.
16522 * config/m68k/m68k-tables.opt: New file (generated).
16523 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
16524 extra_options and m68k/t-opts to tmake_file.
16525 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
16526 (all_isas): Initialize using m68k-isas.def.
16527 (all_microarchs): Initialize using m68k-microarchs.def.
16528 (m68k_find_selection): Remove.
16529 (m68k_handle_option): Don't assert that global structures are in
16530 use. Use error_at. Access variables via opts pointer. Don't
16531 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
16532 directly for -m68020-40 and -m68020-60.
16533 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
16534 m68k_tune_entry here.
16535 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
16536 to m68k-opts.h.
16537 (m68k_library_id_string): Remove declaration.
4e938ce6 16538 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
16539 (m68k_library_id_string): New Variable.
16540 (march=, mcpu=, mtune=): Use Enum and Var.
16541
e562bf36
RG
165422011-05-02 Richard Guenther <rguenther@suse.de>
16543
16544 * varasm.c (output_constructor_regular_field): Compute zero-based
16545 index with double-ints. Make sure to ICE instead of producing
16546 wrong code.
16547 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
16548 in asserts. Properly use a signed type.
16549
6bec6c98
UB
165502011-05-02 Uros Bizjak <ubizjak@gmail.com>
16551
16552 * config/i386/sse.md (V): New mode iterator.
16553 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
16554 TARGET_SSE2.
16555 (V_256): Rename from AVX256MODE.
16556 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
16557 condition to all users.
16558 (VF1): Ditto.
16559 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
16560 condition to all users.
16561 (VF_128): Make V4SF mode unconditional.
16562 (VF_256): Rename from AVX256MODEF2P.
16563 (VI4F_128): Rename from SSEMODE4S.
16564 (VI8F_128): Rename from SSEMODE2D.
16565 (VI4F_256): Rename from AVX256MODE8P.
16566 (VI8F_256): Rename from AVX256MODE4P.
16567 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
16568 (ssescalarmodesuffix): Remove SF and DF modes.
16569 (SSEMODE124): Remove.
16570 (SSEMODE1248): Ditto.
16571 (SSEMODEF2P): Ditto.
16572 (AVXMODEF2P): Ditto.
16573 (AVXMODEFDP): Ditto.
16574 (AVXMODEFSP): Ditto.
16575 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
16576 unconditional.
16577 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
16578 unconditional.
16579 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
16580 xop_pcmov_<mode>256. Use V mode iterator.
16581
16582 Adjust RTX patterns globally for renamed mode attributes.
16583
2dfdcb4b
UW
165842011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16585
16586 * haifa-sched.c (sched_emit_insn): Emit insn before first
16587 non-scheduled insn. Inform back-end about new insn. Add
16588 new insn to scheduled_insns list.
16589
90bc4623
RG
165902011-05-02 Richard Guenther <rguenther@suse.de>
16591
16592 PR tree-optimization/48822
16593 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
16594 (process_scc): Indicate which iteration we start.
16595
bc0fe8cb
JH
165962011-05-02 Jan Hubicka <jh@suse.cz>
16597
16598 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
16599 (lto_section_overrun): New.
16600 * lto-section-out.c (append_block): Rename to ...
16601 (lto_append_block): ... this one; export.
16602 (lto_output_1_stream): Move lto lto-streamer.h
16603 (lto_output_data_stream): Update.
16604 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
16605 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
16606 functions.
16607
f070a9d1
RG
166082011-05-02 Richard Guenther <rguenther@suse.de>
16609
16610 * tree.c (tree_code_counts): New global array.
16611 (record_node_allocation_statistics): Count individual tree codes.
16612 (dump_tree_statistics): Dump individual code stats.
16613
09dfe187
JH
166142011-05-01 Jan Hubicka <jh@suse.cz>
16615
16616 * ipa-inline.c (caller_growth_limits): Fix thinko when
16617 looking for largest stack frame.
16618 * ipa-inline.h (dump_inline_summary): Declare.
16619 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
16620 on stack usage.
16621 (dump_inline_summary): Export.
16622 (debug_inline_summary): Declare as DEBUG_FUNCTION.
16623
6f76a878
AS
166242011-05-01 Anatoly Sokolov <aesok@post.ru>
16625
16626 * reginfo.c (memory_move_cost): Change rclass argument type form
16627 'enum reg_class' to reg_class_t.
16628 * reload.h (memory_move_cost): Update prototype.
16629 * postreload.c reload_cse_simplify_set): Change type dclass var to
16630 reg_class_t.
16631 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
16632 Update prototype.
16633 (ira_allocate_and_set_costs): Change aclass argument type form
16634 'enum reg_class' to reg_class_t.
6bec6c98 16635 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
16636 Change aclass argument type to reg_class_t.
16637 (update_conflict_hard_reg_costs): Change type aclass and pref vars
16638 to reg_class_t.
16639 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
16640 memory_move_cost call.
16641
16642 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
16643 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
16644 Change type tmp var to reg_class_t.
16645
9a4ac625
JH
166462011-04-30 Jan Hubicka <jh@suse.cz>
16647
16648 * ipa-inline.c (can_inline_edge_p): Disregard limits when
16649 inlining into function with flatten attribute.
16650 (want_inline_small_function_p): Be more realistic about inlining
16651 cold calls where callee size grows.
16652
dd8352ee
JH
166532011-04-30 Jan Hubicka <jh@suse.cz>
16654
16655 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
16656 flags.
16657
46e43d2b
AS
166582011-04-30 Anatoly Sokolov <aesok@post.ru>
16659
16660 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
16661 PRINT_OPERAND_PUNCT_VALID_P): Remove.
16662 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
16663 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
16664 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16665 (print_operand): Rename to...
16666 (sparc_print_operand): ...this. Make static. Adjust
16667 sparc_print_operand function call.
16668 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
16669 functions.
16670
ecb62563
JH
166712011-04-30 Jan Hubicka <jh@suse.cz>
16672
6bec6c98 16673 PR middle-end/48752
ecb62563
JH
16674 * ipa-inline.c (early_inliner): Disable when doing late
16675 addition of function.
16676
edb9b69e
JJ
166772011-04-30 Jakub Jelinek <jakub@redhat.com>
16678
be80a87e
JJ
16679 * dwarf2out.c (get_address_mode): New inline.
16680 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
16681 if not dwarf_strict emit
16682 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
16683 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
16684 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
16685 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
16686 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
16687 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
16688 mem_loc_descriptor callers.
16689 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
16690 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
16691 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
16692 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
16693 (base_types): New variable.
16694 (get_base_type_offset, calc_base_type_die_sizes,
16695 base_type_for_mode, mark_base_types, base_type_cmp,
16696 move_marked_base_types): New functions.
16697 (calc_die_sizes): Assert that die_offset is 0 or equal to
16698 next_die_offset.
16699 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
16700 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
16701 callers. If not dwarf_strict, call mem_loc_descriptor even for
16702 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
16703 (gen_subprogram_die): Don't give up on call site parameters
16704 with non-integral or large integral modes. Adjust
16705 mem_loc_descriptor callers.
16706 (prune_unused_types): Call prune_unused_types_mark on base_types
16707 vector entries.
16708 (resolve_addr): Call mark_base_types.
16709 (dwarf2out_finish): Call move_marked_base_types.
16710
edb9b69e
JJ
16711 PR tree-optimization/48809
16712 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
16713 type.
16714 (gen_inbound_check): Don't compute index_expr - range_min in utype
16715 again, instead reuse SSA_NAME initialized in build_arrays.
16716 Remove two useless gsi_for_stmt calls.
16717
a6545a3d
JL
167182011-04-29 Jeff Law <law@redhat.com>
16719
16720 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
16721
af8bca3c
MJ
167222011-04-29 Martin Jambor <mjambor@suse.cz>
16723
16724 * cgraph.h (cgraph_postorder): Remove declaration.
16725 * ipa-utils.h (ipa_free_postorder_info): Declare.
16726 (ipa_reverse_postorder): Likewise.
16727 * cgraphunit.c: Include ipa-utils.h.
16728 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
16729 * ipa-inline.c: Include ipa-utils.h.
16730 (ipa_inline): Update call to ipa_reverse_postorder.
16731 * ipa-pure-const.c (propagate_pure_const): Update call to
16732 ipa_reduced_postorder and ipa_print_order. Call
16733 ipa_free_postorder_info to clean up.
16734 (propagate_nothrow): Likewise.
16735 * ipa-reference.c (propagate): Removed a useless call to
16736 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
16737 and ipa_print_order. Call ipa_free_postorder_info to clean up.
16738 * ipa.c: Include ipa-utils.h.
16739 (ipa_profile): Update call to ipa_reverse_postorder.
16740 (cgraph_postorder): Moved to...
16741 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
16742 (ipa_utils_print_order): Renamed to ipa_print_order.
16743 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
16744 comments.
16745 (ipa_free_postorder_info): New function.
16746 * passes.c: Include ipa-utils.h.
16747 (do_per_function_toporder): Update call to ipa_reverse_postorder.
16748 (ipa_write_summaries): Likewise.
16749 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
16750 (cgraphunit.o): Likewise.
16751 (ipa.o): Likewise.
16752 (ipa-inline.o): Likewise.
16753
b15c64ee
JH
167542011-04-29 Jan Hubicka <jh@suse.cz>
16755
16756 * gcc.dg/tree-ssa/inline-10.c: New testcase.
16757 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
16758 * ipa-inline.h (clause_t): Turn into unsigned int.
16759 * ipa-inline-analysis.c (add_clause): Do more simplification.
16760 (and_predicates): Shortcut more cases.
16761 (predicates_equal_p): Move forward; check that clauses are properly
16762 ordered.
16763 (or_predicates): Shortcut more cases.
16764 (edge_execution_predicate): Rewrite as...
16765 (set_cond_stmt_execution_predicate): ... this function; handle
16766 __builtin_constant_p.
16767 (set_switch_stmt_execution_predicate): New .
16768 (compute_bb_predicates): New.
16769 (will_be_nonconstant_predicate): Update TODO.
16770 (estimate_function_body_sizes): Use compute_bb_predicates
16771 and free them later, always try to estimate if stmt is constant.
16772 (estimate_time_after_inlining, estimate_size_after_inlining):
16773 Gracefully handle optimized out edges.
16774 (read_predicate): Fix off by one error.
16775
a88fdc2a
NP
167762011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
16777
16778 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
16779
d984c8ef
XDL
167802011-04-27 Xinliang David Li <davidxl@google.com>
16781
16782 * tree-profile.c (init_ic_make_global_vars): Set
16783 tls attribute on ic vars.
16784 * coverage.c (coverage_end_function): Initialize
16785 function_list with zero.
16786
45a2c477
RG
167872011-04-29 Richard Guenther <rguenther@suse.de>
16788
16789 * builtins.c (fold_builtin_classify_type): Use integer_type_node
16790 for the type of the result.
16791 (fold_builtin_isascii): Likewise.
16792 (fold_builtin_toascii): Use integer_type_node where appropriate.
16793 (fold_builtin_logb): Likewise.
16794 (fold_builtin_frexp): Likewise.
16795 (fold_builtin_strstr): Likewise.
16796 (fold_builtin_strpbrk): Likewise.
16797 (fold_builtin_fputs): Likewise.
16798 (fold_builtin_sprintf): Likewise.
16799 (fold_builtin_snprintf): Likewise.
16800 (fold_builtin_printf): Likewise.
16801 (do_mpfr_remquo): Use a proper type for the assigned constant.
16802 (do_mpfr_lgamma_r): Likewise.
16803 * dwarf2out.c (resolve_one_addr): Use size_int.
16804 * except.c (init_eh): Likewise.
16805 (assign_filter_values): Use integer_type_node for filter values.
16806 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
16807 indices.
16808 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
16809 for EH region numbers.
16810 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
16811 for the shift amount.
16812
eb6c3df1
RG
168132011-04-29 Richard Guenther <rguenther@suse.de>
16814
16815 * expr.h (expand_shift): Rename to ...
16816 (expand_variable_shift): ... this.
16817 (expand_shift): Take a constant shift amount.
16818 * expmed.c (expand_shift): Rename to ...
16819 (expand_variable_shift): ... this.
16820 (expand_shift): New wrapper around expand_variable_shift.
16821 * expr.c (convert_move, emit_group_load_1, emit_group_store,
16822 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
16823 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
16824 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
16825 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
16826 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
16827 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
16828 emit_store_flag_1, emit_store_flag): Likewise.
16829 * builtins.c (expand_builtin_signbit): Likewise.
16830 * calls.c (load_register_parameters): Likewise.
16831 * function.c (assign_parm_setup_block): Likewise.
16832 * lower-subreg.c (resolve_shift_zext): Likewise.
16833 * optabs.c (widen_bswap, expand_abs_nojump,
16834 expand_one_cmpl_abs_nojump, expand_float): Likewise.
16835 * spu/spu.c (spu_expand_extv): Likewise.
16836 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
16837
9f616812
RG
168382011-04-29 Richard Guenther <rguenther@suse.de>
16839
16840 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
16841 for the remapped region number.
16842 * predict.c (build_predict_expr): Use integer_type_node for the
16843 predict kind.
16844 * fold-const.c (fold_binary_loc): Use integer_type_node for
16845 the shift amount. Use a proper type for the PLUS_EXPR operand.
16846
b823cdfe
MM
168472011-04-29 Michael Matz <matz@suse.de>
16848
16849 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
16850 other trees that just builtins.
16851 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
16852
413581ba
RG
168532011-04-29 Richard Guenther <rguenther@suse.de>
16854
16855 * tree-nested.c (get_trampoline_type): Use size_int.
16856 (get_nl_goto_field): Likewise.
16857 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
16858 for all indexes.
16859 (lower_eh_constructs_2): Likewise.
16860 (lower_resx): Likewise.
16861 (lower_eh_dispatch): Likewise.
16862 * tree-mudflap.c (mf_build_string): Use size_int.
16863 (mudflap_register_call): Use integer_type_node for the flag.
16864 (mudflap_enqueue_constant): Use size_int.
16865 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
16866 instead of rebuilding it.
16867
5c04e9f4
RG
168682011-04-29 Richard Guenther <rguenther@suse.de>
16869
16870 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
16871 Handle OBJ_TYPE_REF.
16872 (find_func_aliases_for_call): Use it more consistently.
16873
5c24671b
AO
168742011-04-29 Alexandre Oliva <aoliva@redhat.com>
16875
16876 * haifa-sched.c (last_nondebug_scheduled_insn): New.
16877 (rank_for_schedule): Use it.
16878 (schedule_block): Set it.
16879
10adac51
XDL
168802011-04-28 David Li <davidxl@google.com>
16881
16882 * tree.c (crc32_string): Use crc32_byte.
16883 (crc32_byte): New function.
16884 * tree.h (crc32_byte): New function.
16885 * gcov.c (read_graph_file): Handle new cfg_cksum.
16886 (read_count_file): Ditto.
16887 * profile.c (instrument_values): Ditto.
16888 (get_exec_counts): Ditto.
16889 (read_profile_edge_counts): Ditto.
16890 (compute_branch_probabilities): Ditto.
16891 (compute_value_histograms): Ditto.
16892 (branch_prob): Ditto.
16893 (end_branch_prob): Ditto.
16894 * coverage.c (read_counts_file): Ditto.
16895 (get_coverage_counts): Ditto.
16896 (tree_coverage_counter_addr): Ditto.
16897 (coverage_checksum_string): Ditto.
16898 (coverage_begin_output): Ditto.
16899 (coverage_end_function): Ditto.
16900 (build_fn_info_type): Ditto.
16901 (build_fn_info_value): Ditto.
16902 * libgcov.c (gcov_exit): Ditto.
16903 * gcov-dump.c (tag_function): Ditto.
16904 (compute_checksum): Remove.
16905
5d6358a5
AM
169062011-04-29 Alan Modra <amodra@gmail.com>
16907
16908 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
16909 unspec plus offset. Tidy macho code.
16910
85ad2ef5
MJ
169112011-04-29 Martin Jambor <mjambor@suse.cz>
16912
16913 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
16914 node instead of a decl. Update all callers.
16915 * cgraph.h: Update declaration.
16916
437f4a00
IR
169172011-04-28 Ira Rosen <ira.rosen@linaro.org>
16918
16919 PR tree-optimization/48765
16920 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
16921 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
16922 to indicate if loop aware SLP is being used. Scan the statements
16923 and update the vectorization factor according to the type of
16924 vectorization before statement analysis.
16925 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
16926 pass it to vect_analyze_loop_operations.
16927 (vectorizable_reduction): Set number of copies to 1 in case of pure
16928 SLP statement.
16929 * tree-vect-stmts.c (vectorizable_conversion,
16930 vectorizable_assignment, vectorizable_shift,
16931 vectorizable_operation, vectorizable_type_demotion,
16932 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
16933 Likewise.
16934 (vectorizable_condition): Move the check that it is not SLP
16935 vectorization before the number of copies check.
16936 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
16937 to vectorize the loop using SLP.
16938
c6fc44f3
JJ
169392011-04-28 Jakub Jelinek <jakub@redhat.com>
16940
16941 PR middle-end/48597
16942 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
16943 inline asm.
16944
6c0170ea
JM
169452011-04-28 Joseph Myers <joseph@codesourcery.com>
16946
16947 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
16948 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
16949 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
16950 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
16951 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
16952 linux*.h headers.
6bec6c98 16953 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
16954 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
16955 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
16956 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 16957 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
16958 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
16959 REG_NAME.
16960 * config/i386/linux.h (REG_NAME): Don't define.
16961 * config/i386/linux64.h (REG_NAME): Don't define.
16962 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
16963 Undefine before defining.
16964
970dabbd
JH
169652011-04-28 Jan Hubicka <jh@suse.cz>
16966
6bec6c98
UB
16967 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
16968 nonconstant_names array.
970dabbd
JH
16969 (estimate_function_body_sizes): Build nonconstant_names array; handle
16970 BUILT_IN_CONSTANT_P.
16971
8d3e3924
RG
169722011-04-28 Richard Guenther <rguenther@suse.de>
16973
16974 PR bootstrap/48804
16975 Revert
16976 2011-04-28 Richard Guenther <rguenther@suse.de>
16977
16978 * tree-ssa-structalias.c (solve_constraints): Build succ graph
16979 as late as possible.
6bec6c98 16980
8576f20a
RG
169812011-04-28 Richard Guenther <rguenther@suse.de>
16982
16983 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
16984 (debug_constraint): Do it here.
16985 (dump_constraints): And here.
16986 (rewrite_constraints): And here.
16987 (dump_constraint_edge): Remove.
16988 (dump_constraint_graph): Rewrite to produce DOT output.
16989 (solve_constraints): Build succ graph as late as possible.
16990 Dump constraint graphs before and after solving.
16991
e38811ce
RG
169922011-04-28 Richard Guenther <rguenther@suse.de>
16993
16994 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
16995 New function split out from ...
16996 (find_func_aliases): ... here. Call it.
16997 (find_func_aliases_for_call): Likewise.
16998
fbaf0d0c
GDR
169992011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
17000
17001 * internal-fn.h (internal_fn_name_array): Declare.
17002 (internal_fn_flags_array): Likewise.
17003
cbb734aa
UB
170042011-04-27 Uros Bizjak <ubizjak@gmail.com>
17005
17006 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
17007 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
17008 Move from sse.md.
17009 (ssemodefsuffix): Remove.
17010 (ssevecmodesuffix): New mode attribute.
17011 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
17012 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
17013 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
17014 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
17015 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
17016 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
17017 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
17018 ssemodesuffix mode attribute.
17019 (float splitters): Use ssevecmodesuffix mode attribute.
17020 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
17021 (sseinsmode): Rename from avxvecmode.
17022 (avxsizesuffix): Rename from avxmodesuffix.
17023 (sseintvecmode): Rename from avxpermvecmode.
17024 (ssedoublevecmode): Rename from ssedoublesizemode.
17025 (ssehalfvecmode): Rename from avxhalfvecmode.
17026 (ssescalarmode): Rename from avxscalarmode.
17027 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
17028 templates for ssemodesuffix mode attribute.
17029 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
17030 mode attribute.
17031
17032 Adjust RTX patterns globally for renamed mode attributes.
17033
991278ab
JH
170342011-04-27 Jan Hubcika <jh@suse.cz>
17035
17036 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
17037 * ipa-inline-analysis.c: Include alloc-pool.h.
17038 (edge_predicate_pool): New.
17039 (trye_predicate_p): New function
17040 (false_predicate_p): New function.
17041 (add_clause): Sanity check that false clauses are "optimized";
17042 never add clauses to predicate that is already known to be false.
17043 (and_predicate): Use flase_predicate_p.
17044 (evaulate_predicate): Rename to ...
17045 (evaluate_predicate): ... this one; update all callers; assert
17046 that false is not listed among possible truths.
17047 (dump_predicate): Use true_predicate_p.
17048 (account_size_time): Use false_predicate_p.
17049 (evaulate_conditions_for_edge): Rename to ...
17050 (evaluate_conditions_for_edge) ... this one.
17051 (edge_set_predicate): New function.
17052 (inline_edge_duplication_hook): Duplicate edge predicates.
17053 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 17054 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
17055 (dump_inline_summary): Update.
17056 (estimate_function_body_sizes): Set edge predicates.
17057 (estimate_calls_size_and_time): Handle predicates.
17058 (estimate_callee_size_and_time): Update.
17059 (remap_predicate): Add toplev_predicate; update comment.
17060 (remap_edge_predicates): New function.
17061 (inline_merge_summary): Compute toplev predicate; update.
17062 (read_predicate): New function.
17063 (read_inline_edge_summary): Use it.
17064 (inline_read_section): Likewise.
17065 (write_predicate): New function.
17066 (write_inline_edge_summary): Use it.
17067 (inline_write_summary): Likewise.
17068 (inline_free_summary): Free alloc pool and edge summary vec.
17069
648b5f85
RG
170702011-04-27 Richard Guenther <rguenther@suse.de>
17071
17072 * tree-ssa-structalias.c (changed_count): Remove.
17073 (changed): Use a bitmap.
17074 (unify_nodes): Adjust.
17075 (do_sd_constraint): Likewise.
17076 (do_ds_constraint): Likewise.
17077 (do_complex_constraint): Likewise.
17078 (solve_graph): Likewise.
17079
4d5dcfb2
JH
170802011-04-27 Jan Hubicka <jh@suse.cz>
17081
17082 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
17083
200eb7d2
UB
170842011-04-27 Uros Bizjak <ubizjak@gmail.com>
17085
17086 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
17087 (avx_vperm2f128_*_operand): Ditto.
17088 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
17089 Use avx_vpermilp_parallel in insn condition.
17090 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
17091 Use avx_vperm2f128_parallel in insn condition.
17092
7d6e2521
RG
170932011-04-27 Richard Guenther <rguenther@suse.de>
17094
17095 * Makefile.in (tree-ssa-structalias.o): Remove
17096 gt-tree-ssa-structalias.h dependency.
17097 (GTFILES): Remove tree-ssa-structalias.c.
17098 * tree.c (allocate_decl_uid): New function.
17099 (make_node_stat): Use it.
17100 (copy_node_stat): Likewise.
17101 * tree.h (allocate_decl_uid): Declare.
17102 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
17103 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
17104 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 17105 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
17106 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
17107 (struct heapvar_map): Likewise.
17108 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
17109 heapvar_insert): Likewise.
17110 (make_heapvar_for): Rename to ...
17111 (make_heapvar): ... this. Simplify.
17112 (fake_var_decl_obstack): New global var.
17113 (build_fake_var_decl): New function.
17114 (make_constraint_from_heapvar): Adjust.
17115 (handle_lhs_call): Likewise.
17116 (create_function_info_for): Likewise.
17117 (intra_create_variable_infos): Likewise.
17118 (init_alias_vars): Allocate fake_var_decl_obstack.
17119 (init_alias_heapvars, delete_alias_heapvars): Remove.
17120 (compute_points_to_sets): Do not call init_alias_heapvars.
17121 (ipa_pta_execute): Likewise.
17122 (delete_points_to_sets): Free fake_var_decl_obstack.
17123
526ed6c2
UW
171242011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17125
17126 * config/spu/divmovti4.c (union qword_UTItype): New data type.
17127 (si_from_UTItype, si_to_UTItype): New functions.
17128 (__udivmodti4): Use them to implement type-punning.
17129 * config/spu/multi3.c (union qword_TItype): New data type.
17130 (si_from_TItype, si_to_TItype): New functions.
17131 (__multi3): Use them to implement type-punning.
17132
c187d33c
UW
171332011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17134
17135 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
17136
40982661
JH
171372011-04-27 Jan Hubicka <jh@suse.cz>
17138
17139 * ipa-prop.c (function_insertion_hook_holder): New holder.
17140 (ipa_add_new_function): New function.
200eb7d2
UB
17141 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
17142 Register/deregister holder.
40982661 17143
9aef53ee
RG
171442011-04-27 Richard Guenther <rguenther@suse.de>
17145
17146 PR tree-optimization/48772
200eb7d2 17147 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 17148
f63d806d
RG
171492011-04-27 Richard Guenther <rguenther@suse.de>
17150
17151 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
17152 TARGET_MEM_REF handling.
17153
e1ea7451
NC
171542011-04-27 Nick Clifton <nickc@redhat.com>
17155
9b5db25d
NC
17156 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
17157 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
17158 (REG_CLASS_NAMES): Likewise.
17159 (REG_CLASS_CONTENTS): Likewise.
17160 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
17161 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
17162 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
17163 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
17164 (EVEN_REGS): New macro. Alias for QUAD_REGS.
17165 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
17166 duplicate register classes.
97d20907 17167 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
17168 (frv_register_move_cost): Likewise.
17169
e1ea7451
NC
17170 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
17171 end of the regno_reg_class array.
17172
5c2f94b4
JJ
171732011-04-27 Jakub Jelinek <jakub@redhat.com>
17174
17175 PR c/48742
17176 * c-typeck.c (build_binary_op): Don't wrap arguments if
17177 int_operands is true.
17178
57a944d7
KK
171792011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
17180
17181 PR target/48767
17182 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
17183 targetm.calls.must_pass_in_stack for void type.
17184
898b8927
JH
171852011-04-26 Jan Hubicka <jh@suse.cz>
17186
17187 * cgraphbuild.c (build_cgraph_edges): Update call
17188 of cgraph_create_edge and cgraph_create_indirect_edge.
17189 * cgraph.c (cgraph_create_edge_including_clones,
17190 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
17191 cgraph_update_edges_for_call_stmt_node): Do not take nest
17192 argument; do not initialize call_stmt_size/time.
17193 (dump_cgraph_node): Do not dump nest.
17194 (cgraph_clone_edge): Do not take loop_nest argument;
17195 do not propagate it; do not clone call_stmt_size/time.
17196 (cgraph_clone_node): Likewise.
17197 (cgraph_create_virtual_clone): Update.
17198 * cgraph.h (struct cgraph_edge): Remove
17199 call_stmt_size/call_stmt_time/loop_nest.
17200 (cgraph_create_edge, cgraph_create_indirect_edge,
17201 cgraph_create_edge_including_clones, cgraph_clone_node): Update
17202 prototype.
17203 * tree-emutls.c (gen_emutls_addr): Update.
17204 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
17205 loop_nest; handle indirect calls, too.
17206 (clone_inlined_nodes): Do not care about updating inline summaries.
17207 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
17208 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
17209 stream call_stmt_size/call_stmt_time/loop_nest.
17210 * ipa-inline.c (edge_badness): Update.
17211 (ipa_inline): dump summaries after inlining.
17212 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 17213 New.
898b8927
JH
17214 (inline_edge_summary): New function.
17215 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
17216 (inline_edge_removal_hook): Handle edge summaries.
17217 (inline_edge_duplication_hook): New hook.
17218 (inline_summary_alloc): Alloc hooks.
17219 (initialize_growth_caches): Do not register removal hooks.
17220 (free_growth_caches); Do not free removal hook.
17221 (dump_inline_edge_summary): New function.
17222 (dump_inline_summary): Use it.
17223 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
17224 (inline_update_callee_summaries): New function.
17225 (inline_merge_summary): Use it.
17226 (do_estimate_edge_time, do_estimate_edge_growth): Update.
17227 (read_inline_edge_summary): New function.
17228 (inline_read_section): Use it.
17229 (write_inline_edge_summary): New function.
17230 (inline_write_summary): Use it.
17231 (inline_free_summary): Free edge new holders.
17232 * tree-inline.c (copy_bb): Update.
17233
ffa03772
JM
172342011-04-26 Jason Merrill <jason@redhat.com>
17235
17236 * tree-eh.c (lower_try_finally_switch): Create the label along with
17237 the CASE_LABEL_EXPR.
17238
6d7b45ad
DM
172392011-04-26 David S. Miller <davem@davemloft.net>
17240 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17241
17242 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
17243 * configure: Regenerate.
17244
df10b6d4
MM
172452011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
17246
17247 PR target/48258
17248 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
17249 reduction.
17250 (VEC_reduc): New code iterator and splitters for vector reduction.
17251 (VEC_reduc_name): Ditto.
17252 (VEC_reduc_rtx): Ditto.
17253 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
17254 (reduc_<VEC_reduc_name>_v4sf): Ditto.
17255
17256 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
17257 support for extracting SF on VSX.
17258
17259 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
17260 generating xscvspdp.
17261 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
17262 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
17263 double add, minimum, maximum vector reduction.
17264 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
17265 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
17266 optimize double vector reduction.
17267 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
17268
35a5db04
JM
172692011-04-26 Joseph Myers <joseph@codesourcery.com>
17270
17271 * config/fr30/fr30.h (inhibit_libc): Don't define.
17272 * config/m32r/m32r-protos.h: Correct comment.
17273 * config/v850/v850.h (GHS_default_section_names,
17274 GHS_current_section_names): Use tree, not union tree_node *.
17275
2f964ad6
XDL
172762011-04-26 Xinliang David Li <davidxl@google.com>
17277
200eb7d2 17278 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
17279 * c-family/c-opts.c (c_common_handle_option): Set
17280 warn_maybe_uninitialized.
17281 * opts.c (common_handle_option): Ditto.
17282 * common.opt: New option.
17283 * tree-ssa.c (warn_uninit): Add one more parameter.
17284 (warn_uninitialized_var): Pass warning code.
17285 * tree-flow.h: Interface change.
17286
9c7bd91a
RO
172872011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17288
200eb7d2 17289 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
17290 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
17291 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
17292
c2f36e21
RO
172932011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17294
17295 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
17296 * config/mips/mips.opt (mmips-tfile): Remove.
17297
17298 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
17299 mips-tdump reference to ...
200eb7d2 17300 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
17301 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
17302 reference by Tru64 UNIX.
17303
2c9da85b
JJ
173042011-04-26 Jakub Jelinek <jakub@redhat.com>
17305
0c5f6539
JJ
17306 PR debug/48768
17307 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
17308 is error_mark_node, set value to NULL.
17309
2c9da85b
JJ
17310 PR tree-optimization/48734
17311 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
17312 if return value from maybe_fold_*_comparsions isn't something
17313 the code is prepared to handle.
17314
77fa1d54
UB
173152011-04-26 Uros Bizjak <ubizjak@gmail.com>
17316
17317 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
17318 mode check.
17319 (ext_QIreg_nomode_operands): Remove.
17320 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
17321 (*andsi_1): Ditto.
17322 (*andhi_1): Ditto.
17323
0e2a6c2b
AS
173242011-04-26 Andrew Stubbs <ams@codesourcery.com>
17325
17326 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
17327
961562d8
RB
173282011-04-26 Richard Guenther <rguenther@suse.de>
17329
17330 * c-typeck.c (build_unary_op): Do not expand array-refs via
17331 pointer arithmetic. Only adjust qualifiers for function types.
17332
173332011-04-26 Richard Guenther <rguenther@suse.de>
17334
17335 PR middle-end/48694
17336 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
17337 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
17338 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
17339 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 17340
a0d260fc
PC
173412011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
17342
6bec6c98 17343 * doc/extend.texi: Document __underlying_type.
a0d260fc 17344
4d583bb9
SB
173452011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
17346
17347 * config/rs6000/titan.md (automata_option "progress"): Remove.
17348
1f3fcdc3
JL
173492011-04-25 Jeff Law <law@redhat.com>
17350
17351 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
17352
e5b0dad8
JK
173532011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
17354
17355 * system.h (ENUM_BITFIELD): Remove.
17356
5157a881 173572011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 17358 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
17359
17360 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
17361 for STORE_FLAG_VALUE==-1 case.
17362
ed4c109e
RS
173632011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
17364
17365 PR target/43804
17366 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
17367 LEGITIMATE_PIC_OPERAND_P.
17368
f3181aa2
JH
173692011-04-24 Jan Hubicka <jh@suse.cz>
17370
17371 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
17372 WPA hack.
77fa1d54
UB
17373 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
17374 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
17375 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
17376 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
17377 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
17378 Sanity check predicate length.
17379 (remap_predicate): Likewise; sanity check jump functions.
17380 (inline_read_section, inline_write_summary): Sanity check
17381 predicate length.
17382
5307cbaa
PC
173832011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
17384
17385 PR other/48748
17386 * doc/extend.texi (Type Traits): Document __is_standard_layout,
17387 __is_literal_type, and __is_trivial; update throughout about
17388 possibly cv-qualified void types.
17389
bebd5f99
GP
173902011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
17391
17392 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
17393 testsuite and make it version agnostic.
17394
7ee28a74
JH
173952011-04-22 Jan Hubicka <jh@suse.cz>
17396
17397 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
17398
16997bc0
JJ
173992011-04-23 Jakub Jelinek <jakub@redhat.com>
17400
17401 PR c/48685
17402 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
17403 to VOID_TYPE even around MODIFY_EXPR.
17404
f94d4ab1
MS
174052011-04-22 Mike Stump <mikestump@comcast.net>
17406
1a84c183 17407 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
17408 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
17409 comment.
17410
632b4f8e
JH
174112011-04-22 Jan Hubicka <jh@suse.cz>
17412
17413 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
17414 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
17415 ipa-prop.c; update all uses.
632b4f8e 17416 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
17417 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
17418 merge summary of inlined function into former caller.
632b4f8e
JH
17419 * ipa-inline.c (max_benefit): Remove.
17420 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
17421 (update_caller_keys): Use
17422 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
17423 (update_callee_keys): Likewise.
17424 (update_all_callee_keys): Likewise.
77fa1d54
UB
17425 (inline_small_functions): Do not collect max_benefit; do not reset
17426 estimated_growth; call free_growth_caches and initialize_growth_caches.
17427 * ipa-inline.h (struct condition, type clause_t, struct predicate,
17428 struct size_time_entry): New structures.
632b4f8e 17429 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
17430 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
17431 and estimated_growth.
632b4f8e
JH
17432 (edge_growth_cache_entry): New structure.
17433 (node_growth_cache, edge_growth_cache): New global vars.
17434 (estimate_growth): Turn into inline.
17435 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
17436 initialize_growth_caches, free_growth_caches): Declare.
17437 (estimate_edge_growth): Rewrite.
17438 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
17439 (reset_node_growth_cache, reset_edge_growth_cache): New inline
17440 functions.
632b4f8e
JH
17441 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
17442 (NUM_CONDITIONS): New constant.
17443 (predicate_conditions): New enum.
17444 (IS_NOT_CONSTANT): New constant.
17445 (edge_removal_hook_holder): New var.
17446 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
17447 (true_predicate, single_cond_predicate, false_predicate,
17448 not_inlined_predicate, add_condition, add_clause, and_predicates,
17449 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
17450 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
17451 evaulate_conditions_for_edge): New functions.
17452 (inline_summary_alloc): Move to heap.
17453 (inline_node_removal_hook): Clear condition and entry vectors.
17454 (inline_edge_removal_hook): New function.
17455 (initialize_growth_caches, free_growth_caches): New function.
17456 (dump_inline_summary): Update.
17457 (edge_execution_predicate): New function.
17458 (will_be_nonconstant_predicate): New function.
17459 (estimate_function_body_sizes): Compute BB and constantness predicates.
17460 (compute_inline_parameters): Do not clear estimated_growth.
17461 (estimate_edge_size_and_time): New function.
17462 (estimate_calls_size_and_time): New function.
17463 (estimate_callee_size_and_time): New function.
17464 (remap_predicate): New function.
17465 (inline_merge_summary): New function.
17466 (do_estimate_edge_time): New function based on...
17467 (estimate_edge_time): ... this one.
17468 (do_estimate_edge_growth): New function.
17469 (do_estimate_growth): New function based on....
17470 (estimate_growth): ... this one.
17471 (inline_analyze_function): Analyze after deciding on jump functions.
17472 (inline_read_section): New function.
17473 (inline_read_summary): Use it.
17474 (inline_write_summary): Write all the new data.
17475 * ipa-prop.c (ipa_get_param_decl_index): Export.
17476 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
17477 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
17478 Declare.
17479 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
17480 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
17481 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
17482 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
17483 cgraph_edge_inlinable_p): Remove.
17484 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
17485 (cgraph_process_new_functions): Update call of
17486 compute_inline_parameters.
632b4f8e 17487
1df5b0db
RG
174882011-04-22 Richard Guenther <rguenther@suse.de>
17489
17490 * tree.c (build_int_cst): Properly create canonicalized integer
17491 constants.
17492 (build_int_cst_type): Remove scary comments.
17493
ae01169c
XDL
174942011-04-22 Xinliang David Li <davidxl@google.com>
17495
17496 * toplev.c (process_options): Enable -Werror=coverage-mismatch
17497 by default when -Wno-error is not specified.
17498 * opts-global.c (decode_options): Remove call to
17499 control_warning_options.
17500
93dfac24
JJ
175012011-04-22 Jakub Jelinek <jakub@redhat.com>
17502
17503 PR tree-optimization/48717
17504 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
17505 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
17506
1b5f5069
JM
175072011-04-22 Joseph Myers <joseph@codesourcery.com>
17508
17509 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
17510 definition where used.
17511
144f4153
JJ
175122011-04-22 Jakub Jelinek <jakub@redhat.com>
17513
17514 PR c/48716
17515 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
17516 TREE_STATIC variables declared inside of some OpenMP construct.
17517
f9fd305b
MJ
175182011-04-22 Martin Jambor <mjambor@suse.cz>
17519
17520 PR middle-end/48585
1d284ec5 17521 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 17522
49819fef
AM
175232011-04-22 Alexander Monakov <amonakov@ispras.ru>
17524
17525 PR c/36750
17526 * c-typeck.c (pop_init_level): Do not warn about initializing
17527 with ` = {0}'.
17528
401f6699
AM
175292011-04-22 Alan Modra <amodra@gmail.com>
17530
17531 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
17532 when returning call_cookie.
17533 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
17534 pointers, to functions with no more vector args than the current
17535 function, and some non-local calls for ABI_V4.
17536 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
17537 sibcall_nonlocal_aix64): Combine to ..
17538 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
17539 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
17540 (sibcall_value_nonlocal_aix<mode>): ..likewise.
17541 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
17542 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
17543 operand.
17544 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
17545 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
17546 sibcall_value_symbolic_64): Delete.
17547
903d1e67
XDL
175482011-04-21 Xinliang David Li <davidxl@google.com>
17549
17550 * cgraph.h: Remove pid.
17551 * cgraph.c: Remove pid.
17552 * value-prof.c (init_node_map): New function.
17553 (del_node_map): New function.
17554 (find_func_by_funcdef_no): New function.
17555 (gimple_ic_transform): Call new function.
17556 * cgraphunit.c (cgraph_finalize_function): Remove pid.
17557 * function.c (get_last_funcdef_no): New function.
17558 * function.h (get_last_funcdef_no): New function.
17559 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
17560 to libgcov function.
17561 (tree-profiling): Call node map init and delete function.
17562
7378e95f
ILT
175632011-04-21 Ian Lance Taylor <iant@google.com>
17564
17565 * godump.c (go_format_type): Use exported Go name for anonymous
17566 field name.
17567
e84a6fcf
NF
175682011-04-21 Nathan Froyd <froydnj@codesourcery.com>
17569
17570 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
17571 Call builtin_function_type_list instead of builtin_function_type.
17572 (UNARY, BINARY, TRINARY, QUAD): Likewise.
17573
4fe058e2
NF
175742011-04-21 Nathan Froyd <froydnj@codesourcery.com>
17575
17576 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
17577 build_function_type_list instead of build_function_type.
17578 Delete variable `endlink'.
17579
1ba0a2d2
NF
175802011-04-21 Nathan Froyd <froydnj@codesourcery.com>
17581
17582 * config/s390/s390.c (s390_init_builtins): Call
17583 build_function_type_list instead of build_function_type.
17584
c0676219
NF
175852011-04-21 Nathan Froyd <froydnj@codesourcery.com>
17586
17587 * config/ia64/ia64.c (ia64_init_builtins): Call
17588 build_function_type_list instead of builtin_function_type.
17589
6ddfda8a
ER
175902011-04-21 Easwaran Raman <eraman@google.com>
17591
3a6448ea 17592 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
17593 (add_stack_var): ...and its reference here...
17594 (expand_stack_vars): ...and here.
17595 (stack_var_cmp): Sort by descending order of size.
17596 (partition_stack_vars): Change heuristic.
1d284ec5 17597 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
17598 (dump_stack_var_partition): Add newline after each partition.
17599
23756963
DA
176002011-04-21 Dimitrios Apostolou <jimis@gmx.net>
17601 Jeff Law <law@redhat.com>
17602
77fa1d54 17603 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
17604 * gengtype.c (matching_file_name_substitute): Likewise.
17605
aa2a43d2
RG
176062011-04-21 Richard Guenther <rguenther@suse.de>
17607
17608 PR lto/48703
1d284ec5 17609 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 17610
4d931f41
EB
176112011-04-21 Eric Botcazou <ebotcazou@adacore.com>
17612
17613 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
17614
f103fa7a
RG
176152011-04-21 Richard Guenther <rguenther@suse.de>
17616
17617 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
17618 file name.
17619
e19f6650
RG
176202011-04-21 Richard Guenther <rguenther@suse.de>
17621
17622 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
17623 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
17624 Use DECL_P, not SSA_VAR_P.
17625 (ptr_derefs_may_alias_p): Likewise.
17626 (ptr_deref_may_alias_ref_p_1): Likewise.
17627 (decl_refs_may_alias_p): Likewise.
17628 (refs_may_alias_p_1): Likewise.
17629 (ref_maybe_used_by_call_p_1): Likewise.
17630 (call_may_clobber_ref_p_1): Likewise.
17631 (indirect_ref_may_alias_decl_p): Assume indirect refrences
17632 are either MEM_REF or TARGET_MEM_REF.
17633 (indirect_refs_may_alias_p): Likewise.
17634 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
17635 for MEM_EXPR of indirect calls.
17636
9d1831bb
TG
176372011-04-21 Tristan Gingold <gingold@adacore.com>
17638
17639 * vmsdbgout.c (write_srccorr): Compute file length from the string.
17640 (dst_file_info_struct): Remove flen field.
17641 (lookup_filename): Remove code that set flen field.
17642
f199c029
TG
176432011-04-21 Tristan Gingold <gingold@adacore.com>
17644
17645 * config/ia64/ia64.c (ia64_start_function): Add a guard.
17646
2894086e
UB
176472011-04-21 Uros Bizjak <ubizjak@gmail.com>
17648
17649 PR target/48708
17650 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
17651 vec_extract and vec_concat for non-SSE4_1 targets.
17652
53f94a5c
RG
176532011-04-21 Richard Guenther <rguenther@suse.de>
17654
17655 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
17656 return statements.
17657
f0dca5ba
JM
176582011-04-21 Joseph Myers <joseph@codesourcery.com>
17659
17660 * config/i386/cygming.h (union tree_node, TREE): Don't define or
17661 undefine.
17662 (FILE): Don't undefine.
17663
984514ac
JM
176642011-04-21 Joseph Myers <joseph@codesourcery.com>
17665
17666 * config/alpha/alpha.c (struct machine_function): Use rtx, not
17667 struct rtx_def *.
17668 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
17669 struct rtx_def *.
17670 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 17671 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
17672 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
17673 rtx_def *.
17674 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
17675 definitions where used.
17676 * config/microblaze/microblaze.h (struct microblaze_args): Use
17677 rtx, not struct rtx_def *.
17678 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
17679 rtx_def *.
2894086e
UB
17680 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
17681 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
17682 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
17683 not struct rtx_def *.
17684 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
17685 struct rtx_def *.
17686 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
17687 rtx_def *.
2894086e 17688 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 17689
0b5a2724
RS
176902011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
17691
17692 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
17693 operand_equal_p to compare DR_BASE_ADDRESSes.
17694 (vect_check_interleaving): Likewise.
17695
4b18d683
RS
176962011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
17697
17698 PR target/46329
17699 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
17700 for all Neon struct constants.
17701
1a627b35
RS
177022011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
17703
17704 * target.def (legitimate_constant_p): New hook.
17705 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
17706 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
17707 * doc/tm.texi: Regenerate.
17708 * hooks.h (hook_bool_mode_rtx_true): Declare.
17709 * hooks.c (hook_bool_mode_rtx_true): Define.
17710 * system.h (LEGITIMATE_CONSTANT_P): Poison.
17711 * calls.c (precompute_register_parameters): Replace uses of
17712 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
17713 (emit_library_call_value_1): Likewise.
17714 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
17715 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
17716 * ira-costs.c (scan_one_insn): Likewise.
17717 * recog.c (general_operand, immediate_operand): Likewise.
17718 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
17719 * reload1.c (init_eliminable_invariants): Likewise.
17720
17721 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
17722 mode argument.
17723 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
17724 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
17725 argument.
17726 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17727 * config/alpha/predicates.md (input_operand): Update call to
17728 alpha_legitimate_constant_p.
17729
17730 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
17731 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
17732 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
17733 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17734 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
17735 (arm_legitimate_constant_p): New functions.
17736 (arm_cannot_force_const_mem): Make static.
17737
17738 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
17739
17740 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
17741 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
17742 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
17743 instead of bfin_legitimate_constant_p.
17744 (bfin_legitimate_constant_p): Make static. Add a mode argument.
17745 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17746
17747 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
17748
17749 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
17750
17751 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
17752 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
17753 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17754 (frv_legitimate_constant_p): Make static. Add a mode argument.
17755
17756 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
17757 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
17758 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
17759
17760 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
17761 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
17762 * config/i386/i386.c (legitimate_constant_p): Rename to...
17763 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
17764 argument.
17765 (ix86_cannot_force_const_mem): Update accordingly.
17766 (ix86_legitimate_address_p): Likewise.
17767 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17768 * config/i386/i386.md: Update commentary.
17769
17770 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
17771 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
17772 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17773 (ia64_legitimate_constant_p): Make static. Add a mode argument.
17774
17775 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
17776
17777 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
17778 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
17779 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17780 (lm32_legitimate_constant_p): Make static. Add a mode argument.
17781
17782 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
17783 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
17784 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
17785
17786 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
17787 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17788 (m32r_legitimate_constant_p): New function.
17789
17790 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
17791 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
17792 LEGITIMATE_CONSTANT_P.
17793 (LEGITIMATE_CONSTANT_P): Delete.
17794 * config/m68k/m68k.c (m68k_expand_prologue): Call
17795 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
17796 (m68k_legitimate_constant_p): New function.
17797 * config/m68k/m68k.md: Update comments.
17798
17799 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
17800 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17801 (mcore_legitimate_constant_p): New function.
17802
17803 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
17804 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
17805 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
17806 Add a mode argument.
17807 (mep_legitimate_address): Update accordingly.
17808 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17809
17810 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
17811 Delete.
17812 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
17813 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
17814 static. Check OP's mode for VOIDmode.
17815 (microblaze_legitimate_constant_p): New function.
17816 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17817
17818 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
17819 * config/mips/mips.c (mips_legitimate_constant_p): New function.
17820 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
17821 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17822 * config/mips/predicates.md: Update comments.
17823
17824 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
17825 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
17826 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17827 (mmix_legitimate_constant_p): Make static, return a bool, and take
17828 a mode argument.
17829 (mmix_print_operand_address): Update accordingly.
17830
17831 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
17832 Delete.
17833 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
17834 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
17835 static. Add a mode argument.
1a627b35
RS
17836 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17837
17838 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
17839
17840 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
17841 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17842 (pa_legitimate_constant_p): New function.
17843
17844 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
17845
17846 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
17847 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17848 (pdp11_legitimate_constant_p): New function.
17849
17850 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
17851 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17852 (rs6000_legitimate_constant_p): New function.
17853
17854 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
17855 (rx_legitimate_constant_p): ...this.
17856 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
17857 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
17858 (rx_legitimate_constant_p): ...this.
17859 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17860 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
17861
17862 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
17863 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
17864 * config/s390/s390.c (legitimate_constant_p): Rename to...
17865 (s390_legitimate_constant_p): ...this. Make static, return a bool,
17866 and add a mode argument.
17867 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17868
17869 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
17870
17871 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
17872 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17873 (sh_legitimate_constant_p): New function.
17874
17875 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
17876 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
17877 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17878 (legitimate_constant_p): Rename to...
17879 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
17880 argument.
17881 (constant_address_p): Update accordingly.
17882
17883 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
17884 argument and return a bool.
17885 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
17886 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17887 (spu_legitimate_constant_p): Add a mode argument and return a bool.
17888 (spu_rtx_costs): Update accordingly.
17889 * config/spu/predicates.md (vec_imm_operand): Likewise.
17890
17891 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
17892
17893 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
17894 * config/v850/v850.c (v850_legitimate_constant_p): New function.
17895 (TARGET_LEGITIMATE_CONSTANT_P): Define.
17896
17897 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
17898 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
17899 * config/vax/vax.c (legitimate_constant_p): Likewise.
17900
17901 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
17902 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
17903 (xtensa_legitimate_constant_p): New function.
17904
fbbf66e7
RS
179052011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
17906
17907 * target.def (cannot_force_const_mem): Add a mode argument.
17908 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
17909 * doc/tm.texi: Regenerate.
17910 * hooks.h (hook_bool_mode_rtx_false): Declare.
17911 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
17912 (hook_bool_mode_const_rtx_true): Likewise.
17913 (hook_bool_mode_rtx_false): New function.
17914 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
17915 to be non-VOID. Update call to cannot_force_const_mem.
17916 (find_reloads): Update accordingly.
17917 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
17918 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
17919 argument.
17920 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
17921 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
17922 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
17923 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
17924 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
17925 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
17926 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
17927 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
17928 (m68k_cannot_force_const_mem): ...this new function.
17929 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
17930 argument.
17931 (mips_const_insns, mips_legitimize_const_move): Update calls.
17932 (mips_secondary_reload_class): Likewise.
17933 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
17934 (pa_cannot_force_const_mem): ...this new function.
2894086e 17935 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
17936 (rs6000_cannot_force_const_mem): ...this new function.
17937 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
17938 argument.
17939 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
17940 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
17941 to...
17942 (xtensa_cannot_force_const_mem): ...this new function.
17943
b861891b
NF
179442011-04-20 Nathan Froyd <froydnj@codesourcery.com>
17945
17946 * config/mips/mips.c (mips16_build_function_stub): Call
17947 build_function_type_list instead of build_function_type.
17948 (mips16_build_call_stub): Likewise.
17949
34149ed5
NF
179502011-04-20 Nathan Froyd <froydnj@codesourcery.com>
17951
17952 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
17953 instead of build_function_type.
17954
12526412
NF
179552011-04-20 Nathan Froyd <froydnj@codesourcery.com>
17956
17957 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
17958 instead of build_function_type.
17959
3b84d61f
UB
179602011-04-20 Uros Bizjak <ubizjak@gmail.com>
17961
17962 PR target/48678
17963 * config/i386/i386.md (insv): Change operand 0 constraint to
17964 "register_operand". Change operand 1 and 2 constraint to
17965 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
17966 * config/i386/sse.md (sse4_1_pinsrb): Export.
17967 (sse2_pinsrw): Ditto.
17968 (sse4_1_pinsrd): Ditto.
17969 (sse4_1_pinsrq): Ditto.
17970 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
17971 * config/i386/i386.c (ix86_expand_pinsr): New.
17972
4a25752b
ER
179732011-04-20 Easwaran Raman <eraman@google.com>
17974
17975 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
17976 containing union type only with -fstrict-aliasing.
17977
04695783
JM
179782011-04-20 Jim Meyering <meyering@redhat.com>
17979
17980 Remove useless if-before-free tests.
17981 * calls.c (expand_call, save_area): Likewise.
17982 * cfgcleanup.c (try_forward_edges): Likewise.
17983 * collect2.c (collect_execute): Likewise.
17984 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
17985 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
17986 * coverage.c (coverage_checksum_string): Likewise.
17987 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
17988 * cselib.c (cselib_init): Likewise.
17989 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
17990 (df_set_clean_cfg): Likewise.
17991 * function.c (free_after_compilation): Likewise.
17992 * gcc.c (do_spec_1, main): Likewise.
17993 * gcov.c (create_file_names): Likewise.
17994 * gensupport.c (identify_predicable_attribute): Likewise.
17995 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
17996 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
17997 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
17998 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
17999 * ipa-pure-const.c (local_pure_const): Likewise.
18000 * ipa-reference.c (propagate): Likewise.
18001 * ira-costs.c (free_ira_costs): Likewise.
18002 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
18003 * matrix-reorg.c (mat_free): Likewise.
18004 * prefix.c (get_key_value): Likewise.
18005 * profile.c (compute_value_histograms): Likewise.
18006 * reload1.c (free_reg_equiv): Likewise.
18007 * sched-deps.c (free_deps): Likewise.
18008 * sel-sched-ir.c (fence_clear): Likewise.
18009 * sese.c (set_rename, if_region_set_false_region): Likewise.
18010 * tree-data-ref.c (free_rdg): Likewise.
18011 * tree-eh.c (lower_try_finally): Likewise.
18012 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
18013 * tree-ssa-live.c (delete_var_map): Likewise.
18014 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
18015 * tree-ssa-pre.c (phi_trans_add): Likewise.
18016
6788475a
JJ
180172011-04-20 Jakub Jelinek <jakub@redhat.com>
18018
18019 PR tree-optimization/48611
18020 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
18021 beyond ERT_MUST_NOT_THROW region.
18022
0eda4033
CM
180232011-04-20 Catherine Moore <clm@codesourcery.com>
18024
18025 * config/mips/mips.opt (mfix-24k): New.
18026 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
18027 * config/mips/mips.md (length): Increase by 4 for stores if
18028 fixing 24K errata.
18029 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
18030 all noreorder if fixing 24K errata.
18031 * doc/invoke.texi: Document mfix-24k.
18032
01475747
CLT
180332011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
18034
18035 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 18036 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 18037
bc2c1a60
AS
180382011-04-20 Andrew Stubbs <ams@codesourcery.com>
18039
18040 * config/arm/arm.c (arm_gen_constant): Move movw support ....
18041 (const_ok_for_op): ... to here.
18042
583722ee
KT
180432011-04-20 Kai Tietz <ktietz@redhat.com>
18044
2894086e
UB
18045 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
18046 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 18047
422c0989
AS
180482011-04-20 Andrew Stubbs <ams@codesourcery.com>
18049
18050 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
18051
d7978bff
RG
180522011-04-20 Richard Guenther <rguenther@suse.de>
18053
18054 PR tree-optimization/47892
18055 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
18056 are if-convertible.
18057
818412ba
EB
180582011-04-20 Eric Botcazou <ebotcazou@adacore.com>
18059
18060 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
18061
b501ce4e
TG
180622011-04-20 Tristan Gingold <gingold@adacore.com>
18063
18064 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
18065
516edfdd
GJL
180662011-04-20 Georg-Johann Lay <avr@gjlay.de>
18067
18068 PR target/18145
18069
18070 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
18071 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
18072 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
18073 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
18074 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
18075
18076 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
18077 New prototype.
18078
18079 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
18080 (avr_asm_named_section, avr_asm_output_aligned_common,
18081 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
18082 New functions to update...
18083 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
18084 (avr_asm_init_sections): Overwrite section callbacks for
18085 data_section, bss_section.
18086 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
18087 from here to...
18088 (avr_file_end): ...here.
18089
dafc9511
RG
180902011-04-20 Richard Guenther <rguenther@suse.de>
18091
18092 PR middle-end/48695
18093 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 18094 objects and types here. Adjust for their offset before comparing.
dafc9511 18095
1da0876c
RS
180962011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
18097
18098 * tree-vect-stmts.c (vectorizable_store): Only chain one related
18099 statement per copy.
18100
25583c4f
RS
181012011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
18102
18103 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
18104 (GIMPLE_H): Include $(INTERNAL_FN_H).
18105 (OBJS-common): Add internal-fn.o.
18106 (internal-fn.o): New rule.
18107 * internal-fn.def: New file.
18108 * internal-fn.h: Likewise.
18109 * internal-fn.c: Likewise.
18110 * gimple.h: Include internal-fn.h.
18111 (GF_CALL_INTERNAL): New gf_mask.
18112 (gimple_statement_call): Put fntype into a union with a new
18113 internal_fn field.
18114 (gimple_build_call_internal): Declare.
18115 (gimple_build_call_internal_vec): Likewise.
18116 (gimple_call_same_target_p): Likewise.
18117 (gimple_call_internal_p): New function.
18118 (gimple_call_internal_fn): Likewise.
18119 (gimple_call_fntype): Return null for internal calls.
18120 (gimple_call_set_fntype): Assert that the function is not internal.
18121 (gimple_call_set_fn): Likewise.
18122 (gimple_call_set_fndecl): Likewise.
18123 (gimple_call_set_internal_fn): New function.
18124 (gimple_call_addr_fndecl): Handle null functions.
18125 (gimple_call_return_type): Likewise null types.
18126 * gimple.c (gimple_build_call_internal_1): New function.
18127 (gimple_build_call_internal): Likewise.
18128 (gimple_build_call_internal_vec): Likewise.
18129 (gimple_call_same_target_p): Likewise.
18130 (gimple_call_flags): Handle calls to internal functions.
18131 (gimple_call_fnspec): New function.
18132 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
18133 (gimple_has_side_effects): Handle null functions.
18134 (gimple_rhs_has_side_effects): Likewise.
18135 (gimple_call_copy_skip_args): Handle calls to internal functions.
18136 * cfgexpand.c (expand_call_stmt): Likewise.
18137 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
18138 * gimple-fold.c (gimple_fold_call): Handle null functions.
18139 (gimple_fold_stmt_to_constant_1): Don't fold
18140 calls to internal functions.
18141 * gimple-low.c (gimple_check_call_args): Handle calls to internal
18142 functions.
18143 * gimple-pretty-print.c (dump_gimple_call): Likewise.
18144 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
18145 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
18146 (do_warn_unused_result): Likewise.
18147 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
18148 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
18149 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
18150 the target of a call.
18151 (initialize_hash_element): Update accordingly.
18152 (hashable_expr_equal_p): Use gimple_call_same_target_p.
18153 (iterative_hash_hashable_expr): Handle calls to internal functions.
18154 (print_expr_hash_elt): Likewise.
18155 * tree-ssa-pre.c (can_value_number_call): Likewise.
18156 (eliminate): Handle null functions.
18157 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
18158 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
18159 (find_func_aliases): Likewise.
18160 * value-prof.c (gimple_ic_transform): Likewise.
18161 (gimple_indirect_call_to_profile): Likewise.
18162 * lto-streamer-in.c (input_gimple_stmt): Likewise.
18163 * lto-streamer-out.c (output_gimple_stmt): Likewise.
18164
1a3118e9
JH
181652011-04-19 Jan Hubicka <jh@suse.cz>
18166
18167 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
18168 * ipa-inline.c (inline_small_functions): Compute summaries first,
18169 populate heap later.
1a3118e9 18170
fee8b6da
JH
181712011-04-19 Jan Hubicka <jh@suse.cz>
18172
18173 * cgraph.h (save_inline_function_body): Remove.
18174 * ipa-inline-transform.c: New file, broke out of...
18175 * ipa-inline.c: ... this one; Update toplevel comment.
18176 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
18177 make global.
18178 (update_noncloned_frequencies): Move to ipa-inline-transform.c
18179 (cgraph_mark_inline_edge): Rename to inline_call; move to
18180 ipa-inline-transform.c.
18181 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
18182 move to ipa-inline-transform.c
18183 (recursive_inlining, inline_small_functions, flatten_function,
18184 ipa_inline, inline_always_inline_functions,
18185 early_inline_small_functions): Update.
18186 (inline_transform): Move to ipa-inline-transform.c.
18187 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
18188 Declare.
18189 * Makefile.in (ipa-inline-transform.o): New file.
18190 * cgraphunit.c (save_inline_function_body): Move to
18191 ipa-inline-transform.c
18192
f0679612
DD
181932011-04-19 DJ Delorie <dj@redhat.com>
18194
18195 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
18196 registers if we already know there aren't any.
18197 (m32c_emit_epilogue): Don't emit a barrier here.
18198 (m32c_emit_eh_epilogue): Likewise.
18199 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
18200 operands at expand time.
18201 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
18202 int" wchar type.
18203 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
18204 duplicates. Provide aliases instead.
18205 * config/m32c/prologue.md (eh_return): Emit a barrier here.
18206 (eh_epilogue): Add a "(return)" here as a hint to other parts of
18207 the compiler.
18208
32257ddc
AS
182092011-04-19 Anatoly Sokolov <aesok@post.ru>
18210
18211 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
18212 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
18213 (general_or_i64_p, sparc_register_move_cost): New function.
18214
60bea929
RO
182152011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18216
18217 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 18218 Add lynx, mipssde. Sort table.
60bea929 18219
444b3995 182202011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 18221
9d12f71a
EB
18222 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
18223 not negative.
444b3995 18224
d708ce50
JJ
182252011-04-19 Jakub Jelinek <jakub@redhat.com>
18226
18227 PR target/48678
18228 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
18229 is a SUBREG with non-MODE_INT mode inside of it.
18230
49c471e3
MJ
182312011-04-19 Martin Jambor <mjambor@suse.cz>
18232
18233 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
18234 also according to actual contants.
18235 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
18236 (gimple_fold_call): Use it.
18237 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
18238
0004f992
MJ
182392011-04-19 Martin Jambor <mjambor@suse.cz>
18240
18241 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
18242 non-pointer assignments.
18243
40591473
MJ
182442011-04-19 Martin Jambor <mjambor@suse.cz>
18245
18246 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
18247 account anc_offset and otr_type from the indirect edge info.
18248 * ipa-prop.c (get_ancestor_addr_info): New function.
18249 (compute_complex_ancestor_jump_func): Assignment analysis moved to
18250 get_ancestor_addr_info, call it.
18251 (ipa_note_param_call): Do not initialize information about polymorphic
18252 calls, return the indirect call graph edge. Remove the last
18253 parameter, adjust all callers.
18254 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
18255 parameters. Initialize polymorphic information in the indirect edge.
18256
abe36b81
EB
182572011-04-19 Eric Botcazou <ebotcazou@adacore.com>
18258
18259 PR lto/48148
18260 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
18261 the types if they have different enumeration identifiers.
18262
e6416b30
JH
182632011-04-19 Jan Hubicka <jh@suse.cz>
18264
18265 * cgraph.h (cgraph_optimize_for_size_p): Declare.
18266 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
18267 * predict.c (cgraph_optimize_for_size_p): Break out from ...
18268 (optimize_function_for_size_p) ... here.
18269
d39132ea
RG
182702011-04-19 Richard Guenther <rguenther@suse.de>
18271
18272 PR lto/48207
18273 * tree.c (free_lang_data): Do not reset the decl-assembler-name
18274 langhook.
18275
ff7037dc
EB
182762011-04-19 Eric Botcazou <ebotcazou@adacore.com>
18277
18278 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
18279 if DECL_NO_INLINE_WARNING_P is set on the function.
18280
c1ee2892
BS
182812011-04-19 Bernd Schmidt <bernds@codesourcery.com>
18282
18283 PR fortran/47976
18284 * reload1.c (inc_for_reload): Return void. All callers changed.
18285 (emit_input_reload_insns): Don't try to delete previous output
18286 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
18287
182882011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
18289
18290 * gengtype.h: Updated copyright year.
18291 (struct input_file_st): Add inpisplugin field.
18292 (type_fileloc): New function.
18293 * gengtype.c
18294 (write_typed_struct_alloc_def): Add gcc_assert.
18295 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
18296 (write_typed_alloc_defns): Don't output for plugin files.
18297 (input_file_by_name): Clear inpisplugin field.
18298 (main): Set inpisplugin field for plugin files.
18299
897e0a89
NP
183002011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
18301
18302 * gengtype-state.c (string_eq): New.
18303 (read_state): Use string_eq instead of strcmp when creating the
18304 state_ident_tab.
18305
363ee90e
WG
183062011-04-19 Wei Guozhi <carrot@google.com>
18307
18308 PR target/47855
18309 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
18310 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
18311 linkage.
18312 * config/arm/constraints.md (Uu): New constraint.
18313 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
18314
18a24fed
TG
183152011-04-19 Tristan Gingold <gingold@adacore.com>
18316
18317 * config.gcc (-*-*-*vms): Added.
18318 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
18319 definitions moved.
18320 * config/vms/vms-ld.c: New file.
18321 * config/vms/vms-ar.c: New file.
18322 * config/vms/t-vmsnative: New file.
18323
1c13f168
XDL
183242011-04-18 Xinliang David Li <davidxl@google.com>
18325
18326 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
18327
84825707
JJ
183282011-04-18 Jakub Jelinek <jakub@redhat.com>
18329
18330 PR middle-end/48661
18331 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
18332 if TREE_TYPE (v) is non-NULL.
18333
18334 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
18335 gimple_get_virt_mehtod_for_binfo.
18336 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
18337 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
18338 callers.
18339 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
18340
7d4f8d02 183412011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
18342 Steve Ellcey <sje@cup.hp.com>
18343
7d4f8d02
EB
18344 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
18345 use its mode as source mode if it isn't VOIDmode.
7254cb57 18346
474e8e70
DCR
183472011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
18348
18349 * doc/passes.texi: Fill crossref nodes.
18350
cff41484
JM
183512011-04-18 Jim Meyering <meyering@redhat.com>
18352
7d4f8d02 18353 Fix doubled-word typos in comments and strings
cff41484
JM
18354 * config/alpha/vms-unwind.h: s/for for/for/
18355 * config/arm/unwind-arm.h: Likewise.
18356 * config/microblaze/microblaze.c: Likewise.
18357 * config/sh/constraints.md: s/in in/in/
18358 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
18359
f60c2554
UB
183602011-04-18 Uros Bizjak <ubizjak@gmail.com>
18361
18362 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
18363 (AVX_FLOAT_MODE_P): Ditto.
18364 (AVX128_VEC_FLOAT_MODE_P): Ditto.
18365 (AVX256_VEC_FLOAT_MODE_P): Ditto.
18366 (AVX_VEC_FLOAT_MODE_P): Ditto.
18367 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
18368 (UNSPEC_MASKSTORE): Ditto.
18369 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
18370 Merge from <sse>_movmsk<ssemodesuffix> and
18371 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
18372 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
18373 iterator.
18374 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
18375 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
18376 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
18377
09a2806f
JH
183782011-04-18 Jan Hubicka <jh@suse.cz>
18379
8a8dccb2
JH
18380 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
18381
09a2806f
JH
18382 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
18383 (want_inline_function_called_once_p): Break out the logic from
18384 ipa_inline.
18385 (edge_badness): Ensure that profile is not misupdated.
18386 (lookup_recursive_calls): Prioritize by call frequencies.
18387 (inline_small_functions): Move program size estimates here;
18388 actually process whole queue even when unit growth has been
18389 met. (to properly compute inline_failed reasons and for the
f60c2554 18390 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
18391 (ipa_inline): Remove unit summary code; first inline hot calls
18392 of functions called once, cold calls next.
18393 (order, nnodes): Remove unused variables.
18394 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
18395 (GTFILES): Remove ipa-inline.c
18396 * sel-sched.c (fill_insns): Silence uninitialized var warning.
18397
3eea52ef
EB
183982011-04-18 Eric Botcazou <ebotcazou@adacore.com>
18399
18400 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
18401
229a1c59 184022011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 18403 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
18404
18405 * arm.c (neon_builtin_type_bits): Remove.
18406 (typedef enum neon_builtin_mode): New.
18407 (T_MAX): Don't define.
18408 (typedef enum neon_builtin_datum): Remove bits, codes[],
18409 num_vars and base_fcode. Add mode, code and fcode.
18410 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
18411 VAR10): Change accordingly.
18412 (neon_builtin_data[]): Change accordingly
18413 (arm_init_neon_builtins): Change accordingly.
18414 (neon_builtin_compare): Remove.
18415 (locate_neon_builtin_icode): Remove.
18416 (arm_expand_neon_builtin): Change accordingly.
18417
18418 * arm.h (enum arm_builtins): Move to ...
18419 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
18420
18421 * arm.c (arm_builtin_decl): Declare.
18422 (TARGET_BUILTIN_DECL): Define.
18423 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
18424 (arm_builtin_decls[]): New.
18425 (arm_init_neon_builtins): Store builtin declarations in
18426 arm_builtin_decls[].
18427 (arm_init_tls_builtins): Likewise.
18428 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
18429 (arm_builtin_decl): New.
18430
75e802cc
RG
184312011-04-18 Richard Guenther <rguenther@suse.de>
18432
18433 * tree.c (upper_bound_in_type): Build properly canonicalized
18434 INTEGER_CSTs.
18435 (lower_bound_in_type): Likewise.
18436
3b45a007
RG
184372011-04-18 Richard Guenther <rguenther@suse.de>
18438
18439 * gimple.h (gimple_call_addr_fndecl): New function.
18440 (gimple_call_fndecl): Use it.
18441 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
18442 for direct calls.
18443 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
18444 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
18445
d25a79ea
RG
184462011-04-18 Richard Guenther <rguenther@suse.de>
18447
18448 PR middle-end/48650
18449 * tree.c (build_string): STRING_CST is now derived from tree_typed.
18450
7d5fc814
EB
184512011-04-18 Eric Botcazou <ebotcazou@adacore.com>
18452
18453 PR lto/48492
18454 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
18455 DECL_IN_CONSTANT_POOL without RTL.
18456
7e7cfcf6
UW
184572011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
18458 Ira Rosen <ira.rosen@linaro.org>
18459
18460 PR target/48252
18461 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
18462 to match neon_vzip/vuzp/vtrn_internal.
18463 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
18464 outputs explicitly dependent on both inputs.
18465 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
18466
49eab32e
JJ
184672011-04-18 Jakub Jelinek <jakub@redhat.com>
18468
18469 PR tree-optimization/48616
18470 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
18471 whether the shift is by scalar or vector based on whether all SLP
18472 scalar stmts have the same rhs.
18473
e54170f4
CLT
184742011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
18475
18476 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
18477 memory operands.
18478
b14ee6c9
RS
184792011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
18480
269e0e18 18481 PR target/43700
b14ee6c9
RS
18482 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
18483 registers.
18484
10158cd3
JH
184852011-04-17 Jan Hubicka <jh@suse.cz>
18486
18487 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
18488 * cgrpahunit.c (cgraph_finalize_function): Do not set
18489 finalized_by_frontend.
10158cd3
JH
18490 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
18491 finalized_by_frontend.
18492
2e9bb6ba
JH
184932011-04-17 Jan Hubicka <jh@suse.cz>
18494
18495 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
18496 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
18497 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
18498 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
18499 method.
2e9bb6ba
JH
18500 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
18501 gimple-fold.c
18502 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
18503
beb628e1
EB
185042011-04-17 Eric Botcazou <ebotcazou@adacore.com>
18505
18506 PR lto/48538
18507 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
18508 is non-null before accessing it.
18509 (input_cgraph): Remove trailing spaces.
18510
3e2fdd24
RE
185112011-04-17 Revital Eres <revital.eres@linaro.org>
18512
18513 * params.def (sms-min-sc): New param flag.
18514 * modulo-sched.c (sms_schedule): Use it.
18515 * doc/invoke.texi (sms-min-sc): Document it.
18516
4c0f7679
JH
185172011-04-17 Jan Hubicka <jh@suse.cz>
18518
18519 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
18520 present, also set gimple_call_set_cannot_inline.
18521 * ipa-inline.c: Update toplevel comment.
18522 (MAX_TIME): Remove.
18523 (cgraph_clone_inlined_nodes): Fix linebreaks.
18524 (cgraph_check_inline_limits): Restructure to ...
18525 (caller_growth_limits): ... this one; be more tolerant
18526 on growth in nested inline chains; add explanatory comment;
18527 fix stack accounting thinko introduced by previous patch.
18528 (cgraph_default_inline_p): Remove.
18529 (report_inline_failed_reason): New function.
18530 (can_inline_edge_p): New function.
18531 (can_early_inline_edge_p): New function.
18532 (leaf_node_p): Move upwards in file.
18533 (want_early_inline_function_p): New function.
18534 (want_inline_small_function_p): New function.
18535 (want_inline_self_recursive_call_p): New function.
18536 (cgraph_edge_badness): Rename to ...
18537 (edge_badness) ... this one; fix linebreaks.
18538 (update_edge_key): Update call of edge_baddness; add
18539 detailed dump about queue updates.
18540 (update_caller_keys): Use can_inline_edge_p and
18541 want_inline_small_function_p.
18542 (cgraph_decide_recursive_inlining): Rename to...
18543 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
18544 want_inline_self_recursive_call_p; simplify and remove no longer
18545 valid FIXME.
4c0f7679
JH
18546 (cgraph_set_inline_failed): Remove.
18547 (add_new_edges_to_heap): Use can_inline_edge_p and
18548 want_inline_small_function_p.
18549 (cgraph_decide_inlining_of_small_functions): Rename to ...
18550 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
18551 can/want predicates; cleanup debug ouput; work edges till fibheap
18552 is exhausted and do not stop once unit growth is reached; remove
18553 later loop processing remaining edges.
4c0f7679
JH
18554 (cgraph_flatten): Rename to ...
18555 (flatten_function): ... this one; use can_inline_edge_p
18556 and can_early_inline_edge_p predicates.
18557 (cgraph_decide_inlining): Rename to ...
18558 (ipa_inline): ... this one; remove unreachable nodes before
18559 inlining functions called once; simplify the pass.
18560 (cgraph_perform_always_inlining): Rename to ...
18561 (inline_always_inline_functions): ... this one; use
f60c2554 18562 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
18563 (cgraph_decide_inlining_incrementally): Rename to ...
18564 (early_inline_small_functions): ... this one; simplify
18565 using new predicates; cleanup; make dumps prettier.
18566 (cgraph_early_inlining): Rename to ...
18567 (early_inliner): newer inline regular functions into always-inlines;
18568 fix updating of call stmt summaries.
18569 (pass_early_inline): Update for new names.
18570 (inline_transform): Fix formating.
18571 (gate_cgraph_decide_inlining): Rename to ...
18572 (pass_ipa_inline): ... this one.
18573 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
18574 * ipa-inline-analysis.c (dump_inline_summary): Update.
18575 (compute_inline_parameters): Do not compute disregard_inline_limits;
18576 look for mismatching arguments.
18577 (estimate_growth): Fix handlig of non-trivial self recursion.
18578 (inline_read_summary): Do not read info->disregard_inline_limits.
18579 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
18580 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
18581 and move all checks into can_inline_edge_p predicate; re-enable code
18582 comparing optimization levels.
4c0f7679
JH
18583 (expand_call_inline): Do not test inline_forbidden_into_p.
18584 * Makefile.in (ipa-inline.o): Update arguments.
18585
54333b7c
RE
185862011-04-17 Revital Eres <revital.eres@linaro.org>
18587
18588 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
18589
42c2bf92
RE
185902011-04-17 Revital Eres <revital.eres@linaro.org>
18591
18592 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
18593
b183e9e0
MM
185942011-04-17 Michael Matz <matz@suse.de>
18595
18596 PR tree-optimization/48622
18597 PR lto/48645
18598 * ipa-inline-analysis.c (inline_read_summary): Read size/time
18599 in same order as they're written.
18600
b8a17fa2
JDA
186012011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18602
18603 * config/pa/predicates.md: Reorganize and simplify predicates.
18604 Eliminate duplicate code checks.
18605 (arith_operand): Rename to arith14_operand
18606 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
18607 * config/pa/pa.md: Use renamed operands.
18608 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
18609 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
18610 arith11_operand, adddi3_operand, indexed_memory_operand,
18611 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
18612 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
18613 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
18614 move_dest_operand, move_src_operand, prefetch_cc_operand,
18615 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
18616 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
18617 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
18618 div_operand, int5_operand, movb_comparison_operator,
18619 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
18620 arith_double_operand, ireg_operand, lhs_lshift_operand,
18621 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
18622 integer_store_memory_operand): Likewise.
18623 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
18624 (integer_store_memory_operand, read_only_operand,
18625 function_label_operand, borx_reg_operand,
18626 non_hard_reg_operand): Likewise.
18627 (eq_neq_comparison_operator): Delete unused operator.
18628 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
18629 function_label_operand.
18630 (emit_move_sequence): Likewise.
18631
8dfb9f16
UB
186322011-04-16 Uros Bizjak <ubizjak@gmail.com>
18633
18634 * config/i386/sse.md (sseunpackmode): New mode attribute.
18635 (ssepackmode): Ditto.
18636 (vec_pack_trunc_<mode>): Macroize expander from
18637 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
18638 (vec_unpacks_lo_<mode>): Macroize expander from
18639 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
18640 (vec_unpacks_hi_<mode>): Macroize expander from
18641 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
18642 (vec_unpacku_lo_<mode>): Macroize expander from
18643 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
18644 (vec_unpacku_hi_<mode>): Macroize expander from
18645 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
18646 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
18647 ix86_expand_sse4_unpack.
18648 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
18649
e7f23018
JH
186502011-04-16 Jan Hubicka <jh@suse.cz>
18651
18652 * cgraphbuild.c: Include ipa-inline.h.
18653 (reset_inline_failed): Use initialize_inline_failed.
18654 * cgraph.c: Include ipa-inline.h.
18655 (cgraph_create_node_1): Do not initialize estimated_growth.
18656 (initialize_inline_failed): More to ipa-inline-analysis.c
18657 (dump_cgraph_node): Do not dump inline flags.
18658 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
18659 and disregard_inline_limits flags.
18660 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
18661 time, size, estimated_growth.
8dfb9f16
UB
18662 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
18663 Update.
e7f23018
JH
18664 * cgraphunit.c (cgraph_decide_is_function_needed): Use
18665 DECL_DISREGARD_INLINE_LIMITS.
18666 (cgraph_analyze_function): Do not initialize
18667 node->local.disregard_inline_limits.
18668 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
18669 inlinable, versionable and disregard_inline_limits.
18670 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
18671 cgraph_check_inline_limits, cgraph_default_inline_p,
18672 cgraph_edge_badness, update_caller_keys, update_callee_keys,
18673 add_new_edges_to_heap): Update.
18674 (cgraph_decide_inlining_of_small_function): Update; set
18675 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
18676 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
18677 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
18678 * ipa-inline.h (inline_summary): Add inlinable, versionable,
18679 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
18680 time, size and estimated_growth parameters.
e7f23018
JH
18681 (estimate_edge_growth): Update.
18682 (initialize_inline_failed): Declare.
18683 * ipa-split.c: Include ipa-inline.h
18684 (execute_split_functions): Update.
18685 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
18686 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
18687 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
18688 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
18689 estimated_growth to INT_MIN.
18690 (inline_node_duplication_hook): Likewise.
18691 (dump_inline_summary): Dump new fields.
18692 (compute_inline_parameters): Update.
18693 (estimate_edge_time, estimate_time_after_inlining,
18694 estimate_size_after_inlining, estimate_growth, inline_read_summary,
18695 inline_write_summary):
18696 (initialize_inline_failed): Move here from cgraph.c.
18697 * tree-sra.c: Include ipa-inline.h.
18698 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
18699 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
18700 ipa-inline.h.
e7f23018 18701
e81b8564
UB
187022011-04-16 Uros Bizjak <ubizjak@gmail.com>
18703
18704 * config/i386/sse.md (V16): New mode iterator.
18705 (VI1, VI8): Ditto.
18706 (AVXMODEQI, AVXMODEDI): Remove.
18707 (sse2, sse3): New mode attribute.
18708 (mov<mode>): Use V16 mode iterator.
18709 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
18710 (push<mode>1): Use V16 mode iterator.
18711 (movmisalign<mode>): Ditto.
18712 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
18713 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
18714 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
18715 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
18716 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
18717 avx_movdqu<avxmodesuffix>.
18718 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
18719 *avx_movdqu<avxmodesuffix>.
18720 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
18721 avx_lddqu<avxmodesuffix>.
18722 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
18723 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
18724 avx_movnt<AVXMODEDI:mode>.
18725 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
18726 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
18727
4743d438
BS
187282011-04-16 Bernd Schmidt <bernds@codesourcery.com>
18729
18730 PR target/48629
18731 * haifa-sched.c (prune_ready_list, schedule_block): Use
18732 sched_pressure_p rather than flag_sched_pressure.
18733
748f7574 187342011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
18735
18736 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
18737 cgraph_get_node instead of cgraph_get_create_node.
18738
2ba172e0
JJ
187392011-04-15 Jakub Jelinek <jakub@redhat.com>
18740
18741 * cfgexpand.c (expand_debug_expr): Use
18742 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
18743
63d2a353
MM
187442011-04-15 Michael Matz <matz@suse.de>
18745
18746 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
18747 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
18748 * function.c (gimplify_parameters): Ditto.
18749 * gimplify.c (gimplify_vla_decl): Ditto.
18750
18751 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
18752 (gimple_call_set_alloca_for_var): New inline function.
18753 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
18754 * gimple.c (gimple_build_call_from_tree): Remember
18755 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
18756 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
18757
18758 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
18759 calls if they were for VLA objects.
18760
dee74c34
MJ
187612011-04-15 Martin Jambor <mjambor@suse.cz>
18762
18763 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
18764 of ADR_EXPRs.
18765
8e5837bc
MJ
187662011-04-15 Martin Jambor <mjambor@suse.cz>
18767
18768 PR middle-end/48601
18769 * tree-emutls.c (lower_emutls_function_body): Call
18770 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
18771 result is non-NULL.
18772
0dc33c3c
NP
187732011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
18774
18775 * c-decl.c (detect_field_duplicates): Call
18776 objc_detect_field_duplicates instead of objc_get_interface_ivars.
18777
edcdea5b
NF
187782011-04-15 Nathan Froyd <froydnj@codesourcery.com>
18779
18780 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
18781 * gimple.c (gimple_asm_clobbers_memory_p): Define.
18782 * ipa-pure-const.c (check_stmt): Call it.
18783 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
18784
8456558d
RG
187852011-04-15 Richard Guenther <rguenther@suse.de>
18786
18787 PR tree-optimization/48290
18788 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
18789 Properly decide inhibiting propagation based on the valueized
18790 operand. Do loop-closed SSA form preserving here ...
18791 (init_copy_prop): ... not here.
18792
266446be
L
187932011-04-15 H.J. Lu <hongjiu.lu@intel.com>
18794
18795 PR target/48612
18796 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
18797 (*ieee_smax<mode>3): Likewise.
18798
17465c6e
AK
187992011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18800
18801 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
18802 Replace match_operand with match_dup for the third operand in
18803 these expanders.
18804
bce204e5
MK
188052011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
18806
18807 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
18808 to track processing of conditionals. Update all callers.
18809 (try_combine, simplify_if_then_else): Update.
18810
3162fdf4
MK
188112011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
18812
18813 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
18814 -fsched-pressure.
18815
79002a57 188162011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 18817
79002a57
GJL
18818 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
18819 instead of match_operand for operand 3.
18820
4fd3a105
RS
188212011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
18822
18823 * recog.h (insn_operand_data): Add an "allows_mem" field.
18824 * genoutput.c (output_operand_data): Initialize it.
18825 * optabs.c (maybe_legitimize_operand_same_code): New function.
18826 (maybe_legitimize_operand): Use it when matching the original
18827 op->value.
18828
ad19c4be
EB
188292011-04-15 Eric Botcazou <ebotcazou@adacore.com>
18830
18831 * gimplify.c: Fix issues in comments throughout.
18832 (voidify_wrapper_expr): Fix long line.
18833 (build_stack_save_restore): Likewise.
18834 (gimplify_loop_expr): Likewise.
18835 (gimplify_compound_lval): Likewise.
18836 (gimplify_init_ctor_eval): Likewise.
18837 (gimplify_modify_expr_rhs): Likewise.
18838 (omp_notice_threadprivate_variable): Likewise.
18839
b25aa0e8 188402011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 18841
b25aa0e8
EB
18842 * cfgexpand.c (expand_call_stmt): Convert the function type to the
18843 original one if this is not a builtin function.
e7925582 18844
09db7afe
JJ
188452011-04-14 Jakub Jelinek <jakub@redhat.com>
18846
18847 PR target/48605
18848 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
18849 offset it as needed based on top 2 bits in operands[3], change
18850 MEM mode to SFmode and mask those 2 bits away from operands[3].
18851
c59633d9
NP
188522011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
18853
18854 * c-parser.c (c_parser_objc_protocol_definition): Updated for
18855 change from objc_declare_protocols() to objc_declare_protocol().
18856
5e60198b
UB
188572011-04-14 Uros Bizjak <ubizjak@gmail.com>
18858
18859 * config/i386/sse.md (sse4_1): New mode attribute.
18860 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
18861 avx_blend<ssemodesuffix><avxmodesuffix> and
18862 sse4_1_blend<ssemodesuffix> using VF mode iterator.
18863 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
18864 avx_blendv<ssemodesuffix><avxmodesuffix> and
18865 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
18866 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
18867 avx_dp<ssemodesuffix><avxmodesuffix> and
18868 sse4_1_dp<ssemodesuffix> using VF mode iterator.
18869 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
18870 (sse4_1_packusdw): Merge with *avx_packusdw.
18871 (sse4_1_pblendvb): Merge with *avx_pblendvb.
18872 (sse4_1_pblendw): Merge with *avx_pblendw.
18873 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
18874 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
18875 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
18876 VF mode iterator.
18877 (sse4_1_round<ssescalarmodesuffix>): Merge with
18878 *avx_round<ssescalarmodesuffix>.
18879 (aesenc): Merge with *avx_aesenc.
18880 (aesenclast): Merge with *avx_aesenclast.
18881 (aesdec): Merge with *avx_aesdec.
18882 (aesdeclast): Merge with *avx_aesdeclast.
18883 (pclmulqdq): Merge with *pclmulqdq.
18884 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
18885 New predicate.
18886 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
18887
6f197850
L
188882011-04-14 H.J. Lu <hongjiu.lu@intel.com>
18889
18890 PR middle-end/48608
18891 * cfgexpand.c (get_decl_align_unit): Renamed to ...
18892 (align_local_variable): This. Update DECL_ALIGN.
18893 (add_stack_var): Updated.
18894 (expand_one_stack_var): Likewise.
18895
4a5ba3ed
RG
188962011-04-14 Richard Guenther <rguenther@suse.de>
18897
18898 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
18899 Remove.
18900 (dse_initialize_block_local_data, dse_leave_block,
18901 record_voperand_set, get_stmt_uid): Likewise.
18902 (dse_possible_dead_store_p): Allow any kind of killing stmt.
18903 (dse_optimize_stmt): Remove voperand set handling code.
18904 Simplify and improve to handle any kind of killing stmt.
18905 (dse_record_phi): Remove.
18906 (dse_enter_block): Simplify.
18907 (tree_ssa_dse): Likewise.
18908 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
18909
10a5dd5d
JH
189102011-04-14 Jan Hubicka <jh@suse.cz>
18911
18912 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
18913 * cgraph.h (struct inline_summary): Move to ipa-inline.h
18914 (cgraph_local_info): Remove inline_summary.
18915 * ipa-cp.c: Include ipa-inline.h.
18916 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
18917 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
18918 accesor.
18919 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
18920 (input_overwrite_node): Do not set inline summary.
18921 (input_node): Do not stream inline summary.
18922 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
18923 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
18924 growth; we do not have inline parameters computed for that anyway.
18925 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
18926 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
18927 (inline_summary_t): New type and VECtor.
18928 (debug_inline_summary, dump_inline_summaries): Declare.
18929 (inline_summary): Use VOCtor.
18930 (estimate_edge_growth): Kill hack computing call stmt size directly.
18931 * lto-section-in.c (lto_section_name): Add inline section.
18932 * ipa-inline-analysis.c: Include lto-streamer.h
18933 (node_removal_hook_holder, node_duplication_hook_holder): New holders
18934 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
18935 (inline_summary_vec): Define.
18936 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
18937 dump_inline_summaries): New functions.
5e60198b
UB
18938 (estimate_function_body_sizes): Properly compute size/time of outgoing
18939 calls.
18940 (compute_inline_parameters): Alloc inline_summary; do not compute
18941 size/time of incomming calls.
10a5dd5d
JH
18942 (estimate_edge_time): Avoid missing time summary hack.
18943 (inline_read_summary): Read inline summary info.
18944 (inline_write_summary): Write inline summary info.
18945 (inline_free_summary): Free all hooks and inline summary vector.
18946 * lto-streamer.h: Add LTO_section_inline_summary section.
18947 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
18948 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
18949
b602d918
RS
189502011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
18951
18952 * tree-vectorizer.h (vect_strided_store_supported): Add a
18953 HOST_WIDE_INT argument.
18954 (vect_strided_load_supported): Likewise.
18955 (vect_permute_store_chain): Return void.
18956 (vect_transform_strided_load): Likewise.
18957 (vect_permute_load_chain): Delete.
18958 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
18959 count argument. Check that the count is a power of two.
18960 (vect_strided_load_supported): Likewise.
18961 (vect_permute_store_chain): Return void. Update after above changes.
18962 Assert that the access is supported.
18963 (vect_permute_load_chain): Likewise.
18964 (vect_transform_strided_load): Return void.
18965 * tree-vect-stmts.c (vectorizable_store): Update calls after
18966 above interface changes.
18967 (vectorizable_load): Likewise.
18968 (vect_analyze_stmt): Don't check for strided powers of two here.
18969
ab4472fa
RG
189702011-04-14 Richard Guenther <rguenther@suse.de>
18971
18972 PR tree-optimization/48590
18973 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
18974 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
18975 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
18976 BUILT_IN_STACK_SAVE.
18977 * tree-ssa-dce.c (propagate_necessity): Handle
18978 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
18979
32dabdaf
NP
189802011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
18981
18982 * c-parser.c (c_parser_objc_class_declaration): Updated call to
18983 objc_declare_class.
18984
daade206
RG
189852011-04-14 Richard Guenther <rguenther@suse.de>
18986
18987 * tree.h (get_object_alignment_1): Declare.
18988 * builtins.c (get_object_alignment_1): Split out worker from ...
18989 (get_object_alignment): ... here.
18990 * fold-const.c (get_pointer_modulus_and_residue): Use
18991 get_object_alignment_1.
18992
920e8172
RS
189932011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
18994
18995 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
18996 type parameter.
18997 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
18998 parameter. Generalise code to handle arrays as well as vectors.
18999 (vect_setup_realignment): Update accordingly.
19000 * tree-vect-stmts.c (vectorizable_store): Likewise.
19001 (vectorizable_load): Likewise.
19002
5ce1ee7f
RS
190032011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
19004
19005 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
19006 within the per-copy loop.
19007
6438fe33 190082011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
19009
19010 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
19011 in the dump file.
19012
6438fe33 190132011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
19014
19015 * doc/options.texi (Negative): Explicitly mention that the
19016 Negative chain must be circular.
19017
61e46a7d
NF
190182011-04-14 Nathan Froyd <froydnj@codesourcery.com>
19019
19020 * function.h (block_chainon): Declare.
19021 * function.c (block_chainon): Define.
19022
43ea6502 190232011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 19024 Eric Weddington <eric.weddington@atmel.com>
748f7574 19025 Georg-Johann Lay <avr@gjlay.de>
5e60198b 19026
f60c2554 19027 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
19028 New Includes
19029 (avr_init_builtins, avr_expand_builtin,
19030 avr_expand_delay_cycles, avr_expand_unop_builtin,
19031 avr_expand_binop_builtin ): New functions.
19032 (avr_builtin_id): New enum
19033 (struct avr_builtin_description): New struct
19034 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
19035 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 19036
43ea6502 19037 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 19038 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
19039 UNSPECV_DELAY_CYCLES): new enumeration values
19040 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
19041 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
19042 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
19043 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
19044 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
19045 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
19046 "fmulsu"): New insns
5e60198b 19047
43ea6502
AS
19048 * config/avr/avr-c.c: fix line endings
19049 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
19050 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
19051 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
19052 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
19053 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 19054
43ea6502
AS
19055 * doc/extend.texi (AVR Built-in Functions): New node
19056 (Target Builtins): Add documentation of AVR
19057 built-in functions.
19058
8a9b55f3
GJL
190592011-04-14 Georg-Johann Lay <avr@gjlay.de>
19060
19061 PR target/44643
19062 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
19063 alone. Error if non-const data has attribute progmem.
19064
94bd1825
NF
190652011-04-13 Nathan Froyd <froydnj@codesourcery.com>
19066
19067 * tree.h (struct tree_constructor): Include tree_typed instead of
19068 tree_common.
19069 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
19070 TS_TYPED instead of TS_COMMON.
19071
5e60198b 190722011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
19073
19074 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
19075 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
19076 (sse2_psadbw): Merge with *avx_psadbw.
19077 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
19078 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
19079 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
19080 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
19081 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
19082 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
19083 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
19084 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
19085 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
19086 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
19087 (ssse3_palignrti): Merge with *avx_palignrti.
19088
4b1a4694
NF
190892011-04-13 Nathan Froyd <froydnj@codesourcery.com>
19090
19091 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
19092 * tree-ssanames.c (fini_ssanames): VEC_free it.
19093 (make_ssa_name_fn): Update for VECness of free_ssanames.
19094 (release_ssa_name, release_dead_ssa_names): Likewise.
19095 * tree.h (struct tree_ssa_name): Include tree_typed instead of
19096 tree_common.
19097 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
19098 TS_TYPED instead of TS_COMMON.
19099
4da3b811
NF
191002011-04-13 Nathan Froyd <froydnj@codesourcery.com>
19101
19102 * postreload-gcse.c (gcse_after_reload_main): Add calls to
19103 statistics_counter_event.
19104 * tree-ssa-copyrename.c (stats): Define.
19105 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
19106 statistics_counter_event.
19107 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
19108 (bswap_stats, widen_mul_stats): Define.
19109 (insert_reciprocals): Increment rdivs_inserted.
19110 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
19111 rfuncs_inserted. Add calls to statistics_counter_event.
19112 (execute_cse_sincos_1): Increment inserted.
19113 (execute_cse_sincos): Zeroize sincos_stats. Add call to
19114 statistics_counter_event.
19115 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
19116 of bswap_stats. Add calls to statistics_counter_event.
19117 (convert_mult_to_widen): Increment widen_mults_inserted.
19118 (convert_plusminus_to_widen): Increment maccs_inserted.
19119 (convert_mult_to_fma): Increment fmas_inserted.
19120 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
19121 calls to statistics_counter_event.
19122
89fa552a
VM
191232011-04-13 Vladimir Makarov <vmakarov@redhat.com>
19124
19125 PR rtl-optimization/48455
19126 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
19127 `temp_costs->mem_cost'.
19128
03dfc36d
JH
191292011-04-13 Jan Hubicka <jh@suse.cz>
19130
19131 * ipa-inline.h: New file.
19132 * ipa-inline-analysis.c: New file. Broken out of ...
19133 * ipa-inline.c: ... this file; update toplevel comment;
19134 include ipa-inline.h
19135 (inline_summary): Move to ipa-inline.h
19136 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
19137 ipa-inline-analysis.c.
7d4f8d02
EB
19138 (cgraph_estimate_time_after_inlining): Rename to
19139 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
19140 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
19141 to estimate_edge_growth.
19142 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
19143 rename to estimate_size_after_inlining.
19144 (cgraph_mark_inline_edge): Update for new naming convention.
19145 (cgraph_check_inline_limits): Likewise.
19146 (cgraph_edge_badness): Likewise.
19147 (cgraph_decide_recursive_inlining): Likewise.
19148 (cgraph_decide_inlining_of_small_functions): Likewise.
19149 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
19150 (cgraph_estimate_growth): Rename to estimate_growth; move to
19151 ipa-inline-analysis.c.
03dfc36d
JH
19152 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
19153 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
19154 (compute_inline_parameters): Likewise.
19155 (compute_inline_parameters_for_current): Likewise.
19156 (pass_inline_parameters): Likewise.
19157 (inline_indirect_intraprocedural_analysis): Likewise.
19158 (analyze_function): Rename to inline_analyze_function; likewise.
19159 (add_new_function): Move to ipa-inline-analysis.c.
19160 (inline_generate_summary): Likewise.
19161 (inline_read_summary): Likewise.
19162 (inline_write_summary): Likewise.
19163 * Makefile.in (ipa-inline-analysis.c): New file.
19164
7673c962
RO
191652011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19166
19167 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
19168 * configure: Regenerate.
19169
9698252f
NF
191702011-04-13 Nathan Froyd <froydnj@codesourcery.com>
19171
19172 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
19173 instead of tree_common.
19174 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
19175 Likewise.
19176 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
19177 TS_TYPED rather than TS_COMMON.
19178 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
19179
3a7bfdd5
GJL
191802011-04-01 Georg-Johann Lay <avr@gjlay.de>
19181
19182 PR target/45263
86d83530
GJL
19183 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
19184 r20 around calls of __tablejump_elpm__
3a7bfdd5 19185
20790697
JJ
191862011-04-13 Jakub Jelinek <jakub@redhat.com>
19187
19188 PR middle-end/48591
19189 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
19190 NULL.
19191 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
19192
094d7661
BS
191932011-04-13 Bernd Schmidt <bernds@codesourcery.com>
19194
19195 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
19196 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
19197 (cfi_vec): New typedef.
19198 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
19199 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
19200 (cie_cfi_vec): New static variable.
19201 (cie_cfi_head): Delete.
19202 (add_cfi): Accept a cfi_vec * as first argument. All callers and
19203 declaration changed. Use vector rather than list operations.
19204 (new_cfi): Don't initialize the dw_cfi_next field.
19205 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
19206 rather than list operations.
19207 (lookup_cfa): Use vector rather than list operations.
19208 (output_cfis): New argument upto. Accept a cfi_vec rather than
19209 a dw_cfi_ref list head as argument. All callers changed.
19210 Iterate over the vector using upto as a maximum index.
19211 (output_all_cfis): New static function.
19212 (output_fde): Use vector rather than list operations. Use the
19213 new upto argument for output_cfis rather than manipulating a
19214 list.
19215 (dwarf2out_begin_prologue): Change initializations to match
19216 new struct members.
19217 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
19218 from the vector length rather than searching for the end of a list.
19219 Use output_all_cfis.
19220 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
19221
673a5740
NC
192222011-04-13 Nick Clifton <nickc@redhat.com>
19223
19224 * config/rx/rx.md (movmemsi): Do not use this pattern when
19225 volatile pointers are involved.
19226
1ee8b298
UB
192272011-04-13 Uros Bizjak <ubizjak@gmail.com>
19228
19229 * config/i386/sse.md (pinsrbits): Remove.
19230 (sse2_packsswb): Merge with *avx_packsswb.
19231 (sse2_packssdw): Merge with *avx_packssdw.
19232 (sse2_packuswb): Merge with *avx_packuswb.
19233 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
19234 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
19235 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
19236 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
19237 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
19238 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
19239 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
19240 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
19241 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
19242 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
19243 (sse2_loadld): Merge with *avx_loadld.
19244 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
19245 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
19246 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
19247 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
19248 (vec_concatv2di): Merge with *vec_concatv2di_avx.
19249
81f653d6
NF
192502011-04-12 Nathan Froyd <froydnj@codesourcery.com>
19251
19252 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
19253 calling TREE_CHAIN.
19254 * print-tree.c (print_node): Likewise.
19255 * tree-inline.c (copy_tree_r): Likewise.
19256 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
19257 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
19258 instead of TS_COMMON.
19259 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
19260 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
19261 (copy_node_stat): Zero TREE_CHAIN only if necessary.
19262 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
19263 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
19264 ...and these...
19265 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
19266 * tree.h: ...here.
19267 (TREE_CHAIN): Check for a TS_COMMON structure.
19268 (TREE_TYPE): Check for a TS_TYPED structure.
19269
748f7574 192702011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
19271
19272 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
19273 cgraph_get_create_node instead of cgraph_node.
19274
eb345401
NP
192752011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
19276
19277 * c-parser.c (c_parser_initelt): Updated call to
19278 objc_build_message_expr.
19279 (c_parser_postfix_expression): Likewise.
19280
a6c46762
KT
192812011-04-12 Kai Tietz <ktietz@redhat.com>
19282
19283 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
19284 MASK_MS_BITFIELD_LAYOUT bit.
19285
b4ccfed9
JJ
192862011-04-12 Jakub Jelinek <jakub@redhat.com>
19287
19288 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
19289 assert it is always true.
19290 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
19291 moves.
19292
0d8a2528
NP
192932011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
19294
19295 * c-parser.c (c_lex_one_token): Rewritten conditional used when
19296 compiling Objective-C to be more efficient.
19297
06bd234a
AF
192982011-04-12 Axel Freyn <axel-freyn@gmx.de>
19299
19300 * opts-common.c (decode_cmdline_options_to_array): Remove variable
19301 argv_copied.
19302
28569ac3
RS
193032011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
19304
19305 * recog.h, genoutput.c, optabs.c: Revert last patch.
19306
ae59e00d
RR
193072011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19308
81b1e7eb
UB
19309 PR target/48090
19310 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 19311
cff1b7e0
RS
193122011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
19313
19314 * recog.h (insn_operand_data): Add an "allows_mem" field.
19315 * genoutput.c (output_operand_data): Initialize it.
19316 * optabs.c (maybe_legitimize_operand_same_code): New function.
19317 (maybe_legitimize_operand): Use it when matching the original
19318 op->value.
19319
77059241
RS
193202011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
19321
19322 * genpreds.c (process_define_predicate): Move most processing
19323 to gensupport.c. Continue to validate the expression.
19324 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
19325 (process_define_predicate): Move processing to gensupport.c.
19326 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
19327 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
19328 (compute_predicate_codes): Moved from genrecog.c. Add lineno
19329 argument.
19330 (valid_predicate_name_p): New function, split out from old
19331 genpreds.c:process_define_predicate.
19332 (process_define_predicate): New function, combining code from
19333 old genpreds.c and genrecog.c functions.
19334 (process_rtx): Call it for DEFINE_PREDICATE and
19335 DEFINE_SPECIAL_PREDICATE.
19336
6308e208
RS
193372011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
19338
19339 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
19340 size of a '%A' memory reference.
19341 (T_DREG, T_QREG): New neon_builtin_type_bits.
19342 (arm_init_neon_builtins): Assert that the load and store operands
19343 are neon_struct_operands.
19344 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
19345 (NEON_ARG_MEMORY): New builtin_arg.
19346 (neon_dereference_pointer): New function.
19347 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
19348 Handle NEON_ARG_MEMORY.
19349 (arm_expand_neon_builtin): Update after above interface changes.
19350 Use NEON_ARG_MEMORY for loads and stores.
19351 * config/arm/predicates.md (neon_struct_operand): New predicate.
19352 * config/arm/iterators.md (V_two_elem): Tweak formatting.
19353 (V_three_elem): Use BLKmode for accesses that have no associated mode.
19354 (V_four_elem): Tweak formatting.
19355 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
19356 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
19357 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
19358 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
19359 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
19360 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
19361 (neon_vst4<mode>): Replace pointer operand with a memory operand.
19362 Use %A in the output template.
19363 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
19364 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
19365 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
19366 the width of the memory access. Remove post-increment.
19367 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
19368
e5db8f2f
NC
193692011-04-12 Nick Clifton <nickc@redhat.com>
19370
19371 * config/v850/v850.c (expand_prologue): Do not use the CALLT
19372 instruction for interrupt handlers if the target is the basic V850
19373 architecture.
19374 (expand_epilogue): Likewise.
19375
74f091d6
JJ
193762011-04-12 Jakub Jelinek <jakub@redhat.com>
19377
19378 PR rtl-optimization/48549
19379 * combine.c (propagate_for_debug): Also stop after BB_END of
19380 this_basic_block. Process LAST and just stop processing after it.
19381 (combine_instructions): If last_combined_insn has been deleted,
19382 set last_combined_insn to its PREV_INSN.
19383
f20ca725
RG
193842011-04-12 Richard Guenther <rguenther@suse.de>
19385
19386 PR tree-optimization/46076
19387 * gimple.h (struct gimple_statement_call): Add fntype field.
19388 (gimple_call_fntype): Adjust.
19389 (gimple_call_set_fntype): New function.
19390 * gimple.c (gimple_build_call_1): Set the call function type.
19391 * gimplify.c (gimplify_call_expr): Preserve the function
19392 type the frontend used for the call.
19393 (gimplify_modify_expr): Likewise.
19394 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
19395 function type.
19396 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
19397 function type.
19398 * tree-ssa.c (useless_type_conversion_p): Function pointer
19399 conversions are useless.
19400
a358e188
MJ
194012011-04-12 Martin Jambor <mjambor@suse.cz>
19402
19403 * cgraph.h (cgraph_node): Remove function declaration.
19404 (cgraph_create_node): Declare.
19405 (cgraph_get_create_node): Likewise.
19406 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
19407 Updated all callers.
19408 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
19409 the decl does not already exist. Call cgraph_get_create_node instead
19410 of cgraph_node.
19411 (cgraph_get_create_node): New function.
19412 (cgraph_same_body_alias): Update comment.
19413 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
19414 assert it does not return NULL.
19415 (cgraph_update_edges_for_call_stmt): Likewise.
19416 (cgraph_clone_edge): Likewise.
19417 (cgraph_create_virtual_clone): Likewise.
19418 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
19419 instead of cgraph_node.
19420 (cgraph_add_new_function): Call cgraph_create_node or
19421 cgraph_get_create_node instead of cgraph_node.
19422 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
19423 instead of cgraph_node.
19424 (record_eh_tables): Likewise.
19425 (mark_address): Likewise.
19426 (mark_load): Likewise.
19427 (build_cgraph_edges): Call cgraph_get_create_node instead
19428 of cgraph_node.
19429 (rebuild_cgraph_edges): Likewise.
19430 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
19431 instead of cgraph_node.
19432 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
19433 cgraph_node.
19434 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
19435 cgraph_create_node instead of cgraph_node.
19436 * c-decl.c (finish_function): Call cgraph_get_create_node instead
19437 of cgraph_node.
19438 * lto-cgraph.c (input_node): Likewise.
19439 * lto-streamer-in.c (input_function): Likewise.
19440 * varasm.c (mark_decl_referenced): Likewise.
19441 (assemble_alias): Likewise.
19442
fe660d7b
MJ
194432011-04-12 Martin Jambor <mjambor@suse.cz>
19444
19445 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
19446 instead of cgraph_node and assert it does not return NULL.
19447 * lto-streamer-in.c (lto_read_body): Likewise.
19448 * omp-low.c (new_omp_context): Likewise.
19449 (create_task_copyfn): Likewise.
19450 * tree-emutls.c (lower_emutls_function_body): Likewise.
19451 * matrix-reorg.c (transform_allocation_sites): Likewise.
19452
bae5cddf
JJ
194532011-04-12 Jakub Jelinek <jakub@redhat.com>
19454
19455 PR c/48552
19456 * c-typeck.c (build_asm_expr): Error out on attempts to use
19457 void type outputs or inputs for constraints that allow reg or
19458 don't allow memory.
19459
06eb52ca
CLT
194602011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
19461 Richard Earnshaw <rearnsha@arm.com>
19462
19463 PR target/48250
19464 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
19465 to use sign-magnitude offsets. Reject unsupported unaligned
19466 cases. Add detailed description in comments.
19467 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
19468 condition from TARGET_32BIT to TARGET_ARM.
19469
648a616b
NF
194702011-04-11 Nathan Froyd <froydnj@codesourcery.com>
19471
19472 * tree.h (struct typed_tree): New.
19473 (struct tree_common): Include it instead of tree_base.
19474 (TREE_TYPE): Update for new location of type field.
19475 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
19476 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
19477 (union tree_node): Add typed field.
19478 * treestruct.def (TS_TYPED): New.
19479 * lto-streamer.c (check_handled_ts_structures): Handle it.
19480 * tree.c (MARK_TS_TYPED): New macro.
19481 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
19482
1e6d1da0
EB
194832011-04-11 Eric Botcazou <ebotcazou@adacore.com>
19484
19485 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
19486 (force_nonfallthru): Do not alter the loop nest if no basic block
19487 was created.
19488
194892011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
19490
19491 * config/i386/sse.md (VI): New mode iterator.
19492 (SSEMODEI): Remove.
19493 (AVX256MODEI): Ditto.
19494 (AVXMODEF4P): Ditto.
19495 (avxvecpsmode): Ditto.
19496 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
19497 (sse2_andnot<mode>3): New expander.
19498 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
19499 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
19500 (<any_logic:code><mode>3): Use VI mode iterator.
19501 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
19502 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
19503 (*andnottf3): Handle AVX three-operand constraints.
19504 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
19505
b1372d5d 195062011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 19507 Robert Millan <rmh@gnu.org>
b1372d5d
JM
19508
19509 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
19510 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
19511 GNU_USER_DYNAMIC_LINKER64): Define.
19512 (REG_NAME): Don't undefine.
19513 (MD_UNWIND_SUPPORT): Undefine.
19514 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
19515 (REG_NAME): Don't undefine.
19516 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 19517 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 19518
761c0c6e
JM
195192011-04-11 Joseph Myers <joseph@codesourcery.com>
19520
19521 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
19522 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
19523
26e0228f
XDL
195242011-04-11 Xinliang David Li <davidxl@google.com>
19525
19526 * value-profile.c (check_ic_target): New function.
19527 (gimple_ic_transform): Sanity check indirect call target.
19528 * gimple-low.c (gimple_check_call_args): Interface change.
19529 (gimple_check_call_matching_types): New function.
19530 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
19531
195322011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
19533
19534 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
19535 tree-pretty-print.h & realmpfr.h.
19536
a58dfa49
VM
195372011-04-11 Vladimir Makarov <vmakarov@redhat.com>
19538
19539 PR middle-end/48464
19540 * ira.c (setup_pressure_classes): Fix typo in loop condition.
19541 (setup_allocno_and_important_classes): Ditto.
19542
107fd1c1
JM
195432011-04-11 Joseph Myers <joseph@codesourcery.com>
19544
19545 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
19546 GNU_USER_DYNAMIC_LINKER.
19547 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
19548 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19549 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
19550 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
19551 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
19552 GNU_USER_TARGET_OS_CPP_BUILTINS.
19553 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
19554 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19555 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
19556 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19557 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
19558 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
19559 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
19560 GNU_USER_TARGET_OS_CPP_BUILTINS.
19561 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19562 GNU_USER_DYNAMIC_LINKER.
19563 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
19564 GNU_USER_TARGET_OS_CPP_BUILTINS.
19565 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
19566 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19567 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
19568 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19569 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
19570 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
19571 GNU_USER_DYNAMIC_LINKER64): Remove.
19572 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
19573 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19574 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19575 GNU_USER_DYNAMIC_LINKER.
19576 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
19577 GNU_USER_TARGET_OS_CPP_BUILTINS.
19578 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
19579 GNU_USER_TARGET_OS_CPP_BUILTINS.
19580 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
19581 to GNU_USER_TARGET_OS_CPP_BUILTINS.
19582 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
19583 GNU_USER_TARGET_OS_CPP_BUILTINS.
19584 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
19585 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
19586 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
19587 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
19588 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19589 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19590 GNU_USER_DYNAMIC_LINKER.
19591 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
19592 GNU_USER_TARGET_OS_CPP_BUILTINS.
19593 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
19594 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19595 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19596 GNU_USER_DYNAMIC_LINKER.
19597 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
19598 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19599 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
19600 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19601 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19602 GNU_USER_DYNAMIC_LINKER.
19603 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
19604 GNU_USER_DYNAMIC_LINKERN32.
19605 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
19606 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
19607 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
19608 GNU_USER_DYNAMIC_LINKER32.
19609 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
19610 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19611 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19612 GNU_USER_DYNAMIC_LINKER.
19613 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
19614 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19615 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
19616 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 19617 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
19618 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
19619 GNU_USER_DYNAMIC_LINKER32.
19620 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
19621 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
19622 GNU_USER_DYNAMIC_LINKER.
19623 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
19624 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19625 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
19626 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
19627 GNU_USER_DYNAMIC_LINKER64.
19628 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
19629 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19630 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19631 GNU_USER_DYNAMIC_LINKER.
19632 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
19633 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19634 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
19635 GNU_USER_DYNAMIC_LINKER.
19636 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
19637 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19638 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
19639 GNU_USER_DYNAMIC_LINKER32.
19640 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
19641 GNU_USER_DYNAMIC_LINKER64.
19642 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
19643 GNU_USER_DYNAMIC_LINKER64.
19644 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
19645 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
19646 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
19647 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 19648 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 19649
e24609cf
JM
196502011-04-11 Joseph Myers <joseph@codesourcery.com>
19651
19652 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
19653 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
19654 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
19655 GNU_USER_DYNAMIC_LINKER.
19656 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
19657 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
19658 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
19659 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
19660 GNU_USER_DYNAMIC_LINKER64.
19661 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
19662 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
19663 GNU_USER_LINK_EMULATION.
19664 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
19665 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
19666 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
19667 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
19668 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
19669 CPP_SPEC, CC1_SPEC): Remove.
19670 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
19671 (GNU_USER_DYNAMIC_LINKER): Define.
19672 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
19673 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
19674 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
19675 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
19676 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
19677 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
19678 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
19679 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
19680 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
19681 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
19682 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
19683 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
19684 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
19685 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
19686 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
19687 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
19688 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
19689 GNU_USER_DYNAMIC_LINKER.
19690 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
19691 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
19692 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
19693 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
19694 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
19695 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
19696 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
19697 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
19698 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 19699 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 19700
b8ce4e94
KT
197012011-04-11 Kai Tietz <ktietz@redhat.com>
19702
19703 PR target/9601
19704 PR target/11772
19705 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
19706 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
19707 comment.
19708 (ix86_is_msabi_thiscall): Removed.
19709 (ix86_is_type_thiscall): Likewise.
19710 (ix86_get_callcvt): New function.
19711 (ix86_comp_type_attributes): Simplify check.
19712 (ix86_function_regparm): Use ix86_get_callcvt for calling
19713 convention attribute checks.
19714 (ix86_return_pops_args): Likewise.
19715 (ix86_static_chain): Likewise.
19716 (x86_this_parameter): Likewise.
19717 (x86_output_mi_thunk): Likewise.
19718 (ix86_function_type_abi): Optimize check for types without attributes.
19719 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
19720 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
19721 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
19722 by flag-values.
19723 (IX86_BASE_CALLCVT): Helper macro.
19724 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
19725 Use ix86_get_callcvt for calling convention attribute checks and avoid
19726 symbol-decoration for stdcall in TARGET_RTD case.
19727 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
19728 Likewise.
19729 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
19730 for declaration.
19731
798dd0ba
UB
197322011-04-11 Uros Bizjak <ubizjak@gmail.com>
19733
19734 * config/i386/sse.md (VI_128): New mode iterator.
19735 (VI12_128): Rename from SSEMODE12.
19736 (VI14_128): Rename from SSEMODE14.
19737 (VI124_128): New mode iterator.
19738 (VI24_128): Rename from SSEMODE248.
19739 (VI248_128): Rename from SSEMODE248.
19740 (SSEMODE124C8): Remove.
19741 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
19742 (*sse2_<plusminus_insn><mode>3): Merge with
19743 *avx_<plusminus_insn><mode>3.
19744 (*mulv8hi3): Merge with *avx_mulv8hi3.
19745 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
19746 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
19747 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
19748 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
19749 (ashr<mode>3): Merge with *avx_ashr<mode>3.
19750 (lshr<mode>3): Merge with *avx_lshr<mode>3.
19751 (ashl<mode>3): Merge with *avx_ashl<mode>3.
19752 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
19753 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
19754 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
19755 (*<smaxmin:code>v8hi3): Ditto.
19756 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
19757 (*<smaxmin:code>v16qi3): Ditto.
19758 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
19759 (*sse2_eq<mode>3): Ditto.
19760 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
19761 (*sse2_gt<mode>3): Ditto.
19762 (vcondv2di): Split out of vcond<mode>.
19763 (vconduv2di): Split out of vcondu<mode>.
19764
956011be
RG
197652011-04-11 Richard Guenther <rguenther@suse.de>
19766
19767 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
19768 before calling tree_low_cst.
19769
e6313a78
RG
197702011-04-11 Richard Guenther <rguenther@suse.de>
19771
19772 * stor-layout.c (layout_type): Compute all array index size operations
19773 in the original type.
19774 (initialize_sizetypes): Add comment.
19775 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
19776
e69d7376
JM
197772011-04-11 Joseph Myers <joseph@codesourcery.com>
19778
19779 * common.opt (Tbss=, Tdata=, Ttext=): New options.
19780
9f9ebcdf
MJ
197812011-04-11 Martin Jambor <mjambor@suse.cz>
19782
19783 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
19784 of cgraph_node, handle NULL return value.
19785 (cgraph_global_info): Likewise.
19786 (cgraph_rtl_info): Likewise.
19787 * tree-inline.c (estimate_num_insns): Likewise.
19788 * gimplify.c (unshare_body): Likewise.
19789 (unvisit_body): Likewise.
19790 (gimplify_body): Likewise.
19791 * predict.c (optimize_function_for_size_p): Likewise.
19792 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
19793 (call_may_clobber_ref_p_1): Likewise.
19794 * varasm.c (function_section_1): Likewise.
19795 (assemble_start_function): Likewise.
19796
581985d7
MJ
197972011-04-11 Martin Jambor <mjambor@suse.cz>
19798
19799 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
19800 of cgraph_node.
19801 * final.c (rest_of_clean_state): Likewise.
19802 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
19803 * passes.c (pass_init_dump_file): Likewise.
19804 (execute_all_ipa_transforms): Likewise.
19805 (function_called_by_processed_nodes_p): Likewise.
19806 * predict.c (maybe_hot_frequency_p): Likewise.
19807 (probably_never_executed_bb_p): Likewise.
19808 (compute_function_frequency): Likewise.
19809 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
19810 (unnest_nesting_tree_1): Likewise.
19811 (lower_nested_functions): Likewise.
19812 * tree-optimize.c (execute_fixup_cfg): Likewise.
19813 (tree_rest_of_compilation): Likewise.
19814 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
19815 * tree-sra.c (ipa_early_sra): Likewise.
19816 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
19817 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
19818 * ipa.c (record_cdtor_fn): Likewise.
19819 * ipa-inline.c (cgraph_early_inlining): Likewise.
19820 (compute_inline_parameters_for_current): Likewise.
19821 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
19822 * ipa-pure-const.c (local_pure_const): Likewise.
19823 * ipa-split.c (split_function): Likewise.
19824 (execute_split_functions): Likewise.
19825 * cgraphbuild.c (build_cgraph_edges): Likewise.
19826 (rebuild_cgraph_edges): Likewise.
19827 (cgraph_rebuild_references): Likewise.
19828 (remove_cgraph_callee_edges): Likewise.
19829 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
19830 (verify_cgraph_node): Likewise.
19831 (cgraph_analyze_functions): Likewise.
19832 (cgraph_preserve_function_body_p): Likewise.
19833 (save_inline_function_body): Likewise.
19834 (save_inline_function_body): Likewise.
19835 * tree-inline.c (copy_bb): Likewise.
19836 (optimize_inline_calls): Likewise.
19837
57dbdc5a
MJ
198382011-04-11 Martin Jambor <mjambor@suse.cz>
19839
19840 PR tree-optimization/48195
19841 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
19842 ipa_check_create_edge_args.
19843 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
19844 ipa_check_create_edge_args.
19845 * ipa-inline.c (inline_generate_summary): Do not call
19846 ipa_check_create_node_params and ipa_check_create_edge_args.
19847 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
19848 ipa_check_create_edge_args.
19849
d108e679
AS
198502011-04-09 Anatoly Sokolov <aesok@post.ru>
19851
19852 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
19853 instead of loop.
19854 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
19855 * function.c (record_hard_reg_sets): Likewise.
19856 * ira.c (compute_regs_asm_clobbered): Likewise.
19857 * sched-deps.c (sched_analyze_1): Likewise.
19858 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
19859
3411bc59
XDL
198602011-04-09 Xinliang David Li <davidxl@google.com>
19861
19862 PR tree-optimization/PR48484
19863 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
19864 has_valid_pred lazily
19865
b365495a
DS
198662011-04-09 Duncan Sands <baldrick@free.fr>
19867
19868 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
19869
68bc509a
EB
198702011-04-08 Eric Botcazou <ebotcazou@adacore.com>
19871
19872 * combine.c (combine_validate_cost): Adjust comments. Set registered
19873 cost of I0 to zero at the end, if any.
19874
041e059f
XDL
198752011-04-08 Xinliang David Li <davidxl@google.com>
19876
68bc509a
EB
19877 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
19878 to insane profile data.
041e059f 19879
444b3995
XDL
198802011-04-08 Xinliang David Li <davidxl@google.com>
19881
19882 * ipa-cp.c (ipcp_update_profiling): Correct
19883 negative scale factor due to insane profile data.
19884
6a801cf2
XDL
198852011-04-08 Xinliang David Li <davidxl@google.com>
19886
19887 * final.c (dump_basic_block_info): New function.
19888 (final): Dump basic block.
19889 (final_scan_insn): Remove old dump.
19890
d5f3624e
SK
198912011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
19892
68bc509a
EB
19893 PR target/47829
19894 * config.gcc (i386-*-freebsd): Disable unwind table generation for
19895 crtbegin/crtend.
d5f3624e 19896
42821aff
MM
198972011-04-08 Michael Matz <matz@suse.de>
19898
19899 PR middle-end/48389
19900 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
19901 functions.
19902 (rebuild_jump_labels): Call rebuild_jump_labels_1.
19903 * rtl.h (rebuild_jump_labels_chain): Declare.
19904 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
19905 insns inserted on edges.
19906
ad7be009
JM
199072011-04-08 Joseph Myers <joseph@codesourcery.com>
19908
19909 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
19910 * config/arm/arm-arches.def: New.
19911 * config/arm/arm-opts.h: New.
19912 * config/arm/genopt.sh: New.
19913 * config/arm/arm-tables.opt: New (generated).
19914 * config/arm/arm.c (arm_handle_option, arm_target_help,
19915 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
19916 (all_architectures): Get most table contents from arm-arches.def.
19917 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
19918 arm_selected_tune here.
19919 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
19920 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
19921 (march=, mcpu=, mtune=): Use Enum and Var.
19922 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
19923 (arm.o): Update dependencies.
ecbb6fb7 19924
42821aff 199252011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
19926
19927 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
19928 of header_file.
19929 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
19930 (write_typed_alloc_defns): Likewise.
19931 (main): Calls write_typed_alloc_defns with output_header.
19932
8d189b3f
VM
199332011-04-08 Vladimir Makarov <vmakarov@redhat.com>
19934
68bc509a 19935 PR inline-asm/48435
8d189b3f
VM
19936 * ira-color.c (setup_profitable_hard_regs): Add comments.
19937 Don't take prohibited hard regs into account.
19938 (setup_conflict_profitable_regs): Rename to
19939 get_conflict_profitable_regs.
19940 (check_hard_reg_p): Check prohibited hard regs.
19941
44f370bf
NF
199422011-04-08 Nathan Froyd <froydnj@codesourcery.com>
19943
19944 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
19945 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
19946 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
19947
483d7ad3
JDA
199482011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19949
19950 PR target/48366
19951 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 19952 move from floating point to shift amount register.
483d7ad3
JDA
19953 (emit_move_sequence): Remove secondary reload support for floating
19954 point to shift amount amount register copies.
19955 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
19956 amount register copies.
19957 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
19958 register, return false if mode isn't a scalar integer mode.
19959 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
19960
97e03fa1
RG
199612011-04-08 Richard Guenther <rguenther@suse.de>
19962
19963 * gimple.c (gimple_call_flags): Remove kludge.
19964
9d40778b
AM
199652011-04-08 Alexander Monakov <amonakov@ispras.ru>
19966
19967 * sel-sched.c (sel_region_init): Move call to
19968 sel_setup_region_sched_flags after setup_current_loop_nest.
19969
19ac7892
AB
199702011-04-08 Andrey Belevantsev <abel@ispras.ru>
19971
19972 PR rtl-optimization/48272
19ac7892
AB
19973 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
19974 init_insn_reg_pressure_info. Adjust a caller.
19975 * sched-int.h (init_insn_reg_pressure_info): Declare.
19976 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
19977 when sched-pressure is enabled.
19978
0f8c63cc
RG
199792011-04-08 Richard Guenther <rguenther@suse.de>
19980
19981 * gimple.c (gimple_set_modified): Do not queue calls to
19982 MODIFIED_NORETURN_CALLS here ...
19983 * tree-ssa-operands.c (update_stmt_operands): ... but here.
19984
5e5a425e
RG
199852011-04-08 Richard Guenther <rguenther@suse.de>
19986
19987 PR lto/48467
19988 * toplev.c (lang_dependent_init): Do not open asm_out_file
19989 in WPA mode, nor perform debug machinery initialization.
19990 (finalize): Do not unlink asm_out_file in WPA mode.
19991
9bfc434b
RG
199922011-04-08 Richard Guenther <rguenther@suse.de>
19993
19994 * gimple.h (gimple_call_fntype): New function.
19995 (gimple_call_return_type): Use it.
19996 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
19997 * gimple-low.c (gimple_check_call_args): Likewise.
19998 * gimple.c (gimple_call_flags): Likewise.
19999 (gimple_call_arg_flags): Likewise.
20000 (gimple_call_return_flags): Likewise.
20001 * tree-cfg.c (verify_gimple_call): Likewise.
20002 (do_warn_unused_result): Likewise.
20003 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
20004 * value-prof.c (gimple_ic_transform): Fix fndecl check.
20005
7c1f0b40
DM
200062011-04-08 Dmitry Melnik <dm@ispras.ru>
20007
20008 PR rtl-optimization/48235
20009 * sel-sched.c (code_motion_process_successors): Recompute the last
20010 insn in basic block if control flow changed.
20011 (code_motion_path_driver): Ditto. Recompute the first insn as well.
20012 Update condition for ilist_remove.
20013
ea4d630f
AM
200142011-04-08 Alexander Monakov <amonakov@ispras.ru>
20015
20016 PR rtl-optimization/48302
20017 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
20018 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
20019 it to record added preheader blocks.
20020 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
20021 on to sel_add_loop_preheaders.
20022 (sel_region_init): Move call to setup_current_loop_nest after
20023 sel_init_bbs.
20024
07643d76
AM
200252011-04-08 Alexander Monakov <amonakov@ispras.ru>
20026
20027 PR target/48273
20028 * cfgloop.h (loop_has_exit_edges): New helper.
20029 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
20030 non-clonable.
20031 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
20032 that have no exit edges.
20033
1f3b2b4e
AM
200342011-04-08 Alexander Monakov <amonakov@ispras.ru>
20035
20036 PR rtl-optimization/48442
20037 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
20038 all callers. Adjust assert.
20039
554f1948
JJ
200402011-04-08 Jakub Jelinek <jakub@redhat.com>
20041
20042 PR tree-optimization/48377
20043 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
20044 is_packed to true even for types with smaller TYPE_ALIGN than
20045 TYPE_SIZE.
20046
ddf72388
RG
200472011-04-08 Richard Guenther <rguenther@suse.de>
20048
20049 PR bootstrap/48513
20050 * doc/tm.texi: Re-generate.
20051
0c27e2d8
WG
200522011-04-08 Wei Guozhi <carrot@google.com>
20053
20054 PR target/47855
20055 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
20056 * config/arm/arm.c (arm_attr_length_push_multi): New function.
20057 * config/arm/arm.md (*push_multi): Change the length computation to
20058 call a C function.
20059
07c5f94e
AS
200602011-04-08 Anatoly Sokolov <aesok@post.ru>
20061
20062 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
20063 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
20064 * doc/tm.texi: Regenerate.
20065 * system.h (ASM_OUTPUT_BSS): Poison.
20066 * varasm.c (asm_output_bss): Remove function.
20067 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 20068
07c5f94e
AS
20069 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
20070 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
20071 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
20072 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
20073 Likewise.
20074 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
20075 Likewise.
20076 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
20077 Likewise.
20078 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
20079
5f2c36e1
JM
200802011-04-07 Joseph Myers <joseph@codesourcery.com>
20081
20082 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
20083 EnumValue lines.
20084
39e7722b
JM
200852011-04-07 Joseph Myers <joseph@codesourcery.com>
20086
20087 * config/m68k/m68k.c (m68k_handle_option): Don't handle
20088 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
20089 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
20090 OPT_mcpu32.
20091 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
20092 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
20093 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
20094 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
20095 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
20096 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
20097 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
20098 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
20099 options. Don't map other m68k options manually. Don't handle
20100 old-style options as canonical.
20101 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 20102 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 20103
cf103ca4
EB
201042011-04-07 Eric Botcazou <ebotcazou@adacore.com>
20105
20106 * basic-block.h (force_nonfallthru): Move to...
20107 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
20108 (force_nonfallthru): ...here.
20109 * cfghooks.c (force_nonfallthru): New function.
20110 * cfgrtl.c (force_nonfallthru): Rename into...
20111 (rtl_force_nonfallthru): ...this.
20112 (commit_one_edge_insertion): Do not set AUX field.
20113 (commit_edge_insertions): Do not discover new basic blocks.
20114 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
20115 (cfg_layout_rtl_cfg_hooks): Likewise.
20116 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
20117 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
20118 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
20119
14431f58
AS
201202011-04-07 Anatoly Sokolov <aesok@post.ru>
20121
20122 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
20123 Remove macros.
20124
3729983c
UB
201252011-04-07 Uros Bizjak <ubizjak@gmail.com>
20126
20127 * config/i386/sse.md: Update copyright year.
20128 (avxcvtvecmode): Remove.
20129 (sse_movhlps): Merge with *avx_movhlps.
20130 (sse_movlhps): Merge with *avx_movlhps.
20131 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
20132 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
20133 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
20134 (sse_loadhps): Merge with *avx_loadhps.
20135 (sse_storelps): Merge with *avx_storelps.
20136 (sse_loadlps): Merge with *avx_loadlps.
20137 (sse_movss): Merge with *avx_movss.
20138 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
20139 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
20140 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
20141 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
20142 (vec_set<mode>_0): Ditto.
20143 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
20144 (sse4_1_insertps): Merge with *avx_insertps.
20145 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
20146 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
20147 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
20148 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
20149 (sse2_storehpd): Merge with *avx_storehpd.
20150 (sse2_loadhpd): Merge with *avx_loadhpd.
20151 (sse2_loadlpd): Merge with *avx_loadlpd.
20152 (sse2_movsd): Merge with *avx_movsd.
20153 (*vec_concatv2df): Merge with *vec_concatv2df.
20154
4e626909
JJ
201552011-04-07 Jakub Jelinek <jakub@redhat.com>
20156
20157 PR debug/48343
20158 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 20159 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
20160 (try_combine): Add last_combined_insn parameter, pass it instead of
20161 i3 to propagate_for_debug.
20162
3729983c 201632011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
20164
20165 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
20166 to handle MDR <-> data register transfers.
20167 (movhi_internal): Likewise.
20168
20c03367
AM
201692011-04-07 Alan Modra <amodra@gmail.com>
20170
20171 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
20172 previous stack info.
20173
bf22920b
TV
201742011-04-07 Tom de Vries <tom@codesourcery.com>
20175
20176 PR target/43920
20177 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
20178 flow_find_cross_jump. Swap variables to implement backward replacement.
20179 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
20180
823918ae
TV
201812011-04-07 Tom de Vries <tom@codesourcery.com>
20182
20183 PR target/43920
20184 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
20185 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
20186 and bb2.
20187 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
20188 src1 or src2. Redirect edges to the last basic block. Update
20189 frequency and count on multiple basic blocks in case of fallthru.
823918ae 20190
472c95f5
TV
201912011-04-07 Tom de Vries <tom@codesourcery.com>
20192
20193 PR target/43920
20194 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
20195 function.
3729983c
UB
20196 (old_insns_match_p): Change return type. Replace return false/true
20197 with return dir_none/dir_both. Use can_replace_by.
20198 (flow_find_cross_jump): Add dir_p parameter. Init replacement
20199 direction from dir_p. Register replacement direction in dir, last_dir
20200 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
20201 merge_dir. Return replacement direction in dir_p.
20202 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
20203 return type of old_insns_match_p.
20204 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
20205 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
20206 flow_find_cross_jump.
20207 * basic-block.h (enum replace_direction): New type.
20208 (flow_find_cross_jump): Add parameter to declaration.
20209
a95d4000
UB
202102011-04-06 Uros Bizjak <ubizjak@gmail.com>
20211
20212 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
20213 (AVXMODEDCVTPS2DQ): Ditto.
20214 (VEC_FLOAT_MODE): Ditto.
20215 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
20216 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
20217 (<any_logic:code><mode>3): Use VF mode iterator.
20218 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
20219 Use VF mode iterator.
20220 (copysign<mode>3): Use VF mode iterator.
20221 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
20222 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
20223 (*<any_logic:code><MODEF:mode>3): Merge with
20224 *avx_<any_logic:code><MODEF:mode>3.
20225 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
20226 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
20227 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
20228 (avx_cvtdq2ps<avxmodesuffix>): Remove.
20229 (sse2_cvtdq2ps): Use %v modifier.
20230 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
20231 (avx_cvtps2dq<avxmodesuffix>): Remove.
20232 (sse2_cvtps2dq): Use %v modifier.
20233 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
20234 (avx_cvttps2dq<avxmodesuffix>): Remove.
20235 (sse2_cvttps2dq): Use %v modifier.
20236 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
20237 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
20238 (sse2_cvtsd2siq): Fix insn template.
20239 (sse2_cvtsd2siq_2): Ditto.
20240 (sse2_cvttsd2siq): Ditto.
20241 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
20242 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
20243
ad01c437
JM
202442011-04-06 Joseph Myers <joseph@codesourcery.com>
20245
20246 * gcov-io.c: Use GCC Runtime Library Exception.
20247
fe846284
JJ
202482011-04-06 Jakub Jelinek <jakub@redhat.com>
20249
20250 PR debug/48466
20251 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
20252 as base_reg whatever register reg has been eliminated to, instead
20253 of hardcoding STACK_POINTER_REGNUM.
20254
acce4e77
JM
202552011-04-06 Joseph Myers <joseph@codesourcery.com>
20256
20257 * doc/tm.texi.in: Document C target hooks as separate from general
20258 target hooks.
20259 * doc/tm.texi: Regenerate.
20260 * genhooks.c (struct hook_desc): Add docname field.
20261 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
20262 docname field.
20263 (hook_array): Include c-target.def.
20264 (emit_documentation): Use docname field in output.
20265 (emit_init_macros): Take docname argument. Only emit definitions
20266 for hooks matching docname.
20267 (main): Expect additional arguments in all cases. Pass argument
20268 to emit_init_macros.
20269 * target.def: Move initial macro definitions and comments to
20270 target-hooks-macros.h.
20271 (gcc_targetcm): Move to c-family/c-target.def.
20272 * target.h (targetcm): Move declaration to c-family/c-target.h.
20273 * targhooks.c (default_handle_c_option): Move to
20274 c-family/c-opts.c.
20275 * targhooks.h (default_handle_c_option): Move declaration to
20276 c-family/c-common.h.
20277 * target-hooks-macros.h: New file.
20278 * config.gcc (target_has_targetcm): Define and use to add to
20279 c_target_objs and cxx_target_objs.
20280 * config/default-c.c: New file.
20281 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
20282 of target.h and target-def.h.
20283 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
20284 (darwin_objc_construct_string, darwin_cfstring_ref_p,
20285 darwin_check_cfstring_format_arg): Make static.
20286 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
20287 TARGET_STRING_OBJECT_REF_TYPE_P,
20288 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
20289 * config/darwin-protos.h (darwin_objc_construct_string,
20290 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
20291 declare.
20292 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
20293 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 20294 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
20295 * config/t-darwin (darwin-c.o): Update dependencies.
20296 * system.h (TARGET_HAS_TARGETCM): Poison.
20297 * Makefile.in (TARGET_H): Update.
20298 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
20299 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
20300 (default-c.o): New target.
20301 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 20302 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
20303 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
20304 c-target.def.
20305 (build/genhooks.o): Update dependencies.
20306
275b4baa 203072011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 20308
275b4baa
RG
20309 * ipa-inline.c (enum inlining_mode): Remove.
20310 (cgraph_flatten): Use some other token.
20311 (cgraph_edge_early_inlinable_p): New function, split out from ...
20312 (cgraph_perform_always_inlining): New function, split out from ...
20313 (cgraph_decide_inlining_incrementally): ... here.
20314 (cgraph_mark_inline_edge): Adjust.
20315 (cgraph_early_inlining): Re-structure.
20316 (pass_early_inline): Require SSA form.
20317
f15b8bdf 203182011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
20319 Julian Brown <julian@codesourcery.com>
20320 Mark Shinwell <shinwell@codesourcery.com>
20321
20322 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
20323 LO_REGS only for Thumb-1.
20324 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
20325 be used in short instructions when optimising for size on Thumb-2.
20326
516426da
EB
203272011-04-06 Eric Botcazou <ebotcazou@adacore.com>
20328
20329 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
20330 associated with user returns to be preserved.
20331
96621ebf
TG
203322011-04-06 Tristan Gingold <gingold@adacore.com>
20333
f15b8bdf
EB
20334 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
20335 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
20336 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
20337 if XCOFF_DEBUGGING_INFO.
20338
07c0852e
UB
203392011-04-06 Uros Bizjak <ubizjak@gmail.com>
20340
20341 * config/i386/i386.md (attribute isa): New.
20342 (attribute enabled): New.
20343 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
20344 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
20345 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
20346 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
20347 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
20348 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
20349 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
20350 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
20351
20352 * config/i386/sse.md (VF): New mode iterator.
20353 (VF1): Ditto.
20354 (VF2): Ditto.
20355 (VF_128): Ditto.
20356 (SSEMODEF4): Remove.
20357 (attribute sse): Handle V8SF and V4DF modes.
20358 (<absneg:code><mode>2): Use VF mode iterator.
20359 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
20360 mode iterator.
20361 (<plusminus_insn><mode>3): Use VF mode iterator.
20362 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
20363 Use VF mode iterator.
20364 (<sse>_vm<plusminus_insn><mode>3): Merge with
20365 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
20366 (mul<mode>3): Use VF mode iterator.
20367 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
20368 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
20369 mode iterator.
20370 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
20371 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
20372 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
20373 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
20374 mode iterator.
20375 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
20376 Use VF1 mode iterator.
20377 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
20378 (sqrt<VF2:mode>2): New expander.
20379 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
20380 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
20381 and sqrtv2df2. Use VF mode iterator.
20382 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
20383 mode iterator.
20384 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
20385 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
20386 Use VF1 mode iterator.
20387 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
20388 (<smaxmin:code><mode>3): Use VF mode iterator.
20389 (*<smaxmin:code><mode>3_finite): Merge with
20390 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
20391 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
20392 (<sse>_vm<smaxmin:code><mode>2): Merge with
20393 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
20394 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
20395 mode iterator.
20396 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
20397 mode iterator.
20398 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
20399 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
20400 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
20401 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
20402 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
20403 VF mode iterator.
20404 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
20405 Use VF_128 mode iterator.
20406 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
20407 mode iterator.
20408 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
20409 VF_128 mode iterator.
20410 (vcond<mode>): Use VF mode iterator.
20411 * config/i386/predicates.md (sse_comparison_operator): Merge with
20412 avx_comparison_float_operator. Do not declare as special_predicate.
20413 * config/i386/i386.c (struct builtin_description): Update for renamed
20414 compare patterns.
20415 (ix86_expand_args_builtin): Ditto.
20416 (ix86_expand_sse_compare_mask): Ditto.
20417
ff5d142c
RG
204182011-04-06 Richard Guenther <rguenther@suse.de>
20419
20420 * tree-inline.c (estimate_num_insns): For calls simply account
20421 for all passed arguments and a used return value.
20422
d7d1d041 204232011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 20424
d7d1d041
RG
20425 PR tree-optimization/47663
20426 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
20427 call_stmt_time fields.
20428 (cgraph_edge_inlinable_p): Declare.
20429 (cgraph_edge_recursive_p): New inline function.
20430 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
20431 (cgraph_clone_edge): Copy it.
20432 * ipa-inline.c (cgraph_estimate_edge_time): New function.
20433 Account for call stmt time.
20434 (cgraph_estimate_time_after_inlining): Take edge argument.
20435 (cgraph_estimate_edge_growth): Account call stmt size.
20436 (cgraph_estimate_size_after_inlining): Take edge argument.
20437 (cgraph_mark_inline_edge): Adjust.
20438 (cgraph_check_inline_limits): Likewise.
20439 (cgraph_recursive_inlining_p): Remove.
20440 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
20441 (cgraph_decide_recursive_inlining): Take edge argument and
20442 adjust.
20443 (cgraph_decide_inlining_of_small_functions): Do not avoid
20444 diags for recursive inlining here.
20445 (cgraph_flatten): Adjust.
20446 (cgraph_decide_inlining_incrementally): Likewise.
20447 (estimate_function_body_sizes): Remove call cost handling.
20448 (compute_inline_parameters): Initialize caller edge call costs.
20449 (cgraph_estimate_edge_growth): New function.
20450 (cgraph_estimate_growth): Use it.
20451 (cgraph_edge_badness): Likewise.
20452 (cgraph_check_inline_limits): Take an edge argument.
20453 (cgraph_decide_inlining_of_small_functions): Adjust.
20454 (cgraph_decide_inlining): Likewise.
20455 * tree-inline.c (estimate_num_insns): Only account for call
20456 return value if it is used.
20457 (expand_call_inline): Avoid diagnostics on recursive inline
20458 functions here.
20459 * lto-cgraph.c (lto_output_edge): Output edge call costs.
20460 (input_edge): Input edge call costs.
20461
2feb95f7
RO
204622011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20463
20464 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
20465
26fbd9c2
JW
204662011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
20467
20468 * doc/invoke.texi (Spec Files): Fix typo.
20469
694dc0ca
EB
204702011-04-06 Eric Botcazou <ebotcazou@adacore.com>
20471
20472 * profile.c (branch_prob): Move declaration of local variable. Remove
20473 obsolete ??? comment. Expand the location explicitly instead of using
20474 the LOCATION_FILE and LOCATION_LINE macros.
20475
4925d0d5
WG
204762011-04-06 Wei Guozhi <carrot@google.com>
20477
20478 PR target/47855
20479 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
20480 (arm_cond_branch): Likewise.
20481 (arm_cond_branch_reversed): Likewise.
20482 (arm_jump): Likewise.
20483 (push_multi): Likewise.
20484 * config/arm/constraints.md (Py): New constraint.
20485
f55dfa2f
NF
204862011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20487
20488 PR bootstrap/48471
20489 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
20490 Move these...
20491 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
20492 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
20493 #ifdef DBX_DEBUGGING_INFO.
20494
fca96842
BS
204952011-04-05 Bernd Schmidt <bernds@codesourcery.com>
20496
20497 PR bootstrap/48403
20498 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
20499 if old and new states differ.
20500
30b83e38
JM
205012011-04-05 Joseph Myers <joseph@codesourcery.com>
20502
20503 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
20504 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
20505 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
20506 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
20507 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
20508 mcfv4e): Use Alias.
20509 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
20510 ColdFire options to -mcpu= options.
20511
277a9aa5
JL
205122011-04-05 Jeff Law <law@redhat.com>
20513
20514 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
20515 check if BB is a successor of LOOP->header and return
20516 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
20517
c1e2610e
SB
205182011-04-05 Steven Bosscher <steven@gcc.gnu.org>
20519
20520 * cprop.c (struct reg_use): Remove.
20521 (reg_use_table): Make an array of RTX.
20522 (find_used_regs, constprop_register, local_cprop_pass,
20523 bypass_block): Simplify users of reg_use_table.
20524 (cprop_insn): Likewise. Iterate if copy propagation succeeded
20525 on one of the uses found by find_used_regs.
20526
e532f586
NF
205272011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20528
20529 PR bootstrap/48469
20530 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
20531 declaration.
20532
3fb7c055
NF
205332011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20534
20535 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
20536 as an rtx.
20537 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
20538
b71b43d9
SB
205392011-04-05 Steven Bosscher <steven@gcc.gnu.org>
20540
20541 PR middle-end/48441
20542 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
20543
b405b274
NF
205442011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20545
20546 * combine.c: Include obstack.h.
20547 (struct insn_link): Define.
20548 (uid_log_links): Adjust type.
20549 (FOR_EACH_LOG_LINK): New macro.
20550 (insn_link_obstack): Declare.
20551 (alloc_insn_link): Define.
20552 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
20553 type of link variables.
20554 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
20555 (try_combine, record_promoted_values, distribute_notes): Likewise.
20556 (distribute_links): Likewise. Tweak prototype.
20557 (clear_log_links): Delete.
20558 (adjust_for_new_dest): Call alloc_insn_link.
20559 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
20560
6409abe3
NF
205612011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20562
20563 * gcse.c (modify_mem_list): Convert to an array of VECs.
20564 (canon_modify_mem_list, compute_transp): Tweak formatting.
20565 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
20566 (load_killed_in_block_p): Likewise.
20567 (record_last_mem_set_info): Likewise.
20568 (clear_modify_mem_tables): Likewise.
20569
170d8157
TV
205702011-04-05 Tom de Vries <tom@codesourcery.com>
20571
20572 PR middle-end/48461
20573 * function.c (emit_use_return_register_into_block): Only define if
20574 HAVE_return.
20575
c5911a55
EB
205762011-04-05 Eric Botcazou <ebotcazou@adacore.com>
20577
20578 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
20579
abd016e6
JM
205802011-04-05 Joseph Myers <joseph@codesourcery.com>
20581
20582 * config/rx/rx-opts.h: New.
20583 * config/rx/rx.c (rx_cpu_type): Remove.
20584 (rx_handle_option): Don't assert that global structures are in
20585 use. Access variables via opts pointer. Defer most handling of
20586 OPT_mint_register_. Use error_at.
20587 (rx_option_override): Handle deferred OPT_mint_register_ here.
20588 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
20589 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
20590 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
20591 (rx_cpu_types): New Enum and EnumValue entries.
20592 (mint-register=): Use Defer and use Var accordingly.
20593
1ed13f83
NF
205942011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20595
20596 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
20597 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
20598 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
20599 Move these...
20600 (debug_free_queue, debug_nesting, symbol_queue_index):
20601 ...and these...
20602 * dbxout.c: ...to here. Make static.
20603
6ce1edcf
NF
206042011-04-05 Nathan Froyd <froydnj@codesourcery.com>
20605
20606 * gcse.c (modify_pair): Define. Define a VEC of it.
20607 (canon_modify_mem_list): Convert to an array of VECs.
20608 (free_insn_expr_list_list): Delete.
20609 (clear_modify_mem_tables): Call VEC_free instead.
20610 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
20611 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
20612 (canon_list_insert, compute_transp): Likewise.
20613
c201ac94
TV
206142011-04-05 Tom de Vries <tom@codesourcery.com>
20615
20616 PR target/43920
20617 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
20618 for size.
20619
4c029f40
TV
206202011-04-05 Tom de Vries <tom@codesourcery.com>
20621
20622 PR target/43920
20623 * function.c (emit_use_return_register_into_block): New function.
20624 (thread_prologue_and_epilogue_insns): Use
20625 emit_use_return_register_into_block.
20626
2a562b0a
TV
206272011-04-05 Tom de Vries <tom@codesourcery.com>
20628
20629 PR target/43920
20630 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
20631 insn.
20632
0248bceb
TV
206332011-04-05 Tom de Vries <tom@codesourcery.com>
20634
20635 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
20636
ffa94123
YZ
206372011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
20638
798dd0ba
UB
20639 * config/arm/arm.md (define_constants for unspec): Replace with
20640 define_c_enum.
20641 (define_constants for unspecv): Replace with define_c_enum.
20642 * config/arm/neon.md (define_constants for unspec): Replace with
20643 define_c_enum.
ffa94123 20644
3b8f9b46
RH
206452011-04-04 Richard Henderson <rth@redhat.com>
20646
720cf80f 20647 PR bootstrap/48400
3b8f9b46
RH
20648 * dwarf2out.c (output_line_info): Always emit line info from
20649 at least one section.
20650 (dwarf2out_init): Create text_section_line_info here ...
20651 (set_cur_line_info_table): ... not here.
20652
720cf80f 206532011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
20654
20655 PR target/48380
20656 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 20657 not called.
e5b0e1ca 20658
720cf80f 20659 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 20660
196565d4
SB
206612011-04-04 Steven Bosscher <steven@gcc.gnu.org>
20662
b77f9eab
SB
20663 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
20664 (expr_equiv_p): Remove.
20665 (insert_set_in_table): Look at <dest, src> pair instead of expr.
20666 (hash_scan_set): Update call to insert_set_in_table.
20667 (dump_hash_table): Dump <dest, src> pair.
20668 (lookup_set): Simplify. Lookup <dest, src> pair.
20669 (compute_transp): Remove, fold heavily simplified code into...
20670 (compute_local_properties): ...here. Expect COMP and TRANSP
20671 unconditionally.
20672 (find_avail_set): Take set directly from struct expr.
20673 (find_bypass-set): Likewise.
20674 (bypass_block): Likewise.
20675 (cprop_insn): Likewise. Remove redundant INSN_P test.
20676
384d7a55
SB
20677 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
20678 checks on form of COND from find_implicit_sets to here.
20679 (find_implicit_sets): Cleanup control flow. Split critical edges
20680 if it exposes implicit sets. Allocate/resize implicit_sets as
20681 necessary.
20682 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
20683 changed something. Run df_analyze after find_implicit_sets if any
20684 edges were split. Do not allocate implicit_sets here.
20685
3084ce69
SB
20686 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
20687 (gcse_obstack): Renamed to cprop_obstack.
20688 (GNEW, GNEWVEC, GNEWVAR): Remove.
20689 (gmalloc): Remove.
20690 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
20691 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
20692 (gcse_alloc): Likewise, and rename to cprop_alloc.
20693 (alloc_gcse_men, free_gcse_mem): Remove.
20694 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
20695 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
20696 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
20697
196565d4
SB
20698 * cprop.c (oprs_not_set_p): Remove.
20699 (mark_set, mark_clobber): Remove.
20700 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
20701 (reg_not_set_p): New function.
20702 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
20703 (cprop_insn): Likewise.
20704 (cprop_jump): Use FOR_EACH_EDGE.
20705
9b69cf83
BS
207062011-04-04 Bernd Schmidt <bernds@codesourcery.com>
20707
20708 PR bootstrap/48403
20709 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
20710 (rank_for_schedule): Use scheduled_insns vector instead of
20711 last_scheduled_insn.
20712 (ok_for_early_queue_removal): Likewise.
20713 (queue_to_ready): Search forward in nonscheduled_insns_begin if
20714 we have a dbg_cnt.
20715 (choose_ready): Likewise.
20716 (commit_schedule): Use VEC_iterate.
20717 (schedule_block): Initialize nonscheduled_insns_begin. If we have
20718 a dbg_cnt, use it and ensure the first insn is in the ready list.
20719 (haifa_sched_init): Allocate scheduled_insns.
20720 (sched_extend_ready_list): Don't allocate it; reserve space.
20721 (haifa_sched_finish): Free it.
20722
24f48c2f
JM
207232011-04-04 Joseph Myers <joseph@codesourcery.com>
20724
20725 * optc-gen.awk: Always remove type from Variable entry before
20726 recording in var_seen.
20727
8effe856
EB
207282011-04-04 Eric Botcazou <ebotcazou@adacore.com>
20729
20730 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
20731 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
20732 call to tidy_fallthru_edges.
20733
413519ae
JM
207342011-04-04 Joseph Myers <joseph@codesourcery.com>
20735
20736 * doc/options.texi (ToLower): Document.
3729983c 20737 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
20738 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
20739 * opts.h (cl_option): Add cl_tolower field.
20740 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
20741 arguments with lowercase strings.
20742 * config/rx/rx.opt (mcpu=): Add ToLower.
20743 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
20744 argument.
20745
7d34a1b0
RS
207462011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
20747
20748 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
20749
c30e7434
RS
207502011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
20751
20752 * config/vax/vax.c: Include reload.h.
20753
112a861d
AS
207542011-04-04 Anatoly Sokolov <aesok@post.ru>
20755
20756 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
20757 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
20758 (sparc_preferred_reload_class): New function.
20759
e8c6bb74
JJ
207602011-04-04 Jakub Jelinek <jakub@redhat.com>
20761
2aeaa366 20762 PR debug/48401
e8c6bb74
JJ
20763 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
20764 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
20765
2c081caf
NF
207662011-04-03 Nathan Froyd <froydnj@codesourcery.com>
20767
20768 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
20769 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
20770
53802f27
AS
207712011-04-03 Anatoly Sokolov <aesok@post.ru>
20772
20773 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
20774 (ASM_OUTPUT_ALIGNED_BSS): Define.
20775
e89964e3
MM
207762011-04-03 Michael Matz <matz@suse.de>
20777
20778 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
20779 and next_slot members.
20780 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
20781 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
20782 (lto_streamer_cache_append): Declare.
20783 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
20784 unsigned index, remove offset parameter, ensure that we append
20785 or update existing entries.
20786 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
20787 parameter, update next_slot for append.
20788 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
20789 parameter.
20790 (lto_streamer_cache_insert_at): Likewise.
20791 (lto_streamer_cache_append): New function.
20792 (lto_streamer_cache_lookup): Use unsigned index.
20793 (lto_streamer_cache_get): Likewise.
20794 (lto_record_common_node): Don't test tree_node_can_be_shared.
20795 (preload_common_node): Adjust call to lto_streamer_cache_insert.
20796 (lto_streamer_cache_delete): Don't free offsets member.
20797 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
20798 (lto_output_string_with_length): Use lto_output_data_stream.
20799 (lto_output_tree_header): Remove ix parameter, don't write it.
20800 (lto_output_builtin_tree): Likewise.
20801 (lto_write_tree): Adjust callers to above, don't track and write
20802 offset, write unsigned index.
20803 (output_unreferenced_globals): Don't emit all global vars.
20804 (write_global_references): Use unsigned indices.
20805 (lto_output_decl_state_refs): Likewise.
20806 (write_symbol): Likewise.
20807 * lto-streamer-in.c (lto_input_chain): Move earlier.
20808 (input_function): Use unsigned index.
20809 (input_alias_pairs): Don't read and then ignore all global vars.
20810 (lto_materialize_tree): Remove ix_p parameter, don't read index,
20811 don't pass it back, use lto_streamer_cache_append.
20812 (lto_register_var_decl_in_symtab): Use unsigned index.
20813 (lto_register_function_decl_in_symtab): Likewise.
20814 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
20815 index.
20816 (lto_get_builtin_tree): Don't read index, use
20817 lto_streamer_cache_append.
20818 (lto_read_tree): Adjust call to lto_materialize_tree.
20819
20820 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
20821 don't use function calls in arguments to MIN.
20822
20823 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
20824 twice.
20825
20826 * gimple.c (gimple_type_leader_entry): Mark deletable.
20827
b9a5b5b2
AM
208282011-04-03 Alan Modra <amodra@gmail.com>
20829
20830 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
20831
ac6a641b
MM
208322011-04-03 Michael Matz <matz@suse.de>
20833
20834 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
20835 an integer.
20836 * tree.h (tree_decl_non_common.vindex): Adjust comment.
20837
0038d4e0
MM
208382011-04-03 Michael Matz <matz@suse.de>
20839
e9c18386 20840 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
20841 * gimple-fold.c (canonicalize_constructor_val): Accept being called
20842 without function context.
20843 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
20844 current_function_decl and cfun.
20845
91f2fae8
MM
208462011-04-03 Michael Matz <matz@suse.de>
20847
20848 * tree.c (decl_init_priority_insert): Don't create entry for
20849 default priority.
20850 (decl_fini_priority_insert): Ditto.
20851 (fields_compatible_p, find_compatible_field): Remove.
20852 * tree.h (fields_compatible_p, find_compatible_field): Remove.
20853 * gimple.c (gimple_compare_field_offset): Adjust block comment.
20854
da29e070
EB
208552011-04-03 Eric Botcazou <ebotcazou@adacore.com>
20856
20857 * combine.c (try_combine): Remove useless local variable.
20858
4979c28b 208592011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 20860 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
20861
20862 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
20863 non-variable offsets and compare the remaining bases of the two
20864 accesses instead of looking for exact same data-ref.
20865
b4ddcaee
KT
208662011-04-02 Kai Tietz <ktietz@redhat.com>
20867
f90298e1
KT
20868 PR target/48416
20869 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
20870
b4ddcaee
KT
20871 * i386.c (ix86_is_msabi_thiscall): New helper function.
20872 (ix86_is_type_thiscall): New helper function.
20873 (ix86_comp_type_attributes): Handle thiscall for method-functions
20874 special.
20875 (init_cumulative_args): Likewise.
20876 (find_drap_reg): Likewise.
20877 (ix86_static_chain): Likewise.
20878 (x86_this_parameter): Likewise.
20879 (x86_output_mi_thunk): Likewise.
20880
2a9d769a 208812011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
20882 Nicolas Setton <setton@adacore.com>
20883 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
20884
20885 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
20886 (add_gnat_descriptive_type_attribute): New function.
20887 (gen_array_type_die): Call it.
20888 (gen_enumeration_type_die): Likewise.
20889 (gen_struct_or_union_type_die): Likewise.
20890 (modified_type_die): Likewise.
20891 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
20892 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
20893 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
20894
15a03a11
JJ
208952011-04-01 Jakub Jelinek <jakub@redhat.com>
20896
20897 PR bootstrap/48148
20898 * dwarf2out.c (resolve_addr): Don't call force_decl_die
20899 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
20900
20901 Revert:
20902 2011-03-17 Richard Guenther <rguenther@suse.de>
20903
20904 PR bootstrap/48148
20905 * lto-cgraph.c (input_overwrite_node): Clear the abstract
20906 origin for decls in other ltrans units.
20907 (input_varpool_node): Likewise.
20908
19228b93
JJ
209092011-04-01 Jakub Jelinek <jakub@redhat.com>
20910
20911 PR middle-end/48335
20912 * expr.c (expand_assignment): Handle all possibilities
20913 if TO_RTX is CONCAT.
e9c18386 20914 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
20915 (store_split_bit_field): If SUBREG_REG (op0) or
20916 op0 itself has smaller mode than word, return it
20917 for offset 0 and const0_rtx for out-of-bounds stores.
20918 If word is const0_rtx, skip it.
20919
88cb339e
N
209202011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
20921
20922 * config/h8300/h8300.c (print_operand_address): Rename to...
20923 (h8300_print_operand_address): ...this. Make static. Adjust comments.
20924 Call h8300_print_operand and h8300_print_operand_address instead of
20925 print_operand and print_operand_address. Declare.
20926 (print_operand): Renake to...
20927 (h8300_print_operand): ...this. Make static. Adjust comments.
20928 Call h8300_print_operand instead of print_operand. Declare.
20929 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
20930 (h8300_register_move_cost): Likewise.
20931 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
20932 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
20933 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
20934 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
20935 * config/h8300/h8300-protos.h (print_operand): Delete.
20936 (print_operand_address): Delete.
20937
756d6ee9
RH
209382011-04-01 Richard Henderson <rth@redhat.com>
20939
20940 PR 48400
20941 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
20942 in strict mode before dwarf4. Re-order tests to early out
20943 before switching sections.
20944
ceaaaeab
NF
209452011-04-01 Nathan Froyd <froydnj@codesourcery.com>
20946
20947 * config/h8300/constraints.md: New file.
20948 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
20949 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
20950 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
20951 * config/h8300/predicates.md (bit_operand): Likewise.
20952 (incdec_operand): Use satisfies_constraint_M and
20953 satisfies_constraint_O. Don't use C code block.
20954 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
20955 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
20956 (compute_mov_length): Use satisfies_constraint_G.
20957 (fix_bit_operand): Use satisfies_constraint_U.
20958 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
20959 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
20960 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
20961 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
20962 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
20963 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
20964 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
20965 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
20966 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
20967 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
20968 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
20969 (EXTRA_MEMORY_CONSTRAINT): Delete.
20970
08ae38e0
AP
209712011-04-01 Andrew Pinski <pinskia@gmail.com>
20972 Michael Meissner <meissner@linux.vnet.ibm.com>
20973
20974 PR target/48262
20975 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
20976 operands, as per the specifications.
20977
20978 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
20979 (vec_extract_evenv4sf): Ditto.
20980 (vec_extract_evenv8hi): Ditto.
20981 (vec_extract_evenv16qi): Ditto.
20982 (vec_extract_oddv4si): Ditto.
20983
bdb0b0f6
MW
209842011-03-31 Mark Wielaard <mjw@redhat.com>
20985
20986 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
20987 high_pc attribute if the CU has no associated code. Only output
20988 DW_AT_entry_pc for CU if not generating strict dwarf and
20989 dwarf_version < 4.
20990
722279e4
BS
209912011-04-01 Bernd Schmidt <bernds@codesourcery.com>
20992
20993 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
20994 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
20995 out of ...
20996 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
20997 * final.c (final_start_function): Call the new function rather
20998 than using a NULL argument for dwarf2out_frame_debug.
20999
c5dd277d
BS
21000 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
21001 that contains the prologue.
21002
ec4efea9
BS
21003 * haifa-sched.c (queue_insn): New arg REASON. All callers
21004 changed. Print it in debugging output.
21005
2a6a0d80
BS
21006 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
21007
86014d07
BS
21008 * sched-ebb.c (begin_schedule_ready): Remove second argument.
21009 Split most of the code into...
21010 (begin_move_insn): ... here. New function.
21011 (ebb_sched_info): Add a pointer to it.
21012 * haifa-sched.c (scheduled_insns): New static variable.
21013 (sched_extend_ready_list): Allocate it.
21014 (schedule_block): Use it to record the order of scheduled insns.
21015 Perform RTL changes to move insns only after all scheduling
21016 decisions have been made.
21017 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
21018 begin_move_insn field.
21019 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
21020 * sched-int.h (struct haifa_sched_info): Remove second argument
21021 from begin_schedule_ready hook. Add new member begin_move_insn.
21022 * sched-rgn.c (begin_schedule_ready): Remove second argument.
21023 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
21024
9d701248
BS
21025 * haifa-sched.c (prune_ready_list): New function, broken out of
21026 schedule_block.
21027 (schedule_block): Use it.
21028
1ca1dad5
UW
210292011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21030
21031 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
21032
49568e45
KT
210332011-04-01 Kai Tietz <ktietz@redhat.com>
21034
21035 * config.gcc (*-*-mingw*): Allow as option the
21036 posix threading model.
07c0852e 21037 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
21038 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
21039 definition.
21040 (CPP_SPEC): Add pthread/no-pthread handling.
21041 (LIB_SPEC): Likewise.
21042 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
21043 (LIB_SPEC): Likewise.
21044 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
21045 flag to pass -pthread option for shared libgcc build.
21046 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
21047 for shared libgcc build.
21048 * config/i386/t-mingw-pthread: New file.
21049 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
21050 New define to enable use of library pthread by default.
21051 * config/i386/mingw.opt (pthread): New driver option.
21052 (no-pthread): New driver option.
e9c18386 21053 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
21054 * config/i386/mingw-w64.opt: Likewise.
21055
748f7574 210562011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
21057
21058 * c-decl.c (grokdeclarator): Fix formatting.
21059
f04713ee
RS
210602011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
21061
21062 * expr.c (emit_block_move_via_movmem): Use n_generator_args
21063 instead of n_operands.
21064 (set_storage_via_setmem): Likewise.
21065 * optabs.c (maybe_gen_insn): Likewise.
21066 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
21067 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
21068 (mips_expand_builtin_direct): Likewise.
21069 * config/spu/spu.c (expand_builtin_args): Likewise.
21070
b29387ee
RS
210712011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
21072
21073 * recog.h (insn_data_d): Add n_generator_args.
21074 * genoutput.c (data): Likewise.
21075 (output_insn_data): Print it.
21076 (max_opno, num_dups): Delete.
21077 (scan_operands): Just fill in "d->operand[...]".
21078 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
21079
e792559a
RS
210802011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
21081
21082 * gensupport.h (pattern_stats): New structure.
21083 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
21084 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
21085 (max_operand_1, max_operand_vec): Delete.
21086 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
21087
e8110d6f
NF
210882011-03-31 Nathan Froyd <froydnj@codesourcery.com>
21089
21090 * emit-rtl.c (emit_pattern_after_setloc): New function.
21091 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
21092 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
21093 (emit_pattern_after): New function.
21094 (emit_insn_after, emit_jump_insn_after): Call it.
21095 (emit_call_insn_after, emit_debug_insn_after): Likewise.
21096 (emit_pattern_before_setloc): New function.
21097 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
21098 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
21099 Likewise.
21100 (emit_pattern_before): New function.
21101 (emit_insn_before, emit_jump_insn_before): Call it.
21102 (emit_call_insn_before, emit_debug_insn_before): Likewise.
21103
576f85f1
RH
211042011-03-31 Richard Henderson <rth@redhat.com>
21105
21106 * dwarf2out.c (dw_separate_line_info_ref): Remove.
21107 (dw_separate_line_info_entry): Remove.
21108 (enum dw_line_info_opcode): New.
21109 (dw_line_info_entry): Use it.
21110 (dw_line_info_table, dw_line_info_table_p): New.
21111 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
21112 (line_info_table, line_info_label_num): Remove.
21113 (line_info_table_in_use): Remove.
21114 (separate_line_info_table): Remove.
21115 (separate_line_info_table_allocated): Remove.
21116 (separate_line_info_table_in_use): Remove.
21117 (LINE_INFO_TABLE_INCREMENT): Remove.
21118 (line_info_label_num): New.
21119 (cur_line_info_table): New.
21120 (text_section_line_info, cold_text_section_line_info): New.
21121 (separate_line_info): New.
21122 (SEPARATE_LINE_CODE_LABEL): Remove.
21123 (print_dwarf_line_table): Remove.
21124 (debug_dwarf): Don't dump it.
21125 (output_one_line_info_table): New.
21126 (output_line_info): Use it.
21127 (new_line_info_table): New.
21128 (set_cur_line_info_table): New.
21129 (dwarf2out_switch_text_section): Use it.
21130 (dwarf2out_begin_function): Likewise.
21131 (push_dw_line_info_entry): New.
21132 (dwarf2out_source_line): Rewrite for new line info tables.
21133 (dwarf2out_init): Remove dead initailizations.
21134
300d83d9
JM
211352011-03-31 Joseph Myers <joseph@codesourcery.com>
21136
21137 * opts.h (cl_option): Add comments to fields. Add bit-fields for
21138 various flags.
21139 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
21140 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
21141 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
21142 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
21143 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
21144 * opt-functions.awk (flag_init, switch_bit_fields): New.
21145 (switch_flags): Don't handle flags moved to bit-fields. Don't
21146 generate CL_MISSING_OK or CL_SAVE.
21147 * optc-gen.awk: Update to generate bit-field output as well as
21148 flags field.
21149 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
21150 bit-field instead of CL_REJECT_DRIVER flag.
21151 * opts-common.c (generate_canonical_option,
21152 decode_cmdline_option): Use bit-fields instead of CL_* flags.
21153 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
21154 instead of CL_REJECT_NEGATIVE flag.
21155 * toplev.c (print_switch_values): Use cl_report bit-field instead
21156 of CL_REPORT flag.
21157
d4d73ce2
EB
211582011-03-31 Eric Botcazou <ebotcazou@adacore.com>
21159
21160 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
21161 a zero minimum index only if it is redundant.
21162
b8faca75
VM
211632011-03-31 Vladimir Makarov <vmakarov@redhat.com>
21164
21165 PR rtl-optimization/48381
21166 * ira-color.c (assign_hard_reg): Use hard reg set intersection
21167 instead of ira_class_hard_reg_index for calculating conflicting
21168 hard registers.
21169
7d11cebe
SB
211702011-03-31 Steven Bosscher <steven@gcc.gnu.org>
21171
21172 * cprop.c: Clean up hash table building.
21173 (reg_avail_info): Remove.
21174 (oprs_available_p): Remove.
21175 (record_last_reg_set_info): Remove.
21176 (record_last_set_info): Remove.
21177 (reg_available_p): New function.
21178 (gcse_constant_p): Do not treat unfolded conditions as constants.
21179 (make_set_regs_unavailable): New function.
21180 (hash_scan_set): Simplify with new reg_available_p.
21181 (compute_hash_table_work): Traverse insns stream only once.
21182 Do not compute reg_avail_info. Traverse insns in reverse order.
21183 Record implicit sets after recording explicit sets from the block.
21184
98faf84f
MM
211852011-03-31 Michael Matz <matz@suse.de>
21186
e9c18386 21187 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 21188
f52d97da
AS
211892011-03-31 Anatoly Sokolov <aesok@post.ru>
21190
21191 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
21192 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
21193 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21194 (h8300_mode_dependent_address_p): New function.
21195 (h8300_get_index): Make static.
21196
e16b6fd0
JL
211972011-03-31 Jeff Law <law@redhat.com>
21198
10c51983
JL
21199 * reload1.c (elimination_effects): Fix typo in recent change.
21200
e9c18386 21201 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
21202 typo potentially leading to null pointer dereference.
21203
21204 * caller-save.c (new_saved_hard_reg): Eliminate return value.
21205 (setup_save_areas): Corresponding changes to avoid useless
21206 assignments.
21207
21208 * jump.c (reversed_comparison_code_parts): Avoid successive return
21209 statements when REVERSE_CONDITION is defined.
21210
21211 * expr.c (expand_assignment): Avoid useless assignments.
21212 (expand_expr_real_1): Likewise.
21213 (expand_expr_real_2): Avoid useless statements.
21214
21215 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
21216
21217 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
21218
21219 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
21220 statements.
21221
21222 * stmt.c (expand_expr_stmt): Avoid useless assignment.
21223
eb1eb914
JM
212242011-03-31 Joseph Myers <joseph@codesourcery.com>
21225
21226 PR target/47109
21227 * doc/tm.texi.in (TARGET_VERSION): Remove.
21228 * doc/tm.texi: Regenerate.
21229 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
21230 * collect2.c (main): Don't use TARGET_VERSION.
21231 * mips-tdump.c (main): Don't use TARGET_VERSION.
21232 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 21233 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
21234 * config/rs6000/vxworksae.h: Remove.
21235 * config/alpha/alpha.h (TARGET_VERSION): Remove.
21236 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
21237 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
21238 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
21239 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
21240 * config/arm/arm.h (TARGET_VERSION): Remove.
21241 * config/arm/coff.h (TARGET_VERSION): Remove.
21242 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
21243 * config/arm/elf.h (TARGET_VERSION): Remove.
21244 * config/arm/freebsd.h (TARGET_VERSION): Remove.
21245 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
21246 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
21247 * config/arm/pe.h (TARGET_VERSION): Remove.
21248 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
21249 * config/arm/semi.h (TARGET_VERSION): Remove.
21250 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
21251 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
21252 * config/arm/vxworks.h (TARGET_VERSION): Remove.
21253 * config/avr/avr.h (TARGET_VERSION): Remove.
21254 * config/bfin/bfin.h (TARGET_VERSION): Remove.
21255 * config/fr30/fr30.h (TARGET_VERSION): Remove.
21256 * config/frv/frv.h (TARGET_VERSION): Remove.
21257 * config/h8300/h8300.h (TARGET_VERSION): Remove.
21258 * config/i386/cygwin.h (TARGET_VERSION): Remove.
21259 * config/i386/darwin.h (TARGET_VERSION): Remove.
21260 * config/i386/darwin64.h (TARGET_VERSION): Remove.
21261 * config/i386/djgpp.h (TARGET_VERSION): Remove.
21262 * config/i386/freebsd.h (TARGET_VERSION): Remove.
21263 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
21264 * config/i386/gnu.h (TARGET_VERSION): Remove.
21265 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
21266 * config/i386/i386elf.h (TARGET_VERSION): Remove.
21267 * config/i386/linux.h (TARGET_VERSION): Remove.
21268 * config/i386/linux64.h (TARGET_VERSION): Remove.
21269 * config/i386/lynx.h (TARGET_VERSION): Remove.
21270 * config/i386/mingw32.h (TARGET_VERSION): Remove.
21271 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
21272 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
21273 * config/i386/netware.h (TARGET_VERSION): Remove.
21274 * config/i386/nto.h (TARGET_VERSION): Remove.
21275 * config/i386/openbsd.h (TARGET_VERSION): Remove.
21276 * config/i386/vxworks.h (TARGET_VERSION): Remove.
21277 * config/ia64/elf.h (TARGET_VERSION): Remove.
21278 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
21279 * config/ia64/hpux.h (TARGET_VERSION): Remove.
21280 * config/ia64/linux.h (TARGET_VERSION): Remove.
21281 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
21282 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
21283 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
21284 * config/lm32/lm32.h (TARGET_VERSION): Remove.
21285 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
21286 * config/m32c/m32c.h (TARGET_VERSION): Remove.
21287 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
21288 * config/m32r/m32r.h (TARGET_VERSION): Remove.
21289 * config/m68k/linux.h (TARGET_VERSION): Remove.
21290 * config/m68k/m68k.h (TARGET_VERSION): Remove.
21291 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
21292 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
21293 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
21294 * config/mep/mep.h (TARGET_VERSION): Remove.
21295 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
21296 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
21297 * config/mips/iris6.h (MACHINE_TYPE): Remove.
21298 * config/mips/linux.h (TARGET_VERSION): Remove.
21299 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
21300 * config/mips/vxworks.h (TARGET_VERSION): Remove.
21301 * config/mmix/mmix.h (TARGET_VERSION): Remove.
21302 * config/mn10300/linux.h (TARGET_VERSION): Remove.
21303 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
21304 * config/pa/pa.h (TARGET_VERSION): Remove.
21305 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
21306 * config/picochip/picochip.h (TARGET_VERSION): Remove.
21307 * config/rs6000/aix.h (TARGET_VERSION): Remove.
21308 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
21309 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
21310 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
21311 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
21312 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
21313 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
21314 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
21315 * config/rs6000/linux.h (TARGET_VERSION): Remove.
21316 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
21317 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
21318 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
21319 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
21320 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
21321 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
21322 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
21323 * config/s390/linux.h (TARGET_VERSION): Remove.
21324 * config/s390/s390.h (TARGET_VERSION): Remove.
21325 * config/s390/tpf.h (TARGET_VERSION): Remove.
21326 * config/score/score.h (TARGET_VERSION): Remove.
21327 * config/sh/linux.h (TARGET_VERSION): Remove.
21328 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
21329 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
21330 * config/sh/sh.h (TARGET_VERSION): Remove.
21331 * config/sh/sh64.h (TARGET_VERSION): Remove.
21332 * config/sh/superh.h (TARGET_VERSION): Remove.
21333 * config/sh/vxworks.h (TARGET_VERSION): Remove.
21334 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
21335 * config/sparc/linux.h (TARGET_VERSION): Remove.
21336 * config/sparc/linux64.h (TARGET_VERSION): Remove.
21337 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
21338 TARGET_NAME32, TARGET_NAME): Remove.
21339 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
21340 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
21341 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
21342 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
21343 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
21344 * config/spu/spu.h (TARGET_VERSION): Remove.
21345 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
21346 * config/v850/v850.h (TARGET_VERSION): Remove.
21347 * config/vax/linux.h (TARGET_VERSION): Remove.
21348 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
21349 * config/xtensa/elf.h (TARGET_VERSION): Remove.
21350 * config/xtensa/linux.h (TARGET_VERSION): Remove.
21351
ace31bca
EB
213522011-03-31 Eric Botcazou <ebotcazou@adacore.com>
21353
21354 PR target/48142
21355 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
21356 frame-related from frame-unrelated adjustments to the stack pointer.
21357
76f9db36
JJ
213582011-03-31 Jakub Jelinek <jakub@redhat.com>
21359
21360 * common.opt (fdebug-types-section): Move earlier.
21361 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
21362
b7826465
AT
213632011-03-31 Andreas Tobler <andreast@fgznet.ch>
21364
21365 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
21366 var.
21367
1290e54c
NF
213682011-03-30 Nathan Froyd <froydnj@codesourcery.com>
21369
21370 * tree.h (CASE_CHAIN): Define.
21371 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
21372 (gimple_redirect_edge_and_branch): Likewise.
21373
bddc98e1
VM
213742011-03-30 Vladimir Makarov <vmakarov@redhat.com>
21375
21376 PR middle-end/48367
21377 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
21378 calculation.
21379
c865e437
JL
213802011-03-30 Jeff Law <law@redhat.com>
21381
b3750213 21382 * PR bootstrap/48371
c865e437
JL
21383 * reload1.c (reload): Fix botch in last change.
21384
21385 * reload.h (struct reload): Fix typo introduced in last change.
21386
2cdf9574
JM
213872011-03-30 Joseph Myers <joseph@codesourcery.com>
21388
21389 * config/arm/arm.opt (mhard-float, msoft-float): Mark
21390 Undocumented. Remove help text.
21391 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
21392 -mhard-float.
21393
666a21a2
JM
213942011-03-30 Joseph Myers <joseph@codesourcery.com>
21395
21396 * doc/options.texi (NegativeAlias): Document.
21397 (Alias): Mention NegativeAlias.
21398 * opt-functions.awk: Handle NegativeAlias.
e9c18386 21399 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
21400 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
21401 * opts.h (CL_NEGATIVE_ALIAS): Define.
21402 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
21403 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
21404 OPT_mspe_.
21405 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
21406 Alias entries.
21407 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
21408 mno-spe and mno-isel instead of mspe=no and -misel=no.
21409
0fa4e351
MW
214102011-03-29 Mark Wielaard <mjw@redhat.com>
21411
21412 * common.opt (fdebug-types-section): New flag.
21413 * doc/invoke.texi: Document new -fno-debug-types-section flag.
21414 * dwarf2out.c (use_debug_types): New define.
21415 (struct die_struct): Mark die_id with GTY desc use_debug_types.
21416 (print_die): Guard output of type unit signatures using
21417 use_debug_types.
21418 (build_abbrev_table): Replace assert of dwarf_version >= 4
21419 with assert on use_debug_types.
21420 (size_of_die): Likewise.
21421 (unmark_dies): Likewise.
21422 (value_format): Decide AT_ref_external form on use_debug_types.
21423 (output_die): Replace dwarf_version version check guard with
21424 use_debug_types where appropriate.
21425 (modified_type_die): Likewise.
21426 (gen_reference_type_die): Likewise.
21427 (dwarf2out_start_source_file): Likewise.
21428 (dwarf2out_end_source_file): Likewise.
21429 (prune_unused_types_walk_attribs): Likewise.
21430 (dwarf2out_finish): Likewise.
21431
4648deb4
VM
214322011-03-30 Vladimir Makarov <vmakarov@redhat.com>
21433
21434 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
21435
4f431835
RS
214362011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
21437
21438 PR rtl-optimization/48332
21439 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
21440 mode of input operand N and modeN to its actual mode.
21441
f2034d06
JL
214422011-03-30 Jeff Law <law@redhat.com>
21443
21444 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
21445 define accessor macro.
21446 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
21447 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
21448 (reg_equiv_init): Likewise.
21449 (reg_equivs_size): New variable.
21450 (reg_equiv_init_size): Remove.
21451 (allocate_initial_values): Move prototype to here from....
21452 * integrate.h (allocate_initial_values): Remove prototype.
21453 * integrate.c: Include reload.h.
21454 (allocate_initial_values): Corresponding changes.
21455 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
21456 (fix_reg_equiv_init, no_equiv): Corresponding changes.
21457 (update_equiv_regs): Corresponding changes.
21458 (ira): Corresponding changes.
21459 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
21460 (push_secondary_reload): Corresponding changes.
21461 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
21462 (make_memloc, find_reloads_address): Corresponding changes.
21463 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
21464 (find_reloads_address_1): Corresponding changes.
21465 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
21466 (refers_to_regno_for_reload_p): Corresponding changes.
21467 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
21468 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
21469 * reload1.c: Include ggc.h.
21470 (grow_reg_equivs): New function.
21471 (replace_pseudos_in, reload): Corresponding changes.
21472 (calculate_needs_all_insns, alter_regs): Corresponding changes.
21473 (eliminate_regs_1, elimination_effects): Corresponding changes.
21474 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
21475 (delete_output_reload): Likewise.
21476 * caller-save.c (mark_referenced_regs): Corresponding changes.
21477 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
21478 * frv/predicates.md (frv_load_operand): Corresponding changes.
21479 * microblaze/microblaze.c (double_memory_operand): Corresponding
21480 changes.
21481 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
21482 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 21483 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
21484 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
21485 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
21486 changes.
21487 * pa/pa.c (emit_move_sequence): Corresponding changes.
21488 * vax/vax.c (nonindexed_address_p): Corresponding changes.
21489
159b81b0
RS
214902011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
21491
21492 PR target/47551
21493 * config/arm/arm.c (coproc_secondary_reload_class): Handle
21494 structure modes. Don't check neon_vector_mem_operand for
21495 vector or structure modes.
21496
a6217191
RS
214972011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
21498 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
21499
21500 PR target/43590
21501 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
21502 operand 1 and reshuffle the operands to match.
21503 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
21504
bd837408
CS
215052011-03-30 Christian Schüler <cschueler@gmx.de>
21506
6955d771 21507 PR driver/48208
bd837408 21508 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 21509
6955d771 21510 PR driver/48260
bd837408
CS
21511 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
21512 handler function.
21513 * config/darwin.opt: Added '-arch' option.
21514
e9c0470a
NC
215152011-03-30 Nick Clifton <nickc@redhat.com>
21516
21517 * config/rx/rx.md: Add peepholes and patterns to combine
21518 extending loads and simple arithmetic instructions.
21519 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
21520 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
21521 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 21522 modes to use pre-decrement and post-increment addressing.
e9c18386 21523 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 21524 addresses.
e9c18386
UB
21525 (rx_print_operand): Add support for %Q. Fix handling of %Q.
21526 (rx_memory_move_cost): Adjust cost of stores.
21527 (rx_adjust_insn_length): New function.
e9c0470a 21528
8a87e7ab
JJ
215292011-03-30 Jakub Jelinek <jakub@redhat.com>
21530
21531 PR c/48305
21532 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
21533 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
21534 matching arg00/arg01 types.
21535
12486e03
EB
215362011-03-30 Eric Botcazou <ebotcazou@adacore.com>
21537
21538 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
21539 last_location to UNKNOWN_LOCATION.
21540
0b99eef6
L
215412011-03-30 H.J. Lu <hongjiu.lu@intel.com>
21542
21543 PR target/48349
21544 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
21545 FLOAT_SSE_REGS.
21546
023592aa
JM
215472011-03-30 Joseph Myers <joseph@codesourcery.com>
21548 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21549
21550 PR bootstrap/48337
21551 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
21552 Init(PROCESSOR_V7).
21553 (sparc_cpu): Likewise.
21554 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
21555 PROCESSOR_V7.
21556
ad3b266b
VM
215572011-03-29 Vladimir Makarov <vmakarov@redhat.com>
21558
21559 PR target/48336
21560 PR middle-end/48342
21561 PR rtl-optimization/48345
21562 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
21563 hard regs for given mode from profitable regs when doing secondary
21564 allocation.
21565
633c9126
JL
215662011-03-29 Jeff Law <law@redhat.com>
21567
21568 PR bootstrap/48327
21569 * tree-ssa-threadupdate.c (struct redirection_data): Remove
21570 do_not_duplicate field.
21571 (lookup_redirection_data): Corresponding changes.
21572 (create_duplicates): Always create a template block.
21573 (redirect_edges): Remove code which reused the original block
21574 when it was going to become unreachable code.
21575 (thread_block): Don't set do_not_duplicate field.
21576
eb50f63a
JM
215772011-03-29 Joseph Myers <joseph@codesourcery.com>
21578
21579 * lto-opts.c (register_user_option_p, lto_register_user_option):
21580 Make type argument unsigned.
21581 * lto-streamer.h (lto_register_user_option): Make type argument
21582 unsigned.
21583 * opth-gen.awk: Make CL_* macros unsigned.
21584 * opts-common.c (find_opt): Make lang_mask argument unsigned.
21585 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
21586 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
21587 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
21588 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
21589 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
21590 (find_opt): Make lang_mask argument unsigned.
21591
76763a6d
VM
215922011-03-29 Vladimir Makarov <vmakarov@redhat.com>
21593
21594 PR rtl-optimization/48331
21595 PR rtl-optimization/48334
21596 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
21597 for any used algorithm.
21598
5c82436e
VM
215992011-03-29 Vladimir Makarov <vmakarov@redhat.com>
21600
21601 * ira-conflicts.c (build_object_conflicts): Add unused attribute
21602 to parent_max.
21603
7a81008b
UB
216042011-03-29 Uros Bizjak <ubizjak@gmail.com>
21605
21606 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
21607 (alpha_option_override): Don't set alpha_sr_alias_set.
21608 (emit_frame_store_1): Use gen_frame_mem rather than calling
21609 set_mem_alias_set.
21610 (alpha_expand_epilogue): Ditto.
21611
86c8d1f6
IR
216122011-03-29 Ira Rosen <ira.rosen@linaro.org>
21613
21614 PR tree-optimization/48290
21615 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
21616 vectorization, check that relevant phis in the basic block after
21617 the inner loop are really inner loop's exit phis.
21618
0d12220f
RS
216192011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
21620
e8cf17e7 21621 PR debug/48190
0d12220f
RS
21622 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
21623 (cached_dw_loc_list_def): New structure.
21624 (cached_dw_loc_list): New typedef.
21625 (cached_dw_loc_list_table): New variable.
21626 (cached_dw_loc_list_table_hash): New function.
21627 (cached_dw_loc_list_table_eq): Likewise.
21628 (add_location_or_const_value_attribute): Take a bool cache_p.
21629 Cache the list when the parameter is true.
21630 (gen_formal_parameter_die): Update caller.
21631 (gen_variable_die): Likewise.
21632 (dwarf2out_finish): Likewise.
21633 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
21634 while generating debug info for the decl.
21635 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
21636 (dwarf2out_init): Initialize cached_dw_loc_list_table.
21637 (resolve_addr): Cache the result of resolving a chain of
21638 location lists.
21639
1756cb66
VM
216402011-03-28 Vladimir Makarov <vmakarov@redhat.com>
21641
21642 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
21643 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 21644
1756cb66
VM
21645 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
21646 after regstat_init_n_sets_and_refs.
21647
21648 * ira.c: Add more comments at the top.
21649 (setup_stack_reg_pressure_class, setup_pressure_classes):
21650 Add comments how we compute the register pressure classes.
21651 (setup_allocno_and_important_classes): Add more comments.
21652 (setup_class_translate_array, reorder_important_classes)
21653 (setup_reg_class_relations): Add comments.
21654
21655 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
21656 start of the file.
21657
21658 * ira-color.c: Add 2011 to the Copyright line.
21659 (assign_hard_reg): Add more comments.
21660 (improve_allocation): Ditto.
21661
21662 * ira-costs.c: Add 2011 to the Copyright line.
21663 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
21664 comments.
21665 (setup_regno_cost_classes_by_mode): Ditto.
21666
21667 Initial patches from ira-improv branch:
21668
21669 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
21670
f60c2554 21671 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
21672 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
21673 (ira_create_allocno): Remove initialization of
21674 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
21675 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
21676 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
21677 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
21678 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
21679 Initialize ALLOCNO_ADD_DATA.
21680 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
21681 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
21682 ALLOCNO_REG.
21683 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
21684 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
21685
21686 * ira.c (ira_reallocate): Remove.
21687 (setup_pressure_classes): Call
21688 ira_init_register_move_cost_if_necessary. Use
21689 ira_register_move_cost instead of ira_get_register_move_cost.
21690 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
21691 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
21692
21693 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
21694 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
21695 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
21696 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
21697 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
21698 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
21699 Fix formatting.
7a81008b 21700 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
21701 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
21702 (struct allocno_color_data): New.
21703 (allocno_color_data_t): New typedef.
21704 (allocno_color_data): New definition.
21705 (ALLOCNO_COLOR_DATA): New macro.
21706 (struct object_color_data): New.
21707 (object_color_data_t): New typedef.
21708 (object_color_data): New definition.
21709 (OBJECT_COLOR_DATA): New macro.
21710 (update_copy_costs, calculate_allocno_spill_cost): Call
21711 ira_init_register_move_cost_if_necessary. Use
21712 ira_register_move_cost instead of ira_get_register_move_cost.
21713 (move_spill_restore, update_curr_costs): Ditto.
21714 (allocno_spill_priority): Make it inline.
7a81008b 21715 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
21716 (struct coalesce_data, coalesce_data_t): New.
21717 (allocno_coalesce_data): New definition.
21718 (ALLOCNO_COALESCE_DATA): New macro.
21719 (merge_allocnos, coalesced_allocno_conflict_p): Use
21720 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
21721 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
21722 (coalesce_allocnos): Ditto.
21723 (setup_coalesced_allocno_costs_and_nums): Ditto.
21724 (collect_spilled_coalesced_allocnos): Ditto.
21725 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
21726 (setup_slot_coalesced_allocno_live_ranges): Ditto.
21727 (coalesce_spill_slots): Ditto.
21728 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
21729 free allocno_coalesce_data.
21730
21731 * ira-conflicts.c: Fix formatting.
21732 (process_regs_for_copy): Call
21733 ira_init_register_move_cost_if_necessary. Use
21734 ira_register_move_cost instead of ira_get_register_move_cost.
21735 (build_object_conflicts): Optimize.
21736
21737 * ira-costs.c (record_reg_classes): Optimize. Call
21738 ira_init_register_move_cost_if_necessary. Use
21739 ira_register_move_cost, ira_may_move_in_cost, and
21740 ira_may_move_out_cost instead of ira_get_register_move_cost and
21741 ira_get_may_move_cost.
21742 (record_address_regs): Ditto.
21743 (scan_one_insn): Optimize.
21744 (find_costs_and_classes): Optimize.
21745 (process_bb_node_for_hard_reg_moves): Call
21746 ira_init_register_move_cost_if_necessary. Use
21747 ira_register_move_cost instead of ira_get_register_move_cost.
21748
21749 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
21750 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
21751 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
21752 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
21753 definitions.
21754 (ira_initiate_emit_data, ira_finish_emit_data)
21755 (create_new_allocno): New functions.
7a81008b 21756 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
21757 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
21758 Use ira_register_move_cost instead of ira_get_register_move_cost.
21759
21760 * ira-int.h: Fix some comments.
7a81008b
UB
21761 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
21762 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
21763 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
21764 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
21765 add_data.
21766 (struct ira_allocno): Make mode and aclass a bitfield. Move other
21767 bitfield after mode. Make hard_regno a short int. Make
21768 hard_regno short. Remove first_coalesced_allocno and
21769 next_coalesced_allocno. Move mem_optimized_dest_p,
21770 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
21771 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
21772 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
21773 temp, colorable_p. Add new member add_data.
21774 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
21775 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
21776 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
21777 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
21778 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
21779 (ALLOCNO_ADD_DATA): New macro.
21780 (ira_emit_data_t): New typedef.
21781 (struct ira_emit_data): New. Move mem_optimized_dest_p,
21782 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
21783 from struct ira_allocno.
21784 (ALLOCNO_EMIT_DATA): New macro.
21785 (ira_allocno_emit_data, allocno_emit_reg): New.
21786 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 21787 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
21788 (OBJECT_ADD_DATA): New macro.
21789 (ira_reallocate): Remove.
21790 (ira_initiate_emit_data, ira_finish_emit_data): New.
21791 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
21792 (ira_init_register_move_cost_if_necessary): New.
21793 (ira_object_conflict_iter_next): Merge into
21794 ira_object_conflict_iter_cond.
7a81008b 21795 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 21796
f60c2554 21797 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
21798 ira_init_register_move_cost_if_necessary. Use
21799 ira_register_move_cost instead of ira_get_register_move_cost.
21800
21801 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
21802
21803 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
21804
21805 * ira-costs.c: Fix formatting.
21806 (cost_classes, cost_classes_num): Remove.
21807 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
21808 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
21809 (cost_classes_del, cost_classes_htab): New.
21810 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
21811 (initiate_regno_cost_classes, setup_cost_classes): New.
21812 (setup_regno_cost_classes_by_aclass): New.
7a81008b 21813 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
21814 (record_reg_classes): Use regno_cost_classes instead of
21815 cost_classes. Move checking opposite operand up.
21816 (record_address_regs): Use regno_cost_classes
21817 instead of cost_classes.
21818 (scan_one_insn): Ditto. Use always general register.
21819 (print_allocno_costs): Use regno_cost_classes instead of
21820 cost_classes.
21821 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
21822 (find_costs_and_classes): Set up cost classes for each registers.
21823 Use also their mode for this. Use regno_cost_classes instead of
21824 cost_classes.
21825 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
21826 cost_classes.
21827 (free_ira_costs, ira_init_costs): Don't use cost_classes.
21828 (ira_costs, ira_set_pseudo_classes): Call
21829 initiate_regno_cost_classes and finish_regno_cost_classes.
21830
21831 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
21832
21833 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
21834
21835 * target.def (ira_cover_classes): Remove.
21836
7a81008b 21837 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
21838
21839 * doc/tm.texi.in: Ditto.
21840
21841 * ira-conflicts.c: Remove mentioning cover classes from the file.
21842 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 21843 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
21844
21845 * targhooks.c (default_ira_cover_classes): Remove.
21846
21847 * targhooks.h (default_ira_cover_classes): Ditto.
21848
21849 * haifa-sched.c: Remove mentioning cover classes from the file.
21850 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
21851 ira_pressure_classes and ira_pressure_classes_num instead of
21852 ira_reg_class_cover_size and ira_reg_class_cover. Use
21853 sched_regno_pressure_class instead of sched_regno_cover_class.
21854 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
21855 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
21856
21857 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
21858 classes from the file.
21859 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
21860 (struct object_hard_regs, struct object_hard_regs_node): New.
21861 (struct ira_object): New members profitable_hard_regs,
21862 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
21863 (struct ira_allocno): Rename cover_class to aclass. Rename
21864 cover_class_cost and updated_cover_class_cost to class_cost and
21865 updated_class_cost. Remove splay_removed_p and
21866 left_conflict_size. Add new members colorable_p.
21867 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
21868 (ALLOCNO_COLORABLE_P): New macro.
21869 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
21870 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
21871 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
21872 (OBJECT_...): Rename parameter C to O.
21873 (OBJECT_PROFITABLE_HARD_REGS): New macro.
21874 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
21875 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
21876 (struct target_ira_int): New members x_ira_max_memory_move_cost,
21877 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
21878 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
21879 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
21880 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
21881 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
21882 x_ira_reg_class_subunion.
21883 (ira_max_memory_move_cost, ira_max_register_move_cost)
21884 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
21885 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
21886 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 21887 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
21888 (ira_reg_class_union): Rename to ira_reg_class_subunion.
21889 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
21890 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
21891 (ira_tune_allocno_costs_and_cover_classes): Rename to
21892 ira_tune_allocno_costs.
21893 (ira_debug_hard_regs_forest): New.
21894 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
21895 (ira_object_conflict_iter_next): Fix comments.
7a81008b 21896 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
21897 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
21898 cover_class to aclass.
21899 (ira_allocate_and_accumulate_costs): Ditto.
21900 (ira_allocate_and_set_or_copy_costs): Ditto.
21901
21902 * opts.c (decode_options): Remove ira_cover_class check.
21903
21904 * ira-color.c: Remove mentioning cover classes from the file. Use
21905 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
21906 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
21907 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
21908 (splay-tree.h): Remove include.
21909 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
21910 before copy_freq_compare_func.
21911 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
21912 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
21913 New definitions.
21914 (hard_regs_roots, hard_regs_node_vec): Ditto.
21915 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
21916 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
21917 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
21918 (create_new_object_hard_regs_node): Ditto.
21919 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 21920 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
21921 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
21922 Ditto.
21923 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
21924 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
21925 (remove_unused_object_hard_regs_nodes): Ditto.
21926 (enumerate_object_hard_regs_nodes): Ditto.
21927 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
21928 (object_hard_regs_subnode_t): Ditto.
21929 (struct object_hard_regs_subnode): Ditto.
21930 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
21931 (setup_object_hard_regs_subnode_index): Ditto.
21932 (get_object_hard_regs_subnodes_num): Ditto.
21933 (form_object_hard_regs_nodes_forest): Ditto.
21934 (finish_object_hard_regs_nodes_tree): Ditto.
21935 (finish_object_hard_regs_nodes_forest): Ditto.
21936 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 21937 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
21938 (pseudos_have_intersected_live_ranges_p): Rename to
21939 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
21940 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
21941 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
21942 (update_copy_costs): Remove assert. Skip cost update if the hard
21943 reg does not belong the class.
21944 (assign_hard_reg): Process only profitable hard regs.
21945 (uncolorable_allocnos_num): Make it scalar.
21946 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
21947 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
21948 and ira_reg_class_max_nregs.
21949 (bucket_allocno_compare_func): Check frequency first.
21950 (sort_bucket): Add compare function as a parameter.
21951 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
21952 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
21953 (push_allocno_to_stack): Rewrite for checking new allocno
21954 colorability.
7a81008b 21955 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
21956 (push_only_colorable): Pass new parameter to sort_bucket.
21957 (push_allocno_to_spill): Remove.
21958 (allocno_spill_priority_compare): Make it inline and rewrite.
21959 (splay_tree_allocate, splay_tree_free): Remove.
21960 (allocno_spill_sort_compare): New function.
21961 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
21962 build and use splay tree. Choose first allocno in uncolorable
21963 allocno bucket to spill. Remove setting spill cost.
21964 (all_conflicting_hard_regs): Remove.
21965 (setup_allocno_available_regs_num): Check only profitable hard
21966 regs. Print info about hard regs nodes.
21967 (setup_allocno_left_conflicts_size): Remove.
21968 (put_allocno_into_bucket): Don't call
7a81008b 21969 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
21970 (improve_allocation): New.
21971 (color_allocnos): Call setup_profitable_hard_regs,
21972 form_object_hard_regs_nodes_forest, improve_allocation,
21973 finish_object_hard_regs_nodes_forest. Setup spill cost.
21974 (print_loop_title): Use pressure classes.
21975 (color_allocnso): Ditto.
21976 (do_coloring): Remove allocation and freeing splay_tree_node_pool
21977 and allocnos_for_spilling.
21978 (ira_sort_regnos_for_alter_reg): Don't setup members
21979 {first,next}_coalesced_allocno.
21980 (color): Remove allocating and freeing removed_splay_allocno_vec.
21981 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
21982 prohibited_class_mode_regs.
21983
21984 * ira-lives.c: Remove mentioning cover classes from the file. Fix
21985 formatting.
21986 (update_allocno_pressure_excess_length): Use pressure classes.
21987 (inc_register_pressure, dec_register_pressure): Check for pressure
21988 class.
21989 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
21990 pressure class. Use ira_reg_class_nregs instead of
21991 ira_reg_class_max_nregs.
21992 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
21993 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
21994 (single_reg_class): Use ira_reg_class_nregs instead of
21995 ira_reg_class_max_nregs.
21996 (process_bb_node_lives): Use pressure classes.
21997
21998 * ira-emit.c: Remove mentioning cover classes from the file. Use
21999 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
22000 (change_loop): Use pressure classes.
22001 (modify_move_list): Call ira_set_allocno_class instead of
22002 ira_set_allocno_cover_class.
22003
22004 * ira-build.c: Remove mentioning cover classes from the file. Use
22005 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
22006 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
22007 ALLOCNO_UPDATED_CLASS_COST instead of
22008 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
22009 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
22010 (ira_create_allocno): Remove initialization of
22011 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
22012 ALLOCNO_COLORABLE_P.
22013 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
22014 Update conflict regs for the objects.
22015 (create_cap_allocno): Remove assert. Don't propagate
22016 ALLOCNO_AVAILABLE_REGS_NUM.
22017 (ira_free_allocno_costs): New function.
22018 (finish_allocno): Change a part of code into call of
22019 ira_free_allocno_costs.
22020 (low_pressure_loop_node_p): Use pressure classes.
22021 (object_range_compare_func): Don't compare classes.
22022 (setup_min_max_conflict_allocno_ids): Ditto.
22023
22024 * loop-invariant.c: Remove mentioning cover classes from the file.
22025 Use ira_pressure_classes and ira_pressure_classes_num instead of
22026 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
22027 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
22028 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
22029 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
22030 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
22031 STACK_REG_COVER_CLASS.
22032 (get_regno_cover_class): Rename to get_regno_pressure_class.
22033 (move_loop_invariants): Initialize and finalize regstat.
22034
22035 * ira.c: Remove mentioning cover classes from the file. Add
22036 comments about coloring without cover classes. Use ALLOCNO_CLASS
22037 instead of ALLOCNO_COVER_CLASS. Fix formatting.
22038 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
22039 setup_class_subset_and_memory_move_costs.
22040 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
22041 (setup_cover_and_important_classes): Rename to
22042 setup_allocno_and_important_classes.
22043 (setup_class_translate_array): New.
22044 (setup_class_translate): Call it for allocno and pressure classes.
22045 (cover_class_order): Rename to allocno_class_order.
22046 (comp_reg_classes_func): Use ira_allocno_class_translate instead
22047 of ira_class_translate.
22048 (reorder_important_classes): Set up ira_important_class_nums.
22049 (setup_reg_class_relations): Set up ira_reg_class_superunion.
22050 (print_class_cover): Rename to print_classes. Add parameter.
22051 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
22052 Print pressure classes too.
22053 (find_reg_class_closure): Rename to find_reg_classes. Don't call
22054 setup_reg_subclasses.
7a81008b 22055 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
22056 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
22057 (setup_prohibited_class_mode_regs): Use
7a81008b 22058 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
22059 (clarify_prohibited_class_mode_regs): New function.
22060 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
22061 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
22062 (ira_init_once): Initialize them.
22063 (free_register_move_costs): Process them.
22064 (ira_init): Move calls of find_reg_classes and
22065 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
22066 Call clarify_prohibited_class_mode_regs.
22067 (ira_no_alloc_reg): Remove.
22068 (too_high_register_pressure_p): Use pressure classes.
22069
22070 * sched-deps.c: Remove mentioning cover classes from the file.
22071 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
22072 ira_pressure_classes and ira_pressure_classes_num instead of
22073 ira_reg_class_cover_size and ira_reg_class_cover.
22074 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
22075 sched_regno_pressure_class instead of sched_regno_cover_class.
22076 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
22077 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
22078
22079 * ira.h: Add 2010 to Copyright.
22080 (ira_no_alloc_reg): Remove external.
22081 (struct target_ira): Rename x_ira_hard_regno_cover_class,
22082 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
22083 x_ira_class_translate to x_ira_hard_regno_allocno_class,
22084 x_ira_allocno_classes_num, x_ira_allocno_classes, and
22085 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
22086 x_ira_pressure_classes, x_ira_pressure_class_translate, and
22087 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
22088 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
22089 x_ira_no_alloc_regs.
7a81008b 22090 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
22091 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
22092 ira_allocno_classes_num and ira_allocno_classes.
22093 (ira_class_translate): Rename to ira_allocno_class_translate.
22094 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
22095 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
22096 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
22097 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
22098 (ira_no_alloc_regs): New.
22099
22100 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
22101 classes from the file. Use ALLOCNO_CLASS instead of
22102 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
22103 ALLOCNO_COVER_CLASS_COST.
22104 (regno_cover_class): Rename to regno_aclass.
22105 (record_reg_classes): Use ira_reg_class_subunion instead of
22106 ira_reg_class_union.
22107 (record_address_regs): Check overflow.
22108 (scan_one_insn): Ditto.
7a81008b 22109 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
22110 (print_pseudo_costs): Use REG_N_REFS.
22111 (find_costs_and_classes): Use classes intersected with them on the
22112 1st pass. Check overflow. Use ira_reg_class_subunion instead of
22113 ira_reg_class_union. Use ira_allocno_class_translate and
22114 regno_aclass instead of ira_class_translate and regno_cover_class.
22115 Modify code for finding regno_aclass. Setup preferred classes for
22116 the next pass.
22117 (setup_allocno_cover_class_and_costs): Rename to
22118 setup_allocno_class_and_costs. Use regno_aclass instead of
22119 regno_cover_class. Use ira_set_allocno_class instead of
22120 ira_set_allocno_cover_class.
22121 (init_costs, finish_costs): Use regno_aclass instead of
22122 regno_cover_class.
22123 (ira_costs): Use setup_allocno_class_and_costs instead of
22124 setup_allocno_cover_class_and_costs.
22125 (ira_tune_allocno_costs_and_cover_classes): Rename to
22126 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
22127 by processing objects. Use ira_reg_class_max_nregs instead of
22128 ira_reg_class_nregs.
22129
22130 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
22131
22132 * sched-int.h: Remove mentioning cover classes from the file.
22133 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
22134
22135 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
22136 classes from the file.
22137 (struct reg_pref): Rename coverclass into allocnoclass.
22138 (reg_cover_class): Rename to reg_allocno_class.
22139
7a81008b 22140 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
22141
22142 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
22143
22144 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
22145
22146 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
22147
22148 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
22149
22150 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
22151
22152 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
22153
22154 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
22155
22156 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
22157
22158 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
22159
22160 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
22161 (i386_ira_cover_classes): Ditto.
22162
22163 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
22164
22165 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
22166
22167 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
22168
22169 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
22170
22171 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
22172
22173 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
22174
22175 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
22176 (mips_ira_cover_classes): Ditto.
22177
22178 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
22179
22180 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
22181
22182 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
22183
22184 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
22185
22186 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
22187
22188 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
22189 (IRA_COVER_CLASSES_VSX): Ditto.
22190
22191 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
22192 (rs6000_ira_cover_classes): Ditto.
22193
22194 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
22195
22196 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
22197
22198 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
22199
22200 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
22201
22202 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
22203
22204 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
22205
22206 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
22207
22208 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
22209
22210 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
22211
22212 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
22213
2b80199f
JJ
222142011-03-29 Jakub Jelinek <jakub@redhat.com>
22215
71dae1fe
JJ
22216 PR debug/48253
22217 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
22218 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
22219 dw_fde_unlikely_section_end_label, cold_in_std_section,
22220 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
22221 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
22222 fields.
22223 (output_fde): Use dw_fde_second_{begin,end} if second is
22224 true, otherwise dw_fde_{begin,end}.
22225 (output_call_frame_info): Test dw_fde_second_begin != NULL
22226 instead of dw_fde_switched_sections.
22227 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
22228 fields, initialize new fields. Initialize in_std_section
22229 unconditionally from the first partition.
22230 (dwarf2out_end_epilogue): Don't override dw_fde_end when
22231 dw_fde_second_begin is non-NULL.
22232 (dwarf2out_switch_text_section): Stop initializing removed
22233 dw_fde_struct fields, initialize new fields, initialize
22234 also dw_fde_end here. Set dw_fde_switch_cfi even when
22235 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
22236 (struct var_loc_list_def): Add last_before_switch field.
22237 (arange_table, arange_table_allocated, arange_table_in_use,
22238 ARANGE_TABLE_INCREMENT, add_arange): Removed.
22239 (size_of_aranges): Count !in_std_section and !second_in_std_section
22240 hunks in fdes, instead of looking at arange_table_in_use.
22241 (output_aranges): Add aranges_length argument, don't call
22242 size_of_aranges here. Instead of using aranges_table*
22243 emit ranges for fdes when !in_std_section resp.
22244 !second_in_std_section.
22245 (dw_loc_list): Break ranges crossing section switch.
22246 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 22247 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
22248 (gen_subprogram_die): Don't call add_arange. Use
22249 dw_fde_{begin,end} for first partition and if switched
22250 section dw_fde_second_{begin,end} for the second.
22251 (var_location_switch_text_section_1,
22252 var_location_switch_text_section): New functions.
22253 (dwarf2out_begin_function): Initialize cold_text_section even
22254 when function_section () isn't text_section.
22255 (prune_unused_types): Don't walk arange_table.
22256 (dwarf2out_finish): Don't needlessly test
22257 flag_reorder_blocks_and_partition when testing cold_text_section_used.
22258 If info_section_emitted, call size_of_aranges and if it indicates
22259 non-empty .debug_aranges, call output_aranges with the computed
22260 size. Stop using removed dw_fde_struct fields, use
22261 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
22262 for second.
22263
2b80199f
JJ
22264 PR debug/48203
22265 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
22266 create ENTRY_VALUE if incoming or address of incoming's MEM
22267 is a hard REG.
22268 * dwarf2out.c (mem_loc_descriptor): Don't emit
22269 DW_OP_GNU_entry_value of DW_OP_fbreg.
22270 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
22271 on ENTRY_VALUE is able to find the canonical parameter VALUE.
22272 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
22273 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
22274 ENTRY_VALUE_EXPs.
22275 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
22276 is a REG_P or MEM_P with REG_P address, compute hash directly
22277 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
22278 (preserve_only_constants): Don't clear VALUES forwaring
22279 ENTRY_VALUE to some other VALUE.
22280
8a445129
RS
222812011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
22282
22283 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
22284 instead of GEN_INT.
22285
c82fee88
EB
222862011-03-28 Eric Botcazou <ebotcazou@adacore.com>
22287
22288 * cfgexpand.c (expand_gimple_cond): Always set the source location and
22289 block before expanding the statement.
22290 (expand_gimple_stmt_1): Likewise. Set them here...
22291 (expand_gimple_stmt): ...and not here. Tidy.
22292 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
22293 unknown.
22294
e45425ec
SB
222952011-03-28 Steven Bosscher <steven@gcc.gnu.org>
22296
22297 * Makefile.in: New rule for cprop.o.
22298 * gcse.c: Move constant/copy propagation to cprop.c.
22299 (compute_local_properties): Only handle expression tables.
22300 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
22301 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
22302 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
22303 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 22304 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
22305 compute_cprop_data, find_used_regs, try_replace_reg,
22306 find_avail_set, cprop_jump, constprop_register, cprop_insn,
22307 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
22308 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
22309 find_bypass_set, reg_killed_on_edge, bypass_block,
22310 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
22311 execute_rtl_cprop, pass_rtl_cprop): Move to...
22312 * cprop.c: ...here. New file, constant/copy propagation for RTL
22313 moved from gcse.c to here with minor cleanups in duplicated code.
22314
c09d5426
L
223152011-03-28 H.J. Lu <hongjiu.lu@intel.com>
22316
22317 * config/i386/i386.c (flag_opts): Fix a typo in
22318 -mavx256-split-unaligned-store.
22319
9eaa7740
AS
223202011-03-28 Anatoly Sokolov <aesok@post.ru>
22321
22322 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
22323 LIBCALL_VALUE): Remove macros.
22324 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22325 TARGET_FUNCTION_VALUE_REGNO_P): Define.
22326 (h8300_function_value, h8300_libcall_value,
22327 h8300_function_value_regno_p): New functions.
22328
dcec2be2
AS
223292011-03-28 Anatoly Sokolov <aesok@post.ru>
22330
22331 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
22332
520af9ec
JL
223332011-03-28 Jeff Law <law@redhat.com>
22334
22335 * tree-ssa-threadupdate.c (redirect_edges): Call
22336 create_edge_and_update_destination_phis as needed.
22337 (create_edge_and_update_destination_phis): Accept new BB argument.
22338 All callers updated.
22339 (thread_block): Do not update the profile when threading around
22340 intermediate blocks.
22341 (thread_single_edge): Likewise.
22342 (determine_bb_domination_status): If BB is not a successor of the
22343 loop header, return NONDOMINATING.
22344 (register_jump_thread): Note when we register a jump thread around
22345 an intermediate block.
22346 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
22347 (thread_across_edge): Use it.
22348
7450b54f
TG
223492011-03-28 Tristan Gingold <gingold@adacore.com>
22350
22351 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
22352 when for_return is 2.
22353
649beb33
JL
223542011-03-28 Jeff Law <law@redhat.com>
22355
22356 * var-tracking.c (canonicalize_values_mark): Delete unused
22357 lhs assignment.
22358 (canonicalize_values_star, set_variable_part): Likewise.
22359 (clobber_variable_part, delete_variable_part): Likewise.
22360
d5b8da97
SB
223612011-03-28 Steven Bosscher <steven@gcc.gnu.org>
22362
22363 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
22364
322dd859
MJ
223652011-03-28 Martin Jambor <mjambor@suse.cz>
22366
22367 * tree-inline.c (expand_call_inline): Do not check that destination
22368 node is analyzed.
22369 (optimize_inline_calls): Assert that destination node is analyzed.
22370 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
22371 not call tree_lowering_passes.
22372 * cgraph.h (cgraph_analyze_function): Declare.
22373 * cgraphunit.c (cgraph_analyze_function): Make public.
22374
aa53e58b
JM
223752011-03-28 Joseph Myers <joseph@codesourcery.com>
22376
22377 * config/sparc/sparc-opts.h: New.
22378 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
22379 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
22380 (sparc_option_override): Store processor_type enumeration rather
22381 than string in cpu_default. Remove name and enumeration from
22382 cpu_table. Directly default -mcpu then default -mtune from -mcpu
22383 without using sparc_select. Use target_flags_explicit instead of
22384 fpu_option_set.
22385 * config/sparc/sparc.h (enum processor_type): Move to
22386 sparc-opts.h.
22387 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
22388 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
22389 HeaderInclude entry.
22390 (mcpu=, mtune=): Use Var and Enum.
22391 (sparc_processor_type): New Enum and EnumValue entries.
22392
dd350eba
RO
223932011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22394 Iain Sandoe <iains@gcc.gnu.org>
22395
22396 PR target/48245
22397 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
22398
1b29f05e
EB
223992011-03-28 Eric Botcazou <ebotcazou@adacore.com>
22400
22401 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
22402 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
22403 Insert new statements at it in lieu of STMT.
22404 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
22405 * tree-vect-stmts.c (vectorizable_store): Likewise.
22406 (vectorizable_load): Likewise.
22407
506e6808
UB
224082011-03-28 Uros Bizjak <ubizjak@gmail.com>
22409
22410 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
22411 (divtf3): Ditto.
22412 (multf3): Ditto.
22413 (subtf3): Ditto.
22414
2e939ee9
L
224152011-03-27 H.J. Lu <hongjiu.lu@intel.com>
22416
22417 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
22418 unaligned 256bit load/store.
22419 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
22420 (*avx_movdqu<avxmodesuffix>): Likewise.
22421
5e85ab88
JDA
224222011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22423
22424 PR target/48288
22425 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
22426 * config/pa/pa.md (iordi3): Use new predicate in expander.
22427 (iorsi3): Likewise.
22428
47be3d6d
AS
224292011-03-27 Anatoly Sokolov <aesok@post.ru>
22430
506e6808 22431 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 22432 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
22433 * config/mips/mips-protos.h (mips_function_value): Remove.
22434 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
22435 (mips_function_value_1): ... this. Make static. Handle receiving
22436 the function type in 'fn_decl_or_type' argument.
22437 (mips_function_value, mips_libcall_value,
22438 mips_function_value_regno_p): New function.
22439 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22440 TARGET_FUNCTION_VALUE_REGNO_P): Define.
22441
d253656a
L
224422011-03-27 H.J. Lu <hongjiu.lu@intel.com>
22443
22444 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
22445 and -mavx256-split-unaligned-store.
22446 (ix86_option_override_internal): Split 32-byte AVX unaligned
22447 load/store by default.
22448 (ix86_avx256_split_vector_move_misalign): New.
22449 (ix86_expand_vector_move_misalign): Use it.
22450
22451 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
22452 -mavx256-split-unaligned-store.
22453
22454 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
22455 256bit load/store. Generate unaligned store on misaligned memory
22456 operand.
22457 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
22458 256bit load/store.
22459 (*avx_movdqu<avxmodesuffix>): Likewise.
22460
22461 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
22462 -mavx256-split-unaligned-store.
22463
1ea9206a
RS
224642011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
22465
22466 PR target/38598
22467 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
22468 Update commentary.
22469
b99ce2a8
RS
224702011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
22471
22472 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
22473 opno arguments with an expand_operand. Use create_input_operand.
22474 (mips_prepare_builtin_target): Delete.
22475 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
22476 functions.
22477 (mips_expand_builtin_direct): Use create_output_operand and
22478 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
22479 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
22480 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
22481
69d52339
IR
224822011-03-27 Ira Rosen <ira.rosen@linaro.org>
22483
22484 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
22485 function.
22486 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
22487
ba5e9aca
EB
224882011-03-26 Eric Botcazou <ebotcazou@adacore.com>
22489
22490 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
22491 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
22492 basic blocks and call commit_edge_insertions directly.
22493 (fixup_abnormal_edges): Move from here to...
22494 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
22495 on the edges and return whether some have actually been inserted.
22496 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
22497 compensation code.
22498
5d369d58
AB
224992011-03-26 Andrey Belevantsev <abel@ispras.ru>
22500
22501 PR rtl-optimization/48144
22502 * sel-sched-ir.c (merge_history_vect): Factor out from ...
22503 (merge_expr_data): ... here.
22504 (av_set_intersect): Rename to av_set_code_motion_filter.
22505 Update all callers. Call merge_history_vect when an expression
22506 is found in both sets.
22507 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
22508
f082c000
AM
225092011-03-26 Alan Modra <amodra@gmail.com>
22510
22511 * config/rs6000/predicates.md (word_offset_memref_op): Handle
22512 cmodel medium addresses.
22513 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
22514 64-bit gpr loads and stores.
22515 (rs6000_secondary_reload_ppc64): New function.
22516 * config/rs6000/rs6000-protos.h: Declare it.
22517 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
22518
8ac5e12e
AM
225192011-03-26 Alan Modra <amodra@gmail.com>
22520
22521 PR target/47487
22522 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
22523 GNU Go in traceback table.
22524
c2654ded
RH
225252011-03-25 Richard Henderson <rth@redhat.com>
22526
22527 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
22528 if there are exactly 6 operands.
22529 (set_storage_via_setmem): Similarly.
22530
ba78087b
KT
225312011-03-25 Kai Tietz <ktietz@redhat.com>
22532
22533 * collect2.c (write_c_file_stat): Handle backslash
22534 as right-hand directory separator.
22535 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
22536 checking just for slash.
22537 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
22538 instead of checking for trailing slash.
22539 * gcc.c (record_temp_file): Use filename_cmp instead
22540 of strcmp.
22541 (do_spec_1): Likewise.
22542 (replace_outfile_spec_function): Likewise.
22543 (is_directory): Use filename_ncmp instead of strncmp.
22544 (print_multilib_info): Likewise.
22545 * gcov.c (find_source): Use filename_cmp instead
22546 instead of strcmp.
22547 (make_gcov_file_name): Fix order of slash/backslash
22548 checks.
22549 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
22550 (add_standard_paths): Likewise.
22551 * mips-tfile.c (saber_stop): Handle backslash.
22552 * prefix.c (update_path): Use filename_ncmp instead of
22553 strncmp.
22554 * profile.c (output_location): Use filename_cmp instead
22555 of strcmp.
22556 * read-md.c (handle_toplevel_file): Handle backslash.
22557 * tlink.c (frob_extension): Likewise.
22558 * tree-cfg.c (same_line_p): Use filename_cmp instead of
22559 strcmp.
22560 * tree-dump.c (dequeue_and_dump): Handle backslash.
22561 * tree.c (get_file_function_name): Likewise.
22562 * gengtype.c (read_input_list): Likewise.
22563 (get_file_realbasename): Likewise.
22564 (get_output_file_with_visibility): Use filename_cmp
22565 instead of strcmp.
22566
75f6ec9a
RS
225672011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
22568
22569 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
22570 case to VFPv1.
22571
6c4e2997
NF
225722011-03-25 Nathan Froyd <froydnj@codesourcery.com>
22573
22574 * fold-const.c (expr_location_or): New function.
22575 (fold_truth_not_expr): Call it.
22576
0edf1bb2
JL
225772011-03-25 Jeff Law <law@redhat.com>
22578
22579 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
22580 va_end.
22581 * c-family/c-common.c (def_fn_type): Likewise.
22582 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
22583 * emit-rtl.c (gen_rtvec): Likewise.
22584 * lto/lto-lang.c (def_fn_type): Likewise.
22585
fdc2de95
RG
225862011-03-25 Richard Guenther <rguenther@suse.de>
22587
22588 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
22589 also generate copies.
22590 (fini_copy_prop): Handle constant values properly.
22591
21385db0
JJ
225922011-03-25 Jakub Jelinek <jakub@redhat.com>
22593
22594 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
22595 mode size instead of bitsize with DWARF2_ADDR_SIZE.
22596 (hash_loc_operands, compare_loc_operands): Handle
22597 DW_OP_GNU_entry_value.
22598
6510e8bb
KT
225992011-03-25 Kai Tietz <ktietz@redhat.com>
22600
22601 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
22602 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
22603 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
22604 comment and use macro TARGET_64BIT_MS_ABI instead.
22605 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
22606 and change default behavior for 32-bit MS_ABI.
22607 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
22608 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
22609 32-bit, too.
22610 (ix86_cfun_abi): Likewise.
22611 (ix86_maybe_switch_abi): Adjust comment.
22612 (init_cumulative_args): Check for bit-ness in MS_ABI case.
22613 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
22614 instead of checking for SYSV_ABI.
22615 (ix86_nsaved_sseregs): Likewise.
22616 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
22617 to 16 bytes.
22618 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
22619 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
22620 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
22621 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
22622 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
22623
34019e28
RG
226242011-03-25 Richard Guenther <rguenther@suse.de>
22625
22626 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
22627 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
22628 (verify_gimple): Remove.
22629 * tree-cfg.c (verify_gimple_call): Merge verification
22630 from verify_stmts.
22631 (verify_gimple_phi): Merge verification from verify_stmts.
22632 (verify_gimple_label): New function.
22633 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
22634 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
22635 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
22636 (verify_stmts): Rename to verify_gimple_in_cfg.
22637 (verify_gimple_in_cfg): New function.
22638 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
22639 * tree-ssa.c (verify_ssa): Likewise.
22640 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
22641
605896f5
RG
226422011-03-25 Richard Guenther <rguenther@suse.de>
22643
22644 * passes.c (init_optimization_passes): Add FRE pass after
22645 early SRA.
22646
7baa7c13
BS
226472011-03-25 Bernd Schmidt <bernds@codesourcery.com>
22648 Andrew Stubbs <ams@codesourcery.com>
22649
22650 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
22651 for Cortex-A8.
22652 (arm_movdi_vfp_cortexa8): New pattern.
22653 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
22654 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
22655 instructions when tuning for Cortex-A8. Set attribute "arch".
22656 * config/arm/arm.md: Move include arm-tune.md up a bit.
22657 (define_attr "arch"): Add "onlya8" and "nota8" values.
22658 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
22659
45dbce1b
NF
226602011-03-25 Nathan Froyd <froydnj@codesourcery.com>
22661
4ff08abf 22662 PR bootstrap/48282
45dbce1b
NF
22663 Revert:
22664 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
22665
22666 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
22667 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
22668 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
22669 * passes.c (init_optimization_passes): Move
22670 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
22671
ac9a30ae
KT
226722011-03-25 Kai Tietz <ktietz@redhat.com>
22673
22674 * c-typeck.c (comptypes_internal): Replace target
22675 hook call of comp_type_attributes by version in tree.c file.
22676 * gimple.c (gimple_types_compatible_p_1): Likewise.
22677 * tree-ssa.c (useless_type_conversion_p): Likewise.
22678 * tree.c (build_type_attribute_qual_variant): Likewise.
22679 (attribute_value_equal): New static helper function.
22680 (comp_type_attributes): New function.
22681 (merge_attributes): Use attribute_value_equal for comparison.
22682 (attribute_list_contained): Likewise.
22683 * tree.h (comp_type_attributes): New prototype.
22684
afdac116
RG
226852011-03-25 Richard Guenther <rguenther@suse.de>
22686
22687 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
22688 of complex types at -O0.
22689 (verify_gimple_assign_binary): Likewise.
22690 (verify_gimple_assign_ternary): Likewise.
22691
ec6165f8
MW
226922011-03-24 Mark Wielaard <mjw@redhat.com>
22693
22694 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
22695 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
22696
2a5ac39a
MW
226972011-03-24 Mark Wielaard <mjw@redhat.com>
22698
22699 PR debug/48041
22700 * dwarf2out.c (output_abbrev_section): Only write table when
22701 abbrev_die_table_in_use > 1.
22702
e533b2a4
RH
227032011-02-24 Richard Henderson <rth@redhat.com>
22704
22705 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
22706 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
22707 (alpha_expand_unaligned_load_words): Use extql.
22708 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
22709 (emit_insxl): Handle all modes for consistency.
22710
0b2a7367
RH
227112011-02-24 Richard Henderson <rth@redhat.com>
22712
22713 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
22714 (alpha_expand_unaligned_load): Likewise.
22715 (alpha_expand_unaligned_store): Likewise.
22716 (alpha_expand_unaligned_load_words): Likewise.
22717 (alpha_expand_unaligned_store_words): Likewise.
22718 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
22719 (alpha_split_lock_test_and_set_12): Likewise.
22720 (print_operand, alpha_fold_builtin_extxx): Likewise.
22721 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
22722 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
22723 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
22724 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
22725 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
22726 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
22727 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
22728 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
22729 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
22730 (extwl, extll, extql): Similarly.
22731 (inswh, inslh, insqh): Similarly.
22732 (mskbl, mskwl, mskll, mskql): Similarly.
22733 (mskwh, msklh, mskqh): Similarly.
22734
315b2bef
RH
227352011-02-24 Richard Henderson <rth@redhat.com>
22736
22737 * config/alpha/alpha.md (attribute isa): Add er, ner.
22738 (attribute enabled): Handle them.
22739 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
22740
67102517
RH
227412011-02-24 Richard Henderson <rth@redhat.com>
22742
22743 * config/alpha/alpha.md (attribute isa): Add vms.
22744 (attribute enabled): Handle it.
22745 (*movsf): Merge *movsf_{nofix,fix,nofp}.
22746 (*movdf): Merge *movdf_{nofix,fix,nofp}.
22747 (*movtf): Rename from *movtf_internal for consistency.
22748 (*movsi): Merge with *movsi_nt_vms.
22749 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
22750 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
22751 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
22752 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
22753
6aba5cb4
RH
227542011-02-24 Richard Henderson <rth@redhat.com>
22755
22756 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
22757 (extendqisi2, extendhisi2): Likewise.
22758 (extendqidi2): Simplify BWX/non-BWX expansions.
22759 (extendhidi2): Similarly.
22760
bdfb351b
RH
227612011-02-24 Richard Henderson <rth@redhat.com>
22762
22763 * config/alpha/alpha.md (attribute isa): New.
22764 (attribute enabled): New.
22765 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
22766 (zero_extendqisi2, zero_extendqidi2): Similarly.
22767 (zero_extendhisi2, zero_extendhidi2): Similarly.
22768 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
22769
6abe71eb
RH
227702011-02-24 Richard Henderson <rth@redhat.com>
22771
22772 * config/alpha/predicates.md (input_operand): Revert last change;
22773 update comment to mention 32-bit VMS rather than Windows.
22774
7114321e
NF
227752011-03-24 Nathan Froyd <froydnj@codesourcery.com>
22776
22777 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
22778 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
22779 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
22780 * passes.c (init_optimization_passes): Move
22781 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
22782
c8679567
EB
227832011-03-24 Eric Botcazou <ebotcazou@adacore.com>
22784
22785 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
22786
27173058
UB
227872011-03-24 Uros Bizjak <ubizjak@gmail.com>
22788
22789 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
22790 correctly.
22791
6f0c9f06
JJ
227922011-03-24 Jakub Jelinek <jakub@redhat.com>
22793
22794 PR debug/48204
22795 * simplify-rtx.c (simplify_const_unary_operation): Call
22796 real_convert when changing mode class with FLOAT_EXTEND.
22797
662666e5
NC
227982011-03-24 Nick Clifton <nickc@redhat.com>
22799
22800 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
22801 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
22802 * config/rx/rx.c (rx_option_override): Set align_jumps,
22803 align_loops and align_labels if not set by the user.
22804 (rx_align_for_label): New function.
22805 (rx_max_skip_for_label): New function.
22806 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
22807 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
22808 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
22809 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
22810 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
22811
2b99b2b8
RS
228122011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
22813
22814 PR rtl-optimization/48263
22815 * optabs.c (expand_binop_directly): Reinstate convert_modes code
22816 and original commutative_p handling. Use maybe_gen_insn.
22817
ccecd6ea
AK
228182011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22819
22820 * reload.c (find_reloads_subreg_address): Add address_reloaded
22821 parameter and return true there if the full address has been
22822 reloaded.
22823 (find_reloads_toplev): Pass address_reloaded flag.
22824 (find_reloads_address_1): Don't use address_reloaded parameter.
22825
67295642
JL
228262011-03-24 Jeff Law <law@redhat.com>
22827
22828 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
22829 unused variable "ann".
22830 (remove_unused_locals): Likewise.
22831
22832 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
22833 statement.
22834
22835 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
22836 after it is freed.
22837
212aa74f
AK
228382011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22839
22840 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
22841 for invalid symbolic addresses.
22842 (s390_secondary_reload): Don't use s390_check_symref_alignment for
22843 larl operands.
22844
fe784e0d
EB
228452011-03-24 Eric Botcazou <ebotcazou@adacore.com>
22846
22847 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
22848 the argument in calls to fold_truth_not_expr.
22849
63ee8641
NF
228502011-03-24 Nathan Froyd <froydnj@codesourcery.com>
22851
22852 * tree.c (record_node_allocation_statistics): New function.
22853 (make_node_stat, copy_node_stat, build_string): Call it.
22854 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
22855 (build1_stat, build_omp_clause): Likewise.
22856
61be2a1c
RS
228572011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
22858
22859 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
22860 last commit.
22861
a881aaa7
RG
228622011-03-24 Richard Guenther <rguenther@suse.de>
22863
22864 PR tree-optimization/48271
22865 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
22866 blocks that still exist.
22867
dbaa912c
RG
228682011-03-24 Richard Guenther <rguenther@suse.de>
22869
22870 PR tree-optimization/48270
22871 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
22872 not free datarefs before ddrs.
22873
1d60cc55
EB
228742011-03-24 Eric Botcazou <ebotcazou@adacore.com>
22875
22876 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
22877 from the address built for a reference with variable offset.
22878
c78dd519
UB
228792011-03-24 Uros Bizjak <ubizjak@gmail.com>
22880
22881 PR target/48237
22882 * config/i386/i386.md (*movdf_internal_rex64): Do not split
22883 alternatives that can be handled with movq or movabsq insn.
22884 (*movdf_internal): Disable for !TARGET_64BIT.
22885 (*movdf_internal_nointeger): Ditto.
22886 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
22887
b25b9e8f
NF
228882011-03-24 Nathan Froyd <froydnj@codesourcery.com>
22889
22890 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
22891 (FUNCTION_ARG_ADVANCE): Likewise.
22892 * tm.texi.in: Change references to them to hook references.
22893 * tm.texi: Regenerate.
c78dd519 22894 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
22895 (default_function_incoming_arg): Likewise.
22896 (default_function_arg_advance): Likewise.
c78dd519 22897 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
22898 (function_arg_advance): Likewise.
22899 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
22900
190b2187
RG
229012011-03-24 Richard Guenther <rguenther@suse.de>
22902
22903 PR middle-end/48269
22904 * tree-object-size.c (addr_object_size): Do not double-account
22905 for MEM_REF offsets.
22906
a183b5c7
DN
229072011-03-24 Diego Novillo <dnovillo@google.com>
22908
22909 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 22910 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
22911 (lto_input_data_block): Move from lto-opts.c. Make extern.
22912 Update all users.
22913 (lto_input_string): Rename from input_string. Make extern.
22914 Update all users.
22915 * lto-streamer-out.c (lto_output_string_with_length): Rename from
22916 output_string_with_length.
22917 Output 0 to indicate a non-NULL string. Update all callers to
22918 not emit 0.
22919 (lto_output_string): Rename from output_string. Make extern.
22920 Update all users.
22921 (lto_output_decl_state_streams): Make extern.
22922 (lto_output_decl_state_refs): Make extern.
22923 * lto-streamer.h (lto_input_string): Declare.
22924 (lto_input_data_block): Declare.
22925 (lto_output_string): Declare.
22926 (lto_output_string_with_length): Declare.
22927 (lto_output_decl_state_streams): Declare.
22928 (lto_output_decl_state_refs): Declare.
22929
cfef45c8
RG
229302011-03-24 Richard Guenther <rguenther@suse.de>
22931
22932 PR tree-optimization/46562
22933 * tree.c (build_invariant_address): New function.
22934 * tree.h (build_invariant_address): Declare.
22935 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
22936 a renamed function moved ...
22937 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
22938 Take valueization callback parameter.
22939 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
22940 * gimple-fold.h: New file.
22941 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
22942 (ccp_fold, fold_const_aggregate_ref,
22943 fold_ctor_reference, fold_nonarray_ctor_reference,
22944 fold_array_ctor_reference, fold_string_cst_ctor_reference,
22945 get_base_constructor): Move ...
22946 * gimple-fold.c: ... here.
22947 (gimple_fold_stmt_to_constant_1): New function
22948 split out from ccp_fold. Take a valueization callback parameter.
22949 Valueize all operands.
22950 (gimple_fold_stmt_to_constant): New wrapper function.
22951 (fold_const_aggregate_ref_1): New function split out from
22952 fold_const_aggregate_ref. Take a valueization callback parameter.
22953 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
22954 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
22955 invariant POINTER_PLUS_EXPRs to invariant form.
22956 (vn_valueize): New function.
22957 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
22958 * tree-vrp.c (vrp_valueize): New function.
22959 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
22960 to fold statements to constants.
22961 * tree-ssa-pre.c (eliminate): Properly guard propagation of
22962 function declarations.
22963 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
22964 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
22965
5e0a7e40
RS
229662011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
22967
22968 * config/h8300/predicates.md (jump_address_operand): Fix register
22969 mode check.
22970
bfe068c3
IR
229712011-03-24 Ira Rosen <ira.rosen@linaro.org>
22972
22973 * doc/invoke.texi (max-stores-to-sink): Document.
22974 * params.h (MAX_STORES_TO_SINK): Define.
22975 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
22976 if either vectorization or if-conversion is disabled.
22977 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
22978 tree-vect-data-refs.c vect_equal_offsets.
22979 (dr_equal_offsets_p): New function.
22980 (find_data_references_in_bb): Remove static.
22981 * tree-data-ref.h (find_data_references_in_bb): Declare.
22982 (dr_equal_offsets_p): Likewise.
22983 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
22984 (vect_drs_dependent_in_basic_block): Update calls to
22985 vect_equal_offsets.
22986 (vect_check_interleaving): Likewise.
22987 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
22988 (cond_if_else_store_replacement): Rename to...
22989 (cond_if_else_store_replacement_1): ... this. Change arguments and
22990 documentation.
22991 (cond_if_else_store_replacement): New function.
22992 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
22993 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
22994
4908b0bf
CLT
229952011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
22996
22997 PR target/46934
22998 * config/arm/arm.md (casesi): Use the gen_int_mode() function
22999 to subtract lower bound instead of GEN_INT().
23000
2be478a2
JW
230012011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
23002
23003 PR other/48179
23004 PR other/48221
23005 PR other/48234
23006 * doc/extend.texi (Alignment): Move section to match order in TOC.
23007 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
23008 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
23009
0c617be4
JL
230102011-03-23 Jeff Law <law@redhat.com>
23011
23012 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
23013 before removing the edge.
23014
23015 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
23016 it may have been freed by redirect_branch_edge or
23017 redirect_edge_succ_nodup.
23018
58da96fe
RG
230192011-03-23 Richard Guenther <rguenther@suse.de>
23020
c78dd519 23021 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
23022 (check_va_list_escapes): Likewise.
23023 (check_all_va_list_escapes): Likewise.
23024
b8beb4d1
RG
230252011-03-23 Richard Guenther <rguenther@suse.de>
23026
23027 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
23028 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
23029 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
23030 (alias.o): Likewise.
23031 (ipa-type-escape.o): Remove.
23032 (ipa-struct-reorg.o): Likewise.
23033 (GTFILES): Remove ipa-struct-reorg.c.
23034 * alias.c: Do not include ipa-type-escape.h.
23035 * tree-ssa-alias.c: Likewise.
23036 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
23037 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
23038 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
23039 and ipa-type-escape passes.
23040 * tree-pass.h (pass_ipa_type_escape): Remove.
23041 (pass_ipa_struct_reorg): Likewise.
23042 * ipa-struct-reorg.h: Remove.
23043 * ipa-struct-reorg.c: Likewise.
23044 * ipa-type-escape.h: Likewise.
23045 * ipa-type-escape.c: Likewise.
23046 * doc/invoke.texi (-fipa-struct-reorg): Remove.
23047 (--param struct-reorg-cold-struct-ratio): Likewise.
23048 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
23049 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
23050 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
23051
f137aa63
AK
230522011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23053
23054 * config/s390/2084.md: Enable all insn reservations also for z9_ec
23055 cpu attribute value.
23056 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
23057 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
23058 * config/s390/s390.c (processor_flags_table): New constant array.
23059 (s390_handle_arch_option): Remove.
23060 (s390_handle_option): Remove s390_handle_arch_option invocations
23061 and OPT_mwarn_framesize_ handling.
23062 (s390_option_override): Remove s390_handle_arch_option invocation.
23063 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
23064 warnings.
23065 * config/s390/s390.md (cpu attribute): Add z9_ec value.
23066 * config/s390/s390.opt (s390_tune, s390_arch)
23067 (march=): Replace s390_arch_option enum and values with
23068 processor_type. Set variable name to s390_arch. Set
23069 initialization value.
23070 (mtune=): Replace s390_arch_option with processor_type. Set
23071 variable name to s390_tune. Set initialization value.
23072
bf90208f
JB
230732011-03-23 Julian Brown <julian@codesourcery.com>
23074
23075 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
23076 accesses which are not naturally aligned.
23077
3460fdf3
RS
230782011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
23079
23080 PR target/47553
23081 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
23082
a5c7d693
RS
230832011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
23084
23085 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
23086 parameter from "int" to "enum insn_code".
23087 (expand_operand_type): New enum.
23088 (expand_operand): New structure.
23089 (create_expand_operand): New function.
23090 (create_fixed_operand, create_output_operand): Likewise
23091 (create_input_operand, create_convert_operand_to): Likewise.
23092 (create_convert_operand_from, create_address_operand): Likewise.
23093 (create_integer_operand): Likewise.
23094 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
23095 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
23096 (expand_insn, expand_jump_insn): Likewise.
23097 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
23098 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
23099 (expand_movstr, expand_builtin___clear_cache): Likewise.
23100 (expand_builtin_lock_release): Likewise.
23101 * explow.c (allocate_dynamic_stack_space): Likewise.
23102 (probe_stack_range): Likewise. Allow check_stack to FAIL,
23103 and use the default handling in that case.
23104 * expmed.c (check_predicate_volatile_ok): Delete.
23105 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
23106 (emit_cstore): Likewise.
23107 * expr.c (emit_block_move_via_movmem): Likewise.
23108 (set_storage_via_setmem, expand_assignment): Likewise.
23109 (emit_storent_insn, try_casesi): Likewise.
23110 (emit_single_push_insn): Likewise. Allow the expansion to fail.
23111 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
23112 (expand_vec_shift_expr, expand_binop_directly): Likewise.
23113 (expand_twoval_unop, expand_twoval_binop): Likewise.
23114 (expand_unop_direct, emit_indirect_jump): Likewise.
23115 (emit_conditional_move, vector_compare_rtx): Likewise.
23116 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
23117 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
23118 (expand_sync_lock_test_and_set): Likewise.
23119 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
23120 (emit_unop_insn): Likewise.
23121 (expand_copysign_absneg): Change icode to an insn_code.
23122 (create_convert_operand_from_type): New function.
23123 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
23124 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
23125 (expand_insn, expand_jump_insn): Likewise.
23126 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
23127 than const_int_operand for operand 2.
23128
78fadbab
AK
231292011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23130
23131 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
23132 if possible.
23133
5f02387d
NF
231342011-03-22 Nathan Froyd <froydnj@codesourcery.com>
23135
23136 * emit-rtl.c (emit_pattern_before_noloc): New function.
23137 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
23138 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
23139 (emit_pattern_after_noloc): New function.
23140 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
23141 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
23142
fdf3e18a
NF
231432011-03-22 Nathan Froyd <froydnj@codesourcery.com>
23144
23145 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
23146 (__ffsDI2): Likewise.
23147
42d085c1
RH
231482011-03-22 Richard Henderson <rth@redhat.com>
23149
23150 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
23151 of !TARGET_ABI_OPEN_VMS.
23152 (alpha_trampoline_init, alpha_start_function): Likewise.
23153 (alpha_expand_epilogue, alpha_file_start): Likewise.
23154 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
23155 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
23156 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
23157 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
23158 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
23159
cabbe12a
JM
231602011-03-22 Joseph Myers <joseph@codesourcery.com>
23161
23162 * config/s390/s390-opts.h: New.
23163 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
23164 s390_arch_flags, s390_warn_framesize, s390_stack_size,
23165 s390_stack_guard): Remove.
23166 (s390_handle_arch_option): Return void. Take enum
23167 s390_arch_option value instead of string and searching array.
23168 (s390_handle_option): Don't assert that global structures are in
23169 use. Access variables via opts pointer. Use error_at. Don't use
23170 sscanf for -mstack-guard= or -mstack-size=. Update call to
23171 s390_handle_arch_option.
23172 (s390_option_override): Update call to s390_handle_arch_option.
23173 (s390_emit_prologue): Use %d format for s390_stack_size in
23174 diagnostic. Use %wd for HOST_WIDE_INT.
23175 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
23176 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
23177 * config/s390/s390.opt (config/s390/s390-opts.h): New
23178 HeaderInclude entry.
23179 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
23180 s390_arch_flags, s390_warn_framesize): New Variable entries.
23181 (s390_arch_option): New Enum and EnumValue entries.
23182 (march=): Use Enum instead of Var.
23183 (mstack-guard=, mstack-size=): Use UInteger and Var.
23184 (mtune=): Use Enum.
23185
05b12036
JM
231862011-03-22 Joseph Myers <joseph@codesourcery.com>
23187
23188 * config/score/score.c (score_handle_option): Don't assert that
23189 global structures are in use. Access target_flags via opts
23190 pointer. Use value of -march= option to determine target_flags
23191 settings.
23192 * config/score/score.opt (march=): Use Enum.
23193 (score_arch): New Enum and EnumValue entries.
23194
dd51e35a
JM
231952011-03-22 Joseph Myers <joseph@codesourcery.com>
23196
23197 * config/mep/mep.c (option_mtiny_specified): Remove.
23198 (mep_option_override): Move register handling for -mivc2 from
23199 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
23200 instead of option_mtiny_specified.
23201 (mep_handle_option): Access target_flags via opts pointer. Don't
23202 assert that global structures are in use. Defer part of -mivc2
23203 handling and move it to mep_option_override.
23204 * config/mep/mep.opt (IVC2): New Mask entry.
23205 (mivc2): Use Var and Defer instead of Mask.
23206
4a8d3d91
JM
232072011-03-22 Joseph Myers <joseph@codesourcery.com>
23208
23209 * config/v850/v850-opts.h: New.
23210 * config/v850/v850.c (small_memory): Replace with
23211 small_memory_physical_max array. Make that array static const.
23212 (v850_handle_memory_option): Take integer value of argument. Take
23213 gcc_options pointer, option text and location. Return void.
23214 Update for changes to small memory structures.
23215 (v850_handle_option): Access target_flags via opts pointer. Don't
23216 assert that global structures are in use. Update calls to
23217 v850_handle_memory_option.
c78dd519
UB
23218 (v850_encode_data_area): Update references to small memory settings.
23219 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
23220 (enum small_memory_type): Move to v850-opts.h.
23221 * config/v850/v850.opt (config/v850/v850-opts.h): New
23222 HeaderInclude entry.
23223 (small_memory_max): New Variable entry.
23224 (msda): Replace by pair of options msda= and msda-. Use UInteger.
23225 (mtda, mzda): Likewise.
23226
117fdbfa
JM
232272011-03-22 Joseph Myers <joseph@codesourcery.com>
23228
23229 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
23230 pointer. Don't assert that global structures are in use.
23231
d715091c
JM
232322011-03-22 Joseph Myers <joseph@codesourcery.com>
23233
23234 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
23235 via opts pointer. Don't assert that global structures are in use.
23236
1bb721dc
JM
232372011-03-22 Joseph Myers <joseph@codesourcery.com>
23238
23239 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
23240 (munix=93): Use Var.
23241 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
23242 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
23243 * config/pa/pa-opts.h: New.
23244 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
23245 (pa_handle_option): Don't assert that global structures are in
23246 use. Access target_flags via opts pointer. Don't handle
23247 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
23248 OPT_munix_98 here.
23249 (pa_option_override): Handle deferred OPT_mfixed_range_.
23250
cd8d8754
JM
232512011-03-22 Joseph Myers <joseph@codesourcery.com>
23252
23253 * config/mn10300/mn10300-opts.h: New.
23254 * config/mn10300/mn10300.c (mn10300_processor,
23255 mn10300_tune_string): Remove.
23256 (mn10300_handle_option): Don't assert that global structures are
23257 in use. Access mn10300_processor via opts pointer. Don't handle
23258 OPT_mtune_ here.
23259 * config/mn10300/mn10300.h (enum processor_type): Move to
23260 mn10300-opts.h.
23261 (mn10300_processor): Remove.
23262 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
23263 HeaderInclude entry.
23264 (mn10300_processor): New Variable entry.
23265 (mtune=): Use Var.
23266
24e6e6b1
JM
232672011-03-22 Joseph Myers <joseph@codesourcery.com>
23268
23269 * config/microblaze/microblaze.c: Don't include opts.h.
23270 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
23271 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
23272 (mno-clearbss): Use Var and Warn.
23273
8a784afb
JM
232742011-03-22 Joseph Myers <joseph@codesourcery.com>
23275
23276 * config/m32r/m32r-opts.h: New.
23277 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
23278 (m32r_handle_option): Don't assert that global structures are in
23279 use. Access target_flags and m32r_cache_flush_func via opts
23280 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
23281 OPT_mno_flush_trap here.
23282 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
23283 include of m32r-opts.h.
23284 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
23285 HeaderInclude entry.
23286 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
23287 (mmodel=): Use Enum and Var.
23288 (m32r_model): New Enum and EnumValue entries.
23289 (mno-flush-trap): Use Var.
23290 (msdata=): Use Enum and Var.
23291 (m32r_sdata): New Enum and EnumValue entries.
23292
bbfc9a8c
JM
232932011-03-22 Joseph Myers <joseph@codesourcery.com>
23294
23295 * config/m32c/m32c.c: Don't include opts.h.
23296 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
23297 m32c_handle_option): Remove.
23298 (m32c_option_override): Check global_options_set.x_target_memregs
23299 instead of target_memregs_set.
23300 * config/m32c/m32c.h (target_memregs): Remove.
23301 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
23302 variable.
23303
e24b8335
JM
233042011-03-22 Joseph Myers <joseph@codesourcery.com>
23305
23306 * config/iq2000/iq2000-opts.h: New.
23307 * config/iq2000/iq2000.c: Don't include opts.h.
23308 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 23309 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
23310 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
23311 HeaderInclude entry.
23312 (iq2000_tune): New Variable entry.
23313 (march=): Add comment. Use Enum.
23314 (iq2000_arch): New Enum and EnumValue entries.
23315 (mcpu=): Use Enum and Var.
23316 (iq2000_tune): New Enum and EnumValue entries.
23317
e6cc0c98
JM
233182011-03-22 Joseph Myers <joseph@codesourcery.com>
23319
23320 * config/ia64/ia64-opts.h: New.
23321 * config/ia64/ia64.c (ia64_tune): Remove.
23322 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
23323 here. Use error_at.
23324 (ia64_option_override): Handle deferred OPT_mfixed_range_.
23325 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
23326 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
23327 HeaderInclude entry.
23328 (ia64_tune): New Variable entry.
23329 (mfixed-range=): Use Defer and Var.
23330 (mtune=): Use Enum and Var.
23331 (ia64_tune): New Enum and EnumValue entries.
23332
db25893c
JM
233332011-03-22 Joseph Myers <joseph@codesourcery.com>
23334
23335 * config/frv/frv-opts.h: New.
23336 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
23337 frv-opts.h.
23338 (frv_cpu_type): Remove.
23339 * config/frv/frv.c: Don't include opts.h.
23340 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 23341 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
23342 (frv_cpu_type): New Variable entry.
23343 (frv_cpu): New Enum and EnumValue entries.
23344
6c223f5d
JM
233452011-03-22 Joseph Myers <joseph@codesourcery.com>
23346
23347 * config/cris/cris.c (cris_handle_option): Access target_flags via
23348 opts pointer. Don't assert that global structures are in use.
23349 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
23350 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
23351
bbd399cf
JM
233522011-03-22 Joseph Myers <joseph@codesourcery.com>
23353
23354 * config/bfin/bfin-opts.h: New.
23355 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
23356 bfin_si_revision, bfin_workarounds): Remove.
23357 (bfin_cpus): Make static const.
23358 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
23359 not bfin_lib_id_given.
23360 (bfin_handle_option): Don't set bfin_lib_id_given. Access
23361 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 23362 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
23363 * config/bfin/bfin.h: Include bfin-opts.h.
23364 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
23365 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
23366 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
23367 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
23368 entries.
23369
5e1b4d5a
JM
233702011-03-22 Joseph Myers <joseph@codesourcery.com>
23371
23372 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
23373 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
23374 or -msoft-float here.
23375 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
23376 -msoft-float and -mhard-float.
c78dd519 23377 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
23378 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
23379 msoft-float.
23380 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
23381 -msoft-float.
23382 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
23383 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
23384 not mhard-float.
23385 (LIBGCC_SPEC): Don't handle -msoft-float.
23386 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
23387 -mhard-float.
23388 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
23389 msoft-float.
23390 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
23391 -mfloat-abi=*, not -msoft-float and -mhard-float.
23392 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
23393 -msoft-float.
23394 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
23395 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
23396 mhard-float and msoft-float.
23397 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
23398 mfloat-abi=soft in comments, not mhard-float and msoft-float.
23399 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
23400 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
23401 mhard-float.
23402 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
23403 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
23404 msoft-float.
23405 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
23406 not mhard-float.
23407 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
23408 not msoft-float.
23409
800d1de1
RH
234102011-03-22 Richard Henderson <rth@redhat.com>
23411
23412 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
23413 TARGET_ABI_WINDOWS_NT.
23414 (alpha_output_function_end_prologue): Likewise.
23415 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
23416 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
23417 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
23418 (trap, *movsi_nt_vms): Likewise.
23419 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
23420 (*tablejump_osf_nt_internal): Remove.
23421 * config/alpha/predicates.md (input_operand): Only test Pmode.
23422
c59ddd2b
JM
234232011-03-22 Joseph Myers <joseph@codesourcery.com>
23424
23425 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
23426 via opts pointer. Use error_at. Don't assert that global
23427 structures are in use.
23428
1333f97f
JM
234292011-03-22 Joseph Myers <joseph@codesourcery.com>
23430
23431 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
23432 (ix86_handle_option): Access ix86_isa_flags and
23433 ix86_isa_flags_explicit via opts pointer. Don't assert that
23434 global structures are in use.
23435 (ix86_function_specific_save, ix86_function_specific_restore):
23436 Update ix86_isa_flags_explicit field name.
c78dd519 23437 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
23438 (ix86_isa_flags_explicit): Rename TargetSave entry to
23439 x_ix86_isa_flags_explicit.
23440
75db85d8
RH
234412011-03-22 Richard Henderson <rth@redhat.com>
23442
23443 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
23444 (alpha_option_override, direct_return): Likewise.
23445 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
23446 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
23447 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
23448 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
23449 (alpha_expand_epilogue, alpha_end_function): Likewise.
23450 (alpha_init_libfuncs): Likewise.
23451 (struct machine_function): Remove unicosmk members.
23452 (print_operand) ['t']: Remove.
23453 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
23454 unicosmk_output_module_name, unicosmk_output_common,
23455 current_section_align, unicosmk_output_text_section_asm_op,
23456 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
23457 unicosmk_section_type_flags, unicosmk_unique_section,
23458 unicosmk_asm_named_section, unicosmk_insert_attributes,
23459 unicosmk_output_align, unicosmk_defer_case_vector,
23460 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
23461 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
23462 unicosmk_output_ssib, unicosmk_add_call_info_word,
23463 unicosmk_extern_head, unicosmk_output_default_externs,
23464 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
23465 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
23466 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
23467 * config/alpha/alpha-protos.h: Update.
23468 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
23469 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
23470 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
23471 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
23472 (*mulsi_se, mulvsi3): Likewise.
23473 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
23474 (*divmodsi_internal, call, call_value, realign): Likewise.
23475 (moddi3, umoddi3): Likewise; remove duplicate expander.
23476 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
23477 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
23478 (*movdi_nofix): Remove r/U alternative.
23479 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
23480 * config/alpha/constraints.md ("U"): Remove.
23481 * config/alpha/predicates.md (call_operand"): Don't test
23482 TARGET_ABI_UNICOSMK.
23483
96e45421
JM
234842011-03-22 Joseph Myers <joseph@codesourcery.com>
23485
23486 * target.def (handle_option): Take gcc_options and
23487 cl_decoded_option pointers and location_t.
23488 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
23489 * doc/tm.texi: Regenerate.
23490 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
23491 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
23492 * lto-opts.c (lto_reissue_options): Generate option structure for
23493 targetm.handle_option call.
23494 * opts.c (target_handle_option): Update call to
23495 targetm.handle_option. Remove assertions about values now passed
23496 down to hook.
23497 * targhooks.c (default_target_handle_option): New.
23498 * targhooks.h (default_target_handle_option): Declare.
23499 * config/alpha/alpha.c: Include opts.h.
23500 (alpha_handle_option): Update to new hook interface.
23501 * config/arm/arm.c: Include opts.h.
23502 (arm_handle_option): Update to new hook interface.
23503 * config/arm/t-arm (arm.o): Update dependencies.
23504 * config/bfin/bfin.c: Include opts.h.
23505 (bfin_handle_option): Update to new hook interface.
23506 * config/cris/cris.c: Include opts.h.
23507 (cris_handle_option): Update to new hook interface.
23508 * config/frv/frv.c: Include opts.h.
23509 (frv_handle_option): Update to new hook interface.
23510 * config/i386/i386.c: Include opts.h.
23511 (ix86_handle_option): Update to new hook interface.
23512 (ix86_valid_target_attribute_inner_p): Generate option structure
23513 for call to ix86_handle_option.
23514 * config/i386/t-i386 (i386.o): Update dependencies.
23515 * config/ia64/ia64.c: Include opts.h.
23516 (ia64_handle_option): Update to new hook interface.
23517 * config/ia64/t-ia64 (ia64.o): Update dependencies.
23518 * config/iq2000/iq2000.c: Include opts.h.
23519 (iq2000_handle_option): Update to new hook interface.
23520 * config/m32c/m32c.c: Include opts.h.
23521 (m32c_handle_option): Update to new hook interface.
23522 * config/m32r/m32r.c: Include opts.h.
23523 (m32r_handle_option): Update to new hook interface.
23524 * config/m68k/m68k.c: Include opts.h.
23525 (m68k_handle_option): Update to new hook interface.
23526 * config/mep/mep.c: Include opts.h.
23527 (mep_handle_option): Update to new hook interface.
23528 * config/microblaze/microblaze.c: Include opts.h.
23529 (microblaze_handle_option): Update to new hook interface.
23530 * config/mips/mips.c: Include opts.h.
23531 (mips_handle_option): Update to new hook interface.
23532 * config/mn10300/mn10300.c: Include opts.h.
23533 (mn10300_handle_option): Update to new hook interface.
23534 * config/pa/pa.c: Include opts.h.
23535 (pa_handle_option): Update to new hook interface.
23536 * config/pdp11/pdp11.c: Include opts.h.
23537 (pdp11_handle_option): Update to new hook interface.
23538 * config/rs6000/rs6000.c: Include opts.h.
23539 (rs6000_handle_option): Update to new hook interface.
23540 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
23541 * config/rx/rx.c: Include opts.h.
23542 (rx_handle_option): Update to new hook interface.
23543 * config/s390/s390.c: Include opts.h.
23544 (s390_handle_option): Update to new hook interface.
23545 * config/score/score.c: Include opts.h.
23546 (score_handle_option): Update to new hook interface.
23547 * config/sh/sh.c: Include opts.h.
23548 (sh_handle_option): Update to new hook interface.
23549 * config/sparc/sparc.c: Include opts.h.
23550 (sparc_handle_option): Update to new hook interface.
23551 * config/v850/v850.c: Include opts.h.
23552 (v850_handle_option): Update to new hook interface.
23553
66017846
JM
235542011-03-22 Joseph Myers <joseph@codesourcery.com>
23555
23556 * gcc.c (driver_unknown_option_callback): Only permit and save
23557 unknown -Wno- options.
23558 (driver_wrong_lang_callback): Save options directly instead of via
23559 driver_unknown_option_callback.
23560
e8b97ccd
EB
235612011-03-22 Eric Botcazou <ebotcazou@adacore.com>
23562
23563 * combine.c (simplify_set): Try harder to find the best CC mode when
23564 simplifying a nested COMPARE on the RHS.
23565
ebb9f8b0
JM
235662011-03-22 Joseph Myers <joseph@codesourcery.com>
23567
23568 * config/alpha/gnu.h: Remove.
23569 * config/arc: Remove directory.
23570 * config/arm/netbsd.h: Remove.
23571 * config/arm/t-pe: Remove.
23572 * config/crx: Remove directory.
23573 * config/i386/netbsd.h: Remove.
23574 * config/m68hc11: Remove directory.
23575 * config/m68k/uclinux-oldabi.h: Remove.
23576 * config/mcore/mcore-pe.h: Remove.
23577 * config/mcore/t-mcore-pe: Remove.
23578 * config/netbsd-aout.h: Remove.
23579 * config/rs6000/gnu.h: Remove.
23580 * config/sh/sh-symbian.h: Remove.
23581 * config/sh/symbian-base.c: Remove.
23582 * config/sh/symbian-c.c: Remove.
23583 * config/sh/symbian-cxx.c: Remove.
23584 * config/sh/symbian-post.h: Remove.
23585 * config/sh/symbian-pre.h: Remove.
23586 * config/sh/t-symbian: Remove.
23587 * config/svr3.h: Remove.
23588 * config/vax/netbsd.h: Remove.
23589 * config.build: Don't handle i[34567]86-*-pe.
23590 * config.gcc: Remove handling of deprecations for most deprecated
23591 targets.
23592 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
23593 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
23594 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
23595 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
23596 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
23597 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
23598 Remove cases.
23599 * config.host: Don't handle i[34567]86-*-pe.
23600 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
23601 (ASM_SPEC32): Don't handle -mcall-gnu.
23602 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
23603 -mcall-gnu.
23604 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
23605 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
23606 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
23607 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
23608 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
23609 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
23610 conditional on SYMBIAN.
23611 * configure.ac: Don't handle powerpc*-*-gnu*.
23612 * configure: Regenerate.
23613 * doc/extend.texi (interrupt attribute): Don't mention CRX.
23614 * doc/install-old.texi (m6811, m6812): Don't mention.
23615 * doc/install.texi (arc-*-elf*): Don't document multilib option.
23616 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
23617 (m68k-uclinuxoldabi): Don't mention.
23618 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
23619 Remove.
23620 (-mcall-gnu): Remove.
23621 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
23622 families): Remove constraint documentation.
23623
999a7d80
MS
236242011-03-22 Marius Strobl <marius@FreeBSD.org>
23625
23626 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
23627 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
23628 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
23629
45540bcf
MM
236302011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
23631
23632 PR target/48226
23633 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
23634 vector when peeking at the next token for vector, don't expand the
23635 keywords.
23636
980a0ff4
GJL
236372011-03-21 Georg-Johann Lay <avr@gjlay.de>
23638
23639 * config/avr/avr-protos.h (expand_epilogue): Change prototype
23640 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
23641 * config/avr/avr.c (init_cumulative_args)
23642 (avr_function_arg_advance): Use it.
23643 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
23644 sibcall epilogues.
23645 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
23646 (avr_function_ok_for_sibcall): ...this new function.
23647 (avr_lookup_function_attribute1): New static Function.
23648 (avr_naked_function_p, interrupt_function_p)
23649 (signal_function_p, avr_OS_task_function_p)
23650 (avr_OS_main_function_p): Use it.
23651 * config/avr/avr.md ("sibcall", "sibcall_value")
23652 ("sibcall_epilogue"): New expander.
23653 ("*call_insn", "*call_value_insn"): New insn.
23654 ("call_insn", "call_value_insn"): Remove
23655 ("call", "call_value", "epilogue"): Change expander to handle
23656 sibling calls.
23657
49168734
NC
236582011-03-21 Nick Clifton <nickc@redhat.com>
23659
23660 * doc/invoke.texi (Overall Options): Move closing brace to end of
23661 options list.
23662 (Optimization Options): Add missing @gol.
23663 (Directory Options): Likewise.
23664 (i386 and x86-64 Options): Likewise.
23665 (RS6000 and PowerPC Options): Likewise.
23666 (i386 and x86-64 Windows Options): Likewise.
23667 (V850 Options): Add text missing from descriptions.
23668
bdfe906f
RH
236692011-03-22 Richard Henderson <rth@redhat.com>
23670
23671 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
23672 (avr_incoming_return_addr_rtx): New.
23673 (emit_push_byte): New.
23674 (expand_prologue): Use it. Remove incorrect dwarf annotation for
23675 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
23676 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
23677 (emit_pop_byte): New.
23678 (expand_epilogue): Use it. Pop frame pointer by bytes.
23679 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
23680 (INCOMING_RETURN_ADDR_RTX): New.
23681 (INCOMING_FRAME_SP_OFFSET): New.
23682 (ARG_POINTER_CFA_OFFSET): New.
23683 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
23684 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
23685 (pophi): Remove.
23686
d090a5aa
RH
23687 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
23688
fdf3e18a
NF
236892011-03-22 Nathan Froyd <froydnj@codesourcery.com>
23690
23691 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
23692 (FUNCTION_ARG_ADVANCE): Likewise.
23693 * tm.texi.in: Change references to them to hook references.
23694 * tm.texi: Regenerate.
23695 * targhooks.c (default_function_arg): Eliminate check for target
23696 macro.
23697 (default_function_incoming_arg): Likewise.
23698 (default_function_arg_advance): Likewise.
c78dd519 23699 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
23700 (function_arg_advance): Likewise.
23701 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
23702
009d3fcf
NF
237032011-03-22 Nathan Froyd <froydnj@codesourcery.com>
23704
23705 * tree.c (build_call_1): New function.
23706 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
23707
7bec30e1
RG
237082011-03-22 Richard Guenther <rguenther@suse.de>
23709
23710 PR tree-optimization/48228
23711 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
23712 for single-arg PHIs.
23713
0b7e851b
AB
237142011-03-22 Andrey Belevantsev <abel@ispras.ru>
23715
23716 PR rtl-optimization/48143
23717 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
23718 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
23719 sse2_cvtps2pd): Likewise.
23720
d89afca5
AK
237212011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23722
23723 * recog.c (canonicalize_change_group): Use validate_unshare_change.
23724
f471fe72
RG
237252011-03-22 Richard Guenther <rguenther@suse.de>
23726
23727 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
23728 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
23729 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
23730 and REALIGN_LOAD_EXPR.
23731 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
23732 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
23733 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
23734 DOT_PROD_EXPR case ...
23735 (expand_expr_real_2): ... here.
23736 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
23737 and REALIGN_LOAD_EXPR.
23738 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
23739 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
23740 (vect_create_epilog_for_reduction): Likewise.
23741 (vectorizable_reduction): Likewise.
23742 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
23743 * tree-vect-stmts.c (vectorizable_load): Likewise.
23744
f2f81d57
EB
237452011-03-22 Eric Botcazou <ebotcazou@adacore.com>
23746
23747 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
23748
ab081dd6
AK
237492011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23750
23751 * config/s390/s390.c (s390_delegitimize_address): Fix offset
23752 handling for PLTOFF/GOTOFF.
23753
6fd5332b
NC
237542011-03-22 Nick Clifton <nickc@redhat.com>
23755
23756 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
23757 trailing backslash from the end of the macro definition.
23758
01841ac0
AK
237592011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23760
23761 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
23762 and PLT unspecs.
23763
2ef6ce06
RS
237642011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
23765
23766 * expr.h (prepare_operand): Move to...
23767 * optabs.h (prepare_operand): ...here and change the insn code
23768 parameter from "int" to "enum insn_code".
23769 (insn_operand_matches): Declare.
23770 * expr.c (init_expr_target): Use insn_operand_matches.
23771 (compress_float_constant): Likewise.
23772 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
23773 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
23774 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
23775 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
23776 Likewise.
2ef6ce06
RS
23777 (gen_cond_trap): Likewise.
23778 (prepare_operand): Likewise. Change icode to an insn_code.
23779 (insn_operand_matches): New function.
23780 * reload.c (find_reloads_address_1): Use insn_operand_matches.
23781 * reload1.c (gen_reload): Likewise.
23782 * targhooks.c (default_secondary_reload): Likewise.
23783
9e43ad68
UB
237842011-03-21 Uros Bizjak <ubizjak@gmail.com>
23785
9a96da32
UB
23786 * config/alpha/alpha.md (unspec): New define_c_enum.
23787 (unspecv): Ditto.
23788
237892011-03-21 Uros Bizjak <ubizjak@gmail.com>
23790
23791 PR debug/48214
9e43ad68
UB
23792 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
23793 between a call and its CALL_ARG_LOCATION note.
23794
31408f60
EB
237952011-03-21 Eric Botcazou <ebotcazou@adacore.com>
23796
23797 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
23798
237992011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
23800
23801 PR c/42544
23802 PR c/48197
23803 * c-common.c (shorten_compare): If primopN is first sign-extended
23804 to opN and then zero-extended to result type, set primopN to opN.
23805
9dfd55f5
DJ
238062011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
23807
23808 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
23809 for barrier handlers.
23810
f3c33d9d
MM
238112011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
23812
23813 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
23814 UNSPEC constants to be in the unspec enumeration, and redefine
23815 all UNSPECV constants to be in the unspecv enumeration, so that
23816 dumps print which unspec/unspec_volatile this is.
23817 * config/rs6000/vector.md (UNSPEC_*): Ditto.
23818 * config/rs6000/paired.md (UNSPEC_*): Ditto.
23819 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
23820 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
23821 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
23822
23823 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
23824 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
23825 UNSPECV_LWSYNC, since these are used as unspec_volatile.
23826 * config/rs6000/sync.md (isync, lwsync): Ditto.
23827
ac43f774
RG
238282011-03-21 Richard Guenther <rguenther@suse.de>
23829
23830 * params.def (lto-min-partition): Fix typo.
23831
411cdbd8
RG
238322011-03-21 Richard Guenther <rguenther@suse.de>
23833
23834 PR c/47939
23835 * c-decl.c (grokdeclarator): Drop to the main variant only
23836 for array types. Drop flag_gen_aux_info check.
23837
1cd9e416
RG
238382011-03-21 Richard Guenther <rguenther@suse.de>
23839
23840 PR translation/47911
23841 * params.def (lto-partitions): Fix typo.
23842 (lto-min-partition): Fix wording.
23843
ada5ad67
AT
238442011-03-21 Andreas Tobler <andreast@fgznet.ch>
23845
23846 * config/rs6000/t-freebsd: Remove duplication from file.
23847
f9613c9a
RG
238482011-03-21 Richard Guenther <rguenther@suse.de>
23849
23850 PR middle-end/47661
23851 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
23852
9bfbc1eb
RG
238532011-03-21 Richard Guenther <rguenther@suse.de>
23854
23855 PR lto/48210
23856 * params.def (lto-partitions): Require at least 1 partition.
23857
a2268084
RO
238582011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23859
23860 * gthr-solaris.h: Remove.
23861 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
23862 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
23863 (LIB_SPEC): Likewise.
23864 * config/sol2.opt (threads): Remove.
9e43ad68 23865 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
23866 (sparc*-*-solaris2*): Likewise.
23867 * configure.ac (enable_threads): Enable solaris support.
23868 * configure: Regenerate.
9e43ad68 23869 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
23870 * doc/install.texi (Configuration, --enable-threads=lib): Remove
23871 solaris.
23872
c43d9a1b
RO
238732011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23874
23875 * config.gcc: Obsolete *-*-solaris2.8*.
23876 * doc/install.texi (Specific, *-*-solaris2*): Document it.
23877
084239f4
RO
238782011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23879
23880 PR bootstrap/48135
23881 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
23882 reference. Solaris 8 perl works.
23883
64cadbe7
RO
238842011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23885
23886 PR bootstrap/48135
23887 * doc/install.texi (Prerequisites): Move jar etc. up.
23888 Explain support library version requirements.
23889
eb975109
RO
238902011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23891
23892 PR bootstrap/48135
23893 * doc/install.texi (Prerequisites): Move Perl to build
23894 requirements. Always necessary on Solaris 2 with Sun ld.
23895
8a509ffd
RO
238962011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23897
23898 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
23899 binutils 2.21.
23900 (Specific, i?86-*-solaris2.[89]): Likewise.
23901 (Specific, i?86-*-solaris2.10): Likewise.
23902 (Specific, mips-sgi-irix6): Likewise.
23903 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
23904 Update for binutils 2.21.
23905
8fbc58a1
RO
239062011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23907
23908 * configure.ac (gcc_cv_lto_plugin): Fix typo.
23909 Allow -fuse-linker-plugin for non-default plugin linker.
23910 * configure: Regenerate.
23911
7e84ad0b
NP
239122011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
23913
23914 PR bootstrap/48167
23915 * gengtype.c (files_rules): Added rule for cp/parser.h.
23916
2f36e14b
JJ
239172011-03-21 Jakub Jelinek <jakub@redhat.com>
23918
23919 PR target/48213
23920 * config/s390/s390.c (s390_delegitimize_address): Don't call
23921 lowpart_subreg if orig_x has BLKmode.
23922
62d784f7
KT
239232011-03-21 Kai Tietz <ktietz@redhat.com>
23924
23925 PR target/12171
9e43ad68
UB
23926 * doc/plugins.texi: Adjust documentation for plugin register_callback.
23927 * tree.h (attribute_spec): Add new member affects_type_identity.
23928 * attribs.c (empty_attribute_table): Adjust attribute_spec
23929 initializers.
62d784f7
KT
23930 * config/alpha/alpha.c: Likewise.
23931 * config/arc/arc.c: Likewise.
23932 * config/arm/arm.c: Likewise.
23933 * config/avr/avr.c: Likewise.
23934 * config/bfin/bfin.c: Likewise.
23935 * config/crx/crx.c: Likewise.
23936 * config/darwin.h: Likewise.
23937 * config/h8300/h8300.c: Likewise.
23938 * config/i386/cygming.h: Likewise.
23939 * config/i386/i386.c: Likewise.
23940 * config/ia64/ia64.c: Likewise.
23941 * config/m32c/m32c.c: Likewise.
23942 * config/m32r/m32r.c: Likewise.
23943 * config/m68hc11/m68hc11.c: Likewise.
23944 * config/m68k/m68k.c: Likewise.
23945 * config/mcore/mcore.c: Likewise.
23946 * config/mep/mep.c: Likewise.
23947 * config/microblaze/microblaze.c: Likewise.
23948 * config/mips/mips.c: Likewise.
23949 * config/rs6000/rs6000.c: Likewise.
23950 * config/rx/rx.c: Likewise.
23951 * config/sh/sh.c: Likewise.
23952 * config/sol2.h: Likewise.
23953 * config/sparc/sparc.c: Likewise.
23954 * config/spu/spu.c: Likewise.
23955 * config/stormy16/stormy16.c: Likewise.
23956 * config/v850/v850.c: Likewise.
23957
54833ec0
CLT
239582011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
23959
23960 * simplify-rtx.c (simplify_binary_operation_1): Handle
23961 (xor (and A B) C) case when B and C are both constants.
23962
14a41392
MX
239632011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
23964
23965 * tree-dfa.c (add_referenced_var): Fix typo in comment.
23966
806c3492
EB
239672011-03-20 Eric Botcazou <ebotcazou@adacore.com>
23968
23969 PR bootstrap/48168
23970 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
23971
65e0a0f3
JJ
239722011-03-20 Jakub Jelinek <jakub@redhat.com>
23973
23974 PR rtl-optimization/48156
23975 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
23976 assume df and df_lr are not NULL.
23977
b6a75dda
RR
239782011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
23979
23980 PR debug/48023
23981 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
23982 between a call and its CALL_ARG_LOCATION note.
23983
5969b52d
KK
239842011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
23985
23986 PR debug/48178
23987 * config/sh/sh.c (find_barrier): Don't emit a constant pool
23988 between a call and its corresponding CALL_ARG_LOCATION note.
23989
f773c2bd
AS
239902011-03-19 Anatoly Sokolov <aesok@post.ru>
23991
23992 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
23993 instead of loop. Use HARD_REGISTER_NUM_P predicate.
23994 * haifa-sched.c (setup_ref_regs): Ditto.
23995 * caller-save.c (add_used_regs_1): Ditto.
23996 * dse.c (look_for_hardregs): Ditto.
23997 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
23998 * sched-rgn.c (check_live_1): Ditto.
23999
8bf872f9
JM
240002011-03-18 Joseph Myers <joseph@codesourcery.com>
24001
24002 * c-decl.c (diagnose_mismatched_decls): Give an error for
24003 redefining a typedef with variably modified type.
24004
ff8e2159
JM
240052011-03-18 Joseph Myers <joseph@codesourcery.com>
24006
24007 * c-decl.c (grokfield): Don't allow typedefs for structures or
24008 unions with no tag by default.
24009 * doc/extend.texi (Unnamed Fields): Update.
24010
16cc4440
UB
240112011-03-18 Uros Bizjak <ubizjak@gmail.com>
24012
24013 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
24014 Rewrite using indirect functions.
24015 (lwp_slwpcb): Ditto.
24016 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
24017 (avx_vinsertf128<mode>): Ditto.
24018
e101e12e
AK
240192011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24020
24021 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
24022 unspecs.
24023
4627c7fb
AK
240242011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24025
24026 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 24027 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 24028
2d36b47f
MK
240292011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
24030
24031 PR rtl-optimization/48170
24032 * gcse.c (hoist_code): Remove bogus asserts.
24033
2a3d7659
JL
240342011-03-18 Georg-Johann Lay <avr@gjlay.de>
24035
24036 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
24037 computation for prologue/epilogue.
24038
34c3ef05
RO
240392011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24040
24041 * Makefile.in (check-consistency): Remove.
24042
81f2b976
JJ
240432011-03-18 Jakub Jelinek <jakub@redhat.com>
24044
24045 PR debug/48176
24046 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
24047 arange_table_in_use is 0, but either text_section_used or
24048 cold_text_section_used is true. Don't call it if
24049 !info_section_emitted.
24050
68fd7765
AS
240512011-03-18 Anatoly Sokolov <aesok@post.ru>
24052
24053 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
24054 FUNCTION_VALUE_REGNO_P): Remove.
24055 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
24056 Remove.
24057 * config/avr/avr.c (avr_ret_register): Make static inline.
24058 (avr_function_value_regno_p): New function.
24059 (avr_libcall_value): Make static. Add 'func' argument.
24060 (avr_function_value): Make static. Rename 'func' argument to
24061 'fn_decl_or_type', forward it to avr_libcall_value. Call
24062 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 24063 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 24064
b4ef8aac
JM
240652011-03-18 Jason Merrill <jason@redhat.com>
24066
24067 PR c++/23372
24068 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
24069
09a52fc3
RG
240702011-03-18 Richard Guenther <rguenther@suse.de>
24071
24072 * doc/install.texi (--enable-gold): Remove.
24073 (--with-plugin-ld): Document.
24074 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
24075
2a3d7659 240762011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
24077
24078 PR middle-end/47790
24079 * expr.c (optimize_bitfield_assignment_op): Revamp to work
24080 again after expansion changes.
24081
2abbb0fe
CLT
240822011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
24083
24084 * combine.c (try_combine): Do simplification only call of
24085 subst() on i2 even when i1 is present. Update comments.
24086
2efd0aa6
KK
240872011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
24088
24089 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
24090 and UNSPEC_PCREL_SYMOFF.
24091
30a49b23
AK
240922011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24093
24094 * config/s390/s390.md: Use define_c_enum for the unspec constant
24095 definitions.
24096
419e1853
JJ
240972011-03-18 Richard Henderson <rth@redhat.com>
24098 Jakub Jelinek <jakub@redhat.com>
24099
24100 PR bootstrap/48161
24101 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
24102 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
24103
24da2019
AS
241042011-03-17 Anatoly Sokolov <aesok@post.ru>
24105
24106 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24107 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
24108 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
24109 Change return type to bool.
24110 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24111
a82ff31f
JJ
241122011-03-17 Jakub Jelinek <jakub@redhat.com>
24113
8b29c87a
JJ
24114 PR debug/48163
24115 * var-tracking.c (prepare_call_arguments): If CALL target
24116 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
24117 pc instead of looking it up using cselib_lookup and use
24118 Pmode for it if x has VOIDmode.
24119 * dwarf2out.c (gen_subprogram_die): If also both first and
24120 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
24121
a82ff31f
JJ
24122 PR debug/48163
24123 * function.c (assign_parms): For data.passed_pointer parms
24124 use MEM of data.entry_parm instead of data.entry_parm itself
24125 as DECL_INCOMING_RTL.
24126 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
24127 also when passed and declared mode is the same, DECL_RTL
24128 is a MEM with pseudo as address and DECL_INCOMING_RTL is
24129 a MEM too.
24130
82ce305c
JL
241312011-03-16 Jeff Law <law@redhat.com>
24132
24133 PR rtl-optimization/37273
24134 * ira-costs.c (scan_one_insn): Detect constants living in memory and
24135 handle them like argument loads from stack slots. Do not double
24136 count memory for memory constants and argument loads from stack slots.
24137
fe58e02b
L
241382011-03-17 H.J. Lu <hongjiu.lu@intel.com>
24139
24140 PR debug/48160
24141 * var-tracking.c (prepare_call_arguments): Check SUBREG.
24142
6fc4dbc7
L
241432011-03-17 H.J. Lu <hongjiu.lu@intel.com>
24144
24145 PR target/48171
24146 * config/i386/i386.opt: Add Save to -mavx and -mfma.
24147
db3ed0b3
JJ
241482011-03-17 Jakub Jelinek <jakub@redhat.com>
24149
8054a389
JJ
24150 PR bootstrap/48153
24151 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
24152 if dwarf_strict.
24153 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
24154 Clear call_arg_locations and call_arg_loc_last always.
24155
db3ed0b3
JJ
24156 PR middle-end/48152
24157 * var-tracking.c (prepare_call_arguments): If argument needs to be
24158 passed by reference, adjust argtype and mode.
24159
1bce4ff3
RG
241602011-03-17 Richard Guenther <rguenther@suse.de>
24161
24162 PR middle-end/48134
24163 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
24164 a value make sure to fold the statement.
24165
7c71147d
CLT
241662011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
24167
24168 PR target/43872
24169 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
24170 return condition with !cfun->calls_alloca.
24171
0e1ee172
RG
241722011-03-17 Richard Guenther <rguenther@suse.de>
24173
24174 PR bootstrap/48148
24175 * lto-cgraph.c (input_overwrite_node): Clear the abstract
24176 origin for decls in other ltrans units.
24177 (input_varpool_node): Likewise.
24178
f8bce518
RG
241792011-03-17 Richard Guenther <rguenther@suse.de>
24180
24181 PR middle-end/48165
24182 * tree-object-size.c (compute_object_offset): Properly return
24183 the offset operand of MEM_REFs as sizetype.
24184
1b6fa860
JJ
241852011-03-17 Jakub Jelinek <jakub@redhat.com>
24186
dabd47e7
JJ
24187 PR rtl-optimization/48141
24188 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
24189 * dse.c: Include params.h.
24190 (active_local_stores_len): New variable.
24191 (add_wild_read, dse_step1): Clear it when setting active_local_stores
24192 to NULL.
24193 (record_store, check_mem_read_rtx): Decrease it when removing
24194 from the chain.
24195 (scan_insn): Likewise. Increase it when adding to chain, if it
24196 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
24197 set active_local_stores to NULL before the addition.
24198 * Makefile.in (dse.o): Depend on $(PARAMS_H).
24199
1b6fa860
JJ
24200 PR rtl-optimization/48141
24201 * dse.c (record_store): If no positions are needed in an insn
24202 that cannot be deleted, at least unchain it from active_local_stores.
24203
7b5cb7d6
DS
242042011-03-16 Dodji Seketeli <dodji@redhat.com>
24205
24206 PR debug/47510
24207 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
24208 (lookup_type_die_strip_naming_typedef): ... here.
24209 (get_context_die): Use it.
24210 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
24211 the anonymous struct named by the naming typedef.
24212
585e9d9d
L
242132011-03-16 H.J. Lu <hongjiu.lu@intel.com>
24214
24215 PR target/48154
24216 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
24217 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
24218
6261ab0e
JL
242192011-03-16 Jeff Law <law@redhat.com>
24220
24221 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 24222 check for operands of conditional. Allow type to be a pointer.
6261ab0e 24223
0b0081ec
RG
242242011-03-16 Richard Guenther <rguenther@suse.de>
24225
24226 PR tree-optimization/48149
24227 * fold-const.c (fold_binary_loc): Fold
24228 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
24229
64a3d647
RG
242302011-03-16 Richard Guenther <rguenther@suse.de>
24231
24232 PR tree-optimization/26134
24233 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
24234 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
24235 (non_rewritable_mem_ref_base): Handle complex type component
24236 accesses, constrain offsets for vector and complex extracts
24237 more properly.
24238
ef13324e
RG
242392011-03-16 Richard Guenther <rguenther@suse.de>
24240
24241 PR tree-optimization/48146
24242 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
24243 operands avoiding the need for renaming.
24244
f0eddb90
RG
242452011-03-16 Richard Guenther <rguenther@suse.de>
24246
24247 * gimple-fold.c (maybe_fold_reference): Open-code relevant
24248 constant folding. Move MEM_REF canonicalization first.
24249 Rely on fold_const_aggregate_ref for initializer folding.
24250 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
24251
e42348b8
JJ
242522011-03-16 Jakub Jelinek <jakub@redhat.com>
24253
29f10e71
JJ
24254 PR middle-end/48136
24255 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
24256 arg0/arg1 or their arguments are always fold converted to matching
24257 types.
24258
e42348b8
JJ
24259 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
24260 to nargs.
24261
55b46574
RO
242622011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24263
24264 PR lto/46944
24265 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
24266 Handle in-tree gold.
24267 (ld_vers): Extract binutils version for gold.
24268 (gcc_cv_ld_hidden): Handle gold here.
24269 (gcc_cv_lto_plugin): Determine level of linker plugin support.
24270 * configure: Regenerate.
24271 * config.in: Regenerate.
24272 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
24273 -fuse-linker-plugin otherwise.
24274 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
24275 (LINK_COMMAND_SPEC): Use it.
24276 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
24277
2b1c5433
JJ
242782011-03-16 Jakub Jelinek <jakub@redhat.com>
24279
c2969d8e
JJ
24280 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
24281 * calls.c: Remove debug.h include.
24282 (emit_call_1): Don't call virtual_call_token debug hook.
24283 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
24284 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
24285 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
24286 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
24287 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
24288 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
24289 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
24290 dwarf2out_virtual_call): Remove.
24291 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
24292 copy_call_info and virtual_call hooks.
24293 (dwarf2out_init): Don't initialize vcall_insn_table,
24294 debug_dcall_section and debug_vcall_section.
24295 (prune_unused_types): Don't mark nodes from dcall_table.
24296 (dwarf2out_finish): Don't output dcall or vcall tables.
24297 * final.c (final_scan_insn): Don't call direct_call or
24298 virtual_call debug hooks.
24299 * debug.h (struct gcc_debug_hooks): Remove direct_call,
24300 virtual_call_token, copy_call_info and virtual_call hooks.
24301 (debug_nothing_uid): Remove prototype.
24302 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
24303 copy_call_info and virtual_call hooks.
24304 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
24305 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
24306 * debug.c (do_nothing_debug_hooks): Likewise.
24307 (debug_nothing_uid): Remove.
24308 * doc/invoke.texi (-fenable-icf-debug): Remove.
24309 * common.opt (-fenable-icf-debug): Likewise.
24310
325f5379
JJ
24311 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
24312 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
24313 call's MEM. Handle functions returning aggregate through a hidden
24314 first pointer. For virtual calls add clobbered pc to call arguments
24315 chain.
24316 * dwarf2out.c (gen_subprogram_die): Emit
24317 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
24318 can't be emitted.
24319
a58a8e4b
JJ
24320 PR debug/45882
24321 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
24322 * rtl.h (ENTRY_VALUE_EXP): Define.
24323 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
24324 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
24325 * print-rtl.c (print_rtx): Likewise.
24326 * gengtype.c (adjust_field_rtx_def): Likewise.
24327 * var-tracking.c (vt_add_function_parameter): Adjust
24328 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
24329 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
24330 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
24331 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
24332 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
24333
2b1c5433
JJ
24334 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
24335 Call var_location debug hook even on CALL_INSNs.
24336 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
24337 * rtl.def (ENTRY_VALUE): New.
24338 * dwarf2out.c: Include cfglayout.h.
24339 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
24340 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
24341 (struct call_arg_loc_node): New type.
24342 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
24343 tail_call_site_count): New variables.
24344 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
24345 DW_TAG_GNU_call_site_parameter.
24346 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
24347 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
24348 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
24349 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
24350 and DW_AT_GNU_all_source_call_sites.
24351 (mem_loc_descriptor): Handle ENTRY_VALUE.
24352 (add_src_coords_attributes): Don't add enything if
24353 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
24354 (dwarf2out_abstract_function): Save and clear call_arg_location,
24355 call_site_count and tail_call_site_count around dwarf2out_decl call.
24356 (gen_call_site_die): New function.
24357 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
24358 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
24359 (dwarf2out_function_decl): Clear call_arg_locations,
24360 call_arg_loc_last, set call_site_count and tail_call_site_count
24361 to -1 and free block_map.
24362 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
24363 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
24364 followed by any real instructions.
24365 (dwarf2out_begin_function): Set call_site_count and
24366 tail_call_site_count to 0.
24367 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
24368 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
24369 attempt to force a DIE for it and worst case remove the attribute.
24370 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
24371 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
24372 the decl itself.
24373 * var-tracking.c: Include tm_p.h.
24374 (vt_stack_adjustments): For calls call note_register_arguments.
24375 (argument_reg_set): New variable.
24376 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
24377 ensure the VALUE is resolved.
24378 (call_arguments): New variable.
24379 (prepare_call_arguments): New function.
24380 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
24381 (struct expand_loc_callback_data): Add ignore_cur_loc field.
24382 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
24383 always use the best expression.
24384 (vt_expand_loc): Add ignore_cur_loc argument.
24385 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
24386 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
24387 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
24388 note for all calls.
24389 (vt_add_function_parameter): Use cselib_lookup_from_insn.
24390 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
24391 argument. Don't call cselib_preserve_only_values and
24392 cselib_reset_table.
24393 (note_register_arguments): New function.
24394 (vt_initialize): Compute argument_reg_set. Call
24395 vt_add_function_parameters before processing basic blocks instead of
24396 afterwards. For calls call prepare_call_arguments before calling
24397 cselib_process_insn.
24398 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
24399 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
24400 (var-tracking.o): Depend on $(TM_P_H).
24401 * cfglayout.h (insn_scope): New prototype.
24402 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
24403 * cfglayout.c (insn_scope): No longer static.
24404 * insn-notes.def (CALL_ARG_LOCATION): New.
24405 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
24406 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
24407 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
24408 nothing for DECL_EXTERNAL BLOCK_VARS.
24409
9ef13bd0
AM
244102011-03-16 Alan Modra <amodra@gmail.com>
24411
24412 PR target/45844
24413 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
24414 create invalid offset address for vsx splat insn.
24415 * config/rs6000/predicates.md (splat_input_operand): New.
24416 * config/rs6000/vsx.md (vsx_splat_*): Use it.
24417
56b67510
XDL
244182011-03-15 Xinliang David Li <davidxl@google.com>
24419
24420 PR c/47837
24421 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
24422 (normalize_preds): New function.
24423 (is_use_properly_guarded): Normalize def predicates.
24424
80fffdef
RR
244252011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
24426
732f37c6 24427 PR target/46788
80fffdef
RR
24428 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
24429 in the output template.
24430
930672ad
RG
244312011-03-15 Richard Guenther <rguenther@suse.de>
24432
24433 PR middle-end/47650
24434 * tree-pretty-print.c (dump_function_declaration): Properly
24435 dump unprototyped and varargs function types.
24436
c7ee7b45
RG
244372011-03-15 Richard Guenther <rguenther@suse.de>
24438
24439 PR tree-optimization/13954
24440 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
24441 and friends.
24442
b2ad5e37
RG
244432011-03-15 Richard Guenther <rguenther@suse.de>
24444
24445 PR tree-optimization/48037
24446 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
24447 selects into BIT_FIELD_REFs.
24448 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
24449 vector select.
24450
7ee93d4e
JJ
244512011-03-15 Jakub Jelinek <jakub@redhat.com>
24452
24453 PR tree-optimization/48129
24454 * builtins.c (fold_builtin_snprintf): Convert to type of
24455 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
24456 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
24457
e106efc7
RG
244582011-03-15 Richard Guenther <rguenther@suse.de>
24459
24460 PR tree-optimization/41490
24461 * tree-ssa-dce.c (propagate_necessity): Handle returns without
24462 value but with VUSE.
24463 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
24464 return statements.
24465 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
24466 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
24467 * tree-tailcall.c (find_tail_calls): Ignore returns.
24468
17dea42f
RG
244692011-03-15 Richard Guenther <rguenther@suse.de>
24470
24471 PR middle-end/48031
24472 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
24473 or variable-indexed array accesses when in gimple form.
24474
01c77a60
RG
244752011-03-15 Richard Guenther <rguenther@suse.de>
24476
16cc4440 24477 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 24478
77b0791e
AM
244792011-03-15 Alan Modra <amodra@gmail.com>
24480
24481 PR target/48032
24482 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
24483 presume symbol_refs without a symbol_ref_decl are suitably
24484 aligned, nor other trees we may see here. Handle anchor symbols.
24485 (legitimate_constant_pool_address_p): Comment. Add mode param.
24486 Check cmodel=medium addresses. Adjust all calls.
24487 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
24488 creating cmodel=medium optimized access to locals.
24489 * config/rs6000/constraints.md (R): Pass QImode to
24490 legitimate_constant_pool_address_p.
24491 * config/rs6000/predicates.md (input_operand): Pass mode to
24492 legitimate_constant_pool_address_p.
24493 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
24494 Update prototype.
24495
35f61ba4
MM
244962011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24497
24498 PR target/48053
24499 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
24500 64-bit constants being loaded into registers other than GPRs such
24501 as loading 0 into a VSX register.
24502
07332e6d
RO
245032011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24504
16cc4440 24505 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 24506
de888d90
JJ
245072011-03-14 Jakub Jelinek <jakub@redhat.com>
24508
ba3ceb2d
JJ
24509 PR middle-end/47917
24510 * builtins.c (fold_builtin_snprintf): New function.
24511 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
24512 (fold_builtin_4): Likewise.
24513
2e64f8b8
JJ
24514 PR middle-end/38878
24515 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
24516 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
24517 and C - X == X also strip nops from +/-/p+ operand.
24518 When optimizing -X == C, fold C to arg0's type.
24519
de888d90
JJ
24520 PR debug/47946
24521 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
24522 emit it as add_AT_int instead of add_AT_unsigned.
24523
245242011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
24525
24526 * unwind-dw2.c: Include sys/sdt.h if it exists.
24527 (_Unwind_DebugHook): Use STAP_PROBE2.
24528 * config.in, configure: Rebuild.
24529 * configure.ac: Check for sys/sdt.h.
24530
d34abfd2
UB
245312011-03-14 Uros Bizjak <ubizjak@gmail.com>
24532
24533 * config/i386/i386.md (ROUND_FLOOR): New constant.
24534 (ROUND_CEIL): Ditto.
24535 (ROUND_TRUNC): Ditto.
24536 (ROUND_MXCSR): Ditto.
24537 (ROUND_NO_EXC): Ditto.
24538 (rint<mode>2): Use new defines instead of numerical constants.
24539 (floor<mode>2): Ditto.
24540 (ceil<mode>2): Ditto.
24541 (btrunc<mode>2): Ditto.
24542 * config/i386/i386-builtin-types.def: Define ROUND function type
24543 aliases.
24544 * config/i386/i386.c (enum ix86_builtins): Add
24545 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
24546 (struct builtin_description): Add
24547 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
24548 (ix86_expand_sse_round): New static function.
24549 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
24550 function types.
24551 (ix86_builtin_vectorized_function): Handle
24552 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
24553
87f9e23d
TT
245542011-03-14 Tom Tromey <tromey@redhat.com>
24555
24556 * c-parser.c (c_parser_asm_string_literal): Clear
24557 warn_overlength_strings.
24558
b3ab9ea2
TT
245592011-03-14 Tom Tromey <tromey@redhat.com>
24560
24561 * c-parser.c (disable_extension_diagnostics): Save
24562 warn_overlength_strings.
24563 (restore_extension_diagnostics): Restore warn_overlength_strings.
24564
6bd73dd8
JJ
245652011-03-14 Jakub Jelinek <jakub@redhat.com>
24566
24567 * BASE-VER: Change to 4.7.0.
24568
7f4d6e1b
RG
245692011-03-14 Richard Guenther <rguenther@suse.de>
24570
24571 PR middle-end/48098
24572 * tree.c (build_vector_from_val): Adjust assert to requirements
24573 and reality.
24574
c6104ef1
JJ
245752011-03-14 Jakub Jelinek <jakub@redhat.com>
24576
24577 PR bootstrap/48102
d34abfd2 24578 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 24579
dfa95e19
AT
245802011-03-14 Andreas Tobler <andreast@fgznet.ch>
24581
f60c2554 24582 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
24583 terms of target_flags_explicit. Adjust copyright year.
24584
24585 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
24586 * config/rs6000/t-freebsd: New file. Add override for
24587 LIB2FUNCS_EXTRA.
24588
bb322018
CD
245892011-03-13 Chris Demetriou <cgd@google.com>
24590
24591 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
24592 (-fno-diagnostics-show-option): this, to reflect current default.
24593 (-Werror=): Update text about -fno-diagnostics-show-option.
24594
12b1c80b
PB
245952011-03-12 Peter Bergner <bergner@vnet.ibm.com>
24596
24597 PR target/48053
24598 * config/rs6000/predicates.md (easy_vector_constant_add_self,
24599 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
24600 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
24601 mode is not V2DImode or V2DFmode.
24602 (vspltis_constant): Do not handle V2DImode and V2DFmode.
24603 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
24604 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
24605 registers to 0.
24606 (movdi_internal64): Likewise.
24607
57d598f7
SP
246082011-03-12 Sebastian Pop <sebastian.pop@amd.com>
24609
24610 PR tree-optimization/47127
24611 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
24612 parameter.
24613 (set_cloog_options): Same.
24614 (scop_to_clast): Same.
24615 (print_clast_stmt): Do not call cloog_state_malloc and
24616 cloog_state_free.
24617 (print_generated_program): Same.
24618 (gloog): Same.
24619 * graphite-clast-to-gimple.h (cloog_state): Declared.
24620 (scop_to_clast): Adjust declaration.
24621 * graphite.c (cloog_state): Defined here.
24622 (graphite_initialize): Call cloog_state_malloc.
24623 (graphite_finalize): Call cloog_state_free.
24624
f231b5ff
JM
246252011-03-11 Jason Merrill <jason@redhat.com>
24626
24627 * attribs.c (lookup_attribute_spec): Take const_tree.
24628 * tree.h: Adjust.
24629
6a4e2bd5
JM
246302011-03-11 Joseph Myers <joseph@codesourcery.com>
24631
24632 * config/sparc/sparc.c (sparc_option_override): Use
24633 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
24634
a758fd67
RG
246352011-03-11 Richard Guenther <rguenther@suse.de>
24636
24637 PR tree-optimization/48067
24638 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
24639 multiplication result will be only used once on the target
24640 stmt.
24641
03dfda54
RG
246422011-03-11 Richard Guenther <rguenther@suse.de>
24643
24644 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
24645
5f11a50a
RG
246462011-03-11 Richard Guenther <rguenther@suse.de>
24647
24648 PR lto/48073
24649 * tree.c (find_decls_types_r): Do not walk types only reachable
24650 from IDENTIFIER_NODEs.
24651
4074f163
JJ
246522011-03-11 Jakub Jelinek <jakub@redhat.com>
24653
24654 PR middle-end/48044
24655 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
24656 all vnode->force_output nodes as needed.
24657
30f7cdcd
JM
246582011-03-11 Jason Merrill <jason@redhat.com>
24659
24660 PR c++/48069
24661 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
24662 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
24663
62ecfeb8
MJ
246642011-03-11 Martin Jambor <mjambor@suse.cz>
24665
24666 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
24667 cgraph_node.
24668
e89e03ab
JJ
246692011-03-11 Jakub Jelinek <jakub@redhat.com>
24670
24671 PR tree-optimization/48063
24672 * ipa-inline.c (cgraph_decide_inlining): Don't try to
24673 inline functions called once if !tree_can_inline_p (node->callers).
24674
efbe978b 246752011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 24676
efbe978b
EB
24677 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
24678 extra_objs.
9d6193a7
CL
24679 * config/score/score3.c: Delete.
24680 * config/score/score3.h: Delete.
24681 * config/score/mul-div.S: Delete.
24682 * config/score/sfp-machine.h: Add new file.
24683 * config/score/constraints.md: Add new file.
24684 * config/score/t-score-softfp: Add new file.
efbe978b 24685 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
24686 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
24687 (score7_extra_constraint): Delete.
efbe978b 24688 (score7_option_override): Remove unused code.
9d6193a7
CL
24689 * config/score/score.c: Remove score3 and score5 define and code.
24690 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 24691 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
24692 * config/score/score.opt: Remove score3 and score5 options.
24693
5de27cca
JDA
246942011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24695
24696 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
24697 when _HPUX_SOURCE is defined.
24698 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
24699
18d92053
JM
247002011-03-10 Jason Merrill <jason@redhat.com>
24701
24702 PR c++/48029
24703 * stor-layout.c (layout_type): Don't set structural equality
24704 on arrays of incomplete type.
24705 * tree.c (type_hash_eq): Handle comparing them properly.
24706
67a2f76d
JJ
247072011-03-10 Jakub Jelinek <jakub@redhat.com>
24708
24709 PR debug/48043
18d92053 24710 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
24711 result mode matches original rtl mode.
24712
d845b2f9
NC
247132011-03-10 Nick Clifton <nickc@redhat.com>
24714
24715 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 24716 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 24717
db7ec035
JJ
247182011-03-09 Jakub Jelinek <jakub@redhat.com>
24719
24720 PR rtl-optimization/47866
24721 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
24722 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
24723 if target wasn't scalar.
24724 * function.c (assign_stack_temp_for_type): Assert that neither
24725 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
24726 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
24727 macro.
24728 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
24729
5d304e47
AK
247302011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24731
24732 * config/s390/s390-protos.h (s390_label_align): New prototype.
24733 * config/s390/s390.c (s390_label_align): New function.
24734 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
24735
93b826f0
MM
247362011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
24737
24738 PR target/47755
24739 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
24740 V2DI/V2DF constants. Only all 0's or all 1's are easy.
24741 (output_vec_const_move): Ditto.
24742
ef78aed6
AS
247432011-03-08 Anatoly Sokolov <aesok@post.ru>
24744
24745 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
24746 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
24747 * config/mips/mips.c (mips_preferred_reload_class): Make static.
24748 Change 'rclass' argument and result type to reg_class_t.
24749 (TARGET_PREFERRED_RELOAD_CLASS): Define.
24750
5f892aa0
GJL
247512011-03-08 Georg-Johann Lay <avr@gjlay.de>
24752
9e43ad68
UB
24753 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
24754 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
24755 (TARGET_MEMORY_MOVE_COST): Define.
24756 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 24757
32bd2409
JJ
247582011-03-08 Jakub Jelinek <jakub@redhat.com>
24759
530a4800
JJ
24760 PR debug/47881
24761 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
24762 removed anything.
24763
32bd2409
JJ
24764 PR tree-optimization/48022
24765 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
24766 for EQ/NE_EXPR.
24767
c7148991
JJ
247682011-03-07 Jakub Jelinek <jakub@redhat.com>
24769
24770 PR debug/47991
24771 * var-tracking.c (find_use_val): Return NULL for
24772 cui->sets && cui->store_p BLKmode MEMs.
24773
43070a6e
AS
247742011-03-07 Anatoly Sokolov <aesok@post.ru>
24775
24776 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
24777 Remove.
24778 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
24779 xstormy16_print_operand_address): Remove.
24780 * config/stormy16/stormy16.c (xstormy16_print_operand,
24781 xstormy16_print_operand_address): Make static.
24782 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
24783
efbe978b 247842011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
24785
24786 PR target/47862
24787 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
24788 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
24789 before definition.
24790
cec8ac0b
ZD
247912011-03-07 Zdenek Dvorak <ook@ucw.cz>
24792
24793 PR bootstrap/48000
24794 * cfgloopmanip.c (fix_bb_placements): Return immediately
24795 if FROM is BASE_LOOP's header.
24796
59527282
PW
247972011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
24798
24799 * gimplify.c (gimplify_function_tree): Fix building calls
24800 to __builtin_return_address.
24801
617718f7
AM
248022011-03-07 Alan Modra <amodra@gmail.com>
24803
24804 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
24805 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
24806 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
24807 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
24808 return_mode args.
24809 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
24810 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
24811 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
24812 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
24813 * config/rs6000/rs6000.c
24814 (rs6000_elf_end_indicate_exec_stack): Rename to..
24815 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
24816 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
24817 (rs6000_file_start): ..here.
24818 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
24819 file scope variables.
24820 (call_ABI_of_interest): New function.
24821 (init_cumulative_args): Set above vars when function return value
24822 is a float, vector, or small struct.
24823 (rs6000_function_arg_advance_1): Likewise for function args.
24824 (rs6000_va_start): Set rs6000_passes_float if variable arg function
24825 references float args.
24826
38528d50
MX
248272011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
24828
24829 * doc/cfg.texi: Remove "See" before @ref.
24830 * doc/invoke.texi: Likewise.
24831
f42cf4f4
JM
248322011-03-05 Jason Merrill <jason@redhat.com>
24833
24834 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
24835
804a304d
AG
248362011-03-05 Anthony Green <green@moxielogic.com>
24837
24838 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
24839
634ee309
ZD
248402011-03-05 Zdenek Dvorak <ook@ucw.cz>
24841
24842 PR rtl-optimization/47899
24843 * cfgloopmanip.c (fix_bb_placements): Fix first argument
24844 to flow_loop_nested_p when moving the loop upward.
24845
6fe471c8
RE
248462011-03-05 Richard Earnshaw <rearnsha@arm.com>
24847
24848 PR target/47719
24849 * arm.md (movhi_insn_arch4): Accept any immediate constant.
24850
cc58ceee
JJ
248512011-03-05 Jakub Jelinek <jakub@redhat.com>
24852
24853 PR tree-optimization/47967
24854 * ipa-cp.c (build_const_val): Return NULL instead of creating
24855 VIEW_CONVERT_EXPR for mismatching sizes.
24856 (ipcp_create_replace_map): Return NULL if build_const_val failed.
24857 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
24858 give up on versioning.
24859
ea868305
AM
248602011-03-05 Alan Modra <amodra@gmail.com>
24861
24862 PR target/47986
24863 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
24864 full cmodel medium/large lo_sum + high addresses.
24865
bc6ce334
AK
248662011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24867
24868 * config/s390/s390.c (s390_decompose_address): Reject non-literal
24869 pool references in UNSPEC_LTREL_OFFSET.
24870
87e7b310
JH
248712011-03-04 Jan Hubicka <jh@suse.cz>
24872
24873 PR lto/47497
24874 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
24875 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
24876 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
24877 Add node pointers.
87e7b310
JH
24878 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
24879 cgraph_add_thunk): Add node pointers.
24880 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
24881 associated to right node.
24882 (input_node): Update use of cgraph_same_body_alias
24883 and cgraph_add_thunk.
24884
d9c64246
CF
248852011-03-04 Changpeng Fang <changpeng.fang@amd.com>
24886
24887 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
24888 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
24889 modes when the flag -mprefer-avx128 is on.
d9c64246 24890
08707076
RS
248912011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
24892
24893 * dwarf2out.c (compare_loc_operands): Fix address handling.
24894
52517c81
AM
248952011-03-04 Alan Modra <amodra@gmail.com>
24896
24897 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
24898
b147c5b9
RG
248992011-03-04 Richard Guenther <rguenther@suse.de>
24900
24901 PR middle-end/47968
24902 * expmed.c (extract_bit_field_1): Prefer vector modes that
24903 vec_extract patterns can handle.
24904
8750672f
RG
249052011-03-04 Richard Guenther <rguenther@suse.de>
24906
24907 PR middle-end/47975
24908 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
24909
9eac0f2a
RH
249102011-03-04 Richard Henderson <rth@redhat.com>
24911
24912 * explow.c (emit_stack_save): Remove 'after' parameter.
24913 (emit_stack_restore): Likewise.
24914 * expr.h: Update to match.
24915 * builtins.c, calls.c, stmt.c: Likewise.
24916 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
24917 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
24918 * function.c (expand_function_end): Insert the emit_stack_save
24919 sequence before parm_birth_insn instead of after.
24920
dfee1406
UB
249212011-03-03 Uros Bizjak <ubizjak@gmail.com>
24922
24923 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
24924 (ssse3_pmaddubsw128): Ditto.
24925 (ssse3_pmaddubsw): Ditto.
24926
f1d4c3de
SE
249272011-03-03 Steve Ellcey <sje@cup.hp.com>
24928
24929 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
24930
71f3a3f5
JJ
249312011-03-03 Jakub Jelinek <jakub@redhat.com>
24932
423ed416
JJ
24933 PR c/47963
24934 * gimplify.c (omp_add_variable): Only call omp_notice_variable
24935 on TYPE_SIZE_UNIT if it is a DECL.
24936
71f3a3f5
JJ
24937 PR debug/47283
24938 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
24939 first operand is not is_gimple_mem_ref_addr, try to fold it.
24940 If the operand still isn't is_gimple_mem_ref_addr, clear
24941 MEM_EXPR on op0.
24942
4b1a5c0d
RG
249432011-03-03 Richard Guenther <rguenther@suse.de>
24944
24945 PR middle-end/47283
24946 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
24947 match comment.
24948 (refs_may_alias_p_1): For release branches return true if
24949 we are confused by our input.
24950
b46616fd
AK
249512011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24952
24953 * config/s390/s390.c (s390_function_value): Rename to ...
24954 (s390_function_and_libcall_value): ... this.
24955 (s390_function_value): New function.
24956 (s390_libcall_value): New function.
dfee1406 24957 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
24958 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
24959 target macro definitions.
24960 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
24961
46d8fabb
JM
249622011-03-02 Joseph Myers <joseph@codesourcery.com>
24963
24964 * config/i386/freebsd64.h (CC1_SPEC): Define.
24965 * config/i386/linux64.h (CC1_SPEC): Define.
24966 * config/i386/x86-64.h (CC1_SPEC): Don't define.
24967
6b1ce545
AS
249682011-03-02 Anatoly Sokolov <aesok@post.ru>
24969
24970 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
24971 Remove.
24972 * config/stormy16/stormy16.c: Include reload.h.
24973 (xstormy16_memory_move_cost): New function.
24974 (TARGET_MEMORY_MOVE_COST): Define.
24975
34161e98
RS
249762011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
24977
24978 PR rtl-optimization/47925
24979 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
24980 with side effects. Remove the more-specific check for volatile asms.
24981
f60a97cf
AM
249822011-03-02 Alan Modra <amodra@gmail.com>
24983
24984 PR target/47935
24985 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
24986 toc relative addresses for valid offsets.
24987
f2ca11ca
RG
249882011-03-01 Richard Guenther <rguenther@suse.de>
24989
24990 PR tree-optimization/47890
24991 * tree-vect-loop.c (get_initial_def_for_induction): Set
24992 related stmt properly.
24993
7a00d9ea
RG
249942011-03-01 Richard Guenther <rguenther@suse.de>
24995
24996 PR lto/47924
24997 * lto-streamer.c (lto_record_common_node): Also register
24998 the canonical type.
24999
06c7edcc
RG
250002011-03-01 Richard Guenther <rguenther@suse.de>
25001
25002 PR lto/46911
25003 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
25004 Do not stream DECL_ABSTRACT_ORIGIN.
25005 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
25006 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
25007 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
25008 Do not stream DECL_ABSTRACT_ORIGIN.
25009 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
25010 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
25011
998871e9
AS
250122011-02-28 Anatoly Sokolov <aesok@post.ru>
25013
25014 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
25015 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 25016 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
25017 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
25018 Add 'outgoing' argument.
25019 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
25020 function.
25021 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25022 TARGET_FUNCTION_VALUE_REGNO_P): Define.
25023
94369251
KT
250242011-02-28 Kai Tietz <kai.tietz@onevision.com>
25025
25026 PR debug/28047
25027 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
25028 (lookup_filename): Likewise.
b2e2ea67 25029 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 25030
80a832cd
JJ
250312011-02-28 Bernd Schmidt <bernds@codesourcery.com>
25032 Jakub Jelinek <jakub@redhat.com>
25033
25034 PR middle-end/47893
25035 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
25036 (assign_stack_local_1): Change last argument type to int.
25037 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
25038 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 25039 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
25040 (assign_stack_local): Adjust caller.
25041 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
25042 of assign_stack_local, pass 0 as last argument.
25043 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
25044 callers.
25045
1b500976
JJ
250462011-02-28 Jakub Jelinek <jakub@redhat.com>
25047
f61c6f34
JJ
25048 PR debug/47283
25049 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
25050 Use target address_mode and pointer_mode hooks instead of hardcoded
25051 Pmode and ptr_mode. Handle some simple cases of extending if
25052 POINTERS_EXTEND_UNSIGNED < 0.
25053 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
25054 Call convert_debug_memory_address.
25055 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
25056 convert_debug_memory_address.
25057
1b500976
JJ
25058 PR middle-end/46790
25059 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
25060 * configure: Regenerated.
25061 * config.in: Regenerated.
25062 * varasm.c (default_function_section): Return NULL
b2e2ea67 25063 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 25064
2f2935b6
MJ
250652011-02-28 Martin Jambor <mjambor@suse.cz>
25066
25067 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
25068 the description to match the printed values.
25069
474086eb
RG
250702011-02-28 Richard Guenther <rguenther@suse.de>
25071
25072 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
25073 of the copied scope tree.
25074
15bf6f3a
RW
250752011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25076
25077 * doc/extend.texi (Function Attributes): Avoid deeply (and
25078 wrongly) nested tables.
25079
f6b439c9
JJ
250802011-02-27 Jakub Jelinek <jakub@redhat.com>
25081
25082 PR middle-end/47903
25083 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
25084 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
25085 r isn't op0 nor op1.
25086
1d8ca2c7
GJL
250872011-02-23 Georg-Johann Lay <avr@gjlay.de>
25088
25089 * config/avr/avr.md: Remove magic comment for emacs.
25090
593fca4b
GJL
250912011-02-23 Georg-Johann Lay <avr@gjlay.de>
25092
25093 PR target/45261
25094 * config/avr/avr.c (avr_option_override): Use error on bad options.
25095 (avr_help): New function.
25096 (TARGET_HELP): Define.
25097
6609216e
GJL
250982011-02-22 Georg-Johann Lay <avr@gjlay.de>
25099
25100 PR target/42240
25101 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
25102 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
25103
03d458af
GP
251042011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
25105
25106 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
25107 (ARM Options): Ditto.
25108 (i386 and x86-64 Options): Ditto.
25109 (RX Options): Ditto.
25110 (SPARC Options): Ditto.
25111
1c379b78
TC
251122011-02-26 Tijl Coosemans <tijl@coosemans.org>
25113
25114 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
25115 FreeBSD 6 and later. Generally use cpu generic.
25116
d5ed058c 251172011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 25118
d5ed058c
GP
25119 * doc/cpp.texi: Update copyright years.
25120
509d65dd 251212011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 25122
509d65dd 25123 PR target/46898
308d39cd
SB
25124 * config/lm32/lm32.md (ashrsi3): Added needed variable.
25125
509d65dd 251262011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 25127
509d65dd 25128 PR target/46898
308d39cd
SB
25129 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
25130 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
25131 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
25132 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 25133 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
25134 (gen_int_relational): Move declarations to start of function.
25135
822ba6d7
EB
251362011-02-25 Eric Botcazou <ebotcazou@adacore.com>
25137
25138 PR tree-optimization/45470
25139 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
25140 can throw internally only.
25141 * tree-vect-stmts.c (vectorizable_call): Likewise.
25142
ef795fc2
AS
251432011-02-24 Anatoly Sokolov <aesok@post.ru>
25144
25145 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
25146 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
25147 * config/stormy16/stormy16-protos.h
25148 (xstormy16_preferred_reload_class): Remove.
25149 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
25150 static. Change 'rclass' argument and return type to reg_class_t.
25151 (TARGET_PREFERRED_RELOAD_CLASS,
25152 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
25153
1c3277ee
RG
251542011-02-24 Richard Guenther <rguenther@suse.de>
25155
25156 * lto-streamer-in.c (input_bb): Do not find referenced vars
25157 in debug statements.
25158
67e18edb
JM
251592011-02-23 Jason Merrill <jason@redhat.com>
25160
25161 * common.opt (fabi-version): Document v5 and v6.
25162
b14fad9d
RG
251632011-02-23 Richard Guenther <rguenther@suse.de>
25164
25165 PR tree-optimization/47849
25166 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
25167
7fcf46f5
JZ
251682011-02-23 Jie Zhang <jie@codesourcery.com>
25169
25170 * opts-common.c (decode_cmdline_option): Print empty string
25171 argument as "" in decoded->orig_option_with_args_text.
25172 * gcc.c (execute): Print empty string argument as ""
25173 in the verbose output.
25174 (do_spec_1): Keep empty string argument.
25175
f85b70fd
NF
251762011-02-23 Nathan Froyd <froydnj@codesourcery.com>
25177
25178 * config.gcc: Declare score-* and crx-* obsolete.
25179
b152a615
JZ
251802011-02-23 Jie Zhang <jie@codesourcery.com>
25181
25182 PR rtl-optimization/47763
25183 * web.c (web_main): Ignore naked clobber when replacing register.
25184
bb6e77bc
AS
251852011-02-22 Anatoly Sokolov <aesok@post.ru>
25186
25187 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
25188 Remove.
25189
68bf6491
SP
251902011-02-22 Sebastian Pop <sebastian.pop@amd.com>
25191
25192 PR doc/47848
25193 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
25194
88ee1fc7
MS
251952011-02-22 Mike Stump <mikestump@comcast.net>
25196
25197 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
25198 assembler.
25199 * configure: Regenerate.
25200
6042d1dd
CLT
252012011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
25202
25203 PR rtl-optimization/46002
25204 * ira-color.c (update_copy_costs): Change class intersection
25205 test to reg_class_contents[] test of 'hard_regno'.
25206
7de97f9e
JM
252072011-02-21 Joseph Myers <joseph@codesourcery.com>
25208
25209 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
25210 than Driver option.
25211 * config/hpux11.opt (mt): Likewise.
25212 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
25213 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
25214 * config/vax/elf.opt (mno-asm-pic): Likewise.
25215 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
25216
d1d46f9f
MS
252172011-02-21 Mike Stump <mikestump@comcast.net>
25218
25219 PR target/47822
25220 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
25221 tree so we can get save the type.
25222 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
25223 for CFString instead of trying to use past the end of the builtins.
25224 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
25225 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
25226 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
25227 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
25228 Rename to darwin_builtin_cfstring.
25229 (darwin_init_cfstring_builtins): Return the built type.
25230
23e0d930
UB
252312011-02-21 Uros Bizjak <ubizjak@gmail.com>
25232
25233 PR target/47840
25234 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
25235 (_mm256_insert_epi64): Use _mm_insert_epi64.
25236
192997cf
AS
252372011-02-21 Anatoly Sokolov <aesok@post.ru>
25238
25239 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25240 * config/stormy16/stormy16-protos.h
25241 (xstormy16_mode_dependent_address_p): Remove.
25242 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
25243 Make static. Change return type to bool. Change argument type to
25244 const_rtx. Remove dead code.
25245 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25246
e292d003
RG
252472011-02-21 Richard Guenther <rguenther@suse.de>
25248
25249 PR lto/47820
25250 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
25251 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
25252 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
25253 TUs context.
23e0d930 25254 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
25255 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
25256
77f846e9
RG
252572011-02-20 Richard Guenther <rguenther@suse.de>
25258
25259 PR lto/47822
25260 * tree.c (free_lang_data_in_decl): Clean builtins from
25261 the TU decl BLOCK_VARS.
23e0d930 25262
b2cddfc8
AO
252632011-02-19 Alexandre Oliva <aoliva@redhat.com>
25264
25265 PR debug/47620
25266 PR debug/47630
25267 * haifa-sched.c (fix_tick_ready): Skip tick computation
25268 for debug insns.
25269
becf4c11
RG
252702011-02-19 Richard Guenther <rguenther@suse.de>
25271
25272 PR lto/47647
25273 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
25274 Remove lazy BLOCK_VARS streaming.
25275 (lto_input_ts_block_tree_pointers): Likewise.
25276 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
25277
27f98305
JM
252782011-02-19 Joseph Myers <joseph@codesourcery.com>
25279
25280 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
25281
064bf3f4
JM
252822011-02-19 Joseph Myers <joseph@codesourcery.com>
25283
25284 * config/i386/biarch32.h, config/i386/mach.h,
25285 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
25286
9215ddc3
JJ
252872011-02-19 Jakub Jelinek <jakub@redhat.com>
25288
25289 PR target/47800
25290 * config/i386/i386.md (peephole2 for shift and plus): Use
25291 operands[1] original mode in the first insn.
25292
8b021004
MS
252932011-02-18 Mike Stump <mikestump@comcast.net>
25294
65ded153 25295 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 25296
f84ae14c
JH
252972011-02-18 Jan Hubicka <jh@suse.cz>
25298
25299 PR middle-end/47788
65ded153
EB
25300 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
25301 to zero when the function is not inlinable at all.
f84ae14c 25302
eddabc80
JDA
253032011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25304
25305 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
25306 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
25307 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
25308 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
25309 * config/pa/t-pa64: Likewise.
25310 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
25311
ca3da783
JJ
253122011-02-18 Jakub Jelinek <jakub@redhat.com>
25313
25314 PR driver/47787
25315 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
25316
430aa868
JDA
253172011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25318
25319 PR target/47792
25320 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
25321
4bf7ff7e
AS
253222011-02-18 Anatoly Sokolov <aesok@post.ru>
25323
25324 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
25325 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
25326 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
25327 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
25328 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
25329 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
25330 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
25331 m32r_load_postinc_p, m32r_store_preinc_predec_p,
25332 m32r_legitimate_address_p): New functions.
25333 * config/m32r/constraints.md (constraint "S"): Don't use
25334 STORE_PREINC_PREDEC_P.
25335 (constraint "U"): Don't use LOAD_POSTINC_P.
25336
7efcf910
CLT
253372011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
25338
25339 PR rtl-optimization/46178
25340 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
25341 compute ira_hard_regno_cover_class[].
25342
237d6259
RG
253432011-02-18 Richard Guenther <rguenther@suse.de>
25344
25345 PR lto/47798
25346 * lto-streamer.h (lto_global_var_decls): Declare.
25347 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
25348 statics for global var processing.
25349
12d80acc
RG
253502011-02-18 Richard Guenther <rguenther@suse.de>
25351
25352 PR tree-optimization/47737
25353 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
25354 edge dominance check.
25355
abfea58d
JJ
253562011-02-18 Jakub Jelinek <jakub@redhat.com>
25357
25358 PR debug/47780
25359 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
25360 avoid invalid rtx sharing.
25361
f73c8882
GP
253622011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
25363
25364 * doc/cpp.texi (Obsolete Features): Add background on the
25365 origin of assertions.
25366
d764a8e6
IS
253672011-02-17 Iain Sandoe <iains@gcc.gnu.org>
25368
25369 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 25370 objc_abi == 2.
d764a8e6
IS
25371 * config/darwin.c (output_objc_section_asm_op): Added support for
25372 ABI v1 and v2.
25373 (is_objc_metadata): New.
25374 (darwin_objc2_section): New.
25375 (darwin_objc1_section): New.
25376 (machopic_select_section): Added support for ABI v1 and v2.
25377 (darwin_emit_objc_zeroed): New.
25378 (darwin_output_aligned_bss): Detect objc metadata and treat it
25379 appropriately.
25380 (darwin_asm_output_aligned_decl_common): Same.
25381 (darwin_asm_output_aligned_decl_local): Same.
25382 * config/darwin-sections.def: Updated for ABI v1 and v2.
25383 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
25384 compiling Objective-C code for the NeXT runtime, default to using
25385 ABI version 0 for 32-bit, and version 2 for 64-bit.
25386
0a8134ca
JM
253872011-02-17 Joseph Myers <joseph@codesourcery.com>
25388
25389 * common.opt (optimize_fast): New Variable.
25390 * opts.c (default_options_optimization): Use opts->x_optimize_fast
25391 instead of local variable ofast.
25392
0a256240
NP
253932011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
25394
25395 * doc/invoke.texi (fobjc-abi-version): Documented.
25396 (fobjc-nilcheck): Documented.
25397 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
25398 version.
25399
fa381cb2
JM
254002011-02-17 Joseph Myers <joseph@codesourcery.com>
25401
25402 PR driver/47390
25403 * common.opt (export-dynamic): New Driver option.
25404 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
25405
5437eaa6
JM
254062011-02-17 Joseph Myers <joseph@codesourcery.com>
25407
25408 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
25409
bb7e6d55
AO
254102011-02-17 Alexandre Oliva <aoliva@redhat.com>
25411 Jan Hubicka <jh@suse.cz>
25412
25413 PR debug/47106
25414 PR debug/47402
25415 * cfgexpand.c (account_used_vars_for_block): Remove.
25416 (estimated_stack_frame_size): Use referenced vars.
25417 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
25418 that were referenced in the original function. Test src_fn
25419 rather than cfun. Drop redundant get_var_ann.
25420 (setup_one_parameter): Drop redundant get_var_ann.
25421 (declare_return_variable): Likewise.
25422 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
25423 (copy_arguments_for_versioning): Drop redundant get_var_ann.
25424 * ipa-inline.c (compute_inline_parameters): Do not compute
25425 disregard_inline_limits here.
bb7e6d55
AO
25426 (compute_inlinable_for_current, pass_inlinable): New.
25427 (pass_inline_parameters): Require PROP_referenced_vars.
25428 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 25429 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
25430 (cgraph_analyze_function): Set .disregard_inline_limits.
25431 * tree-sra.c (convert_callers): Compute inliner parameters
25432 only for functions already in SSA form.
25433
f181a8a7
JM
254342011-02-17 Joseph Myers <joseph@codesourcery.com>
25435
25436 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
25437 -mlittle-endian-data.
25438
c6869789
JM
254392011-02-17 Joseph Myers <joseph@codesourcery.com>
25440
25441 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
25442 -mno-fpu, not -fpu and -no-fpu.
25443 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
25444 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
25445
fbf4bfd3
UB
254462011-02-17 Uros Bizjak <ubizjak@gmail.com>
25447
25448 PR target/43653
25449 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
25450 input reload with PLUS RTX.
25451
70be5dc7
JM
254522011-02-16 Joseph Myers <joseph@codesourcery.com>
25453
25454 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
25455 of InverseVar(MDMX).
25456
30b1646e
JM
254572011-02-16 Joseph Myers <joseph@codesourcery.com>
25458
25459 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
25460 --m4-340.
25461
ab7b71e9
JM
254622011-02-16 Joseph Myers <joseph@codesourcery.com>
25463
25464 * config/mn10300/mn10300.opt (mno-crt0): New.
25465
466f3f08
JM
254662011-02-16 Joseph Myers <joseph@codesourcery.com>
25467
25468 * config/m68k/uclinux.opt (static-libc): New Driver option.
25469
8226cd7b
JM
254702011-02-16 Joseph Myers <joseph@codesourcery.com>
25471
25472 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
25473
45cab1d7
JM
254742011-02-16 Joseph Myers <joseph@codesourcery.com>
25475
25476 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
25477 %{muser-extend-enabled}.
25478
65aab64f
RG
254792011-02-16 Richard Guenther <rguenther@suse.de>
25480
25481 PR tree-optimization/47738
25482 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
25483 the TODO from tree_predictive_commoning.
25484
fc2fa4fb
JL
254852011-02-15 Jeff Law <law@redhat.com>
25486
25487 Revert
25488 2011-01-25 Jeff Law <law@redhat.com>
25489
25490 PR rtl-optimization/37273
25491 * ira-costs.c (scan_one_insn): Detect constants living in memory and
25492 handle them like argument loads from stack slots. Do not double
25493 count memory for memory constants and argument loads from stack slots.
25494
e3a69bb4
MM
254952011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
25496
25497 PR target/47755
25498 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
25499 mode for vector constants. Remove code that checks for TImode.
25500
de650422
AO
255012011-02-15 Alexandre Oliva <aoliva@redhat.com>
25502
25503 PR debug/47106
25504 PR debug/47402
25505 * cgraph.h (compute_inline_parameters): Return void.
25506 * ipa-inline.c (compute_inline_parameters): Adjust.
25507
30925d94
AO
255082011-02-15 Alexandre Oliva <aoliva@redhat.com>
25509
25510 PR debug/47106
25511 PR debug/47402
25512 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
25513 rather than decl.
25514 * cfgexpand.c (estimated_stack_frame_size): Likewise.
25515 * ipa-inline.c (compute_inline_parameters): Adjust.
25516
1b9a784a
AO
255172011-02-15 Alexandre Oliva <aoliva@redhat.com>
25518
25519 PR debug/47106
25520 PR debug/47402
25521 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
25522 Adjust all users. Pass FN to...
25523 * tree-flow-inline.h (first_referenced_var): ... this. Add
25524 fn argument.
25525 * ipa-struct-reorg.c: Adjust.
25526 * tree-dfa.c: Adjust.
25527 * tree-into-ssa.c: Adjust.
25528 * tree-sra.c: Adjust.
25529 * tree-ssa-alias.c: Adjust.
25530 * tree-ssa-live.c: Adjust.
25531 * tree-ssa.c: Adjust.
25532 * tree-ssanames.c: Adjust.
25533 * tree-tailcall.c: Adjust.
25534
27c6b086
AO
255352011-02-15 Alexandre Oliva <aoliva@redhat.com>
25536
25537 PR debug/47106
25538 PR debug/47402
25539 * tree-flow.h (referenced_var_lookup): Add fn parameter.
25540 Adjust all callers.
25541 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
25542 * tree-flow-inline.h: Adjust.
25543 * gimple-pretty-print.c: Adjust.
25544 * tree-into-ssa.c: Adjust.
25545 * tree-ssa.c: Adjust.
25546 * cfgexpand.c: Adjust.
25547
679e8183
NF
255482011-02-15 Nathan Froyd <froydnj@codesourcery.com>
25549
fbf4bfd3
UB
25550 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
25551 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
25552 (EXTRA_CONSTRAINT): Delete.
25553 * config/iq2000/constraints.md: New file.
25554 * config/iq2000/iq2000.md: Include it.
679e8183
NF
25555 (define_insn ""): Delete.
25556 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
25557 unsupported constraint letters from patterns.
25558 (call_value, call_value_internal1): Likewise.
25559 (call_value_multiple_internal1): Likewise.
25560
a45d420a
NC
255612011-02-15 Nick Clifton <nickc@redhat.com>
25562
25563 * config/mn10300/mn10300.c: Include tm-constrs.h.
25564 (struct liw_data): New data structure describing an LIW candidate
25565 instruction.
25566 (extract_bundle): Use struct liw_data. Allow small integer
25567 operands for some instructions.
25568 (check_liw_constraints): Use struct liw_data. Remove swapped
25569 parameter. Add comments describing the checks. Fix bug when
25570 assigning the source of liw1 to the source of liw2.
25571 (liw_candidate): Delete. Code moved into extract_bundle.
25572 (mn10300_bundle_liw): Use struct liw_data. Check constraints
25573 before swapping.
25574 * config/mn10300/predicates.md (liw_operand): New predicate.
25575 Allows registers and small integer constants.
25576 * config/mn10300/constraints.md (O): New constraint. Accetps
25577 integers in the range -8 to +7 inclusive.
25578 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
25579 for moving a small integer into a register. Give this alternative
25580 LIW attributes.
25581 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
25582 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
25583 using the J,K,L and M constraints,
25584 (liw): Remove SI mode on second operands to allow for HI and QI
25585 mode values.
25586 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
25587 instruction.
25588
48feba28
RG
255892011-02-15 Richard Guenther <rguenther@suse.de>
25590
25591 PR tree-optimization/47743
25592 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
25593 for a non-type-compatible VN lookup bail out.
25594
ad1c1eeb
NF
255952011-02-15 Nathan Froyd <froydnj@codesourcery.com>
25596
25597 * config/fr30/constraints.md: New file.
25598 * config/fr30/fr30.md: Include it.
25599 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
25600 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
25601 (EXTRA_CONSTRAINT): Delete.
25602
49ac143d
NF
256032011-02-15 Nathan Froyd <froydnj@codesourcery.com>
25604
25605 * config/frv/constraints.md: New file.
25606 * config/frv/predicates.md: Include it.
25607 * config/frv/frv.c (reg_class_from_letter): Delete.
25608 (frv_option_override): Don't initialize it.
25609 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
25610 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
25611 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
25612 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
25613 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
25614 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
25615 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
25616 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
25617 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
25618 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
25619 (REG_CLASS_FROM_CONSTRAINT): Delete.
25620
c95f9494
JJ
256212011-02-15 Jakub Jelinek <jakub@redhat.com>
25622
25623 PR middle-end/47581
25624 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
25625 if frame size is 0 in a leaf function.
25626
13aed611
RO
256272011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25628
25629 PR pch/14940
25630 * config/alpha/host-osf.c: New file.
25631 * config/alpha/x-osf: New file.
25632 * config.host (alpha*-dec-osf*): Use it.
25633
b09c3081
AS
256342011-02-14 Anatoly Sokolov <aesok@post.ru>
25635
25636 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25637 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
25638 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
25639 (rx_mode_dependent_address_p): ...this. Make static. Change argument
25640 type to const_rtx.
25641 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25642
d634083b
NF
256432011-02-14 Nathan Froyd <froydnj@codesourcery.com>
25644
25645 * config/stormy16/constraints.md: New file.
25646 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
25647 Use satisfies_constraint_Q and satisfies_constraint_R.
25648 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
25649 Delete.
25650 (xstormy16_legitiamte_address_p): Declare.
25651 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
25652 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
25653 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 25654 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
25655 Un-staticize.
25656 (xstormy16_extra_constraint_p): Delete.
25657
c7dd803e
EB
256582011-02-14 Eric Botcazou <ebotcazou@adacore.com>
25659
25660 PR tree-optimization/46494
25661 * loop-unroll.c (split_edge_and_insert): Adjust comment.
25662 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
25663 (pass_rtl_loop_done): Add TODO_verify_flow.
25664 * fwprop.c (pass_rtl_fwprop): Likewise.
25665 * modulo-sched.c (pass_sms): Likewise.
25666 * tree-ssa-dom.c (pass_dominator): Likewise.
25667 * tree-ssa-loop-ch.c (pass_ch): Likewise.
25668 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
25669 (pass_tree_loop_done): Likewise.
25670 * tree-ssa-pre.c (execute_pre): Likewise.
25671 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
25672 * tree-ssa-sink.c (pass_sink_code): Likewise.
25673 * tree-vrp.c (pass_vrp): Likewise.
25674
c6150df6
NF
256752011-02-14 Nathan Froyd <froydnj@codesourcery.com>
25676
c7dd803e
EB
25677 * config/v850/constraints.md: New file.
25678 * config/v850/v850.md: Include it.
25679 * config/v850/predicates.md (reg_or_0_operand): Use
25680 satisfies_constraint_G.
25681 (special_symbolref_operand): Use satisfies_constraint_K.
25682 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
25683 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
25684 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
25685 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
25686 (EXTRA_CONSTRAINT): Delete.
25687 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
25688 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
25689 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 25690
30dd1ea3
AS
256912011-02-14 Anatoly Sokolov <aesok@post.ru>
25692
25693 PR target/47696
25694 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
25695 description.
25696
944f4bb3
NF
256972011-02-14 Nathan Froyd <froydnj@codesourcery.com>
25698
25699 * config/mcore/constraints.md: New file.
25700 * config/mcore/mcore.md: Include it.
25701 * config/mcore/mcore.c (reg_class_from_letter): Delete.
25702 * config/mcore/mcore.h (reg_class_from_letter): Delete.
25703 (REG_CLASS_FROM_LETTER): Delete.
25704 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
25705 insn_const_int_ok_for_constraint.
25706 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
25707 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
25708 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
25709 (EXTRA_CONSTRAINT): Delete.
25710
ad56a54c
RO
257112011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25712
25713 PR ada/41929
25714 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
25715 (IS_SIGHANDLER): Define.
25716 (sparc64_is_sighandler): New function, split off from
25717 sparc64_fallback_frame_state.
25718 (sparc_is_sighandler): New function, split off from
25719 sparc_fallback_frame_state.
25720 (sparc64_fallback_frame_state): Merge with ...
25721 (sparc_fallback_frame_state): ... this into ...
25722 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
25723 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
25724 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
25725 stack instead of hardcoded offsets.
ad56a54c 25726
fbf4bfd3 257272011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
25728
25729 PR target/45808
25730 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
25731
029c8f3e
RW
257322011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25733
25734 * configure: Regenerate.
25735
a016dc83
JM
257362011-02-12 Joseph Myers <joseph@codesourcery.com>
25737
25738 PR driver/45731
25739 * gcc.c (asm_options): Correct spec matching --target-help.
25740
8957a0ec
MJ
257412011-02-12 Martin Jambor <mjambor@suse.cz>
25742
25743 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
25744 to gimple call error.
25745
6ef828bc
MS
257462011-02-12 Mike Stump <mikestump@comcast.net>
25747
25748 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
25749 comments in backslash regions.
25750
a4015be5
MS
257512011-02-12 Mike Stump <mikestump@comcast.net>
25752 Jakub Jelinek <jakub@redhat.com>
25753 Iain Sandoe <iains@gcc.gnu.org>
25754
25755 PR target/47324
25756 * dwarf2out.c (output_cfa_loc): When required, apply the
25757 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
25758 (output_loc_sequence): Likewise.
25759 (output_loc_operands_raw): Likewise.
25760 (output_loc_sequence_raw): Likewise.
25761 (output_cfa_loc): Likewise.
25762 (output_loc_list): Suppress register number adjustment when
25763 calling output_loc_sequence()
25764 (output_die): Likewise.
25765
5378dda2
AS
257662011-02-12 Anatoly Sokolov <aesok@post.ru>
25767
25768 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
25769 Remove macros.
25770 * config/xtensa/xtensa.c (xtensa_register_move_cost,
25771 xtensa_memory_move_cost): New functions.
25772 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
25773
f3d533d3
AO
257742011-02-12 Alexandre Oliva <aoliva@redhat.com>
25775
25776 PR lto/47225
25777 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
25778 in the current directory.
25779 * configure: Rebuilt.
25780
9d53403c
IS
257812011-02-12 Iain Sandoe <iains@gcc.gnu.org>
25782
25783 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 25784 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
25785 correct indents of the preceding block.
25786
a350a6c8
IS
257872011-02-12 Iain Sandoe <iains@gcc.gnu.org>
25788
25789 * gcc.c (driver_handle_option): Concatenate the argument to -F with
25790 the switch.
25791
bab79a40
JM
257922011-02-11 Joseph Myers <joseph@codesourcery.com>
25793
25794 * common.opt (nostartfiles): New Driver option.
25795
1bbc6693
XDL
257962011-02-11 Xinliang David Li <davidxl@google.com>
25797
25798 PR tree-optimization/47707
25799 * tree-chrec.c (convert_affine_scev): Keep type precision.
25800
1da7d8c0
EB
258012011-02-11 Eric Botcazou <ebotcazou@adacore.com>
25802
25803 PR tree-optimization/47420
25804 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
25805
258062011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
25807
25808 PR rtl-optimization/47614
25809 * rtl.h (check_for_inc_dec): Declare.
25810 * dse.c (check_for_inc_dec): Externalize...
25811 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
25812 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
25813
4df47bca
JM
258142011-02-11 Joseph Myers <joseph@codesourcery.com>
25815
25816 PR driver/47678
25817 * gcc.c (main): Do not compile inputs if there were errors in
25818 option handling.
25819 * opts-common.c (read_cmdline_option): Check for wrong language
25820 after other error checks.
25821
61502ca8
NF
258222011-02-11 Nathan Froyd <froydnj@codesourcery.com>
25823
25824 * cgraph.c: Fix comment typos.
25825 * cgraph.h: Likewise.
25826 * cgraphunit.c: Likewise.
25827 * ipa-cp.c: Likewise.
25828 * ipa-inline.c: Likewise.
25829 * ipa-prop.c: Likewise.
25830 * ipa-pure-const.c: Likewise.
25831 * ipa-ref.c: Likewise.
25832 * ipa-reference.c: Likewise.
25833
b63f974e
JJ
258342011-02-11 Jakub Jelinek <jakub@redhat.com>
25835
d50c5e0c
JJ
25836 PR debug/47684
25837 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 25838
6dd2a13c
RO
258392011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25840
25841 PR testsuite/47400
25842 * doc/sourcebuild.texi (Require Support): Document
25843 dg-require-ascii-locale.
25844
4a087ccf
MX
258452011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
25846
25847 * doc/lto.texi (Write summary): Fix missing parentheses.
25848
a4403164
DD
258492011-02-10 DJ Delorie <dj@redhat.com>
25850
25851 * config/m32c/m32c.c (m32c_option_override): Disable
25852 -fcombine-stack-adjustments until flag value tracking and compare
25853 optimization can be rewritten.
25854
4fac45bd
PB
258552011-02-10 Peter Bergner <bergner@vnet.ibm.com>
25856
25857 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
25858 PROCESSOR_POWER7.
25859 (PROCESSOR_DEFAULT64): Likewise.
25860
72602cd1
RH
258612011-02-10 Richard Henderson <rth@redhat.com>
25862
25863 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
25864 change from 2011-02-03.
25865 * config/rx/rx.c (flags_from_code): Likewise.
25866 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
25867 is valid, n/pz otherwise.
25868 (rx_select_cc_mode): Return CCmode if Y is not zero.
25869
ea57f573
RG
258702011-02-10 Richard Guenther <rguenther@suse.de>
25871
ea4c3e65 25872 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 25873
92b1d23b
RG
258742011-02-10 Richard Guenther <rguenther@suse.de>
25875
25876 PR tree-optimization/47677
25877 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
25878
525a2d06
JJ
258792011-02-10 Jakub Jelinek <jakub@redhat.com>
25880
25881 PR target/47665
25882 * combine.c (make_compound_operation): Only change shifts into
25883 multiplication for SCALAR_INT_MODE_P.
25884
06c969bd
JZ
258852011-02-10 Jie Zhang <jie@codesourcery.com>
25886
25887 PR testsuite/47622
25888 Revert
25889 2011-02-05 Jie Zhang <jie@codesourcery.com>
25890 PR debug/42631
25891 * web.c (entry_register): Don't clobber the number of the
25892 first uninitialized reference in used[].
25893
282ec48e
RG
258942011-02-09 Richard Guenther <rguenther@suse.de>
25895
25896 PR tree-optimization/47664
25897 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
25898 all edges again.
25899
df98c3e8
DE
259002011-02-09 David Edelsohn <dje.gcc@gmail.com>
25901
d0f21cd6
DE
25902 PR target/46481
25903 PR target/47032
df98c3e8
DE
25904 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
25905 PROCESSOR_POWER7.
25906 (PROCESSOR_DEFAULT64): Same.
25907 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
25908
67b6839f
RO
259092011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25910
25911 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
25912
4fd73214
MJ
259132011-02-09 Martin Jambor <mjambor@suse.cz>
25914
25915 PR middle-end/45505
25916 * tree-sra.c (struct access): New flags grp_scalar_read and
25917 grp_scalar_write. Changed description of assignment read and write
25918 flags.
25919 (dump_access): Dump new flags, reorder all of them.
25920 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
25921 to detect multiple scalar reads.
25922 (analyze_access_subtree): Use the new scalar read write flags instead
25923 of the old flags. Adjusted comments.
25924
91140cd3
DD
259252011-02-08 DJ Delorie <dj@redhat.com>
25926
25927 PR target/47548
25928 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
25929 patterns.
25930
4254bbfe
JM
259312011-02-08 Joseph Myers <joseph@codesourcery.com>
25932
25933 * config/m68k/uclinux.opt: New.
25934 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
25935
f1fda84e
JM
259362011-02-08 Joseph Myers <joseph@codesourcery.com>
25937
25938 * config/cris/elf.opt (sim): New Driver option.
25939
4933ae74
JM
259402011-02-08 Joseph Myers <joseph@codesourcery.com>
25941
25942 * config/xtensa/elf.opt: New.
25943 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
25944
4ad70280
JM
259452011-02-08 Joseph Myers <joseph@codesourcery.com>
25946
25947 * config/vax/elf.opt: New.
25948 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
25949
20893707
JM
259502011-02-08 Joseph Myers <joseph@codesourcery.com>
25951
25952 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
25953
b8e7038e
JM
259542011-02-08 Joseph Myers <joseph@codesourcery.com>
25955
25956 * config/gnu-user.opt: New.
25957 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
25958 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
25959 *-*-uclinux*): Use gnu-user.opt.
25960
e1c5225a
TS
259612011-02-08 Thomas Schwinge <thomas@schwinge.name>
25962
25963 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
25964 * config/i386/gnu.h (CPP_SPEC): Likewise.
25965
5e46b0c6
ILT
259662011-02-08 Ian Lance Taylor <iant@google.com>
25967
25968 * common.opt (fcx-limited-range): Add SetByCombined flag.
25969 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
25970 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
25971 (fassociative-math, freciprocal-math): Likewise.
25972 (funsafe-math-optimizations): Likewise.
25973 * opth-gen.awk: Handle SetByCombined.
25974 * optc-gen.awk: Likewise.
ea4c3e65 25975 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
25976 (set_unsafe_math_optimizations_flags): Likewise.
25977 * doc/options.texi (Option properties): Document SetByCombined.
25978
32243d46
JM
259792011-02-08 Joseph Myers <joseph@codesourcery.com>
25980
25981 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
25982 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
25983 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
25984 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
25985 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
25986
479c1fb3
SP
259872011-02-08 Sebastian Pop <sebastian.pop@amd.com>
25988
25989 PR tree-optimization/46834
25990 PR tree-optimization/46994
25991 PR tree-optimization/46995
25992 * graphite-sese-to-poly.c (used_outside_reduction): New.
25993 (detect_commutative_reduction): Call used_outside_reduction.
25994 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
25995 translate_scalar_reduction_to_array only when at least one
25996 loop-phi/close-phi tuple has been detected.
25997
3865a06f
RG
259982011-02-08 Richard Guenther <rguenther@suse.de>
25999
26000 PR middle-end/47639
26001 * tree-vect-generic.c (expand_vector_operations_1): Update
26002 stmts here ...
26003 (expand_vector_operations): ... not here. Cleanup EH info
26004 and the CFG if required.
26005
62902f3f
RG
260062011-02-08 Richard Guenther <rguenther@suse.de>
26007
26008 PR tree-optimization/47641
26009 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
26010 require type compatibility.
26011
0efb9d64
AK
260122011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26013
26014 * gimple-low.c (lower_function_body): Don't remove the location of
26015 the return statement here.
26016 (lower_gimple_return): Do it here instead but only if the return
26017 statement is actually used twice.
26018
034b8ae4
RG
260192011-02-08 Richard Guenther <rguenther@suse.de>
26020
26021 PR tree-optimization/47632
26022 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
26023 unused up_to_stmt parameter, return whether cfg-cleanup is
26024 necessary, remove EH info properly.
26025 (forward_propagate_into_gimple_cond): Adjust caller.
26026 (forward_propagate_into_cond): Likewise.
26027 (forward_propagate_comparison): Likewise.
26028 (tree_ssa_forward_propagate_single_use_vars): Make
26029 forward_propagate_comparison case similar to the two others.
26030
298362c8
NC
260312011-02-08 Nick Clifton <nickc@redhat.com>
26032
26033 * config/mn10300/mn10300.opt (mliw): New command line option.
26034 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
26035 (liw_bundling): New automaton.
26036 (liw): New attribute.
26037 (liw_op): New attribute.
26038 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
26039 (movsi_internal): Add LIW attributes.
26040 (andsi3): Likewise.
26041 (iorsi3): Likewise.
26042 (xorsi3): Likewise.
26043 (addsi3): Separate register and immediate alternatives.
26044 Add LIW attributes.
26045 (subsi3): Likewise.
26046 (cmpsi): Likewise.
26047 (aslsi3): Likewise.
26048 (lshrsi3): Likewise.
26049 (ashrsi3): Likewise.
26050 (liw): New pattern.
26051 * config/mn10300/mn10300.c (liw_op_names): New
26052 (mn10300_print_operand): Handle 'W' operand descriptor.
26053 (extract_bundle): New function.
26054 (check_liw_constraints): New function.
26055 (liw_candidate): New function.
26056 (mn10300_bundle_liw): New function.
26057 (mn10300_reorg): New function.
26058 (TARGET_MACHINE_DEPENDENT_REORG): Define.
26059 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
26060 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
26061 __LIW__ or __NO_LIW__.
26062 * doc/invoke.texi: Describe the -mliw command line option.
26063
90488014
JDA
260642011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26065
26066 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
26067 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
26068 pthread_mutex_unlock): Remove.
26069 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
26070 * config/pa/t-pa64: Likewise.
26071 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
26072 shared libc if not linking against libpthread.
26073 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
26074
689ff841
IS
260752011-02-07 Iain Sandoe <iains@gcc.gnu.org>
26076
26077 PR target/47558
26078 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
26079 on 10.6 and later to ensure that we always use the unwinder from
26080 the system. Only add -no_compact_unwind when tarteting darwin
26081 10.6 or later.
26082
821014aa
SE
260832011-02-07 Steve Ellcey <sje@cup.hp.com>
26084
26085 PR target/46997
26086 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
26087 (vec_interleave_lowv2sf): Ditto.
26088 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
26089 (vec_extract_oddv2sf): Ditto.
26090
41cf94fb
MS
260912011-02-07 Mike Stump <mikestump@comcast.net>
26092
62dea57d 26093 PR target/42333
41cf94fb
MS
26094 Add __ieee_divdc3 entry point.
26095 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
26096 entry point.
26097 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
26098 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
26099 * config/darwin.c (darwin_rename_builtins): Add.
26100 * config/darwin-protos.h (darwin_rename_builtins): Add.
26101
ee09a3dd
MM
261022011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
26103
26104 PR target/47636
26105 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
26106 for the condition.
26107
83296cd0
MS
261082011-02-07 Mike Stump <mikestump@comcast.net>
26109
ea4c3e65 26110 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 26111
0f4e946f
DC
261122011-02-07 Denis Chertykov <chertykov@gmail.com>
26113
26114 PR target/47534
26115 * config/avr/libgcc.S (exit): Move .endfunc
26116
1ec87690
RG
261172011-02-07 Richard Guenther <rguenther@suse.de>
26118
26119 PR tree-optimization/47615
26120 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
26121 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
26122 (run_scc_vn): Initialize it.
26123 (visit_reference_op_load): Use it.
26124 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
26125
b46ae6da
UW
261262011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26127
26128 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
26129 DImode trapping arithmetic libfuncs.
26130
c0aae19c
RG
261312011-02-07 Richard Guenther <rguenther@suse.de>
26132
26133 PR tree-optimization/47621
26134 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
26135 two duplicates ...
26136 (execute_update_addresses_taken): ... here. Make it more
26137 conservative in what we accept.
26138
295d926b
JM
261392011-02-06 Joseph Myers <joseph@codesourcery.com>
26140
26141 * config/sparc/freebsd.h (ASM_SPEC): Define.
26142 * config/sparc/vxworks.h (ASM_SPEC): Define.
26143
bdeb2471
JM
261442011-02-06 Joseph Myers <joseph@codesourcery.com>
26145
26146 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
26147
d5d3781a
SB
261482011-02-06 Steven Bosscher <steven@gcc.gnu.org>
26149
26150 * doc/invoke.texi: Remove reference to compiler internals from
26151 user documentation.
26152
26153 * reg-notes.def: Remove REG_VALUE_PROFILE.
26154 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
26155
c42c09fc
JJ
261562011-02-05 Jakub Jelinek <jakub@redhat.com>
26157
26158 PR middle-end/47610
26159 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 26160 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 26161
beea2755
JZ
261622011-02-05 Jie Zhang <jie@codesourcery.com>
26163
26164 PR debug/42631
26165 * web.c (entry_register): Don't clobber the number of the
26166 first uninitialized reference in used[].
26167
a130584a
SP
261682011-02-04 Sebastian Pop <sebastian.pop@amd.com>
26169
26170 PR tree-optimization/46194
26171 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
26172 (build_classic_dist_vector_1): Do not represent classic distance
26173 vectors when the access functions are variating in different loops.
26174
962101ac
JM
261752011-02-04 Joseph Myers <joseph@codesourcery.com>
26176
26177 * config/mips/iris6.opt: New.
26178 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
26179
55eaaa5b
RH
261802011-02-04 Richard Henderson <rth@redhat.com>
26181 Steve Ellcey <sje@cup.hp.com>
26182
26183 PR target/46997
26184 * config/ia64/predicates.md (mux1_brcst_element): New.
26185 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
26186 * config/ia64/ia64.c (ia64_unpack_assemble): New.
26187 (ia64_unpack_sign): New.
26188 (ia64_expand_unpack): Rewrite using new routines.
26189 (ia64_expand_widen_sum): Ditto.
26190 (ia64_expand_dot_prod_v8qi): Ditto.
26191 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
26192 routines, add endian check.
26193 (pmpy2_even): Rename from pmpy2_r, add endian check.
26194 (pmpy2_odd): Rename from pmpy2_l, add endian check.
26195 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
26196 (vec_widen_smult_hi_v4hi): Ditto.
26197 (vec_widen_umult_lo_v4hi): Ditto.
26198 (vec_widen_umult_hi_v4hi): Ditto.
26199 (mulv2si3): Change endian checks.
26200 (sdot_prodv4hi): Rewrite with new calls.
26201 (udot_prodv4hi): New.
26202 (vec_pack_ssat_v4hi): Add endian check.
26203 (vec_pack_usat_v4hi): Ditto.
26204 (vec_pack_ssat_v2si): Ditto.
26205 (max1_even): Rename from max1_r, add endian check.
26206 (max1_odd): Rename from max1_l, add endian check.
26207 (*mux1_rev): Format change.
26208 (*mux1_mix): Ditto.
26209 (*mux1_shuf): Ditto.
26210 (*mux1_alt): Ditto.
26211 (*mux1_brcst_v8qi): Use new predicate.
26212 (vec_extract_evenv8qi): Remove endian check.
26213 (vec_extract_oddv8qi): Ditto.
26214 (vec_interleave_lowv4hi): Format change.
26215 (vec_interleave_highv4hi): Ditto.
26216 (mix2_even): Rename from mix2_r, add endian check.
26217 (mix2_odd): Rename from mux2_l, add endian check.
26218 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
26219 (vec_extract_evenodd_helper): Format change.
26220 (vec_extract_evenv4hi): Remove endian check.
26221 (vec_extract_oddv4hi): Remove endian check.
26222 (vec_interleave_lowv2si): Format change.
26223 (vec_interleave_highv2si): Format change.
26224 (vec_initv2si): Remove endian check.
26225 (vecinit_v2si): Add endian check.
26226 (reduc_splus_v2sf): Add endian check.
26227 (reduc_smax_v2sf): Ditto.
26228 (reduc_smin_v2sf): Ditto.
26229 (vec_initv2sf): Remove endian check.
26230 (fpack): Add endian check.
26231 (fswap): Add endian check.
26232 (vec_interleave_highv2sf): Add endian check.
26233 (vec_interleave_lowv2sf): Add endian check.
26234 (fmix_lr): Add endian check.
26235 (vec_setv2sf): Format change.
26236 (*vec_extractv2sf_0_be): Use shift to extract operand.
26237 (*vec_extractv2sf_1_be): New.
26238 (vec_pack_trunc_v4hi): Add endian check.
26239 (vec_pack_trunc_v2si): Format change.
26240
dcde5957
JJ
262412011-02-04 Jakub Jelinek <jakub@redhat.com>
26242
26243 PR inline-asm/23200
26244 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 26245 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
26246 (stmt_is_replaceable_p): New function.
26247 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
26248 callers.
26249 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
26250 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
26251 SSA_NAME_DEF_STMT.
26252 * tree-flow.h (stmt_is_replaceable_p): New prototype.
26253
a64a8e5a
JM
262542011-02-04 Joseph Myers <joseph@codesourcery.com>
26255
26256 * config/rs6000/xilinx.opt: New.
26257 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
26258
4da2ed2f
JM
262592011-02-04 Joseph Myers <joseph@codesourcery.com>
26260
26261 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
26262
a6e508f9
AS
262632011-02-03 Anatoly Sokolov <aesok@post.ru>
26264
26265 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
26266 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
26267 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
26268 secondary_reload_info, xtensa_secondary_reload): Remove.
26269 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
26270 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
26271 (xtensa_preferred_reload_class): Make static. Change return and
26272 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
26273 Use CONST_DOUBLE_P predicate.
26274 (xtensa_preferred_output_reload_class): New function.
26275 (xtensa_secondary_reload): Make static.
26276
82dc0de3
JM
262772011-02-03 Joseph Myers <joseph@codesourcery.com>
26278
26279 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
26280 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
26281 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
26282
7fece979
JJ
262832011-02-03 Jakub Jelinek <jakub@redhat.com>
26284
26285 PR middle-end/31490
26286 * output.h (SECTION_RELRO): Define.
26287 (SECTION_MACH_DEP): Adjust.
26288 (get_variable_section): New prototype.
26289 * varpool.c (varpool_finalize_named_section_flags): New function.
26290 (varpool_assemble_pending_decls): Call it.
26291 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
26292 * cgraphunit.c (cgraph_output_in_order): Call
26293 varpool_finalize_named_section_flags.
26294 * varasm.c (get_section): Allow section flags conflicts between
26295 relro and read-only sections if the section hasn't been declared yet.
26296 Set SECTION_OVERRIDE after diagnosing section type conflict.
26297 (get_variable_section): No longer static.
26298 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
26299 readonly sections that need relocations.
26300 (decl_readonly_section_1): New function.
26301 (decl_readonly_section): Use it.
26302
26303 Revert:
509d65dd 26304 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
26305 Steve Ellcey <sje@cup.hp.com>
26306
26307 PR middle-end/31490
26308 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
26309 if section attribute used.
26310
d18d5478
JJ
263112011-02-03 Jakub Jelinek <jakub@redhat.com>
26312
26313 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
26314 * config/darwin.c (SECTION_NO_ANCHOR): Define.
26315 (darwin_init_sections): Remove assertion.
26316
6479ed4b
NC
263172011-02-03 Nick Clifton <nickc@redhat.com>
26318
26319 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
26320 lt and ge.
38be4072 26321 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
26322 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
26323 instead of "n" and "pz".
26324 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
26325 CC_FLAG_S.
26326
89843f5d
JJ
263272011-02-03 Jakub Jelinek <jakub@redhat.com>
26328
65450d64
JJ
26329 PR target/47312
26330 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
26331 fma, expand FMA_EXPR as fma{,f,l} call.
26332
7d58701c
JJ
26333 PR lto/47274
26334 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
26335 copy them into a unsigned char variable and pass address of it to
26336 lto_output_data_stream.
26337
89843f5d
JJ
26338 PR target/47564
26339 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
26340 around backend_init_target and lang_dependent_init_target calls.
26341 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
26342 (verify_cgraph_node): Don't call set_cfun here. Use
26343 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
26344 Set error_found for incorrectly represented calls to thunks.
26345
4deef538
AO
263462011-02-03 Alexandre Oliva <aoliva@redhat.com>
26347
26348 PR debug/43092
26349 PR rtl-optimization/43494
26350 * rtl.h (for_each_inc_dec_fn): New type.
26351 (for_each_inc_dec): Declare.
26352 * rtlanal.c (struct for_each_inc_dec_ops): New type.
26353 (for_each_inc_dec_find_inc_dec): New fn.
26354 (for_each_inc_dec_find_mem): New fn.
26355 (for_each_inc_dec): New fn.
26356 * dse.c (struct insn_size): Remove.
26357 (replace_inc_dec, replace_inc_dec_mem): Remove.
26358 (emit_inc_dec_insn_before): New fn.
26359 (check_for_inc_dec): Use it, along with for_each_inc_dec.
26360 (canon_address): Pass mem modes to cselib_lookup.
26361 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
26362 (cselib_lookup_from_insn): Likewise.
26363 (cselib_subst_to_values): Likewise.
26364 * cselib.c (find_slot_memmode): New var.
26365 (cselib_find_slot): New fn. Use it instead of
26366 htab_find_slot_with_hash everywhere.
26367 (entry_and_rtx_equal_p): Use find_slot_memmode.
26368 (autoinc_split): New fn.
26369 (rtx_equal_for_cselib_p): Rename and implement in terms of...
26370 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
26371 Deal with autoinc. Special-case recursion into MEMs.
26372 (cselib_hash_rtx): Likewise.
26373 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
26374 address and MEM modes.
26375 (cselib_subst_to_values): Add memmode, pass it on.
26376 Deal with autoinc.
26377 (cselib_lookup): Add memmode argument, pass it on.
26378 (cselib_lookup_from_insn): Add memmode.
26379 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
26380 (struct cselib_record_autoinc_data): New.
26381 (cselib_record_autoinc_cb): New fn.
26382 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
26383 mode to cselib_lookup. Reset autoinced REGs here instead of...
26384 (cselib_process_insn): ... here.
26385 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
26386 to cselib_lookup.
26387 (add_uses): Likewise, also to cselib_subst_to_values.
26388 (add_stores): Likewise.
276e0224 26389 * sched-deps.c (add_insn_mem_dependence): Pass mode to
4deef538
AO
26390 cselib_subst_to_values.
26391 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
26392 * gcse.c (do_local_cprop): Adjusted.
26393 * postreload.c (reload_cse_simplify_set): Adjusted.
26394 (reload_cse_simplify_operands): Adjusted.
26395 * sel-sched-dump (debug_mem_addr_value): Pass mode.
26396
1551d44a
AO
263972011-02-03 Alexandre Oliva <aoliva@redhat.com>
26398
26399 PR tree-optimization/45122
26400 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
26401 unsafe assumptions when there's more than one loop exit.
26402
c9485473
MM
264032011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
26404
26405 PR target/47272
26406 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26407 Document using vector double with the load/store builtins, and
26408 that the load/store builtins always use Altivec instructions.
26409
26410 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
26411 to use altivec memory instructions, even on VSX.
26412 (vector_altivec_store_<mode>): Ditto.
26413
26414 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
26415 function.
26416
26417 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26418 V2DF, V2DI support to load/store overloaded builtins.
26419
26420 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
26421 altivec load/store builtins for V2DF/V2DI types.
26422
26423 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
26424 set avoid indexed addresses on power6 if -maltivec.
26425 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
26426 vector_altivec_load/vector_altivec_store builtins.
26427 (altivec_expand_st_builtin): Ditto.
26428 (altivec_expand_builtin): Add VSX memory builtins.
26429 (rs6000_init_builtins): Add V2DI types to internal types.
26430 (altivec_init_builtins): Add support for V2DF/V2DI altivec
26431 load/store builtins.
26432 (rs6000_address_for_altivec): Insure memory address is appropriate
26433 for Altivec.
26434
26435 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
26436 vec_vsx_ld and vec_vsx_st.
26437 (vsx_store_<mode>): Ditto.
26438
26439 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
26440 variables to hold long long types for VSX vector memory builtins.
26441 (RS6000_BTI_unsigned_long_long): Ditto.
26442 (long_long_integer_type_internal_node): Ditti.
26443 (long_long_unsigned_type_internal_node): Ditti.
26444
26445 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
26446 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
26447 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
26448
26449 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
26450 short cuts.
26451 (vec_vsx_st): Ditto.
26452
b24d1acf
JM
264532011-02-02 Joseph Myers <joseph@codesourcery.com>
26454
26455 * config/pa/pa-hpux10.opt: New.
26456 * config/hpux11.opt (pthread): New Driver option.
26457 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
26458 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
26459
aa18dd0f
JM
264602011-02-02 Joseph Myers <joseph@codesourcery.com>
26461
26462 * config/ia64/vms.opt: New.
26463 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
26464
28fc3eee
MM
264652011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
26466
26467 PR target/47580
26468 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
26469 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
26470 generator functions.
26471 (vsx_floatuns<VSi><mode>2): Ditto.
26472 (vsx_fix_trunc<mode><VSi>2): Ditto.
26473 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
26474
b5838b1f
JM
264752011-02-02 Joseph Myers <joseph@codesourcery.com>
26476
26477 * config/i386/djgpp.opt (posix): New Driver option.
26478
0db8fa89
GP
264792011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
26480
26481 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
26482 Move to the unsupported targets list.
26483
9cd4f22a
PB
264842011-02-02 Peter Bergner <bergner@vnet.ibm.com>
26485
26486 PR rtl-optimization/47525
26487 * df-scan.c: Update copyright years.
26488 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
26489 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
26490
9ed8059c
RO
264912011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26492
26493 * config/i386/sysv4.h (TARGET_VERSION): Remove.
26494 (SUBTARGET_RETURN_IN_MEMORY): Remove.
26495 (ASM_OUTPUT_ASCII): Remove.
26496 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
26497
2a737389
JL
264982011-02-02 Jeff Law <law@redhat.com>
26499
26500 PR middle-end/47543
26501 * reload.c (find_reloads_address): Handle reg+d address where both
26502 components are invalid by reloading the entire address.
26503
9dac82c4
SP
265042011-02-02 Sebastian Pop <sebastian.pop@amd.com>
26505 Richard Guenther <rguenther@suse.de>
26506
26507 PR tree-optimization/40979
26508 PR bootstrap/47044
26509 * passes.c (init_optimization_passes): After LIM call copy_prop
26510 and DCE to clean up.
26511 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
26512
14dd9aab
SP
265132011-02-02 Sebastian Pop <sebastian.pop@amd.com>
26514
26515 PR tree-optimization/47576
26516 PR tree-optimization/47555
26517 * doc/invoke.texi (scev-max-expr-complexity): Documented.
26518 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
26519 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
26520 * tree-scalar-evolution.c (follow_ssa_edge): Use
26521 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
26522
5cbf5c20
RG
265232011-02-02 Richard Guenther <rguenther@suse.de>
26524
26525 PR tree-optimization/47566
26526 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
26527
83d70792
AO
265282011-02-02 Alexandre Oliva <aoliva@redhat.com>
26529
e829c321
AO
26530 PR debug/47106
26531 PR debug/47402
26532 * tree-inline.c (declare_return_variable): Remove unused caller
26533 variable.
26534
83d70792
AO
26535 PR debug/47106
26536 PR debug/47402
26537 * tree-flow-inline.h (clear_is_used, is_used_p): New.
26538 * cfgexpand.c (account_used_vars_for_block): Use them.
26539 * tree-nrv.c (tree_nrv): Likewise.
26540 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
26541 (dump_scope_block): Likewise.
26542 (remove_unused_locals): Likewise.
26543
aaa2ac93
AO
26544 PR debug/47106
26545 PR debug/47402
26546 * tree-inline.c (declare_return_variable): Add result decl to
26547 local decls only once.
26548 * gimple-low.c (record_vars_into): Mark newly-created variables
26549 as referenced.
26550
a59d15cf
AO
265512011-02-02 Alexandre Oliva <aoliva@redhat.com>
26552
26553 PR debug/47498
26554 PR debug/47501
26555 PR debug/45136
26556 PR debug/45130
26557 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
26558 debug insns.
26559 (no_real_insns_p, schedule_block, set_priorities): Drop special
26560 treatment of boundary debug insns.
38be4072 26561 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
26562 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
26563 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
26564 (BOUNDARY_DEBUG_INSN_P): Likewise.
26565 (SCHEDULE_DEBUG_INSN_P): Likewise.
26566 * sched-rgn.c (init_ready_list): Drop special treatment of
26567 boundary debug insns.
26568 * final.c (rest_of_clean_state): Clear notes' BB.
26569
6fc2f091
JM
265702011-02-01 Joseph Myers <joseph@codesourcery.com>
26571
26572 * config/openbsd.opt (assert=): New Driver option.
26573
fc523387
JM
265742011-02-01 Joseph Myers <joseph@codesourcery.com>
26575
26576 * config/i386/nto.opt: New.
26577 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
26578
6d9821e5
JM
265792011-02-01 Joseph Myers <joseph@codesourcery.com>
26580
26581 * config/i386/netware.opt: New.
26582 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
26583
cef932d4
JM
265842011-02-01 Joseph Myers <joseph@codesourcery.com>
26585
26586 * config/interix.opt (posix): New Driver option.
26587
22843acd
DD
265882011-02-01 DJ Delorie <dj@redhat.com>
26589
56490b74
DD
26590 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
26591
22843acd
DD
26592 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
26593 class for A0/A1.
26594
199c8f2f
SP
265952011-02-01 Sebastian Pop <sebastian.pop@amd.com>
26596
26597 PR tree-optimization/47561
26598 * toplev.c (process_options): Print the Graphite flags. Add
26599 flag_loop_flatten to the list of options requiring Graphite.
26600
926bcf22
JM
266012011-02-01 Joseph Myers <joseph@codesourcery.com>
26602
26603 * config/i386/cygming.opt (posix): New Driver option.
26604
59793c51
JM
266052011-02-01 Joseph Myers <joseph@codesourcery.com>
26606
26607 * config/arm/vxworks.opt: New.
26608 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
26609
183c38a4
JM
266102011-02-01 Joseph Myers <joseph@codesourcery.com>
26611
26612 * config/alpha/elf.opt: New.
26613 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
26614 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
26615
9939e416
RG
266162011-02-01 Richard Guenther <rguenther@suse.de>
26617
26618 PR tree-optimization/47559
26619 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
26620 store-motion on references that can throw.
26621
4a3c9687
BS
266222011-02-01 Bernd Schmidt <bernds@codesourcery.com>
26623
26624 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
26625 * tree-pass.h (TDF_CSELIB): New macro.
26626 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
26627 cselib_lookup): Check for it rather than for TDF_DETAILS.
26628
dd3b31fb
L
266292011-02-01 H.J. Lu <hongjiu.lu@intel.com>
26630
26631 PR driver/47547
26632 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
26633 is HOST_BIT_BUCKET.
26634
26635 * opts.c (finish_options): Don't add x_aux_base_name if it is
26636 HOST_BIT_BUCKET.
26637
34c1de79
RG
266382011-02-01 Richard Guenther <rguenther@suse.de>
26639
26640 PR tree-optimization/47555
26641 Revert
26642 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
26643
26644 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
26645
dd2804d2
SB
266462011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
26647
26648 PR gcc/46692
26649 * config/lm32/t-lm32: Add multilib for all CPU options.
26650
3fd3b156
RG
266512011-02-01 Richard Guenther <rguenther@suse.de>
26652
26653 PR tree-optimization/47541
26654 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
26655 sure to have a field at offset zero.
26656
f16072b6
JM
266572011-01-31 Joseph Myers <joseph@codesourcery.com>
26658
26659 * config/arc/arc.opt (EB, EL): New Driver options.
26660
6456cf2e
JM
266612011-01-31 Joseph Myers <joseph@codesourcery.com>
26662
26663 * config/alpha/osf5.opt: New.
26664 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
26665
cdde6ab4
JM
266662011-01-31 Joseph Myers <joseph@codesourcery.com>
26667
26668 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
26669
7633415c
SP
266702011-01-31 Sebastian Pop <sebastian.pop@amd.com>
26671
26672 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
26673 -floop-interchange.
26674 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
26675 is an alias of -floop-interchange and that it requires the
26676 Graphite infrastructure.
26677 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
26678 flag_loop_interchange based on the value of flag_tree_loop_linear.
26679
0425d6f5
JJ
266802011-01-31 Jakub Jelinek <jakub@redhat.com>
26681 Richard Guenther <rguenther@suse.de>
26682
26683 PR tree-optimization/47538
26684 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
26685 type instead of r1type, except for comparisons. For right
26686 shifts and comparisons punt if there are mismatches in
26687 sizetype vs. non-sizetype types.
26688
500b16c3
RO
266892011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26690
26691 * doc/sourcebuild.texi (Effective-Target Keywords): Document
26692 avx_runtime.
26693
e279edb0
RO
266942011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26695
26696 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
26697 version number.
26698 * configure: Regenerate.
26699
c6092243
RO
267002011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26701
26702 * configure.ac (gcc_cv_ld_static_option): Define.
26703 (gcc_cv_ld_dynamic_option): Define.
26704 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
26705 instead.
26706 (HAVE_LD_STATIC_DYNAMIC): Update message.
26707 (LD_STATIC_OPTION): Define.
26708 (LD_DYNAMIC_OPTION): Define.
26709 * configure: Regenerate.
26710 * config.in: Regenerate.
26711 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
26712 HAVE_LD_STATIC_DYNAMIC]: Use them.
26713
d7862be3
NC
267142011-01-31 Nick Clifton <nickc@redhat.com>
26715
26716 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
26717 registers inside interrupt handlers if the handler is not a leaf
26718 function.
26719
ba4ec0e0
NC
267202011-01-31 Nick Clifton <nickc@redhat.com>
26721
26722 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
26723 reg_renumber returning an INVALID_REGNUM.
26724
29a63921
AO
267252011-01-31 Alexandre Oliva <aoliva@redhat.com>
26726
26727 PR libgcj/44341
26728 * doc/install.texi: Document host options discarded when cross
26729 configuring target libraries.
26730
ef591d3f
AO
267312011-01-31 Alexandre Oliva <aoliva@redhat.com>
26732
26733 Reverted:
26734 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
26735 PR debug/45136
26736 PR debug/45130
26737 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
26738 debug insns.
26739 (no_real_insns_p, schedule_block, set_priorities): Drop special
26740 treatment of boundary debug insns.
38be4072 26741 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
26742 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
26743 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
26744 (BOUNDARY_DEBUG_INSN_P): Likewise.
26745 (SCHEDULE_DEBUG_INSN_P): Likewise.
26746 * sched-rgn.c (init_ready_list): Drop special treatment of
26747 boundary debug insns.
26748 * final.c (rest_of_clean-state): Clear notes' BB.
26749
61052244
AM
267502011-01-31 Alan Modra <amodra@gmail.com>
26751
26752 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
26753 toc relative expressions as we do in print_operand_address.
26754
c4c8962b
KH
267552011-01-30 Kazu Hirata <kazu@codesourcery.com>
26756
26757 * doc/extend.texi: Follow spelling conventions.
26758 * doc/invoke.texi: Fix a typo.
26759
e543b94c
JM
267602011-01-30 Joseph Myers <joseph@codesourcery.com>
26761
26762 * config/hpux11.opt: New.
26763 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
26764 ia64*-*-hpux*): Use hpux11.opt.
26765
509d65dd 267662011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
26767
26768 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
26769 to tmake_file.
26770
7be03a0e
GP
267712011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
26772
26773 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
26774 support sites.
26775
419d1d37
GP
267762011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
26777
b596ed64
GP
26778 * doc/install.texi (Binaries): Remove outdated reference for
26779 Motorola 68HC11/68HC12 downloads.
26780
267812011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 26782
419d1d37
GP
26783 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
26784 Drepper's paper.
26785
4406d0e9
JW
267862011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
26787
26788 PR bootstrap/47147
26789 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
26790 used by NetBSD.
26791
38be4072 267922011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
26793
26794 * value-prof.c (check_counter): Corrected error message.
26795
0cd98787
JZ
267962011-01-29 Jie Zhang <jie@codesourcery.com>
26797
26798 * config/arm/arm.c (arm_legitimize_reload_address): New.
26799 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
26800 arm_legitimize_reload_address.
38be4072 26801 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 26802
9b798ac5
ILT
268032011-01-28 Ian Lance Taylor <iant@google.com>
26804
26805 * godump.c (go_define): Ignore macros whose definitions include
26806 two adjacent operands.
26807
591e29d9
JJ
268082011-01-28 Jakub Jelinek <jakub@redhat.com>
26809
26810 PR target/42894
26811 * varasm.c (force_const_mem): Store copy of x in desc->constant
26812 instead of x itself.
26813 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
26814 itself into REG_EQUAL note.
26815
62dcc44a
JM
268162011-01-28 Joseph Myers <joseph@codesourcery.com>
26817
26818 * config/freebsd.opt (posix, rdynamic): New Driver options.
26819
c9f58b9a
RO
268202011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26821
26822 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
26823 -Bstatic/-Bdynamic.
26824 * configure: Regenerate.
26825
5f02b9db
JM
268262011-01-27 Joseph Myers <joseph@codesourcery.com>
26827
26828 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
26829 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
26830
5df97412
AS
268312011-01-27 Anatoly Sokolov <aesok@post.ru>
26832
26833 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
26834 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
26835 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
26836 (s390_preferred_reload_class): Make static. Change return and
26837 'rclass' argument type to reg_class_t.
26838
779d4b91
JH
268392011-01-27 Jan Hubicka <jh@suse.cz>
26840
26841 PR middle-end/46949
26842 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
26843 (process_function_and_variable_attributes): Check defined weakrefs.
26844
e80b21ed
MJ
268452011-01-27 Martin Jambor <mjambor@suse.cz>
26846
26847 PR tree-optimization/47228
26848 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
26849 build_ref_for_offset.
26850
6dcc4f31
UW
268512011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26852
26853 * config/spu/spu-elf.h (ASM_SPEC): Remove.
26854
509d65dd 268552011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
26856
26857 PR rtl-optimization/46856
26858 * postreload.c (reload_combine_recognize_const_pattern): Do not
26859 separate cc0 setter and user on cc0 targets.
26860
04af8788
NP
268612011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
26862
26863 PR c/43082
26864 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
26865 passed a VOID_TYPE expression, immediately emit an error and
26866 return error_mark_node.
26867
f7a60085
JL
268682011-01-26 Jeff Law <law@redhat.com>
26869
26870 PR rtl-optimization/47464
26871 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
26872 rather than may_trap_p as needed.
26873
5c2917ec
DD
268742011-01-26 DJ Delorie <dj@redhat.com>
26875
26876 PR rtl-optimization/46878
26877 * combine.c (insn_a_feeds_b): Check for the implicit cc0
26878 setter/user dependency as well.
26879
bef16e87
EB
268802011-01-26 Eric Botcazou <ebotcazou@adacore.com>
26881
26882 PR rtl-optimization/44469
26883 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
26884 after removing trivially dead basic blocks.
26885
c75d884b
JM
268862011-01-26 Joseph Myers <joseph@codesourcery.com>
26887
26888 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
26889 * config/frv/frv.h (LINK_SPEC): Likewise.
26890 * config/i386/netware.h (LINK_SPEC): Likewise.
26891 * config/m68k/linux.h (ASM_SPEC): Likewise.
26892 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
26893 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
26894 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
26895 * config/sparc/linux.h (ASM_SPEC): Likewise.
26896 * config/sparc/linux64.h (ASM_SPEC): Likewise.
26897 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
26898
d3153553
JM
268992011-01-26 Joseph Myers <joseph@codesourcery.com>
26900
26901 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
26902 * config/frv/frv.h (ASM_SPEC): Likewise.
26903 * config/m68k/linux.h (ASM_SPEC): Likewise.
26904 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
26905 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
26906 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
26907 * config/sparc/linux.h (ASM_SPEC): Likewise.
26908 * config/sparc/linux64.h (ASM_SPEC): Likewise.
26909 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
26910
b89b1e9d
JM
269112011-01-26 Joseph Myers <joseph@codesourcery.com>
26912
26913 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
26914 * config/frv/frv.h (LINK_SPEC): Likewise.
26915 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
26916
12eb1a9c
JM
269172011-01-26 Joseph Myers <joseph@codesourcery.com>
26918
26919 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
26920 * config/frv/frv.h (ASM_SPEC): Likewise.
26921 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
26922 * config/m68k/linux.h (ASM_SPEC): Likewise.
26923 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
26924 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
26925 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
26926 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
26927 * config/sparc/linux.h (ASM_SPEC): Likewise.
26928 * config/sparc/linux64.h (ASM_SPEC): Likewise.
26929 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
26930 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
26931
e435f098
SE
269322011-01-26 Steve Ellcey <sje@cup.hp.com>
26933
26934 PR target/46997
26935 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
26936 (*mux2): Ditto.
26937 (vec_extract_evenodd_help): Ditto.
26938 (vec_extract_evenv4hi): Ditto.
26939 (vec_extract_oddv4hi): Ditto.
26940 (vec_interleave_lowv2si): Ditto.
26941 (vec_interleave_highv2si): Ditto.
26942 (vec_extract_evenv2si): Ditto.
26943 (vec_extract_oddv2si: Ditto.
26944 (vec_pack_trunc_v2si): Ditto.
26945
34f0eee0
JH
269462011-01-22 Jan Hubicka <jh@suse.cz>
26947
26948 PR target/47237
26949 * cgraph.h (cgraph_local_info): New field can_change_signature.
26950 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
26951 signature can change.
26952 (ipcp_estimate_growth): Call sequence simplify only if calle signature
26953 can change.
26954 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
26955 (cgraph_function_versioning): We can not change signature of functions
26956 that don't allow that.
26957 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
26958 (lto_input_node): Likewise.
38be4072
UB
26959 * ipa-inline.c (compute_inline_parameters): Compute
26960 local.can_change_signature.
34f0eee0 26961 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
26962 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
26963 functions that can not change signature.
34f0eee0 26964 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
26965 init_cumulative_args): Do not use local calling conventions
26966 for functions that can not change signature.
34f0eee0 26967
980ca891
JH
269682011-01-22 Jan Hubicka <jh@suse.cz>
26969
26970 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
26971
768e3c60
RG
269722011-01-26 Richard Guenther <rguenther@suse.de>
26973
26974 PR tree-optimization/47190
61052244
AM
26975 * cgraphunit.c (process_common_attributes): New function.
26976 (process_function_and_variable_attributes): Use it.
768e3c60 26977
21d6a1c7
RG
269782011-01-26 Richard Guenther <rguenther@suse.de>
26979
26980 PR lto/47423
26981 * cgraphbuild.c (record_eh_tables): Record reference to personality
26982 function.
26983
48bb58b1
AO
269842011-01-26 Alexandre Oliva <aoliva@redhat.com>
26985
26986 PR debug/45454
26987 * sel-sched.c (moveup_expr): Don't let debug insns prevent
26988 non-debug insns from moving up.
26989
58c741a6
DK
269902011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
26991
26992 PR target/40125
26993 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
26994 t-dlldir{,-x} fragment for build and add it to tmake_file.
26995 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
26996 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
26997 * config/i386/t-dlldir: New file.
26998 (SHLIB_DLLDIR): Define.
26999 * config/i386/t-dlldir-x: New file.
27000 (SHLIB_DLLDIR): Define.
27001 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
27002 (SHLIB_INSTALL): Use it.
27003
bff99262
CLT
270042011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
27005
27006 PR target/47246
27007 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
27008 lower bound of the allowed Thumb-2 coprocessor load/store
27009 index range to -256. Add explaining comment.
27010
82c03907
ILT
270112011-01-25 Ian Lance Taylor <iant@google.com>
27012
27013 * godump.c (go_define): Improve lexing of macro expansion to only
27014 accept expressions which match Go spec.
27015
47ea1edf
DK
270162011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
27017
d4dba752 27018 PR c++/43601
47ea1edf
DK
27019 * tree.c (handle_dll_attribute): Handle it.
27020 * doc/extend.texi (@item dllexport): Mention it.
27021 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
27022
744f0946
ILT
270232011-01-25 Ian Lance Taylor <iant@google.com>
27024
27025 PR tree-optimization/26854
27026 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
27027 (decl_jump_unsafe): Move higher in file, with no other change.
27028 (bind): Set has_jump_unsafe_decl if appropriate.
27029 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
27030 (check_earlier_gotos): Likewise.
27031 (c_check_switch_jump_warnings): Likewise.
27032
5734f2b3
JW
270332011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
27034
27035 * doc/invoke.texi (Warning Options): Add missing hyphen.
27036 (-fprofile-dir): Minor grammatical fixes.
27037 (-fbranch-probabilities): Likewise.
27038
9bdbdcef
AO
270392011-01-25 Alexandre Oliva <aoliva@redhat.com>
27040
27041 PR debug/45136
27042 PR debug/45130
27043 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
27044 debug insns.
27045 (no_real_insns_p, schedule_block, set_priorities): Drop special
27046 treatment of boundary debug insns.
38be4072 27047 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
27048 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
27049 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
27050 (BOUNDARY_DEBUG_INSN_P): Likewise.
27051 (SCHEDULE_DEBUG_INSN_P): Likewise.
27052 * sched-rgn.c (init_ready_list): Drop special treatment of
27053 boundary debug insns.
27054 * final.c (rest_of_clean-state): Clear notes' BB.
27055
b305e3da
SP
270562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27057
27058 * Makefile.in (LAMBDA_H): Removed.
27059 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
27060 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
27061 lambda-trans.o, and tree-loop-linear.o.
27062 (lto-symtab.o): Remove dependence on LAMBDA_H.
27063 (tree-loop-linear.o): Remove rule.
27064 (lambda-mat.o): Same.
27065 (lambda-trans.o): Same.
27066 (lambda-code.o): Same.
27067 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
27068 (tree-vect-slp.o): Same.
27069 * hwint.h (gcd): Moved here.
27070 (least_common_multiple): Same.
27071 * lambda-code.c: Removed.
27072 * lambda-mat.c: Removed.
27073 * lambda-trans.c: Removed.
27074 * lambda.h: Removed.
27075 * tree-loop-linear.c: Removed.
27076 * lto-symtab.c: Do not include lambda.h.
27077 * omega.c (gcd): Removed.
27078 * passes.c (init_optimization_passes): Remove pass_linear_transform.
27079 * tree-data-ref.c (print_lambda_vector): Moved here.
27080 (lambda_vector_copy): Same.
27081 (lambda_matrix_copy): Same.
27082 (lambda_matrix_id): Same.
27083 (lambda_vector_first_nz): Same.
27084 (lambda_matrix_row_add): Same.
27085 (lambda_matrix_row_exchange): Same.
27086 (lambda_vector_mult_const): Same.
27087 (lambda_vector_negate): Same.
27088 (lambda_matrix_row_negate): Same.
27089 (lambda_vector_equal): Same.
27090 (lambda_matrix_right_hermite): Same.
27091 * tree-data-ref.h: Do not include lambda.h.
27092 (lambda_vector): Moved here.
27093 (lambda_matrix): Same.
27094 (dependence_level): Same.
27095 (lambda_transform_legal_p): Removed declaration.
27096 (lambda_collect_parameters): Same.
27097 (lambda_compute_access_matrices): Same.
27098 (lambda_vector_gcd): Same.
27099 (lambda_vector_new): Same.
27100 (lambda_vector_clear): Same.
27101 (lambda_vector_lexico_pos): Same.
27102 (lambda_vector_zerop): Same.
27103 (lambda_matrix_new): Same.
27104 * tree-flow.h (least_common_multiple): Removed declaration.
27105 * tree-parloops.c (lambda_trans_matrix): Moved here.
27106 (LTM_MATRIX): Same.
27107 (LTM_ROWSIZE): Same.
27108 (LTM_COLSIZE): Same.
27109 (LTM_DENOMINATOR): Same.
27110 (lambda_trans_matrix_new): Same.
27111 (lambda_matrix_vector_mult): Same.
27112 (lambda_transform_legal_p): Same.
27113 * tree-pass.h (pass_linear_transform): Removed declaration.
27114 * tree-ssa-loop.c (tree_linear_transform): Removed.
27115 (gate_tree_linear_transform): Removed.
27116 (pass_linear_transform): Removed.
27117 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
27118 flag_loop_interchange.
27119
6bdfdb96
JJ
271202011-01-25 Jakub Jelinek <jakub@redhat.com>
27121
27122 PR tree-optimization/47265
27123 PR tree-optimization/47443
27124 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
27125 if name still has some uses.
27126
e4cba915
MJ
271272011-01-25 Martin Jambor <mjambor@suse.cz>
27128
27129 PR tree-optimization/47382
27130 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
27131 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
27132
509d65dd 271332011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
27134
27135 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
27136 sjlj_except_unwind_info.
27137
194313e2
RG
271382011-01-25 Richard Guenther <rguenther@suse.de>
27139
27140 PR tree-optimization/47426
27141 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
27142 visible functions results escape.
27143
147a0bcf
JJ
271442011-01-25 Jakub Jelinek <jakub@redhat.com>
27145
27146 PR target/45701
27147 * config/arm/arm.c (any_sibcall_uses_r3): New function.
27148 (arm_get_frame_offsets): Use it.
27149
db963b52
SP
271502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27151 Jakub Jelinek <jakub@redhat.com>
27152
27153 PR tree-optimization/47271
27154 * tree-if-conv.c (bb_postdominates_preds): New.
27155 (if_convertible_bb_p): Call bb_postdominates_preds.
27156 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
27157 (predicate_scalar_phi): Call bb_postdominates_preds.
27158
bcddd3b9
NC
271592011-01-25 Nick Clifton <nickc@redhat.com>
27160
27161 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
27162 * config/rx/rx.c (rx_function_value): Likewise.
27163 (rx_promote_function_mode): Likewise.
27164 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
27165 in order to make it legitimate.
38be4072
UB
27166 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
27167 make sure that the first operand is the same as the result register.
bcddd3b9
NC
27168 (addsi3_unspec): Delete.
27169 (subdi3): Do not accept immediate operands.
27170 (subdi3_internal): Likewise.
27171
7e6cb022
JL
271722011-01-25 Jeff Law <law@redhat.com>
27173
27174 PR rtl-optimization/37273
27175 * ira-costs.c (scan_one_insn): Detect constants living in memory and
27176 handle them like argument loads from stack slots. Do not double
27177 count memory for memory constants and argument loads from stack slots.
27178
9ffa621e
JJ
271792011-01-25 Jakub Jelinek <jakub@redhat.com>
27180
27181 PR tree-optimization/47427
27182 PR tree-optimization/47428
27183 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
27184 coalesce if the new root var would be TREE_READONLY.
27185
5bd6e652
RG
271862011-01-25 Richard Guenther <rguenther@suse.de>
27187
27188 PR middle-end/47414
27189 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
27190 correct type for TBAA.
27191
7c48ea69
SP
271922011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27193
27194 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
27195 (close_phi_written_to_memory): Call for_each_index with
27196 dr_indices_valid_in_loop.
27197
38013f25
SP
271982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27199
27200 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
27201 when it is initialized.
27202
5c640e29
SP
272032011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27204
27205 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
27206 call to graphite_find_data_references_in_stmt.
27207 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
27208 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
27209 call to graphite_find_data_references_in_stmt.
27210 (analyze_drs_in_stmts): Same.
27211 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
27212 in which the scalar analysis of indices is performed.
27213 (create_data_ref): Same. Update call to dr_analyze_indices.
27214 (find_data_references_in_stmt): Update call to create_data_ref.
27215 (graphite_find_data_references_in_stmt): Same.
27216 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
27217 declaration.
27218 (create_data_ref): Same.
27219 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
27220 call to create_data_ref.
27221
ac53c069
SP
272222011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27223
27224 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 27225 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 27226
3d17df15
SP
272272011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27228
27229 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
27230 VAR_DECL, PARM_DECL, and RESULT_DECL.
27231
c513da01
SP
272322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27233
27234 * graphite-dependences.c (reduction_dr_1): Allow several reductions
27235 in a reduction PBB.
27236 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
27237 that have already been marked as PBB_IS_REDUCTION.
27238
3a292d59
SP
272392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27240
27241 * graphite-scop-detection.c (same_close_phi_node): New.
27242 (remove_duplicate_close_phi): New.
27243 (make_close_phi_nodes_unique): New.
27244 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
27245
ba858447
SP
272462011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27247
27248 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
27249 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
27250 of both data references to be the same.
27251
8d865c56
SP
272522011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27253
38be4072
UB
27254 * graphite-dependences.c (build_lexicographical_constraint): Remove
27255 the gdim parameter.
27256 (build_lexicographical_constraint): Adjust call to
27257 ppl_powerset_is_empty.
8d865c56
SP
27258 (dependence_polyhedron): Same.
27259 (graphite_legal_transform_dr): Same.
27260 (graphite_carried_dependence_level_k): Same.
38be4072
UB
27261 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
27262 parameter.
8d865c56
SP
27263 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
27264
50034a36
SP
272652011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27266
27267 * graphite-sese-to-poly.c
27268 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
27269 (close_phi_written_to_memory): New.
27270 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
27271 and unshare_expr.
27272
0deada9e
SP
272732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27274
27275 * doc/install.texi: Update the expected version number of PPL to 0.11.
27276 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
27277 #if PPL_VERSION_MINOR < 11.
27278
d7d3d6af
SP
272792011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27280
27281 * graphite-dependences.c: Include graphite-cloog-util.h.
27282 (new_poly_ddr): Inlined into dependence_polyhedron.
27283 (free_poly_ddr): Moved close by new_poly_ddr.
27284 (dependence_polyhedron_1): Renamed dependence_polyhedron.
27285 Early return NULL when ppl_powerset_is_empty returns true.
27286 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
27287 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
27288 (graphite_legal_transform_dr): Call new_poly_ddr.
27289 (graphite_carried_dependence_level_k): Same.
27290 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
27291 (dot_transformed_deps_stmt_1): Removed.
27292 (dot_deps_stmt_1): Call dot_deps_stmt_2.
27293 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
27294 (dot_deps_1): Call dot_deps_2.
27295 * Makefile.in (graphite-dependences.o): Add missing dependence on
27296 graphite-cloog-util.h.
27297
28c5db57
SP
272982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27299
27300 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
27301 (build_lexicographical_constraint): Same.
27302 (dependence_polyhedron_1): Same.
27303 (graphite_legal_transform_dr): Same.
27304 (graphite_carried_dependence_level_k): Same.
27305 * graphite-ppl.c (ppl_powerset_is_empty): New.
27306 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
27307 * tree-data-ref.c (dump_data_reference): Print the basic block index.
27308
5168d98f
SP
273092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27310
27311 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
27312 the "a followed by b" relation and document it.
27313
4a40293a
SP
273142011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27315
27316 * graphite-dependences.c (build_lexicographical_constraint): Stop the
27317 iteration when the bag of constraints is empty.
27318
271fb6fa
SP
273192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27320
27321 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
27322
92d23680
SP
273232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27324
27325 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
27326 nest and two loop depths as parameters.
27327 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
27328 lst_perfect_nestify.
27329
2f51deff
SP
273302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27331
27332 * graphite-dependences.c (print_pddr): Call
27333 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
27334
07f3593c
SP
273352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
27336
27337 * graphite-ppl.c (debug_gmp_value): New.
27338 * graphite-ppl.h (debug_gmp_value): Declared.
27339
3fae6099
TG
273402011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
27341
27342 * doc/install.texi: Document availability of cloog-0.16.
27343
1c3ba85b
SP
273442011-01-25 Vladimir Kargov <kargov@gmail.com>
27345
27346 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
27347 invalid postdominance info.
27348
e8ba94fc
JH
273492011-01-24 Jan Hubicka <jh@suse.cz>
27350
27351 PR c/21659
27352 * doc/extend.texi (weak pragma): Drop claim that it must
27353 appear before definition.
27354 * varasm.c (merge_weak, declare_weak): Only sanity check
27355 that DECL is not output at a time it is declared weak.
27356
2b6e2d13
KZ
273572011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
27358
27359 * machmode.def: Fixed comments.
1c3ba85b 27360
9841210f
KT
273612011-01-24 Kai Tietz <kai.tietz@onevision.com>
27362
27363 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
27364
273652011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
27366
27367 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 27368 WORDS_BIG_ENDIAN.
e046112d 27369
a6c5070a
L
273702011-01-24 H.J. Lu <hongjiu.lu@intel.com>
27371
27372 PR target/46519
27373 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
27374 (block_info): Add scanned and prev.
27375 (move_or_delete_vzeroupper_2): Return if the basic block
27376 has been scanned and the upper 128bit state is unchanged
27377 from the last scan.
27378 (move_or_delete_vzeroupper_1): Return true if the exit
27379 state is changed.
27380 (move_or_delete_vzeroupper): Visit basic blocks using the
27381 work-list based algorithm based on vt_find_locations in
27382 var-tracking.c.
27383
27384 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
27385
a40d79d7
NC
273862011-01-24 Nick Clifton <nickc@redhat.com>
27387
27388 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
27389 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
27390 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
27391 then define __v850e1__.
27392 * doc/invoke.texi: Document -mv850es.
27393
440eb8de
RH
273942011-01-24 Richard Henderson <rth@redhat.com>
27395
27396 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
27397 compound unordered comparisons.
27398 * config/rx/rx.c (rx_split_fp_compare): Remove.
27399 * config/rx/rx-protos.h: Update.
27400 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
27401 (cbranchsf4): Don't call rx_split_fp_compare.
27402 (*cbranchsf4): Use rx_split_cbranch.
27403 (*cmpsf): Don't accept "i" constraint.
27404 (*conditional_branch): Only valid after reload.
27405 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
27406
3ff79f99
MM
274072011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
27408
27409 PR target/47385
27410 * config/rs6000/altivec.md (vector constant splitters): Add
27411 support for creating vector single precision constants if -mvsx is
27412 used and we would create the constant using Altivec primitives.
27413
ff3d9d08
BS
274142011-01-23 Bernd Schmidt <bernds@codesourcery.com>
27415 Richard Sandiford <rdsandiford@googlemail.com>
27416
27417 PR rtl-optimization/47166
27418 * reload1.c (emit_reload_insns): Disable the spill_reg_store
27419 mechanism for PRE_MODIFY and POST_MODIFY.
27420 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
27421 reloadreg.
27422
7fcaf152
AS
274232011-01-23 Andreas Schwab <schwab@linux-m68k.org>
27424
8788adb6 27425 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 27426
d09b58c4
JH
274272011-01-22 Jan Hubicka <jh@suse.cz>
27428
27429 PR lto/47333
27430 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
27431
e8ff8c5a
JH
274322011-01-22 Jan Hubicka <jh@suse.cz>
27433
27434 PR tree-optimization/43884
27435 PR lto/44334
8788adb6 27436 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
27437 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
27438
ccaed3ba
AS
274392011-01-22 Anatoly Sokolov <aesok@post.ru>
27440
27441 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
27442 * config/s390/s390.c (s390_register_move_cost,
27443 s390_memory_move_cost): New.
27444 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
27445
0cecee06
UW
274462011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27447
27448 PR middle-end/47401
27449 * except.c (sjlj_assign_call_site_values): Move setting the
27450 crtl->uses_eh_lsda flag to ...
27451 (sjlj_mark_call_sites): ... here.
27452 (sjlj_emit_function_enter): Support NULL dispatch label.
27453 (sjlj_build_landing_pads): In a function with no landing pads
27454 that still has must-not-throw regions, generate code to register
27455 a personality function with empty LSDA.
27456
e692f276
RH
274572011-01-21 Richard Henderson <rth@redhat.com>
27458
1b7ae0b7
RH
27459 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
27460
3843787f
RH
27461 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
27462
e692f276
RH
27463 * compare-elim.c: New file.
27464 * Makefile.in (OBJS-common): Add it.
27465 (compare-elim.o): New.
27466 * common.opt (fcompare-elim): New.
27467 * opts.c (default_options_table): Add OPT_fcompare_elim.
27468 * tree-pass.h (pass_compare_elim_after_reload): New.
27469 * passes.c (init_optimization_passes): Add it.
27470 * recog.h: Protect against re-inclusion.
27471 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
27472 * doc/invoke.texi (-fcompare-elim): Document it.
27473 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
27474 * doc/tm.texi: Rebuild.
27475
9a7c2050
NC
274762011-01-22 Nick Clifton <nickc@redhat.com>
27477
27478 * config/rx/rx.md (cstoresf4): Pass comparison operator to
27479 rx_split_fp_compare.
27480
15ba5696
NC
274812011-01-22 Nick Clifton <nickc@redhat.com>
27482
27483 * config/rx/rx.md (UNSPEC_CONST): New.
27484 (deallocate_and_return): Wrap the amount popped off the stack in
27485 an UNSPEC_CONST in order to stop it being rejected by
27486 -mmax-constant-size.
27487 (pop_and_return): Add a "(return)" rtx.
27488 (call): Drop the immediate operand.
27489 (call_internal): Likewise.
27490 (call_value): Likewise.
27491 (call_value_internal): Likewise.
27492 (sibcall_internal): Likewise.
27493 (sibcall_value_internal): Likewise.
27494 (sibcall): Likewise. Generate an explicit call using
27495 sibcall_internal.
27496 (sibcall_value): Likewise.
27497 (mov<>): FAIL if a constant operand is not legitimate.
27498 (addsi3_unpsec): New pattern.
9a7c2050 27499
38be4072 27500 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
27501 (ok_for_max_constant): New function.
27502 (gen_safe_add): New function.
27503 (rx_expand_prologue): Use gen_safe_add.
27504 (rx_expand_epilogue): Likewise.
27505 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
27506 UNSPEC CONSTs.
27507
caaf13d3
JL
275082011-01-21 Jeff Law <law@redhat.com>
27509
27510 PR tree-optimization/47053
27511 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
27512 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
27513 statements are deleted.
27514 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
27515 is nonempty, then purge dead edges and cleanup the CFG.
27516
12c30f2f
AO
275172011-01-21 Alexandre Oliva <aoliva@redhat.com>
27518
27519 PR debug/47402
27520 Temporarily revert:
27521 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
27522 PR debug/47106
27523 * tree-dfa.c (create_var_ann): Mark variable as used.
27524
7360d2ac
JJ
275252011-01-21 Jakub Jelinek <jakub@redhat.com>
27526
aaa52a96
JJ
27527 PR middle-end/45566
27528 * except.c (convert_to_eh_region_ranges): Emit queued no-region
27529 notes from other section in hot/cold partitioning even if
27530 last_action is -3. Increment call_site_base.
27531
7360d2ac
JJ
27532 PR rtl-optimization/47366
27533 * fwprop.c (forward_propagate_into): Return bool. If
27534 any changes are made, -fnon-call-exceptions is used and
27535 REG_EH_REGION note is present, call purge_dead_edges
27536 and return true if it purged anything.
27537 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
27538 any EH edges were purged.
27539
e90b336f
JL
275402011-01-21 Jeff Law <law@redhat.com>
27541
27542 PR rtl-optimization/41619
27543 * caller-save.c (setup_save_areas): Break out code to determine
27544 which hard regs are live across calls by examining the reload chains
27545 so that it is always used.
27546 Eliminate code which checked REG_N_CALLS_CROSSED.
27547
3ffe07e1
JJ
275482011-01-21 Jakub Jelinek <jakub@redhat.com>
27549
27550 PR tree-optimization/47355
27551 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
27552 NOP has non-debug uses beyond PHIs in new_bb.
27553
1c7d0b34
AO
275542011-01-21 Alexandre Oliva <aoliva@redhat.com>
27555
27556 PR debug/47106
27557 * cfgexpand.c (account_used_vars_for_block): Only account vars
27558 that are annotated as used.
27559 (estimated_stack_frame_size): Don't set TREE_USED.
27560 * tree-dfa.c (create_var_ann): Mark variable as used.
27561
f99cc488
RG
275622011-01-21 Richard Guenther <rguenther@suse.de>
27563
27564 PR middle-end/47395
27565 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
27566
3bc27de7
RG
275672011-01-21 Richard Guenther <rguenther@suse.de>
27568
27569 PR tree-optimization/47365
27570 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
27571 (vn_reference_lookup_pieces): Adjust.
27572 (vn_reference_lookup): Likewise.
27573 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
27574 (vn_reference_lookup_3): Only look through kills if in
27575 VN_WALKREWRITE mode.
27576 (vn_reference_lookup_pieces): Adjust.
27577 (vn_reference_lookup): Likewise.
27578 (visit_reference_op_load): Likewise.
27579 (visit_reference_op_store): Likewise.
27580 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
27581 (compute_avail): Likewise.
27582 (eliminate): Likewise.
27583
d8debb1d
JJ
275842011-01-21 Jakub Jelinek <jakub@redhat.com>
27585
27586 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
27587 DECL_IGNORED_P non-reg vars if they are used.
27588
3a2df831
JJ
27589 PR tree-optimization/47391
27590 * varpool.c (const_value_known_p): Return false if
27591 decl is volatile.
27592
1dd584a2
KT
275932011-01-21 Kai Tietz <kai.tietz@onevision.com>
27594
27595 PR bootstrap/47215
27596 * config/i386/i386.c (ix86_local_alignment): Handle
27597 case for va_list_type_node is nil.
27598 (ix86_canonical_va_list_type): Likewise.
27599
7f9f095e
AM
276002011-01-21 Alan Modra <amodra@gmail.com>
27601
27602 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
27603 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
27604
837b01f6
RR
276052011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27606
27607 * config/arm/arm.md (define_attr type): Rename f_load
27608 and f_store to f_fpa_load and f_fpa_store. Update.
27609 (write_conflict): Deal with rename fallout.
27610 (*push_fp_multi): Likewise.
27611 * config/arm/fpa.md (f_load): Use f_fpa_load.
27612 (f_store): Use f_fpa_store.
27613 (*movsf_fpa): Likewise.
27614 (*movdf_fpa): Likewise.
27615 (*movxf_fpa): Likewise.
27616 (*thumb2_movsf_fpa): Likewise.
27617 (*thumb2_movdf_fpa): Likewise.
27618 (*thumb2_movxf_fpa): Likewise.
27619 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
27620 f_loadd and f_stored.
27621 (*thumb2_movdi_vfp): Likewise.
27622 (*thumb2_movsf_vfp): Fix attribute to f_loads.
27623 (*thumb2_movsi_vfp): Likewise.
27624 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
27625 Use f_loads instead of f_load.
27626 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
27627
a1a79768
AS
276282011-01-20 Anatoly Sokolov <aesok@post.ru>
27629
27630 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
27631 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
27632 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
27633 (xtensa_mode_dependent_address_p): New function.
27634 (constantpool_address_p): Make static. Change return type to bool.
27635 Change argument type to const_rtx. Use CONST_INT_P predicate.
27636
427f6cec
AO
276372011-01-20 Alexandre Oliva <aoliva@redhat.com>
27638
27639 PR debug/46583
27640 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
27641
583ac69c
JJ
276422011-01-20 Jakub Jelinek <jakub@redhat.com>
27643
27644 PR debug/47283
27645 * cfgexpand.c (expand_debug_expr): Instead of generating
27646 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
27647 etc. handling.
27648
93e452ed
RG
276492011-01-20 Richard Guenther <rguenther@suse.de>
27650
27651 PR middle-end/47370
27652 * tree-inline.c (remap_gimple_op_r): Recurse manually for
27653 the pointer operand of MEM_REFs.
27654
28fc44f3
JJ
276552011-01-20 Jakub Jelinek <jakub@redhat.com>
27656
27657 PR tree-optimization/46130
27658 * ipa-split.c (consider_split): If return_bb contains non-virtual
27659 PHIs other than for retval or if split_function would not adjust it,
27660 refuse to split.
27661
ddd268f2
RG
276622011-01-20 Richard Guenther <rguenther@suse.de>
27663
27664 PR tree-optimization/47167
27665 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
27666 Revert previous change, only avoid enumeral type changes.
27667
882020aa
MS
276682011-01-19 Mike Stump <mikestump@comcast.net>
27669
27670 * doc/tm.texi.in (BRANCH_COST): Englishify.
27671 * doc/tm.texi (BRANCH_COST): Likewise.
27672
7edb6247
DS
276732011-01-19 Dodji Seketeli <dodji@redhat.com>
27674
27675 PR c++/47291
27676 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
27677 (gen_scheduled_generic_parms_dies): New functions.
27678 (gen_struct_or_union_type_die): Schedule template parameters DIEs
27679 generation for the end of CU compilation.
27680 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 27681
23d5ed5d
AO
276822011-01-19 Alexandre Oliva <aoliva@redhat.com>
27683
27684 PR debug/46240
27685 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
27686 debug bind stmt on merge edges.
27687
37d6a488
AO
276882011-01-19 Alexandre Oliva <aoliva@redhat.com>
27689
27690 PR debug/47079
27691 PR debug/46724
27692 * function.c (instantiate_expr): Instantiate incoming rtl of
27693 implicit arguments, and recurse on VALUE_EXPRs.
27694 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
27695 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
27696
689f2c82
AO
276972011-01-19 Alexandre Oliva <aoliva@redhat.com>
27698
27699 * c-parser.c (c_parser_for_statement): Initialize
27700 collection_expression.
27701
03029de4
JM
277022011-01-19 Joseph Myers <joseph@codesourcery.com>
27703
27704 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
27705
3e03217e
JM
277062011-01-19 Joseph Myers <joseph@codesourcery.com>
27707
27708 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
27709 (LINK_SHLIB_SPEC): Don't use %(link_path).
27710 (SUBTARGET_EXTRA_SPECS): Remove link_path.
27711
5bbe9b3f
JM
277122011-01-19 Joseph Myers <joseph@codesourcery.com>
27713
27714 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
27715 (NO_SHARED_LIB_SUPPORT): Remove.
27716 (LINK_SHLIB_SPEC): Remove one conditional definition.
27717
368e0b39
JM
277182011-01-19 Joseph Myers <joseph@codesourcery.com>
27719
27720 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
27721 %{call_shared}.
27722 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
27723 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
27724 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
27725 %{call_shared} and conditionals on these options not being passed.
27726 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
27727 %{call_shared}.
27728
ed7656f6
JJ
277292011-01-19 Jakub Jelinek <jakub@redhat.com>
27730
68457901
JJ
27731 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
27732 simplify.
27733
ed7656f6
JJ
27734 * ipa-split.c: Spelling fixes.
27735
e0d1958f
RH
277362011-01-19 Richard Henderson <rth@redhat.com>
27737
27738 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
27739 (*mulsi3): Likewise.
27740
27098b6b
RH
27741 * longlong.h [__mn10300__] (count_leading_zeros): New.
27742 [__mn10300__] (umul_ppmm, smul_ppmm): New.
27743 [__mn10300__] (add_ssaaaa, subddmmss): New.
27744 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
27745 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
27746
d6be7c36
UW
277472011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27748
27749 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
27750
b1efde2a
RH
277512011-01-19 Richard Henderson <rth@redhat.com>
27752
44217823
RH
27753 * config/mn10300/mn10300.md (addsi3_flags): New.
27754 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
27755 (subsi3_flags, subc_internal, subdi3): New.
27756 (subdi3_internal, *subdi3_degenerate): New.
27757 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
27758
37a185d7
RH
27759 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
27760 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
27761 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
27762 * config/mn10300/mn10300-protos.h: Update.
27763 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
27764 (return_ret): Likewise. Rename from return_internal_regs.
27765 (return_internal): Remove.
27766
040c5757
RH
27767 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
27768 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
27769 (mn10300_legitimate_constant_p): Likewise.
27770 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
27771 (mn10300_frame_size): New.
27772 (mn10300_expand_prologue): Use it.
27773 (mn10300_expand_epilogue): Likewise.
27774 (mn10300_initial_offset): Likewise.
27775 * config/mn10300/mn10300-protos.h: Update.
27776 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
27777 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
27778 (prologue, epilogue, return_internal): Tidy output code.
27779 (mn10300_store_multiple_operation, return): Likewise.
27780 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
27781 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
27782 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
27783 (load_pic, am33_load_pic): New.
27784 (mn10300_load_pic0, mn10300_load_pic1): New.
27785
bad41521
RH
27786 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
27787 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
27788 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
27789 (cc_flags_for_mode, cc_flags_for_code): New.
27790 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
27791 overflow flag is not valid. Validate that the flags we need
27792 for the comparison are valid.
27793 (mn10300_output_cmp): Remove.
27794 (mn10300_output_add): New.
27795 (mn10300_select_cc_mode): Use cc_flags_for_code.
27796 (mn10300_split_cbranch): New.
27797 (mn10300_match_ccmode): New.
27798 (mn10300_split_and_operand_count): New.
27799 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
27800 to the function.
27801 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
27802 (addsi3): ... here. Use mn10300_output_add.
27803 (*addsi3_flags): New.
27804 (*am33_subsi3, *mn10300_subsi3): Merge...
27805 (subsi3): ... here. Use attribute isa.
27806 (*subsi3_flags): New.
27807 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
27808 when possible.
27809 (*am33_andsi3, *mn10300_andsi3): Merge...
27810 (andsi3): ... here.
27811 (*andsi3_flags): New.
27812 (andsi3 splitters): New.
27813 (*am33_iorsi3, *mn10300_iorsi3): Merge...
27814 (iorsi3): ... here.
27815 (*iorsi3_flags): New.
27816 (*am33_xorsi3, *mn10300_xorsi3): Merge...
27817 (xorsi3): ... here.
27818 (*xorsi3_flags): New.
27819 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
27820 (one_cmplsi2): ... here.
27821 (*one_cmplsi2_flags): New.
27822 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
27823 instead of "dax" in constraints. Use mn10300_split_cbranch.
27824 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
27825 use matching constraints to eliminate a self-comparison.
27826 (*integer_conditional_branch): Rename from integer_conditional_branch.
27827 Use int_mode_flags to match CC_REG.
27828 (*cbranchsi4_btst, *btstsi): New.
27829 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
27830 mn10300_split_cbranch.
27831 (*am33_cmpsf): Rename from am33_cmpsf.
27832 (*float_conditional_branch): Rename from float_conditional_branch.
27833 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
27834 (zero_extendqisi2): ... here.
27835 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
27836 (zero_extendhisi2): ... here.
27837 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
27838 (extendqisi2): ... here.
27839 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
27840 (extendhisi2): ... here.
27841 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
27842 (ashlsi3): ... here.
27843 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
27844 (lshrsi3): ... here.
27845 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
27846 (ashrsi3): ... here.
27847 (consecutive add peephole): Remove.
27848 * config/mn10300/predicates.md (label_ref_operand): New.
27849 (int_mode_flags): New.
27850 (CCZN_comparison_operator): New.
27851
9efb4993
RH
27852 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
27853 (throughput_42_latency_43): New reservation.
27854 (mulsidi3, umulsidi3): New expanders.
27855 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
27856 the MDR register to allocation; separately allocate the low and
27857 high parts of the DImode result.
27858 (umulsidi3_internal): Similarly.
27859 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
27860 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
27861 (udivsi3, umodsi3): Remove.
27862 (udivmodsi4, divmodsi4): New expanders.
27863 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
27864 (*divmodsi4): Simiarly.
27865 (ext_internal): New.
27866
c25a21f5
RH
27867 * config/mn10300/constraints.md ("z"): New constraint.
27868 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
27869 (FIXED_REGISTERS): Don't fix MDR.
27870 (CALL_USED_REGSITERS): Reformat nicely.
27871 (REG_ALLOC_ORDER): Add MDR.
27872 (enum regclass): Add MDR_REGS.
27873 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
27874 (IRA_COVER_CLASSES): Add MDR_REGS.
27875 (REGNO_REG_CLASS): Handle MDR_REG.
27876 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
27877 (mn10300_register_move_cost): Likewise.
27878 * config/mn10300/mn10300.md (MDR_REG): New.
27879 (*movsi_internal): Handle moves to/from MDR_REGS.
27880
36846b26
RH
27881 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
27882 POST_MODIFY.
27883 (mn10300_secondary_reload): Tidy combination reload classes.
27884 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
27885 addresses for AM33. Allow symbolic offsets for reg+imm.
27886 (mn10300_regno_in_class_p): New.
27887 (mn10300_legitimize_reload_address): New.
27888 * config/mn10300/mn10300.h (enum reg_class): Remove
27889 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
27890 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
27891 SP_OR_GENERAL_REGS.
27892 (REG_CLASS_NAMES): Update to match.
27893 (REG_CLASS_CONTENTS): Likewise.
27894 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
27895 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
27896 (REGNO_IN_RANGE_P): Remove.
27897 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
27898 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
27899 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
27900 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
27901 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
27902 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
27903 (REGNO_GENERAL_P): New.
27904 (HAVE_POST_MODIFY_DISP): New.
27905 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
27906 (LEGITIMIZE_RELOAD_ADDRESS): New.
27907 * config/mn10300/mn10300-protos.h: Update.
27908
8b119bb6
RH
27909 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
27910 DATA_REGS for AM33 stack-pointer destination.
27911 (mn10300_preferred_output_reload_class): Likewise.
27912 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
27913 into a form appropriate for ...
27914 (TARGET_SECONDARY_RELOAD): New.
27915 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
27916 * config/mn10300/mn10300-protos.h: Update.
27917 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
27918 reload_insi; use the "A" constraint for the scratch; handle AM33
27919 moves of sp to non-address registers.
27920
b1efde2a
RH
27921 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
27922 (*movqi_internal): ... here.
27923 (*am33_movhi, *mn10300_movhi): Merge into...
27924 (*movhi_internal): ... here.
27925 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
27926 as the source/destination of moves from/to SP.
27927 (movsf): Only allow for AM33-2.
1c3ba85b 27928 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
27929 any integer constant constraint. Only allow for AM33-2. Tidy
27930 all of the alternative outputs.
27931 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
27932 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
27933 for MN103.
27934 (udivsi3, umodsi3): New patterns for MN103 only.
27935
b899fd78
JR
279362011-01-19 Joern Rennecke <amylaar@spamcop.net>
27937
27938 * doc/tm.texi.in: Spell out that a lack of register class unions
27939 can lead to ICEs.
27940 * doc/tm.texi: Regenerate.
27941
afaaa67d
JJ
279422011-01-19 Jakub Jelinek <jakub@redhat.com>
27943
2e0642cd
JJ
27944 PR rtl-optimization/47337
27945 * dce.c (check_argument_store): New function.
27946 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
27947
afaaa67d
JJ
27948 PR tree-optimization/47290
27949 * tree-eh.c (infinite_empty_loop_p): New function.
27950 (cleanup_empty_eh): Use it.
27951
d2cd871f
SE
279522011-01-18 Steve Ellcey <sje@cup.hp.com>
27953
27954 PR target/46997
27955 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
27956 (a64_expand_widen_sum): Ditto.
27957 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
27958 (vec_extract_evenodd_help): Ditto.
27959 (vec_extract_evenv4hi): Ditto.
27960 (vec_extract_oddv4hi): Ditto.
27961 (vec_extract_evenv2si): Ditto.
27962 (vec_extract_oddv2si): Ditto.
27963 (vec_extract_evenv2sf): Ditto.
27964 (vec_extract_oddv2sf): Ditto.
27965 (vec_pack_trunc_v4hi: Ditto.
27966 (vec_pack_trunc_v2si): Ditto.
27967 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
27968 (vec_interleave_highv8qi): Ditto.
27969 (mix1_r): Ditto.
27970 (vec_extract_oddv8qi): Ditto.
27971 (vec_interleave_lowv4hi): Ditto.
27972 (vec_interleave_highv4hi): Ditto.
27973 (vec_interleave_lowv2si): Ditto.
27974 (vec_interleave_highv2si): Ditto.
27975
41a1208a
JDA
279762011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27977
27978 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
27979 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
27980 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
27981 (pa_c_mode_for_suffix): New.
27982 (TARGET_EXPAND_BUILTIN): Define.
27983 (TARGET_C_MODE_FOR_SUFFIX): Define.
27984 (pa_builtins): Define.
27985 (pa_init_builtins): Register __float128 type and init new support
27986 builtins.
27987 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
27988 * config/pa/quadlib.c (_U_Qfcopysign): New.
27989
1ecad98e
EB
279902011-01-18 Eric Botcazou <ebotcazou@adacore.com>
27991
27992 PR middle-end/46894
27993 * explow.c (allocate_dynamic_stack_space): Do not assume more than
27994 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
27995 are defined.
27996
d4f2460a
UW
279972011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27998
27999 PR tree-optimization/47179
28000 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
28001 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
28002
4994da65
RG
280032011-01-18 Richard Guenther <rguenther@suse.de>
28004
28005 PR rtl-optimization/47216
28006 * emit-rtl.c: Include tree-flow.h.
28007 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
28008 of replicating it with different semantics.
28009 * Makefile.in (emit-rtl.o): Adjust.
28010
1eb458d1
RR
280112011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28012
38be4072 28013 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 28014 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 28015
e7ef91dc
JJ
280162011-01-18 Jakub Jelinek <jakub@redhat.com>
28017
28018 PR rtl-optimization/47299
28019 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 28020 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
28021 * expmed.c (expand_widening_mult): Don't try to optimize constant
28022 multiplication if op0 has VOIDmode. Convert op1 constant to mode
28023 before using it.
28024
535b7874
RW
280252011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28026
28027 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
28028 spacing after 'e.g.', typos, comma, hyphenation.
28029
27bf36f3
RH
280302011-01-17 Richard Henderson <rth@redhat.com>
28031
8a5b5449
RH
28032 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
28033 (rx_restricted_mem_operand): New.
28034 (rx_shift_operand): Use register_operand.
28035 (rx_source_operand, rx_compare_operand): Likewise.
28036 * config/rx/rx.md (addsi3_flags): New expander.
28037 (adddi3): Rewrite as expander.
28038 (adc_internal, *adc_flags, adddi3_internal): New patterns.
28039 (subsi3_flags): New expander.
28040 (subdi3): Rewrite as expander.
28041 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
28042
784f69be
RH
28043 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
28044 (rx_init_builtins): Remove sat builtin.
28045 (rx_expand_builtin): Likewise.
28046 * config/rx/rx.md (ssaddsi3): New.
28047 (*sat): Rename from sat. Represent the CC_REG input.
28048
f033541c
RH
28049 * config/rx/predicates.md (rshift_operator): New.
28050 * config/rx/rx.c (rx_expand_insv): Remove.
28051 * config/rx/rx-protos.h: Update.
28052 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
28053 operand to the canonical position.
28054 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
28055 (*bitclr, *bitclr_in_memory): Similarly.
28056 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
28057 (insv): Retain the zero_extract in the expansion.
28058
34fee389
RH
28059 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
28060 (bswaphi2, bitinvert, revw): Likewise.
28061
265c835f
RH
28062 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
28063 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
28064 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
28065 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
28066 (bitset, bitset_in_memory): Likewise.
28067 (bitinvert, bitinvert_in_memory): Likewise.
28068 (bitclr, bitclr_in_memory): Likewise.
28069 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
28070 (rx_strend, rx_cmpstrn): Likewise.
28071 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
28072 (bitop peep2 patterns): Remove.
28073
b4d83be3
RH
28074 * config/rx/rx.c (rx_match_ccmode): New.
28075 * config/rx/rx-protos.h: Update.
28076 * config/rx/rx.md (abssi2): Clobber, don't set flags.
28077 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
28078 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
28079 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
28080 (fix_truncsfsi2, floatsisf2): Likewise.
28081 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
28082 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
28083 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
28084 (*subsi3_flags, *xorsi3_flags): New.
28085
d0acb939
RH
28086 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
28087
c06fc3d9
RH
28088 * config/rx/rx.c (rx_print_operand): Remove workaround for
28089 unsplit comparison operations.
28090
2882702b
RH
28091 * config/rx/rx.md (movsicc): Split after reload.
28092 (*movsicc): Merge *movsieq and *movsine via match_operator.
28093 (*stcc): New pattern.
28094
6f7310f2
RH
28095 * config/rx/rx.c (rx_float_compare_mode): Remove.
28096 * config/rx/rx.h (rx_float_compare_mode): Remove.
28097 * config/rx/rx.md (cstoresi4): Split after reload.
28098 (*sccc): New pattern.
28099
e963cb1a
RH
28100 * config/rx/predicates.md (label_ref_operand): New.
28101 (rx_z_comparison_operator): New.
28102 (rx_zs_comparison_operator): New.
28103 (rx_fp_comparison_operator): New.
28104 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
28105 Validate that the flags are set properly for the comparison.
28106 (rx_gen_cond_branch_template): Remove.
28107 (rx_cc_modes_compatible): Remove.
28108 (mode_from_flags): New.
28109 (flags_from_code): Rename from flags_needed_for_conditional.
28110 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
28111 (rx_select_cc_mode): Likewise.
28112 (rx_split_fp_compare): New.
28113 (rx_split_cbranch): New.
28114 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
28115 (*cbranchsi4): Use match_operator and rx_split_cbranch.
28116 (*cbranchsf4): Similarly.
28117 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
28118 match_operator and rx_split_cbranch.
28119 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
28120 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
28121 (*cmpsi): Rename from cmpsi.
28122 (*tstsi): Rename from tstsi.
28123 (*cmpsf): Rename from cmpsf; use CC_Fmode.
28124 (*conditional_branch): Rename from conditional_branch.
28125 (*reveresed_conditional_branch): Remove.
28126 (b<code>): Remove expander.
28127 * config/rx/rx-protos.h: Update.
28128
af530bb4
RH
28129 * config/rx/rx.c (rx_compare_redundant): Remove.
28130 * config/rx/rx.md (cmpsi): Don't use it.
28131 * config/rx/rx-protos.h: Update.
28132
27bf36f3
RH
28133 * config/rx/rx-modes.def (CC_F): New mode.
28134 * config/rx/rx.c (rx_select_cc_mode): New.
28135 * config/rx/rx.h (SELECT_CC_MODE): Use it.
28136 * config/rx/rx-protos.h: Update.
28137
d7fde127
RH
281382011-01-17 Richard Henderson <rth@redhat.com>
28139
28140 * except.c (dump_eh_tree): Fix stray ; after for statement.
28141
6ff38230
RG
281422011-01-17 Richard Guenther <rguenther@suse.de>
28143
28144 PR tree-optimization/47313
28145 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
28146 handling before copying the body. Properly deal with
28147 by-reference result in SSA form.
28148
114ce554
ILT
281492011-01-17 Ian Lance Taylor <iant@google.com>
28150
bf5cd92b 28151 PR target/47219
114ce554
ILT
28152 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
28153 (struct_value_alias_set): Don't define.
28154 (sparc_option_override): Don't set sparc_sr_alias_set and
28155 struct_value_alias_set.
28156 (save_or_restore_regs): Use gen_frame_mem rather than calling
28157 set_mem_alias_set.
28158 (sparc_struct_value_rtx): Likewise.
28159
98c6d93c
L
281602011-01-17 H.J. Lu <hongjiu.lu@intel.com>
28161
28162 PR target/47318
7a81008b 28163 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
28164 (_mm_maskstore_pd): Likewise.
28165 (_mm_maskload_ps): Likewise.
28166 (_mm_maskstore_ps): Likewise.
28167 (_mm256_maskload_pd): Change mask to __m256i.
28168 (_mm256_maskstore_pd): Likewise.
28169 (_mm256_maskload_ps): Likewise.
28170 (_mm256_maskstore_ps): Likewise.
28171
28172 * config/i386/i386-builtin-types.def: Updated.
28173 (ix86_expand_special_args_builtin): Likewise.
28174
28175 * config/i386/i386.c (bdesc_special_args): Update
28176 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
28177 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
28178 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
28179 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
28180
28181 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
28182 Use <avxpermvecmode> on mask register.
28183 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
28184
b9361af2 281852011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
28186 Michael Haubenwallner <michael.haubenwallner@salomon.at>
28187 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
28188
28189 PR target/46655
28190 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
28191 if <= USHRT_MAX in 32-bit mode.
28192
b7ae9eb5
RW
281932011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28194
28195 * doc/install.texi (Configuration, Specific): Wrap long
28196 lines in examples. Allow line wrapping in long options
28197 and URLs where beneficial for PDF output.
28198
4377fad9
RS
281992011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
28200
28201 * config/mips/mips.c (mips_classify_symbol): Don't return
28202 SYMBOL_PC_RELATIVE for nonlocal labels.
28203
55959ffa 282042011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 28205
55959ffa
EB
28206 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
28207
282082011-01-15 Jan Hubicka <jh@suse.cz>
28209
28210 PR tree-optimization/47276
be46831f
JH
28211 * ipa.c (function_and_variable_visibility): Do not try to mark alias
28212 declarations as needed.
28213
05842ff5
MJ
282142011-01-15 Martin Jambor <mjambor@suse.cz>
28215
28216 * common.opt (fdevirtualize): New flag.
28217 * doc/invoke.texi (Option Summary): Document it.
28218 * opts.c (default_options_table): Add devirtualize flag.
28219 * ipa-prop.c (detect_type_change): Return immediately if
28220 devirtualize flag is not set.
28221 (detect_type_change_ssa): Likewise.
28222 (compute_known_type_jump_func): Likewise.
28223 (ipa_analyze_virtual_call_uses): Likewise.
28224
f65cf2b7
MJ
282252011-01-14 Martin Jambor <mjambor@suse.cz>
28226
28227 PR tree-optimization/45934
28228 PR tree-optimization/46302
28229 * ipa-prop.c (type_change_info): New type.
28230 (stmt_may_be_vtbl_ptr_store): New function.
28231 (check_stmt_for_type_change): Likewise.
28232 (detect_type_change): Likewise.
28233 (detect_type_change_ssa): Likewise.
28234 (compute_complex_assign_jump_func): Check for dynamic type change.
28235 (compute_complex_ancestor_jump_func): Likewise.
28236 (compute_known_type_jump_func): Likewise.
28237 (compute_scalar_jump_functions): Likewise.
28238 (ipa_analyze_virtual_call_uses): Likewise.
28239 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
28240
eb5bb0fd
JM
282412011-01-14 Joseph Myers <joseph@codesourcery.com>
28242
28243 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
28244 * config/i386/i386.opt (msse5): New Alias.
28245
f2060fbe
JM
282462011-01-14 Joseph Myers <joseph@codesourcery.com>
28247
28248 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
28249 * config/sparc/linux64.h (CC1_SPEC): Likewise.
28250 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
28251 * config/sparc/sparc.h (CC1_SPEC): Likewise.
28252
3a7b4385
JM
282532011-01-14 Joseph Myers <joseph@codesourcery.com>
28254
28255 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
28256 -mcpu options.
28257 * config/sparc/linux64.h (CC1_SPEC): Likewise.
28258 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
28259 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
28260 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
28261 Likewise.
28262 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
28263
a7b778f8
JM
282642011-01-14 Joseph Myers <joseph@codesourcery.com>
28265
38be4072 28266 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 28267
a7edae0a
MS
282682011-01-14 Mike Stump <mikestump@comcast.net>
28269
28270 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
28271 * config/fr30/fr30.md: Likweise
28272 (movsi_push): Likewise.
28273 (movsi_pop): Likewise.
28274 (enter_func): Likewise.
28275 * config/moxie/moxie.md (movsi_push): Likewise.
28276 (movsi_pop): Likewise.
28277
cbabf03f
JM
282782011-01-14 Joseph Myers <joseph@codesourcery.com>
28279
28280 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
28281 %{no_archive} %{exact_version}.
28282 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
28283 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
28284 %{no_archive} %{exact_version}.
28285 * config/mips/openbsd.h (LINK_SPEC): Likewise.
28286 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
28287 * config/mips/vxworks.h: Likewise.
28288
438da41a
JM
282892011-01-14 Joseph Myers <joseph@codesourcery.com>
28290
38be4072 28291 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 28292
da290a42
JM
282932011-01-14 Joseph Myers <joseph@codesourcery.com>
28294
28295 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
28296 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
28297
8989d00e
JM
282982011-01-14 Joseph Myers <joseph@codesourcery.com>
28299
28300 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
28301 -nodefaultlib.
28302
a3010a69
JM
283032011-01-14 Joseph Myers <joseph@codesourcery.com>
28304
28305 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
28306 for mcpu not cpu.
28307 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
28308 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
28309 not cpu.
28310 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
28311 Don't handle -shlib.
28312
e7f2f537
JM
283132011-01-14 Joseph Myers <joseph@codesourcery.com>
28314
28315 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
28316 (CC1_SPEC): Don't handle -profile.
28317
34830bfd
JM
283182011-01-14 Joseph Myers <joseph@codesourcery.com>
28319
28320 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
28321 * config/mips/mips.h (CC1_SPEC): Likewise.
28322
b2d36e74
JM
283232011-01-14 Joseph Myers <joseph@codesourcery.com>
28324
28325 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
28326 * config/mips/mips.h (CC1_SPEC): Likewise.
28327
dabadc52
JM
283282011-01-14 Joseph Myers <joseph@codesourcery.com>
28329
28330 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
28331 * config/m32r/linux.h (LINK_SPEC): Likewise.
28332 * config/mips/linux.h (LINK_SPEC): Likewise.
28333 * config/mips/linux64.h (LINK_SPEC): Likewise.
28334 * config/sparc/linux.h (LINK_SPEC): Likewise.
28335 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
28336 LINK_SPEC): Likewise.
28337 * config/xtensa/linux.h (LINK_SPEC): Likewise.
28338
43ee6785
JM
283392011-01-14 Joseph Myers <joseph@codesourcery.com>
28340
28341 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
28342 %{version:-v}.
28343 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
28344
45e79dfd
JM
283452011-01-14 Joseph Myers <joseph@codesourcery.com>
28346
28347 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
28348 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
28349
37e9e71d
JM
283502011-01-14 Joseph Myers <joseph@codesourcery.com>
28351
28352 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
28353
bb127cd8
RO
283542011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28355
28356 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
28357 supports -Bstatic/-Bdynamic.
28358 * configure: Regenerate.
28359
89a012ea 283602011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 28361 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
28362
28363 PR target/46037
28364 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
28365 when checking debug_info_level. Test write_symbols instead of
28366 debug_hooks->var_location when setting flag_var_tracking_uninit.
28367
7352c013
RG
283682011-01-14 Richard Guenther <rguenther@suse.de>
28369
28370 PR tree-optimization/47179
28371 * target.def (ref_may_alias_errno): New target hook.
28372 * targhooks.h (default_ref_may_alias_errno): Declare.
28373 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
28374 (default_ref_may_alias_errno): New function.
28375 * target.h (struct ao_ref_s): Declare.
28376 * tree-ssa-alias.c: Include target.h.
28377 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
28378 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
28379 (targhooks.o): Likewise.
28380 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
28381 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
28382
9a6c9288
RG
283832011-01-14 Richard Guenther <rguenther@suse.de>
28384
28385 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
28386
0fdb0d27
RG
283872011-01-14 Richard Guenther <rguenther@suse.de>
28388
28389 PR tree-optimization/47280
28390 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
28391 return CFG changes.
28392 (tree_ssa_forward_propagate_single_use_vars): Deal with
28393 CFG changes from associate_plusminus.
28394
8f66db3b
RG
283952011-01-14 Richard Guenther <rguenther@suse.de>
28396
28397 PR middle-end/47281
28398 Revert
28399 2011-01-11 Richard Guenther <rguenther@suse.de>
28400
280d9630
EB
28401 PR tree-optimization/46076
28402 * tree-ssa.c (useless_type_conversion_p): Conversions from
28403 unprototyped to empty argument list function types are useless.
8f66db3b 28404
6c0c92e6
RG
284052011-01-14 Richard Guenther <rguenther@suse.de>
28406
28407 PR tree-optimization/47286
280d9630 28408 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 28409
db09f943
MJ
284102011-01-14 Martin Jambor <mjambor@suse.cz>
28411
28412 PR middle-end/46823
28413 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
28414
dde8a3a4
AS
284152011-01-13 Anatoly Sokolov <aesok@post.ru>
28416
28417 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
28418 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
28419 * config/xtensa/xtensa.c (xtensa_libcall_value,
28420 xtensa_function_value_regno_p): New functions.
28421 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
28422
a2b63a20
KT
284232011-01-13 Kai Tietz <kai.tietz@onevision.com>
28424
28425 PR c++/47213
28426 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
28427 PE specific hook.
28428 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
28429 New function prototype.
28430 * config/i386/winnt.c (i386_pe_assemble_visibility):
28431 Warn only if attribute was specified by user.
28432
b41f0b34
MM
284332011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
28434
28435 PR target/47251
28436 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
28437 floating point.
28438 (floatunsdidf2_fcfidu): Ditto.
28439
3f3c098d
AK
284402011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28441
28442 * config/s390/s390.c (print_operand_address): Replace 'error' with
28443 'output_operand_lossage'.
28444 (print_operand): Likewise.
28445
29fa95ed
JL
284462011-01-13 Jeff Law <law@redhat.com>
28447
280d9630 28448 PR rtl-optimization/39077
29fa95ed
JL
28449 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
28450 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
28451 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
28452 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
28453 * gcse.c (prune_insertions_deletions): New function.
28454 (compute_pre_data): Use it.
28455
71d12276
DS
284562011-01-13 Dodji Seketeli <dodji@redhat.com>
28457
28458 PR debug/PR46973
28459 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
28460 static function.
61052244 28461 (prune_unused_types_mark): Use it.
71d12276 28462
9b0f04e7
AB
284632011-01-13 Andrey Belevantsev <abel@ispras.ru>
28464
28465 PR rtl-optimization/45352
1c3ba85b 28466 * sel-sched.c: Update copyright years.
9b0f04e7 28467 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 28468 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 28469
d6a3e264
RH
284702011-01-12 Richard Henderson <rth@redhat.com>
28471
a49b692a
RH
28472 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
28473 (TARGET_MD_ASM_CLOBBERS): New.
28474
126b1483
RH
28475 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
28476 (TARGET_DELEGITIMIZE_ADDRESS): New.
28477
f3d9d2e0
RH
28478 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
28479 (clzsi2, *bsch): New patterns.
28480
d84760c9
RH
28481 * config/mn10300/mn10300.md (INT): New mode iterator.
28482 (*mov<INT>_clr): New pattern, and peep2 to generate it.
28483
ec815d65
RH
28484 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
28485 flag_split_wide_types.
28486
d6a3e264
RH
28487 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
28488 (mn10300_trampoline_init): Rewrite without a template, an immediate
28489 load and a direct branch.
28490 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
28491
0f8ab434
AS
284922011-01-12 Anatoly Sokolov <aesok@post.ru>
28493
28494 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
28495 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
28496 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
28497 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
28498
d8a24b65
KT
284992011-01-12 Kai Tietz <kai.tietz@onevision.com>
28500
28501 PR debug/47209
28502 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
28503 of type.
28504
56e22cab
JH
285052011-01-12 Jan Hubicka <jh@suse.cz>
28506
28507 PR driver/47244
28508 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
28509 (PLUGIN_COND_CLOSE): New macro.
28510 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
28511
4b18b3c2
RG
285122011-01-12 Richard Guenther <rguenther@suse.de>
28513
28514 PR lto/47259
28515 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
28516 register variables in a MEM_REF.
28517
8e38461c
JM
285182011-01-12 Joseph Myers <joseph@codesourcery.com>
28519
28520 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
28521 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
28522 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
28523 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
28524 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
28525 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
28526 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
28527 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
28528 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
28529 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
28530 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
28531 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
28532 * config/gnu-user.h: New. Copied from linux.h.
28533 (LINUX_TARGET_STARTFILE_SPEC): Rename to
28534 GNU_USER_TARGET_STARTFILE_SPEC.
28535 (LINUX_TARGET_ENDFILE_SPEC): Rename to
28536 GNU_USER_TARGET_ENDFILE_SPEC.
28537 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
28538 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
28539 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
28540 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
28541 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
28542 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
28543 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
28544 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
28545 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
28546 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
28547 * config/arm/linux-eabi.h (CC1_SPEC): Use
28548 GNU_USER_TARGET_CC1_SPEC.
28549 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
28550 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
28551 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
28552 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
28553 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
28554 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
28555 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
28556 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
28557
a570fc16
RG
285582011-01-12 Richard Guenther <rguenther@suse.de>
28559
28560 PR other/46946
28561 * doc/invoke.texi (ffast-math): Document it is turned on
28562 with -Ofast.
28563
b0223c3e
JH
285642011-01-12 Jan Hubicka <jh@suse.cz>
28565
28566 PR tree-optimization/47233
ca1e00b3
EB
28567 * opts.c (common_handle_option): Disable ipa-reference with profile
28568 feedback.
b0223c3e 28569
1c3ba85b 285702011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
28571
28572 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
28573 error message.
28574
d853ee42
NP
285752011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
28576
28577 * c-parser.c (c_lex_one_token): Updated and reindented some
28578 comments. No changes in code.
28579
4053a5a0
ILT
285802011-01-11 Ian Lance Taylor <iant@google.com>
28581
28582 * godump.c (go_output_var): Don't output the variable if there is
28583 already a type with the same name.
28584
fa3e04d2
ILT
285852011-01-11 Ian Lance Taylor <iant@google.com>
28586
28587 * godump.c (go_format_type): Don't generate float80.
28588
885fe07c
RH
285892011-01-11 Richard Henderson <rth@redhat.com>
28590
72d6e3c5
RH
28591 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
28592 declaration. Rewrite for both speed and size.
28593 (mn10300_address_cost_1): Remove.
28594 (mn10300_register_move_cost): New.
28595 (mn10300_memory_move_cost): New.
28596 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
28597 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
28598 extensions, shifts, BSWAP, CLZ.
28599 (mn10300_wide_const_load_uses_clr): Remove.
28600 (TARGET_REGISTER_MOVE_COST): New.
28601 (TARGET_MEMORY_MOVE_COST): New.
28602 * config/mn10300/mn10300-protos.h: Update.
28603 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
28604
df37c023
RH
28605 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
28606 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
28607 * config/mn10300/mn10300-protos.h: Update.
28608 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
28609 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
28610 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
28611 (*test_int_bitfield, *test_byte_bitfield): Remove.
28612 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 28613 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 28614
85a337b5
RH
28615 * config/mn10300/constraints.md ("c"): Rename from "A".
28616 ("A", "D"): New constraint letters.
28617 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
28618 (fmssf4, fnmasf4, fnmssf4): Likewise.
28619
a5c727e3
RH
28620 * config/mn10300/mn10300.md (isa): New attribute.
28621 (enabled): New attribute.
28622
0d9e23f4
RH
28623 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
28624 (abssf2, negsf2): Define only for hardware fp.
28625 (sqrtsf2): Reformat.
28626 (addsf3, subsf3, mulsf3): Merge expander and insn.
28627
c157b3f0
RH
28628 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
28629 (DEBUGGER_AUTO_OFFSET): Remove.
28630 (DEBUGGER_ARG_OFFSET): Remove.
28631
cc909bba
RH
28632 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
28633 Emit register stores with the same offsets as the hardware.
28634 (mn10300_store_multiple_operation): Don't check that the register
28635 save offsets are monotonic.
28636 * config/mn10300/mn10300-protos.h: Update.
28637
e3b5c2f3
RH
28638 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
28639
885fe07c
RH
28640 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
28641 in terms of the value on the stack, not the MDR register.
28642
6e701822
JH
286432011-01-11 Jan Hubicka <jh@suse.cz>
28644
28645 PR lto/45721
28646 PR lto/45375
28647 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
28648 (symbol_alias_set_destroy, symbol_alias_set_contains,
28649 propagate_aliases_backward): Declare.
28650 * lto-streamer-out.c (struct sets): New sturcture.
28651 (trivally_defined_alias): New function.
28652 (output_alias_pair_p): Rewrite.
28653 (output_unreferenced_globals): Fix output of alias pairs.
28654 (produce_symtab): Likewise.
28655 * ipa.c (function_and_variable_visibility): Set weak alias destination
28656 as needed in lto.
28657 * varasm.c (symbol_alias_set_t): Remove.
28658 (symbol_alias_set_destroy): Export.
28659 (propagate_aliases_forward, propagate_aliases_backward): New functions
28660 based on ...
28661 (compute_visible_aliases): ... this one; remove.
28662 (trivially_visible_alias): New
28663 (trivially_defined_alias): New.
28664 (remove_unreachable_alias_pairs): Rewrite.
28665 (finish_aliases_1): Reorganize code checking if alias is defined.
28666 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
28667 in LTO mode.
28668
1b248907
RG
286692011-01-11 Richard Guenther <rguenther@suse.de>
28670
28671 PR tree-optimization/46076
28672 * tree-ssa.c (useless_type_conversion_p): Conversions from
28673 unprototyped to empty argument list function types are useless.
28674
b1923f0a
RG
286752011-01-11 Richard Guenther <rguenther@suse.de>
28676
28677 PR middle-end/45235
28678 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
28679 volatile MEMs as MEM_READONLY_P.
28680
e98965af
RG
286812011-01-11 Richard Guenther <rguenther@suse.de>
28682
28683 PR tree-optimization/47239
28684 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
28685
9f9ca914
JL
286862011-01-11 Jeff Law <law@redhat.com>
28687
1ee3ea05 28688 PR tree-optimization/47086
9f9ca914
JL
28689 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
28690 IVs from statements that might throw.
28691
345fdcb7
JH
286922011-01-10 Jan Hubicka <jh@suse.cz>
28693
28694 PR lto/45375
28695 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
28696
c459c97b
JH
286972011-01-10 Jan Hubicka <jh@suse.cz>
28698
28699 PR lto/45375
28700 * profile.c (read_profile_edge_counts): Ignore profile inconistency
28701 when correcting profile.
28702
06c9eb51
JH
287032011-01-10 Jan Hubicka <jh@suse.cz>
28704
28705 PR lto/46083
28706 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
28707 DECL_FINI_PRIORITY.
28708 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
28709 Restore DECL_FINI_PRIORITY.
28710
ae9fd815
RW
287112011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28712
28713 * doc/gimple.texi: Fix quoting of multi-word return values in
28714 @deftypefn statements. Ensure presence of return value. Wrap
28715 overlong @deftypefn lines.
28716 (is_gimple_operand, is_gimple_min_invariant_address): Remove
28717 descriptions of removed functions.
28718 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
28719 of multi-word return value in @deftypefn statement.
28720
0ecb4a7c
RW
287212011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28722
28723 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
28724 (Conditional Expressions, Logical Operators)
28725 (Statement and operand traversals): Do not indent smallexample
28726 code. Fix duplicate function argument in example.
28727
2e5e346d
JL
287282011-01-10 Jeff Law <law@redhat.com>
28729
1ee3ea05 28730 PR tree-optimization/47141
2e5e346d
JL
28731 * ipa-split.c (split_function): Handle case where we are
28732 returning a value and the return block has a virtual operand phi.
28733
cf9712cc
JH
287342011-01-10 Jan Hubicka <jh@suse.cz>
28735
1c3ba85b 28736 PR tree-optimization/47234
cf9712cc
JH
28737 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
28738 (pass_feedback_split_functions): Declare.
28739 * passes.c (init_optimization_passes): Add ipa-split as subpass of
28740 tree-profile.
28741 * ipa-split.c (gate_split_functions): Update comments; disable
28742 split-functions for profile_arc_flag and branch_probabilities.
28743 (gate_feedback_split_functions): New function.
28744 (execute_feedback_split_functions): New function.
28745 (pass_feedback_split_functions): New global var.
28746
94cd932c
L
287472011-01-10 H.J. Lu <hongjiu.lu@intel.com>
28748
28749 PR lto/46760
28750 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
28751 calling gimple_call_set_cannot_inline.
28752
fbbfcaf1
IS
287532011-01-10 Iain Sandoe <iains@gcc.gnu.org>
28754
28755 * config/darwin-sections.def: Remove unused section.
28756
d06865bf
DK
287572011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
28758
28759 PR c++/47218
28760 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
28761
96bbfbac
NP
287622011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
28763
28764 PR objc/47232
28765 * c-parser.c (c_parser_declaration_or_fndef): Improved
28766 error message.
28767
1ba6516f
KT
287682011-01-09 Kai Tietz <kai.tietz@onevision.com>
28769
28770 * config/i386/winnt.c (i386_pe_start_function): Make sure
28771 to switch back to function's section.
28772
0c5d770e
IS
287732011-01-09 Iain Sandoe <iains@gcc.gnu.org>
28774
28775 PR gcc/46902
28776 PR testsuite/46912
28777 * plugin.c: Move include of dlfcn.h from here...
28778 * system.h: ... to here.
28779
287802011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
28781
28782 * doc/cpp.texi (C++ Named Operators): Fix markup for header
28783 file name.
28784 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
28785 two extra empty pages in PDF output.
28786
046608a3
NP
287872011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
28788
28789 PR objc/47078
28790 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
28791 for error recovery purposes behave as if it was not specified so
28792 that the default type is usd.
28793
8cb114b9
JH
287942011-01-07 Jan Hubicka <jh@suse.cz>
28795
28796 PR tree-optmization/46469
28797 * ipa.c (function_and_variable_visibility): Clear needed flags on
28798 nodes with external decls; handle weakrefs merging correctly.
28799
b294a75e
JM
288002011-01-07 Joseph Myers <joseph@codesourcery.com>
28801
28802 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
28803 not false.
28804
96bdf9b4
JH
288052011-01-07 Jan Hubicka <jh@suse.cz>
28806
f60c2554 28807 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
28808 and no longer claim that gold is required for linker plugin.
28809 * configure: Regenerate.
28810 * gcc.c (PLUGIN_COND): New macro.
28811 (LINK_COMMAND_SPEC): Use it.
28812 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
28813 * config.in (HAVE_LTO_PLUGIN): New.
28814 * configure.ac (--with-lto-plugin): New parameter; autodetect
28815 HAVE_LTO_PLUGIN.
28816
17afc0fe
JH
288172011-01-07 Jan Hubicka <jh@suse.cz>
28818
28819 PR tree-optimization/46367
28820 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
28821 when we can update original.
28822 (cgraph_mark_inline_edge): Sanity check.
28823 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
28824
d4c48c0f
UW
288252011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28826
28827 * config/spu/spu.h (ASM_COMMENT_START): Define.
28828
96f5b137
L
288292011-01-07 H.J. Lu <hongjiu.lu@intel.com>
28830
28831 PR driver/42445
28832 * gcc.c (%>S): New.
28833 (SWITCH_KEEP_FOR_GCC): Likewise.
28834 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
28835 (do_spec_1): Handle "%>".
28836
28837 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
28838
c6a8f6de
JJ
288392011-01-07 Jakub Jelinek <jakub@redhat.com>
28840
c21bbd7a
JJ
28841 PR target/47201
28842 * config/i386/i386.c (ix86_delegitimize_address): If
28843 simplify_gen_subreg fails, return orig_x.
28844
c6a8f6de
JJ
28845 PR bootstrap/47187
28846 * value-prof.c (gimple_stringop_fixed_value): Handle
28847 lhs of the call properly.
28848
fe95fbf9
JH
288492011-01-07 Jan Hubicka <jh@suse.cz>
28850
28851 PR lto/45375
28852 * lto-opt.c (lto_reissue_options): Set flag_shlib.
28853
14d11d40
IS
288542011-01-07 Iain Sandoe <iains@gcc.gnu.org>
28855
72e961c8
EB
28856 * target.def (function_switched_text_sections): New hook.
28857 * doc/tm.texi: Regenerated.
28858 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 28859 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
28860 (final_scan_insn): Call function_switched_text_sections when a
28861 mid-function section change occurs.
14d11d40 28862 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
28863 * config/darwin-protos.h (darwin_function_switched_text_sections):
28864 Likewise.
14d11d40 28865 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 28866 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 28867
0b764288
IS
288682011-01-07 Iain Sandoe <iains@gcc.gnu.org>
28869
28870 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
28871 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
28872 the secondary code fragment when outputting for DWARF == 2.
28873
2ac6bb04
AS
288742011-01-07 Anatoly Sokolov <aesok@post.ru>
28875
28876 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
28877 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
28878 Remove.
28879 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
28880 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
28881
9f82de11
EB
288822011-01-06 Eric Botcazou <ebotcazou@adacore.com>
28883
28884 PR debug/46704
280d9630
EB
28885 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
28886 when it is not empty.
9f82de11
EB
28887
288882011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 28889
1ed72abf 28890 Bobcat Enablement
14b52538 28891 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 28892 (case ${target}): Add btver1.
14b52538 28893 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 28894 -march=native recognize btver1 processors.
14b52538 28895 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 28896 btver1 def_and_undef
14b52538 28897 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
28898 btver1 cost table.
28899 (m_BTVER1): New definition.
28900 (m_AMD_MULTIPLE): Includes m_BTVER1.
28901 (initial_ix86_tune_features): Add btver1 tune.
28902 (processor_target_table): Add btver1 entry.
28903 (static const char *const cpu_names): Add btver1 entry.
28904 (software_prefetching_beneficial_p): Add btver1.
28905 (ix86_option_override_internal): Add btver1 instruction sets.
28906 (ix86_issue_rate): Add btver1.
28907 (ix86_adjust_cost): Add btver1.
14b52538 28908 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
28909 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
28910 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
28911 * config/i386/i386.md (define_attr "cpu"): Add btver1.
28912
e1a973d8
RO
289132011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28914
28915 PR target/43309
28916 * config/i386/i386.c (legitimize_tls_address)
28917 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
28918 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
28919 (tls_initial_exec_64_sun): New pattern.
28920
c73f67c5
GP
289212011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
28922
28923 * doc/invoke.texi (Overall Options): Improve wording and markup
28924 of the description of -wrapper.
28925
bc4c6f9c
JM
289262011-01-06 Joseph Myers <joseph@codesourcery.com>
28927
28928 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
28929 rdynamic, threads): New Driver options.
28930
adb75db0
RO
289312011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28932
28933 PR target/38118
28934 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
28935 if coming from .tdata.
28936 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
28937
402c1cb4
JH
289382011-01-06 Jan Hubicka <jh@suse.cz>
28939
28940 PR lto/47188
28941 * collect2.c (main): Do not enable LTOmode when plugin is active.
28942
a4da6485
RO
289432011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28944
28945 PR other/45915
28946 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
28947 --version output if supported.
28948 * configure: Regenerate.
28949
028dbdf4
JM
289502011-01-06 Joseph Myers <joseph@codesourcery.com>
28951
28952 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
28953 Driver options.
28954
dfe776dd
JJ
289552011-01-06 Jakub Jelinek <jakub@redhat.com>
28956
28957 PR c/47150
28958 * c-convert.c (convert): When converting a complex expression
28959 other than COMPLEX_EXPR to a different complex type, ensure
28960 c_save_expr is called instead of save_expr, unless in_late_binary_op.
28961 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
28962 when converting COMPLEX_TYPE.
28963
210dedfe
IR
289642011-01-06 Ira Rosen <irar@il.ibm.com>
28965
28966 PR tree-optimization/47139
28967 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
28968 only the last reduction value is used outside the loop. Update
28969 documentation.
28970
cd33a412
JM
289712011-01-05 Joseph Myers <joseph@codesourcery.com>
28972
28973 * config/rtems.opt: New.
28974 * config.gcc (*-*-rtems*): Use rtems.opt.
28975
819edd94
CF
289762011-01-05 Changpeng Fang <changpeng.fang@amd.com>
28977
28978 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
28979 processors do not support 3DNow instructions.
28980
dc242c4a
UW
289812011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28982
28983 * config/spu/spu.c (spu_option_override): Set parameter
28984 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
28985
be286227
JH
289862011-01-05 Jan Hubicka <jh@suse.cz>
28987
28988 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
28989 at the command line.
28990
644e637f
MJ
289912011-01-05 Martin Jambor <mjambor@suse.cz>
28992
28993 PR lto/47162
28994 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
28995 deltas on streamed outgoing edges.
28996 (output_node_opt_summary): Output info for outgoing edges only when
28997 the node is in new parameter set.
28998 (output_cgraph_opt_summary): New parameter set, passed to the two
28999 aforementioned functions. Update its forward declaration and its
29000 callee too.
29001
7bd11157
TT
290022011-01-05 Tom Tromey <tromey@redhat.com>
29003
29004 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
29005 operator to c_finish_omp_atomic.
29006 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
29007 (build_unary_op): Update.
29008 (build_modify_expr): Update.
29009 (build_asm_expr): Update.
29010
f626b979
UW
290112011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29012
29013 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
29014 newly inserted insns.
29015 (pad_bb): Likewise.
29016 (spu_emit_branch_hint): Likewise.
29017 (insert_hbrp_for_ilb_runout): Likewise.
29018 (spu_machine_dependent_reorg): Call df_finish_pass after
29019 schedule_insns returns.
29020
4c825c02
UW
290212011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29022
29023 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
29024
5e9fba51
EB
290252011-01-05 Eric Botcazou <ebotcazou@adacore.com>
29026
29027 PR tree-optimization/47005
29028 * tree-sra.c (struct access): Add 'non_addressable' bit.
29029 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
29030 (decide_one_param_reduction): Return 0 if the parameter is passed by
29031 reference and one of the accesses in the group is non_addressable.
29032
3ebb5ca6
EB
290332011-01-04 Eric Botcazou <ebotcazou@adacore.com>
29034
29035 PR tree-optimization/47056
29036 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
29037 (mark_load): Likewise. Handle FUNCTION_DECL specially.
29038 (mark_store): Likewise. Pass STMT to ipa_record_reference.
29039
d5d4d14e
EB
290402011-01-04 Eric Botcazou <ebotcazou@adacore.com>
29041
29042 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
29043 initializer. Skip view conversions from aggregate types.
29044
d996ef70
KT
290452011-01-04 Kai Tietz <kai.tietz@onevision.com>
29046
29047 PR bootstrap/47055
29048 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
29049
509d65dd 290502011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
29051
29052 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
29053 obvious typo.
29054
55c623b5
UW
290552011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29056
29057 * function.c (thread_prologue_and_epilogue_insns): Do not crash
29058 on empty epilogue sequences.
29059
b98d6b35
JM
290602011-01-04 Joseph Myers <joseph@codesourcery.com>
29061
29062 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
29063 non-static): New Driver options.
29064
a0d43bac
JZ
290652011-01-04 Jie Zhang <jie@codesourcery.com>
29066
29067 PR driver/47137
29068 * gcc.c (default_compilers[]): Set combinable field to 0
29069 for all assembly languages.
29070
2b18eb32
MX
290712011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
29072
29073 * config/mips/loongson3a.md: New file.
29074 * config/mips/mips.md: Include loongson3a.md.
29075 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
29076 TUNE_LOONGSON_3A.
29077
42a48c4f
EB
290782011-01-03 Eric Botcazou <ebotcazou@adacore.com>
29079
29080 PR middle-end/47017
29081 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
29082 instead of convert_memory_address_addr_space on the base expression.
29083
9c1732c4
UW
290842011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29085
29086 * config/spu/spu.c (spu_option_override): Update error text
29087 for bad -march= / -mtune= values.
29088
aa474365
UW
290892011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29090
29091 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
29092 if branch-hint optimization will be performed.
29093
9766135b
JJ
290942011-01-03 Jakub Jelinek <jakub@redhat.com>
29095
371556ee
JJ
29096 PR tree-optimization/47148
29097 * ipa-split.c (split_function): Convert arguments to
29098 DECL_ARG_TYPE if possible.
29099
1ac12fa2
JJ
29100 PR tree-optimization/47155
29101 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
29102 when computing uns.
29103
9766135b
JJ
29104 PR rtl-optimization/47157
29105 * combine.c (try_combine): If undobuf.other_insn becomes
29106 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
29107 and set *new_direct_jump_p too.
29108
f4a2e571
SP
291092011-01-03 Sebastian Pop <sebastian.pop@amd.com>
29110
29111 PR tree-optimization/47021
29112 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
29113
9f8e43c0
JJ
291142011-01-03 Jakub Jelinek <jakub@redhat.com>
29115
29116 * gcc.c (process_command): Update copyright notice dates.
29117 * gcov.c (print_version): Likewise.
29118 * gcov-dump.c (print_version): Likewise.
29119 * mips-tfile.c (main): Likewise.
29120 * mips-tdump.c (main): Likewise.
29121
1a2e38f3
MJ
291222011-01-03 Martin Jambor <mjambor@suse.cz>
29123
29124 PR tree-optimization/46801
29125 * tree-sra.c (type_internals_preclude_sra_p): Check whether
29126 aggregate fields start at byte boundary instead of the bit-field flag.
29127
56b721c5
L
291282011-01-03 H.J. Lu <hongjiu.lu@intel.com>
29129
29130 PR driver/47137
29131 * gcc.c (main): Revert revision 168407.
29132
839d549b
MJ
291332011-01-03 Martin Jambor <mjambor@suse.cz>
29134
29135 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
29136
4ce99a20 291372011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
29138
29139 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
29140 vector optab to expand vector/scalar shift, update gimple to vector.
29141
76df0ae6
MJ
291422011-01-03 Martin Jambor <mjambor@suse.cz>
29143
29144 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
29145 a thunk.
29146
ce47fda3
MJ
291472011-01-03 Martin Jambor <mjambor@suse.cz>
29148
29149 PR tree-optimization/46984
29150 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
29151 HOST_WIDE_INT.
29152 (cgraph_create_indirect_edge): Fixed line length.
29153 (cgraph_indirect_call_info): Declare.
29154 (cgraph_make_edge_direct) Update declaration.
29155 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
29156 (cgraph_create_indirect_edge): Use it.
29157 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
29158 callees.
29159 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
29160 the new thunk_delta representation.
29161 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
29162 HOST_WIDE_INT.
29163 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
29164 (ipa_read_indirect_edge_info): Likewise.
29165 * lto-cgraph.c (output_edge_opt_summary): New function.
29166 (output_node_opt_summary): Call it on all outgoing edges.
29167 (input_edge_opt_summary): New function.
29168 (input_node_opt_summary): Call it on all outgoing edges.
29169
1e67fa1f
L
291702011-01-02 H.J. Lu <hongjiu.lu@intel.com>
29171
29172 PR driver/47137
29173 * gcc.c (main): Don't check have_o when settting combine_inputs.
29174
6656b2ac
EB
291752011-01-02 Eric Botcazou <ebotcazou@adacore.com>
29176
29177 * regrename.c: Add general comment describing the pass.
29178 (struct du_head): Remove 'length' field.
29179 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
29180 (regrename_optimize): Do not sort chains. Rework comments, add others.
29181 Force renaming to the preferred class (if any) in the first pass and do
29182 not consider registers that belong to it in the second pass.
29183 (create_new_chain): Do not set 'length' field.
29184 (scan_rtx_reg): Likewise.
29185
bc470c24
JJ
291862011-01-02 Jakub Jelinek <jakub@redhat.com>
29187
4e996296
JJ
29188 PR tree-optimization/47140
29189 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
29190 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
29191 to bit_value_binop.
29192
bc470c24 29193 PR rtl-optimization/47028
6656b2ac
EB
29194 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
29195 parm_birth_insn instead of at the beginning of first bb.
bc470c24 29196
5af62fcd 291972011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
29198
29199 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
29200 Remove the word "see" before "@pxref".
29201 * doc/rtl.texi: Remove the word "see" before "@pxref".
29202
0e20c89f
JH
292032011-01-01 Jan Hubicka <jh@suse.cz>
29204
6656b2ac
EB
29205 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
29206 memory.
0e20c89f 29207
220e83ca
KT
292082011-01-01 Kai Tietz <kai.tietz@onevision.com>
29209
29210 PR target/38662
6656b2ac 29211 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 29212
ad41bd84 29213\f
797103eb 29214Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
29215
29216Copying and distribution of this file, with or without modification,
29217are permitted in any medium without royalty provided the copyright
29218notice and this notice are preserved.