]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Modify gcc/*.[hc] double_int call sites to use the new interface.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
cf8f0e63 12012-09-06 Lawrence Crowl <crowl@google.com>
2
3 * double-int.h (double_int::operator &=): New.
4 (double_int::operator ^=): New.
5 (double_int::operator |=): New.
6 (double_int::mul_with_sign): Modify overflow parameter to bool*.
7 (double_int::add_with_sign): New.
8 (double_int::ule): New.
9 (double_int::sle): New.
10 (binary double_int::operator *): Remove parameter name.
11 (binary double_int::operator +): Likewise.
12 (binary double_int::operator -): Likewise.
13 (binary double_int::operator &): Likewise.
14 (double_int::operator |): Likewise.
15 (double_int::operator ^): Likewise.
16 (double_int::and_not): Likewise.
17 (double_int::from_shwi): Tidy formatting.
18 (double_int::from_uhwi): Likewise.
19 (double_int::from_uhwi): Likewise.
20 * double-int.c (double_int::mul_with_sign): Modify overflow parameter
21 to bool*.
22 (double_int::add_with_sign): New.
23 (double_int::ule): New.
24 (double_int::sle): New.
25 * builtins.c: Modify to use the new double_int interface.
26 * cgraph.c: Likewise.
27 * combine.c: Likewise.
28 * dwarf2out.c: Likewise.
29 * emit-rtl.c: Likewise.
30 * expmed.c: Likewise.
31 * expr.c: Likewise.
32 * fixed-value.c: Likewise.
33 * fold-const.c: Likewise.
34 * gimple-fold.c: Likewise.
35 * gimple-ssa-strength-reduction.c: Likewise.
36 * gimplify-rtx.c: Likewise.
37 * ipa-prop.c: Likewise.
38 * loop-iv.c: Likewise.
39 * optabs.c: Likewise.
40 * stor-layout.c: Likewise.
41 * tree-affine.c: Likewise.
42 * tree-cfg.c: Likewise.
43 * tree-dfa.c: Likewise.
44 * tree-flow-inline.h: Likewise.
45 * tree-object-size.c: Likewise.
46 * tree-predcom.c: Likewise.
47 * tree-pretty-print.c: Likewise.
48 * tree-sra.c: Likewise.
49 * tree-ssa-address.c: Likewise.
50 * tree-ssa-alias.c: Likewise.
51 * tree-ssa-ccp.c: Likewise.
52 * tree-ssa-forwprop.c: Likewise.
53 * tree-ssa-loop-ivopts.c: Likewise.
54 * tree-ssa-loop-niter.c: Likewise.
55 * tree-ssa-phiopt.c: Likewise.
56 * tree-ssa-pre.c: Likewise.
57 * tree-ssa-sccvn: Likewise.
58 * tree-ssa-structalias.c: Likewise.
59 * tree-ssa.c: Likewise.
60 * tree-switch-conversion.c: Likewise.
61 * tree-vect-loop-manip.c: Likewise.
62 * tree-vrp.c: Likewise.
63 * tree.h: Likewise.
64 * tree.c: Likewise.
65 * varasm.c: Likewise.
66
92ff811e 672012-09-06 Uros Bizjak <ubizjak@gmail.com>
68
69 * configure.ac (hle prefixes): Remove .code64.
70 * configure: Regenerated.
71
0438d37f 722012-09-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
73
74 * config/arm/arm.c: Use CONST_INT_P, CONST_DOUBLE_P, REG_P, MEM_P,
75 LABEL_P, JUMP_P, CALL_P, NOTE_P, BARRIER_P consistently.
76 * config/arm/arm.h: Use REG_P, MEM_P consistently.
77 * config/arm/arm.md: Use CONST_INT_P, REG_P, MEM_P, CONST_DOUBLE_P
78 consistently.
79 * config/arm/neon.md: Use REG_P consistently.
92ff811e 80 * config/arm/predicates.md: Use CONST_INT_P, REG_P, MEM_P consistently.
0438d37f 81 * config/arm/thumb2.md: Use CONST_INT_P, REG_P consistently.
82 * config/arm/vec-common.md: Use REG_P consistently.
83
4fd7a6de 842012-09-06 Richard Guenther <rguenther@suse.de>
85
86 PR tree-optimization/54498
87 * tree-ssa-alias.h (get_continuation_for_phi): Add flag to
88 abort when reaching an already visited region.
89 * tree-ssa-alias.c (maybe_skip_until): Likewise. And do it.
90 (get_continuation_for_phi_1): Likewise.
91 (walk_non_aliased_vuses): When we translated the reference,
92 abort when we re-visit a region.
93 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
94
7af36906 952012-09-06 David Edelsohn <dje.gcc@gmail.com>
96
97 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Add TLS
98 section.
99 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Add new
100 arguments to TARGET_ADDRESS_COST call.
101
ca06a84c 1022012-09-06 Richard Guenther <rguenther@suse.de>
103
104 * tree.h (MOVE_NONTEMPORAL): Remove.
105 * tree-pretty-print.c (dump_generic_node): Remove
106 MOVE_NONTEMPORAL handling.
107 * expr.c (expand_expr_real_1): Likewise.
108
6f8cbb88 1092012-09-06 Richard Guenther <rguenther@suse.de>
110
111 * passes.c (execute_function_todo): Call compute_may_aliases
112 only if flag_tree_pta is set.
113
0adec5fc 1142012-09-06 Andrew Pinski <apinski@cavium.com>
115
116 PR tree-opt/54494
117 * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also.
118
a62f9dca 1192012-09-06 Jakub Jelinek <jakub@redhat.com>
120
121 PR rtl-optimization/54455
122 * sel-sched-ir.c (maybe_tidy_empty_bb): Give up if previous fallthru
123 bb ends up with asm goto referencing bb's label.
124
46948e47 1252012-09-06 Chen Liqin <liqin.gcc@gmail.com>
126
92ff811e 127 * config/score/score.c: Remove TARGET_LEGITIMIZE_ADDRESS define and
128 score_legitimize_address function, use compiler default code instead.
46948e47 129
4425a9fb 1302012-09-05 Jan Hubicka <jh@suse.cz>
131
92ff811e 132 * ipa-inline.c (want_inline_small_function_p): Use
133 INLINE_HINT_loop_iterations hint.
4425a9fb 134
109d7aac 1352012-09-05 Andrew Pinski <apinski@cavium.com>
136
137 * optabs.c (emit_conditional_add): Correct comment about the arguments.
138 Remove code which might swap op2 and op3 since they cannot be swapped.
139 * doc/md.texi (add@var{mode}cc): Fix document about how the arguments
140 are used.
141
d9c5e5f4 1422012-09-05 Oleg Endo <olegendo@gcc.gnu.org>
143
144 * hooks.c (hook_int_rtx_mode_as_bool_0): New function.
145 * hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
146 * output.h (default_address_cost): Add machine_mode and address space
147 arguments.
148 * target.def (address_cost): Likewise.
149 * rtlanal.c (address_cost): Pass mode and address space to target hook.
150 (default_address_cost): Add unnamed machine_mode and address space
151 arguments.
152 * doc/tm.texi: Regenerate.
153 * config/alpha/alpha.c (TARGET_ADDRESS_COST): Use
154 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
155 * config/arm/arm.c (arm_address_cost): Add machine_mode and address
156 space arguments.
157 * config/avr/avr.c (avr_address_cost): Likewise.
158 * config/bfin/bfin.c (bfin_address_cost): Likewise.
159 * config/cr16/cr16.c (cr16_address_cost): Likewise.
160 * config/cris/cris.c (cris_address_cost): Likewise.
161 * config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
162 * config/i386/i386.c (ix86_address_cost): Likewise.
163 * config/ia64/ia64.c (TARGET_ADDRESS_COST): Use
164 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
165 * config/iq2000/iq2000.c (iq2000_address_cost): Add machine_mode and
166 address space arguments. Pass them on in recursive invocation.
167 * config/lm32/lm32.c (TARGET_ADDRESS_COST): Use
168 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
169 * config/m32c/m32c.c (m32c_address_cost): Add machine_mode and address
170 space arguments.
171 * config/m32r/m32r.c (TARGET_ADDRESS_COST): Use
172 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
173 * config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
174 * config/mep/mep.c (mep_address_cost): Add machine_mode and address
175 space arguments.
176 * config/microblaze/microblaze.c (microblaze_address_cost): Likewise.
177 * config/mips/mips.c (mips_address_cost): Likewise.
178 * config/mmix/mmix.c (TARGET_ADDRESS_COST): Use
179 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
180 * config/mn10300/mn10300.c (mn10300_address_cost): Add machine_mode and
181 address space arguments.
182 (mn10300_rtx_costs): Pass GET_MODE (x) and MEM_ADDR_SPACE (x) to
183 mn10300_address_cost.
184 * config/pa/pa.c (hppa_address_cost): Add machine_mode and address
185 space arguments.
186 * config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
187 (TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead of
188 hook_int_rtx_bool_0.
189 * config/rx/rx.c (rx_address_cost): Add machine_mode and address
190 space arguments.
191 * config/s390/s390.c (s390_address_cost): Likewise.
192 * config/score/score-protos.h (score_address_cost): Likewise.
193 * config/score/score.c (score_address_cost): Likewise.
194 * config/sh/sh.c (sh_address_cost): Likewise.
195 * config/sparc/sparc.c (TARGET_ADDRESS_COST): Use
196 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
197 * config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
198 * config/stormy16/stormy16.c (xstormy16_address_cost): Add machine_mode
199 and address space arguments.
200 * config/v850/v850.c (TARGET_ADDRESS_COST): Use
201 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
202 * config/vax/vax.c (vax_address_cost): Add machine_mode and address
203 space arguments.
204 * config/xtensa/xtensa (TARGET_ADDRESS_COST): Use
205 hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
206
989353a6 2072012-09-05 Diego Novillo <dnovillo@google.com>
208
209 PR bootstrap/54484
92ff811e 210 * vec.h (vec_t::lower_bound): Fix spelling of LESSTHAN argument.
989353a6 211
547b938d 2122012-09-05 Jakub Jelinek <jakub@redhat.com>
213
214 PR middle-end/54486
215 * builtins.c (fold_builtin_strspn, fold_builtin_strcspn): Use
216 build_int_cst with size_type_node instead of size_int.
217
1a5eff3d 2182012-09-05 Uros Bizjak <ubizjak@gmail.com>
219
220 * config/i386/sse.md (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>):
221 Use register_operand instead of reg_not_xmm0_operand{,_maybe_avx}.
222 Use nonimmediate_operand instead of
223 nonimm_not_xmm0_operand{,_maybe_avx}.
224 (<sse4_1_avx2>_pblendvb): Ditto.
225 (sse4_2_pcmpestr): Ditto.
226 (*sse4_2_pcmpestr_unaligned): Ditto.
227 (sse4_2_pcmpistr): Ditto.
228 (*sse4_2_pcmpistr_unaligned): Ditto.
229 * config/i386/predicates.md (reg_not_xmm0_operand): Remove predicate.
230 (nonimm_not_xmm0_operand): Ditto.
231 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
232 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
233 * config/i386/i386.md (rdpmc): Do not force operand 1 into ecx.
234
b2f6568f 2352012-09-05 Eric Botcazou <ebotcazou@adacore.com>
236
237 * bb-reorder.c: Clarify a few points in the head comment and fix
238 long lines in other comments.
239 (find_traces): Fix long line.
240 (find_traces_1_round): Likewise.
241 (better_edge_p): Likewise.
242 (connect_traces): Likewise.
243 (duplicate_computed_gotos): Likewise.
244 (find_rarely_executed_basic_blocks_and_cr): Remove trailing spaces.
245 (fix_up_fall_thru_edges): Fix formatting.
246
ea1c5c31 2472012-09-05 Richard Guenther <rguenther@suse.de>
248
249 PR tree-optimization/46590
250 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Do not
251 update SSA form here.
252 (canonicalize_induction_variables): Assert we do not need to
253 update SSA form.
254 (tree_unroll_loops_completely): Update SSA form here.
255 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
256 Do not verify loop-closed SSA form if SSA form is not up-to-date.
257
fd28e216 2582012-09-05 Georg-Johann Lay <avr@gjlay.de>
259
260 PR target/54461
261 * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if
262 not configured --with-avrlibc=no.
263 (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured
264 --with-avrlibc=no.
265 * config/avr/avrlibc.h: New file.
266 * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if
267 not configured --with-avrlibc=no.
268 * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__
269
2688cb90 2702012-09-04 Teresa Johnson <tejohnson@google.com>
271
272 * gcov-io.c (gcov_write_summary): Write out non-zero histogram
273 entries to function summary along with an occupancy bit vector.
274 (gcov_read_summary): Read in the histogram entries.
275 (gcov_histo_index): New function.
276 (void gcov_histogram_merge): Ditto.
277 * gcov-io.h (gcov_type_unsigned): New type.
278 (struct gcov_bucket_type): Ditto.
279 (struct gcov_ctr_summary): Include histogram.
280 (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
281 (GCOV_HISTOGRAM_SIZE): New macro.
282 (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
283 * profile.c (NUM_GCOV_WORKING_SETS): Ditto.
284 (gcov_working_sets): New global variable.
285 (compute_working_sets): New function.
286 (find_working_set): Ditto.
287 (get_exec_counts): Invoke compute_working_sets.
288 * coverage.c (read_counts_file): Merge histograms, and
289 fix bug with accessing summary info for non-summable counters.
290 * basic-block.h (gcov_type_unsigned): New type.
291 (struct gcov_working_set_info): Ditto.
292 (find_working_set): Declare.
293 * gcov-dump.c (tag_summary): Dump out histogram.
294
6e75e3f2 2952012-09-04 Diego Novillo <dnovillo@google.com>
296
297 PR bootstrap/54484
298 * vec.h (vec_t::embedded_init): Move default argument value
299 to function declaration.
300
160f10e2 3012012-09-04 Eric Botcazou <ebotcazou@adacore.com>
302
303 * bb-reorder.c (gate_handle_reorder_blocks): Move around.
304 (rest_of_handle_reorder_blocks): Likewise.
305 (pass_reorder_blocks): Likewise.
306 (gate_handle_partition_blocks): Likewise.
307
1c3660b1 3082012-09-04 Eric Botcazou <ebotcazou@adacore.com>
309
310 PR rtl-optimization/54456
311 * sched-rgn.c (gate_handle_sched): Return 1 only if optimize > 0.
312
b3c9def6 3132012-09-04 Diego Novillo <dnovillo@google.com>
314
315 PR bootstrap/54478
316 * vec.h (vec_t::alloc): Remove explicit type specification
317 in call to reserve.
318 (vec_t::copy): Likewise.
319 (vec_t::reserve): Likewise.
320 (vec_t::reserve_exact): Likewise.
321 (vec_t::safe_splice): Likewise.
322 (vec_t::safe_push): Likewise.
323 (vec_t::safe_grow): Likewise.
324 (vec_t::safe_grow_cleared): Likewise.
325 (vec_t::safe_insert): Likewise.
326
eae726e9 3272012-09-04 Richard Henderson <rth@redhat.com>
328
329 * alias.c (read_dependence): Return true for ALIAS_SET_MEMORY_BARRIER.
330
04c47166 3312012-09-04 Richard Guenther <rguenther@suse.de>
332
333 * tree-ssa-pre.c (value_expressions): Make it a vector of
334 bitmaps containing expression IDs.
335 (add_to_value): Adjust.
336 (sorted_array_from_bitmap_set): Likewise.
337 (bitmap_set_replace_value): Likewise.
338 (print_value_expressions): Likewise.
339 (get_constant_for_value_id): Likewise.
340 (get_representative_for): Likewise.
341 (phi_translate_1): Likewise.
342 (bitmap_find_leader): Likewise.
343 (find_or_generate_expression): Likewise.
344 (do_regular_insertion): Likewise.
345 (init_pre): Likewise.
346 (fini_pre): Likewise.
347
6ef7f1b2 3482012-09-04 Diego Novillo <dnovillo@google.com>
349
350 PR bootstrap/54479
351 * vec.h (vec_t::copy): Add cast in call to reserve_exact.
352
ff67047c 3532012-09-04 Richard Guenther <rguenther@suse.de>
354
355 * tree-ssa-pre.c (add_to_exp_gen): Adjust.
356 (make_values_for_phi): Do not add to PHI_GEN for FRE.
357 (compute_avail): Stop processing after adding all defs to
358 AVAIL_OUT for FRE.
359 (init_pre): Do not allocate not needed bitmap sets for FRE.
360
de2b4872 3612012-09-04 Diego Novillo <dnovillo@google.com>
362
363 Rewrite VEC_* functions as member functions of vec_t.
364
365 * vec.h: Update documentation.
366 (ALONE_VEC_CHECK_INFO): Define.
367 (ALONE_VEC_CHECK_DECL): Define.
368 (ALONE_VEC_CHECK_PASS): Define.
369 (struct vec_prefix): Rename field NUM to NUM_.
370 Rename field ALLOC to ALLOC_.
371 Update all users.
372 (struct vec_t): Rename field PREFIX to PREFIX_.
373 Rename field VEC to VEC_.
374 Update all users.
375 (vec_t::length): Rename from VEC_length_1. Update all users.
376 (vec_t::empty): Rename from VEC_empty_1. Update all users.
377 (vec_t::address): Rename from VEC_address_1. Update all users.
378 (vec_address): New.
379 (vec_t::last): Rename from VEC_last_1. Update all users.
380 (vec_t::operator[]): Rename from VEC_index_1. Update all users.
381 (vec_t::iterate): Rename from VEC_iterate_1. Update all users.
382 (vec_t::embedded_size): Rename from VEC_embedded_size_1.
383 Update all users.
384 (vec_t::embedded_init): Rename from VEC_embedded_init_1.
385 Update all users.
386 (vec_t::alloc): Rename from VEC_alloc_1. Update all users.
387 (vec_t::free): Rename from VEC_free_1. Update all users.
388 (vec_t::copy): Rename from VEC_copy_1. Update all users.
389 (vec_t::space): Rename from VEC_space_1. Update all users.
390 (vec_t::reserve): Rename from VEC_reserve_1. Update all users.
391 (vec_t::reserve_exact): Rename from VEC_reserve_exact_1.
392 Update all users.
393 (vec_t::splice): Rename from VEC_splice_1. Update all users.
394 (vec_t::safe_splice): Rename from VEC_safe_splice_1. Update all users.
395 (vec_t::quick_push): Rename from VEC_quick_push_1. Update all users.
396 (vec_t::safe_push): Rename from VEC_safe_push_1. Update all users.
397 (vec_t::pop): Rename from VEC_pop_1. Update all users.
398 (vec_t::truncate): Rename from VEC_truncate_1. Update all users.
399 (vec_t::safe_grow): Rename from VEC_safe_grow_1. Update all users.
400 (vec_t::safe_grow_cleared): Rename from VEC_safe_grow_cleared_1.
401 Update all users.
402 (vec_t::replace): Rename from VEC_replace_1. Update all users.
403 (vec_t::quick_insert): Rename from VEC_quick_insert_1.
404 Update all users.
405 (vec_t::safe_insert): Rename from VEC_safe_insert_1. Update all users.
406 (vec_t::ordered_remove): Rename from VEC_ordered_remove_1.
407 Update all users.
408 (vec_t::unordered_remove): Rename from VEC_unordered_remove_1.
409 Update all users.
410 (vec_t::block_remove): Rename from VEC_block_remove_1. Update all users.
411 (vec_t::lower_bound): Rename from VEC_lower_bound_1. Update all users.
412
49a70175 4132012-09-04 Steven Bosscher <steven@gcc.gnu.org>
414
415 * gimple.h (gimple_build_switch): Remove.
416 (gimple_build_switch_vec): Promote to the new gimple_build_switch.
417 (gimple_switch_default_label): Assert the default case label is
418 really a default case label.
419 (gimple_switch_set_default_label): Likewise.
420 * gimple.c (gimple_build_switch_nlabels): Make sure a default label
421 is passed in, and simplify accordingly.
422 (gimple_build_switch): Removed.
423 (gimple_build_switch_vec): Rename to gimple_build_switch.
424 * gimplify.c (gimplify_switch_expr): Update gimple_build_switch use.
425 * gimple-pretty-print.c (dump_gimple_switch): Do not accept a NULL
426 case label.
427 * stmt.c (expand_case): Simplify using the fact that every GIMPLE
428 switch must have a default case.
429 * tree-cfg.c (group_case_labels_stmt): Likewise.
430 (verify_gimple_switch): Use gimple_switch_label in verifier to get
431 the label at index 0, and verify that it is a valid default case.
432 * except.c (sjlj_emit_dispatch_table): Rewrite construction of the
433 switch for dispatching.
434 * tree-eh.c (lower_try_finally_switch): Update gimple_build_switch use.
435 (lower_eh_dispatch): Likewise.
436 * tree-vrp.c (execute_vrp): Use gimple_switch_label to get the case
437 label at index 0 before turning it into a default case label.
438 * omp-low.c (expand_omp_sections): Update gimple_build_switch use.
439 * tree-switch-conversion.c (emit_case_bit_tests): Get the default case
440 label using gimple_switch_default_label.
441 (collect_switch_conv_info): Likewise.
442 (process_switch): Likewise.
443 * doc/gimple.texi: Update documentation of gimple_build_switch.
444
c1a60a68 4452012-09-04 Georg-Johann Lay <avr@gjlay.de>
446
447 PR target/54476
448 * config/avr/avr.c (avr_expand_delay_cycles): Mask operand with
449 SImode.
450
b27bfb96 4512012-09-04 Bin Cheng <bin.cheng@arm.com>
452
453 PR target/45070
1a5eff3d 454 * config/arm/arm.c (thumb1_extra_regs_pushed): Handle return value
455 of size less than 4 bytes by using macro ARM_NUM_INTS.
b27bfb96 456 (thumb1_unexpanded_epilogue): Use macro ARM_NUM_INTS.
457
bb722af4 4582012-09-04 Richard Guenther <rguenther@suse.de>
459
460 PR tree-optimization/54458
461 * tree-ssa-threadupdate.c (thread_through_loop_header): If we
462 turn the loop into one with multiple latches mark it so.
463
a28e3283 4642012-09-04 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
465
466 PR target/54220
467 * config/avr/avr.c (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): New
468 define to...
469 (avr_allocate_stack_slots_for_args): ...this new static function.
470
2c28ca26 4712012-09-04 Christophe Lyon <christophe.lyon@linaro.org>
472
473 * config/arm/arm.c (arm_expand_builtin): Replace gen_rtx_CONST_INT
474 by GEN_INT.
475 (arm_emit_coreregs_64bit_shift): Likewise.
476
97557386 4772012-09-04 Christophe Lyon <christophe.lyon@linaro.org>
478
1a5eff3d 479 * config/arm/arm.c (arm_evpc_neon_vext): New function.
480 (arm_expand_vec_perm_const_1): Add call to arm_evpc_neon_vext.
97557386 481
c91d7b8a 4822012-09-04 Oleg Endo <olegendo@gcc.gnu.org>
483
484 PR target/51244
485 * config/sh/sh.c (prepare_cbranch_operands): Pull out comparison
486 canonicalization code into...
487 * (sh_canonicalize_comparison): This new function.
488 * config/sh/sh-protos.h: Declare it.
489 * config/sh/sh.h: Use it in new macro CANONICALIZE_COMPARISON.
490 * config/sh/sh.md (cbranchsi4): Remove TARGET_CBRANCHDI4 check and
491 always invoke expand_cbranchsi4.
492
197400ff 4932012-09-03 Andi Kleen <ak@linux.intel.com>
494
495 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Initialize
496 addr_offset always.
497
ed0124a2 4982012-09-03 Andrew Pinski <apinski@cavium.com>
499
500 PR tree-opt/53395
501 * tree-if-conv.c (constant_or_ssa_name): New function.
502 (fold_build_cond_expr): New function.
503 (predicate_scalar_phi): Use fold_build_cond_expr instead of build3.
504 (predicate_mem_writes): Likewise.
505
fe1dba6d 5062012-09-03 Marc Glisse <marc.glisse@inria.fr>
507
508 * fold-const.c (fold_ternary_loc): Constant-propagate after
509 removing dead operands.
510
8cb0acff 5112012-09-03 Michael Matz <matz@suse.de>
512
513 PR tree-optimization/46590
514 * tree-cfg.c (gimple_duplicate_sese_region): Don't update
515 SSA web here ...
516 * tree-ssa-loop-ch.c (copy_loop_headers): ... but here.
517
8a96e682 5182012-09-03 Sandra Loosemore <sandra@codesourcery.com>
519
520 * doc/invoke.texi: Fix numerous typos and punctuation/grammatical
521 errors throughout the file. Re-word some awkward sentences and
522 paragraphs.
523
e42ce38b 5242012-09-03 Richard Guenther <rguenther@suse.de>
525
526 PR tree-optimization/54362
527 * tree-ssa-structalias.c (find_func_aliases): Handle COND_EXPR.
528
62cb5855 5292012-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
530
531 * config/s390/s390.c (s390_loadrelative_operand_p): New function.
532 (s390_check_qrst_address, print_operand_address): Use
533 s390_loadrelative_operand_p instead of s390_symref_operand_p.
e42ce38b 534 (s390_check_symref_alignment): Accept pointer size alignment for
535 GOT slots.
62cb5855 536 (legitimize_pic_address): Use load relative on z10 or later.
537
c41441bb 5382012-09-03 Jakub Jelinek <jakub@redhat.com>
539
540 PR debug/53923
541 * valtrack.c (dead_debug_insert_temp): Drop non-reg uses
542 from the chain.
543
70eb49f5 5442012-09-03 Joseph Myers <joseph@codesourcery.com>
545
546 * common.opt (--no-sysroot-suffix): New driver option.
547 * doc/invoke.texi (--no-sysroot-suffix): Document.
548 * gcc.c (driver_handle_option): Handle --no-sysroot-suffix as not
549 needing spec processing.
550 (main): Do not process sysroot suffixes if no_sysroot_suffix.
551
25f28d52 5522012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
553
554 PR target/33135
555 * common/config/sh/sh-common.c: Update copyright years.
556 (sh_option_init_struct): Delete.
557 (TARGET_OPTION_INIT_STRUCT): Likewise.
558
0a55bcd9 5592012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
560
561 PR target/54418
562 * config/sh/sh.md (cmpgeusi_t): Remove N alternative.
563 Check operands[1] in split condition instead of operands[0].
564 Add comments.
565
51796b3a 5662012-09-02 Mark Kettenis <kettenis@openbsd.org>
567
568 * config.gcc (x86_64-*-openbsd*): New target.
569 * config.host (*-*-openbsd*): New target.
570 * config/openbsd.h (TARGET_C99_FUNCTIONS): Define.
571 * config/i386/openbsdelf.h: Remove some superfluous defines and
572 group things together in a more logical fashion.
573 (DBX_REGISTER_NUMBER): Provide a
574 definition that works on both 32-bit and 64-bit targets.
575 (WCHAR_TYPE_SIZE): Hardcode as 32.
576 (NO_DOLLAR_IN_LABEL): Remove undef.
577 (TARGET_DEFAULT): Remove.
578 (SET_ASM_OP): Remove.
579 (DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning.
580 (ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h
581 (DWARF2_UNWIND_INFO): Remove define.
582 (HAVE_ENABLE_EXECUTE_STACK): Define.
583 * config/host-openbsd.c: New file.
584 * config/t-openbsd (USER_H): Add EXTRA_HEADERS.
585 * config/x-openbsd: New file.
586
4e38645f 5872012-09-02 Oleg Endo <olegendo@gcc.gnu.org>
588
589 * config/sh/sh.md (*extend<mode>si2_compact_mem_disp): Pass iterated
590 mode to sh_legitimate_index_p instead of QImode.
591
c7e8f2d8 5922012-09-02 Eric Botcazou <ebotcazou@adacore.com>
593
594 PR rtl-optimization/54369
595 * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
596 calling dbr_schedule.
597 * config/sparc/sparc.c (sparc_reorg): Likewise.
598
bc00db55 5992012-09-01 Jakub Jelinek <jakub@redhat.com>
600
601 PR target/54436
602 * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
603 operands[1] is CONST_INT_P, convert it to QImode before printing.
604
0400917b 6052012-09-01 Andrew Pinski <apinski@cavium.com>
606
607 * simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
608 A truncate of a memory is just loading the low part of the memory.
609
55760e6b 6102012-09-01 Uros Bizjak <ubizjak@gmail.com>
611
612 PR target/46829
613 PR target/46843
614 * config/i386/i386.c (ix86_legitimate_combined_insn): New function.
615 (TARGET_LEGITIMATE_COMBINED_INSN): New macro.
616
2a29bc01 6172012-09-01 Uros Bizjak <ubizjak@gmail.com>
618
619 * target.def (legitimate_combined_insn): New target hook.
620 * doc/tm.texi.in (TARGET_LEGITIMATE_COMBINED_INSN): New hook.
621 * doc/tm.texi: Regenerated.
622 * combine.c (recog_for_combine): Call targetm.legitimate_combined_insn
623 to allow targets to reject combined insn.
624 * hooks.h (hook_bool_rtx_true): New.
625 * hooks.c (hook_bool_rtx_true): Ditto.
626
f228b1b9 6272012-08-31 Martin Jambor <mjambor@suse.cz>
628
629 * ipa-inline-analysis.c (estimate_function_body_sizes): Allocate
630 nonconstant_names after calculate_dominance_info and
631 loop_optimizer_init.
632
3d23ac55 6332012-08-31 Greta Yorsh <Greta.Yorsh@arm.com>
634
635 * config/arm/arm.c (arm_expand_epilogue): Remove unused variable
1a5eff3d 636 floats_from_frame.
3d23ac55 637
f44ba372 6382012-08-31 Martin Jambor <mjambor@suse.cz>
639
640 PR middle-end/54409
641 * ipa-inline-analysis.c (remap_predicate): Fix the offset_map
642 checking condition.
643
32691791 6442012-08-31 Martin Jambor <mjambor@suse.cz>
645
646 * ipa-inline-analysis.c (phi_result_unknown_predicate): New function.
647 (predicate_for_phi_result): Likewise.
648 (estimate_function_body_sizes): Use the above two functions.
649
4b209fe7 6502012-08-31 Martin Jambor <mjambor@suse.cz>
651
652 PR middle-end/54394
653 * ipa-inline-analysis.c (estimate_function_body_sizes): Compute
654 dominance info and loops whenever optimizing.
655
1c68538a 6562012-08-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
657 Richard Earnshaw <richard.earnshaw@arm.com>
658
659 PR target/54252
660 * config/arm/arm.c (neon_dereference_pointer): Adjust nelems by
661 element size. Use elem_type from the formal parameter. New parameter
662 fcode.
663 (neon_expand_args): Adjust call to neon_dereference_pointer.
664
90e2513f 6652012-08-29 Steven Bosscher <steven@gcc.gnu.org>
666
667 * cfg.c (dump_bb_info): Print a newline if there were no edges to dump.
668
bae2ed21 6692012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
670
671 Revert:
672 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
673 mapping style, add ../lib/mips16.
674 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
675 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
676
164f4c55 6772012-08-29 Richard Sandiford <rdsandiford@googlemail.com>
678
679 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_synci
680 if TARGET_SYNCI.
681
9d25877d 6822012-08-29 Oleg Endo <olegendo@gcc.gnu.org>
683
684 * config/sh/sh.opt (menable-tas): Rename to mtas.
685 * doc/invoke.texi (SH options): Likewise.
686 * config/sh/sync.md: Update comments.
687
f160cdef 6882012-08-29 Oleg Endo <olegendo@gcc.gnu.org>
689
690 * config/sh/iterators.md: New file.
2a29bc01 691 * config/sh/sync.md (I124, I12, i124suffix): Delete. Replace usage
692 with new iterators QIHISI, QIHI, bw, bwl respectively throughout
693 the file.
f160cdef 694 * config/sh/sh.md: Include new file iterators.md.
695 (zero_extendhisi2, zero_extendqisi2): Fold into zero_extend<mode>si2.
696 (*zero_extendhisi2_compact, *zero_extendqisi2_compact): Fold into
697 *zero_extend<mode>si2_compact.
698 (*zero_extendqisi2_disp_mem, zero_extendhisi2_disp_mem): Fold into
699 *zero_extend<mode>si2_disp_mem.
700 (extendhisi2, extendqisi2): Fold into extend<mode>si2.
701 (*extendqisi2_compact_reg, *extendhisi2_compact_reg): Fold into
702 *extend<mode>si2_compact_reg.
703 (*extendqisi2_compact_mem_disp, *extendhisi2_compact_mem_disp): Fold
704 into *extend<mode>si2_compact_mem_disp.
705 (*extendqisi2_compact_snd, *extendhisi2_compact_snd): Fold into
706 *extend<mode>si2_compact_snd.
707 (*movsi_index_disp, *movhi_index_disp): Fold with iterators and rename
708 to *movsi_index_disp_load, *movhi_index_disp_load,
709 *mov<mode>_index_disp_store.
710 (*movqi_reg_reg, *movhi_reg_reg): Fold into *mov<mode>_reg_reg.
711 (*movqi_store_mem_disp04, *movhi_store_mem_disp05): Fold into
712 *mov<mode>_store_mem_disp04.
713 (*movqi_store_mem_disp12, *movhi_store_mem_disp13): Fold into
714 *mov<mode>_store_mem_disp12.
715 (*movqi_load_mem_disp, *movhi_load_mem_disp): Fold into
716 *mov<mode>_load_mem_disp04 and *mov<mode>_load_mem_disp12.
717
6e300957 7182012-08-29 Martin Jambor <mjambor@suse.cz>
719
720 * ipa-inline.h (estimate_edge_hints): Call do_estimate_edge_hints, not
721 do_estimate_edge_time.
722
5780132c 7232012-08-29 Chung-Lin Tang <cltang@codesourcery.com>
724
725 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Add nomips16 asm
726 directives, remove #ifndef __mips16 guards.
727 * config/mips/t-linux64 (MULTILIB_OSDIRNAMES): Change to use
728 mapping style, add ../lib/mips16.
729 (MULTILIB_OPTIONS,MULTILIB_DIRNAMES): Add mips16.
730 (MULTILIB_EXCLUSIONS): Exclude mips16 when not -mabi=32.
731
b3a0915b 7322012-08-28 Walter Lee <walt@tilera.com>
733 * confg/tilegx/tilegx.md: Fix code style.
734 (*zero_extendsidi_truncdisi): Fix typo.
735 * config/tilegx/tilegx.c: Fix code style.
736 (tilegx_function_profiler): Fix typo.
737
c9d5ca27 7382012-08-28 Walter Lee <walt@tilera.com>
739
740 * doc/invoke.texi: Document -mcmodel=small, -mcmodel=large.
741 * config/tilegx/tilegx.h: Include config/tilegx/tilegx-opts.h.
742 (CRT_CALL_STATIC_FUNCTION): Define.
743 * config/tilegx/predicates.md (const_last_symbolic_operand):
744 Handle UNSPEC_HW2_LAST_PCREL, UNSPEC_HW1_LAST_PLT_PCREL, and
745 UNSPEC_HW2_LAST_PLT_PCREL.
746 (const_symbolic_operand): Handle UNSPEC_HW1_PCREL,
747 UNSPEC_HW0_PLT_PCREL, and UNSPEC_HW1_PLT_PCREL.
748 * config/tilegx/tilegx.md (UNSPEC_MOV_LARGE_PCREL_STEP4): Define,
749 and renumber the constants that follow.
750 (UNSPEC_HW1_PCREL): Ditto.
751 (UNSPEC_HW2_LAST_PCREL): Ditto.
752 (UNSPEC_HW0_PLT_PCREL): Define.
753 (UNSPEC_HW1_PLT_PCREL): Define.
754 (UNSPEC_HW1_LAST_PLT_PCREL): Define.
755 (UNSPEC_HW2_LAST_PLT_PCREL): Define.
756 (mov_large_pcrel_step1): Define.
757 (mov_large_pcrel_step2): Define.
758 (mov_large_pcrel_step3): Define.
759 (mov_large_pcrel_step4): Define.
760 (mov_plt_pcrel_step1): Define.
761 (mov_plt_pcrel_step2): Define.
762 (mov_plt_pcrel_step3): Define.
763 (mov_plt_pcrel_step1_32bit): Define.
764 (mov_plt_pcrel_step2_32bit): Define.
765 (call): Handle tilegx_cmodel == CM_LARGE, CM_LARGE_PIC.
766 (call_value): Ditto.
767 * config/tilegx/tilegx.opt: Include config/tilegx/tilegx-opts.h.
768 (mcmodel): New option.
769 (enum cmodel): Define.
770 (CM_SMALL): Define.
771 (CM_LARGE): Define.
772 * config/tilegx/tilegx-opts.h: New file.
773 * config/tilegx/tilegx-protos.h (tilegx_compute_pcrel_address):
774 Declare.
775 (tilegx_compute_pcrel_plt_address): Declare.
776 * config/tilegx/tilegx.c (tilegx_option_override): Handle
777 tilegx_cmodel.
778 (tilegx_function_ok_for_sibcall): Ditto.
779 (compute_pcrel_address): Rename to tilegx_compute_pcrel_address,
780 and don't declare static. Handle tilegx_cmodel.
781 (tilegx_compute_pcrel_plt_address): Define.
782 (tilegx_legitimize_pic_address): Rename calls to
783 compute_pcrel_address.
784 (tilegx_delegitimize_address): Handle UNSPEC_HW1_PCREL,
785 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
786 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
787 (load_pic_register): Rename call to compute_pcrel_address.
788 (tilegx_print_operand): Handle UNSPEC_HW1_PCREL,
789 UNSPEC_HW2_LAST_PCREL, UNSPEC_HW0_PLT_PCREL, UNSPEC_HW1_PLT_PCREL,
790 UNSPEC_HW1_LAST_PLT_PCREL, UNSPEC_HW2_LAST_PLT_PCREL.
791
a7a503a5 7922012-08-27 Maxim Kuvyrkov <maxim@codesourcery.com>
793
794 * sched-deps.c (add_dependence_list_and_free): Simplify.
795 (flush_pending_list_and_free): Fix a hack that was fixing a hack. Free
796 lists when add_dependence_list_and_free doesn't free them.
797
a5612062 7982012-08-27 Uros Bizjak <ubizjak@gmail.com>
799
800 PR target/46254
801 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
802 true for TARGET_64BIT or !flag_pic.
803 * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
804 (atomic_compare_and_swap_double<mode>): Change operand 2 predicate
805 to cmpxchg8b_pic_memory_operand. Use DWIH mode iterator.
806 Add insn constraint. Conditionally emit xchg asm insns.
807 (atomic_compare_and_swap<mode>): Update calls. Check only
808 cmpxchg8b_pic_memory_operand in memory address fixup.
809 (DCASMODE): Remove.
810 (CASHMODE): Rename from DCASHMODE.
811 (doublemodesuffix): Update modes.
812 (regprefix): New mode attribute.
813
814 (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
815 <UNSPECV_CMPXCHG>: New constant.
816 (atomic_compare_and_swap<mode>_1): Rename from
817 atomic_compare_and_swap_single<mode>. Update calls and
818 unspec_volatile constants.
819 (atomic_compare_and_swap<mode>_doubleword): Rename from
820 atomic_compare_and_swap_double<mode>. Update calls and
821 unspec_volatile constants.
822
05b1301e 8232012-08-27 Walter Lee <walt@tilera.com>
824
825 * doc/md.texi (TILE-Gx): Fix typo.
826
d34cf22c 8272012-08-27 Walter Lee <walt@tilera.com>
828
829 * config/tilegx/tilegx.c (tilegx_function_profiler): Fix typo.
2d480fbf 830 * config/tilepro/tilepro.c (tilepro_function_profiler): Ditto.
a5612062 831
752cee76 8322012-08-27 Walter Lee <walt@tilera.com>
a5612062 833
752cee76 834 * config/tilegx/tilegx.md (*bfins): Rename to insn_bfins.
835 (insn_bfins): Delete.
836
d789d72b 8372012-08-27 Walter Lee <walt@tilera.com>
838
839 * config/tilegx/sync.md (atomic_compare_and_swap_bare<mode>,
840 atomic_exchange_bare<mode>,
841 atomic_fetch_<fetchop_name>_bare<mode>): Set type to X1_remote.
842 * config/tilegx/tilegx-generic.md (X1_remote): New
843 insn_reservation.
844 * config/tilegx/tilegx.md (type): Add X1_remove.
845 (insn_cmpexch<four_if_si>, insn_exch<four_if_si>,
846 insn_fetchadd<four_if_si>, insn_fetchaddgez<four_if_si>,
847 insn_fetchand<four_if_si>, insn_fetchor<four_if_si>): Set type to
848 X1_remote.
849
b41251d4 8502012-08-27 Andreas Schwab <schwab@linux-m68k.org>
851
852 * gdbinit.in: Fix syntax of skip command.
853
69b6195f 8542012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
855
856 * config/mips/mips.c (mips_pic_call_symbol_from_set): Check for
857 SYMBOL_REF SET_SRCs.
858
bc6d60ec 8592012-08-27 Richard Sandiford <rdsandiford@googlemail.com>
860
861 * config/mips/mips.c (vr4130_align_insns): Don't simulate
862 ghost instructions. Assert that the required instructions exist.
863
554bbdba 8642012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
865
866 * config/mips/mips.h (AVOID_CCMODE_COPIES): Update rationale for
867 definition.
868 * config/mips/mips.c (machine_function): Add next_fcc.
869 (mips_output_move): Remove handling of fcc moves.
870 (mips_allocate_fcc): New function.
871 (mips_emit_compare, mips_expand_vcondv2sf): Use it.
872 (mips_hard_regno_mode_ok_p): Restrict CCmode to ST registers.
873 Remove special case for CCmode reloads.
874 (mips_expand_builtin_compare_1): Use mips_allocate_fcc and treat
875 the result a fixed operand.
876 * config/mips/mips.md (move_type): Remove lui_movf.
877 (type, length): Remove references to it.
878 (movcc, reload_incc, reload_outcc): Delete.
879
d21fa493 8802012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
881
882 * config/mips/mips.c (mips_has_long_branch_p): New function,
883 split out from...
884 (mips_expand_ghost_gp_insns): ...here. Look inside sequences.
885
18292b6a 8862012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
887
888 * config/mips/mips.c (r10k_safe_mem_expr_p): Use get_inner_reference.
889
3f8c5694 8902012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
891
892 * config/mips/mips.c (mips_rtx_costs): Add costs for CINS.
893
e8d95696 8942012-08-26 Richard Sandiford <rdsandiford@googlemail.com>
895
896 * config/mips/mips.c (mips_rtx_costs): Add missing COSTS_N_INSNS
897 to the size cost of multiplication.
898
75a15fa3 8992012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
900
dc71ce5e 901 * doc/install.texi (Specific): Clarify what needs to be added to
902 this section.
903
9042012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
a5612062 905
75a15fa3 906 * doc/tm.texi.in (Misc): Move descriptions of NO_DOLLAR_IN_LABEL
907 and NO_DOT_IN_LABEL from here...
908 (Label Output): ...to here.
909 * doc/tm.texi: Regenerate.
a5612062 910
8d2cdf36 9112012-08-26 Gerald Pfeifer <gerald@pfeifer.com>
912
913 * doc/invoke.texi (C++ Dialect Options): Add missing space.
914
d48fddee 9152012-08-25 Eric Botcazou <ebotcazou@adacore.com>
916
917 PR rtl-optimization/54088
918 * jump.c (delete_related_insns): Robustify latest change.
919
9202012-08-25 Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
23b5e150 921
922 * doc/extend.texi (__atomic Builtins): Remove space before comma.
923
7df01788 9242012-08-25 Richard Sandiford <rdsandiford@googlemail.com>
a5612062 925 Andrew Pinski <apinski@cavium.com>
7df01788 926
927 * config/mips/mips.h (CASE_VECTOR_MODE): For not
928 TARGET_MIPS16_SHORT_JUMP_TABLES use ptr_mode.
929 (CASE_VECTOR_SHORTEN_MODE): Likewise.
930
c2dd480c 9312012-08-25 Uros Bizjak <ubizjak@gmail.com>
932
933 * config/i386/i386.h (FP_REG_P): Remove macro.
934 (FP_REGNO_P): Ditto.
935 (HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P.
936 (HARD_REGNO_NREGS_HAS_PADDING): Ditto.
937 (ANY_FP_REGNO_P): Ditto.
938 (HARD_REGNO_RENAME_OK): Use STACK_REGNO_P.
939 * config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P
940 instead of FP_REGNO_P.
941 (ix86_hard_regno_mode_ok): Ditto.
942 * config/i386/predicates.md (fp_register_operand): Ditto.
943 (register_and_not_fp_reg_operand): Ditto.
944 * config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead
945 of FP_REG_P.
946
947 * reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P.
948
5ea7bc9d 9492012-08-24 Jason Merrill <jason@redhat.com>
950
951 * print-tree.c (print_node): Don't check TREE_LANG_FLAG_*
952 on TREE_VEC or SSA_NAME.
953
8d1e0281 9542012-08-24 Jakub Jelinek <jakub@redhat.com>
955
956 PR c/54363
957 * gimplify.c (optimize_compound_literals_in_ctor): Only recurse
958 if init is a CONSTRUCTOR.
959
ade7d11b 9602012-08-24 Steven Bosscher <steven@gcc.gnu.org>
961
962 * tree-ssa-live.c (dump_var_map): Do not dump the partition
963 map of virtual operands.
964
817a9111 9652012-08-24 Yuri Rumyantsev <ysrumyan@gmail.com>
966
967 * config/i386/i386.c (ia32_multipass_dfa_lookahead) : Add
968 case for Atom processor.
969
3fe1aabe 9702012-08-24 Simon Baldwin <simonb@google.com>
971
972 * dwarf2out.c (gen_producer_string): Omit command line switch if
973 CL_NO_DWARF_RECORD flag set.
974 * opts.h (CL_NO_DWARF_RECORD): New.
975 * opt-functions.awk (switch_flags): Add NoDWARFRecord.
976 * doc/options.texi: Document NoDWARFRecord option flag.
977
7b22fcd7 9782012-08-24 H.J. Lu <hongjiu.lu@intel.com>
979
980 PR debug/52857
981 * dwarf2out.c (mem_loc_descriptor): Allow arg_pointer_rtx and
982 frame_pointer_rtx for based_loc_descr.
983
8d672d12 9842012-08-24 Martin Jambor <mjambor@suse.cz>
985
986 * predict.c (maybe_hot_frequency_p): New parameter fun. Use its decl
987 instead of current_function_decl, use profile_status_for_function and
988 ENTRY_BLOCK_PTR_FOR_FUNCTION with fun instead of their cfun variants.
989 (maybe_hot_count_p): New parameter fun, use
990 profile_status_for_function instead of its cfun_variant.
991 (maybe_hot_bb_p): New parameter fun, checking-assert it, pass it to
992 all callees.
993 (maybe_hot_edge_p): Pass cfun to maybe_hot_count_p and
994 maybe_hot_frequency_p.
995 (probably_never_executed_bb_p): New parameter fun, use its decl
996 instead of current_function_decl.
997 (optimize_bb_for_size_p): Pass cfun to maybe_hot_bb_p.
998 (rtl_profile_for_bb): Likewise.
999 (compute_function_frequency): Pass cfun to maybe_hot_bb_p and
1000 probably_never_executed_bb_p.
1001 * tree-ssa-operands.c (ssa_operands_active): New operator fun. Use it
1002 instead of cfun.
1003 (update_stmt_operands): Pass cfun as an argument of
1004 ssa_operands_active.
1005 (swap_tree_operands): Likewise.
1006 * gimple-iterator.c (update_modified_stmt): Likewise.
1007 (update_modified_stmts): Likewise.
1008 * tree-flow-inline.h (delink_stmt_imm_use): Likewise.
1009 * tree-ssa.c (delete_tree_ssa): Likewise.
1010 * bb-reorder.c (bb_to_key): Pass cfun to probably_never_executed_bb_p.
1011 (push_to_next_round_p): Likewise.
1012 (find_rarely_executed_basic_blocks_and_crossing_edges ): Likewise.
1013 * cfg.c: Inlude tree.h.
1014 (check_bb_profile): Use profile_status_for_function,
1015 EXIT_BLOCK_PTR_FOR_FUNCTION and ENTRY_BLOCK_PTR_FOR_FUNCTION with
1016 DECL_STRUCT_FUNCTION (current_function_decl) instead of their cfun
1017 variants.
1018 (dump_bb_info): Pass DECL_STRUCT_FUNCTION (current_function_decl) to
1019 maybe_hot_bb_p and probably_never_executed_bb_p.
1020 * gimple-pretty-print.c (gimple_dump_bb_buff): Checking-assert that
1021 DECL_STRUCT_FUNCTION (current_function_decl) is not NULL. Pass it to
1022 dump_histograms_for_stmt.
41b920d6 1023 (dump_gimple_mem_ops): Pass
1024 DECL_STRUCT_FUNCTION (current_function_decl)
8d672d12 1025 as an argument to dump_gimple_mem_ops.
1026 * tree-cfg.c (dump_function_to_file): Rename parameter fn to fndecl.
1027 Do not change cfun. Change and restore current_function_decl.
1028 * Makefile.in (cfg.o): Include TREE_H in dependencies.
1029
017c5b98 10302012-08-24 Georg-Johann Lay <avr@gjlay.de>
1031
1032 PR target/54222
1033 * avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes.
1034 * avr/avr-fixed.md: New file.
1035 * avr/avr.md: Include it.
1036 (cc): Add: minus.
1037 (adjust_len): Add: minus, minus64, ufract, sfract.
1038 (ALL1, ALL2, ALL4, ORDERED234): New mode iterators.
1039 (MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
1040 (MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA.
1041 (pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3,
41b920d6 1042 subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi,
017c5b98 1043 cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1.
1044 (*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3,
1045 ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3,
1046 *lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all
1047 16-bit modes in ALL2.
1048 (subhi3, casesi, strlenhi): Add clobber when expanding minus:HI.
1049 (*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const,
1050 ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const,
1051 *reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all
1052 32-bit modes in ALL4.
1053 * avr-dimode.md (ALL8): New mode iterator.
1054 (adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn,
1055 subdi3_const_insn, cbranchdi4, compare_di2,
1056 compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn,
1057 ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle
1058 all 64-bit modes in ALL8.
1059 * config/avr/avr-protos.h (avr_to_int_mode): New prototype.
1060 (avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes.
1061 * config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to...
1062 (avr_fixed_point_supported_p): ...this new static function.
1063 (TARGET_BUILD_BUILTIN_VA_LIST): Define to...
1064 (avr_build_builtin_va_list): ...this new static function.
1065 (avr_adjust_type_node): New static function.
1066 (avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P.
1067 (avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new
1068 pseudo instead of gen_rtx_MINUS.
1069 (avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED.
1070 (notice_update_cc): Handle: CC_MINUS.
1071 (output_movqi): Generalize to handle respective fixed-point modes.
1072 (output_movhi, output_movsisf, avr_2word_insn_p): Ditto.
1073 (avr_out_compare, avr_out_plus_1): Also handle fixed-point modes.
1074 (avr_assemble_integer): Ditto.
1075 (output_reload_in_const, output_reload_insisf): Ditto.
1076 (avr_compare_pattern): Skip all modes > 4 bytes.
1077 (avr_2word_insn_p): Skip movuqq_insn, movqq_insn.
1078 (avr_out_fract, avr_out_minus, avr_out_minus64): New functions.
1079 (avr_to_int_mode): New function.
1080 (adjust_insn_length): Handle: ADJUST_LEN_SFRACT,
1081 ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64.
1082 * config/avr/predicates.md (const0_operand): Allow const_fixed.
1083 (const_operand, const_or_immediate_operand): New.
1084 (nonmemory_or_const_operand): New.
1085 * config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ):
1086 New constraints.
1087 * config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define.
1088
0349edce 10892012-08-23 Kenneth Zadeck <zadeck@naturalbridge.com>
1090
1091 * alias.c (rtx_equal_for_memref_p): Convert constant cases.
1092 * combine.c (find_single_use_1, mark_used_regs_combine): Convert
1093 to CASE_CONST_ANY.
1094 * cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1,
1095 count_reg_usage): Convert constant cases.
41b920d6 1096 * cselib.c (cselib_expand_value_rtx_1): Convert to CASE_CONST_ANY.
0349edce 1097 (cselib_subst_to_values): Convert constant cases.
1098 * df-scan.c (df_uses_record): Ditto.
1099 * dse.c (const_or_frame_p): Convert case statements to explicit
1100 if-then-else using mode classes.
1101 * emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases.
1102 * explow.c (convert_memory_address_addr_space): Ditto.
1103 * gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto.
1104 * genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto.
1105 * ira.c (equiv_init_varies_p, contains_replace_regs,
1106 memref_referenced_p, rtx_moveable_p): Ditto.
1107 * jump.c (mark_jump_label_1): Remove constant cases.
1108 (rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE.
1109 * loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1,
1110 invariant_expr_equal_p): Convert to CASE_CONST_ANY.
1111 * postreload-gcse.c (oprs_unchanged_p): Convert constant cases.
1112 * reginfo.c (reg_scan_mark_refs): Ditto.
1113 * regrename.c (scan_rtx): Ditto.
1114 * reload1.c (eliminate_regs_1, elimination_effects,
1115 scan_paradoxical_subregs): Ditto.
1116 * reload.c (operands_match_p, subst_reg_equivs): Ditto.
1117 * resource.c (mark_referenced_resources, mark_set_resources): Ditto.
1118 * rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences)
1119 (reg_mentioned_p, modified_between_p, modified_in_p)
1120 (volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1,
1121 inequality_comparisons_p, computed_jump_p_1): Ditto.
1122 * rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto.
1123 * sched-deps.c (sched_analyze_2): Ditto.
1124 * valtrack.c (cleanup_auto_inc_dec): Ditto.
41b920d6 1125 * rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE,
0349edce 1126 CASE_CONST_ANY): New macros.
1127
4db9805e 11282012-08-23 Julian Brown <julian@codesourcery.com>
1129 Sandra Loosemore <sandra@codesourcery.com>
1130
1131 * config/mips/mips.md
1132 (UNSPEC_CASESI_DISPATCH): New.
1133 (MIPS16_T_REGNUM): New constant.
1134 (tablejump): Don't use for MIPS16_SHORT_JUMP_TABLES.
1135 (casesi): New.
1136 (casesi_internal_mips16_<mode>): New.
1137 * config/mips/mips.c (mips16_split_long_branches): Adjust test
1138 to ignore casesi jump tables.
1139 * config/mips/mips.h (TARGET_MIPS16_SHORT_JUMP_TABLES): Update
1140 comment.
1141 (CASE_VECTOR_MODE): Use SImode unconditionally.
1142 (CASE_VECTOR_SHORTEN_MODE): Define.
1143 (ASM_OUTPUT_ADDR_DIFF_ELT): Output word-sized addr_diff_elts
1144 when necessary for MIPS16_SHORT_JUMP_TABLES.
1145
de8bb330 11462012-08-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1147
1148 * config/rs6000/rs6000.c (rs6000_density_test): Free loop body.
1149
8bb97111 11502012-08-23 H.J. Lu <hongjiu.lu@intel.com>
1151
1152 PR driver/54335
1153 * doc/invoke.texi: Add -da and remove -dm.
1154
b324a248 11552012-08-23 Richard Guenther <rguenther@suse.de>
1156
1157 * tree-vect-stmts.c (vect_finish_stmt_generation): Update
1158 virtual SSA form.
1159
00cf115c 11602012-08-23 Jakub Jelinek <jakub@redhat.com>
1161
1162 * tree.c (copy_node_stat): Clear DECL_STRUCT_FUNCTION.
1163
fde3b594 11642012-08-23 Mingjie Xing <mingjie.xing@gmail.com>
1165
1166 * doc/gty.texi: Fix typo.
1167
cf230d5d 11682012-08-23 Richard Guenther <rguenther@suse.de>
1169
1170 * tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands.
1171 (find_uses_to_rename_use): Likewise.
1172 (find_uses_to_rename_bb): Likewise.
1173 (find_uses_to_rename_stmt): Walk over all operands.
1174
be3ab97a 11752012-08-22 Oleg Endo <olegendo@gcc.gnu.org>
1176
1177 PR target/54089
1178 * config/sh/predicates (p27_rshift_count_operand,
1179 not_p27_rshift_count_operand): New predicates.
1180 * config/sh/sh.c (sh_ashlsi_clobbers_t_reg_p,
1181 sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p): Handle special
1182 case when shift amount is 31.
1183 (gen_ashift): Emit gen_shlr instead of gen_lshrsi3_m.
1184 * config/sh/sh.md (ashlsi3_d): Set type to 'dyn_shift' instead
1185 of 'arith'.
1186 (ashlsi_c): Rename to shll. Adapt calls to gen_ashlsi_c throughout
1187 the file.
1188 (lshrsi3): Remove clobber from expander. Use shift_count_operand
1189 instead of nonmemory_operand predicate for second operand. Add
1190 handling of case lshrsi3_n_clobbers_t.
1191 (lshrsi3_k): Use p27_rshift_count_operand for second operand.
1192 (lshrsi3_d): Make insn_and_split. Split dynamic shift to constant
1193 shift sequences if beneficial.
1194 (lshrsi3_n): Make insn_and_split. Split constant shift sequence to
1195 dynamic shift if beneficial.
1196 (lshrsi3_n_clobbers_t): New insn_and_split.
1197 (lshrsi3_m): Delete.
1198
2808fda8 11992012-08-22 Steven Bosscher <steven@gcc.gnu.org>
1200
1201 * tracer.c (mark_bb_seen): Use SBITMAP_SIZE.
1202
1203 * alias.c (MAX_ALIAS_LOOP_PASSES): Update comment with rationale,
1204 or rather a lack thereof.
1205 (init_alias_analysis): Propagate the latest information across
1206 the CFG in topological order to propagate as far as possible in
1207 each iteration. Ignore debug insns.
1208
39166195 12092012-08-22 H.J. Lu <hongjiu.lu@intel.com>
1210
1211 * doc/invoke.texi: Document -mlong-double-64/-mlong-double-80.
1212
1213 * config/i386/i386.c (flag_opts): Add -mlong-double-64.
1214 (TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic.
1215
1216 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if
1217 TARGET_LONG_DOUBLE_64 is true.
1218 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro.
1219 (WIDEST_HARDWARE_FP_SIZE): Defined to 80.
1220
1221 * config/i386/i386.opt (mlong-double-80): New option.
1222 (mlong-double-64): Likewise.
1223
1224 * config/i386/i386-c.c (ix86_target_macros): Define
1225 __LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64.
1226
9e54d61a 12272012-08-22 H.J. Lu <hongjiu.lu@intel.com>
1228
1229 PR target/54347
1230 * config/i386/i386.c (ix86_split_to_parts): Replace
1231 REAL_VALUE_TO_TARGET_LONG_DOUBLE with real_to_target.
1232
7be1c03f 12332012-08-22 Richard Guenther <rguenther@suse.de>
1234
1235 * tree-vectorizer.c (vectorize_loops): Do not call
1236 mark_virtual_operands_for_renaming.
1237 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
1238 Do not update SSA form here.
1239
8cf61389 12402012-08-22 Dodji Seketeli <dodji@redhat.com>
1241
1242 * tree.h (TREE_NOTHROW): Use the base.nothrow_flag.
1243
297a2110 12442012-08-22 Richard Guenther <rguenther@suse.de>
1245
1246 PR tree-optimization/46590
1247 * tree-ssa-alias.h (get_continuation_for_phi): Add alias query
1248 counter output argument.
1249 (walk_non_aliased_vuses): Add alias query counter argument
1250 to the walker callback.
1251 * tree-ssa-alias.c (maybe_skip_until): Add alias query counter
1252 output argument and count alias queries.
1253 (get_continuation_for_phi_1): Likewise.
1254 (get_continuation_for_phi): Likewise.
1255 (walk_non_aliased_vuses): Add alias query counter argument
1256 to the walker callback and allow it to abort the walk by
1257 returning -1.
1258 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
1259 * tree-ssa-sccvn.c (vn_reference_lookup_2): Add alias query
1260 counter parmeter, abort walk if that is bigger than
1261 --param sccvn-max-alias-queries-per-access.
1262 * params.def (sccvn-max-alias-queries-per-access): New param.
1263 * doc/invoke.texi (sccvn-max-alias-queries-per-access): Document.
1264
88536563 12652012-08-22 Richard Guenther <rguenther@suse.de>
1266
1267 * tree-ssa-loop-ch.c (copy_loop_headers): Remove redundant checking.
1268 * tree-into-ssa.c (initialize_flags_in_bb): Use gcc_checking_assert
1269 instead of gcc_assert.
1270 (mark_block_for_update): Likewise.
1271 (add_new_name_mapping): Likewise.
1272 (mark_def_sites): Likewise.
1273 (insert_phi_nodes_for): Likewise.
1274 (rewrite_debug_stmt_uses): Likewise.
1275 (rewrite_stmt): Likewise.
1276 (maybe_register_def): Likewise.
1277 (rewrite_update_phi_arguments): Likewise.
1278 (rewrite_update_enter_block): Likewise.
1279 (mark_def_interesting): Likewise.
1280 (prepare_def_site_for): Likewise.
1281 (insert_updated_phi_nodes_for): Likewise.
1282
13b31e0b 12832012-08-22 Jakub Jelinek <jakub@redhat.com>
1284
1285 * tree-vect-loop.c (vect_transform_loop): Initialize
1286 check_profitability to false.
1287
1288 * tree-predcom.c (try_combine_chains): Free the worklist vector
1289 at the end.
1290
b7c599a6 12912012-08-22 Marc Glisse <marc.glisse@inria.fr>
1292
1293 PR tree-optimization/54317
1294 * tree-vrp.c (extract_range_from_binary_expr_1): Test for
1295 double_int overflow.
1296 Remove dead tests.
1297
706567b8 12982012-08-22 Jakub Jelinek <jakub@redhat.com>
1299
1300 * tree-vrp.c (find_assert_locations): Skip also edges
1301 from the entry block.
1302
1303 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Call
1304 free_stmt_vec_info on orig_cond after gsi_removing it.
1305 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Always
1306 free body_cost_vec vector.
1307 (vect_analyze_data_refs): If gather is unsuccessful,
1308 free_data_ref (dr).
1309 * tree-inline.c (tree_function_versioning): Free
1310 old_transforms_to_apply vector.
1311
83fadd66 13122012-08-22 Steven Bosscher <steven@gcc.gnu.org>
1313
1314 * tree-ssa-coalesce.c (struct ssa_conflicts_d): Make contents
1315 of this a VEC and add a bitmap obstack.
1316 (ssa_conflicts_new): Allocate the obstack and grow the VEC cleared
1317 to the right size.
1318 (ssa_conflicts_delete): Free the VEC and release the obstack.
1319 (ssa_conflicts_test_p, ssa_conflicts_test_p, ssa_conflicts_add_one,
1320 ssa_conflicts_merge, ssa_conflicts_dump): Update for above changes.
1321 (truct live_track_d): Add another bitmap obstack here.
1322 (new_live_track): Initialize it and use it for all bitmaps.
1323 (delete_live_track): Don't free the bitmaps one at a time, just
1324 release the obstack.
1325 (create_outofssa_var_map): Fix to conform to GCC code style rules.
1326
4ead5e30 13272012-08-21 Nathan Froyd <froydnj@gcc.gnu.org>
1328
1329 * config/m32c/constraints.md: New file.
1330 * config/m32c/t-m32c (MD_FILES): Add constraints.
1331 * config/m32c/m32c-protos.h (m32c_const_ok_for_constraint_p): Delete.
1332 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
1333 (m32c_reg_class_from_constraint): Delete.
1334 (m32c_extra_constraint_p, m32c_extra_constraint_p2): Delete.
1335 (m32c_matches_constraint_p): Declare.
1336 * config/m32c/m32c.h (CONSTRAINT_LEN): Delete.
1337 (REG_CLASS_FROM_CONSTRAINT): Delete.
1338 (CONST_OK_FOR_CONSTRAINT_P): Delete.
1339 (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Delete.
1340 (EXTRA_CONSTRAINT_STR): Delete.
1341 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Delete.
1342 * config/m32c/m32c.c: Include tm-constrs.h
1343 (m32c_reg_class_from_constraint): Delete.
1344 (m32c_const_ok_for_constraint_p): Delete.
1345 (m32c_extra_constraint_p2): Rename to...
1346 (m32c_matches_constraint_p): ...this. Make it return bool. Tweak
1347 formatting.
1348 (m32c_extra_constraint_p): Delete.
1349 (m32c_extra_address_constraint, m32c_extra_memory_constraint): Delete.
1350 (m32c_split_move): Use satisfies_constraint_Ss.
41b920d6 1351 * config/m32c/predicates.md (memsym_operand): Use
4ead5e30 1352 satisfies_constraint_Si.
1353 (memimmed_operand): Use satisfies_constraint_Sp.
1354 (m32c_psi_scale, m32c_1bit8_operand): Use satisfies_constraint_Ilb.
1355 (m32c_1bit16_operand): Use satisfies_constraint_Ilw.
1356 (m32c_1mask8_operand): Use satisfies_constraint_ImB.
1357 (m32c_1mask16_operand): Use satisfies_constraint_Imw.
1358
4bbc0011 13592012-08-21 Nathan Froyd <froydnj@gcc.gnu.org>
1360
1361 * config/mep/mep.h (REG_CLASS_FROM_CONSTRAINT): Delete.
1362 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1363 (CONSTRAINT_LEN, EXTRA_CONSTRAINT): Delete.
1364 * config/mep/mep.c (mep_reg_class_from_constraint): Delete.
1365 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
1366 * config/mep/mep-protos.h (mep_reg_class_from_constraint): Delete.
1367 (mep_const_ok_for_letter_p, mep_extra_constraint): Delete.
1368
9483cc0f 13692012-08-21 Oleg Endo <olegendo@gcc.gnu.org>
1370
1371 * config/sh/sh.md (cmpeqdi_t, cmpgtdi_t, cmpgedi_t, cmpgeudi_t,
1372 cmpgtudi_t, *movsicc_t_false, *movsicc_t_true, divsi_inv20, negsi_cond,
1373 truncdihi2, ic_invalidate_line_i, ic_invalidate_line_sh4a,
1374 ic_invalidate_line_media, movdf_i4, calli_pcrel, call_valuei,
1375 call_valuei_pcrel, sibcalli_pcrel, sibcall_compact,
1376 sibcall_valuei_pcrel, sibcall_value_compact, casesi_worker_1,
1377 casesi_worker_2, bandreg_m2a, borreg_m2a, bxorreg_m2a, sp_switch_1,
1378 sp_switch_2, stack_protect_set_si, stack_protect_set_si_media,
1379 stack_protect_set_di_media, stack_protect_test_si,
1380 stack_protect_test_si_media, stack_protect_test_di_media): Convert to
1381 multi-line asm output strings.
1382 (divsi_inv_qitable, divsi_inv_hitable): Use single-alternative asm
1383 output.
41b920d6 1384 (*andsi3_bclr, rotldi3_mextr, rotrdi3_mextr, calli,
1385 call_valuei_tbr_rel, movml_push_banked, movml_pop_banked, bclr_m2a,
1386 bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a, bldsign_m2a,
1387 bld_reg, *bld_regqi, band_m2a, bor_m2a, bxor_m2a, mextr_rl, *mextr_lr):
1388 Use tab char instead of '\\t'.
9483cc0f 1389 (iordi3): Use braced string.
1390 (*movsi_pop): Use tab chars instead of spaces.
1391
765a7ba3 13922012-08-21 Oleg Endo <olegendo@gcc.gnu.org>
1393
1394 PR target/39423
41b920d6 1395 * config/sh/sh.md (*movhi_index_disp): Add support for SH2A
1396 movu.w insn.
765a7ba3 1397
25d2985a 13982012-08-21 H.J. Lu <hongjiu.lu@intel.com>
1399
1400 PR middle-end/54332
1401 * df-scan.c (df_bb_verify): Restore df_free_collection_rec call
1402 inside the insn traversal loop.
1403
1404 * vec.h (vec_reserve): Remove the stack allocation check.
1405
496ec2ad 14062012-08-21 Marc Glisse <marc.glisse@inria.fr>
1407
1408 * fold-const.c (fold_ternary_loc): Detect identity permutations.
1409 Canonicalize permutations more.
1410 * tree-ssa-forwprop.c (is_combined_permutation_identity): New function.
1411 (simplify_permutation): Likewise.
1412 (ssa_forward_propagate_and_combine): Call it.
1413
78d53e33 14142012-08-21 Richard Guenther <rguenther@suse.de>
1415
1416 * tree-ssa-loop-im.c (tree_ssa_lim_finalize): Properly free
1417 the affine expansion cache.
1418 * tree-ssa-dom.c (free_expr_hash_elt_contents): New function,
1419 split out from ...
1420 (free_expr_hash_elt): ... this one.
1421 (record_cond): Properly free a not needed hashtable element.
1422 (lookup_avail_expr): Likewise.
1423 * tree-into-ssa.c (init_ssa_renamer): Specify a free function
1424 for the var_infos hashtable.
1425 (update_ssa): Likewise.
1426
4d039f23 14272012-08-21 Richard Guenther <rguenther@suse.de>
1428
1429 * alloc-pool.c (pool_alloc): Fix valgrind annotation.
1430 * tree.h: Fix typo and complete flags documentation.
1431
87d8f7b6 14322012-08-21 Richard Guenther <rguenther@suse.de>
1433
1434 * tree.h (struct tree_base): Add union to make it possible to
1435 re-use the upper 4 bytes for tree codes that do not need as
1436 many flags as others. Move visited and default_def_flag to
1437 common bits section in exchange for saturating_flag and
1438 unsigned_flag. Add SSA name version and tree vec length
1439 fields here.
1440 (struct tree_vec): Remove length field here.
1441 (struct tree_ssa_name): Remove version field here.
1442
7c07aa3d 14432012-08-20 Jan Hubicka <jh@suse.cz>
1444
1445 PR fortran/48636
87d8f7b6 1446 * ipa-inline.c (want_inline_small_function_p): Take loop_iterations
1447 hint.
7c07aa3d 1448 (edge_badness): Likewise.
1449 * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations.
1450 (inline_summary): Add loop_iterations.
1451 * ipa-inline-analysis.c: Include tree-scalar-evolution.h.
1452 (dump_inline_hints): Dump loop_iterations.
1453 (reset_inline_summary): Free loop_iterations.
1454 (inline_node_duplication_hook): Update loop_iterations.
1455 (dump_inline_summary): Dump loop_iterations.
1456 (will_be_nonconstant_expr_predicate): New function.
1457 (estimate_function_body_sizes): Analyze loops.
1458 (estimate_node_size_and_time): Set hint loop_iterations.
1459 (inline_merge_summary): Merge loop iterations.
1460 (inline_read_section): Stream in loop_iterations.
1461 (inline_write_summary): Stream out loop_iterations.
1462
77284979 14632012-08-20 Florian Weimer <fweimer@redhat.com>
1464
1465 PR c++/19351
1466 * call.c (build_operator_new_call): Add size_check argument and
1467 evaluate it.
1468 * cp-tree.h (build_operator_new_call): Adjust declaration.
1469 * init.c (build_new_1): Compute array size check and apply it.
1470
8cec7a6e 14712012-08-20 Oleg Endo <olegendo@gcc.gnu.org>
1472
edd51f52 1473 PR target/54089
8cec7a6e 1474 * config/sh/sh.md (rotcr, *rotcr, shar, shlr): New insns and splits.
1475 (ashrdi3_k, lshrdi3_k): Rewrite as insn_and_split.
1476 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p): New function.
1477 * config/sh/sh-protos.h (sh_lshrsi_clobbers_t_reg_p): Declare it.
1478
ebbd32d2 14792012-08-20 Oleg Endo <olegendo@gcc.gnu.org>
1480
1481 PR target/51244
1482 * config/sh/sh.md (*cset_zero): New insns.
1483
2dd133d8 14842012-08-20 Mark Wielaard <mjw@redhat.com>
1485
1486 * dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
1487 * dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
1488 (add_AT_low_high_pc): New function.
1489 (AT_lbl): Handle dw_val_class_high_pc.
1490 (print_die): Likewise.
1491 (attr_checksum): Likewise.
1492 (attr_checksum_ordered): Likewise.
1493 (same_dw_val_p): Likewise.
1494 (size_of_die): Likewise.
1495 (value_format): Likewise.
1496 (output_die): Likewise.
1497 (gen_subprogram_die): Use add_AT_low_high_pc.
1498 (add_high_low_attributes): Likewise.
1499 (dwarf2out_finish): Likewise.
1500
29b2949c 15012012-08-20 Jakub Jelinek <jakub@redhat.com>
1502
1503 PR rtl-optimization/54294
1504 * fwprop.c (all_uses_available_at): Ignore debug insns in between
1505 def_insn and target_insn when checking whether the shortcut is
1506 possible.
1507
4a65e405 15082012-08-20 Eric Botcazou <ebotcazou@adacore.com>
1509
1510 * config/sparc/sparc.h (MAX_FIXED_MODE_SIZE): Define.
1511
35215227 15122012-08-20 Patrick Marlier <patrick.marlier@gmail.com>
1513
1514 PR middle-end/53992
1515 * omp-low.c (lower_omp_1): Handle GIMPLE_TRANSACTION.
1516
f314299c 15172012-08-20 Richard Earnshaw <rearnsha@arm.com>
1518
1519 PR tree-ssa/54295
1520 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Delete rhs_code
1521 declaration and setter.
1522
71dbd910 15232012-08-20 Richard Earnshaw <rearnsha@arm.com>
1524
1525 PR tree-ssa/54295
1526 * tree-ssa-math-opts.c (widening_mult_conversion_strippable_p):
1527 New function.
1528 (is_widening_mult_rhs_p): Use it.
1529
e1ab5f13 15302012-08-20 Joseph Myers <joseph@codesourcery.com>
1531
1532 * configure.ac (ffs): Check for declaration.
1533 * configure, config.in: Regenerate.
1534
0dc262e0 15352012-08-20 Richard Guenther <rguenther@suse.de>
1536
1537 * tree-flow.h (register_new_name_mapping): Remove.
1538 * tree-into-ssa.c (register_new_name_mapping): Likewise.
1539 (add_new_name_mapping): Do not push/pop timevar here.
1540 (create_new_def_for): Instead do it here. Initialize
1541 update-ssa here, handle a NULL def.
1542 * tree-vrp.c (build_assert_expr_for): Use create_new_def_for.
1543
1a06b503 15442012-08-20 Richard Guenther <rguenther@suse.de>
1545
1546 PR tree-optimization/54327
1547 * gimple-fold.c (get_maxval_strlen): Do not walk use-def chains
1548 if the use is registered for SSA update.
1549
0adffe78 15502012-08-20 Jakub Jelinek <jakub@redhat.com>
1551
1552 PR tree-optimization/54321
1553 * tree-ssa-forwprop.c (simplify_builtin_call): Pass 0 instead of 1
1554 as second argument to tree_low_cst call on val2.
1555
5e958ef8 15562012-08-20 Richard Guenther <rguenther@suse.de>
1557
1558 * gimple.h (gimple_statement_base): Annotate with GTY chain_next.
1559
6591efde 15602012-08-20 Richard Guenther <rguenther@suse.de>
1561
1562 PR bootstrap/54326
1563 * genoutput.c (note_constraint): Properly use CONST_CAST.
1564
e1426042 15652012-08-19 Nick Clifton <nickc@redhat.com>
1566
1567 PR target/54306
1568 * config/arm/mmintrin.h: Remove spurious #endif.
1569
506989a4 15702012-08-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1571
81eb1a2d 1572 * config/avr/avr-log.c (avr_log_vadump): Properly use
1573 int-promoted enum values.
1574 * config/avr/avr.h (struct mcu_type_s): Change `arch' from
1575 int to enum avr_arch.
1576 * config/avr/gen-avr-mmcu-texi.c (main): Use correct initializer.
506989a4 1577
eb7c606e 15782012-08-18 Jan Hubicka <jh@suse.cz>
1579
1580 PR lto/45375
1581 * ipa-inline.c (want_inline_small_function_p): Bypass
1582 inline limits for hinted functions.
1583 (edge_badness): Dump hints; decrease badness for hinted funcitons.
1584 * ipa-inline.h (enum inline_hints_vals): New enum.
1585 (inline_hints): New type.
1586 (edge_growth_cache_entry): Add hints.
1587 (dump_inline_summary): Update.
1588 (dump_inline_hints): Declare.
1589 (do_estimate_edge_hints): Declare.
1590 (estimate_edge_hints): New inline function.
1591 (reset_edge_growth_cache): Update.
1592 * predict.c (cgraph_maybe_hot_edge_p): Do not ice on indirect edges.
1593 * ipa-inline-analysis.c (dump_inline_hints): New function.
1594 (estimate_edge_devirt_benefit): Return true when function should be
1595 hinted.
1596 (estimate_calls_size_and_time): New hints argument; set it when
1597 devritualization happens.
1598 (estimate_node_size_and_time): New hints argument.
1599 (do_estimate_edge_time): Cache hints.
41b920d6 1600 (do_estimate_edge_growth): Update.
eb7c606e 1601 (do_estimate_edge_hints): New function
1602
4105320e 16032012-08-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1604
1605 PR middle-end/53823
1606 * expmed.c (expand_mult): Skip synth_mult for negative coefficients
1607 if the mode is larger than a wide int and it is too costly to multiply
1608 by a positive multiplier and negate the result.
1609
a353bc75 16102012-08-18 Steven Bosscher <steven@gcc.gnu.org>
1611
1612 * sparseset.c (sparseset_alloc): Use non-clearing allocation. Tell
1613 valgrind not to worry about reading from unitialized memory.
1614
8080ed93 16152012-08-18 Steven Bosscher <steven@gcc.gnu.org>
1616
1617 PR middle-end/54313
1618 * dse.c (dse_step7): Don't free kill_on_calls bitmap, it is
1619 freed when its obstack is release.
1620
d01dddf9 16212012-08-18 Andrew Pinski <pinskia@gmail.com>
1622
1623 * alloc-pool.c (pool_alloc): Add valgrind markers.
1624 (pool_free): Likewise.
1625
dfc0804c 16262012-08-17 Walter Lee <walt@tilera.com>
1627
1628 * config/tilegx/feedback.h (FEEDBACK_ENTER_EXPLICIT): Define.
1629 (FEEDBACK_ENTER): Define.
1630 (FEEDBACK_REENTER): Define.
1631 (FEEDBACK_ENTRY): Define.
1632 * config/tilepro/feedback.h: (FEEDBACK_ENTER_EXPLICIT): Define.
1633 (FEEDBACK_ENTER): Define.
1634 (FEEDBACK_REENTER): Define.
1635 (FEEDBACK_ENTRY): Define.
1636
ed66705b 16372012-08-17 H.J. Lu <hongjiu.lu@intel.com>
1638 Gary Funck <gary@intrepid.com>
1639
1640 PR target/20020
1641 * config/i386/i386.c (ix86_member_type_forces_blk): New function.
1642 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
1643
1644 * config/i386/i386.h (MAX_FIXED_MODE_SIZE): New macro.
1645
b6a16d52 16462012-08-17 Marc Glisse <marc.glisse@inria.fr>
1647
1648 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
1649 a concatenation.
1650
f91ed644 16512012-08-17 H.J. Lu <hongjiu.lu@intel.com>
1652
1653 * stor-layout.c (compute_record_mode): Replace
1654 MEMBER_TYPE_FORCES_BLK with targetm.member_type_forces_blk.
1655 (layout_type): Likewise.
1656
1657 * system.h: Poison MEMBER_TYPE_FORCES_BLK.
1658
1659 * target.def (member_type_forces_blk): New target hook.
1660
1661 * targhooks.c (default_member_type_forces_blk): New.
1662 * targhooks.h (default_member_type_forces_blk): Likewise.
1663
1664 * doc/tm.texi.in (MEMBER_TYPE_FORCES_BLK): Removed.
1665 (TARGET_MEMBER_TYPE_FORCES_BLK): New hook.
1666 * doc/tm.texi: Regenerated.
1667
1668 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Removed.
1669
41b920d6 1670 * config/ia64/ia64.c (ia64_member_type_forces_blk): New function.
f91ed644 1671 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
1672
41b920d6 1673 * config/rs6000/rs6000.c (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
f91ed644 1674 (rs6000_member_type_forces_blk): New function.
1675
1676 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Removed.
1677
41b920d6 1678 * config/xtensa/xtensa.c (xtensa_member_type_forces_blk): New function.
f91ed644 1679 (TARGET_MEMBER_TYPE_FORCES_BLK): New macro.
1680
1681 * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Removed.
1682
4b9beb88 16832012-08-17 Diego Novillo <dnovillo@google.com>
1684
1685 PR bootstrap/54281
1686 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
1687 * config.in: Regenerate.
1688 * configure: Regenerate.
4a65e405 1689 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4b9beb88 1690
93b67a86 16912012-08-17 Richard Guenther <rguenther@suse.de>
1692
1693 * bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
1694 (struct bitmap_head_def): GTY skip current field.
1695
4fb07d00 16962012-08-17 Steven Bosscher <steven@gcc.gnu.org>
1697
1698 PR middle-end/54146
1699 * tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
1700 (memref_free): Don't free the bitmaps individually here.
1701 (mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
1702 (analyze_memory_references): Likewise.
1703 (tree_ssa_lim_initialize): Initialize the new bitmap obstack.
1704 (tree_ssa_lim_finalize): Release it.
1705 * dse.c (dse_bitmap_obstack): New bitmap obstack.
1706 (dse_obstack): New obstack.
1707 (get_group_info): Allocate the bitmaps on the new bitmap obstack.
1708 (dse_step0): Allocate the scratch bitmap on reg_obstack. Initialize
1709 the new bitmap obstack and normal obstack. Use XNEWVEC for bb_table.
1710 (record_store): Allocate regs_set on reg_obstack.
1711 (dse_step1): Allocate regs_live on reg_obstack.
1712 (dse_step2_init): Allocate offset_map_n and offset_map_p on the new
1713 obstack.
1714 (dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
1715 (dse_step3): Likewise.
1716 (dse_confluence_0): Likewise.
1717 (dse_confluence_n): Likewise.
1718 (dse_transfer_function): Likewise.
1719 (dse_step7): Destroy the new obstacks, and everything allocated on
1720 them, in one big sweep.
1721 (rest_of_handle_dse): Update.
1722 * cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
1723 (add_stack_var_conflict): Allocate bitmaps on it.
1724 (add_scope_conflicts_1): Likewise.
1725 (add_scope_conflicts): Likewise.
1726 (update_alias_info_with_stack_vars): Likewise.
1727 (init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
1728 Initialize the new bitmap obstack.
1729 (fini_vars_expansion): Release it.
1730 (estimated_stack_frame_size): Use init_vars_expansion to set things up
1731 and always clean up at the end.
1732 (expand_used_vars): Do the TREE_USED trickery here. Always call
1733 fini_vars_expansion.
1734 * tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
1735 arrays of bitmap_head to avoid one indirection per bitmap access.
1736 (live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
1737 make_live_on_entry): Update.
1738 * tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
1739 (liveness_bitmap_obstack): New bitmap obstack.
1740 (remove_unused_locals): Use it to allocate all bitmaps on. Update
1741 for livein/liveout changes in tree-ssa-live.h.
1742 (delete_tree_live_info): Release the bitmap obstack.
1743 (loe_visit_block, live_worklist, set_var_live_on_entry,
1744 calculate_live_on_exit, dump_live_info): Update.
1745 (calculate_live_ranges): Initialize the bitmap.
1746 * tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
1747 (new_temp_expr_table): Allocate bitmap on it.
1748 (make_dependent_on_partition, add_to_partition_kill_list,
1749 add_dependence, process_replaceable): Likewise.
1750 (find_replaceable_exprs): Initialize and release the new obstack here.
1751 * df-problems.c (df_lr_add_problem): Allocate persistent bitmap
1752 for out_of_date_transfer_functions on df_bitmap_obstack.
1753 (df_live_add_problem): Likewise.
1754 (df_chain_add_problem): Likewise.
1755 (df_word_lr_add_problem): Likewise.
1756
9d436fdd 17572012-08-17 Nick Clifton <nickc@redhat.com>
1758
41b920d6 1759 * config/fr30/fr30.md (cbranchsi4): Remove mode from comparison.
010e37ad 1760 (branch_true): Likewise.
1761 (branch_false): Likewise.
1762
41b920d6 1763 * config/mcore/mcore.md (cbranchsi4): Remove mode from comparison.
86df38a6 1764
91651d9b 1765 * config/iq2000/iq2000.md (cbranchsi4): Remove mode from
1766 comparison and label.
1767 (branch_zero): Likewise.
1768 (branch_zero_inverted): Likewise.
1769 (branch_equality): Likewise.
1770 (branch_equality_inverted): Likewise.
41b920d6 1771 (extend-and-compare): Disable until reload issues can be resolved.
91651d9b 1772 * config/iq2000/iq2000.c (gen_conditional_branch): Use VOIDmode
1773 for comparison.
1774 (iq2000_function_arg_advance): Remove CONST_CAST2.
1775
9d436fdd 1776 * config/mep/t-mep (mep-pragma.o): Use $(COMPILER) to compile
1777 mep-pragma.c.
1778
cba35428 17792012-08-17 Georg-Johann Lay <avr@gjlay.de>
1780
1781 * config/avr/t-avr (gen-avr-mmcu-texi): Use $(CC) to compile
1782 gen-avr-mmcu-texi.c.
1783
c24d855d 17842012-08-17 Richard Earnshaw <rearnsha@arm.com>
1785
1786 * arm.md (arm_addsi3): New variant for Thumb2 16-bit ADD instruction.
1787 * arm.c (thumb2_reorg): Don't convert an ADD instruction that's
1788 already 16 bits.
1789
494bbaae 17902012-08-17 Richard Guenther <rguenther@suse.de>
1791
1792 * hash-table.h (class hash_table): Use a descriptor template
41b920d6 1793 argument instead of decomposed element type and support functions.
494bbaae 1794 (struct pointer_hash): New generic typed pointer-hash.
1795 (struct typed_free_remove, struct typed_noop_remove): Generic
1796 hash_table support pieces.
41b920d6 1797 * coverage.c (struct counts_entry): Add hash_table support members.
494bbaae 1798 * tree-ssa-ccp.c (gimple_htab): Use pointer_hash.
1799 * tree-ssa-coalesce.c (struct ssa_name_var_hash): New generic
1800 SSA name by SSA_NAME_VAR hash.
1801 (coalesce_ssa_name): Use it.
1802 * tree-ssa-pre.c (struct pre_expr_d): Add hash_table support.
1803 (expression_to_id): Adjust.
1804 (struct expr_pred_trans_d): Add hash_table support.
1805 (phi_translate_table): Adjust.
1806 (phi_trans_lookup): Likewise.
1807 (phi_trans_add): Likewise.
1808 (do_regular_insertion): Likewise.
41b920d6 1809 * tree-ssa-tail-merge.c (struct same_succ_def): Add hash_table support.
494bbaae 1810 (same_succ_htab): Adjust.
1811 (find_same_succ_bb): Likewise.
1812 (find_same_succ): Likewise.
1813 (update_worklist): Likewise.
1814 * tree-ssa-threadupdate.c (struct redirection_data): Add hash_table
1815 support.
1816 (redirection_data): Adjust.
1817
a4c52080 18182012-08-17 Richard Guenther <rguenther@suse.de>
1819
1820 * params.def (integer-share-limit): Decrease from 256 to 251,
1821 add rationale.
1822
9f793cdf 18232012-08-17 Richard Guenther <rguenther@suse.de>
1824
1825 * tree-sra.c (modify_function): Free redirect_callers vector.
1826 * ipa-split.c (split_function): Free args_to_pass vector.
1827 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Free
1828 body_cost_vec properly.
1829 (vect_enhance_data_refs_alignment): Likewise.
1830 * tree-vect-stmts.c (vectorizable_operation): Do not pre-allocate
1831 vec_oprnds.
1832 (new_stmt_vec_info): Do not pre-allocate STMT_VINFO_SAME_ALIGN_REFS.
1833 * tree-vect-slp.c (vect_free_slp_instance): Free the instance.
1834 (vect_analyze_slp_instance): Free everything.
1835 (destroy_bb_vec_info): Free the SLP instances.
1836
7f7513a0 18372012-08-17 Iain Sandoe <iain@codesourcery.com>
1838
1839 * config/rs6000/rs6000.c (macho_branch_islands): Adjust for changes
1840 to vec.h.
1841
f003f5dc 18422012-08-17 Jakub Jelinek <jakub@redhat.com>
1843
1844 * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document.
1845
a36f64ce 18462012-08-16 Sandra Loosemore <sandra@codesourcery.com>
1847
1848 * config/mips/mips-dsp.md (mips_dpau_h_qbl, mips_dpau_h_qbr)
1849 (mips_dpsu_h_qbl, mips_dpsu_h_qbr, mips_dpaq_s_w_ph)
1850 (mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph, mips_dpaq_sa_l_w)
1851 (mips_dpsq_sa_l_w, mips_maq_s_w_phl, mips_maq_s_w_phr)
1852 (mips_maq_sa_w_phl, mips_maq_sa_w_phr): Add accum_in attribute.
1853
40b94d3c 18542012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
1855
1856 PR target/54236
1857 * config/sh/sh.md (addc): Add commutative modifier.
1858 (*addc, *minus_plus_one, *subc, *negc): New insns and splits.
1859
d82b0491 18602012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
1861
1862 PR target/39423
1863 * config/sh/sh.md (*movsi_index_disp, *movhi_index_disp): Handle
1864 potential T_REG clobber. Convert zero extending split to
1865 insn_and_split.
1866
53307d4b 18672012-08-16 Oleg Endo <olegendo@gcc.gnu.org>
1868
1869 PR target/54089
1870 * config/sh/sh.md (ashlsi3_d): Do not split if it would result
1871 in a T_REG clobber. Correct comment.
1872 (ashlsi3_n): Correct comment.
1873
18742012-08-16 Hans-Peter Nilsson <hp@axis.com>
f1c6afdd 1875
1876 PR middle-end/54261
1877 * optabs.c (expand_atomic_fetch_op): Save and restore code when
1878 retrying after failed attempt.
1879
4d1b6005 18802012-08-16 Yuri Rumyantsev <ysrumyan@gmail.com>
1881
1882 * config/i386/i386-protos.h (ix86_split_lea_for_addr) : Add
1883 additional argument.
1884 * config/i386/i386.md (ix86_split_lea_for_addr) : Add
1885 additional argument curr_insn.
1886 * config/i386/i386.c (ix86_split_lea_for_addr): Load base or index
1887 register first, depending on their defintion distances.
1888 (ix86_lea_outperforms): Prefer LEA only if split cost exceeds
1889 AGU stall.
1890 (find_nearest_reg-def): New function. Find register with
1891 nearest definition.
1892
1fea9dc6 18932012-08-16 Walter Lee <walt@tilera.com>
1894
1895 * config.gcc (tilegx-*-linux*): Add feedback.h.
1896 (tilepro-*-linux*): Likewise.
1897 * config/tilegx/feedback.h: New file.
1898 * config/tilepro/feedback.h: New file.
1899
cba35428 19002012-08-16 Diego Novillo <dnovillo@google.com>
2a02178f 1901
1902 Revert
1903
1904 PR bootstrap/54281
1905 * double-int.h: Move including of gmp.h ...
1906 * system.h: ... here.
1907 * realmpfr.h: Do not include gmp.h.
1908 * tree-ssa-loop-niter.c: Do not include gmp.h.
1909
180aaed7 19102012-08-16 Segher Boessenkool <segher@kernel.crashing.org>
1911
1912 * config/rs6000/darwin.h (TARGET_IEEE_QUAD): Fix comment.
1913
83b709f2 19142012-08-16 Richard Guenther <rguenther@suse.de>
1915
1916 PR middle-end/54146
1917 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Free the
1918 exit vector.
1919 * ipa-pure-const.c (analyze_function): Use FOR_EACH_LOOP_BREAK.
1920 * cfgloop.h (FOR_EACH_LOOP_BREAK): Fix.
1921 * tree-ssa-structalias.c (handle_lhs_call): Properly free rhsc.
41b920d6 1922 * tree-into-ssa.c (get_ssa_name_ann): Allocate info only when needed.
83b709f2 1923 * tree-ssa-loop-im.c (analyze_memory_references): Adjust.
1924 (tree_ssa_lim_finalize): Free all mem_refs.
1925 * tree-ssa-sccvn.c (extract_and_process_scc_for_name): Free
1926 scc when bailing out.
1927 * modulo-sched.c (sms_schedule): Use FOR_EACH_LOOP_BREAK.
1928 * ira-build.c (loop_with_complex_edge_p): Free loop exit vector.
1929 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): Use
1930 FOR_EACH_LOOP_BREAK.
1931
f5d9dd2e 19322012-08-16 Diego Novillo <dnovillo@google.com>
1933
1934 PR bootstrap/54281
1935 * double-int.h: Move including of gmp.h ...
1936 * system.h: ... here.
1937 * realmpfr.h: Do not include gmp.h.
1938 * tree-ssa-loop-niter.c: Do not include gmp.h.
1939
d09bc815 19402012-08-16 Steven Bosscher <steven@gcc.gnu.org>
1941
1942 PR middle-end/54146
1943 * tree-flow.h (compute_global_livein): Remove prototype.
1944 * tree-into-ssa.c (compute_global_livein): Remove function.
1945 * tree-ssa-loop-manip.c: Include gimple-pretty-print.h.
1946 (find_sibling_superloop): New function.
1947 (compute_live_loop_exits): New function.
1948 (add_exit_phis_edge): Rename to add_exit_phi. Do not allow
1949 inserting a PHI in a block that is not a loop exit for VAR.
1950 Add dumping if TDF_DETAILS.
1951 (add_exit_phis_var): Rewrite.
1952 (add_exit_phis): Update.
1953 (get_loops_exits): Rewrite to return an array of per-loop exits
1954 rather than one bitmap with all loop exits.
1955 (find_uses_to_rename_bb): Ignore virtual PHI nodes.
1956 (rewrite_into_loop_closed_ssa): Update.
1957
95dcc8ad 19582012-08-16 Nick Clifton <nickc@redhat.com>
1959
bf8f3e51 1960 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Cast _ascii_bytes
1961 before passing it to ASM_OUTPUT_LIMITED_STRING.
1962
179ebaa7 1963 * config/bfin/bfin.c (hwloop_optimize): Fix use of VEC_last macro.
1964
95dcc8ad 1965 * config/avr/t-avr: Replace occurrences of $(CC) with $(COMPILER).
1966 * config/avr/avr.c (avr_legitimize_reload_address): Add casts
1967 for reload_type enums.
4d1b6005 1968 (DEF_BUILTIN): Cast the icode to enum insn_code.
95dcc8ad 1969
6869cd07 19702012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
1971
1972 * config/rs6000/aix43.h (ASM_CPU_SPEC): Use %(asm_default)
1973 instead of -mppc.
1974 * config/rs6000/aix51.h (ASM_CPU_SPEC): Ditto.
1975
4ff70f1c 19762012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
1977
1978 * config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
1979 (RS6000_CALL_GLUE): Adjust for single assembler syntax.
41b920d6 1980 * config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
1981 * config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
1982 * config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
1983 * config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto.
4ff70f1c 1984 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
1985 * config/rs6000/darwin.md (whole file): Adjust to single
1986 assembler syntax.
41b920d6 1987 * config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 1988 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
1989 * config/rs6000/dfp.md: (whole file): Adjust to single
1990 assembler syntax.
41b920d6 1991 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 1992 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
1993 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
1994 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
1995 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
41b920d6 1996 * config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK.
4ff70f1c 1997 * config/rs6000/rs6000-tables.opt: Regenerate.
1998 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete.
1999 (num_insns_constant_wide): Adjust comments.
2000 (whole file): Adjust to single assembler syntax.
2001 (output_cbranch): Adjust comment.
2002 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete.
2003 * config/rs6000/rs6000.md: (whole file): Adjust to single
2004 assembler syntax.
2005 * config/rs6000/rs6000.opt (mnew-mnemonics): Delete.
2006 (mold-mnemonics): Delete.
2007 * config/rs6000/spe.md: (whole file): Adjust to single
2008 assembler syntax.
2009 * config/rs6000/sync.md: (whole file): Adjust to single
2010 assembler syntax.
41b920d6 2011 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 2012 (ASM_OUTPUT_REG_PUSH): Adjust.
2013 (ASM_OUTPUT_REG_POP): Adjust.
41b920d6 2014 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 2015 * config/rs6000/vsx.md: (whole file): Adjust to single
2016 assembler syntax.
41b920d6 2017 * config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
4ff70f1c 2018 * doc/invoke.texi: Adjust documentation to reflect the
2019 removal of -mnew-mnemonics and -mold-mnemonics.
2020
34c34d94 20212012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
2022
2023 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
2024 Delete handling for -mno-powerpc and -mpowerpc.
2025 * config/rs6000/aix43.h (ASM_CPU_SPEC): Similar.
2026 (ASM_DEFAULT_SPEC): Use -mppc instead of -mcom.
2027 * config/rs6000/aix51.h (ASM_CPU_SPEC, ASM_DEFAULT_SPEC): Ditto.
2028 * config/rs6000/aix52.h (TARGET_DEFAULT): Delete MASK_POWERPC.
2029 * config/rs6000/aix53.h (TARGET_DEFAULT): Ditto.
2030 * config/rs6000/aix61.h (TARGET_DEFAULT): Ditto.
2031 * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto.
2032 * config/rs6000/darwin64.h (TARGET_DEFAULT): Ditto.
2033 * config/rs6000/default64.h (TARGET_DEFAULT): Ditto.
2034 * config/rs6000/driver-rs6000.c (asm_names): Delete handling
2035 for -mcpu=common and -mpowerpc.
2036 * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_POWERPC.
2037 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto.
2038 * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto.
2039 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto.
2040 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto.
2041 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING):
2042 Use RS6000_BTM_ALWAYS instead of RS6000_BTM_POWERPC.
41b920d6 2043 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
34c34d94 2044 (rs6000_cpu_cpp_builtins): Adjust.
2045 * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete MASK_POWERPC.
2046 (rs6000_builtin_mask_calculate): Adjust.
2047 (rs6000_emit_move): Delete code for ! TARGET_POWERPC.
2048 (rs6000_init_libfuncs): Ditto.
2049 (rs6000_output_function_prologue): Ditto.
2050 (rs6000_opt_masks): Delete MASK_POWERPC.
2051 (rs6000_builtin_mask_names): Delete RS6000_BTM_POWERPC.
41b920d6 2052 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete handling for -mpowerpc.
34c34d94 2053 (RS6000_BTM_POWERPC): Delete.
2054 (RS6000_BTM_COMMON): Delete RS6000_BTM_POWERPC.
2055 * config/rs6000/rs6000.md (extendqisi2 patterns): Adjust for
2056 TARGET_POWERPC always on.
2057 (extendqihi2 patterns): Similar.
2058 (various unnamed subtract patterns): Similar.
2059 (bswaphi2 patterns): Similar.
2060 (divmodsi4): Similar.
2061 (udiv<GPR:mode>3): Similar.
2062 (div<GPR:mode>3 patterns): Similar.
2063 (udivmodsi4): Similar.
2064 (mulhcall): Delete.
2065 (mullcall): Delete.
2066 (divss_call): Delete.
2067 (divus_call): Delete.
2068 (quoss_call): Delete.
2069 (quous_call): Delete.
2070 (insvsi patterns): Adjust.
2071 (addsf3 patterns): Adjust.
2072 (subsf3 patterns): Adjust.
2073 (mulsf3 patterns): Adjust.
2074 (divsf3 patterns): Adjust.
2075 (*fmasf4_fpr): Adjust.
2076 (*fmssf4_fpr): Adjust.
2077 (*nfmasf4_fpr): Adjust.
2078 (*nfmssf4_fpr): Adjust.
2079 (*floatunssidf2_internal): Adjust.
2080 (fix_trunc<SFDF:mode>si2_internal): Adjust.
2081 (fctiwz_<SFDF:mode>): Adjust.
2082 (mulsidi3 patterns): Adjust.
2083 (smulsi3_highpart patterns): Adjust.
2084 (umulsi3_highpart patterns): Adjust.
2085 (fix_trunctfsi2 patterns): Adjust.
2086 (prefetch): Adjust.
2087 * config/rs6000/rs6000.opt (mpowerpc): Replace by stub option.
2088 (mno-powerpc): Delete.
2089 * config/rs6000/sync.md (load_locked<ATOMIC:mode>): Adjust.
2090 (store_conditional<ATOMIC:mode>): Adjust.
2091 (atomic_compare_and_swap<ATOMIC:mode>): Adjust.
2092 (atomic_exchange<ATOMIC:mode>): Adjust.
2093 (atomic_<fetchop_name><ATOMIC:mode>): Adjust.
2094 (atomic_nand<ATOMIC:mode>): Adjust.
2095 (atomic_fetch_<fetchop_name><ATOMIC:mode>): Adjust.
2096 (atomic_fetch_nand<ATOMIC:mode>): Adjust.
2097 (atomic_<fetchop_name>_fetch<ATOMIC:mode>): Adjust.
2098 (atomic_nand_fetch<ATOMIC:mode>): Adjust.
2099 * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_POWERPC.
2100 * config/rs6000/sysv4le.h (TARGET_DEFAULT): Ditto.
2101 * config/rs6000/vxworks.h (TARGET_DEFAULT): Ditto.
2102 * doc/invoke.texi: Adjust documentation.
2103
21042012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
1144b872 2105
2106 * config/rs6000/rs6000.h (RS6000_BTM_ALWAYS): New.
2107
5c27d02f 21082012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
2109
2110 * config/rs6000/aix52.h (ASM_CPU_SPEC): Fix typo.
2111 * config/rs6000/aix53.h (ASM_CPU_SPEC): Ditto.
2112 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
2113 * config/rs6000/driver-rs6000.c (asm_names): Ditto.
2114
847e6693 21152012-08-15 Segher Boessenkool <segher@kernel.crashing.org>
2116
2117 PR target/54142
2118 * config/rs6000/driver-rs6000.c (asm_names): Use %(asm_default)
2119 instead of -mcom.
2120 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Ditto.
2121
d4566465 21222012-08-15 Sandra Loosemore <sandra@codesourcery.com>
2123 Maxim Kuvyrkov <maxim@codesourcery.com>
2124 Julian Brown <julian@codesourcery.com>
2125 MIPS Technologies, Inc.
2126
d4566465 2127 * config/mips/mips.md (dspmac, dspmacsat, accext, accmod, dspalu)
2128 (dspalusat): Add insn types.
2129 * config/mips/mips-dsp.md (add<DSPV:mode>3)
2130 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>)
2131 (sub<DSPV:mode>3, mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc)
2132 (mips_addwc, mips_modsub, mips_raddu_w_qb, mips_absq_s_<DSPQ:dspfmt2>)
2133 (mips_precrq_qb_ph, mips_precrq_ph_w, mips_precrq_rs_ph_w)
2134 (mips_precrqu_s_qb_ph, mips_preceq_w_phl, mips_preceq_w_phr)
2135 (mips_precequ_ph_qbl, mips_precequ_ph_qbr, mips_precequ_ph_qbla)
2136 (mips_precequ_ph_qbra, mips_preceu_ph_qbl, mips_preceu_ph_qbr)
2137 (mips_preceu_ph_qbla, mips_preceu_ph_qbra, mips_shll_<DSPV:dspfmt2>)
2138 (mips_shll_s_<DSPQ:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>, mips_shrl_qb)
2139 (mips_shra_ph, mips_shra_r_<DSPQ:dspfmt2>, mips_bitrev, mips_insv)
2140 (mips_repl_qb, mips_repl_ph)
2141 (mips_cmp<DSPV:dspfmt1_1>_eq_<DSPV:dspfmt2>)
2142 (mips_cmp<DSPV:dspfmt1_1>_lt_<DSPV:dspfmt2>)
2143 (mips_cmp<DSPV:dspfmt1_1>_le_<DSPV:dspfmt2>, mips_cmpgu_eq_qb)
2144 (mips_cmpgu_lt_qb, mips_cmpgu_le_qb, mips_pick_<DSPV:dspfmt2>)
2145 (mips_packrl_ph, mips_wrdsp, mips_rddsp): Change type to dspalu.
2146 (mips_dpau_h_qbl, mips_dpau_h_qbr, mips_dpsu_h_qbl, mips_dpsu_h_qbr)
2147 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph)
2148 (mips_maq_s_w_phl, mips_maq_s_w_phr, mips_maq_sa_w_phr): Set type to
2149 dspmac.
2150 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_sa_w_phl): Set type to
2151 dspmacsat.
2152 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w, mips_extp, mips_extpdp):
2153 Set type to accext.
2154 (mips_shilo, mips_mthlip): Set type to accmod.
2155 * config/mips/mips-dspr2.md (mips_absq_s_qb, mips_addu_s_ph)
2156 (mips_adduh_r_qb): Set type to dspalusat.
2157 (mips_addu_ph, mips_adduh_qb, mips_append, mips_balign)
2158 (mips_cmpgdu_eq_qb, mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb)
2159 (mips_precr_qb_ph, mips_precr_sra_ph_w, mips_precr_sra_r_ph_w)
2160 (mips_prepend, mips_shra_qb, mips_shra_r_qb, mips_shrl_ph)
2161 (mips_subu_ph, mips_subuh_qb, mips_subuh_r_qb, mips_addqh_ph)
2162 (mips_addqh_r_ph, mips_addqh_w, mips_addqh_r_w, mips_subqh_ph)
2163 (mips_subqh_r_ph, mips_subqh_w, mips_subqh_r_w): Set type to dspalu.
2164 (mips_dpa_w_ph, mips_dps_w_ph, mips_mulsa_w_ph, mips_dpax_w_ph)
2165 (mips_dpsx_w_ph, mips_dpaqx_s_w_ph, mips_dpsqx_s_w_ph): Set type to
2166 dspmac. Set accum_in attribute.
41b920d6 2167 (mips_subu_s_ph): Set type to dspalusat.
d4566465 2168 (mips_dpaqx_sa_w_ph, mips_dpsqx_sa_w_ph): Set type to dspmacsat.
2169 Set accum_in attribute.
2170 * config/mips/mips-protos.h (mips_dspalu_bypass_p): Add prototype.
2171 * config/mips/mips.c (dspalu_bypass_table): New.
2172 (mips_dspalu_bypass_p): New.
2173 * config/mips/24k.md (r24k_dsp_alu, r24k_dsp_mac, r24k_dsp_mac_sat)
2174 (r24k_dsp_acc_ext, r24k_dsp_acc_mod): New insn reservations.
2175 (r24k_int_mult, r24k_int_mthilo, r24k_dsp_mac, r24k_dsp_mac_sat)
2176 (r24k_dsp_acc_ext, r24k_dsp_acc_mod, r24k_dsp_alu): New bypasses.
2177 * config/mips/74k.md (r74k_dsp_alu, r74k_dsp_alu_sat, r74k_dsp_mac)
2178 (r74k_dsp_mac_sat, r74k_dsp_acc_ext, r74k_dsp_acc_mod): New insn
2179 reservations.
2180 (r74k_dsp_mac, r74k_dsp_mac_sat, r74k_int_mult, r74k_int_mul3)
2181 (r74k_dsp_mac, r74k_dsp_mac_sat): New bypasses.
2182
a7a0184d 21832012-08-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2184
2185 * config/spu/spu.c: Include "cfgloop.h".
2186 (spu_machine_dependent_reorg): Call loop_optimizer_init and
2187 loop_optimizer_finalize. Use bb_loop_depth instead of loop_depth.
2188 Directly compare loop_father values where appropriate.
2189 * config/spu/t-spu-elf (spu.o): Update dependencies.
2190
3d426abe 21912012-08-15 H.J. Lu <hongjiu.lu@intel.com>
2192
2193 * Makefile.in (tree-cfg.o): Also depend on $(TARGET_H).
2194
38304570 21952012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2196
2197 PR tree-optimization/54245
2198 * gimple-ssa-strength-reduction.c (legal_cast_p_1): New function.
2199 (legal_cast_p): Split out logic to legal_cast_p_1.
2200 (analyze_increments): Avoid introducing multiplies in smaller types.
2201
935611bc 22022012-08-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2203
2204 PR tree-optimization/54240
2205 * tree-ssa-phiopt.c (hoist_adjacent_loads): Correct test for
2206 existence of conditional move with given mode.
2207
eb7e53de 22082012-08-15 Richard Guenther <rguenther@suse.de>
2209
2210 * double-int.h (double_int::from_unsigned): Rename to ...
2211 (double_int::from_uhwi): ... this.
2212 (double_int::from_signed): Rename to ...
2213 (double_int::from_shwi): ... this.
2214 (double_int::to_signed): Rename to ...
2215 (double_int::to_shwi): ... this.
2216 (double_int::to_unsigned): Rename to ...
2217 (double_int::to_uhwi): ... this.
2218 (double_int::fits_unsigned): Rename to ...
2219 (double_int::fits_uhwi): ... this.
2220 (double_int::fits_signed): Rename to ...
2221 (double_int::fits_shwi): ... this.
2222 (double_int::fits): Rename to ...
2223 (double_int::fits_hwi): ... this.
2224 * double-int.c: Likewise.
2225
a66c9777 22262012-08-15 Steven Bosscher <steven@gcc.gnu.org>
2227
2228 * timevar.def (TV_VARPOOL, TV_WHOPR_WPA_LTRANS_EXEC, TV_LIFE,
2229 TV_LIFE_UPDATE, TV_DF_UREC, TV_INLINE_HEURISTICS,
2230 TV_TREE_LINEAR_TRANSFORM, TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI,
2231 TV_VPT, TV_LOCAL_ALLOC, TV_GLOBAL_ALLOC, TV_SEQABSTR): Remove.
2232 (TV_IPA_INLINING, TV_FLATTEN_INLINING, TV_EARLY_INLINING,
2233 TV_INLINE_PARAMETERS, TV_LOOP_INIT, TV_LOOP_FINI): New.
2234 * timevar.c (timevar_print): Make printing width of timevar names
2235 more flexible, but enforce maximum length.
2236 * ipa-inline.c (pass_early_inline): Use TV_EARLY_INLINING.
2237 (pass_ipa_inline): Use TV_IPA_INLINING.
2238 * ipa-inline-analysis.c (pass_inline_parameters): Use
2239 TV_INLINE_HEURISTICS.
2240 * tree-ssa-loop.c (pass_tree_loop_init): No timevar for wrapper pass.
2241 (pass_tree_loop_done): Likewise.
2242 * final.c (pass_shorten_branches): Use TV_SHORTEN_BRANCH.
2243 * loop-init.c (loop_optimizer_init): Push/pop TV_LOOP_INIT.
2244 (loop_optimizer_finalize): Push/pop TV_LOOP_FINI.
2245
8c619ffb 22462012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2247
41b920d6 2248 * config/arm/neon.md (neon_vaba<mode> VDQIW): Canonicalize operands.
8c619ffb 2249 (neon_vabal<mode> VDQIW): Likewise.
2250
17ae1a66 22512012-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2252
2253 PR target/54212
2254 * config/arm/neon.md (vec_set<mode>_internal VD,VQ): Do not
2255 mark as predicable. Adjust asm template.
2256 (vec_setv2di_internal): Likewise.
2257 (vec_extract<mode> VD, VQ): Likewise.
2258 (vec_extractv2di): Likewise.
2259 (neon_vget_lane<mode>_sext_internal VD, VQ): Likewise.
2260 (neon_vset_lane<mode>_sext_internal VD, VQ): Likewise.
2261 (neon_vdup_n<mode> VX, V32): Likewise.
2262 (neon_vdup_nv2di): Likewise.
2263
76e54383 22642012-08-14 Maxim Kuvyrkov <maxim@codesourcery.com>
2265
2266 * config/mips/mips.md (define_attr accum_in): New instruction
2267 attribute. Set it for imadd and fmadd patterns.
2268 * config/mips/mips.c (mips_linked_madd_p): Use accum_in to extract
2269 accumulator register.
2270
41b920d6 22712012-08-14 Diego Novillo <dnovillo@google.com>
2b15d2ba 2272
2273 Merge from cxx-conversion branch. Configury.
2274
2275 * configure.ac (CXX_FOR_BUILD): Define and substitute.
2276 (BUILD_CXXFLAGS): Define.
2277 Remove all handlers of ENABLE_BUILD_WITH_CXX.
2278 Force all build to be with C++.
2279 * Makefile.in (BUILD_CXXFLAGS): Use it.
2280 Remove all handlers of ENABLE_BUILD_WITH_CXX.
2281 * configure: Regenerate.
2282 * config.in: Regenerate.
2283 * doc/install.texi: Remove documentation for --enable-build-with-cxx
2284 and --enable-build-poststage1-with-cxx.
2285
41b920d6 22862012-08-14 Diego Novillo <dnovillo@google.com>
2b15d2ba 2287
2288 Merge from cxx-conversion branch. Re-implement VEC in C++.
2289
2290 * vec.c (vec_heap_free): Convert into a template function.
2291 (vec_gc_o_reserve_1): Make extern.
2292 (vec_gc_p_reserve): Remove.
2293 (vec_gc_p_reserve_exact): Remove.
2294 (vec_gc_o_reserve): Remove.
2295 (vec_gc_o_reserve_exact): Remove.
2296 (vec_heap_o_reserve_1): Make extern.
2297 (vec_heap_p_reserve): Remove.
2298 (vec_heap_p_reserve_exact): Remove.
2299 (vec_heap_o_reserve): Remove.
2300 (vec_heap_o_reserve_exact): Remove.
2301 (vec_stack_p_reserve): Remove.
2302 (vec_stack_p_reserve_exact): Remove.
41b920d6 2303 * vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS, VEC_ASSERT,
2304 VEC_ASSERT_FAIL, vec_assert_fail): Move earlier in the file.
2b15d2ba 2305 (VEC): Define to vec_t<T>.
2306 (vec_allocation_t): Define.
2307 (struct vec_prefix): Move earlier in the file.
2308 (vec_t<T>): New template.
2309 (DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
2310 DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
2311 DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
2312 DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
2313 (DEF_VEC_A): Provide template instantiations for
2314 GC/PCH markers that do not traverse the vector.
2315 (vec_stack_p_reserve): Remove.
2316 (vec_stack_p_reserve_exact): Remove.
2317 (vec_stack_p_reserve_exact_1): Remove.
2318 (vec_stack_o_reserve): Remove.
2319 (vec_stack_o_reserve_exact): Remove.
2320 (vec_stack_free): Re-write as a template function.
2321 (vec_reserve): New template function.
2322 (vec_reserve_exact): New template function.
2323 (vec_heap_free): New template function if GATHER_STATISTICS is
2324 defined. Otherwise, macro that expands to free().
2325 (VEC_length_1): New template function.
2326 (VEC_length): Call it.
2327 (VEC_empty_1): New template function.
2328 (VEC_empty): Call it.
2329 (VEC_address_1): New template function.
2330 (VEC_address): Call it.
2331 (VEC_last_1): New template function.
2332 (VEC_last): Call it. Change return type to T&.
2333 Change all users that used VEC_Os.
2334 (VEC_index_1): New template function.
2335 (VEC_index): Call it. Return a T& instead of a T*.
2336 Update all callers that were using VEC_O before.
2337 (VEC_iterate_1): New template function.
2338 (VEC_iterate): Call it.
2339 (VEC_embedded_size_1): New template function.
2340 (VEC_embedded_size): Call it.
2341 (VEC_embedded_init_1): New template function.
2342 (VEC_embedded_init): Call it.
2343 (VEC_alloc_1): New template function.
2344 (VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to
2345 do the allocation.
2346 (VEC_free_1): New template function.
2347 (VEC_free): Call it.
2348 (VEC_copy_1): New template function.
2349 (VEC_copy): Call it.
2350 (VEC_space_1): New template function
2351 (VEC_space): Call it.
2352 (VEC_reserve_1): New template function.
2353 (VEC_reserve): Call it.
2354 (VEC_reserve_exact_1): New template function.
2355 (VEC_reserve_exact): Call it.
2356 (VEC_splice_1): New template function.
2357 (VEC_splice): Call it.
2358 (VEC_safe_splice_1): New template function.
2359 (VEC_safe_splice): Call it.
2360 (VEC_quick_push_1): New template function. Create two overloads, one
2361 accepting T, the other accepting T *. Update all callers
2362 where T and T * are ambiguous.
2363 (VEC_quick_push): Call it.
2364 (VEC_safe_push_1): New template function. Create two overloads, one
2365 accepting T, the other accepting T *. Update all callers
2366 where T and T * are ambiguous.
2367 (VEC_safe_push): Call it.
2368 (VEC_pop_1): New template function.
2369 (VEC_pop): Call it.
2370 (VEC_truncate_1): New template function.
2371 (VEC_truncate): Call it.
2372 (VEC_safe_grow_1): New template function.
2373 (VEC_safe_grow): Call it.
2374 (VEC_safe_grow_cleared_1): New template function.
2375 (VEC_safe_grow_cleared): Call it.
2376 (VEC_replace_1): New template function.
2377 (VEC_replace): Call it. Always accept T instead of T*.
2378 Update all callers that used VEC_Os.
2379 (VEC_quick_insert_1): New template function.
2380 (VEC_quick_insert): Call it.
2381 (VEC_safe_insert_1): New template function.
2382 (VEC_safe_insert): Call it.
2383 (VEC_ordered_remove_1): New template function.
2384 (VEC_ordered_remove): Call it.
2385 (VEC_unordered_remove_1): New template function.
2386 (VEC_unordered_remove): Call it.
2387 (VEC_block_remove_1): New template function.
2388 (VEC_block_remove): Call it.
2389 (VEC_lower_bound_1): New template function.
2390 (VEC_lower_bound): Call it.
2391 (VEC_OP): Remove.
2392 (DEF_VEC_FUNC_P): Remove.
2393 (DEF_VEC_ALLOC_FUNC_P): Remove.
2394 (DEF_VEC_NONALLOC_FUNCS_P): Remove.
2395 (DEF_VEC_FUNC_O): Remove.
2396 (DEF_VEC_ALLOC_FUNC_O): Remove.
2397 (DEF_VEC_NONALLOC_FUNCS_O): Remove.
2398 (DEF_VEC_ALLOC_FUNC_I): Remove.
2399 (DEF_VEC_NONALLOC_FUNCS_I): Remove.
2400 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
2401 (DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
2402 (DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
2403 (vec_reserve_exact): New template function.
2404
2405 * gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
2406 * gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
2407 (typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
2408 (def_vec_alloc): Remove. Update all callers.
2409 * gengtype.c (filter_type_name): New.
2410 (output_mangled_typename): Call it.
2411 (write_func_for_structure): Likewise.
2412 (write_types): Likewise.
2413 (write_root): Likewise.
2414 (write_typed_alloc_def): Likewise.
2415 (note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
2416 (note_def_vec_alloc): Remove.
2417 * gengtype.h (note_def_vec_alloc): Remove.
2418 (DEFVEC_ALLOC): Remove token code.
2419
2420 * df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
2421 inside the insn traversal loop.
2422 * gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
2423 * ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
2424 * reg-stack.c (stack): Rename to STACK_PTR. Update all users.
2425 * tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users.
2426
2427 * config/bfin/bfin.c (hwloop_optimize): Update some calls to
2428 VEC_* for vectors of non-pointers.
2429 * config/c6x/c6x.c (try_rename_operands): Likewise.
2430 (reshuffle_units): Likewise.
2431 * config/mips/mips.c (mips_multi_start): Likewise.
2432 (mips_multi_add): Likewise.
2433 (mips_multi_copy_insn): Likewise.
2434 (mips_multi_set_operand): Likewise.
2435 * hw-doloop.c (discover_loop): Likewise.
2436 (discover_loops): Likewise.
2437 (reorg_loops): Likewise.
2438
41b920d6 24392012-08-14 Diego Novillo <dnovillo@google.com>
2b15d2ba 2440
2441 Merge from cxx-conversion branch. C++ support in gengtype.
2442
2443 * coretypes.h (gt_pointer_operator): Move from ...
2444 * ggc.h: ... here.
2445 * doc/gty.texi: Document support for C++ templates and
2446 user-provided markers.
2447 * gcc/gengtype-lex.l: Update copyright year.
41b920d6 2448 Remove support for recognizing DEF_VEC_O, DEF_VEC_P and DEFVEC_I.
2b15d2ba 2449 * gengtype-parse.c: Update copyright year.
2450 (token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
2451 (require_template_declaration): New.
2452 (typedef_name): Call it.
2453 (type): Replace IS_UNION with KIND. Replace all users.
2454 (def_vec): Remove. Update all users.
2455 * gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
2456 (write_state_user_struct_type): New.
2457 (write_state_type): Call it.
2458 (read_state_user_struct_type): New.
2459 (read_state_type): Call it.
2460 * gengtype.c: Update copyright year.
2461 (dump_pair): Move declaration to the top.
2462 (dump_type): Likewise.
2463 (dump_type_list): Likewise.
2464 (dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
2465 (create_user_defined_type): New.
2466 (resolve_typedef): Call it.
2467 (new_structure): Replace argument ISUNION with KIND.
2468 Change users to refer to KIND directly.
2469 Update all callers.
2470 (find_structure): Likewise.
2471 (set_gc_used_type): Handle TYPE_USER_STRUCT.
2472 (create_file): Update HDR to include new copyright year.
2473 (struct walk_type_data): Add field IN_PTR_FIELD.
2474 (output_mangled_typename): Handle TYPE_USER_STRUCT.
2475 (walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
2476 Clear it afterwards.
2477 Handle TYPE_USER_STRUCT.
2478 (write_types_process_field): Handle TYPE_USER_STRUCT.
2479 (get_type_specifier): Move earlier in the file.
2480 (write_type_decl): New.
2481 (write_marker_function_name): New.
2482 (write_user_func_for_structure_ptr): New.
2483 (write_user_func_for_structure_body): New.
2484 (write_user_marking_functions): New.
2485 (write_func_for_structure): Call write_marker_function_name
2486 and write_type_decl.
2487 Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
2488 function directly.
2489 Call write_user_marking_functions on TYPE_USER_STRUCTs.
2490 (write_types_local_user_process_field): New.
2491 (write_pch_user_walking_for_structure_body): New.
2492 (write_pch_user_walking_functions): New.
2493 (write_types_local_process_field): Handle TYPE_USER_STRUCT.
2494 (write_local_func_for_structure): Do not call walk_type for
2495 TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
2496 Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
2497 (write_root): Handle TYPE_USER_STRUCT.
2498 (vec_prefix_type): Remove. Update all users.
2499 (note_def_vec): Remove. Update all users.
2500 (dump_typekind): Handle TYPE_USER_STRUCT.
2501 (dump_type): Initialize SEEN_TYPES, if needed.
2502 Handle TYPE_USER_STRUCT.
2503 (dump_everything): Do not initialize SEEN_TYPES.
2504 * gengtype.h: Update copyright year.
2505 (enum typekind): Add TYPE_USER_STRUCT.
2506 (union_or_struct_p): Rename from UNION_OR_STRUCT_P.
2507 Convert into function.
2508 Add an overload taking const_type_p.
2509 Update all callers.
2510 (new_structure): Change second field to type enum typekind.
2511 Update all users.
2512 (find_structure): Likewise.
2513 (note_def_vec): Remove.
2514 (DEFVEC_OP): Remove.
2515 (DEFVEC_I): Remove.
2516 * ggc-page.c (gt_ggc_mx): Add entry points for marking
2517 'const char *&', 'unsigned char *&' and 'unsigned char&'.
2518 * ggc-zone.c (gt_ggc_mx): Add entry points for marking
2519 'const char *&' and 'unsigned char *&'.
2520 * stringpool.c (gt_pch_nx): Add entry points for marking
2521 'const char *&', 'unsigned char *&' and 'unsigned char&'.
2522 Add an entry point for the overload taking arguments 'unsigned char
2523 *', 'gt_pointer_operator' and 'void *'.
2524 * vec.h (struct vec_prefix): Remove GTY marker.
2525 (struct vec_t): Remove GTY((length)) attribute from field 'vec'.
2526 (gt_ggc_mx (vec_t<T> *)): New template function.
2527 (gt_pch_nx (vec_t<T> *)): New template function.
2528 (gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
2529 function.
2530 (gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
2531 function.
2532
2533 * basic-block.h (struct edge_def): Mark GTY((user)).
2534 Remove all GTY markers from fields.
2535 (gt_ggc_mx): Declare.
2536 (gt_pch_nx): Declare.
2537 * tree-cfg.c (gt_ggc_mx): New.
2538 (gt_pch_nx): New.
2539
2540 * gengtype-lex.l (USER_GTY): Add pattern for "user".
2541 * gengtype-parse.c (option): Handle USER_GTY.
2542 (opts_have): New.
2543 (type): Call it.
2544 If the keyword 'user' is used, do not walk the fields
2545 of the structure.
2546 * gengtype.h (USER_GTY): Add.
2547 * doc/gty.texi: Update.
2548
41b920d6 25492012-08-14 Lawrence Crowl <crowl@google.com>
2b15d2ba 2550
2551 Merge cxx-conversion branch. Implement C++ hash table.
2552
2553 * hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
2554 * hash-table.c: Likewise.
2555 * tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
2556 (static htab_t same_succ_htab): Change type to hash_table;
2557 move specification of helper functions from create call to declaration.
2558 Change users to invoke member functions.
2559 (same_succ_print_traverse): Make extern ssa_.... Change callers.
2560 Remove void* casting.
2561 (same_succ_hash): Likewise.
2562 (same_succ_equal): Likewise.
2563 (same_succ_delete): Likewise.
2564 * tree-ssa-threadupdate.c: Include hash-table.h.
2565 (struct local_info): Rename to ssa_local_info_t to avoid overloading
2566 the type name local_info with the variable name local_info.
2567 (static htab_t redirection_data): Change type to hash_table.
2568 Move specification of helper functions from create call to declaration.
2569 Change users to invoke member functions.
2570 (redirection_data_hash): Make extern ssa_.... Change callers.
2571 Remove void* casting.
2572 (redirection_data_eq): Likewise.
2573 (fix_duplicate_block_edges): Likewise.
2574 (create_duplicates): Likewise.
2575 (fixup_template_block): Likewise.
2576 (redirect_edges): Likewise.
2577 (lookup_redirection_data): Change types associated with the hash table
2578 from void* to their actual type. Remove unnecessary casts.
2579 * tree-ssa-ccp.c: Include hash-table.h.
2580 (typedef gimple_htab): New. Uses hash_table. Replace specific uses
2581 of htab_t with gimple_htab. Change users to invoke member functions.
2582 Move specification of helper functions from create call to declaration.
2583 * tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
2584 (hash_ssa_name_by_var): Make extern. Remove void* casting.
2585 (eq_ssa_name_by_var): Likewise.
2586 (coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
2587 to hash_table. Change users to invoke member functions.
2588 Move specification of helper functions from create call to declaration.
2589 * coverage.c: Include hash-table.h instead of hashtab.h.
2590 (static htab_t counts_hash): Change type to hash_table;
2591 move specification of helper functions from create call to declaration.
2592 Change users to invoke member functions.
2593 (htab_counts_entry_hash): Make extern. Rename with coverage_... instead
2594 of htab_... Remove void* casting.
2595 (htab_counts_entry_eq): Likewise.
2596 (htab_counts_entry_del): Likewise.
2597 * tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
2598 (static htab_t expression_to_id): Change type to hash_table.
2599 Move specification of helper functions from create call to declaration.
2600 Change users to invoke member functions.
2601 (static htab_t phi_translate_table): Likewise.
2602 (pre_expr_eq): Make extern ssa_.... Change callers.
2603 Remove void* casting.
2604 (pre_expr_hash): Likewise.
2605 (expr_pred_trans_hash): Likewise.
2606 (expr_pred_trans_eq): Likewise.
2607 (alloc_expression_id): Change types associated with the hash table
2608 from void* to their actual type. Remove unnecessary casts.
2609 (lookup_expression_id): Likewise.
2610 (phi_trans_lookup): Likewise.
2611 (phi_trans_add): Likewise.
2612 * stringpool.c: Rename uses of libcpp typedef hash_table to
2613 cpp_hash_table.
2614 * Makefile.in: Add hash-table.o to OBJS-libcommon-target.
2615 Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
2616
41b920d6 26172012-08-14 Lawrence Crowl <crowl@google.com>
2b15d2ba 2618
2619 Merge from cxx-conversion branch. Re-write double_int in C++.
2620
2621 * hash-table.h
2622 (typedef double_int): Change to struct (POD).
2623 (double_int::make): New overloads for int to double-int conversion.
2624 (double_int::mask): New.
2625 (double_int::max_value): New.
2626 (double_int::min_value): New.
2627 (double_int::operator ++): New.
2628 (double_int::operator --): New.
2629 (double_int::operator *=): New.
2630 (double_int::operator +=): New.
2631 (double_int::operator -=): New.
2632 (double_int::to_signed): New.
2633 (double_int::to_unsigned): New.
2634 (double_int::fits_unsigned): New.
2635 (double_int::fits_signed): New.
2636 (double_int::fits): New.
2637 (double_int::trailing_zeros): New.
2638 (double_int::popcount): New.
2639 (double_int::multiple_of): New.
2640 (double_int::set_bit): New.
2641 (double_int::mul_with_sign): New.
2642 (double_int::operator * (binary)): New.
2643 (double_int::operator + (binary)): New.
2644 (double_int::operator - (binary)): New.
2645 (double_int::operator - (unary)): New.
2646 (double_int::operator ~ (unary)): New.
2647 (double_int::operator & (binary)): New.
2648 (double_int::operator | (binary)): New.
2649 (double_int::operator ^ (binary)): New.
2650 (double_int::and_not): New.
2651 (double_int::lshift): New.
2652 (double_int::rshift): New.
2653 (double_int::alshift): New.
2654 (double_int::arshift): New.
2655 (double_int::llshift): New.
2656 (double_int::lrshift): New.
2657 (double_int::lrotate): New.
2658 (double_int::rrotate): New.
2659 (double_int::div): New.
2660 (double_int::sdiv): New.
2661 (double_int::udiv): New.
2662 (double_int::mod): New.
2663 (double_int::smod): New.
2664 (double_int::umod): New.
2665 (double_int::divmod): New.
2666 (double_int::sdivmod): New.
2667 (double_int::udivmod): New.
2668 (double_int::ext): New.
2669 (double_int::zext): New.
2670 (double_int::sext): New.
2671 (double_int::is_zero): New.
2672 (double_int::is_one): New.
2673 (double_int::is_minus_one): New.
2674 (double_int::is_negative): New.
2675 (double_int::cmp): New.
2676 (double_int::ucmp): New.
2677 (double_int::scmp): New.
2678 (double_int::ult): New.
2679 (double_int::ugt): New.
2680 (double_int::slt): New.
2681 (double_int::sgt): New.
2682 (double_int::max): New.
2683 (double_int::smax): New.
2684 (double_int::umax): New.
2685 (double_int::min): New.
2686 (double_int::smin): New.
2687 (double_int::umin): New.
2688 (double_int::operator ==): New.
2689 (double_int::operator !=): New.
2690 (shwi_to_double_int): Change implementation to use member function.
2691 (double_int_minus_one): Likewise.
2692 (double_int_zero): Likewise.
2693 (double_int_one): Likewise.
2694 (double_int_two): Likewise.
2695 (double_int_ten): Likewise.
2696 (uhwi_to_double_int): Likewise.
2697 (double_int_to_shwi): Likewise.
2698 (double_int_to_uhwi): Likewise.
2699 (double_int_fits_in_uhwi_p): Likewise.
2700 (double_int_fits_in_shwi_p): Likewise.
2701 (double_int_fits_in_hwi_p): Likewise.
2702 (double_int_mul): Likewise.
2703 (double_int_mul_with_sign): Likewise.
2704 (double_int_add): Likewise.
2705 (double_int_sub): Likewise.
2706 (double_int_neg): Likewise.
2707 (double_int_div): Likewise.
2708 (double_int_sdiv): Likewise.
2709 (double_int_udiv): Likewise.
2710 (double_int_mod): Likewise.
2711 (double_int_smod): Likewise.
2712 (double_int_umod): Likewise.
2713 (double_int_divmod): Likewise.
2714 (double_int_sdivmod): Likewise.
2715 (double_int_udivmod): Likewise.
2716 (double_int_multiple_of): Likewise.
2717 (double_int_setbit): Likewise.
2718 (double_int_ctz): Likewise.
2719 (double_int_not): Likewise.
2720 (double_int_ior): Likewise.
2721 (double_int_and): Likewise.
2722 (double_int_and_not): Likewise.
2723 (double_int_xor): Likewise.
2724 (double_int_lshift): Likewise.
2725 (double_int_rshift): Likewise.
2726 (double_int_lrotate): Likewise.
2727 (double_int_rrotate): Likewise.
2728 (double_int_cmp): Likewise.
2729 (double_int_scmp): Likewise.
2730 (double_int_ucmp): Likewise.
2731 (double_int_max): Likewise.
2732 (double_int_smax): Likewise.
2733 (double_int_umax): Likewise.
2734 (double_int_min): Likewise.
2735 (double_int_smin): Likewise.
2736 (double_int_umin): Likewise.
2737 (double_int_ext): Likewise.
2738 (double_int_sext): Likewise.
2739 (double_int_zext): Likewise.
2740 (double_int_mask): Likewise.
2741 (double_int_max_value): Likewise.
2742 (double_int_min_value): Likewise.
2743 (double_int_zero_p): Likewise.
2744 (double_int_one_p): Likewise.
2745 (double_int_minus_one_p): Likewise.
2746 (double_int_equal_p): Likewise.
2747 (double_int_popcount): Likewise.
2748 * hash-table.c
2749 (double_int_mask): Reuse implementation for double_int::mask.
2750 (double_int_max_value): Likewise.
2751 (double_int_min_value): Likewise.
2752 (double_int_ext): Likewise.
2753 (double_int_zext): Likewise.
2754 (double_int_sext): Likewise.
2755 (double_int_mul_with_sign): Likewise.
2756 (double_int_divmod): Likewise.
2757 (double_int_sdivmod): Likewise.
2758 (double_int_udivmod): Likewise.
2759 (double_int_div): Likewise.
2760 (double_int_sdiv): Likewise.
2761 (double_int_udiv): Likewise.
2762 (double_int_mod): Likewise.
2763 (double_int_smod): Likewise.
2764 (double_int_umod): Likewise.
2765 (double_int_multiple_of): Likewise.
2766 (double_int_lshift): Likewise.
2767 (double_int_rshift): Likewise.
2768 (double_int_lrotate): Likewise.
2769 (double_int_rrotate): Likewise.
2770 (double_int_cmp): Likewise.
2771 (double_int_ucmp): Likewise.
2772 (double_int_scmp): Likewise.
2773 (double_int_max): Likewise.
2774 (double_int_smax): Likewise.
2775 (double_int_umax): Likewise.
2776 (double_int_min): Likewise.
2777 (double_int_smin): Likewise.
2778 (double_int_umin): Likewise.
2779 (double_int_min): Likewise.
2780 (double_int_min): Likewise.
2781 (double_int_min): Likewise.
2782 (double_int_min): Likewise.
2783 (double_int_min): Likewise.
2784 (double_int_min): Likewise.
2785 (double_int::alshift): New.
2786 (double_int::arshift): New.
2787 (double_int::llshift): New.
2788 (double_int::lrshift): New.
2789 (double_int::ult): New.
2790 (double_int::ugt): New.
2791 (double_int::slt): New.
2792 (double_int::sgt): New.
2793 (double_int_setbit): Reuse implementation for double_int::set_bit,
2794 which avoids a name conflict with a macro.
2795 (double_int_double_int_ctz): Reuse implementation for
2796 double_int::trailing_zeros.
2797 (double_int_fits_in_shwi_p): Reuse implementation for
2798 double_int::fits_signed.
2799 (double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
2800 (double_int_mul): Reuse implementation for binary
2801 double_int::operator *.
2802 (double_int_add): Likewise.
2803 (double_int_sub): Likewise.
2804 (double_int_neg): Reuse implementation for unary
2805 double_int::operator -.
2806 (double_int_max_value): Likewise.
2807 * fixed-value.c: Change to use member functions introduced above.
2808
41b920d6 28092012-08-14 Lawrence Crowl <crowl@google.com>
2b15d2ba 2810
41b920d6 2811 Merge cxx-conversion branch. Support tree macro calling from gdb.
2b15d2ba 2812
2813 * tree.h (tree_check): New.
2814 (TREE_CHECK): Use inline function above instead of __extension__.
2815 (tree_not_check): New.
2816 (TREE_NOT_CHECK): Use inline function above instead of __extension__.
2817 (tree_check2): New.
2818 (TREE_CHECK2): Use inline function above instead of __extension__.
2819 (tree_not_check2): New.
2820 (TREE_NOT_CHECK2): Use inline function above instead of __extension__.
2821 (tree_check3): New.
2822 (TREE_CHECK3): Use inline function above instead of __extension__.
2823 (tree_not_check3): New.
2824 (TREE_NOT_CHECK3): Use inline function above instead of __extension__.
2825 (tree_check4): New.
2826 (TREE_CHECK4): Use inline function above instead of __extension__.
2827 (tree_not_check4): New.
2828 (TREE_NOT_CHECK4): Use inline function above instead of __extension__.
2829 (tree_check5): New.
2830 (TREE_CHECK5): Use inline function above instead of __extension__.
2831 (tree_not_check5): New.
2832 (TREE_NOT_CHECK5): Use inline function above instead of __extension__.
2833 (contains_struct_check): New.
2834 (CONTAINS_STRUCT_CHECK): Use inline function above instead of
2835 __extension__.
2836 (tree_class_check): New.
2837 (TREE_CLASS_CHECK): Use inline function above instead of __extension__.
2838 (tree_range_check): New.
2839 (TREE_RANGE_CHECK): Use inline function above instead of __extension__.
2840 (omp_clause_subcode_check): New.
2841 (OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
2842 __extension__.
2843 (omp_clause_range_check): New.
2844 (OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
2845 __extension__.
2846 (expr_check): New.
2847 (EXPR_CHECK): Use inline function above instead of __extension__.
2848 (non_type_check): New.
2849 (NON_TYPE_CHECK): Use inline function above instead of __extension__.
2850 (tree_vec_elt_check): New.
2851 (TREE_VEC_ELT_CHECK): Use inline function above instead of
2852 __extension__.
2853 (omp_clause_elt_check): New.
2854 (OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
2855 __extension__.
2856 (tree_operand_check): New.
2857 (TREE_OPERAND_CHECK): Use inline function above instead of
2858 __extension__.
2859 (tree_operand_check_code): New.
2860 (TREE_OPERAND_CHECK_CODE): Use inline function above instead of
2861 __extension__.
2862 (TREE_CHAIN): Simplify implementation.
2863 (TREE_TYPE): Simplify implementation.
2864 (tree_operand_length): Move for compilation dependences.
2865 * gdbinit.in: (macro define __FILE__): New.
2866 (macro define __LINE__): New.
2867 (skip "tree.h"): New.
2868
59d527df 28692012-08-14 Oleg Endo <olegendo@gcc.gnu.org>
2870
2871 PR target/52933
2872 * config/sh/sh.md (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0,
2873 *cmp_div0s_1, *cbranch_div0s, *movsicc_div0s): New insns.
2874 * config/sh/sh.c (sh_rtx_costs): Handle div0s patterns.
2875
031c81fb 28762012-08-14 Oleg Endo <olegendo@gcc.gnu.org>
2877
2878 PR target/50751
2879 * config/sh/constraints.md (Sra): New constraint.
2880 * config/sh/predicates.md (simple_mem_operand,
2881 displacement_mem_operand, zero_extend_movu_operand): New predicates.
2882 (zero_extend_operand): Check zero_extend_movu_operand for SH2A.
2883 * config/sh/sh.md (*zero_extendqisi2_disp_mem,
2884 *zero_extendhisi2_disp_mem): Add new insns and two new related
2885 peephole2 patterns.
2886
1cface39 28872012-08-14 Steven Bosscher <steven@gcc.gnu.org>
2888
4e976818 2889 * graphite-scop-detection.c (create_sese_edges): Compute dominance
2890 info before trying to fix loop structure.
2891 * cfgloopmanip.c (fix_loop_structure): Require fast DOM queries.
2892 * tree-cfgcleanup.c (repair_loop_structures): Likewise.
2893 * cfgloop.c (verify_loop_structure): Verify loop fathers.
2894
1cface39 2895 * dominance.c (init_dom_info): Use gcc_checking_assert, not gcc_assert.
2896 (dom_convert_dir_to_idx, compute_dom_fast_query,
2897 get_immediate_dominator, set_immediate_dominator, get_dominated_by,
2898 redirect_immediate_dominators, nearest_common_dominator,
2899 (dominated_by_p, bb_dom_dfs_in, bb_dom_dfs_out, recompute_dominator,
2900 iterate_fix_dominators, add_to_dominance_info,
2901 delete_from_dominance_info): Likewise.
2902
7c782c9b 29032012-08-14 Richard Guenther <rguenther@suse.de>
2904
2905 * cfgexpand.c (expand_used_vars): Use virtual_operand_p.
2906 * gimple-pretty-print.c (dump_phi_nodes): Likewise.
2907 * gimple-streamer-out.c (output_bb): Likewise.
2908 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Likewise.
2909 (rewrite_reductions_out_of_ssa): Likewise.
2910 (rewrite_commutative_reductions_out_of_ss): Likewise.
2911 * ipa-split.c (verify_non_ssa_vars): Likewise.
2912 (consider_split): Likewise.
2913 (visit_bb): Likewise.
2914 (split_function): Likewise.
2915 * lto-streamer-out.c (output_ssa_names): Likewise.
2916 * sese.c (rename_uses): Likewise.
2917 * tree-cfg.c (replace_uses_by): Likewise.
2918 (gimple_merge_blocks): Likewise.
2919 (gimple_cfg2dot): Likewise.
2920 (verify_gimple_phi): Likewise.
2921 (replace_ssa_name): Likewise.
2922 (move_block_to_fn): Likewise.
2923 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
2924 * tree-if-conv.c (if_convertible_phi_p): Likewise.
2925 (predicate_scalar_phi): Likewise.
2926 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
2927 (copy_phis_for_bb): Likewise.
2928 * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
2929 (destroy_loop): Likewise.
2930 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
2931 (insert_backedge_copies): Likewise.
2932 * tree-parloops.c (transform_to_exit_first_loop): Likewise.
2933 (gather_scalar_reductions): Likewise.
2934 (try_create_reduction_list): Likewise.
2935 * tree-scalar-evolution.c (analyze_scalar_evolution_for_all_loop_ph):
2936 Likewise.
2937 (scev_const_prop): Likewise.
2938 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
2939 (get_default_value): Likewise.
2940 (ccp_initialize): Likewise.
2941 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2942 * tree-ssa-copy.c (may_propagate_copy): Likewise.
2943 (init_copy_prop): Likewise.
2944 * tree-ssa-dce.c (propagate_necessity): Likewise.
2945 (remove_dead_phis): Likewise.
2946 (forward_edge_to_pdom): Likewise.
2947 (eliminate_unnecessary_stmts): Likewise.
2948 * tree-ssa-live.c (partition_view_init): Likewise.
2949 (remove_unused_locals): Likewise.
2950 (register_ssa_partition_check): Likewise.
2951 * tree-ssa-loop-im.c (movement_possibility): Likewise.
2952 (move_computations_stmt): Likewise.
2953 * tree-ssa-loop-ivopts.c (determine_biv_step): Likewise.
2954 (record_invariant): Likewise.
2955 (find_interesting_uses_outside): Likewise.
2956 (determine_set_costs): Likewise.
2957 * tree-ssa-loop-manip.c (add_exit_phis_var): Likewise.
2958 (find_uses_to_rename_use): Likewise.
2959 (check_loop_closed_ssa_use): Likewise.
2960 (rewrite_phi_with_iv): Likewise.
2961 (canonicalize_loop_ivs): Likewise.
2962 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2963 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
2964 * tree-ssa-pre.c (make_values_for_phi): Likewise.
2965 (compute_avail): Likewise.
2966 (eliminate): Likewise.
2967 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2968 * tree-ssa-reassoc.c (phi_rank): Likewise.
2969 * tree-ssa-strlen.c (strlen_enter_block): Likewise.
2970 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
2971 (ipa_pta_execute): Likewise.
2972 * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
2973 (release_last_vdef): Likewise.
2974 (same_phi_alternatives_1): Likewise.
2975 (bb_has_non_vop_phi): Likewise.
2976 (vop_phi): Likewise.
2977 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
2978 Likewise.
2979 * tree-ssa-uninit.c (warn_uninitialized_phi): Likewise.
2980 (execute_late_warn_uninitialized): Likewise.
2981 * tree-ssa.c (verify_ssa_name): Likewise.
2982 (verify_phi_args): Likewise.
2983 (verify_ssa): Likewise.
2984 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
eae7aa32 2985 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
2986 Likewise.
7c782c9b 2987 (slpeel_tree_peel_loop_to_edge): Likewise.
2988 (vect_can_advance_ivs_p): Likewise.
2989 (vect_update_ivs_after_vectorizer): Likewise.
2990 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
2991 * tree-vrp.c (remove_range_assertions): Likewise.
2992 * value-prof.c (gimple_divmod_values_to_profile): Likewise.
2993
2ce053a0 29942012-08-14 Richard Guenther <rguenther@suse.de>
2995
2996 PR tree-optimization/54146
2997 * tree-ssa-pre.c (do_regular_insertion): Use a VEC
2998 indexed by pred edge index for avail.
2999 (do_partial_partial_insertion): Likewise.
3000 (insert_into_preds_of_block): Adjust.
3001
d3a27ad5 30022012-08-14 Richard Guenther <rguenther@suse.de>
3003
3004 * gimplify.c (create_tmp_from_val): Mark temporary with
3005 DECL_GIMPLE_REG_P here ...
3006 (internal_get_tmp_var): ... instead of here. If we go into
3007 SSA create an SSA name instead of a VAR_DECL.
3008 (gimplify_modify_expr): Do not create SSA names here, assert
3009 we already got them.
3010 (force_gimple_operand_1): Create an SSA name if we go into SSA.
3011 * sese.c (rename_uses): Simplify.
3012
b4fa1427 30132012-08-14 Richard Guenther <rguenther@suse.de>
3014
3015 * tree-into-ssa.c: Include diagnostic-core.h.
3016 * Makefile.in (tree-into-ssa.o): Adjust.
3017
f8aa507d 30182012-08-14 Richard Guenther <rguenther@suse.de>
3019
3020 * tree-into-ssa.c (update_ssa): Verify we do not rename
3021 symbols that are already partly in SSA form.
3022
abaff299 30232012-08-14 Jakub Jelinek <jakub@redhat.com>
3024
3025 PR middle-end/53411
3026 PR rtl-optimization/53495
3027 * ira.c (ira): Move delete_trivially_dead_insns call before
3028 find_moveable_pseudos call.
3029
ed7e2206 30302012-08-13 Steven Bosscher <steven@gcc.gnu.org>
3031
3032 * tree-ssa-pre.c (do_regular_insertion): Add FIXME markers at points
3033 of potentially huge memset overhead.
3034 (do_partial_partial_insertion): Likewise.
3035 * cfgexpand.c (gimple_expand_cfg): Use XCNEWVEC instead of xcalloc.
3036 * tree-vrp.c (find_assert_locations): Use XNEWVEC instead of XCNEWVEC
3037 for arrays to be filled by pre_and_rev_post_order_compute. Allocate
3038 the right number of slots, not that number plus NUM_FIXED_BLOCKS.
3039 * tree-ssa-reassoc.c (init_reassoc): Likewise.
3040 * cfganal.c (dfs_enumerate_from): Use XNEWVEC instead of XCNEWVEC for
3041 array used as stack.
3042 * tree-ssa-sccvn.c (init_scc_vn): Use XNEWVEC instead of XCNEWVEC for
3043 arrays to be filled by pre_and_rev_post_order_compute.
3044 * cfgloopmanip.c (find_path): Use XNEWVEC instead of XCNEWVEC for
3045 array to be filled by dfs_enumerate_from.
3046 (remove_path): Likewise.
3047 (duplicate_loop_to_header_edge): Use XNEWVEC instead of XCNEWVEC for
3048 array of loops that is filled on the next lines.
3049 * cfgloop.c (get_loop_body): Use XNEWVEC instead of XCNEWVEC for
3050 array of basic blocks to be returned.
3051 (get_loop_body_in_dom_order): Likewise.
3052 (get_loop_body_in_bfs_order): Likewise.
3053 * tree-ssa-loop-manip.c (loop_renamer_obstack): New static obstack
3054 for all bitmaps used for rewriting into loop-closed SSA form.
3055 (add_exit_phis_var): Allocate the def bitmap on it. Clear the livein
3056 bitmap at the end to release a lot of memory.
3057 (add_exit_phis): Allocate the exits bitmap on the new obstack.
3058 (get_loops_exits): Allocate the exits bitmap on the new obstack.
3059 (find_uses_to_rename_use): Allocate a use_blocks bitmap if ver is
3060 seen for the first time.
3061 (find_uses_to_rename): Add "???" for why the whole function must
3062 be re-scanned if changed_bbs is empty.
3063 (rewrite_into_loop_closed_ssa): Allocate bitmaps on the new obstack.
3064 Use XNEWVEC to allocate the use_blocks array. Initialize the new
3065 obstack, and free it at the end. Remove loop over all SSA names.
3066 (check_loop_closed_ssa_stmt): Look only at SSA_OP_USE operands.
3067 * tree-cfg.c (move_sese_region_to_fn): Use XNEWVEC instead of
3068 xcalloc to allocate edge_pred and edge_flag arrays.
3069
44c44159 30702012-08-13 Uros Bizjak <ubizjak@gmail.com>
3071
3072 * config/i386/i386.h (FIXED_REGISTERS): Do not mark REX registers here.
3073 (CALL_USED_REGISTERS): Use bitmaps to mark call-used registers
3074 for different ABIs.
3075 (enum reg_class): Move CLOBBERED_REGS just before GENERAL_REGS.
3076 (REG_CLASS_NAMES): Update.
3077 (REG_CLASS_CONTENTS): Update. Clear CLOBBERED_REGS members.
3078 * config/i386/i386.c (ix86_conditional_register_usage): Disable
3079 REX registers on 32bit targets. Handle bitmaps from
3080 CALL_USED_REGISTERS initializer. Calculate CLOBBERED_REGS register
3081 set from GENERAL_REGS also for 32bit targets. Do not change call
3082 used register set for TARGET_64BIT_MS_ABI separately.
3083
6b42039a 30842012-08-13 Richard Guenther <rguenther@suse.de>
3085
3086 * basic-block.h (struct basic_block): Remove loop_depth
3087 member, move flags and index members next to each other.
3088 * cfgloop.h (bb_loop_depth): New inline function.
3089 * cfghooks.c (split_block): Do not set loop_depth.
3090 (duplicate_block): Likewise.
3091 * cfgloop.c (flow_loop_nodes_find): Likewise.
3092 (flow_loops_find): Likewise.
3093 (add_bb_to_loop): Likewise.
3094 (remove_bb_from_loops): Likewise.
3095 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
3096 * gimple-streamer-in.c (input_bb): Do not stream loop_depth.
3097 * gimple-streamer-out.c (output_bb): Likewise.
3098 * bt-load.c: Include cfgloop.h.
3099 (migrate_btr_defs): Use bb_loop_depth.
3100 * cfg.c (dump_bb_info): Likewise.
3101 * final.c (compute_alignments): Likewise.
3102 * ira.c (update_equiv_regs): Likewise.
3103 * tree-ssa-copy.c (init_copy_prop): Likewise.
3104 * tree-ssa-dom.c (loop_depth_of_name): Likewise.
3105 * tree-ssa-forwprop.c: Include cfgloop.h.
3106 (forward_propagate_addr_expr): Use bb_loop_depth.
3107 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
3108 * tree-ssa-sink.c (select_best_block): Likewise.
3109 * ipa-inline-analysis.c: Include cfgloop.h.
3110 (estimate_function_body_sizes): Use bb_loop_depth.
3111 * Makefile.in (tree-ssa-forwprop.o): Depend on $(CFGLOOP_H).
3112 (ipa-inline-analysis.o): Likewise.
3113 (bt-load.o): Likewise.
3114
e31fb816 31152012-08-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3116 Jakub Jelinek <jakub@redhat.com>
3117
3118 PR driver/54210
3119 * config/i386/driver-i386.c (host_detect_local_cpu): Test bit_PRFCHW
3120 bit of CPUID 0x80000001 %ecx instead of CPUID 7 %ecx.
3121 * config/i386/cpuid.h (bits_PRFCHW): Move definition to CPUID
3122 0x80000001 %ecx flags.
3123
6d52d7f8 31242012-08-13 Richard Guenther <rguenther@suse.de>
3125
3126 * tree-cfg.c (print_loop): Avoid ICEing for loops marked for
3127 removal and loops with multiple latches.
3128
e0e5e0b3 31292012-08-13 Jakub Jelinek <jakub@redhat.com>
3130
3131 PR c/53968
3132 * tree.c (integer_pow2p): Avoid undefined signed overflows.
3133 * simplify-rtx.c (neg_const_int): Likewise.
3134 * expr.c (fixup_args_size_notes): Likewise.
3135 * stor-layout.c (set_min_and_max_values_for_integral_type): Likewise.
3136 * double-int.c (mul_double_wide_with_sign): Likewise.
3137 (double_int_mask): Likewise.
3138 * tree-ssa-loop-ivopts.c (get_address_cost): Likewise.
3139
a1503921 31402012-08-13 Richard Guenther <rguenther@suse.de>
3141
3142 PR tree-optimization/54200
3143 * tree-ssa-copyrename.c (rename_ssa_copies): Do not add
3144 PHI results to another partition if not all PHI arguments
3145 have the same partition.
3146
eab36a5a 31472012-08-12 Jan Hubicka <jh@suse.cz>
3148
3149 * tree-pass.h (write_summary, write_optimization_summary): Remove
3150 set and vset arguments.
3151 * ipa-cp.c (ipcp_write_summary): Remove set and vset arugments.
3152 (write_node_summary_p): Likewise; use the encoder.
3153 (ipa_reference_write_optimization_summary): Likewise.
3154 * lto-cgraph.c (output_cgraph_opt_summary): Use encoder.
3155 (lto_symtab_encoder_new): Initialize in_partition field.
3156 (lto_symtab_encoder_delete): Destroy in_partition field.
3157 (LCC_NOT_FOUND): Move to lto-streamer.h
3158 (lto_symtab_encoder_deref): Likewise.
3159 (lto_symtab_encoder_in_partition_p,
3160 lto_set_symtab_encoder_in_partition): New functions.
3161 (referenced_from_other_partition_p): Rewrite to use encoder.
3162 (reachable_from_other_partition_p): Likewise.
3163 (referenced_from_this_partition_p): Likewise.
3164 (reachable_from_this_partition_p): Likewise.
3165 (lto_output_node): Likewise.
3166 (lto_output_varpool_node): Likewise.
3167 (output_refs): Likewise.
3168 (compute_ltrans_boundary): Initialize in_partition fileds of
3169 the encoder.
3170 (output_symtab): Likewise.
3171 (input_refs): Match the changes in output_refs.
3172 (output_cgraph_opt_summary_p): Remove set argument.
3173 (output_node_opt_summary): Replace set by encoder.
3174 (output_cgraph_opt_summary): Remove set argument; use
3175 the encoder.
3176 * ipa-pure-const.c (pure_const_write_summary): Remove set and vset
3177 arguments; use the encoder.
3178 * lto-streamer-out.c (lto_output): Remove set and vset argument; use
3179 the encoder.
3180 (produce_symtab): Likewise.
3181 * ipa-inline.h (inline_write_summary): Remove set and vset arguments.
3182 * ipa-inline-analysis.c (inline_write_summary): Likewise.
3183 * ipa-prop.c (ipa_prop_write_jump_functions): Remove set argument;
3184 use encoder.
3185 * ipa-prop.h (ipa_prop_write_jump_functions): Likewise.
3186 * passes.c (ipa_write_summaries_2): Remove set and vset arguments.
3187 (ipa_write_summaries_1): Update.
3188 (ipa_write_optimization_summaries_1): Likewise.
3189 (ipa_write_optimization_summaries): Likewise.
3190 * lto-streamer.h (lto_symtab_encoder_t): Add in_partition.
3191 (lto_symtab_encoder_iterator): New type.
3192 (lto_symtab_encoder_deref): Make inline.
3193 (output_symtab, referenced_from_other_partition_p,
3194 reachable_from_other_partition_p, referenced_from_this_partition_p,
3195 reachable_from_this_partition_p): Update.
44c44159 3196 (lsei_end_p, lsei_next, lsei_node, lsei_cgraph_node,
3197 lsei_varpool_node): New inline functions.
eab36a5a 3198 (LCC_NOT_FOUND): New macro.
3199 (lto_symtab_encoder_deref, lsei_start, lsei_next_in_partition,
3200 lsei_start_in_partition, lsei_next_function_in_partition,
3201 lsei_start_function_in_partition, lsei_next_variable_in_partition,
3202 lsei_start_variable_in_partition): New inline functions.
3203
86087124 32042012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
3205
3206 * config/sh/sh.md (prefetch): Simplify expander. Fix condition to
3207 allow SH3.
3208 (*prefetch_media): Move insn below expander.
3209 (*prefetch): Fix condition to allow SH3.
3210
976ca48a 32112012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
3212
3213 PR target/51244
3214 * config/sh/sh.md: Add splits for inverted compare and branch
3215 opportunities.
3216 (*cmpeqsi_t): New insn.
3217 (cmpgtsi_t, cmpgesi_t): Swap r and N alternatives.
3218 (cmpgeusi_t): Use satisfies_constraint_Z. Emit sett insn in
3219 replacement insn list and not in the preparation statements.
3220 (clrt, sett): Add mt_group attribute.
3221
80a948aa 32222012-08-12 Marc Glisse <marc.glisse@inria.fr>
3223
3224 PR middle-end/54193
3225 * gimple-pretty-print.c (dump_ternary_rhs): Handle 4 arguments.
3226
26e8d76f 32272012-08-12 Oleg Endo <olegendo@gcc.gnu.org>
3228
3229 PR target/39423
3230 * config/sh/predicates.md (mem_index_disp_operand): Check for
3231 arith_reg_operand instead of REG_P.
3232
6404c5f6 32332012-08-11 Bernd Schmidt <bernds@codesourcery.com>
3234
3235 * reload1.c (replaced_subreg, gen_reload): Add
3236 SECONDARY_MEMORY_NEEDED ifdefs as necessary.
3237
341eb035 32382012-08-11 Jan Hubicka <jh@suse.cz>
3239
3240 * lto-section-in.c (lto_section_name): Do not use "symtab" as part of
3241 symtab_node sectoin name; it confuses plugin.
3242
72952522 32432012-08-11 Uros Bizjak <ubizjak@gmail.com>
3244
3245 * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Shift DECL_UID
44c44159 3246 index in the va_list_vars bitmap by num_ssa_names.
72952522 3247
5093b7f4 32482012-08-11 Uros Bizjak <ubizjak@gmail.com>
3249
3250 * config/i386/sse.md (xop integer multiply/add insns): Use
3251 register_operand for operand 3 predicate.
3252 (xop_phadd<u>bq): Fix vec_select selectors.
3253
a4f60e55 32542012-08-11 Martin Jambor <mjambor@suse.cz>
3255
3256 PR fortran/48636
3257 * ipa-inline.h (condition): New fields offset, agg_contents and by_ref.
3258 * ipa-inline-analysis.c (agg_position_info): New type.
3259 (add_condition): New parameter aggpos, also store agg_contents, by_ref
3260 and offset.
3261 (dump_condition): Also dump aggregate conditions.
3262 (evaluate_conditions_for_known_args): Also handle aggregate
3263 conditions. New parameter known_aggs.
3264 (evaluate_properties_for_edge): Gather known aggregate contents.
3265 (inline_node_duplication_hook): Pass NULL known_aggs to
3266 evaluate_conditions_for_known_args.
3267 (unmodified_parm): Split into unmodified_parm and unmodified_parm_1.
3268 (unmodified_parm_or_parm_agg_item): New function.
3269 (set_cond_stmt_execution_predicate): Handle values passed in
3270 aggregates.
3271 (set_switch_stmt_execution_predicate): Likewise.
3272 (will_be_nonconstant_predicate): Likewise.
3273 (estimate_edge_devirt_benefit): Pass new parameter known_aggs to
3274 ipa_get_indirect_edge_target.
3275 (estimate_calls_size_and_time): New parameter known_aggs, pass it
3276 recrsively to itself and to estimate_edge_devirt_benefit.
3277 (estimate_node_size_and_time): New vector known_aggs, pass it o
3278 functions which need it.
3279 (remap_predicate): New parameter offset_map, use it to remap aggregate
3280 conditions.
3281 (remap_edge_summaries): New parameter offset_map, pass it recursively
3282 to itself and to remap_predicate.
3283 (inline_merge_summary): Also create and populate vector offset_map.
3284 (do_estimate_edge_time): New vector of known aggregate contents,
3285 passed to functions which need it.
3286 (inline_read_section): Stream new fields of condition.
3287 (inline_write_summary): Likewise.
3288 * ipa-cp.c (ipa_get_indirect_edge_target): Also examine the aggregate
3289 contents. Let all local callers pass NULL for known_aggs.
3290
02b699d5 32912012-08-11 Jan Hubicka <jh@suse.cz>
3292
3293 * lto-cgraph.c (output_cgraph): Rename to ...
3294 (output_symtab): ... this one. Update for LTO_section_symtab_nodes.
3295 (input_cgraph): Rename to ...
3296 (input_symtab): ... this one. Update for LTO_section_symtab_nodes.
3297 * lto-streamer-out.c (create_output_block): Do not set
3298 section_type.
3299 (produce_asm): Likewise.
3300 (lto_output_toplevel_asms): Likewise.
3301 (produce_asm_for_decls): Likewise.
3302 (lto_output): Use output_symtab.
3303 * lto-section-in.c (lto_section_name): Update.
5093b7f4 3304 * lto-section-out.c (lto_destroy_simple_output_block): Remove
3305 section_type.
02b699d5 3306 * lto-streamer.h (enum lto_section_type): Remove LTO_section_varpool;
3307 rename LTO_section_cgraph to LTO_section_symtab_nodes.
3308 (struct lto_header): Remove section_type.
3309
70225339 33102012-08-11 Jan Hubicka <jh@suse.cz>
3311
3312 * cgraph.h (vector types for symtab_node): Add.
3313 * ipa-reference.c (ipa_reference_write_optimization_summary): Update
3314 for new symtab encoder.
3315 (ipa_reference_read_optimization_summary): Likewise.
3316 * lto-cgraph.c (output_varpool): Remove.
3317 (input_cgraph_opt_summary): Take symtab nodes vector as argument.
3318 (LTO_cgraph_tags): Rename to ...
3319 (LTO_symtab_tags): ... this one; add LTO_symtab_variable.
3320 (lto_cgraph_encoder_new): Rename to ...
3321 (lto_symtab_encoder_new): ... this on.
3322 (lto_cgraph_encoder_encode): Rename to ...
3323 (lto_symtab_encoder_encode): ... this one.
3324 (lto_cgraph_encoder_delete): Rename to ...
3325 (lto_symtab_encoder_delete): ... this one.
3326 (lto_cgraph_encoder_deref): Rename to ...
3327 (lto_symtab_encoder_deref): ... this one.
3328 (lto_cgraph_encoder_encode_body_p): Rename to ...
3329 (lto_symtab_encoder_encode_body_p): ... this one.
3330 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3331 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3332 lto_varpool_encoder_deref): Remove.
3333 (lto_varpool_encoder_encode_initializer_p): Rename to ...
3334 (lto_symtab_encoder_encode_initializer_p): ... this one.
3335 (lto_set_varpool_encoder_encode_initializer): Rename to ...
3336 (lto_set_symtab_encoder_encode_initializer): ... this one.
3337 (lto_output_edge): Update.
3338 (lto_output_node): Update.
3339 (lto_output_varpool_node): Update; stream out LTO_symtab_variable tag.
3340 (lto_output_ref): Drop varpool_encoder; update.
3341 (add_node_to): Update.
3342 (add_references): Update.
3343 (output_outgoing_cgraph_edges): Update.
5093b7f4 3344 (output_refs): Update.
70225339 3345 (compute_ltrans_boundary): Update.
3346 (output_cgraph): Update; output varpools too.
3347 (input_overwrite_node): Update.
3348 (output_varpool): Remove.
3349 (input_node): Update.
3350 (input_ref): Update.
3351 (input_edge): Update.
3352 (input_cgraph_1): Update; input varpool too; unify fixup code.
3353 (input_varpool_1): Remove.
3354 (input_refs): Update.
3355 (input_cgraph): Update.
3356 (output_node_opt_summary): Update.
3357 (input_cgraph_opt_section): Update.
3358 (input_cgraph_opt_summary): Update.
3359 * ipa-pure-const.c (pure_const_write_summary): Update.
3360 (pure_const_read_summary): Update.
3361 * lto-streamer-out.c (lto_write_tree): Update.
3362 (lto_output): Likewise.
3363 (produce_symtab): Update.
3364 (produce_asm_for_decls): Update.
3365 * ipa-inline-analysis.c (inline_read_section): Update.
3366 (inline_write_summary): Update.
3367 * ipa-prop.c (ipa_write_node_info): Update.
3368 (ipa_prop_read_section): Update.
3369 * lto-streamer.h (lto_cgraph_encoder_d): Rename to ...
3370 (lto_symtab_encoder_d): ... this one; add initializer.
3371 (lto_cgraph_encoder_t): Rename to ...
3372 (lto_symtab_encoder_t): ... this one.
3373 (lto_cgraph_encoder_size): Rename to ...
3374 (lto_symtab_encoder_size): ... this one.
3375 (lto_varpool_encoder_d): ... remove.
3376 (lto_varpool_encoder_t): Remove.
3377 (lto_out_decl_state): Remove cgraph_node_encoder, varpool_node_encoder
3378 add symtab_node_encoder.
3379 (lto_file_decl_data): Likewise.
3380 (lto_cgraph_encoder_deref, lto_cgraph_encoder_lookup,
5093b7f4 3381 lto_cgraph_encoder_new, lto_cgraph_encoder_encode,
3382 lto_cgraph_encoder_delete, lto_cgraph_encoder_encode_body_p,
3383 lto_varpool_encoder_encode_body_p, lto_varpool_encoder_deref,
3384 lto_varpool_encoder_lookup, lto_varpool_encoder_new,
70225339 3385 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3386 lto_varpool_encoder_encode_initializer_p): Remove.
3387 (lto_symtab_encoder_deref, lto_symtab_encoder_lookup,
5093b7f4 3388 lto_symtab_encoder_t, lto_symtab_encoder_encode,
3389 lto_symtab_encoder_delete, lto_symtab_encoder_encode_body_p,
3390 lto_symtab_encoder_encode_initializer_p): New.
70225339 3391
2743953b 33922012-08-11 Uros Bizjak <ubizjak@gmail.com>
3393
3394 * config/i386/i386.md (isa): Add fma and fma4.
3395 (enabled): Handle fma and fma4.
3396 * config/i386/sse.md (*fma_fmadd_<mode>): Merge *fma4_fmadd_<mode>.
3397 (*fma_fmsub_<mode>): Merge *fma4_fmsub_<mode>.
3398 (*fma_fnmadd_<mode>): Merge *fma4_fnmadd_<mode>.
3399 (*fma_fnmsub_<mode>): Merge *fma4_fnmsub_<mode>.
3400 (*fma_fmaddsub_<mode>): Merge *fma4_fmaddsub_<mode>.
3401 (*fma_fmsubadd_<mode>): Merge *fma4_fmsubadd_<mode>.
3402
35811e21 34032012-08-10 Uros Bizjak <ubizjak@gmail.com>
3404
3405 * config/i386/sse.md (*fma_fmadd_<mode>, *fma_fmsub_<mode>,
3406 *fma_fnmadd_<mode>, *fma_fnmsub_<mode>, *fma_fmaddsub_<mode>,
3407 *fma_fmsubadd_<mode>): Move FMA3 insn patterns before FMA4 patterns.
3408
0c74ae31 34092012-08-10 Uros Bizjak <ubizjak@gmail.com>
3410
3411 * config/i386/i386.md (simple LEA peephole2s): Add zero-extend
3412 variants of PLUS and MULT simple LEA patterns. Disable PLUS
3413 patterns for TARGET_OPT_AGU.
3414
fa62b5da 34152012-08-10 Richard Guenther <rguenther@suse.de>
3416
3417 * Makefile.in (OBJS): Remove matrix-reorg.o.
3418 (matrix-reorg.o): Remove dependence rule.
3419 (GTFILES): Remove matrix-reorg.c.
3420 * matrix-reorg.c: Remove.
3421 * passes.c (init_optimization_passes): Do not schedule
3422 pass_ipa_matrix_reorg.
3423 * tree-pass.h (pass_ipa_matrix_reorg): Remove.
3424 * common.opt (fipa-matrix-reorg): Stub out.
3425 * doc/invoke.texi (fipa-matrix-reorg): Remove documentation.
3426
d962ee89 34272012-08-10 Richard Guenther <rguenther@suse.de>
3428
3429 PR middle-end/54219
3430 * fold-const.c (fold_ternary_loc): Do not reverse the mask
3431 when canonicalizing it when folding VEC_PERM_EXPR.
3432
fd291195 34332012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3434
3435 PR middle-end/54211
3436 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
3437 Use cand_type to determine whether pointer arithmetic will be generated.
3438
097cb0d9 34392012-08-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3440
3441 * doc/sourcebuild.texi: Document long_neq_int effective target.
3442
89005b31 34432012-08-10 Richard Guenther <rguenther@suse.de>
3444
3445 PR tree-optimization/54109
3446 * tree-ssa-forwprop.c
3447 (forward_propagate_addr_into_variable_array_index): Remove.
3448 (forward_propagate_addr_expr_1): Adjust.
3449
3e74e534 34502012-08-10 Richard Guenther <rguenther@suse.de>
3451
3452 * tree-cfg.c (dump_function_to_file): Make sure to dump
3453 anonymous SSA names when there are no local decls.
3454
2670407e 34552012-08-10 Steven Bosscher <steven@gcc.gnu.org>
3456
3457 * tree-ssa-pre.c (alloc_expression_id): Fix use of VEC_reserve.
3458 * tree-into-ssa.c (get_ssa_name_ann): Likewise.
3459 (mark_phi_for_rewrite): Likewise.
3460 (compute_global_livein): Use VEC_reserve outside the innermost
3461 loop and VEC_quick_push instead of VEC_safe_push in that loop.
3462 (update_ssa): Re-organize to avoid unnecessary sbitmap_zero'ing
3463 of new_ssa_names and old_ssa_names. Allocate phis_to_rewrite to
3464 the correct initial size.
3465
03d37e4e 34662012-08-10 Richard Guenther <rguenther@suse.de>
3467
3468 * tree-ssa-pre.c (pretemp, storetemp, prephitemp): Remove.
3469 (need_creation): Remove.
3470 (get_representative_for): Use anonymous named SSA names.
3471 (create_expression_by_pieces): Likewise.
3472 (insert_into_preds_of_block): Likewise.
3473 (init_pre): Do not init removed vars.
3474 (fini_pre): Do not free need_creation.
3475 * tree-ssa-forwprop.c (simplify_bitwise_binary): Use anonymous
3476 SSA names.
3477 * tree-ssa-loop-manip.c (create_iv): Likewise.
3478 * value-prof.c (gimple_divmod_fixed_value): Likewise.
3479 (gimple_mod_pow2): Likewise.
3480 (gimple_mod_subtract): Likewise.
3481 (gimple_ic): Likewise.
3482 (gimple_stringop_fixed_value): Likewise.
3483 * tree-ssa-phiopt.c (condstoretemp): Remove.
3484 (tree_ssa_phiopt_worker): Use anonymous named SSA names.
3485 (conditional_replacement): Likewise.
3486 (abs_replacement): Likewise.
3487 (cond_store_replacement): Likewise.
3488 (cond_if_else_store_replacement_1): Likewise.
3489 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
3490 (rewrite_bittest): Likewise.
3491 * tree-ssa-reassoc.c (build_and_add_sum): Get type from callers
3492 and build anonymous SSA names.
3493 (undistribute_ops_list): Adjust.
3494 (eliminate_redundant_comparison): Use anonymous SSA names.
3495 (rewrite_expr_tree_parallel): Likewise.
3496 (get_reassoc_pow_ssa_name): Remove.
3497 (attempt_builtin_powi): Adjust.
3498 (reassociate_bb): Likewise.
3499 * tree-ssa-strlen.c (get_string_length): Use anonymous SSA names.
3500 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
3501 (build_arrays): Likewise.
3502 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
3503 (create_tailcall_accumulator): Likewise.
3504 * tree-vect-generic.c (expand_vector_divmod): Likewise.
3505 * tree-profile.c (gcov_type_tmp_var): Remove.
3506 (gimple_init_edge_profiler): Do not initialize it and use anonymous
3507 SSA names.
3508 (gimple_gen_ic_profiler): Likewise.
3509 (tree_profiling): Adjust.
3510 * tree-sra.c (build_ref_for_offset): Use anonymous SSA names.
3511 * tree-ssa-math-opts.c (execute_cse_sincos_1): Likewise.
3512 (powi_as_mults_1): Likewise.
3513 (powi_as_mults): Likewise.
3514 (build_and_insert_call): Adjust.
3515 (build_and_insert_binop): Likewise.
3516 (build_and_insert_ref): Likewise.
3517 (build_and_insert_cast): Likewise.
3518 (gimple_expand_builtin_pow): Likewise.
3519 (gimple_expand_builtin_cabs): Likewise.
3520 (execute_optimize_bswap): Use anonymous SSA names.
3521 (convert_mult_to_widen): Likewise.
3522 (convert_plusminus_to_widen): Likewise.
3523 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3524 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
3525 * tree-if-conv.c (ifc_temp_var): Likewise.
3526 * tree-loop-distribution.c (generate_memset_builtin): Likewise.
3527 * tree-parloops.c (take_address_of): Likewise.
3528 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise.
3529 (vect_permute_load_chain): Likewise.
3530 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
3531 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
3532 (vect_handle_widen_op_by_const): Likewise.
3533 (vect_operation_fits_smaller_type): Likewise.
3534 (vect_recog_over_widening_pattern): Likewise.
3535 * tree-vect-stmts.c (vect_init_vector): Likewise.
3536 * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
3537 (simplify_float_conversion_using_ranges): Likewise.
3538
e0de8513 35392012-08-10 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3540
0c74ae31 3541 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix
3542 target mask of __builtin_ia32_rdseed_di_step builtin.
e0de8513 3543
e208bd44 35442012-08-10 Richard Guenther <rguenther@suse.de>
3545
3546 PR tree-optimization/54027
3547 * tree-vrp.c (extract_range_from_binary_expr_1): Merge RSHIFT_EXPR
3548 and LSHIFT_EXPR handling, force -fwrapv for the multiplication used
3549 to handle LSHIFT_EXPR with a constant.
3550
ec11736b 35512012-08-10 Richard Guenther <rguenther@suse.de>
3552
3553 * tree.h (SSA_NAME_VAR): Return NULL_TREE if an IDENTIFIER_NODE
3554 is recorded as var.
3555 (SSA_NAME_IDENTIFIER): Return the IDENTIFIER_NODE of the SSA_NAME
3556 or its SSA_NAME_VAR.
3557 (SET_SSA_NAME_VAR_OR_IDENTIFIER): New setter.
3558 * tree-ssanames.c (make_ssa_name_fn): Handle creating anonymous
3559 SSA names by passing a type instead of a variable decl.
3560 (release_ssa_name): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
3561 (copy_ssa_name_fn): Handle anonymous SSA names.
3562 (replace_ssa_name_symbol): Use SET_SSA_NAME_VAR_OR_IDENTIFIER.
3563 * tree-flow-inline.h (make_temp_ssa_name): New inline function.
3564 * tree-pretty-print.c (dump_generic_node): Use SSA_NAME_IDENTIFIER,
3565 dump SSA names without a name as <anon>.
3566 * cfgexpand.c (expand_used_vars): Assing anonymous SSA names we are
3567 going to expand a decl.
3568 (gimple_expand_cfg): Assign all SSA names of a partition the
3569 decl we created for its leader.
3570 * tree-ssa.c (target_for_debug_bind): Handle SSA_NAMEs.
3571 (verify_ssa_name): Handle anonymous SSA names.
3572 (verify_def): Likewise.
3573 * tree-predcom.c (eliminate_temp_copies): Likewise.
3574 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3575 * tree-ssa-live.c (var_map_base_init): Compute conflicts for
3576 anonymous SSA names with the same type.
3577 (mark_all_vars_used_1): Handle anonymous SSA names.
3578 (verify_live_on_entry): Likewise.
3579 * tree-ssa-coalesce.c (abnormal_corrupt): Remove.
3580 (create_outofssa_var_map): Adjust with respect to conflicts we
3581 compute for anonymous SSA names. Do not restrict abnormal
3582 coalescing.
3583 (coalesce_partitions): Do not restrict abnormal coalescing.
3584 Assert we only ever coalesce variables we computed conflicts for.
3585 * tree-ssa-ter.c (process_replaceable): Do not restrict TER
3586 of anonymous names.
3587 * expr.c (expand_expr_real_1): Handle anonymous SSA names
3588 expanded from IVOPTs by creating a raw REG here.
3589 * tree-cfg.c (replace_ssa_name): Handle anonymous SSA names.
3590 (dump_function_to_file): Dump anonymous SSA names alongside
3591 with their types in the variable list.
3592 (verify_gimple_return): Guard use of SSA_NAME_VAR.
3593 * tree-into-ssa.c (mark_for_renaming): Handle a NULL symbol.
3594 (rewrite_into_ssa): Make SSA names anonymous.
3595 * tree-ssa-structalias.c (alias_get_name): Rewrite.
3596 * tree-ssa-uninit.c (ssa_undefined_value_p): Handle anonymous
3597 SSA names.
3598 (warn_uninitialized_phi): Likewise.
3599 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Defer expanding
3600 anonymous SSA names to the expander.
3601 (determine_iv_cost): Anonymous SSA names are artificial.
3602 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
3603 Handle anonymous SSA names.
3604 * lto-streamer-out.c (output_ssa_names): Stream SSA_NAME_VAR
3605 or if NULL, the type of the SSA name.
3606 * tree-inline.c (remap_ssa_name): Handle anonymous SSA names,
3607 remap names as anonymous where appropriate.
3608 (insert_init_stmt): Pass SSA names down to insert_init_debug_bind.
3609 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Adjust
3610 according to what we create conflicts for in out-of-SSA
3611 coalescing.
3612 * tree-parloops.c (separate_decls_in_region_name): Handle
3613 anonymous SSA names.
3614 (add_field_for_name): Likewise.
3615 * tree.c (get_name): Handle SSA names.
3616 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Defer to get_name for
3617 SSA_NAMEs.
3618 * tree-vect-loop-manip.c (adjust_debug_stmts): Use
3619 virtual_operand_p.
3620 * tree-sra.c (create_access_replacement): Give up generating
3621 a DECL_DEBUG_EXPR for SSA names in the memory reference.
3622 (replace_removed_params_ssa_names): Guard use of SSA_NAME_VAR.
3623 * tree-complex.c (get_component_ssa_name): Handle anonymous
3624 SSA names.
3625 (set_component_ssa_name): Likewise.
3626 * tree-ssa-sccvn.c (visit_reference_op_load): Likewise.
3627 * tree-object-size.c (collect_object_sizes_for): Handle
3628 uninitialized SSA names properly.
3629 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Guard use of
3630 SSA_NAME_VAR.
3631 * ipa-split.c (test_nonssa_use): Likewise.
3632 (consider_split): Likewise.
3633 (mark_nonssa_use): Likewise.
3634
6331b6fa 36352012-08-09 Jan Hubicka <jh@suse.cz>
3636
3637 PR middle-end/54146
3638 * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY
3639 parameter; honnor it.
3640 * ipa-inline.c (recursive_inlining): Update call
3641 of inline_call.
3642 (inline_small_functions): Likewise.
3643 (ipa_inline): Likewise.
3644 (inline_always_inline_functions): Likewise.
3645 (early_inline_small_functions): Likewise.
3646 (flatten_function): Do separate update of summary info.
3647 * ipa-inline.h (inline_update_overall_summary): Declare.
3648 (inline_call): Update.
3649 * ipa-inline-analysis.c (inline_merge_summary): Break out
3650 updating code to ...
3651 (inline_update_overall_summary): Likewise.
3652
77e58889 36532012-08-09 Richard Henderson <rth@redhat.com>
3654
99274008 3655 * config/s390/s390.c (s390_expand_insv): Use VOIDmode in gen_rtx_SET.
3656
77e58889 3657 * config/s390/s390.c (s390_expand_cs_hqi): Copy val to a temp before
3658 performing the compare for the restart loop.
3659
8bcf96c6 36602012-08-09 DJ Delorie <dj@redhat.com>
3661
3662 * config/rl78/rl78.c (rl78_alloc_physical_registers): Check for
3663 SET before extracting SET_SRC.
3664 (rl78_remove_unused_sets): Check for REG before extractnig REGNO.
3665
55c71520 36662012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
3667
3668 PR target/54089
3669 * config/sh/sh-protos (shift_insns_rtx): Delete.
3670 (sh_ashlsi_clobbers_t_reg_p): Add.
3671 * config/sh/sh.c (shift_insns, shift_amounts, ext_shift_insns,
3672 ext_shift_amounts): Merge arrays of ints to array of structs.
3673 Adapt usage of arrays throughout the file.
3674 (shift_insns_rtx): Delete unused function.
3675 (sh_ashlsi_clobbers_t_reg_p): New function.
3676 * config/sh/sh.md (ashlsi3): Emit ashlsi3_n_clobbers_t insn if the
3677 final shift sequence will clobber T_REG.
3678 (ashlsi3_n): Split only if the final shift sequence will not
3679 clobber T_REG.
3680 (ashlsi3_n_clobbers_t): New insn_and_split.
3681
156093aa 36822012-08-09 Steven Bosscher <steven@gcc.gnu.org>
3683
3684 * calls.c (mem_overlaps_already_clobbered_arg_p): Use SBITMAP_SIZE
3685 instead of looking at sbitmap n_bits member directly.
3686 * gcse.c (hoist_code): Likewise.
3687 * sched-rgn.c (split_edges): Likewise.
3688 * tree-into-ssa.c (is_old_name, is_new_name, add_new_name_mapping,
3689 update_ssa): Likewise.
3690
58e068ca 36912012-08-09 Uros Bizjak <ubizjak@gmail.com>
3692
3693 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Return preferred
3694 single unit register class for classes that contain registers form
3695 multiple units.
3696 (REG_CLASS_CONTENTS): Add missing "frame" register to FLOAT_INT_REGS,
3697 INT_SSE_REGS and FLOAT_INT_SSE_REGS register classes.
3698
0d491188 36992012-08-09 Martin Jambor <mjambor@suse.cz>
3700
3701 * cgraph.h (cgraph_indirect_call_info): Field anc_offse renamd to
3702 offset, updated all users. New field agg_contents.
3703 * ipa-prop.h (jump_func_type): Removed IPA_JF_CONST_MEMBER_PTR.
3704 (ipa_pass_through_data): New field agg_preserved.
3705 (ipa_ancestor_jf_data): Likewise.
3706 (ipa_member_ptr_cst): Removed.
3707 (ipa_agg_jf_item): New type.
3708 (ipa_agg_jump_function): Likewise.
3709 (ipa_jump_func): New field agg. Removed field member_cst.
3710 (ipa_get_jf_pass_through_agg_preserved): New function.
3711 (ipa_get_jf_ancestor_agg_preserved): Likewise.
3712 (ipa_get_jf_member_ptr_pfn): Removed.
3713 (ipa_find_agg_cst_for_param): Declare.
3714 (ipa_load_from_parm_agg): Likewise.
3715 * ipa-prop.c (param_analysis_info): Fields modified and
3716 visited_statements rename to parm_modified and parm_visited_statements
3717 respectively, added fields ref_modified, ref_visited_statements,
3718 pt_modified and pt_visited_statements.
3719 (ipa_print_node_jump_functions_for_edge): Do not dump const member
3720 functions. Dump agg_preserved flags and aggregate jump functions.
3721 (ipa_set_jf_simple_pass_through): Set also agg_preserved.
3722 (ipa_set_ancestor_jf): Likewise.
3723 (ipa_set_jf_arith_pass_through): Clear agg_preserved.
3724 (ipa_set_jf_member_ptr_cst): Removed.
3725 (is_parm_modified_before_stmt): Logic reversed, renamed to
3726 parm_preserved_before_stmt_p. Cache visited bitmap only for
3727 naked DECL parameters. All callers updated.
3728 (load_from_unmodified_param): Allow NULL parms_ainfo.
3729 (parm_ref_data_preserved_p): New function.
3730 (parm_ref_data_pass_through_p): Likewise.
3731 (ipa_load_from_parm_agg_1): Likewise.
3732 (ipa_load_from_parm_agg): Likewise.
3733 (compute_complex_assign_jump_func): Check if aggregate contents are
3734 preserved.
3735 (compute_complex_ancestor_jump_func): Likewise.
3736 (compute_scalar_jump_functions): Removed.
58e068ca 3737 (type_like_member_ptr_p): Also check field position are known and sane.
0d491188 3738 (compute_pass_through_member_ptrs): Removed.
3739 (determine_cst_member_ptr): Likewise.
3740 (ipa_known_agg_contents_list): New type.
3741 (determine_known_aggregate_parts): New function.
3742 (compute_cst_member_ptr_arguments): Removed.
3743 (ipa_compute_jump_functions_for_edge): Compute all kinds of jump
3744 functions (scalar, aggregate and member pointer).
3745 (ipa_get_member_ptr_load_param): Incorporate into
3746 ipa_get_stmt_member_ptr_load_param, also pass back an offset.
3747 (ipa_note_param_call): Clear agg_contents.
3748 (ipa_analyze_indirect_call_uses): Also look for simple pointers loaded
3749 from aggregates. In such cases, store offset of the called field.
3750 (ipa_analyze_node): Initialize new fields of param_analysis_info.
3751 (update_jump_functions_after_inlining): Handle aggregate contents.
3752 (ipa_find_agg_cst_for_param): New function.
3753 (try_make_edge_direct_simple_call): Handle called aggregate values.
3754 (update_indirect_edges_after_inlining): Make sure aggregate preserving
3755 jump functions comply with type compatibility requirements.
3756 (ipa_edge_duplication_hook): Copy also aggregate jump functions.
3757 (ipa_write_jump_function): Stream agg_preserved flags and aggregate
3758 jump functions. Do not stream member pointer constant jump functions.
3759 (ipa_read_jump_function): Likewise.
3760 (ipa_write_indirect_edge_info): Stream new cgraph_indirect_call_info
3761 fields.
3762 (ipa_read_indirect_edge_info): Likewise.
3763
572e04f2 37642012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
3765
3766 PR target/39423
3767 * config/sh/predicates.md (mem_index_disp_operand): New predicate.
3768 * config/sh/sh.md (*movsi_index_disp): Rewrite insns to use the new
3769 mem_index_disp_operand predicate.
3770
3ba0d068 37712012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
3772
3773 PR target/51244
3774 * config/sh/sh.md: Add negc extu sequence peephole.
3775 (movrt, movnegt, movrt_negc, nott): Use t_reg_operand predicate.
3776 (*movrt_negc): New insn.
3777 * config/sh/sync.md (atomic_test_and_set): Pass gen_t_reg_rtx to
3778 gen_movnegt.
3779 * config/sh/sh.c (expand_cbranchsi4, sh_emit_scc_to_t,
58e068ca 3780 sh_emit_compare_and_branch, sh_emit_compare_and_set): Use
3781 get_t_reg_rtx.
3ba0d068 3782 (sh_expand_t_scc): Pass gen_t_reg_rtx to gen_movnegt.
3783
5e8ad22e 37842012-08-09 Oleg Endo <olegendo@gcc.gnu.org>
3785
3786 PR target/50751
3787 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg):
3788 Use arith_reg_operand predicate instead of register_operand.
3789 * config/sh/predicates.md (movsrc_no_disp_mem_operand): Accept
3790 only mem, simplify.
3791
0578f206 37922012-08-09 Uros Bizjak <ubizjak@gmail.com>
3793
0c74ae31 3794 * config/alpha/alpha.c (alpha_pad_noreturn): Rename to ...
3795 (alpha_pad_function_end): ... this. Also insert NOP between
3796 sibling call and GP load.
3797 (alpha_reorg): Update call to alpha_pad_function_end. Expand comment.
0578f206 3798
cf045d37 37992012-08-09 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3800
3801 * config/i386/adxintrin.h: Remove guarding __ADX__ check.
3802 * config/i386/x86intrin.h: Likewise.
3803 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove
3804 OPTION_MASK_ISA_ADX from needed options for
3805 __builtin_ia32_addcarryx_u32 and __builtin_ia32_addcarryx_u64.
3806 (ix86_expand_builtin): Use add<mode>3_carry in expanding of
3807 IX86_BUILTIN_ADDCARRYX32 and IX86_BUILTIN_ADDCARRYX64.
3808
846800d7 38092012-08-09 Andrey Belevantsev <abel@ispras.ru>
3810
3811 PR rtl-optimization/53701
3812 * sel-sched.c (vinsn_vec_has_expr_p): Clarify function comment.
3813 Process not only expr's vinsns but all old vinsns from expr's
3814 history of changes.
0578f206 3815 (update_and_record_unavailable_insns): Clarify comment.
846800d7 3816
3efd0ea8 38172012-08-09 Bernd Schmidt <bernds@codesourcery.com>
3818
3819 * reload.c (find_valid_class_1): New static function.
3820 (push_reload): Use it when reloading a SYMBOL_REG as the inner
3821 of a subreg. Keep better track of needed classes for the
3822 secondary memory case.
3823 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Limit INT_SSE_REGS to
3824 GENERAL_REGS.
3825 * reload1.c (replaced_subreg): New static function.
3826 (gen_reload): Use it when deciding whether to use secondary
3827 memory.
3828
2f4ec87c 38292012-08-09 Richard Guenther <rguenther@suse.de>
3830
3831 * tree.h (SSA_VAR_P): Simplify.
3832 * tree-ssanames.c (make_ssa_name_fn): Strengthen assert.
3833 * fold-const.c (fold_comparison): Check for default def first
3834 before checking for PARM_DECL.
3835 * tree-complex.c (get_component_ssa_name): Likewise.
3836 * tree-inline.c (remap_ssa_name): Likewise.
3837 * tree-ssa-loop-ivopts.c (parm_decl_cost): Likewise.
3838 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
3839 (find_what_p_points_to): Likewise.
3840 * tree-ssa-operands.c (add_stmt_operand): Simplify.
3841
2d079d18 38422012-08-08 Joseph Myers <joseph@codesourcery.com>
3843
3844 * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
3845 IOR to a constant if one operand has side effects.
3846
c401b131 38472012-08-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3848
3849 * builtins.c (expand_builtin_atomic_compare_exchange): Pass old
3850 value operand as MEM to expand_atomic_compare_and_swap.
3851
3852 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Accept
3853 nonimmediate_operand for old value; generate load and store if
3854 needed.
3855 * config/s390/s390.c (s390_expand_cs_hqi): Accept any operand
3856 as vtarget.
3857
2cd70aa2 38582012-08-08 Steven Bosscher <steven@gcc.gnu.org>
3859
3860 PR middle-end/54146
3861 * gimpify.c (gimplify_body): Only verify_gimple_in_seq with
3862 checking enabled.
3863 * tree-ssa-loop-manip.c (add_exit_phis_var): Assert that var is
3864 a gimple_reg if checking is enabled.
3865 (find_uses_to_rename_stmt): Only look at non-virtual USE operands.
3866 * tree-into-ssa (compute_global_livein): Change the worklist
3867 type from an array to a VEC.
3868
0087edc6 38692012-08-08 Richard Guenther <rguenther@suse.de>
3870
3871 * tree-ssa-operands.h (virtual_operand_p): Declare.
3872 * tree-ssa-operands.c (virtual_operand_p): New predicate.
3873 * gimple.c (is_gimple_reg): Use virtual_operand_p.
3874 * tree-into-ssa.c (prepare_block_for_update): Likewise.
3875 * tree-vect-loop-manip.c (adjust_debug_stmts): Likewise.
3876
7ecda5e8 38772012-08-08 Richard Guenther <rguenther@suse.de>
3878
3879 * tree-call-cdce.c (check_pow): Simplify.
3880 (gen_conditions_for_pow_int_base): Likewise.
3881 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not handle
3882 virtual operands here.
3883 * tree-ssa-operands.c (get_name_decl): Remove unused function.
3884 * gimplify.c (gimple_regimplify_operands): Remove dead code.
3885 * tree-vrp.c (get_value_range): Move SSA_NAME_VAR access.
3886 * tree-parloops.c (create_phi_for_local_result): Use copy_ssa_name.
3887 * value-prof.c (gimple_ic): Use duplicate_ssa_name.
3888 (gimple_stringop_fixed_value): Likewise.
3889 * tree.c (needs_to_live_in_memory): Remove SSA name handling.
3890 * tree-stdarg.c (find_va_list_reference): Store SSA_NAME_VERSIONs
3891 in the bitmap alongside shifted DECL_UIDs.
3892 (va_list_counter_struct_op): Likewise.
3893 (va_list_ptr_read): Likewise.
3894 (va_list_ptr_write): Likewise.
3895 (check_va_list_escapes): Likewise.
3896 (check_all_va_list_escapes): Likewise.
3897 (execute_optimize_stdarg): Likewise.
3898 * tree-outof-ssa.c (insert_backedge_copies): Use copy_ssa_name.
3899
44f67683 39002012-08-08 Richard Sandiford <rdsandiford@googlemail.com>
3901 H.J. Lu <hongjiu.lu@intel.com>
3902
3903 PR rtl-optimization/54157
3904 * combine.c (gen_lowpart_for_combine): Don't return identity
3905 for CONST or symbolic reference.
3906
2cd70aa2 39072012-08-08 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
41bc5727 3908
3909 * common/config/i386/i386-common.c (OPTION_MASK_ISA_ADX_SET): New.
3910 (OPTION_MASK_ISA_ADX_UNSET): Likewise.
3911 (ix86_handle_option): Handle madx option.
3912 * config.gcc (i[34567]86-*-*): Add adxintrin.h.
3913 (x86_64-*-*): Likewise.
3914 * config/i386/adxintrin.h: New header.
3915 * config/i386/driver-i386.c (host_detect_local_cpu): Detect ADCX/ADOX
3916 support.
3917 * config/i386/i386-builtin-types.def
3918 (UCHAR_FTYPE_UCHAR_UINT_UINT_PUNSIGNED): New function type.
3919 (UCHAR_FTYPE_UCHAR_ULONGLONG_ULONGLONG_PULONGLONG): Likewise.
3920 * config/i386/i386-c.c: Define __ADX__ if needed.
3921 * config/i386/i386.c (ix86_target_string): Define -madx option.
3922 (PTA_ADX): New.
3923 (ix86_option_override_internal): Handle new option.
3924 (ix86_valid_target_attribute_inner_p): Add OPT_madx.
3925 (ix86_builtins): Add IX86_BUILTIN_ADDCARRYX32,
3926 IX86_BUILTIN_ADDCARRYX64.
3927 (ix86_init_mmx_sse_builtins): Define corresponding built-ins.
3928 (ix86_expand_builtin): Handle these built-ins.
3929 (ix86_expand_args_builtin): Handle new function types.
3930 * config/i386/i386.h (TARGET_ADX): New.
3931 * config/i386/i386.md (adcx<mode>3): New define_insn.
3932 * config/i386/i386.opt (madx): New.
3933 * config/i386/x86intrin.h: Include adxintrin.h.
3934
0e9edc6e 39352012-08-08 Nick Clifton <nickc@redhat.com>
3936
3937 * config/rl78/rl78.c: Include tree-pass.h.
3938
7d75ffa3 39392012-08-08 Steven Bosscher <steven@gcc.gnu.org>
3940
1076ab34 3941 PR middle-end/54146
3942 * ira.c (init_live_subregs): Take live_subregs_used as a bitmap.
3943 (build_insn_chain): Make live_subregs_used a bitmap.
3944 Use SBITMAP_SIZE to ignore the paradoxical bytes of subregs.
3945 Use sbitmap_free to free the live_subreg sbitmaps.
3946
7d75ffa3 3947 PR middle-end/54146
3948 * ifcvt.c: Include pointer-set.h.
3949 (cond_move_process_if_block): Change type of then_regs and
3950 else_regs from alloca'd array to pointer_sets.
3951 (check_cond_move_block): Update for this change.
3952 (cond_move_convert_if_block): Likewise.
3953 * Makefile.in: Fix dependencies for ifcvt.o.
3954
9ce0359e 39552012-08-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3956
3957 * gimple-ssa-strength-reduction.c (struct incr_info_d): New struct.
3958 (incr_vec): New static var.
3959 (incr_vec_len): Likewise.
3960 (address_arithmetic_p): Likewise.
3961 (stmt_cost): Remove dead assignment.
3962 (dump_incr_vec): New function.
3963 (cand_abs_increment): Likewise.
3964 (lazy_create_slsr_reg): Likewise.
3965 (incr_vec_index): Likewise.
3966 (count_candidates): Likewise.
3967 (record_increment): Likewise.
3968 (record_increments): Likewise.
3969 (unreplaced_cand_in_tree): Likewise.
3970 (optimize_cands_for_speed_p): Likewise.
3971 (lowest_cost_path): Likewise.
3972 (total_savings): Likewise.
3973 (analyze_increments): Likewise.
3974 (ncd_for_two_cands): Likewise.
3975 (nearest_common_dominator_for_cands): Likewise.
3976 (profitable_increment_p): Likewise.
3977 (insert_initializers): Likewise.
3978 (introduce_cast_before_cand): Likewise.
3979 (replace_rhs_if_not_dup): Likewise.
3980 (replace_one_candidate): Likewise.
3981 (replace_profitable_candidates): Likewise.
3982 (analyze_candidates_and_replace): Handle candidates with SSA-name
3983 strides.
3984
5f7f600e 39852012-08-07 Steven Bosscher <steven@gcc.gnu.org>
3986
3987 * cfg.c (debug_bb): Do not set TDF_BLOCKS.
3988 * cfghooks.c (dump_bb): Honor ~TDF_BLOCKS.
3989 * pretty-print.c (pp_base_flush): Do not add a newline, and do not
3990 clear pp_needs_newline.
3991 * pretty-print.h (pp_newline_and_flush): New macro with the behavior
3992 of pp_base_flush before the above change.
3993 * langhooks.c (lhd_print_error_function): Use pp_newline_and_flush
3994 instead of pp_flush.
3995 * diagnostic.c (diagnostic_finish): Likewise.
3996 (diagnostic_report_diagnostic): Likewise.
3997 (verbatim): Likewise.
3998 (error_recursion): Likewise.
3999 * tree-pretty-print.c (print_generic_stmt): Likewise.
4000 (print_generic_stmt_indented): LIkewise.
4001 * gimple-pretty-print.c (print_gimple_stmt): Likewise.
4002 (print_gimple_seq): Likewise.
4003 (gimple_dump_bb_buff): Likewise.
4004
aba55a9c 40052012-08-07 Uros Bizjak <ubizjak@gmail.com>
4006
ffc5b2da 4007 PR debug/54177
aba55a9c 4008 * var-tracking.c (var_lowpart): Exit early for matched modes.
4009
8c753480 40102012-08-07 Richard Henderson <rth@redhat.com>
4011
4012 * config/s390/s390.c (s390_emit_compare_and_swap): Update for
4013 atomic_compare_and_swapsi_internal name change.
4014 (s390_expand_insv): Try RISBG last, not requiring operands in
4015 registers but forcing them there. Try a limited form of ICM.
4016 (s390_two_part_insv): New.
4017 (s390_expand_cs_hqi): Use it. Update for atomic optabs.
4018 * config/s390/s390.md (UNSPEC_MOVA): New.
4019 (TDSI): Remove mode iterator.
4020 (DGPR, DINT, TDI): New mode iterators.
4021 (td): New mode attribute.
4022 (mem_signal_fence): New.
4023 (mem_thread_fence): Rename from memory_barrier; update for model arg.
4024 (mem_thread_fence_1): Rename from *memory_barrier.
4025 (atomic_load<DINT>, atomic_store<DINT>): New expanders.
4026 (atomic_loaddi_1, atomic_loadti_1): New.
4027 (atomic_storedi_1, atomic_storeti_1): New.
4028 (sync_compare_and_swap<TDSI>, sync_compare_and_swap<HQI>): Remove.
4029 (atomic_compare_and_swap<DGPR>, atomic_compare_and_swap<HQI>): New.
4030 (atomic_compare_and_swap<DGPR>_internal): New.
4031 (*sync_compare_and_swap<DW>, *sync_compare_and_swap<GPR>): Remove.
4032 (*atomic_compare_and_swap<TDI>_1): New.
4033 (*atomic_compare_and_swapdi_2, *atomic_compare_and_swapsi_3): New.
4034 (sync_<ATOMIC_Z196><GPR>, sync_old_<ATOMIC_Z196><GPR>): Remove.
4035 (atomic_fetch_<ATOMIC_Z196><GPR>): New.
4036 (atomic_fetch_<ATOMC_Z196><GPR>_iaf): New.
4037 (sync_<ATOMIC><HQI>, sync_old_<ATOMIC><HQI>): Remove.
4038 (sync_new_<ATOMIC><HQI>): Remove.
4039 (atomic_<ATOMIC><HQI>, atomic_fetch_<ATOMIC><HQI>): New.
4040 (atomic_<ATOMIC>_fetch<HQI>): New.
4041 (sync_lock_test_and_set<HQI>): Remove.
4042 (atomic_exchange<HQI>): New.
4043
1b15c18e 40442012-08-07 Paul Brook <paul@codesourcery.com>
4045 Sandra Loosemore <sandra@codesourcery.com>
4046
4047 * except.c (switch_to_exception_section): Place tables for
4048 DECL_ONE_ONLY functions in comdat groups.
4049
874117c8 40502012-08-07 Richard Guenther <rguenther@suse.de>
4051
4052 * tree-flow.h (copy_ssa_name_fn): New function.
4053 (duplicate_ssa_name_fn): Likewise.
4054 * tree-flow-inline.h (copy_ssa_name): New function.
4055 (duplicate_ssa_name): Likewise.
4056 * tree-ssanames.c (copy_ssa_name_fn): New function.
4057 (duplicate_ssa_name): Rename to ...
4058 (duplicate_ssa_name_fn): ... this and adjust.
4059 * tree-tailcall.c (update_accumulator_with_ops): Use copy_ssa_name.
ffc5b2da 4060 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
4061 Likewise.
874117c8 4062 (slpeel_update_phi_nodes_for_guard2): Likewise.
4063 (slpeel_tree_peel_loop_to_edge): Likewise.
4064 (vect_loop_versioning): Likewise.
4065 * tree-parloops.c (transform_to_exit_first_loop): Likewise.
4066 (create_parallel_loop): Likewise.
4067 * ipa-split.c (split_function): Likewise.
4068 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
4069 (vect_create_epilog_for_reduction): Likewise.
4070 * tree-vect-data-refs.c (bump_vector_ptr): Likewise.
4071 (vect_setup_realignment): Likewise.
4072 * tree-vect-stmts.c (vectorizable_load): Likewise.
4073 * tree-switch-conversion.c (build_one_array): Likewise.
4074 (gen_def_assigns): Likewise.
4075 * tree-cfg.c (gimple_make_forwarder_block): Likewise.
4076 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
4077 create_zero_dim_array with the SSA name.
4078 (rewrite_phi_out_of_ssa): Likewise.
4079 (rewrite_cross_bb_scalar_dependence): Likewise. Use copy_ssa_name.
4080
1ba198c0 40812012-08-07 Richard Guenther <rguenther@suse.de>
4082
4083 * tree-dfa.c (set_ssa_default_def): Clear the SSA_NAME_DEFAULT_DEF
4084 bit of the old name when we clear the slot.
4085 * tree-ssa-live.c (remove_unused_locals): Release any default
4086 def associated with an unused var.
4087 * tree-ssa-copy.c (may_propagate_copy_into_asm): Always return true.
4088
eb54054d 40892012-08-07 Richard Guenther <rguenther@suse.de>
4090
4091 * tree-into-ssa.c (rewrite_stmt): Remove clobbers for variables
4092 we rewrite into SSA form.
4093 (rewrite_enter_block): Adjust.
4094 * gimple-iterator.c (gsi_replace): Also allow replacement with
4095 a stmt without a lhs.
4096 * tree-ssa-live.c (remove_unused_locals): Remove code handling
4097 clobbers of SSA names.
4098 * tree-nested.c (convert_local_reference_stmt): Remove clobbers
4099 for variables we access through the local chain.
4100 * tree-cfg.c (verify_gimple_assign_single): Verify clobbers
4101 clobber full decls only.
4102
9c06f260 41032012-08-07 Richard Guenther <rguenther@suse.de>
4104
4105 * gimple.h (gimple_phi_set_result): Adjust SSA_NAME_DEF_STMT.
4106 * tree-phinodes.c (make_phi_node): Allow a NULL var.
4107 * tree-into-ssa.c (insert_phi_nodes_for): Simplify.
4108 * tree-complex.c (update_phi_components): Likewise.
4109 * tree-ssa-loop-manip.c (create_iv): Likewise.
4110 (add_exit_phis_edge): Likewise.
4111 (split_loop_exit_edge): Likewise.
4112 (tree_transform_and_unroll_loop): Likewise.
4113 * value-prof.c (gimple_ic): Likewise.
4114 (gimple_stringop_fixed_value): Likewise.
4115 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
4116 * omp-low.c (expand_parallel_call): Likewise.
4117 (expand_omp_for_static_chunk): Likewise.
4118 (expand_omp_atomic_pipeline): Likewise.
4119 * tree-parloops.c (create_phi_for_local_result): Likewise.
4120 (transform_to_exit_first_loop): Likewise.
4121 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
4122 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
4123 * tree-predcom.c (initialize_root_vars): Likewise.
4124 (initialize_root_vars_lm): Likewise.
4125 * sese.c (sese_add_exit_phis_edge): Likewise.
4126 * gimple-streamer-in.c (input_phi): Likewise.
4127 * tree-inline.c (copy_phis_for_bb): Likewise.
4128 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4129 * tree-cfg.c (gimple_make_forwarder_block): Likewise.
4130 (gimple_duplicate_bb): Likewise.
4131
824b8aa5 41322012-08-07 Nick Clifton <nickc@redhat.com>
4133
4134 * config/mn10300/mn10300.c (mn10300_expand_prologue): Report
4135 stack usage if requested.
4136
35e514ff 41372012-08-06 Cary Coutant <ccoutant@google.com>
4138
4139 * cgraphunit.c (assemble_thunk): Add source line info.
4140 * final.c (final): Check for non-null cfg pointer.
4141
e053750d 41422012-08-06 Sandra Loosemore <sandra@codesourcery.com>
4143 Maxim Kuvyrkov <maxim@codesourcery.com>
4144 Julian Brown <julian@codesourcery.com>
4145
4146 * config/mips/24k.md (r24k_unknown_store): Delete special handling
4147 for cprestore.
4148 (r24k_int_load, r24k_int_arith, r24k_int_mul3, r24k_int_mfhilo)
4149 (r24k_int_cop, r24k_int_multi)
4150 (r24kf2_1_fcvt_f2i, r24kf2_1_fxfer)
4151 (r24kf1_1_fcvt_f2i, r24kf1_1_fxfer): Use mips_store_data_bypass_p
4152 instead of store_data_bypass_p.
4153 * config/mips/74k.md (r74k_int_store): Delete special handling for
4154 cprestore.
4155 (r74k_int_load, r74k_int_logical, r74k_int_arith, r74k_int_cmove):
4156 Use mips_store_data_bypass_p instead of store_data_bypass_p.
4157
6e6b952b 41582012-08-06 Marc Glisse <marc.glisse@inria.fr>
4159
4160 PR tree-optimization/51938
4161 PR tree-optimization/52005
4162 * tree-ssa-ifcombine.c (ifcombine_ifandif): New parameters for
4163 inverted conditions.
4164 (ifcombine_iforif): Remove, merge code into ifcombine_ifandif.
4165 (tree_ssa_ifcombine_bb): Update calls to the above. Detect !a&&b
4166 and !a||b patterns.
4167
448e3e57 41682012-08-06 Olivier Hainque <hainque@adacore.com>
4169
4170 * tree-emutls.c (new_emutls_decl): When a var_section is requested by
4171 the target, attach the new decl to that, not to the template section.
4172
9e394672 41732012-08-06 Tom de Vries <tom@codesourcery.com>
4174
4175 * tree-switch-conversion.c (emit_case_bit_tests): Generate MINUS_EXPR in
4176 unsigned type.
4177
6ef15b76 41782012-08-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4179
4180 * doc/invoke.texi: Document AMD btver2.
4181 * doc/extend.texi: Document AMD btver1 and btver2.
4182
2ea5a078 41832012-08-04 Sandra Loosemore <sandra@codesourcery.com>
4184 Richard Sandiford <rdsandiford@googlemail.com>
4185
4186 * config/mips/mips.c (mips_option_override): Check -fpic
4187 for compatibility with -mabicalls and ABI.
4188
1c7d277e 41892012-08-04 Catherine Moore <clm@codesourcery.com>
4190 Sandra Loosemore <sandra@codesourcery.com>
4191
4192 * config/mips/xlr.md (ir_xlr_alu_clz): New insn_reservation.
4193 (ir_xlr_alu): Remove clz.
4194 * config/mips/mips-cpus.def (xlr): Set PTF_AVOID_BRANCHLIKELY.
4195
b83d388f 41962012-08-04 Richard Earnshaw <rearnsha@arm.com>
4197
4198 * arm.c (arm_gen_constant): Use SImode when preparing operands for
4199 gen_extzv_t2.
4200
d25d399f 42012012-08-04 Uros Bizjak <ubizjak@gmail.com>
4202
4203 * config/i386/i386.h (QI_REGNO_P): New define.
4204 (ANY_QI_REGNO_P): Ditto.
4205 (GENERAL_REGNO_P): Use IN_RANGE macro.
4206 (QI_REG_P): Use QI_REGNO_P.
4207 (ANY_QI_REG_P): Use GENERAL_REGNO_P and QI_REGNO_P.
4208 (HARD_REGNO_CALLER_SAVE_MODE): Use QI_REGNO_P.
4209 * config/i386/i386.c (ix86_hard_regno_mode_ok): Ditto.
4210 (x86_extended_QIreg_mentioned_p): Ditto. Also check if
4211 register is a general register.
4212
251be4aa 42132012-08-03 Uros Bizjak <ubizjak@gmail.com>
4214
4215 * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use
4216 incdec_operand predicate to return INC or DEC insn mnemonic.
4217 Add %K operand modifier.
4218 (atomic_add<mode>): Use incdec_operand predicate to
4219 return INC or DEC insn mnemonic.
4220 (atomic_dec<mode>): Ditto.
4221
99fade12 42222012-08-03 Michael Matz <matz@suse.de>
4223
4224 PR tree-optimization/54146
4225 * cfgexpand.c (add_scope_conflicts_1): Use bitmap_ior_into.
4226 (add_scope_conflicts): Iterate in RPO order.
4227 (add_stack_protection_conflicts): Iterate over the other triangle.
4228 (fini_vars_expansion): Clear stack_vars_sorted.
4229
42302012-08-03 Marc Glisse <marc.glisse@inria.fr>
4f5712bd 4231
4232 PR tree-optimization/30318
4233 * double-int.c (mul_double_wide_with_sign): New function.
4234 (mul_double_with_sign): Call the new function.
4235 * double-int.h (mul_double_wide_with_sign): Declare the new function.
4236 * tree-vrp.c (extract_range_from_binary_expr_1) [MULT_EXPR]:
4237 Handle integer types that wrap on overflow.
4238 (quad_int_cmp): New helper function.
4239 (quad_int_pair_sort): Likewise.
4240
3b652cc1 42412012-08-03 Richard Guenther <rguenther@suse.de>
4242
4243 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
4244 is_gimple_reg on the SSA name, not its variable.
4245 (vect_update_ivs_after_vectorizer): Likewise.
4246 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
4247 * tree-if-conv.c (if_convertible_phi_p): Likewise.
4248 (predicate_scalar_phi): Likewise.
4249 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
4250 (vect_analyze_scalar_cycles_1): Likewise.
4251 * tree-ssa-live.c (register_ssa_partition_check): Likewise.
4252 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
4253 * tree-ssa-reassoc.c (phi_rank): Likewise.
4254 * tree-parloops.c (separate_decls_in_region_name): Use
4255 replace_ssa_name_symbol.
4256 * tree-predcom.c (base_names_in_chain_on): Likewise.
4257 * matrix-reorg.c (update_type_size): Query the type of the SSA name,
4258 not its variable.
4259 * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
4260 (create_mul_imm_cand): Likewise.
4261 (create_add_ssa_cand): Likewise.
4262 (create_add_imm_cand): Likewise.
4263 (slsr_process_add): Likewise.
4264 * tree-inline.c (remap_ssa_name): Do not set the type of the
4265 new SSA_NAME.
251be4aa 4266 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify assert.
4267 Check for default def first.
3b652cc1 4268
6f4cb951 42692012-08-04 Steven Bosscher <steven@gcc.gnu.org>
4270
a30975d4 4271 * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.
4272
4273 * sched-vis.c (print_pattern): Handle SEQUENCE also.
6f4cb951 4274
8b51e3aa 42752012-08-02 Richard Henderson <rth@redhat.com>
4276
4277 Revert:
4278 PR 34548
4279 * function.h (struct rtl_data): Add max_dynamic_stack_alignment.
4280 * cfgexpand.c (gimple_expand_cfg): Initialise it.
4281 * explow.c (allocate_dynamic_stack_space): Set it. Simplify
4282 alignment requirements given the known alignment of dynamic_offset.
4283 * function.c (instantiate_virtual_regs): Align dtnamic_offset.
4284
78f1962f 42852012-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
4286
4287 * cfgexpand.c (expand_debug_locations): Encapsulate test for
4288 CONST_DOUBLE in macro.
4289 * combine.c (try_combine, gen_lowpart_for_combine): Ditto.
4290 * cprop.c (implicit_set_cond_p): Ditto.
4291 * cselib.c (rtx_equal_for_cselib_1): Ditto.
4292 * expmed.c (expand_mult): Ditto.
4293 * expr.c (convert_modes): Ditto.
4294 * ira-costs.c (record_reg_classes): Ditto.
4295 * ira-lives.c (single_reg_class): Ditto.
4296 * optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
4297 * print-rtl.c (print_rtx): Ditto.
4298 * recog.c (simplify_while_replacing, const_double_operand)
4299 (asm_operand_ok, constrain_operands): Ditto.
4300 * reg-stack.c (subst_stack_regs_pat): Ditto.
4301 * reload.c (find_reloads, find_equiv_reg): Ditto.
4302 * rtlanal.c (replace_rtx): Remove test.
251be4aa 4303 * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate
4304 test for CONST_DOUBLE in macro.
78f1962f 4305 * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
4306 (simplify_unary_operation_1, simplify_const_unary_operation)
4307 (simplify_binary_operation_1, simplify_const_binary_operation)
4308 (simplify_relational_operation_1)
4309 (simplify_const_relational_operations)
4310 (implify_subreg): Ditto.
4311 * varasm.c (output_constant_pool_2): Ditto.
251be4aa 4312 * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New macros.
78f1962f 4313 * rtl.def (CONST_DOUBLE): Updated comments.
4314
9d651ea6 43152012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
4316
4317 PR target/51931
4318 * config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
4319 * config/mips/mips.c (mips_strip_unspec_address): Make extern.
4320 (mips16_rewrite_pool_constant): Make a copy of the pool constant
4321 before adding to a PC-relative table.
4322 (mips16_lay_out_constants): Add a SPLIT_P parameter.
4323 (mips16_load_branch_target, mips16_split_long_branches): New functions.
4324 (mips_reorg): Update call to mips16_lay_out_constants.
4325 Call mips16_split_long_branches.
4326 * config/mips/predicates.md (pc_or_label_operand): Delete.
4327 * config/mips/mips.md (length): Add a calculation for MIPS16 branches.
4328 Move the extended_mips16 handling further down.
4329 (*branch_equality<mode>_mips16): Replace use pc_or_label_operand
4330 with explicit label_ref and pc. Follow the usual operand numbering.
4331 (*branch_equality<mode>_mips16_inverted): New pattern.
4332 (*jump_mips16): Add length attribute.
4333 (indirect_jump_and_restore_<mode>): New pattern.
4334 (consttable_int): Call mips_strip_unspec_address on the operand.
4335
9adc3d57 43362012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
4337
4338 * recog.c (split_insn): Copy the original SET_SRC before using
4339 it as a note.
4340
a7aa0b36 43412012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
4342
4343 * reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
4344
17dbcd7c 43452012-08-02 Marc Glisse <marc.glisse@inria.fr>
4346
4347 PR tree-optimization/53805
4348 * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
4349 UNORDERED_EXPR even for trapping floating point.
4350
f8bfd7f7 43512012-08-02 H.J. Lu <hongjiu.lu@intel.com>
4352
4353 PR middle-end/53321
4354 PR middle-end/53865
4355 * ipa-inline-analysis.c (inline_free_summary): Return if
4356 inline_edge_summary_vec is NULL.
4357
4358 * ipa-split.c (execute_split_functions): Check if a function
4359 is inlinable only if inline_edge_summary_vec != NULL.
4360
4361 * ipa.c (symtab_remove_unreachable_nodes): Restore
4362 cgraph_propagate_frequency call when something was changed.
4363 (free_inline_summary): New function.
4364 (pass_ipa_free_inline_summary): New pass.
4365
4366 * passes.c (init_optimization_passes): Add
4367 pass_ipa_free_inline_summary before pass_ipa_tree_profile.
4368
4369 * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
4370
4371 * tree-pass.h (pass_ipa_free_inline_summary): New.
4372
c33994be 43732012-08-02 Richard Earnshaw <rearnsha@arm.com>
4374
4375 * arm.c (arm_gen_constant): Use UBFX for some AND operations when
4376 available.
4377
74105c0d 43782012-08-02 Richard Guenther <rguenther@suse.de>
4379
4380 * tree-into-ssa.c (struct common_info_d): New struct.
4381 (struct var_info_d, struct ssa_name_info): Use it.
4382 (get_ssa_name_ann): Adjust.
4383 (get_phi_state, set_phi_state): Remove.
4384 (get_common_info): New function.
4385 (get_current_def, set_current_def): Adjust.
4386 (get_def_blocks_for): Take a common info as param.
4387 (set_def_block): Call get_common_info once.
4388 (set_livein_block): Likewise.
4389 (find_def_blocks_for): Adjust.
4390 (insert_phi_nodes): Likewise.
4391 (register_new_def): Call get_common_info once.
4392 (get_reaching_def): Likewise.
4393 (rewrite_debug_stmt_uses): Likewise.
4394 (rewrite_leave_block): Likewise.
4395 (dump_currdefs): Likewise.
4396 (debug_var_infos_r): Adjust.
4397 (register_new_update_single): Call get_common_info once.
4398 (maybe_replace_use_in_debug_stmt): Likewise.
4399 (rewrite_update_leave_block): Likewise.
4400 (mark_use_interesting): Adjust.
4401 (create_new_def_for): Likewise.
4402 (update_ssa): Likewise.
4403
920bd157 44042012-08-02 Michael Matz <matz@suse.de>
4405
4406 * tree-ssa-live.c (set_is_used): Return a bool.
4407 (mark_all_vars_used): Don't take data argument.
4408 (mark_all_vars_used_1): Adjust calls to above, merge handling
4409 of local and global vars.
4410 (remove_unused_scope_block_p): Don't take global_unused_vars,
4411 merge handling of local and global vars.
4412 (remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
4413 use is_used_p for local and global vars.
4414
072f7ab1 44152012-08-02 Richard Guenther <rguenther@suse.de>
4416
4417 * tree-flow.h (make_rename_temp): Remove.
4418 * tree-dfa.c (make_rename_temp): Likewise.
4419 * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
4420 instead of make_rename_temp.
4421 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
4422 expand_omp_atomic_pipeline): Likewise.
4423 * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
4424 build_tm_store, expand_call_tm, expand_transaction,
4425 ipa_tm_insert_gettmclone_call): Likewise.
4426 * tree-complex.c (expand_complex_div_wide): Likewise.
4427 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
4428 Likewise.
4429 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
4430 Likewise.
4431 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
4432 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
4433 gimple_mod_subtract): Likewise.
4434
c6dfe037 44352012-08-02 Richard Guenther <rguenther@suse.de>
4436
4437 * tree-flow.h (set_default_def): Rename to ...
4438 (set_ssa_default_def): ... this. Take a struct function argument.
4439 (gimple_default_def): Rename to ...
4440 (ssa_default_def): ... this.
4441 (get_or_create_ssa_default_def): New function.
4442 * tree-dfa.c: Likewise.
4443 (dump_variable): Adjust.
4444 * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
4445 for used parameters.
4446 * ipa-split.c (consider_split): Adjust, avoid repeated default-def
4447 lookups.
4448 (split_function): Likewise.
4449 * lto-streamer-in.c (input_ssa_names): Adjust.
4450 * omp-low.c (expand_omp_taskreg): Likewise.
4451 * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
4452 * tree-complex.c (init_parameter_lattice_values): Adjust.
4453 (get_component_ssa_name): Likewise.
4454 (update_parameter_components): Likewise.
4455 * tree-inline.c (remap_ssa_name): Likewise.
4456 (setup_one_parameter): Likewise.
4457 (initialize_inlined_parameters): Likewise.
4458 (declare_return_variable): Likewise.
4459 (expand_call_inline): Likewise.
4460 (tree_function_versioning): Likewise.
4461 * tree-into-ssa.c (get_default_def_for): Remove.
4462 (get_reaching_def): Use get_or_create_ssa_default_def instead.
4463 * tree-predcom.c (replace_ref_with): Adjust.
4464 * tree-sra.c (get_repl_default_def_ssa_name): Likewise.
4465 (is_unused_scalar_param): Likewise.
4466 (ptr_parm_has_direct_uses): Likewise.
4467 (sra_ipa_reset_debug_stmts): Likewise.
4468 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
4469 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
4470 * tree-ssa-live.c (verify_live_on_entry): Likewise.
4471 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
4472 avoid repeated default def lookups.
4473 * tree-ssa-sccvn.c (run_scc_vn): Likewise.
4474 * tree-tailcall.c (arg_needs_copy_p): Adjust.
4475 (tree_optimize_tail_calls_1): Likewise.
4476
ff11bbd5 44772012-08-02 Richard Guenther <rguenther@suse.de>
4478
4479 PR tree-optimization/50672
4480 Revert
4481 2012-08-01 Richard Guenther <rguenther@suse.de>
4482
4483 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
4484 (replace_block_by): Adjust.
4485
b03e5397 44862012-08-02 Richard Guenther <rguenther@suse.de>
4487
4488 * tree-dfa.c (referenced_var_lookup): Remove.
4489 (find_referenced_vars): Remove.
4490 (pass_referenced_vars): Likewise.
4491 (make_rename_temp): Do not add referenced vars.
4492 (dump_referenced_vars): Remove.
4493 (debug_referenced_vars): Likewise.
4494 (dump_dfa_stats): Do not dump referenced var stats.
4495 (find_vars_r): Remove.
4496 (find_referenced_vars_in): Likewise.
4497 (referenced_var_check_and_insert): Likewise.
4498 (add_referenced_var_1): Likewise.
4499 (remove_referenced_var): Likewise.
4500 * tree-flow.h (referenced_var_lookup): Likewise.
4501 (struct gimple_df): Remove referenced_vars member.
4502 (typedef referenced_var_iterator): Remove.
4503 (FOR_EACH_REFERENCED_VAR): Likewise.
4504 (num_referenced_vars): Likewise.
4505 (debug_referenced_vars, dump_referenced_vars): Likewise.
4506 (add_referenced_var_1, add_referenced_var): Likewise.
4507 (remove_referenced_var): Likewise.
4508 (find_referenced_vars_in): Likewise.
4509 * tree-flow-inline.h (gimple_referenced_vars): Remove.
4510 (first_referenced_var): Likewise.
4511 (end_referenced_vars_p): Likewise.
4512 (next_referenced_var): Likewise.
4513 * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
4514 * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
4515 unconditionally.
4516 * tree-into-ssa.c (dump_decl_set): Likewise.
4517 (pass_build_ssa): Do not require PROP_referenced_vars.
4518 * tree-ssa.c (target_for_debug_bind): Virtual operands are
4519 not suitable, but all register type vars are.
4520 (init_tree_ssa): Do not allocate referenced vars.
4521 (delete_tree_ssa): Do not free referenced vars.
4522 * cgraphunit.c (init_lowered_empty_function): Do not set
4523 PROP_referenced_vars.
4524 (assemble_thunk): Do not add referenced vars.
4525 * gimple-fold.c (canonicalize_constructor_val): Likewise.
4526 (gimplify_and_update_call_from_tree): Likewise.
4527 * gimple-streamer-in.c (input_bb): Likewise.
4528 * passes.c (init_optimization_passes): Do not run
4529 pass_referenced_vars.
4530 (dump_properties): Do not dump PROP_referenced_vars.
4531 * tree-inline.c (remap_decl): Do not add referenced vars.
4532 (remap_gimple_op_r): Likewise.
4533 (copy_tree_body_r): Likewise.
4534 (copy_bb): Likewise.
4535 (setup_one_parameter): Likewise.
4536 (declare_return_variable): Likewise.
4537 (copy_decl_for_dup_finish): Likewise.
4538 (copy_arguments_for_versioning): Likewise.
4539 (tree_function_versioning): Likewise.
4540 * tree-pass.h (PROP_referenced_vars): Remove.
4541 (pass_referenced_vars): Likewise.
251be4aa 4542 * tree-profile.c (gimple_gen_edge_profiler): Do not add
4543 referenced vars.
b03e5397 4544 (gimple_gen_interval_profiler): Likewise.
4545 (gimple_gen_pow2_profiler): Likewise.
4546 (gimple_gen_one_value_profiler): Likewise.
4547 (gimple_gen_ic_profiler): Likewise.
4548 (gimple_gen_average_profiler): Likewise.
4549 (gimple_gen_ior_profiler): Likewise.
4550 * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
4551 * tree-cfg.c (replace_ssa_name): Do not add referenced vars.
4552 (move_stmt_op): Likewise.
4553 * tree-ssa-operands.c (create_vop_var): Likewise.
4554 * gimple-low.c (record_vars_into): Likewise.
4555 * gimplify.c (gimple_regimplify_operands): Likewise.
4556 (force_gimple_operand_1): Likewise.
4557 * omp-low.c (expand_omp_for_generic): Likewise.
4558 (expand_omp_for_static_chunk): Likewise.
4559 (expand_omp_atomic_pipeline): Likewise.
4560 * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
4561 (translate_clast_assignment): Likewise.
4562 * graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
4563 (handle_scalar_deps_crossing_scop_limits): Likewise.
4564 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
4565 * ipa-split.c (split_function): Likewise.
4566 * matrix-reorg.c (transform_access_sites): Likewise.
4567 * trans-mem.c (tm_log_add): Likewise.
4568 (ipa_tm_insert_gettmclone_call): Likewise.
4569 * tree-complex.c (create_one_component_var): Likewise.
4570 * tree-if-conv.c (ifc_temp_var): Likewise.
4571 * tree-parloops.c (take_address_of): Likewise.
4572 (initialize_reductions): Likewise.
4573 (separate_decls_in_region_name): Likewise.
4574 (create_call_for_reduction_1): Likewise.
4575 (separate_decls_in_region): Likewise.
4576 * tree-predcom.c (predcom_tmp_var): Likewise.
4577 (reassociate_to_the_same_stmt): Likewise.
4578 * tree-sra.c (build_ref_for_offset): Likewise.
4579 (create_access_replacement): Likewise.
4580 (get_replaced_param_substitute): Likewise.
4581 (sra_ipa_reset_debug_stmts): Likewise.
4582 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
4583 (rewrite_bittest): Likewise.
4584 * tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
4585 * tree-ssa-loop-manip.c (create_iv): Likewise.
4586 (tree_transform_and_unroll_loop): Likewise.
4587 * tree-ssa-math-opts.c (powi_as_mults): Likewise.
4588 (build_and_insert_call): Likewise.
4589 (gimple_expand_builtin_cabs): Likewise.
4590 (execute_optimize_bswap): Likewise.
4591 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
4592 (abs_replacement): Likewise.
4593 (cond_store_replacement): Likewise.
4594 (cond_if_else_store_replacement_1): Likewise.
4595 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4596 * tree-ssa-pre.c (get_representative_for): Likewise.
4597 (create_expression_by_pieces): Likewise.
4598 (insert_into_preds_of_block): Likewise.
4599 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
4600 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
4601 (eliminate_redundant_comparison): Likewise.
4602 (rewrite_expr_tree_parallel): Likewise.
4603 (get_reassoc_pow_ssa_name): Likewise.
4604 * tree-ssa-strlen.c (get_string_length): Likewise.
4605 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
4606 (build_arrays): Likewise.
4607 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4608 (create_tailcall_accumulator): Likewise.
4609 * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
4610 (vect_create_addr_base_for_vector_ref): Likewise.
4611 (vect_permute_store_chain): Likewise.
4612 (vect_permute_load_chain): Likewise.
4613 * tree-vect-generic.c (expand_vector_divmod): Likewise.
4614 * tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
4615 (vect_build_loop_niters): Likewise.
4616 (vect_generate_tmps_on_preheader): Likewise.
4617 (vect_update_ivs_after_vectorizer): Likewise.
4618 (vect_gen_niters_for_prolog_loop): Likewise.
4619 (vect_do_peeling_for_alignment): Likewise.
4620 (vect_create_cond_for_align_checks): Likewise.
4621 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
4622 (vect_handle_widen_op_by_const): Likewise.
4623 (vect_operation_fits_smaller_type): Likewise.
4624 (vect_recog_over_widening_pattern): Likewise.
4625 * tree-vect-stmts.c (vect_init_vector): Likewise.
4626
26f0a6e0 46272012-08-01 Alexandre Oliva <aoliva@redhat.com>
4628
4629 PR debug/52983
4630 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
4631
490c6d6d 46322012-08-01 Alexandre Oliva <aoliva@redhat.com>
4633
4634 PR debug/52983
4635 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
4636 falling back to copy_rtx on non-autoinc machines.
4637 (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
4638
e6637753 46392012-08-01 Alexandre Oliva <aoliva@redhat.com>
4640
4641 PR debug/52983
4642 * valtrack.h, valtrack.c: New.
4643 * Makefile.in (VALTRACK_H): New.
4644 (OBJS): Add valtrack.o.
4645 (valtrack.o): New.
4646 (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
4647 * combine.c: Include valtrack.h.
4648 (make_compound_operation): Publish.
4649 (cleanup_auto_inc_dec): Move to valtrack.c.
4650 (struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
4651 (propagate_for_debug): Likewise. Add this_basic_block parameter.
4652 Adjust all callers.
4653 * cselib.c: Include valtrack.h.
4654 * dce.c: Likewise.
4655 * df-problems.c: Likewise.
4656 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
4657 (dead_debug_finish, dead_debug_add): Likewise.
4658 (dead_debug_insert_temp): Likewise.
4659 * df.h (struct dead_debug_use): Move to valtrack.h.
4660 (struct dead_debug, enum debug_temp_where): Likewise.
4661 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
4662 (dead_debug_finish, dead_debug_add): Likewise.
4663 (dead_debug_insert_temp): Likewise.
4664 * rtl.h (make_compound_operation): Declare.
4665
8dcd4f26 46662012-08-01 Catherine Moore <clm@codesourcery.com>
4667 Sandra Loosemore <sandra@codesourcery.com>
4668
8dcd4f26 4669 * config/mips/mips-cpus.def (34kn): New.
4670 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
4671 (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
4672 * config/mips/mips-tables.opt: Regenerate.
4673 * doc/invoke.texi (MIPS Options): Document -march=34kn.
4674
573ff301 46752012-08-01 Richard Henderson <rth@redhat.com>
4676
4677 * expmed.h (NUM_MODE_PARTIAL_INT): New.
4678 (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
4679 (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
4680 (struct expmed_op_costs): Likewise.
4681 (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
4682 (expmed_mode_index): New.
4683 (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
4684 (convert_cost_ptr): Likewise.
4685 * expmed.c (struct init_expmed_rtl): Rename convert to trunc.
4686 (init_expmed_one_conv): Split out from ...
4687 (init_expmed_one_mode): ... here. Iterate conversions over
4688 partial integer modes too.
4689 (init_expmed): Iterate over partial integer modes too.
4690
ef51ef7a 46912012-08-01 Richard Henderson <rth@redhat.com>
4692
4693 * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
4694 (m32c_init_libfuncs): Remove.
4695 * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
4696 (cstore<QHPSI>4): New expander.
4697
cffc1a1a 46982012-08-01 Richard Guenther <rguenther@suse.de>
4699
4700 * tree-flow-inline.h (referenced_var): Remove.
4701 * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
4702 checking code.
4703 * tree-sra.c (candidates): New global hashtable.
4704 (candidate): New function.
4705 (sra_initialize): Initialize candidates.
4706 (sra_deinitialize): Free candidates.
4707 (disqualify_candidate): Remove candidate from candidates.
4708 (maybe_add_sra_candidate): New function.
4709 (find_var_candidates): Walk over all local decls and parameters,
4710 add candidates to candidates hashtable.
4711 (find_param_candidates): Add candidates to candidates hashtable.
4712 (analyze_all_variable_accesses): Use candidate instead of
4713 referenced_var.
4714
98a8539f 47152012-08-01 Tom de Vries <tom@codesourcery.com>
4716
4717 * tree-vrp.c (find_case_label_ranges): New function.
4718 (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
4719 find_case_label_ranges instead of find_case_label_range. Handle second
4720 range.
4721
4ae5778c 47222012-08-01 Michael Matz <matz@suse.de>
4723
4724 * tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
4725 * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
4726 (dump_dfa_stats): Don't dump stats about var anns.
4727 (collect_dfa_stats): Don't collect them.
4728 (add_referenced_var_1): Don't set var annotation pointers.
4729 (remove_referenced_var): Ditto, and only remove it it's in the
4730 hash table.
4731
4732 * tree-flow-inline.h (var_ann): Remove.
4733 * tree-flow.h (struct var_ann_d, var_ann_t): Remove.
4734
4735 * tree-inline.c (remapped_type): Remove.
4736 (can_be_nonlocal): Most variable will be considered live here,
4737 return false earlier.
4738 (remap_decls): Don't call var_ann, all variables will be considered
4739 referenced here.
4740 (copy_debug_stmt): Ditto, and use is_global_var.
4741
4742 * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
4743 determine if a variable was referred to, not var_ann.
4744 * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
4745 (remove_unused_locals): Ditto.
4746 * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
4747 * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
4748 * tree.c (copy_node_stat): Don't clear var ann pointer.
4749 * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
4750 ann member.
4751 (DECL_VAR_ANN_PTR): Remove.
4752
47532012-08-01 Michael Matz <matz@suse.de>
4754
4755 * tree-flow.h (struct var_ann_d): Rename used member.
4756 (set_is_used): Don't declare.
4757 * tree-flow-inline.h (clear_is_used): Remove.
4758 (set_is_used, is_used_p): Move to ...
4759 * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
4760 on the side bitmap.
4761 (usedvars): New bitmap.
4762 (dump_scope_block): Don't dump unusedness.
4763 (remove_unused_locals): Allocate and free usedvars.
4764 * tree-nrv.c (tree_nrv): Don't clear used flags here.
4765
47662012-08-01 Michael Matz <matz@suse.de>
4767
4768 * tree-flow.h (struct var_ann_d): Remove base_var_processed and
4769 base_index members.
4770 * tree-ssa-live.h (struct _var_map): Remove basevars member.
4771 (VAR_ANN_BASE_INDEX): Remove.
4772 * tree-ssa-live.c (var_map_base_init): Use a hash table instead
4773 of var annotation to compress index space. Don't deal with above
4774 removed members.
4775 (var_map_base_fini): Don't free basevars.
4776 (init_var_map): Don't clear basevars.
4777
c99e471e 47782012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
4779
4780 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
4781 base_name to base_expr.
4782 (struct cand_chain_d): Likewise.
4783 (base_cand_hash): Likewise.
4784 (base_cand_eq): Likewise.
4785 (record_potential_basis): Likewise.
4786 (alloc_cand_and_find_basis): Likewise.
4787 (create_mul_ssa_cand): Likewise.
4788 (create_mul_imm_cand): Likewise.
4789 (create_add_ssa_cand): Likewise.
4790 (create_add_imm_cand): Likewise.
4791 (slsr_process_cast): Likewise.
4792 (slsr_process_copy): Likewise.
4793 (dump_candidate): Likewise.
4794 (base_cand_dump_callback): Likewise.
4795 (unconditional_cands_with_known_stride_p): Likewise.
4796 (cand_increment): Likewise.
4797
070bf980 47982012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
4799
4800 PR tree-optimization/46556
4801 * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
4802 (base_cand_map): Change to hash table.
4803 (base_cand_hash): New function.
4804 (base_cand_free): Likewise.
4805 (base_cand_eq): Likewise.
4806 (lookup_cand): Change base_cand_map to hash table.
4807 (find_basis_for_candidate): Likewise.
4808 (base_cand_from_table): Exclude CAND_REF.
4809 (restructure_reference): New function.
4810 (slsr_process_ref): Likewise.
4811 (find_candidates_in_block): Call slsr_process_ref.
4812 (dump_candidate): Handle CAND_REF.
4813 (base_cand_dump_callback): New function.
4814 (dump_cand_chains): Change base_cand_map to hash table.
4815 (replace_ref): New function.
4816 (replace_refs): Likewise.
4817 (analyze_candidates_and_replace): Call replace_refs.
4818 (execute_strength_reduction): Change base_cand_map to hash table.
4819
735bd857 48202012-08-01 Uros Bizjak <ubizjak@gmail.com>
4821
4822 * config/i386/i386.c (ix86_address_subreg_operand): Reject
4823 stack pointer.
4824 (ix86_print_operand_address): Assert that parts.base and parts.index
4825 are non-NULL after call to simplify_subreg.
4826
ffef9ae6 48272012-08-01 Richard Guenther <rguenther@suse.de>
4828
4829 * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.
4830
278611f2 48312012-08-01 Richard Guenther <rguenther@suse.de>
4832
4833 * graphite-clast-to-gimple.c (translate_clast_user): Rename
4834 virtual operands.
4835 * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
4836 operands here.
4837 * tree-call-cdce.c (tree_call_cdce): Use
4838 mark_virtual_operands_for_renaming.
4839 * tree-eh.c (sink_clobbers): Simplify.
4840 * tree-flow.h (mark_sym_for_renaming): Remove.
4841 (mark_virtual_operands_for_renaming): New function.
4842 * tree-if-conv.c (tree_if_conversion): Use
4843 mark_virtual_operands_for_renaming.
4844 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
4845 * tree-into-ssa.c (mark_sym_for_renaming): Remove.
4846 (mark_virtual_operands_for_renaming): New function.
4847 * tree-loop-distribution.c (tree_loop_distribution): Use
4848 mark_virtual_operands_for_renaming.
4849 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
4850 update stmts, use mark_virtual_operands_for_renaming.
4851 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
4852 (replace_block_by): Adjust.
4853 (tail_merge_optimize): Use mark_virtual_operands_for_renaming.
4854 * tree-tailcall.c (tree_optimize_tail_calls_1): Use
4855 mark_virtual_operands_for_renaming.
4856 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
4857 * tree-vectorizer.c (vectorize_loops): Likewise.
4858
e70e8b13 48592012-08-01 Richard Guenther <rguenther@suse.de>
4860
4861 * tree-flow.h (struct gimple_df): Remove syms_to_rename member,
4862 add ssa_renaming_needed and rename_vops flags.
4863 (SYMS_TO_RENAME): Remove.
4864 (symbol_marked_for_renaming): Likewise.
4865 (mark_virtual_ops_for_renaming): Likewise.
4866 * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
4867 New globals.
4868 (mark_for_renaming, marked_for_renaming): New functions.
4869 (symbol_marked_for_renaming): Remove.
4870 (dump_currdefs): Adjust.
4871 (maybe_replace_use): Likewise.
4872 (maybe_replace_use_in_debug_stmt): Likewise.
4873 (maybe_register_def): Likewise.
4874 (rewrite_update_phi_arguments): Likewise.
4875 (rewrite_update_enter_block): Likewise.
4876 (fini_ssa_renamer): Clear update SSA status here ...
4877 (delete_update_ssa): ... not here. Free rename set.
4878 (prepare_block_for_update): Compute which decls need renaming.
4879 (dump_update_ssa): Adjust.
4880 (mark_sym_for_renaming): Adjust update SSA status for virtuals.
4881 (need_ssa_update_p): Adjust.
4882 (insert_updated_phi_nodes_for): Likewise.
4883 (update_ssa): Likewise.
4884 * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
4885 for virtual and real operands.
4886 (finalize_ssa_uses): Likewise.
4887 * tree-ssanames.c (init_ssanames): Adjust.
4888 * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
4889 execute_update_addresses_taken): Add bitmap to keep track of which
735bd857 4890 candidates are suitable for rewriting and later renaming by SSA update.
e70e8b13 4891 * matrix-reorg.c (transform_access_sites): Do not rename all defs.
735bd857 4892 * tree-dfa.c (make_rename_temp): Do not mark real operands for
4893 renaming.
e70e8b13 4894 * cgraphunit.c (assemble_thunk): Likewise.
4895 * gimplify.c (gimple_regimplify_operands): Likewise.
4896 (force_gimple_operand_1): Likewise.
4897 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
4898 * tree-inline.c (declare_return_variable): Likewise.
4899 * tree-parloops.c (separate_decls_in_region_stmt): Do not call
4900 mark_virtual_ops_for_renaming.
4901 (create_stores_for_reduction): Likewise.
4902 (create_loads_and_stores_for_name): Likewise.
4903 * tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
4904 (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
4905 (execute_load_motion): Likewise.
4906 (remove_stmt): Likewise.
4907 (execute_pred_commoning_chain): Likewise.
735bd857 4908 * tree-sra.c (create_access_replacement): Do not rename real operands.
e70e8b13 4909 (get_unrenamed_access_replacement): Unify with ...
4910 (get_access_replacement): ... this.
4911 (get_repl_default_def_ssa_name): Adjust.
4912 * tree-ssa-loop-im.c (move_computations_stmt): Manually update
4913 virtual SSA form.
4914 (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
4915 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
4916
fd1df2e7 49172012-07-31 DJ Delorie <dj@redhat.com>
4918
4919 * config/s390/s390.c (s390_option_override): Disable DWARF 3/4
4920 extensions for TPF, unless specifically selected.
4921
d16a693a 49222012-08-01 Alan Modra <amodra@gmail.com>
4923
4924 PR target/54131
4925 * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
4926 of lo_sum offsets. Comment. Assert mode at least word size
4927 rather than bypassing powerpc64 word offset check.
4928
b2e3ff07 49292012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
4930
4931 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
4932 costs for vec_perm and vec_promote_demote down to more natural values.
4933 (struct _rs6000_cost_data): New data structure.
4934 (rs6000_density_test): New function.
4935 (rs6000_init_cost): Change to use rs6000_cost_data.
4936 (rs6000_add_stmt_cost): Likewise.
4937 (rs6000_finish_cost): Perform density test when vectorizing a loop.
4938
f776299b 49392012-07-31 Steven Bosscher <steven@gcc.gnu.org>
4940
4941 * sched-vis.c (print_exp): Handle FMA explicitly. Simplify handling
4942 of RTX_UNARY function-like operations. Print unknown expression
4943 RTX classes as pseudo-functions.
4944 (print_pattern): Simplify return pattern printing.
4945 (dump_insn_slim): Print the value of notes as a pattern for proper
4946 printing of CFA notes.
4947
b7753059 49482012-07-31 Dehao Chen <dehao@google.com>
4949
4950 * predict.c (tree_estimate_probability_driver): Normalize the
4951 loop when initializing the loop optimizer.
4952
22d6c74e 49532012-07-31 Richard Guenther <rguenther@suse.de>
4954
4955 * tree-flow.h (struct var_ann_d): Remove need_phi_state
4956 and current_def members.
4957 * tree-into-ssa.c (struct def_blocks_d): Remove var member.
4958 (def_blocks): Remove.
4959 (struct var_info_d): New.
4960 (var_infos): New hashtable.
4961 (struct ssa_name_info): Add def_blocks member.
4962 (get_ssa_name_ann): Adjust.
4963 (get_var_info): New function.
4964 (get_phi_state, set_phi_state, get_current_def,
4965 set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
4966 (insert_phi_nodes_compare_def_blocks): Rename to ...
4967 (insert_phi_nodes_compare_var_infos): ... this and adjust.
4968 (insert_phi_nodes): Adjust.
4969 (dump_tree_ssa, dump_tree_ssa_stats): Adjust.
4970 (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
4971 (debug_def_blocks_r): Rename to ...
4972 (debug_var_infos_r): ... this and adjust.
4973 (var_info_hash): New function.
4974 (var_info_eq): Likewise.
4975 (rewrite_blocks): Adjust.
4976 (init_ssa_renamer): Likewise.
4977 (fini_ssa_renamer): Likewise.
4978 (delete_update_ssa): Likewise.
4979 (update_ssa): Likewise.
735bd857 4980 * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.
22d6c74e 4981
ba69439f 49822012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
4983
4984 PR tree-optimization/53773
4985 * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
4986 (LOOP_VINFO_OPERANDS_SWAPPED): New macro.
4987 * tree-vect-loop.c (new_loop_vec_info): Initialize
4988 LOOP_VINFO_OPERANDS_SWAPPED field.
4989 (destroy_loop_vec_info): Restore canonical form.
4990 (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
4991 (vect_is_simple_reduction_1): Likewise.
4992
86c98a43 49932012-07-31 Steven Bosscher <steven@gcc.gnu.org>
4994
4995 * sched-vis.c (dump_insn_slim): Print print_rtx_head at the
4996 start of each new line.
4997 * final.c (final_scan_insn): If the final dump is requested as
4998 slim RTL, dump slim RTL to the assembly file also.
4999
b0691607 50002012-07-31 Andrey Belevantsev <abel@ispras.ru>
5001
5002 PR target/53975
735bd857 5003
5004 * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
b0691607 5005
5006 Revert
5007 2011-08-04 Sergey Grechanik <mouseentity@ispras.ru>
5008
5009 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
5010 only if producer writes to the register given by regno.
5011
cfa99607 50122012-07-31 Nick Clifton <nickc@redhat.com>
5013
54474b85 5014 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
5015 support for reporting stack usage.
5016
cfa99607 5017 * config/frv/frv.c (QUAD): Fix typo.
0a7134d6 5018 (frv_expand_prologue): Report stack usage.
cfa99607 5019
2391ba8e 50202012-07-31 Steven Bosscher <steven@gcc.gnu.org>
5021
5022 PR pch/53880
5023 * gengtype.c (struct walk_type_data): Add have_this_obj field.
5024 (walk_type): For functions that take a this_obj argument and
5025 that process fields with a GTY((length)) argument, write the
5026 test that write_types_local_process_field will write also at the
5027 head of the loop, effectively unswitching the loop.
5028 (write_func_for_structure, write_local_func_for_structure): Clear
5029 have_this_obj before calling walk_type.
5030 (write_local_func_for_structure): Set have_this_obj before walk_type.
5031 (write_array): Set have_this_obj for output of local pointer walking
5032 functions but not for marker functions.
5033 (write_types_local_process_field): Assert have_this_obj is set.
5034
5035 * rtl.h (simplify_using_condition): Adjust prototype using bitmap
5036 from coretypes.h.
5037
649bdf00 50382012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
5039
5040
5041 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5042 * targhooks.c (default_mode_dependent_address_p): Delete code
5043 for GO_IF_MODE_DEPENDENT_ADDRESS.
5044 * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
5045 * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
5046 * doc/tm.texi: Regenerate.
5047 * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
5048 * config/alpha.c (alpha_mode_dependent_address_p): ...here. New
5049 function.
5050 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5051 * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5052 * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5053 * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
5054 * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5055 * config/vax/vax.c (vax_mode_dependent_address_p): Make static.
5056 Take a const_rtx.
5057 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5058
4619f629 50592012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
5060
5061 * expmed.h (NUM_MODE_VECTOR_INT): Define.
5062 (struct expmed_op_cheap, struct expmed_op_costs): New structures.
5063 (struct target_expmed): Convert x_mul_highpart_cost and
5064 x_mul_widen_cost fields to be indexed by integer modes.
5065 Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
5066 of type struct expmed_op_cheap. Convert other cost fields to be
5067 of type struct_expmed_op_costs.
5068 (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
5069 indexing of respective fields.
5070 (expmed_op_cheap_ptr): New function.
5071 (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
5072 (expmed_op_cost_ptr): New function.
5073 (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
5074 shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
5075 sdiv_cost_ptr, udiv_cost_ptr): Call it.
5076
e931fbeb 50772012-07-30 Sandra Loosemore <sandra@codesourcery.com>
5078 Julian Brown <julian@codesourcery.com>
5079
5080 * doc/invoke.texi (MIPS Options): Document -mno-float.
5081 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
5082 about -mno-float.
5083
35221383 50842012-07-30 Joseph Myers <joseph@codesourcery.com>
5085
735bd857 5086 * doc/sourcebuild.texi (Subdirectories): Document common subdirectory.
35221383 5087
d9dadd67 50882012-07-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5089
5090 PR middle-end/53823
5091 * expmed.c (expand_mult): Skip synth_mult for constant double op1 except
5092 for special cases. Don't initialize coeff and is_neg.
5093
482a44fa 50942012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org>
5095 Richard Earnshaw <rearnsha@arm.com>
5096
5097 * target.def (vector_alignment): New target hook.
5098 * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
5099 * doc/tm.texi: Regenerate.
5100 * targhooks.c (default_vector_alignment): New function.
5101 * targhooks.h (default_vector_alignment): Add prototype.
5102 * stor-layout.c (layout_type): Use targetm.vector_alignment.
5103 * config/arm/arm.c (arm_vector_alignment): New function.
5104 (TARGET_VECTOR_ALIGNMENT): Define.
5105
5106 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
5107 vector type alignment instead of size.
5108 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
5109 element type size directly instead of computing it from alignment.
5110 Fix variable naming and comment.
5111
eff9fe28 51122012-07-30 Kirill Yukhin <kirill.yukhin@intel.com>
5113 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5114
5115 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
5116 (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
5117 (ix86_handle_option): Handle mrdseed option.
5118 * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
5119 (x86_64-*-*): Likewise.
5120 * config/i386/prfchwintrin.h: New header.
5121 * config/i386/cpuid.h (bit_RDSEED): New.
5122 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5123 RDSEED support.
5124 * config/i386/i386-c.c: Define __RDSEED__ if needed.
735bd857 5125 * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
eff9fe28 5126 (PTA_RDSEED): New.
5127 (ix86_option_override_internal): Handle new option.
5128 (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
5129 (ix86_builtins): Add enum entries for RDSEED* builtins.
5130 (ix86_init_mmx_sse_builtins): Define new builtins.
5131 (ix86_expand_builtin): Expand RDSEED* builtins.
5132 * config/i386/i386.h (TARGET_RDSEED): New.
5133 * config/i386/i386.md (rdseed<mode>_1): New.
5134 * config/i386/i386.opt (mrdseed): New.
5135 * config/i386/x86intrin.h: Include rdseedintrin.h.
5136
5aabc5f2 51372012-07-30 Richard Guenther <rguenther@suse.de>
5138
5139 * tree-into-ssa.c (mark_def_sites): Also process virtual operands.
5140 (rewrite_stmt): Likewise.
5141 (rewrite_enter_block): Likewise.
5142 (pass_build_ssa): Do not update virtual SSA form during TODO.
5143 (mark_symbol_for_renaming): Do nothing if we are not in SSA form.
5144 * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.
5145
f938598f 51462012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
5147
5148 PR target/39423
735bd857 5149 * config/gcc/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
5150 insns.
f938598f 5151
1f215533 51522012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
5153
5154 PR target/51244
5155 * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
5156 Use t_reg_operand predicate. Add split for negated case.
5157 (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
5158 * config/sh/sh.c (expand_ashiftrt): Likewise.
5159
846f92db 51602012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
5161
5162 PR target/54089
5163 * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
5164 of trying to emit ashlsi3_n.
5165
65f4cf9c 51662012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5167 Steven Bosscher <steven@gcc.gnu.org>
5168
5169 * gengtype.c (adjust_field_type): Diagnose duplicate "length"
735bd857 5170 option applications and option being applied to arrays of atomic types.
65f4cf9c 5171 (walk_type): Allow "atomic" option on strings too.
5172 * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
5173 for the array field.
5174 * vec.h: Describe the atomic object "A" type of the macros in
5175 the header comment.
5176 (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
735bd857 5177 * emit-rtl.c (locations_locators_vals): use the atomic object vector.
65f4cf9c 5178 * doc/gty.texi: Clarify that GTY option "length" is only for
5179 arrays of non-atomic objects. Fix typo in the description of the
5180 "atomic" option.
5181
a3a592a6 51822012-07-27 Uros Bizjak <ubizjak@gmail.com>
5183
5184 * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
5185 zero-extended addresses. Return false if the address has less
5186 than two components.
5187 (ix86_split_lea_for_addr): Unconditionally convert target and
5188 all address operands to requested mode.
5189 * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
5190 Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
5191 address.
5192 (zero-extended add splitter): New splitter to conditionally split
5193 non-destructive adds.
5194 (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.
5195
f902e23e 51962012-07-28 Alan Modra <amodra@gmail.com>
5197
5198 PR target/54093
5199 * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
5200 multi-gpr reload to cases where predicate passes. Do the same for
5201 64-bit multi-gpr reload.
5202
49a71e58 52032012-07-27 Nathan Froyd <froydnj@gcc.gnu.org>
5204
5205 * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
5206 smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
5207 shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
5208 sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
5209 macro definitions and re-purpose as inline functions.
5210 (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
5211 set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
5212 zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
5213 neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
5214 shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
5215 set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
5216 mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
5217 udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
5218 set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
5219 New functions.
5220 (convert_cost_ptr): New function, split out from...
5221 (set_convert_cost, convert_cost): ...here.
5222 * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
5223 * gimple-ssa-strength-reduction.c: Likewise.
5224
2cdbb326 52252012-07-20 Ryan Mansfield <rmansfield@qnx.com>
5226
5227 * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
5228 diagnostic_initialize.
5229
e7768fa5 52302012-07-27 Oleg Endo <olegendo@gcc.gnu.org>
5231
5232 PR target/54089
49a71e58 5233 * config/sh/sh.c (shiftcosts): Remove case where first operand
e7768fa5 5234 is a const_int. Move COSTS_N_INSNS usage into caller ...
5235 (sh_rtx_costs) ... here. Return false when shiftcosts cannot be
5236 calculated instead of MAX_COST.
5237
5eeafc2d 52382012-07-27 Richard Guenther <rguenther@suse.de>
5239
5240 * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
5241 check whether SSA form is not up-to-date.
5242 * tree-flow.h (name_mappings_registered_p): Remove.
5243 * tree-into-ssa.c (struct repl_map_d): Remove.
5244 (repl_tbl): Likewise.
5245 (struct ssa_name_info): Add repl_set member.
5246 (update_ssa_obstack): New static global.
5247 (get_ssa_name_ann): Initialize repl_set.
5248 (clear_ssa_name_info): Assert age did not wrap.
5249 (repl_map_hash, repl_map_eq, repl_map_free): Remove.
5250 (names_replaced_by): Adjust.
5251 (add_to_repl_tbl): Likewise.
5252 (dump_tree_ssa_stats): Likewise.
5253 (init_update_ssa): Initialize update_ssa_obstack.
5254 (delete_update_ssa): Free update_ssa_obstack.
5255 (name_mappings_registered_p): Remove.
5256 (update_ssa): Adjust.
5257
ca1ad495 52582012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
5259
0c74ae31 5260 * config/rs6000/constraints.md: Delete "q" constraint.
5261 * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
5262 Delete the "q" alternative.
5263 * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
5264 * config/rs6000/rs6000.c (rs6000_debug_reg_global)
5265 (rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
5266 adjust to MQ_REGNO removal.
5267 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
5268 comment.
5269 (REG_ALLOC_ORDER): Adjust comment. Remove MQ from alloc order.
5270 (enum reg_class): Adjust comment. Delete MQ_REGS.
5271 (REG_CLASS_CONTENTS): Adjust.
5272 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
5273 * config/rs6000/rs6000.md: Delete MQ_REGNO.
5274 (movsi_internal1, movsi_internal1_single, movhi_internal,
5275 movqi_internal, movcc_internal1, movsf_hardfloat,
5276 movsf_softfloat): Delete the "q" alternative.
5277 (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
5278 ctr<mode>_internal6): Delete "q" constraint.
ca1ad495 5279
c86a4051 52802012-07-27 Richard Guenther <rguenther@suse.de>
5281
5282 * tree-into-ssa.c (def_blocks_p): New typedef.
5283 (insert_phi_nodes_compare_def_blocks): New function.
5284 (insert_phi_nodes): Do not walk over referenced vars, instead
5285 walk over recorded def_blocks, record relevant ones and sort
5286 them to avoid repeated hashtable lookups.
5287
8b22e20f 52882012-07-27 Richard Guenther <rguenther@suse.de>
5289
5290 * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
5291 Remove param documentation.
5292 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
5293 PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
5294 * tree-flow.h (mark_set_for_renaming): Remove.
5295 * tree-into-ssa.c (struct update_ssa_stats_d): Remove.
5296 (add_new_name_mapping): Remove bookkeeping code.
5297 (dump_update_ssa): Remove stats dumping code.
5298 (init_update_ssa): Remove stats allocation code.
5299 (delete_update_ssa): Remove stats freeing code.
5300 (mark_set_for_renaming): Remove.
5301 (switch_virtuals_to_full_rewrite_p): Likewise.
5302 (switch_virtuals_to_full_rewrite): Likewise.
5303 (update_ssa): Do not call switch_virtuals_to_full_rewrite.
5304
a2d67028 53052012-07-27 Marek Polacek <polacek@redhat.com>
5306
5307 * cgraphunit.c: Rename varpool_finalize_variable to
5308 varpool_finalize_decl in a comment.
5309
55920223 53102012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
5311
5312 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
5313 Delete code for -mno-power, -mpower, and -mpower2.
5314 * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
5315 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
5316 with -maix64.
5317 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
5318 * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
5319 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
5320 with -maix64.
5321 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
5322 * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
5323 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
5324 with -maix64.
5325 (TARGET_POWER): Delete.
5326 * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
5327 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
5328 with -maix64.
5329 (TARGET_POWER): Delete.
5330 * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
5331 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
5332 with -maix64.
5333 (TARGET_POWER): Delete.
5334 * config/rs6000/darwin.h (TARGET_POWER): Delete.
5335 * config/rs6000/driver-rs6000.c (struct asm_names): Delete
5336 support for -mpower, -mpower2, and -mno-power.
5337 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
5338 Likewise.
5339 (rs6000_cpu_cpp_builtins): Likewise.
5340 * config/rs6000/rs6000-cpus.def: Likewise.
5341 * config/rs6000/rs6000-tables.opt: Regenerate.
5342 * config/rs6000/rs6000.c (POWER_MASKS): Delete.
5343 (rs6000_option_override_internal): Adjust.
5344 (rs6000_conditional_register_usage): Adjust.
5345 (rs6000_emit_move): Adjust.
5346 (rs6000_common_init_builtins): Adjust.
5347 (rs6000_init_libfuncs): Adjust.
5348 (rs6000_output_function_prologue): Adjust.
5349 (rs6000_adjust_cost): Adjust.
5350 (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
5351 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
5352 POWER and POWER2.
5353 (TARGET_DEFAULT): Adjust.
5354 (PROCESSOR_POWER): Delete.
5355 (SHIFT_COUNT_TRUNCATED): Adjust.
5356 * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
5357 (extendqisi2_power): Delete.
5358 (extendqisi2_no_power): Adjust.
5359 (extendqihi2, extendqihi2_power, extendqihi2_no_power):
5360 Likewise.
5361 (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
5362 (anonymous doz insn patterns): Delete.
5363 (abssi2): Adjust.
5364 (abssi2_power): Delete.
5365 (abssi2_nopower): Adjust.
5366 (nabs_power, nabs_nopower): Likewise.
5367 (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
5368 Likewise. Delete anonymous post-reload splitter.
5369 (mulsi3_no_mq_internal1): rename to...
5370 (mulsi3_internal1): New define_insn.
5371 (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
5372 Likewise.
5373 (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
5374 udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
5375 udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
5376 (mulh_call, mull_call, divss_call, divus_call, quoss_call,
5377 quous_call): Likewise.
5378 (maskir_internal1, maskir_internal2, maskir_internal3,
5379 maskir_internal4, maskir_internal5, maskir_internal6,
5380 maskir_internal7, maskir_internal8): Delete.
5381 (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
5382 (anonymous sl insn patterns): Delete.
5383 (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
5384 (lshrsi3_64): Adjust.
5385 (anonymous sr insn patterns): Delete.
5386 (anonymous rrib insn patterns): Delete.
5387 (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
5388 (anonymous sra insn patterns): Delete.
5389 (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
5390 (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
5391 fctiwz_<mode>): Adjust.
5392 (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
5393 umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
5394 smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
5395 umulsi3_highpart_no_mq): Adjust.
5396 (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
5397 (ashrdi3_no_power, ashldi3, ashldi3_internal1,
5398 lshrdi3_internal1): Adjust.
5399 (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
5400 (movti_power): Delete.
5401 (movti_string): Adjust.
5402 (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
5403 (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
5404 stmsi4_power, stmsi3_power): Delete.
5405 (anonymous movmemsi insn patterns): Adjust.
5406 (lfq_power2, stfq_power2): Delete.
5407 (eq<mode>, eq<mode>_compare): Adjust.
5408 (eqsi_power): Delete.
5409 (ne0si): Adjust.
5410 (anonymous le, lt, ge, gt insn patterns): Delete.
5411 * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
5412 * config/rs6000/sysv4.h (TARGET_POWER): Delete.
5413 * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5414 MULTILIB_MATCHES): Adjust.
5415 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
5416 -mpower, -mno-power, -mpower2, -mno-power2 documentation.
5417 Delete -mcpu=power and -mcpu=power2 documentation.
5418
01eb32e7 54192012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
5420
5421 * config/rs6000/601.md: New file.
5422 * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
5423 RIOS CPUs.
5424 * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
5425 * config/rs6000/driver-rs6000.c (detect_processor_aix,
5426 struct asm_names): Likewise.
5427 * config/rs6000/rios1.md: Delete file.
5428 * config/rs6000/rios2.md: Delete file.
5429 * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
5430 CPUs.
5431 * config/rs6000/rs6000-opts.h (enum processor_type): Delete
5432 PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
5433 * config/rs6000/rs6000-tables.opt: Regenerated.
5434 * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
5435 Delete.
5436 (rs6000_option_override_internal): Delete support for RIOS CPUs.
5437 (rs6000_conditional_register_usage): Adjust comment.
5438 (rs6000_issue_rate):Delete support for RIOS CPUs.
5439 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
5440 RIOS CPUs.
5441 (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
5442 (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
5443 * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
5444 and rios2.
5445 (include "rios1.md", include "rios2.md"): Delete.
5446 (include "601.md"): New.
5447 * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
5448 PROCESSOR_PPC603.
5449 * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
5450 for RIOS CPUs.
5451 * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
5452 rios2.md . Add 601.md .
5453
758a38ab 54542012-07-26 Richard Henderson <rth@redhat.com>
5455
5456 * doc/extend.texi (attribute): Document hot/cold for labels.
5457 * predict.c (tree_estimate_probability_bb): Handle hot/cold
5458 attributes on user labels.
5459 * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
5460
7d8df2ae 54612012-07-26 Andrew Jenner <andrew@codesourcery.com>
5462 Sandra Loosemore <sandra@codesourcery.com>
5463
5464 * cse.c (find_comparison_args): Check for cycles of any length.
5465
d876ba6e 54662012-07-26 Nick Clifton <nickc@redhat.com>
5467
5468 * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
5469 (mn10300_get_live_callee_saved_regs): If requested return a count
5470 of the number of bytes in the mask.
5471 (mn10300_expand_prologue): Add argument to invocation of
5472 mn10300_get_live_callee_regs.
5473 (mn10300_expand_epilogue): Compute reg_save_bytes by calling
5474 mn10300_get_live_callee_saved_regs.
5475 (mn10300_initial_offset): Likewise.
5476 * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
5477 Update prototype.
5478 * config/mn10300/mn10300.md (return_ret): Add argument to
5479 invocation of mn10300_get_live_callee_saved_regs.
5480
c72f63ac 54812012-07-26 Steven Bosscher <steven@gcc.gnu.org>
5482
5483 PR regression/54084
5484 * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
5485 pointer difference check.
5486
72655676 54872012-07-26 Bill Schmidt <wschmidt@linux.ibm.com>
5488
5489 * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
5490 (mbc_entry_eq): Likewise.
5491 (mult_costs): Likewise.
5492 (cost_tables_exist): Likewise.
5493 (initialize_costs): Likewise.
5494 (finalize_costs): Likewise.
5495 (tree_ssa_iv_optimize_init): Remove call to initialize_costs.
5496 (add_regs_cost): Remove.
5497 (multiply_regs_cost): Likewise.
5498 (add_const_cost): Likewise.
5499 (extend_or_trunc_reg_cost): Likewise.
5500 (negate_reg_cost): Likewise.
5501 (struct mbc_entry): Likewise.
5502 (multiply_by_const_cost): Likewise.
5503 (get_address_cost): Change add_regs_cost calls to add_cost lookups;
5504 change multiply_by_const_cost to mult_by_coeff_cost.
5505 (force_expr_to_var_cost): Likewise.
5506 (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
5507 (get_computation_cost_at): Change add_regs_cost calls to add_cost
5508 lookups; change multiply_by_const_cost to mult_by_coeff_cost.
5509 (determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
5510 (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
5511 * tree-ssa-address.c (expmed.h): New #include.
5512 (most_expensive_mult_to_index): Change multiply_by_const_cost to
5513 mult_by_coeff_cost.
5514 * gimple-ssa-strength-reduction.c (expmed.h): New #include.
5515 (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
5516 neg_cost, and convert_cost instead of IVOPTS interfaces.
5517 (execute_strength_reduction): Remove calls to initialize_costs and
5518 finalize_costs.
5519 * expmed.c (struct init_expmed_rtl): Add convert rtx_def.
5520 (init_expmed_one_mode): Initialize convert rtx_def; initialize
5521 x_convert_cost for related modes.
5522 (mult_by_coeff_cost): New function.
5523 * expmed.h (NUM_MODE_INT): New #define.
5524 (struct target_expmed): Add x_convert_cost matrix.
5525 (set_convert_cost): New inline function.
5526 (convert_cost): Likewise.
5527 (mult_by_coeff_cost): New extern decl.
5528 * tree-flow.h (initialize_costs): Remove decl.
5529 (finalize_costs): Likewise.
5530 (multiply_by_const_cost): Likewise.
5531 (add_regs_cost): Likewise.
5532 (multiply_regs_cost): Likewise.
5533 (add_const_cost): Likewise.
5534 (extend_or_trunc_reg_cost): Likewise.
5535 (negate_reg_cost): Likewise.
5536 * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
5537 (tree-ssa-address.o): Update dependencies.
5538
4f862fce 55392012-07-26 Steven Bosscher <steven@gcc.gnu.org>
5540
5541 * bitmap.h: Add explanation of sparse set as linked-list bitmap.
5542 * sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
5543 (TEST_BIT): Make a static inline function for stronger type checking.
5544 (SET_BIT): Don't handle sbitmaps with popcount.
5545 (RESET_BIT): Likewise.
5546 (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
5547 (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
5548 * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
5549 RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
5550 (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
5551 ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
5552 * sparseset.h: Add explanation of sparse set representation.
5553
bcaf4fd0 55542012-07-26 Richard Guenther <rguenther@suse.de>
5555
5556 PR tree-optimization/54098
5557 * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
5558 original range was UNDEFINED.
5559
c35d742c 55602012-07-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5561
5562 * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
5563 vld1Q_dupu64 tests.
5564
eb9f349a 55652012-07-26 Oleg Endo <olegendo@gcc.gnu.org>
5566
5567 PR target/51244
5568 * config/sh/sh.opt (mzdcbranch): New option.
5569 * doc/invoke.texi: Document it.
5570 * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
5571 instead of TARGET_HARD_SH4.
5572 * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
5573 for TARGET_HARD_SH4.
5574
bb8e9728 55752012-07-25 Oleg Endo <olegendo@gcc.gnu.org>
5576
5577 PR target/54089
5578 * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
5579 case.
5580 (p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
5581 * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
5582 from expander. Do not emit shift insn for not-SHMEDIA case.
5583 (ashlsi3_std): Replace with ...
5584 (ashlsi3_k, ashlsi3_d): ... these new insns.
5585 * config/sh/sh.c (gen_ashift): Make static. Add sanity checks.
5586 Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
5587 (gen_ashift_hi): Make static.
5588 * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
5589 declaration.
5590
c6e19dd6 55912012-07-25 Bharathi Seshadri <bseshadr@cisco.com>
5592 Jim Wilson <jimwilso@cisco.com>
5593
5594 * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
5595 TARGET_BIG_ENDIAN_DEFAULT.
5596
929384bb 55972012-07-25 Eric Botcazou <ebotcazou@adacore.com>
5598
5599 * gimple-low.c (lower_try_catch): New function.
5600 (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
5601 <GIMPLE_CATCH>: Delete.
5602 <GIMPLE_EH_FILTER>: Likewise.
5603
2330f9c5 56042012-07-25 Eric Botcazou <ebotcazou@adacore.com>
5605
5606 * expr.c (expand_expr_real_1): Do not expand operand #1 and #2
5607 of BIT_FIELD_REF for ignored results.
5608 * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
5609 CONSTRUCTOR has vector type before using vector accessors on it.
5610 * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
5611 #2 of BIT_FIELD_REF.
5612 (gimplify_expr) <BIT_FIELD_REF>: Likewise.
5613 * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
5614 not process operand #1 and #2.
5615 (convert_local_reference_op): Likewise.
5616 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
5617 breaks throughout.
5618 <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
5619 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
5620 operand #1 and #2.
5621 (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
5622 (build6_stat): Delete.
5623 * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
5624
c5faecd5 56252012-07-25 Marc Glisse <marc.glisse@inria.fr>
5626
5627 PR tree-optimization/30318
5628 * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
5629 Handle __int128.
5630 [MINUS_EXPR]: Merge with PLUS_EXPR.
5631
08c6cbd2 56322012-07-25 Sandra Loosemore <sandra@codesourcery.com>
5633 Paul Brook <paul@codesourcery.com>
5634
5635 PR target/53633
08c6cbd2 5636 * target.def (warn_func_return): New hook.
5637 * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
5638 * doc/tm.texi: Regenerate.
5639 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5640 naked_functions.
5641 * ipa-pure-const.c (warn_function_noreturn): Check
5642 targetm.warn_func_return.
5643 * tree-cfg.c (execute_warn_function_return): Likewise.
5644 * config/spu/spu.c (spu_warn_func_return): New.
5645 (TARGET_WARN_FUNC_RETURN): Define.
5646 * config/rx/rx.c (rx_warn_func_return): New.
5647 (TARGET_WARN_FUNC_RETURN): Define.
5648 * config/avr/avr.c (avr_warn_func_return): New.
5649 (TARGET_WARN_FUNC_RETURN): Define.
5650 * config/arm/arm.c (arm_warn_func_return): New.
5651 (TARGET_WARN_FUNC_RETURN): Define.
5652 * config/mcore/mcore.c (mcore_warn_func_return): New.
5653 (TARGET_WARN_FUNC_RETURN): Define.
5654 (saved_warn_return_type, saved_warn_return_type_count): Remove.
5655 (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.
5656
18474b2c 56572012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com>
5658
5659 * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
5660 function to implement assembler dialects.
5661 (output_asm_insn): Use do_assembler_dialects.
5662 (asm_fprintf): Likewise.
5663
6eb29590 56642012-07-25 Richard Henderson <rth@redhat.com>
5665
5666 PR bootstrap/54092
5667 * libfuncs.h: Don't include optabs.h.
5668 (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
5669 * optabs.c (hash_libfunc): Don't cast members to int.
5670 * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.
5671
1496fdb4 56722012-07-25 Dodji Seketeli <dodji@redhat.com>
5673
5674 * basic-block.c: Fix typo in comment.
5675
7962a5b1 56762012-07-25 Kirill Yukhin <kirill.yukhin@intel.com>
5677 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5678
41ff1216 5679 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
5680 (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
5681 (ix86_handle_option): Handle mprfchw option.
5682 * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
5683 (x86_64-*-*): Likewise.
5684 * config/i386/prfchwintrin.h: New header.
5685 * config/i386/cpuid.h (bit_PRFCHW): New.
5686 (bit_BMI): Formatting fix.
5687 (bit_HLE): Likewise.
5688 (bit_RTM): Likewise.
5689 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
5690 PREFETCHW support.
5691 * config/i386/i386-c.c: Define __PRFCHW__ if needed.
5692 * config/i386/i386.c (ix86_target_string): Define
5693 -mprfchw option. Formatting fixes.
5694 (PTA_HLE): Formatting fix.
5695 (PTA_PRFCHW): New.
5696 (ix86_option_override_internal): Handle new option.
5697 (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
5698 * config/i386/i386.h (TARGET_PRFCHW): New.
5699 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
5700 * config/i386/i386.opt (mprfchw): New.
5701 * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h.
5702 * config/i386/x86intrin.h: Include prfchwintrin.h.
7962a5b1 5703
05c1aa95 57042012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
5705
5706 * config/i386/i386.md (stack_protect_set): Disable the pattern
5707 for Android since Android libc (bionic) does not provide random
5708 value for stack protection guard at gs:0x14. Guard value
5709 will be provided from external symbol (default implementation).
5710 (stack_protect_set_<mode>): Likewise.
5711 (stack_protect_test): Likewise.
5712 (stack_protect_test_<mode>): Likewise.
5713 * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
5714 not have Bionic by default
5715 * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
5716 Macro OPTION_BIONIC is defined in this file and provides Bionic
5717 accessibility status
5718
051a57b6 57192012-07-25 Steven Bosscher <steven@gcc.gnu.org>
5720
5721 * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
5722
57232012-07-25 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5724
75eddf9a 5725 btver2 Enablement
5726 * config.gcc (i[34567]86-*-linux* | ...): Add btver2.
5727 (case ${target}): Add btver2.
5728 * config/i386/driver-i386.c (host_detect_local_cpu): Let
5729 -march=native recognize btver2 processors.
5730 * config/i386/i386-c.c (ix86_target_macros_internal): Add
5731 btver2 def_and_undef
5732 * config/i386/i386.c (struct processor_costs btver2_cost): New
5733 btver2 cost table.
5734 (m_BTVER2): New definition.
5735 (m_AMD_MULTIPLE): Includes m_BTVER2.
5736 (initial_ix86_tune_features): Add btver2 tune.
5737 (processor_target_table): Add btver2 entry.
5738 (static const char *const cpu_names): Add btver2 entry.
5739 (software_prefetching_beneficial_p): Add btver2.
5740 (ix86_option_override_internal): Add btver2 instruction sets.
5741 (ix86_issue_rate): Add btver2.
5742 (ix86_adjust_cost): Add btver2.
5743 * config/i386/i386.h (TARGET_BTVER2): New definition.
5744 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
5745 (enum processor_type): Add PROCESSOR_BTVER2.
5746 * config/i386/i386.md (define_attr "cpu"): Add btver2.
5747
f97dec81 57482012-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
5749
5750 * doc/tm.texi: Regenerate.
5751 * targhooks.c (default_init_cost): Add prologue and epilogue costs.
5752 (default_add_stmt_cost): Likewise; also handle NULL stmt_info.
5753 (default_finish_cost): Add prologue and epilogue costs.
5754 * targhooks.h (default_add_stmt_cost): Change parameter list.
5755 (default_finish_cost): Likewise.
5756 * target.def (init_cost): Change documentation string.
5757 (add_stmt_cost): Change documentation string and parameter list.
5758 (finish_cost): Likewise.
5759 * target.h (vect_cost_model_location): New enum.
5760 * tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
5761 (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
5762 to body_cost_vec.
5763 (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
5764 (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
5765 (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
5766 (struct _vect_peel_extended_info): Rename stmt_cost_vec to
5767 body_cost_vec.
5768 (struct _stmt_vec_info): Remove cost substruct.
5769 (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
5770 (stmt_vinfo_set_outside_of_loop_cost): Remove.
5771 (builtin_vectorization_cost): New function.
5772 (vect_get_stmt_cost): Change to use builtin_vectorization_cost.
5773 (add_stmt_cost): Change parameter list.
5774 (finish_cost): Likewise.
5775 (vect_model_simple_cost): Likewise.
5776 (vect_model_store_cost): Likewise.
5777 (vect_model_load_cost): Likewise.
5778 (record_stmt_cost): Likewise.
5779 (vect_get_load_cost): Likewise.
5780 (vect_get_known_peeling_cost): Likewise.
5781 * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
5782 list; call record_stmt_cost for prologue and epilogue costs.
5783 (vect_estimate_min_profitable_iters): Call add_stmt_cost for
5784 prologue and epilogue costs; remove computation of vec_outside_cost;
5785 return vec_prologue_cost and vec_epilogue_cost from finish_cost.
5786 (vect_model_reduction_cost): Revise call to add_stmt_cost for body
5787 costs; call add_stmt_cost for prologue and epilogue costs.
5788 (vect_model_induction_cost): Revise call to add_stmt_cost for body
5789 costs; call add_stmt_cost for prologue costs.
5790 * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
5791 list for function and arguments for calls to vect_get_load_cost and
5792 vect_get_store_cost.
5793 (vect_peeling_hash_get_lowest_cost): Change argument list for calls to
5794 vect_get_data_access_cost and vect_get_known_peeling_cost; use
5795 temporary vectors prologue_cost_vec and epilogue_cost_vec for the
5796 latter call and discard their results; rename stmt_cost_vec to
5797 body_cost_vec; correct possible storage leak for body_cost_vec.
5798 (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
5799 body_cost_vec.
5800 (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
5801 body_cost_vec; add extra dummy parameter on calls to
5802 vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
5803 argument list on call to add_stmt_cost.
5804 * tree-vect-stmts.c (record_stmt_cost): Change parameter list;
5805 rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
5806 builtin_vectorization_cost; add "where" parameter on call to
5807 add_stmt_cost.
5808 (vect_model_simple_cost): Change parameter list; call record_stmt_cost
5809 for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
5810 rename stmt_cost_vec to body_cost_vec.
5811 (vect_model_promotion_demotion_cost): Add vect_body argument to call
5812 to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
5813 to stmt_vinfo_set_outside_of_loop_cost.
5814 (vect_model_store_cost): Change parameter list; call record_stmt_cost
5815 for prologue costs; add vect_body argument to call to record_stmt_cost;
5816 rename stmt_cost_vec to body_cost_vec; remove call to
5817 stmt_vinfo_set_outside_of_loop_cost.
5818 (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
5819 vect_body argument to calls to record_stmt_cost.
5820 (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
5821 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
5822 remove call to stmt_vinfo_set_outside_of_loop_cost.
5823 (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
5824 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
5825 call record_stmt_cost for prologue costs.
5826 (vectorizable_store): Change argument list for call to
5827 vect_model_store_cost.
5828 (vectorizable_load): Change argument list for call to
5829 vect_model_load_cost.
5830 (new_stmt_vec_info): Remove assignment to
5831 STMT_VINFO_OUTSIDE_OF_LOOP_COST.
5832 * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
5833 (spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
5834 (spu_finish_cost): Add prologue and epilogue costs.
5835 * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
5836 (i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
5837 (i386_finish_cost): Add prologue and epilogue costs.
5838 * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
5839 costs.
5840 (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
5841 (rs6000_finish_cost): Add prologue and epilogue costs.
5842 * tree-vect-slp.c (vect_free_slp_instance): Rename
5843 SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
5844 (vect_create_new_slp_node): Remove assignment to
5845 SLP_TREE_OUTSIDE_OF_LOOP_COST.
5846 (vect_get_and_check_slp_defs): Change parameter list; change argument
5847 lists to calls to vect_model_store_cost and vect_model_simple_cost.
5848 (vect_build_slp_tree): Change parameter list; change argument lists
5849 to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
5850 recursive self-calls; remove setting of outside_cost from
5851 SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
5852 record_stmt_cost.
5853 (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
5854 rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
5855 remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
5856 prologue costs.
5857 (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
5858 body_cost_vec; handle null ci->stmt; add vect_body argument to call
5859 to add_stmt_cost; simplify calls to targetm.vectorize.
5860 builtin_vectorization_cost; return vec_prologue_cost and
5861 vec_epilogue_cost from finish_cost.
5862 (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
5863 body_cost_vec; add vect_body argument to call to add_stmt_cost.
5864
eb7cb9b6 58652012-07-24 Richard Henderson <rth@redhat.com>
5866
5867 * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
5868 * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
5869 * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
5870 * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
5871 * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
5872 comment reference.
5873 * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
5874 * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
5875 (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
5876 * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
5877 * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
5878 * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
5879 * doc/tm.texi: Rebuild.
5880
ee65118b 58812012-07-24 Richard Henderson <rth@redhat.com>
5882
5883 * optabs.def: New file.
5884 * Makefile.in (OPTABS_H): Add insn-opinit.h.
5885 (MOSTLYCLEANFILES): Likewise.
5886 (insn-opinit.o): Remove reload.h
5887 (simple_rtl_generated_c): Remove insn-opinit.c.
5888 (s-opinit): New rule.
5889 (build/genopinit.o): Add optabs.def.
5890 * genopinit.c (rtx_upname): New.
5891 (optabs): Extract to optabs.def
5892 (enum optab_tag, struct optab_def_d, optabs): New.
5893 (struct pattern_d, patterns): New.
5894 (match_pattern): Split out from ...
5895 (gen_insn): ... here. Push matches on patterns vec.
5896 (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
5897 (header_file_name, source_file_name, handle_arg): New.
5898 (open_outfile): New.
5899 (main): Sort and emit new tables. Generate lookup_handler,
5900 raw_optab_handler, swap_optab_enable.
5901 * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
5902 * optabs.c (code_to_optab_): Remove.
5903 (hash_libfunc): Update for optab name change.
5904 (eq_libfunc): Likewise.
5905 (convert_optab_libfunc): Update computation of optab member;
5906 use the new convlib_def table.
5907 (optab_libfunc): Similarly.
5908 (set_optab_libfunc, set_conv_libfunc): Likewise.
5909 (sign_expand_binop): Use swap_optab_enable instead of fake optabs.
5910 (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
5911 (init_optabs): Don't call them; export the data to optabs.def.
5912 (gen_int_libfunc, gen_fp_libfunc): Export non-static.
5913 (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
5914 (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
5915 (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
5916 (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
5917 (gen_int_signed_fixed_libfunc): Likewise.
5918 (gen_int_unsigned_fixed_libfunc): Likewise.
5919 (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
5920 (gen_ufloat_conv_libfunc): Likewise.
5921 (gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
5922 (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
5923 (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
5924 (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
5925 (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
5926 (debug_optab_libfuncs): Update for optab representation change.
5927 * optabs.h: Include insn-opinit.h.
5928 (optab, convert_optab, direct_optab): New typedefs.
5929 (struct optab_handlers, struct widening_optab_handlers): Remove.
5930 (struct optab_libcall_d): Rename from optab_d; remove code_,
5931 handlers, widening members.
5932 (struct convert_optab_libcall_d): Rename from convert_optab_d;
5933 remove code_ and handlers members.
5934 (enum optab_index, enum convert_optab_index): Remove.
5935 (enum direct_optab_index): Remove.
5936 (code_to_optab_): Fix array range.
5937 (optab_to_code): Covert to inline function.
5938 (optab_to_code_, convlib_def, normlib_def): Declare.
5939 (raw_optab_handler, swap_optab_enable): Declare.
5940 (unknown_optab): Remove; export to optabs.def
5941 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
5942 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
5943 ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
5944 addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
5945 smul_widen_optab, umul_widen_optab, usmul_widen_optab,
5946 smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
5947 usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
5948 ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
5949 sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
5950 umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
5951 ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
5952 rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
5953 vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
5954 atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
5955 movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
5956 negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
5957 ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
5958 parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
5959 cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
5960 ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
5961 log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
5962 ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
5963 tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
5964 cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
5965 lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
5966 cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
5967 reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
5968 reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
5969 usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
5970 vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
5971 vec_realign_load_optab, vec_widen_umult_hi_optab,
5972 vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
5973 vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
5974 vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
5975 vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
5976 vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
5977 vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
5978 vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
5979 vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
5980 vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
5981 vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
5982 vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
5983 sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
5984 sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
5985 sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
5986 sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
5987 sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
5988 ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
5989 ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
5990 fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
5991 vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
5992 movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
5993 setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
5994 sync_lock_release_optab, sync_add_optab, sync_sub_optab,
5995 sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
5996 atomic_exchange_optab, atomic_compare_and_swap_optab,
5997 atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
5998 atomic_sub_fetch_optab, atomic_and_fetch_optab,
5999 atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
6000 atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
6001 atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
6002 atomic_add_optab, atomic_sub_optab, atomic_and_optab,
6003 atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
6004 atomic_always_lock_free_optab, atomic_is_lock_free_optab,
6005 atomic_thread_fence_optab, atomic_signal_fence_optab,
6006 vec_perm_optab, vec_perm_const_optab): Likewise.
6007 (struct target_optabs): Remove x_optab_table, x_convert_optab_table,
6008 and x_direct_optab_table members; add pat_enable.
6009 (optab_table, convert_optab_table, direct_optab_table): Remove.
6010 (optab_handler): Use raw_optab_handler.
6011 (widening_optab_handler, convert_optab_handler): Likewise.
6012 (set_optab_handler, set_widening_optab_handler): Remove.
6013 (set_convert_optab_handler, set_direct_optab_handler): Remove.
6014 (direct_optab_handler): Defer to optab_handler.
6015 * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.
6016
6ca8572d 60172012-07-24 Jason Merrill <jason@redhat.com>
6018
6019 * bitmap.c (bitmap_descriptor): Adjust order of parameters to
6020 match MEM_STAT_DECL.
6021 * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.
6022
6cdd383a 60232012-07-24 Richard Henderson <rth@redhat.com>
6024
ebb6e3c1 6025 * optabs.h (struct optab_d): Rename code member to code_.
6026 (struct convert_optab_h): Likewise.
6027 (code_to_optab_): Rename from code_to_optab.
6028 (code_to_optab, optab_to_code): New.
6029 * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
6030 * ifcvt.c (noce_emit_move_insn): Likewise.
6031 * optabs.c (simplify_expand_binop): Use optab_to_code.
6032 (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
6033 (avoid_expensive_constant, expand_binop_directly): Likewise.
6034 (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
6035 (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
6036 (have_insn_for, debug_optab_libfuncs): Likewise.
6037 (init_optab, init_optabv, init_convert_optab): Update for optab
6038 member name change.
6039
8b1bf73d 6040 * libfuncs.h: Include optabs.h.
6041 * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
6042 * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
6043 (lto-streamer-in.o, dwarf2out.o): Update deps.
6044
6cdd383a 6045 * optabs.h (unknown_optab): New.
6046 * builtins.c (interclass_mathfn_icode): Use it.
6047 * dojump.c (do_compare_rtx_and_jump): Likewise.
6048 * optabs.c (optab_for_tree_code, expand_binop): Likewise.
6049 * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
6050 (expand_vector_operations_1): Likewise.
6051 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
6052 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
6053
bdc1331d 60542012-07-24 Steven Bosscher <steven@gcc.gnu.org>
6055
6056 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
6057
0b66dd3d 60582012-07-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6059
6060 PR target/54051
6061 * config/arm/arm.c (arm_print_operand_address): Remove superfluous
6062 printing of 0.
6063 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
6064 specifier.
6065 ("neon_vld3_lane<mode>":VMQ): Likewise.
6066 ("neon_vld3_dup<mode>":VDX): Likewise.
6067 ("neon_vst3_lane<mode>":VD): Likewise.
6068 ("neon_vst3_lane<mode>":VMQ): Likewise.
6069
e62e9964 60702012-07-24 Roland McGrath <mcgrathr@google.com>
6071
0b66dd3d 6072 * arm.c (arm_get_frame_offsets): Don't use fixed regs for
e62e9964 6073 stack alignment padding.
6074
12095e04 60752012-07-24 Uros Bizjak <ubizjak@gmail.com>
6076
6077 PR target/53961
6078 * config/i386/i386.c (ix86_legitimate_address_p): Move check for
41622801 6079 negative constant address for TARGET_X32 ...
12095e04 6080 (ix86_decompose_address): ... here. Reject constant addresses
6081 that don't satisfy x86_64_immediate_operand predicate.
6082
a9f3876a 60832012-07-24 Julian Brown <julian@codesourcery.com>
6084
12095e04 6085 * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
a9f3876a 6086
ecd52ea9 60872012-07-24 Steven Bosscher <steven@gcc.gnu.org>
6088
6089 * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
6090 Move test to check that there is a popcount function for the the number
6091 of bits in SBITMAP_ELT_BITS to sbitmap.c.
6092 * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
6093 MEM_STAT_INFO): Define in terms of their ALONE counterparts.
6094
6095 * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
6096 * configure: Regenerate.
6097 * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
6098 (GCC_MEM_STAT_ARGUMENTS): New define.
6099 (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
6100 (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
12095e04 6101 (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
6102 FINAL_PASS_MEM_STAT): Define.
ecd52ea9 6103 * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
6104 * ggc.h (ggc_record_overhead, ggc_free_overhead,
6105 ggc_prune_overhead_list): Remove internal prototypes, they are defined
6106 already in ggc-internal.h.
6107 * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
6108 wrappers.
6109 (add_statistics): Likewise.
12095e04 6110 (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
ecd52ea9 6111 * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
6112 wrappers around "survived" and "stats" members.
6113 (alloc_large_page): Always initialize survived.
6114 (ggc_internal_alloc_zone_stat): Likewise.
6115 Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if
6116 GATHER_STATISTICS is non-0.
6117 (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
6118 (sweep_pages): Always increase survived.
6119 (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
6120 (calculate_average_page_survival): Always define.
6121 (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
6122 (ggc_print_statistics): Likewise.
6123 (ggc_pch_read): Likewise.
6124 * ggc-page.c (struct globals): Always define "stats" member.
6125 (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
6126 (ggc_free): Likewise.
6127 (ggc_collec): Likewise.
6128 (ggc_print_statistics): Likewise.
6129 * bitmap.h (struct bitmap_head_def): Always define "desc" member.
6130 (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
6131 * gimple.h (enum gimple_alloc_kind): Always define.
6132 (gimple_alloc_kind): Likewise.
6133 * tree-flow.h (phinodes_print_statistics): Always define.
6134 (ssanames_print_statistics): Likewise.
6135 * vec.h (vec_heap_free): Always define.
6136 (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
6137 * alloc-pool.c (alloc_pool_descriptor): Always define.
6138 (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
6139 (empty_alloc_pool): Likewise.
6140 (pool_alloc): Likewise.
6141 (pool_free): Likewise.
6142 (dump_alloc_pool_statistics): Likewise.
6143 (print_statistics): Always define.
6144 * bitmap.c (struct bitmap_descriptor): Always define.
6145 (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
6146 (register_overhead): Always define.
6147 (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
6148 (bitmap_element_allocate): Likewise.
6149 (bitmap_elt_clear_from): Likewise.
6150 (bitmap_obstack_alloc_stat): Likewise.
6151 (bitmap_gc_alloc_stat): Likewise.
6152 (bitmap_obstack_free): Likewise.
6153 (bitmap_find_bit): Likewise.
6154 (bitmap_ior_and_into): Likewise.
6155 (bitmap_print): Likewise.
6156 (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
6157 * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
6158 (gimple_alloc_kind_names): Likewise.
6159 (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
6160 (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
6161 * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
6162 rtvec_alloc_sizes): Always define.
6163 (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
6164 (rtx_alloc_stat): Likewise.
6165 (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
6166 * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
6167 tree_node_sizes, tree_node_kind_names): Always define.
6168 (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
6169 to if-code.
6170 (type_hash_canon): Likewise.
6171 (dump_tree_statistics): Likewise.
6172 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
6173 Always define.
6174 (ssanames_print_statistics): Likewise.
6175 (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
6176 * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
6177 (phinodes_print_statistics): Likewise.
6178 (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
6179 * vec.c (struct vec_descriptor): Always define.
6180 (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
6181 vec_descriptor, rester_overhead, free_overhead): Likewise.
6182 (cmp_statistic): Likewise.
6183 (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
6184 (vec_heap_o_reserve_1): Likewise.
6185 (dump_vec_loc_statistics): Likewise.
6186
ed74aa44 61872012-07-24 Richard Guenther <rguenther@suse.de>
6188
6189 PR tree-optimization/53616
6190 * tree-loop-distribution.c (ldist_gen): Do not change
6191 partition ordering when merging partitions.
6192
885d1f6b 61932012-07-24 Alan Modra <amodra@gmail.com>
6194
6195 PR target/53914
6196 PR target/54009
6197 * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
6198 * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
6199 Adjust all rs6000_legitimate_offset_address_p calls.
6200 * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
6201 (rs6000_secondary_reload_gpr): Declare.
6202 (rs6000_legitimate_offset_address_p): Update prototype.
6203 (rs6000_offsettable_memref_p): Delete.
6204 (rs6000_secondary_reload_ppc64): Delete.
6205 * config/rs6000/rs6000.c (address_offset): New function.
6206 (mem_operand_gpr): Likewise.
6207 (rs6000_legitimate_offset_address_p): Add worst_case param. When
6208 not worst_case assume class of regs with least restrictive offsets.
6209 Adjust all calls.
6210 (legitimate_lo_sum_address_p): Simplify register mode tests.
6211 (rs6000_legitimize_address): Likewise. Assume best case offset
6212 addressing. Combine ELF and MACHO lo_sum code.
6213 (rs6000_mode_dependent_address): Correct offset addressing limits.
6214 (rs6000_offsettable_memref_p): Make static, add reg_mode param.
6215 Use reg_mode to help rs6000_legitimate_offset_address_p.
6216 (rs6000_secondary_reload): Use address_offset. Handle 32-bit multi
6217 gpr load/store when offset too large.
6218 (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
6219 (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
6220 * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
6221 for gpr load/store. Order alternatives as r->Y,Y->r,r->r and
6222 d->m,m->d,d->d. Correct size of gpr load/store.
6223 (movdf_softfloat32): Use 'Y' constraint for gpr load/store. Order
6224 alternatives.
6225 (movti_ppc64): Likewise.
6226 (movdi_internal32): Likewise. Also disparage fprs.
6227 (movdi_mfpgpr, movdi_internal64): Likewise.
6228 (movtf_internal): Use 'm' for fpr load/store. Order alternatives.
6229 (movtf_softfloat): Order alternatives.
6230 (extenddftf2_internal): Use 'm' and 'Y' for store.
6231 (movti_power, movti_string): Use 'Y' for gpr load/store. Order.
6232 (stack_protect_setdi, stack_protect_testdi): Likewise.
6233 (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
6234 (movdf_softfloat64): Likewise.
6235 (reload_<mode>_store): Adjust reload_di_store to provide
6236 reload_si_store as well.
6237 (reload_<mode>_load): Likewise.
6238
61af3583 62392012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
6240
6241 PR target/51244
6242 * config/sh/predicates.md (general_movsrc_operand,
6243 general_movdst_operand): Reject T_REG.
6244 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
6245 movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
6246 Remove T_REG alternatives.
6247 (*negtstsi): New insn.
6248
83876aca 62492012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
6250
6251 PR target/53511
6252 * config/sh/sh.md (mulsf3_ie): Delete.
6253 (mulsf3_i4): Rename to mulsf3_i.
6254 (mulsf3): Emit mulsf3_i insn.
6255
8474a05b 62562012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
6257
6258 * config/sh/sh.md (addc1, subc1): Delete.
6259 (adddi3_compact): Use addc instead of addc1.
6260 (subdi3_compact): Use subc instead of subc1.
6261
8c99863d 62622012-07-23 Uros Bizjak <ubizjak@gmail.com>
6263
aba55a9c 6264 * config/i386/i386-protos.h (ix86_lea_outperforms): Remove prototype.
8c99863d 6265 * config/i386/i386.c (ix86_lea_outperforms): Make static. Make
6266 split_cost argument signed.
6267 (ix86_avoid_lea_for_add): Cleanup.
6268 (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
6269 (ix86_avoid_lea_for_addr): Ditto. Make split_cost signed.
6270 Use gen_lowpart instead of gen_rtx_SUBREG. Cleanup.
6271
6272f519 62722012-07-23 Ulrich Weigand <ulrich.weigand@linaro.org>
6273
6274 * config/arm/arm.c (arm_reorg): Ensure all insns are split.
6275
76f0a162 62762012-07-23 Uros Bizjak <ubizjak@gmail.com>
6277
6278 PR target/53961
6279 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
6280 * config/i386/i386.c (ix86_print_operand_address): Ditto.
6281 (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
6282 addresses. Prevent zero extensions of CONST_INT operands.
6283
ecd52ea9 62842012-07-23 Steven Bosscher <steven@gcc.gnu.org>
34ad4b87 6285
6286 * sbitmap.h (struct int_list): Remove.
6287 (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
6288 Remove prototypes of non-existing function.
6289 (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
6290 sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
6291 unused defines.
6292 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
6293 sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
6294 * basic-block.h: ... here.
6295 * sbitmap.c: Do not include basic-block.h.
6296 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
6297 sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
6298 * cfganal.c: ... here.
6299 * bt-load.c (compute_out, link_btr_uses): Update for above changes.
6300 * gcse.c (compute_code_hoist_vbeinout): Likewise.
6301 * lcm.c (compute_antinout_edge, compute_available): Likewise.
6302 * Makefile.in: Fix sbitmap.o dependencies.
6303
7f518cd8 63042012-07-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6305 Nick Clifton <nickc@redhat.com>
6306
6307 * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
6308 * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
6309 (unused) parameter to void *.
6310
2aac21c5 63112012-07-23 Richard Guenther <rguenther@suse.de>
6312
6313 * tree-ssa-alias.c (dump_alias_info): Walk over local decls
6314 instead of referenced vars.
6315
ecd52ea9 63162012-07-23 Steven Bosscher <steven@gcc.gnu.org>
56b17dd7 6317
6318 * coverage.c: Refer to "notes file" instead of "graph file"
6319 in all comments. Explain history of bbg prefix.
6320 * gcov-io.h: Likewise.
6321 * gcov.c: Likewise.
6322 (find_source): Likewise in fnotice.
6323 (read_graph_file): Likewise.
6324 (read_count_file): Likewise.
6325 * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file"
6326 and "data file" explicitly in the explanation of the files.
6327
ccbef2e3 63282012-07-22 Steven Bosscher <steven@gcc.gnu.org>
6329
6330 PR tree-optimization/53881
6331 * tree-cfg.c (group_case_labels_stmt): Look up the basic block
6332 for each label and compare them instead of labels.
6333
3e7f455b 63342012-07-22 Steven Bosscher <steven@gcc.gnu.org>
6335
76f0a162 6336 * opts.c (common_handle_option): Do not set
3e7f455b 6337 flag_value_profile_transformations for -fprofile-generate.
6338 * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
6339 (BB_TO_GCOV_INDEX): Remove.
6340 (output_location): Don't use it.
6341 (branch_prob): Likewise. Don't fiddle with the index of
6342 ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks.
6343 (find_spanning_tree):
6344 * gcov.c (struct function_info): Document that blocks 0 and 1
6345 are the entry resp. exit blocks in gcov, too, like in GCC itself.
6346 (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
6347 blocks identification.
6348 (output_lines): Likewise.
6349 * value-prof.c (gimple_value_profile_transformations): Do not
6350 test flag_value_profile_transformations again.
6351 (gimple_ic_transform): Take a gimple_stmt_iterator like all other
6352 transformation functions.
6353 (gimple_values_to_profile):
6354 Don't test flag_value_profile_transformations
6355 * tree-profile.c (tree_profiling): Assert that the cgraph is in
6356 the CGRAPH_STATE_IPA_SSA state.
6357 Do not set, or look at, after_tree_profile.
6358 * function.h (struct function): Remove after_tree_profile bit.
6359 * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
6360 * tree-inline.c (initialize_cfun): Don't copy it.
6361 * lto-streamer-out.c (output_struct_function_base): Don't stream it.
6362 * lto-streamer-in.c (input_struct_function_base): Likewise.
6363
5e3df43c 63642012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
6365
6366 * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
6367 (SH_DYNAMIC_SHIFT_COST): Use it.
6368 * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
6369 (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
6370 Add sanity check for input value. Add function description.
6371 * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
6372 lshrsi3_d): Use TARGET_DYNSHIFT.
6373
cbb73f9d 63742012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
6375
6376 * config/sh/sh.md (negc): Delete expander.
6377 (*negc): Rename insn to negc.
6378
b411c06d 63792012-07-22 Uros Bizjak <ubizjak@gmail.com>
6380
6381 PR target/53961
6382 * config/i386/i386.md (*lea): New insn pattern.
6383 (*lea_1): Remove.
6384 (*lea<mode>_2): Ditto.
6385 (*lea_{3,4,5,6}_zext): Ditto.
41622801 6386 * config/i386/predicates.md (lea_address_operand): Do not reject
6387 zero-extended address operands.
b411c06d 6388 * config/i386/constraints.md (j): Remove address constraint.
6389 * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
6390 of an address.
6391 (ix86_print_operand_address): Handle SImode subreg of an address.
d2377452 6392 (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
b411c06d 6393
5baeff2b 63942012-07-22 Hans-Peter Nilsson <hp@axis.com>
6395
6396 Emit executable-stack note correctly for CRIS targets.
6397 * config/cris/cris.c (cris_file_end): New function.
6398 (TARGET_ASM_FILE_END): Define.
6399
f9b43f50 64002012-07-22 Chung-Lin Tang <cltang@codesourcery.com>
6401 Maxim Kuvyrkov <maxim@codesourcery.com>
6402 NetLogic Microsystems Inc.
6403
6404 * config/mips/mips.c (mips_issue_rate): Handle XLP.
6405 * config/mips/mips.md: Include xlp.md.
6406 * config/mips/xlp.md: New file.
6407
2ba3016c 64082012-07-21 Steven Bosscher <steven@gcc.gnu.org>
6409
6410 PR gcov-profile/32543
6411 * profile.c (branch_prob): Update total_num_edges_instrumented and
6412 report the number of edges to instrument.
6413
923c30fe 64142012-07-21 Oleg Endo <olegendo@gcc.gnu.org>
6415
6416 * config/sh/sh.md: Correct comment regarding clrt and sett insns.
6417
5c8affdc 64182012-07-21 Andrew Pinski <apinski@cavium.com>
6419
6420 * config/mips/mips.md (*popcountdi2_trunc): New pattern
6421 to handle popcount of a truncation.
6422
7378b7dc 64232012-07-21 Andrew Pinski <apinski@cavium.com>
6424
6425 * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
6426 Add a bool argument.
6427 * config/mips/mips.c (mips_block_move_straight): Update call to
6428 mips_expand_ext_as_unaligned_load.
6429 (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
6430 Accept DImode dest when the width is that of SImode.
b411c06d 6431 * config/mips/mips.md (extv): Update call to
7378b7dc 6432 mips_expand_ext_as_unaligned_load.
6433 (extzv): Likewise.
6434
6bed0fe2 64352012-07-21 Andrew Pinski <apinski@cavium.com>
6436
6437 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
6438 adjust_address.
6439
408ae786 64402012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
6441
6442 * config/mips/mips.md (define_attr sync_*): Move before "type".
6443 (define_attr "type"): New values "atomic" and "syncloop".
6444 * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
6445 Set "type" attribute.
6446 * config/mips/generic.md (generic_atomic, generic_syncloop):
6447 New reservations.
6448 * gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
6449 * gcc/config/mips/24k.md, gcc/config/mips/4130.md,
b411c06d 6450 * gcc/config/mips/4k.md, gcc/config/mips/5400.md,
408ae786 6451 * gcc/config/mips/5500.md, gcc/config/mips/5k.md,
b411c06d 6452 * gcc/config/mips/7000.md, gcc/config/mips/74k.md,
408ae786 6453 * gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
6454 * gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
6455 * gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
6456 * gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
6457
a762aed9 64582012-07-20 Oleg Endo <olegendo@gcc.gnu.org>
6459
6460 * config/sh/sh.md: Group and sort shift related patterns.
6461 (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
6462
bb787f66 64632012-07-20 Hans-Peter Nilsson <hp@axis.com>
6464
6465 * config/cris/cris.c (cris_asm_output_ident): Remove unused
6466 local variables section_asm_op, size, buf.
6467
2e4eb8f5 64682012-07-20 Pat Haugen <pthaugen@us.ibm.com>
6469 Steven Bosscher <steven@gcc.gnu.org>
051a57b6 6470
2e4eb8f5 6471 * config/rs6000/power4.md (power4-store-update): Fix reservation.
6472 (power4-three): Likewise.
6473
b7184168 64742012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
6cdd7279 6475 Greta Yorsh <Greta.Yorsh@arm.com>
b7184168 6476
6cdd7279 6477 * config/arm/arm.c (arm_cortex_a15_tune): New tune.
6478 * config/arm/arm-cores.def (cortex-a15): Use it.
b7184168 6479
4a94ccf9 64802012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
6cdd7279 6481 Greta Yorsh <Greta.Yorsh@arm.com>
6482
6483 * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
6484 * config/arm/arm.c (arm_slowmul_tune): Initialize it.
6485 (arm_fastmul_tune, arm_strongarm_tune): Likewise.
6486 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
6487 (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
6488 (arm_fa726te_tune): Likewise.
4a94ccf9 6489
24ccd9c6 64902012-07-20 Richard Guenther <rguenther@suse.de>
6491
6492 * tree-dfa.c (collect_dfa_stats): Simplify.
6493 * tree-ssa-structalias.c (compute_may_aliases): Do not dump
6494 referenced vars.
6495 * cfgexpand.c (estimated_stack_frame_size): Walk over local
6496 decls instead of referenced vars.
6497 * tree-ssa.c (delete_tree_ssa): Simplify.
6498 * tree-tailcall.c (find_tail_calls): Walk over local decls
6499 instead of referenced vars.
6500 (add_virtual_phis): Remove.
6501 (tree_optimize_tail_calls_1): Instead mark the virtual operand
6502 for renaming.
6503
bec2cf98 65042012-07-20 Steven Bosscher <steven@gcc.gnu.org>
6505
6506 * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
6507 (brief_dump_cfg): Update prototype to take flags argument.
6508 (check_bb_profile): Remove prototype.
6509 * tracer.c (tracer): Update brief_dump_cfg calls.
6510 * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
6511 Call dump_bb_info before and after the cfghook dump_bb. Terminate
6512 the dump with a newline.
6513 (dump_flow_info): Do not call check_bb_profile.
6514 * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
6515 (check_bb_profile): Make static. Take indent and flags arguments.
6516 (dump_bb_info): Always dump loop depth. With TDF_DETAILS, call
6517 check_bb_profile. Print one edge per line.
6518 (brief_dump_cfg): Take a flags argument, and filter out
6519 TDF_COMMENT and TDF_DETAILS.
6520 * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
b411c06d 6521 * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
6522 dump_bb_info here, it is already called from dump_bb. Idem for
6523 check_bb_profile.
bec2cf98 6524 (dump_gimple_bb_footer): Likewise.
6525 (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
6526 avoid broken dumps for statement histograms.
6527 (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do
6528 not call pp_flush here, the buffer should be empty.
6529 * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
6530 * sched-vis.c (debug_bb_slim): Likewise.
6531 * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
6532 (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
6533 (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
6534 (dump_function_to_file): Do not call check_bb_profile on
6535 ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
6536 Use dump_bb instead of gimple_dump_bb.
6537 (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
6538 * passes.c (execute_function_dump): Always call print_rtl_with_bb
6539 for RTL dumps.
6540 * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
b411c06d 6541 CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
6542 bottom of each basic block.
bec2cf98 6543
59da1bcd 65442012-07-20 Richard Guenther <rguenther@suse.de>
6545
6546 PR tree-optimization/54031
6547 * tree-ssa-ccp.c (get_value_from_alignment): Use
6548 get_pointer_alignment_1.
6549
6a1933ed 65502012-07-20 Richard Guenther <rguenther@suse.de>
6551
6552 * tree-inline.c (add_local_variables): Remove check_var_ann
6553 parameter and dead code.
6554 (expand_call_inline): Adjust.
6555 (tree_function_versioning): Likewise.
6556
9ca77b08 65572012-07-20 Jakub Jelinek <jakub@redhat.com>
6558
6559 PR c++/28656
6560 * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
6561 of just the first one.
6562
4083990a 65632012-07-20 Richard Guenther <rguenther@suse.de>
6564
6565 * builtins.c (get_object_alignment_2): Correct offset handling
6566 when using type alignment of a MEM_REF kind base.
6567
c6092377 65682012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
6569
6570 PR target/53877
6571 * config/i386/lzcntintrin.h (_lzcnt_u32): New.
6572 (_lzcnt_u64): Ditto.
6573
9c103f9f 65742012-07-19 Eric Botcazou <ebotcazou@adacore.com>
6575
6576 * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
6577
3aeff048 65782012-07-19 Eric Botcazou <ebotcazou@adacore.com>
6579
6580 * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
6581 defining statement is a SSA name that occurs in abnormal PHIs.
6582
cbcfd5e3 65832012-07-19 Eric Botcazou <ebotcazou@adacore.com>
6584
6585 * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
6586 conversions.
6587
30790040 65882012-07-19 Jakub Jelinek <jakub@redhat.com>
6589
6590 PR rtl-optimization/53942
6591 * function.c (assign_parm_setup_reg): Avoid zero/sign extension
6592 directly from likely spilled non-fixed hard registers, move them
6593 to pseudo first.
6594
835deb0f 65952012-07-19 Steve Ellcey <sellcey@mips.com>
6596
6597 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
6598 MIPS16 mode.
6599
d11043f9 66002012-07-19 Jason Merrill <jason@redhat.com>
6601
6602 PR debug/53235
6603 * dwarf2out.c (get_die_parent): New.
6604 (generate_type_signature): Use it.
6605
d386876e 66062012-07-19 Richard Henderson <rth@redhat.com>
6607
bd7ac405 6608 * config/ia64/vect.md (smulv4hi3_highpart): New.
6609 (umulv4hi3_highpart): New.
6610 (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
6611 (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
6612 (udot_prodv8qi, sdot_prodv8qi): Remove.
6613 (sdot_prodv4hi, udot_prodv4hi): Remove.
6614 * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
6615 * config/ia64/ia64-protos.h: Update.
6616
82e76116 6617 * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
6618 vectors larger than UNITS_PER_WORD.
6619
d386876e 6620 * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
6621 * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
6622 dummy != CODE_FOR_nothing value.
6623
7bc8959a 66242012-07-19 Uros Bizjak <ubizjak@gmail.com>
6625
6626 * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
6627 * doc/tm.texi: Regenerate.
6628 * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
6629 * config/sh/sh.h (MODE_AFTER): Update.
6630 * config/epiphany/epiphany.h (MODE_AFTER): Update.
6631
d244d9de 66322012-07-19 Jakub Jelinek <jakub@redhat.com>
6633
6634 PR middle-end/54017
6635 * tree-cfgcleanup.c (cleanup_omp_return): Remove.
6636 (cleanup_tree_cfg_bb): Don't call it.
6637 * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
6638 handling.
6639
bc22be57 66402012-07-19 Christian Bruel <christian.bruel@st.com>
6641
6642 PR target/54029
6643 * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
6644
43c92e0a 66452012-07-19 Richard Guenther <rguenther@suse.de>
7bc8959a 6646 Eric Botcazou <ebotcazou@adacore.com>
43c92e0a 6647
6648 * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
6649 about transition from invariant to known bits.
7bc8959a 6650 (likely_value): Addresses with UNDEFINED components are UNDEFINED.
43c92e0a 6651
76db2018 66522012-07-19 Richard Guenther <rguenther@suse.de>
6653
6654 PR tree-optimization/53970
7bc8959a 6655 * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
6656
8ad0b530 66572012-07-19 Tristan Gingold <gingold@adacore.com>
6658 Richard Henderson <rth@redhat.com>
6659
6660 * opts.c (finish_options): Handle UI_SEH.
6661 * expr.c (build_personality_function): Handle UI_SEH.
6662 * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
6663 * coretypes.h (unwind_info_type): Add UI_SEH.
6664 * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
6665 New function.
6666 (i386_pe_seh_init_sections): Likewise.
6667 * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
6668 (TARGET_ASM_INIT_SECTIONS): Define.
6669 * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6670 (i386_except_unwind_info): New function.
6671
e876044e 66722012-07-18 Maciej W. Rozycki <macro@codesourcery.com>
6673 Chao-ying Fu <fu@mips.com>
6674
6675 * config/mips/mips.opt (mmcu): New option.
7bc8959a 6676 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
e876044e 6677 _mips_mcu when TARGET_MCU.
6678 (ASM_SPEC): Pass mcu options to the assembler.
6679 * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
6680
20fbb1f2 66812012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org>
6682
7bc8959a 6683 * config.gcc (v850-*-rtems*): New target.
6684 * config/v850/rtems.h: New.
6685 * config/v850/t-rtems: New.
20fbb1f2 6686
6de100ef 66872012-07-18 Bill Schmidt <wschmidt@linux.ibm.com>
6688
6689 * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
6690 of flags controlling optimization; add -ftree-slsr to list of flags
6691 enabled by default at -O; add -fhoist-adjacent-loads to list of flags
6692 enabled by default at -O2; add -fvect-cost-model to list of flags
6693 enabled by default at -O3; document -fhoist-adjacent-loads and
6694 -ftree-slsr.
6695 * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
6696 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
6697 flag_tree_slsr.
6698 * common.opt: Add -ftree-slsr with flag_tree_slsr.
6699
5e3c6fec 67002012-07-18 Jie Zhang <jzhang918@gmail.com>
6701 Julian Brown <julian@codesourcery.com>
6702
7bc8959a 6703 * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
5e3c6fec 6704 (arm_size_rtx_costs): Likewise.
6705 (neon_valid_immediate): Add a case for double 0.0.
6706
4dfe9a2e 67072012-07-18 Andrew Stubbs <ams@codesourcery.com>
6708 Mark Shinwell <shinwell@codesourcery.com>
6709 Julian Brown <julian@codesourcery.com>
6710
4dfe9a2e 6711 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
6712 (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
6713 (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
6714 (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
6715 neon_type.
6716 * config/arm/arm.md (neon_type): Update comment.
6717
cfa724cf 67182012-07-18 Richard Guenther <rguenther@suse.de>
6719
6720 PR tree-optimization/53970
6721 * tree.h (contains_packed_reference): Remove.
6722 * expr.c (contains_packed_reference): Likewise.
6723 * tree-vect-data-refs.c (not_size_aligned): New function.
6724 (vector_alignment_reachable_p): Use it.
6725 (vect_supportable_dr_alignment): Likewise.
6726
3482bf13 67272012-07-18 Richard Guenther <rguenther@suse.de>
6728
6729 * tree.h (get_object_or_type_alignment): Remove.
6730 * builtins.c (get_object_alignment_2): New function copied from
6731 get_object_alignment_1. Take extra argument to indicate whether
6732 we take the address of EXP. Rework to use type alignment information
6733 if not, and return whether the result is an approximation or not.
6734 (get_object_alignment_1): Wrap around get_object_alignment_2.
6735 (get_pointer_alignment_1): Call get_object_alignment_2 indicating
6736 we take the address.
6737 (get_object_or_type_alignment): Remove.
6738 * expr.c (expand_assignment): Call get_object_alignment.
6739 (expand_expr_real_1): Likewise.
6740
5ee2f881 67412012-07-18 Nick Clifton <nickc@redhat.com>
6742
6743 * doc/invoke.texi (ARM Options): Document -munaligned-access.
6744
da2c752c 67452012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
6746
6747 * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
6748 expander. Use arith_reg_dest predicate.
6749 (rotldi3, rotrdi3): Remove constraints in expander.
6750 (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
6751 ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
6752 insn_and_split.
6753
df3032ff 67542012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
6755
6756 PR target/33135
6757 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct
6758 description.
5ee2f881 6759 * config/sh/sh.c (sh_option_override): Do not change
df3032ff 6760 flag_finite_math_only. Set TARGET_IEEE to complement of
6761 flag_finite_math_only.
6762 * doc/invoke.texi (SH options): Add mno-ieee. Correct description
6763 of mieee and mno-ieee behavior.
6764
35e5655c 67652012-07-18 Steven Bosscher <steven@gcc.gnu.org>
6766
6767 * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
6768
5147ec07 67692012-07-18 Steven Bosscher <steven@gcc.gnu.org>
6770
6771 * dumpfile.h (TDF_COMMENT): New define.
6772 * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
6773 EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
6774 EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
6775 EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
6776 Move to new file cfg-flags.h.
6777 (enum cfg_edge_flags): New enum, using cfg-flags.h.
6778 (EDGE_ALL_FLAGS): Compute value automatically.
6779 (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
6780 BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
6781 BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
6782 BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
6783 BB_IN_TRANSACTION): Move to new file cfg-flags.h.
6784 (enum bb_flags): Rename to cfg_bb_flags. Use cfg-flags.h.
6785 (BB_ALL_FLAGS): New, compute value automatically.
6786 (dump_bb_info): Update prototype.
6787 (dump_edge_info): Update prototype.
6788 * cfg-flags.h: New file.
6789 * cfg.c (dump_edge_info): Take flags argument. Be verbose only if
6790 TDF_DETAILS and not TDF_SLIM. Include cfg-flags.h for bitnames.
6791 Check that the edge flags are within the range of EDGE_ALL_FLAGS.
6792 (debug_bb): Update dump_bb call.
6793 (dump_cfg_bb_info): Remove.
6794 (dump_bb_info): New function. Use cfg-flags.h for bitnames.
6795 Adjust verbosity using TDF_* flags. Check that the basic block flags
6796 are within the range of BB_ALL_FLAGS.
6797 (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
6798 * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
6799 first for consistency with other dump functions.
6800 (dump_bb): Update prototype accordingly.
6801 * cfghooks.c: Include dumpfile.h.
6802 (verify_flow_info): Update dump_edge_info calls.
6803 (dump_bb): Take a flags argument and pass it around.
6804 Use dump_bb_info to dump common information about a basic block.
6805 (dump_flow_info): Moved here from cfgrtl.c. Make IL agnostic.
6806 (debug_flow_info): Moved here from cfgrtl.c.
6807 * profile.c (is_edge_inconsistent): Update dump_bb calls.
6808 * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
6809 * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
6810 print_rtl_slim_with_bb): Remove prototypes.
6811 (dump_insn_slim): Adjust prototype to take a const_rtx.
6812 (print_rtl_with_bb): Adjust prototype.
6813 * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
6814 * sched-vis.c (dump_insn_slim): Take a const_rtx.
6815 (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
6816 (print_rtl_slim_with_bb): Remove.
6817 (print_rtl_slim): Rename to debug_rtl_slim. Print only insn info,
6818 not basic block info (print_rtl_with_bb with TDF_SLIM should be used
6819 for that. Prototype here near DEBUG_FUNCTION marker.
6820 (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
6821 Use dump_bb.
6822 (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
6823 * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
6824 (remove_bb): Update dump_bb call.
6825 (gimple_debug_bb): Use dump_bb.
6826 (dump_function_to_file): Update gimple_dump_bb call.
6827 (print_loops_bb): Likewise.
6828 * tree-flow.h (gimple_dump_bb): Update prototype.
6829 * gimple-pretty-print.c (dump_bb_header): Rename to
6830 dump_gimple_bb_header. Write to a stream instead of a pretty
6831 printer. Use dump_bb_info to dump basic block info.
6832 (dump_bb_end): Rename to dump_gimple_bb_footer. Write to a
6833 stream instead of a pretty printer. Use dump_bb_info.
6834 (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
6835 (gimple_dump_bb): Do it here with dump_gimple_bb_header and
6836 dump_gimple_bb_footer.
6837 * cfgrtl.c (rtl_dump_bb): Update prototype. Only dump DF if the
6838 dump flags have TDF_DETAILS. Use dump_insn_slim if TDF_SLIM.
6839 (print_rtl_with_bb): Take a flags argument and pass it around.
6840 Use dump_insn_slim if TDF_SLIM.
6841 (dump_bb_info): Removed and re-incarnated in cfg.c.
6842 (dump_flow_info): Moved to cfghooks.c.
6843 (debug_flow_info): Moved to cfghooks.c.
6844 * passes.c (execute_function_dump): Unconditionally use
6845 print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
6846 * final.c (dump_basic_block_info): Update dump_edge_info calls.
6847 * tree-vrp.c (dump_asserts_for): Likewise.
6848 * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
6849 * tree-if-conv.c (if_convertible_bb_p): Don't look at
6850 EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
6851 * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
6852 for the same reason.
6853 * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
6854
35244493 68552012-07-17 Richard Guenther <rguenther@suse.de>
6856
6857 * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
6858 vars here, use create_tmp_reg where appropriate.
6859 (vect_create_addr_base_for_vector_ref): Do not add referenced
6860 vars here, use create_tmp_reg where appropriate.
6861 (vect_create_data_ref_ptr): Likewise.
6862 (vect_create_destination_var): Likewise.
6863 (vect_permute_store_chain): Likewise.
6864 (vect_permute_load_chain): Likewise.
6865 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
6866 Likewise.
6867 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
6868 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
6869 (vect_handle_widen_op_by_const): Likewise.
6870 * tree-vect-stmts.c (vect_init_vector): Likewise.
6871 (vectorizable_load): Likewise.
6872
0354b362 68732012-07-17 Tom de Vries <tom@codesourcery.com>
6874
6875 * hwint.c: Fix loop range.
6876
45105ae2 68772012-07-17 Tom de Vries <tom@codesourcery.com>
6878
6879 * double-int.h (double_int_popcount): New inline function.
6880 * hwint.c (popcount_hwi): New function.
6881 * hwint.h (popcount_hwi): Declare function. New inline function.
6882
087dde2d 68832012-07-17 Richard Henderson <rth@redhat.com>
6884
6885 * tree-vect-stmts.c (supportable_widening_operation): Remove decl
6886 parameters.
6887 (vectorizable_conversion): Update supportable_widening_operation call.
6888 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
6889 (vect_recog_widen_shift_pattern): Likewise.
6890 * tree-vectorizer.h: Update decl.
6891
84a1059b 68922012-07-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6893 Ulrich Weigand <ulrich.weigand@linaro.org>
6894
6895 * common/config/arm/arm-common.c (arm_option_optimization_table):
6896 Enable -fsched-pressure by default while optimizing.
6897 * config/arm/arm.c (arm_option_override): Use the alternate scheduler
6898 pressure algorithm by default.
6899
05aca90b 69002012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
6901
6902 * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
6903 (CONST_OK_FOR_I10): Move macro to ...
6904 * config/sh/sh.c: ... here.
6905 (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
6906 CONST_OK_FOR_I06.
6907
0bd67b20 69082012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
6909
6910 * config/sh/sh.md: Delete mov related define_peephole patterns.
6911
02d6624a 69122012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com>
6913
6914 PR c++/53919
6915 * doc/install.texi (Installing GCC): Refer to instructions for
6916 released versions. Fix hyphenation.
6917
3defb88e 69182012-07-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6919
6920 * config/spu/spu.c (targetm): Move to bottom of file.
6921 (spu_attribute_table): Likewise.
6922 (spu_option_override, spu_init_builtins, spu_builtin_decl,
6923 spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
6924 spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
6925 adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
6926 frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
6927 insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
6928 get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
6929 spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
6930 spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
6931 spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
6932 spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
6933 spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
6934 spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
6935 spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
6936 spu_encode_section_info, spu_legitimize_address,
6937 spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
6938 spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
6939 spu_addr_space_pointer_mode, spu_addr_space_address_mode,
6940 spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
6941 spu_section_type_flags, spu_select_section, spu_unique_section,
6942 spu_trampoline_init, spu_conditional_register_usage,
6943 spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
6944 spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
6945 spu_setup_incoming_varargs): Remove prototypes.
6946 (spu_legitimize_address): Add "static" to definition.
6947
a07e3d84 69482012-07-16 Jakub Jelinek <jakub@redhat.com>
6949
6950 * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
6951
522f73a1 69522012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org>
6953
6954 * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
6955 before calling gsi_stmt.
6956
a204f062 69572012-07-16 Kirill Yukhin <kirill.yukhin@intel.com>
6958
6959 Revert
6960 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
6961
6962 * config/i386/i386.md (stack_protect_set): Disable the pattern
6963 for Android since Android libc (bionic) does not provide random
6964 value for stack protection guard at gs:0x14. Guard value
6965 will be provided from external symbol (default implementation).
6966 (stack_protect_set_<mode>): Likewise.
6967 (stack_protect_test): Likewise.
6968 (stack_protect_test_<mode>): Likewise.
6969
b62cafaa 69702012-07-16 H.J. Lu <hongjiu.lu@intel.com>
6971
6972 PR middle-end/53959
6973 PR bootstrap/53963
6974 * gimple.c (gimple_types_compatible_p_1): Restore type attribute
6975 comparison.
6976
955ef4c5 69772012-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
6978
6979 * opts.c (default_option): Add -fvect-cost-model to default options
6980 at -O3 and above.
6981
f0a18dd2 69822012-07-16 Steven Bosscher <steven@gcc.gnu.org>
6983
6984 * graphite-clast-to-gimple.c, graphite-dependences.c,
6985 graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
6986 for pass TODO flags.
6987 * Makefile.in: Fix dependencies.
6988
0aca815c 69892012-07-16 Steven Bosscher <steven@gcc.gnu.org>
6990
4ecbba1a 6991 * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
6992 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
6993
6994 * function.c (stack_protect_epilogue): Use expand_call to expand
6995 targetm.stack_protect_fail.
6996 * stmt.c (expand_expr_stmt): Remove now-unused function.
6997 * tree.h (expand_expr_stmt): Remove prototype.
6998 * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
6999 hook must return a CALL_EXPR.
7000 * doc/tm.texi: Regenerate.
7001
596ef494 7002 * emit-rtl.c (emit_label_before): Do not allow the same label
7bc8959a 7003 to be emitted twice.
596ef494 7004 (emit_label_after): Likewise.
7005 (emit_label): Likewise.
7006
0aca815c 7007 * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
7008 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
7009 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
7010 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
7011
b9ed1410 70122012-07-16 Steven Bosscher <steven@gcc.gnu.org>
7013
7014 * system.h (dump_file): Do not define.
7015 * tree-pass.h: Include dumpfile.h, which is a new file containing...
7016 (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
7017 dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
7018 dump_flag_name, dump_file, dump_flags, dump_file_name,
7019 get_dump_file_info, struct dump_file_info): all of this, moved to...
7020 * dumpfile.h: Here, new file.
7021 * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
7022 (dump_stmt): Remove prototype for C++ specific function.
7023 (dump_enumerated_decls): Move prototype from here...
7024 * tree-flow.h (dump_enumerated_decls): ... to here.
7025 (get_ref_base_and_extent) Move prototype from here ...
7026 * tree.h (get_ref_base_and_extent) ... to here.
7027 * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
7028 gimple-pretty-print.h is enough. Do not include tree-dump.h,
7029 include timevar.h and dumpfile.h instead.
7030 (struct numbered_tree_d, compare_decls_by_uid,
7031 dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
7032 * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
7033 dump_enumerated_decls_push, dump_enumerated_decls):... to here.
7034 Do not include timevar.h.
7035 * tree.c: Do not include timevar.h.
7036 * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
7037 timevar.h.
7038 (dump_cfg_stats): Use current_function_name.
7039 (gimple_cfg2vcg): Likewise.
7040 (dump_function_to_file): Likewise.
7041 * df-scan.c: Do not include tree-pass.h and timevar.h.
7042 Include dumpfile.h.
7043 (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
7044 use print_current_pass.
7045 * df-problems.c: Include dumpfile.h.
7046 Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
7047 leads to errors in the code not selected.
7048 (df_note_compute): Do not print_rtl_with_bb here. Fix compilation
7049 bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
7050 * lcm.c: Include dumpfile.h.
7051 Remove obsolete include of insn-attr.h.
7052 * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
7053 missing probability notes.
7054 * stmt.c: Include dumpfile.h.
7055 (emit_case_decision_tree): Re-enable printing expand details only
7056 if TDF_DETAILS.
7bc8959a 7057 * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
7058 cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
7059 cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
7060 coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
7061 dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
7062 function.c, fwprop.c, gcse.c, gimple-fold.c,
7063 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
7064 gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
7065 graphite-dependences.c, graphite-interchange.c,
7066 graphite-optimize-isl.c, graphite-poly.c,
7067 graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
7068 ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
7069 ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
7070 ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
7071 jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
7072 loop-unroll.c, loop-unswitch.c, lower-subreg.c,
7073 lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
7074 mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
7075 plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
7076 print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
7077 regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
7078 sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
7079 store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
7080 tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
b9ed1410 7081 tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
7bc8959a 7082 tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
7083 tree-mudflap.c, tree-nrv.c, tree-object-size.c,
7084 tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
7085 tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
7086 tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
7087 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
7088 tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
7089 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
7090 tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
7091 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
7092 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
7093 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
7094 tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
7095 tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
7096 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
7097 tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
7098 tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
7099 tree-ssa-uncprop.c, tree-ssa-uninit.c,
7100 tree-switch-conversion.c, tree-tailcall.c,
7101 tree-vect-data-refs.c, tree-vect-loop.c,
7102 tree-vect-loop-manip.c, tree-vectorizer.c,
7103 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
b9ed1410 7104 tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
7105 only if needed. If tree-pass.h is included, do not include timevar.h
7106 and dumpfile.h. If tree-pass.h is not included but dump_file, or
7107 dump_flags, or the TDF_* flags are used, include dumpfile.h.
7bc8959a 7108 If gimple-pretty-print.h is included, don't include
7109 tree-pretty-print.h. Remove assorted unnecessary includes.
b9ed1410 7110
7111 * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
7112 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
7113 config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
7114 Include dumpfile.h.
7115 * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
7116 * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
7117 spu/t-spu-elf: Fix dependencies.
7118
60d535d2 71192012-07-16 Dehao Chen <dehao@google.com>
7120
7121 Revert
7122 2012-07-10 Dehao Chen <dehao@google.com>
7123
7124 * tree.h (phi_arg_d): New field.
7125 * tree-flow-inline.h (gimple_phi_arg_block): New function.
7126 (gimple_phi_arg_block_from_edge): New function.
7127 (gimple_phi_arg_set_block): New function.
7128 (gimple_phi_arg_has_block): New function.
7129 (redirect_edge_var_map_block): New function.
7130 * tree-flow.h (_edge_var_map): New field.
7131 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
7132 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
7133 redirect_edge_var_map_add.
7134 * tree-outof-ssa.c (_elim_graph): New field.
7135 (insert_partition_copy_on_edge): New parameter.
7136 (insert_value_copy_on_edge): New parameter.
7137 (insert_rtx_to_part_on_edge): New parameter.
7138 (insert_part_to_rtx_on_edge): New parameter.
7139 (elim_graph_add_edge): New parameter.
7140 (elim_graph_remove_succ_edge): New parameter.
7141 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
7142 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
7143 (new_elim_graph): Add block debug info.
7144 (clear_elim_graph): Likewise.
7145 (delete_elim_graph): Likewise.
7146 (elim_graph_add_node): Likewise.
7147 (elim_graph_add_edge): Likewise.
7148 (elim_graph_remove_succ_edge): Likewise.
7149 (eliminate_build): Likewise.
7150 (elim_forward): Likewise.
7151 (elim_unvisited_predecessor): Likewise.
7152 (elim_backward): Likewise.
7153 (elim_create): Likewise.
7154 (eliminate_phi): Likewise.
7155 (insert_backedge_copies): Likewise.
7156 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
7157 add_phi_arg.
7158 (rewrite_add_phi_arguments): Likewise.
7159 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
7160 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
7161 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
7162 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
7163 * tree-ssa-loop-manip.c (create_iv): Likewise.
7164 (add_exit_phis_edge): Likewise.
7165 (split_loop_exit_edge): Likewise.
7166 (copy_phi_node_args): Likewise.
7167 (tree_transform_and_unroll_loop): Likewise.
7168 * value-prof.c (gimple_ic): Likewise.
7169 (gimple_stringop_fixed_value): Likewise.
7170 * tree-tailcall.c (add_successor_phi_arg): Likewise.
7171 (eliminate_tail_call): Likewise.
7172 (create_tailcall_accumulator): Likewise.
7173 (tree_optimize_tail_calls_1): Likewise.
7174 * tree-phinodes.c (add_phi_arg): Likewise.
7175 (make_phi_node): Likewise.
7176 (resize_phi_node): Likewise.
7177 (remove_phi_arg_num): Likewise.
7178 * omp-low.c (expand_parallel_call): Likewise.
7179 (expand_omp_for_static_chunk): Likewise.
7180 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
7181 Likewise.
7182 (slpeel_update_phi_nodes_for_guard1): Likewise.
7183 (slpeel_update_phi_nodes_for_guard2): Likewise.
7184 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7185 (set_prologue_iterations): Likewise.
7186 (slpeel_tree_peel_loop_to_edge): Likewise.
7187 (vect_loop_versioning): Likewise.
7188 * tree-parloops.c (create_phi_for_local_result): Likewise.
7189 (transform_to_exit_first_loop): Likewise.
7190 (create_parallel_loop): Likewise.
7191 * ipa-split.c (split_function): Likewise.
7192 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7193 (vect_create_epilog_for_reduction): Likewise.
7194 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
7195 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
7196 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
7197 (cond_if_else_store_replacement_1): Likewise.
7198 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7199 (remove_forwarder_block_with_phi): Likewise.
7200 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
7201 * tree-predcom.c (initialize_root_vars): Likewise.
7202 (initialize_root_vars_lm): Likewise.
7203 * sese.c (sese_add_exit_phis_edge): Likewise.
7204 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7205 * tree-ssa.c (flush_pending_stmts): Likewise.
7206 (redirect_edge_var_map_add): Likewise.
7207 (ssa_redirect_edge): Likewise.
7208 * gimple-streamer-in.c (input_phi): Likewise.
7209 * tree-vect-stmts.c (vectorizable_load): Likewise.
7210 * tree-inline.c (copy_phis_for_bb): Likewise.
7211 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
7212 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
7213 * tree-cfg.c (reinstall_phi_args): Likewise.
7214 (gimple_make_forwarder_block): Likewise.
7215 (add_phi_args_after_copy_edge): Likewise.
7216 (gimple_duplicate_sese_tail): Likewise.
7217
bf1c0af1 72182012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
7219
7220 * config/i386/i386.md (stack_protect_set): Disable the pattern
7221 for Android since Android libc (bionic) does not provide random
7222 value for stack protection guard at gs:0x14. Guard value
7223 will be provided from external symbol (default implementation).
7224 (stack_protect_set_<mode>): Likewise.
7225 (stack_protect_test): Likewise.
7226 (stack_protect_test_<mode>): Likewise.
7227
c2934ca7 72282012-07-16 Hans-Peter Nilsson <hp@axis.com>
7229
d5c0ec8e 7230 * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
7231 * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
7232 CONSTANT_P and cris_legitimate_address_p.
7233 * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
7234 (cris_preferred_reload_class): Don't return GENERAL_REGS as
7235 preferred to MOF_SRP_REGS.
bd503556 7236
102c21ad 7237 * config/cris/cris.c (cris_init_libfuncs): Handle initialization
7238 of library functions for basic atomic compare-and-swap.
7239 * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
bf4739e0 7240 * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
102c21ad 7241 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
7242 ("cris_atomic_fetch_<atomic_op_name><mode>_1")
7243 ("atomic_compare_and_swap<mode>")
bf4739e0 7244 ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
7245 TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
71b2d56a 7246 * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
7247 * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
7248 (atomic_op_op_pred): Ditto.
7249 (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
7250 reflect the change to include %2 in expansion. All callers changed.
7251 (qm3): New mode_attr.
7252 ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
7bc8959a 7253 as predicate for operand 2.
71b2d56a 7254 ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME. Use
7255 "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
7256 constraint for operand 2.
7257 ("atomic_compare_and_swap<mode>"): Add FIXME. Change predicate to
7258 nonmemory_operand for operand 3.
7259 ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
7260 exclude memory. Improve emitted sync code for v10 and v32. Use
7261 <qm3> instead of <m> for size designator for cmp.
7262 ("atomic_compare_and_swap<mode>"): Change predicate to
7263 nonmemory_operand for operand 3. Add FIXME.
b1df3e76 7264 ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
7265 constraints for operand 3 to exclude memory.
7266 ("atomic_fetch_<atomic_op_name><mode>")
c2934ca7 7267 ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
7268 calls on result of call to need_atomic_barrier_p.
7269
8ad8575f 72702012-07-15 Richard Sandiford <rdsandiford@googlemail.com>
7271
7272 * config/mips/mips.md (move_type): Replace mfhilo and mthilo
7273 with mflo and mtlo.
7274 (type): Split mfhilo into mfhi and mflo. Split mthilo into mthi
7275 and mtlo. Adjust move_type->type mapping.
7276 (may_clobber_hilo): Split mthilo into mthi and mtlo.
7277 (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
7278 (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
7279 (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
7280 instead of mthilo and mfhilo.
7281 (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
7282 (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
7283 * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
7284 (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
7285 Use mflo instead of mfhilo.
7286 * config/mips/10000.md (r10k_arith): Split mthilo.
7287 (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
7288 * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
7289 (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
7290 * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
7291 mthilo and mfhilo.
7292 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
7293 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
7294 Likewise.
7295 * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
7296 * config/mips/5400.md (ir_vr54_hilo): Likewise.
7297 * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
7298 * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
7299 * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
7300 * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
7301 * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
7302 * config/mips/generic.md (generic_hilo): Likewise.
7303 * config/mips/loongson2ef.md (ls2_alu): Likewise.
7304 * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
7305 * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
7306 (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
7307 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
7308 * config/mips/xlr.md (xlr_hilo): Likewise.
7309
81b46c0d 73102012-07-14 Andrew Stubbs <ams@codesourcery.com>
7311 Sandra Loosemore <sandra@codesourcery.com>
7312
7313 * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
7314
9235bedc 73152012-07-14 Uros Bizjak <ubizjak@gmail.com>
7316
7317 * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
7318 for TARGET_SSE.
7319
c2a65b90 73202012-07-14 Steven Bosscher <steven@gcc.gnu.org>
7321
7322 * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
7323
61b33788 73242012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
7325
7326 PR bootstrap/53955
7327 * config/spu/spu.c (spu_init_cost): Mark static.
7328 (spu_add_stmt_cost): Likewise.
7329 (spu_finish_cost): Likewise.
7330 (spu_destroy_cost_data): Likewise.
7331 * config/i386/i386.c (ix86_init_cost): Mark static.
7332 (ix86_add_stmt_cost): Likewise.
7333 (ix86_finish_cost): Likewise.
7334 (ix86_destroy_cost_data): Likewise.
7335 * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
7336 (rs6000_add_stmt_cost): Likewise.
7337 (rs6000_finish_cost): Likewise.
7338 (rs6000_destroy_cost_data): Likewise.
7339
bc6d217b 73402012-07-13 Steven Bosscher <steven@gcc.gnu.org>
7341
7342 * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
7343 ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
7344 ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
7345 ATTRIBUTE_MALLOC.
7346 * alloc-pool.h (pool_alloc): Likewise.
7347
7348 * final.c (final): Do not loop to find max_uid.
7349
e4fdf07d 73502012-07-13 Steven Bosscher <steven@gcc.gnu.org>
7351
7352 * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
7353 * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
7354
c9c17332 73552012-07-13 Richard Guenther <rguenther@suse.de>
7356
7357 PR tree-optimization/53907
7358 * tree-ssa-forwprop.c (associate_pointerplus): New function.
7359 (ssa_forward_propagate_and_combine): Call it.
7360
7d48cd66 73612012-07-13 Richard Guenther <rguenther@suse.de>
7362
7363 PR tree-optimization/53922
7364 * tree-vrp.c (value_inside_range): Change prototype to take
7365 min/max instead of value-range.
7366 (range_includes_zero_p): Likewise. Return the result from
7367 value_inside_range.
7368 (extract_range_from_binary_expr_1): Adjust to handle dont-know
7369 return value from range_includes_zero_p.
7370 (extract_range_from_unary_expr_1): Likewise.
7371 (compare_range_with_value): Likewise.
7372 (vrp_meet_1): Likewise.
7373
4db2b577 73742012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
7375
7376 * doc/tm.texi: Regenerate.
7377 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
7378 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
7379 (TARGET_VECTORIZE_FINISH_COST): Likewise.
7380 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
7381 * targhooks.c (default_init_cost): New function.
7382 (default_add_stmt_cost): Likewise.
7383 (default_finish_cost): Likewise.
7384 (default_destroy_cost_data): Likewise.
7385 * targhooks.h (default_init_cost): New decl.
7386 (default_add_stmt_cost): Likewise.
7387 (default_finish_cost): Likewise.
7388 (default_destroy_cost_data): Likewise.
7389 * target.def (init_cost): New DEFHOOK.
7390 (add_stmt_cost): Likewise.
7391 (finish_cost): Likewise.
7392 (destroy_cost_data): Likewise.
7393 * target.h (struct _stmt_vec_info): New extern decl.
7394 (stmt_vectype): Likewise.
7395 (stmt_in_inner_loop_p): Likewise.
7396 * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
7397 (stmt_vector_for_cost): New VEC/typedef.
7398 (add_stmt_info_to_vec): New function.
7399 (struct _slp_tree): Remove cost.inside_of_loop field.
7400 (struct _slp_instance): Remove cost.inside_of_loop field; add
7401 stmt_cost_vec field.
7402 (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
7403 (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
7404 (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
7405 (struct _vect_peel_extended_info): Add stmt_cost_vec field.
7406 (struct _loop_vec_info): Add target_cost_data field.
7407 (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
7408 (struct _bb_vec_info): Add target_cost_data field.
7409 (BB_VINFO_TARGET_COST_DATA): New accessor macro.
7410 (struct _stmt_vec_info): Remove cost.inside_of_loop field.
7411 (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
7412 (stmt_vinfo_set_inside_of_loop_cost): Remove function.
7413 (init_cost): New function.
7414 (add_stmt_cost): Likewise.
7415 (finish_cost): Likewise.
7416 (destroy_cost_data): Likewise.
7417 (vect_model_simple_cost): Change parameter list.
7418 (vect_model_store_cost): Likewise.
7419 (vect_model_load_cost): Likewise.
7420 (record_stmt_cost): New extern decl.
7421 (vect_get_load_cost): Change parameter list.
7422 (vect_get_store_cost): Likewise.
7423 * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
7424 (destroy_loop_vec_info): Call destroy_cost_data.
7425 (vect_estimate_min_profitable_iters): Remove old calculation of
7426 inside costs; call finish_cost instead.
7427 (vect_model_reduction_cost): Call add_stmt_cost instead of old
7428 inside-costs calculation.
7429 (vect_model_induction_cost): Likewise.
7430 * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
7431 return a stmt_vector_for_cost; modify calls to vect_get_load_cost
7432 and vect_get_store_cost to obtain the value to return.
7433 (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
7434 vect_get_data_access_cost and store it in the minimum peeling
7435 structure.
7436 (vect_peeling_hash_choose_best_peeling): Change the parameter list
7437 to add a (stmt_vector_for_cost *) output parameter, and set its value.
7438 (vect_enhance_data_refs_alignment): Ignore the new return value from
7439 calls to vect_get_data_access_cost; obtain stmt_cost_vec from
7440 vect_peeling_hash_choose_best_peeling and pass its contents to the
7441 target cost model.
7442 * tree-vect-stmts.c (stmt_vectype): New function.
7443 (stmt_in_inner_loop_p): Likewise.
7444 (record_stmt_cost): Likewise.
7445 (vect_model_simple_cost): Add stmt_cost_vec parameter; call
7446 record_stmt_cost instead of old calculation; don't call
7447 stmt_vinfo_set_inside_of_loop_cost.
7448 (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
7449 old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
7450 (vect_model_store_cost): Add stmt_cost_vec parameter; call
7451 record_stmt_cost instead of old calculation; add stmt_cost_vec
7452 parameter to vect_get_store_cost call; don't call
7453 stmt_vinfo_set_inside_of_loop_cost.
7454 (vect_get_store_cost): Add stmt_cost_vec parameter; call
7455 record_stmt_cost instead of old calculation.
7456 (vect_model_load_cost): Add stmt_cost_vec parameter; call
7457 record_stmt_cost instead of old calculation; add stmt_cost_vec
7458 parameter to vect_get_load_cost call; don't call
7459 stmt_vinfo_set_inside_of_loop_cost.
7460 (vect_get_load_cost): Add stmt_cost_vec parameter; call
7461 record_stmt_cost instead of old calculation.
7462 (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
7463 (vectorizable_conversion): Likewise.
7464 (vectorizable_assignment): Likewise.
7465 (vectorizable_shift): Likewise.
7466 (vectorizable_operation): Likewise.
7467 (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
7468 (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
7469 (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
7470 * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
7471 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
7472 (TARGET_VECTORIZE_FINISH_COST): Likewise.
7473 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
7474 (spu_init_cost): New function.
7475 (spu_add_stmt_cost): Likewise.
7476 (spu_finish_cost): Likewise.
7477 (spu_destroy_cost_data): Likewise.
7478 * config/i386/i386.c (ix86_init_cost): New function.
7479 (ix86_add_stmt_cost): Likewise.
7480 (ix86_finish_cost): Likewise.
7481 (ix86_destroy_cost_data): Likewise.
7482 (TARGET_VECTORIZE_INIT_COST): New macro def.
7483 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
7484 (TARGET_VECTORIZE_FINISH_COST): Likewise.
7485 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
7486 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
7487 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
7488 (TARGET_VECTORIZE_FINISH_COST): Likewise.
7489 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
7490 (rs6000_init_cost): New function.
7491 (rs6000_add_stmt_cost): Likewise.
7492 (rs6000_finish_cost): Likewise.
7493 (rs6000_destroy_cost_data): Likewise.
7494 * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
7495 (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
7496 (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
7497 stmt_cost_vec parameter to vect_model_store_cost and
7498 vect_model_simple_cost calls.
7499 (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
7500 parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
7501 vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
7502 calculating cost more than once for loads; remove inside_cost
7503 parameter from recursive vect_build_slp_tree calls; call
7504 record_stmt_cost instead of old calculation.
7505 (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
7506 the instance; free it on premature exit; remove inside_cost parameter
7507 from vect_build_slp_tree call; add stmt_cost_vec parameter to
7508 vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
7509 (new_bb_vec_info): Call init_cost.
7510 (destroy_bb_vec_info): Call destroy_cost_data.
7511 (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
7512 statement recorded with an SLP instance; call finish_cost instead of
7513 the old calculation.
7514 (vect_update_slp_costs_according_to_vf): Record statement costs from
7515 SLP instances, multiplying by the appropriate number of copies; don't
7516 update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
7517
0bb8b39a 75182012-07-13 Richard Guenther <rguenther@suse.de>
7519
7520 PR middle-end/53937
7521 * builtins.c (get_pointer_alignment_1): Handle constant
7522 pointers.
7523
cd734582 75242012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
7525 Steven Bosscher <steven@gcc.gnu.org>
7526 Bernd Schmidt <bernds@codesourcery.com>
7527
7528 PR rtl-optimization/53908
7529 * df-problems.c (can_move_insns_across): When doing
7530 memory-reference book-keeping, handle call insns.
7531
ca675b2e 75322012-07-13 Richard Guenther <rguenther@suse.de>
7533
7534 * gimple.c (gimple_types_compatible_p_1): Remove redundant
7535 type attribute comparisons.
7536 (gimple_canonical_types_compatible_p): Likewise.
7537
3b3b530a 75382012-07-12 Hans-Peter Nilsson <hp@axis.com>
7539
7540 PR rtl-optimization/53176
7541 * rtlanal.c (rtx_cost): Adjust default cost for X with a
7542 UNITS_PER_WORD factor for all X according to the size of
7543 its mode, not just for SUBREGs with untieable modes.
7544 Handle SET. Use factor * factor for MULT, DIV, UDIV,
7545 MOD, UMOD.
7546
adde45e8 75472012-07-12 Uros Bizjak <ubizjak@gmail.com>
7548
7549 * config/i386/i386.md (QImode and HImode cmove splitters): Merge
7550 QImode and HImode splitters. Use ix86_comparison_operator.
7551 Explicitly match FLAGS_REG.
7552 (DFmode cmove splitter): Explicitly match FLAGS_REG.
7553
88c5a1d1 75542012-07-11 Steven Bosscher <steven@gcc.gnu.org>
7555
7556 * expr.h (can_move_by_pieces): Move prototype from here ...
7557 * tree.h (can_move_by_pieces): ... to here.
7558 * optabs.h (set_widening_optab_handler): Use XCNEW.
7559 * gimplify.c: Do not include expr.h.
7560
7561 * toplev.c: Do not include dwarf2out.h.
7562 * config/ia64/ia64.c: Likewise.
7563 * config/sparc/sparc.c: Likewise.
7564 * config/sparc/t-sparc (sparc.o): Fix dependencies.
7565
7566 * Makefile.in (toplev.o): Fix dependencies
7567 (c-family/c-gimplify.o): Likewise.
7568 (c-family/c-common.o): Likewise.
7569
161dfa6e 75702012-07-11 Steven Bosscher <steven@gcc.gnu.org>
7571
7572 * basic-block.h (struct edge_def): Use basic_block instead of
7573 basic_block_def *.
7574 * cfgloop.h (struct loop_exit, struct loop): Likewise.
7575 * gengenrtl.c (type_from_format): Likewise. Also for 'tree'
7576 instead of union tree_node *.
7577 * rtl.h (union rtunion_def, emit_insn_before_noloc,
7578 emit_insn_after_noloc, add_insn_before, add_insn_after,
7579 debug_bb_slim): Likewise.
7580 * tree-inline.h (struct copy_body_data): Likewise.
7581 * sched-rgn.c (dump_region_dot): Likewise.
7582 * gimple.h (struct gimple_statement_base, gimple_set_bb,
7583 gsi_move_to_bb_end): Likewise.
7584 * sched-vis.c (debug_bb_slim): Likewise.
7585 (debug_bb_n_slim): Likewise.
7586 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
7587 (mn10300_block_contains_call):
7588
a7a9c5b4 75892012-07-11 Greta Yorsh <Greta.Yorsh@arm.com>
7590
7591 PR target/53859
7592 * config/arm/arm.c (arm_early_load_addr_dep): Handle new
7593 epilogue patterns.
7594
b1cd4fdd 75952012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com>
7596
7597 * doc/extend.texi (Namespace Association): Alter cautionary text.
7598
f5e4df50 75992012-07-10 Oleg Endo <olegendo@gcc.gnu.org>
7600
7601 PR target/53911
7602 * config/sh/sh.md: Remove displacement addresssing related splits.
7603
5680e508 76042012-07-10 Xinliang David Li <davidxl@google.com>
7605
7606 * doc/invoke.texi: New option documented.
7607 * flag-types.h: New enum type.
7608 * gimplify.c (gimplify_bind_expr): Control
7609 clobber generation with new option.
7610 (gimplify_target_expr): Ditto.
adde45e8 7611 * common.opt: New option.
5680e508 7612
b8d5d078 76132012-07-10 Julian Brown <julian@codesourcery.com>
7614
7615 * config/arm/arm.md (movsi): Don't split symbol refs here.
7616 (define_split): New.
7617
df47af5a 76182012-07-10 Andreas Schwab <schwab@linux-m68k.org>
7619
7620 PR bootstrap/53913
7621 * config/m68k/m68k.c (m68k_epilogue_uses): New.
7622 * config/m68k/m68k.h (EPILOGUE_USES): Use it.
7623 * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
7624
79a78f7f 76252012-07-10 Richard Henderson <rth@redhat.com>
7626
dc5ba181 7627 * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
7628 * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
7629 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
7630 * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
7631 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
7632 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
7633 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
7634 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
7635 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
7636 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
7637 (bdesc_args): Remove entries to match.
7638 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
7639 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
7640 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
7641 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
7642 (rs6000_builtin_mul_widen_odd): Remove.
7643 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
7644 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
7645 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
7646 (spu_builtin_mul_widen_odd): Remove.
7647 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
7648 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
7649 * doc/tm.texi.in: Don't document the removed hooks.
7650
04fb053a 7651 * tree-vect-stmts.c (supportable_widening_operation): Expand
7652 WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
7653
ebf4f764 7654 * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
7655 (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
7656 * optabs.c (can_mult_highpart_p): New.
7657 (expand_mult_highpart): New.
7658 * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
7659 * tree-vect-generic.c (expand_vector_operations_1): Don't expand
7660 by pieces if can_mult_highpart_p.
7661 (expand_vector_divmod): Use can_mult_highpart_p and always
7662 generate MULT_HIGHPART_EXPR.
7663 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
7664 * tree-vect-stmts.c (vectorizable_operation): Likewise.
7665
64cd118d 7666 * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
7667 (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
7668 * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
7669 (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
7670 (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
7671 (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
7672 * config/spu/spu-builtins.def: Update pattern names to match.
7673
151e7b5c 7674 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
7675 from altivec_vmuleub.
7676 (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
7677 (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
7678 (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
7679 (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
7680 (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
7681 (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
7682 (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
7683 * config/rs6000/rs6000-builtin.def: Update pattern names to match.
7684
d139d8ba 7685 * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
7686 avx2_umulv4siv4di3.
7687 (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
7688 (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
7689 (mulv4si3): Remove XOP test shadowed by SSE4 test.
7690 * config/i386/i386.c (bdesc_args): Update pattern names.
7691 (ix86_expand_sse2_mulvxdi3): Likewise.
7692 (ix86_expand_mul_widen_evenodd): Likewise. Remove XOP test
7693 shadowed by SSE4 test.
7694
79a78f7f 7695 * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
7696 * cfgexpand.c (expand_debug_expr): Handle them.
7697 * expr.c (expand_expr_real_2): Likewise.
7698 * fold-const.c (fold_binary_loc): Likewise.
7699 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
7700 * optabs.c (optab_for_tree_code): Likewise.
7701 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7702 * tree-inline.c (estimate_operator_cost): Likewise.
7703 * tree-pretty-print.c (dump_generic_node): Likewise.
7704 * tree.c (commutative_tree_code): Likewise.
7705 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
7706 Handle type change before looking up optab.
7707 * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
7708 (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
7709 (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
7710 (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
7711 * genopinit.c (optabs): Initialize them.
7712 * doc/md.texi: Document them.
7713
b82a98ee 77142012-07-10 Dehao Chen <dehao@google.com>
7715
7716 * tree.h (phi_arg_d): New field.
7717 * tree-flow-inline.h (gimple_phi_arg_block): New function.
7718 (gimple_phi_arg_block_from_edge): New function.
7719 (gimple_phi_arg_set_block): New function.
7720 (gimple_phi_arg_has_block): New function.
7721 (redirect_edge_var_map_block): New function.
7722 * tree-flow.h (_edge_var_map): New field.
adde45e8 7723 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
b82a98ee 7724 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
7725 redirect_edge_var_map_add.
7726 * tree-outof-ssa.c (_elim_graph): New field.
7727 (insert_partition_copy_on_edge): New parameter.
7728 (insert_value_copy_on_edge): New parameter.
7729 (insert_rtx_to_part_on_edge): New parameter.
7730 (insert_part_to_rtx_on_edge): New parameter.
7731 (elim_graph_add_edge): New parameter.
7732 (elim_graph_remove_succ_edge): New parameter.
7733 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
7734 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
7735 (new_elim_graph): Add block debug info.
7736 (clear_elim_graph): Likewise.
7737 (delete_elim_graph): Likewise.
7738 (elim_graph_add_node): Likewise.
7739 (elim_graph_add_edge): Likewise.
7740 (elim_graph_remove_succ_edge): Likewise.
7741 (eliminate_build): Likewise.
7742 (elim_forward): Likewise.
7743 (elim_unvisited_predecessor): Likewise.
7744 (elim_backward): Likewise.
7745 (elim_create): Likewise.
7746 (eliminate_phi): Likewise.
7747 (insert_backedge_copies): Likewise.
7748 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
7749 add_phi_arg.
7750 (rewrite_add_phi_arguments): Likewise.
7751 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
7752 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
7753 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
7754 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
7755 * tree-ssa-loop-manip.c (create_iv): Likewise.
7756 (add_exit_phis_edge): Likewise.
7757 (split_loop_exit_edge): Likewise.
7758 (copy_phi_node_args): Likewise.
7759 (tree_transform_and_unroll_loop): Likewise.
7760 * value-prof.c (gimple_ic): Likewise.
7761 (gimple_stringop_fixed_value): Likewise.
7762 * tree-tailcall.c (add_successor_phi_arg): Likewise.
7763 (eliminate_tail_call): Likewise.
7764 (create_tailcall_accumulator): Likewise.
7765 (tree_optimize_tail_calls_1): Likewise.
7766 * tree-phinodes.c (add_phi_arg): Likewise.
7767 (make_phi_node): Likewise.
7768 (resize_phi_node): Likewise.
7769 (remove_phi_arg_num): Likewise.
7770 * omp-low.c (expand_parallel_call): Likewise.
7771 (expand_omp_for_static_chunk): Likewise.
7772 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
7773 Likewise.
7774 (slpeel_update_phi_nodes_for_guard1): Likewise.
7775 (slpeel_update_phi_nodes_for_guard2): Likewise.
7776 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
7777 (set_prologue_iterations): Likewise.
7778 (slpeel_tree_peel_loop_to_edge): Likewise.
7779 (vect_loop_versioning): Likewise.
7780 * tree-parloops.c (create_phi_for_local_result): Likewise.
7781 (transform_to_exit_first_loop): Likewise.
7782 (create_parallel_loop): Likewise.
7783 * ipa-split.c (split_function): Likewise.
7784 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7785 (vect_create_epilog_for_reduction): Likewise.
7786 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
7787 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
7788 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
7789 (cond_if_else_store_replacement_1): Likewise.
7790 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
7791 (remove_forwarder_block_with_phi): Likewise.
7792 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
7793 * tree-predcom.c (initialize_root_vars): Likewise.
7794 (initialize_root_vars_lm): Likewise.
7795 * sese.c (sese_add_exit_phis_edge): Likewise.
7796 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7797 * tree-ssa.c (flush_pending_stmts): Likewise.
7798 (redirect_edge_var_map_add): Likewise.
7799 (ssa_redirect_edge): Likewise.
7800 * gimple-streamer-in.c (input_phi): Likewise.
7801 * tree-vect-stmts.c (vectorizable_load): Likewise.
7802 * tree-inline.c (copy_phis_for_bb): Likewise.
7803 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
7804 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
7805 * tree-cfg.c (reinstall_phi_args): Likewise.
7806 (gimple_make_forwarder_block): Likewise.
7807 (add_phi_args_after_copy_edge): Likewise.
7808 (gimple_duplicate_sese_tail): Likewise.
7809
66bbc864 78102012-07-09 Oleg Endo <olegendo@gcc.gnu.org>
7811
7812 PR target/53886
7813 * config/sh/sh.c (sequence_insn_p): New function.
7814 (find_barrier, sh_insn_length_adjustment): Use it.
7815
988609f2 78162012-07-09 Iain Sandoe <iain@codesourcery.com>
7817
7818 PR target/53283
7819 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
7820 if defined.
7821 * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
7822 SUBTARGET_FOLD_BUILTIN.
7823 * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
7824 SUBTARGET_FOLD_BUILTIN.
7825
c60ecc90 78262012-07-09 Iain Sandoe <iain@codesourcery.com>
7827
7828 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
7829 runtime exceptions model setting from here ...
7830 * config/darwin.c (darwin_override_options): ... to here.
7831
b7d0690f 78322012-07-09 Steven Bosscher <steven@gcc.gnu.org>
7833
7834 PR tree-optimization/53887
7835 * tree-cfg.c (group_case_labels_stmt): Make non-static.
7836 * tree-flow.h (group_case_labels_stmt): Add prototype.
7837 * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
7838 to pre-process every switch.
7839
defd3e28 78402012-07-09 Jason Merrill <jason@redhat.com>
7841
7842 PR c++/53882
7843 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
7844 (type_hash_eq): Likewise.
7845
f87df69a 78462012-07-09 Tom de Vries <tom@codesourcery.com>
7847 Richard Guenther <rguenther@suse.de>
7848
7849 * tree-ssa-ccp.c (optimize_unreachable): New function.
7850 (execute_fold_all_builtins): Use optimize_unreachable to optimize
7851 BUILT_IN_UNREACHABLE. Don't optimize after BUILT_IN_UNREACHABLE.
7852
3a889482 78532012-07-09 Richard Guenther <rguenther@suse.de>
7854
7855 PR bootstrap/53898
7856 * graphite-optimize-isl.c: Make sure CU is not empty.
7857
5ab7f285 78582012-07-09 Steven Bosscher <steven@gcc.gnu.org>
7859
7860 * gensupport.c (init_rtx_reader_args_cb): Start counting code
7861 generating patterns from 1 to free up 0 for CODE_FOR_nothing.
7862 * gencodes.c (main): Give CODE_FOR_nothing the value 0. Add
7863 the LAST_INSN_CODE marker at the end.
7864 * genoutput.c (nothing): New static struct data.
7865 (idata): Initialize to &nothing.
7866 (idata_end): Initialize to &nothing.next.
7867 (init_insn_for_nothing): New function to create dummy 'nothing' insn.
7868 (main): Use it.
7869 * genpeep.c (insn_code_number): Remove global variable.
7870 (gen_peephole): Take it as an argument instead.
7871 (main): Take insn_code_number from read_md_rtx.
7872 * optabs.h: Revert r161809:
7873 (optab_handlers): Change type of insn_code back to insn_code.
7874 (optab_handler, widening_optab_handler, set_optab_handler,
7875 set_widening_optab_handler, convert_optab_handler,
7876 set_convert_optab_handler, direct_optab_handler,
7877 set_direct_optab_handler): Remove int casts.
7878 Revert to treating the insn_code field as "insn_code".
7879
c8378feb 78802012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
7881
7882 * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
7883 * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
7884 * config/sh/sh-protos.h: Declare it.
7885
62f13add 78862012-07-08 Steven Bosscher <steven@gcc.gnu.org>
7887
7888 * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
7889 (dump_fixup_graph): Use current_function_name.
7890 (adjust_cfg_counts): Likewise.
7891 * ira-conflicts.c: Do not include tree.h.
7892 (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
7893
dc1be6dd 78942012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
7895
7896 PR target/51244
7897 * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
7898
4a020a8c 78992012-07-08 Steven Bosscher <steven@gcc.gnu.org>
7900
7901 * basic-block.h: Re-group most prototypes per file.
7902 (struct edge_list): Remove num_blocks field.
7903 (dump_bb_info): Adjust prototypes.
7904 (dump_reg_info): Move prototype to regs.h.
7905 * function.h: Do not include tree.h.
7906 Include vec.h, vecir.h, input.h and machmode.h to compensate.
7907 (function_name): New prototype.
7908 * gimple.h: Include tree.h to compensate for basic-block.h change.
7909 * langhooks.h: Note that tree.h is only necessary for enum tree_code.
7910 * regs.h (dump_reg_info): Prototype here.
7911 * regset.h: Adjust file reference in comment.
7912 (debug_regset): Remove prototype.
7913 * rtl.h: Include flags.h for flag_var_tracking_assignments.
7914 (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
7915 instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
7916 (dump_reg_info, dump_flow_info): Remove prototypes.
7917 * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
7918 to here, the only user. Make static.
7919 (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
7920 * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
7921 flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
7922 tree-pass.h, cfgloop.h, and tree-flow.h.
7923 Include basic-block.h, the first header I'd expect to be included.
7924 (reg_obstack): Move to df-core.c.
7925 (free_edge): Remove bogus ATTRIBUTE_UNUSED.
7926 (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
7927 (redirect_edge_succ_nodup): Move to cfghooks.c.
7928 (dump_regset, debug_regset): Move to df-core.c.
7929 (dump_bb_info): Move to cfgrtl.c.
7930 (dump_reg_info): Move to regstat.c.
7931 (dump_flow_info): Move to cfgrtl.c.
7932 (debug_flow_info): Likewise.
7933 (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
7934 * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
7935 insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
7936 (flow_active_insn_p, forwarder_block_p, can_fallthru,
7937 could_fall_through): Move to cfgrtl.c.
7938 (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
7939 (create_edge_list): Do not set edge_list's removed num_blocks.
7940 (print_edge_list): Look at n_basic_blocks instead of num_blocks.
7941 (flow_nodes_print): Remove.
7942 (flow_edge_list_print): Remove.
7943 (inverted_post_order_compute): Use FOR_ALL_BB.
bec2cf98 7944 * cfgrtl.c (dump_flow_info): Moved from cfg.c.
4a020a8c 7945 Do not call dump_reg_info.
7946 (debug_flow_info): Moved from cfg.c
7947 (dump_bb_info): Moved from cfg.c. Take 'verbose' argument
7948 to avoid looking at TDF_* flags from tree-pass.h.
7949 (flow_active_insn_p, forwarder_block_p, can_fallthru,
7950 could_fall_through): Moved from cfganal.c.
7951 (print_rtl_with_bb): Adjust dump_bb_info calls.
7952 * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
7953 (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
7954 (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
7955 * cselib.c: Include tree.h with a FIXME.
7956 * df-core.c (reg_obstack): Moved from cfg.c.
7957 (dump_regset): Likewise.
7958 (debug_regset): Likewise. Make a DEBUG_FUNCTION.
7959 * final.c (compute_alignments): Call dump_reg_info before
7960 dump_flow_info.
7961 * function.c (function_name): New function.
7962 (current_function_name): Use it.
7963 * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
7964 dump_flow_info.
7965 * ira-conflicts.c: Include tree.h with a note.
7966 * regstat.c (dump_reg_info): Moved here from cfg.c.
7967 * loop-init.c: Include regs.h instead of hard-reg-set.h.
7968 (rtl_loop_init): Call dump_reg_info before dump_flow_info.
7969 (rtl_loop_done): Likewise.
7970 * mcf.c: Include tree.h before langhooks.h.
7971 * predict.c (maybe_hot_count_p): Assert we have cfun.
7972 (probably_never_executed_bb_p): Likewise.
7973 * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
7974 instead of dump_flow_info.
7975 * sched-deps.c: Include tree.h with a FIXME.
7976 (call_may_noreturn_p): Add FIXME note why this function has to
7977 look at function decls instead of function decl flags.
7978 * sched-vis.c: Include tree.h with a FIXME.
7979 (print_rtl_slim): Adjust dump_bb_info uses.
7980 * statistics.c (statistics_fini_pass_2): Use current_function_name
7981 to avoid including tree.h.
7982 (statistics_counter_event): Use function_name for the same reason.
7983 (statistics_histogram_event): Likewise.
7984 * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg
7985 instead of dump_flow_info.
7986 * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
7987 before dump_flow_info.
7988 * doc/cfg.texi: Update CFG documentation.
7989 * Makefile.in (RTL_H): Depend on FLAGS_H.
7990 (GIMPLE_H): Depend on TREE_H.
7991 (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
7992 but no longer on TREE_H.
7993 (C_COMMON_H): Depend on TREE_H.
7994 (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
7995 sched-deps.o, sched-vis.o): Fixup dependencies.
7996
50a8e74c 79972012-07-08 Steven Bosscher <steven@gcc.gnu.org>
7998
7999 * alias.h: Do not include coretypes.h in header files.
8000 * cppbuiltin.h: Likewise.
8001 * double-int.h: Likewise.
8002 * gimple-fold.h: Likewise.
8003 * flags.h: Likewise.
8004 * tree-ssa-alias.h: Likewise.
8005 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
8006 OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
8007 * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
8008 (TREE_H): Likewise.
8009 (ALIAS_H): Do not depend on coretypes.h.
8010 (FLAGS_H): Likewise.
8011 (realmpfr.o): Depend on coretypes.h.
8012
c833363a 80132012-07-08 Steven Bosscher <steven@gcc.gnu.org>
8014
8015 * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
8016 gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
8017
bffbb863 80182012-07-07 Richard Earnshaw <rearnsha@arm.com>
8019
8020 * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
8021 (TARGET_FPA): Delete definition.
8022 (TARGET_MAVERICK): Likewise.
8023 (TARGET_FPA_EMU2): Likewise.
8024 (arm_fp_model): Remove FPA and Maverick models.
8025 (arm_arch_cirrus): Delete declaration.
8026 (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
8027 (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize.
8028 (CALL_USED_REGISTERS): Likewise.
8029 (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
8030 (FIRST_VFP_REGNUM): Renumbered.
8031 (D7_VFP_REGNUM): Chain definition.
8032 (LAST_LO_VFP_REGNUM): Likewise.
8033 (FIRST_HI_VFP_REGNUM): Likewise.
8034 (LAST_HI_VFP_REGNUM): Likewise.
8035 (FIRST_IWMMXT_GR_REGNUM): Likewise.
8036 (LAST_IWMMXT_GR_REGNUM): Likewise.
8037 (FIRST_IWMMXT_REGNUM): Likewise.
8038 (LAST_IWMMXT_REGNUM): Likewise.
8039 (FRAME_POINTER_REGNUM): Renumbered.
8040 (ARG_POINTER_REGNUM): Renumbered.
8041 (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
8042 (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
8043 (HARD_REGNO_REGNUM): Remove FPA support.
8044 (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize.
8045 (reg_class): Likewise.
8046 (REG_CLASS_NAMES): Likewise.
8047 (REG_CLASS_CONTENTS): Likewise.
8048 (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment.
8049 (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
8050 (CLASS_MAX_NREGS): Remove FPA and Maverick support.
8051 * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
8052 Reorganize. Use AAPCS preferred names.
8053 (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update
8054 comments.
8055 (OVERLAPPING_REGISTER_NAMES): Update register numbering.
8056 * arm.c (FL_CIRRUS): Delete definition.
8057 (arm_arch_cirrus): Delete variable.
8058 (arm_float_words_big_endian): Delete function.
8059 (cirrus_memory_offset): Delete function.
8060 (output_mov_long_double_fpa_from_arm): Delete function.
8061 (output_mov_long_double_arm_from_fpa): Delete function.
8062 (output_mov_double_fpa_from_arm): Delete function.
8063 (output_mov_double_arm_from_fpa): Delete function.
8064 (emit_sfm): Delete function.
8065 (maybe_get_arm_condition_code): Update comment.
8066 (arm_file_start): Always use softvfp for softfloat systems.
8067 (thumb_core_reg_alloc_order): Adjust for updated register allocation.
8068 (arm_option_override): Remove FPA and Maverick support. Always
8069 default to vfp as the fallback FPU format.
8070 (use_return_insn): Remove FPA support.
8071 (arm_get_frame_offsets): Likewise.
8072 (arm_save_coproc_regs): Likewise.
8073 (arm_canonicalize_comparison): Remove Maverick support.
8074 (arm_select_cc_mode): Likewise.
8075 (arm_gen_compare_reg): Likewise.
8076 (arm_print_operand): Likewise.
8077 (arm_libcall_value_1): Remove FPA and Maverick support.
8078 (arm_function_value_regno_p): Likewise.
8079 (arm_apply_result_size): Likewise.
8080 (arm_legitimate_index_p): Likewise.
8081 (thumb2_legitimate_index_p): Likewise.
8082 (legitimize_reload_address): Likewise.
8083 (arm_register_move_cost): Likewise.
8084 (arm_hard_regno_mode_ok): Likewise.
8085 (arm_regno_class): Likewise.
8086 (arm_dbx_register_number): Likewise.
8087 (arm_emit_unwind_sequence): Likewise.
8088 (arm_conditional_register_usage): Likewise.
8089 * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
8090 (cirrus_memory_offset): Likewise.
8091 (output_move_long_double_fpa_from_arm): Likewise.
8092 (output_move_long_double_arm_from_fpa): Likewise.
8093 (output_move_double_fpa_from_arm): Likewise.
8094 (output_move_double_arm_from_fpa): Likewise.
8095 (arm_float_words_big_endian): Likewise.
8096 * arm.md (CC_REGNUM): Renumbered.
8097 (VFPCC_REGNUM): Moved here. Renumbered.
8098 (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
8099 (attr fpu): Remove FPA and Maverick support.
8100 * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md.
8101 * arm-cores.def (ep9312): Remove Maverick support.
8102 * arm-arches.def (ep9312): Delete architecture.
8103 * arm-tables.opt: Regenerated.
8104
8105 * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
8106
3a7ac8c6 81072012-07-07 Steven Bosscher <steven@gcc.gnu.org>
8108
8109 PR tree-optimization/53881
8110 * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
8111 comparing labels to establish uniqueness of a switch case target,
8112 use the CFG instead.
8113
7c4d4cbb 81142012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org>
8115
8116 * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
8117 due to negative shift amount.
8118
e8adf557 81192012-07-07 Hans-Peter Nilsson <hp@axis.com>
8120
8121 Fix configure test for "stack protector support in target C library".
8122 * configure.ac (test_prefix, test_exec_prefix): Move setting from
8123 inside sysroot handling to before and outside it.
8124 * configure: Regenerate.
8125
03870e31 81262012-07-06 Kai Tietz <ktietz@redhat.com>
8127
8128 PR bootstrap/52947
8129 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
8130 as "/mingw/include".
8131
89952baf 81322012-07-06 Alexandre Oliva <aoliva@redhat.com>
8133
8134 PR debug/53820
8135 * var-tracking.c (vt_add_function_parameter): Convert
8136 internal_arg_pointer into arg_pointer-based address even
8137 without DRAP.
8138
686d491a 81392012-07-06 Alexandre Oilva <aoliva@redhat.com>
8140
8141 PR rtl-optimization/53827
8142 PR debug/53671
8143 PR debug/49888
8144 * alias.c (memrefs_conflict_p): Adjust offset and size by the
8145 same amount for alignment ANDs.
8146
7ec657ff 81472012-07-06 Tom de Vries <tom@codesourcery.com>
8148
8149 PR tree-optimization/51879
8150 * tree-ssa-sccvn.c (copy_reference_ops_from_call)
8151 (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
8152 (visit_use): Also call visit_reference_op_call for calls with a vdef.
8153
39215e09 81542012-07-06 Tom de Vries <tom@codesourcery.com>
8155
8156 PR tree-optimization/52009
8157 * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
8158 value numbers of gimple_vdef.
8159 * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
8160 prototype.
8161 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
8162 (vn_reference_insert): Add and handle vdef parameter.
8163 (visit_reference_op_load): Add argument to vn_reference_insert call.
8164 (visit_reference_op_store): Find value number of vdef of store. Insert
8165 value number of vdef of store.
8166
35821c01 81672012-07-06 Uros Bizjak <ubizjak@gmail.com>
8168
8169 * config/i386/i386.md (simple lea to add peephole): Also transform
8170 RTXes where second PLUS operand matches output.
8171
e1bfea63 81722012-07-06 Uros Bizjak <ubizjak@gmail.com>
8173
8174 * config/i386/i386.c (construct_plt_address): Make static.
8175 * config/i386/i386-protos.h (construct_plt_address): Remove.
8176
b4d5791b 81772012-07-06 Nick Clifton <nickc@redhat.com>
8178
8179 * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
8180 default_encode_section_info.
8181
f2285eca 81822012-07-06 Uros Bizjak <ubizjak@gmail.com>
8183
e1bfea63 8184 PR target/53853
f2285eca 8185 * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
8186 emit PIC sequence for fnaddr symbol reference in advance.
8187
cc564d02 81882012-07-06 Eric Botcazou <ebotcazou@adacore.com>
8189
8190 Revert
8191 2012-06-14 Eric Botcazou <ebotcazou@adacore.com>
8192
8193 * dwarf2out.c (function_possibly_abstracted_p): New static function.
8194 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
8195 cgraph_function_possibly_inlined_p.
8196 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
8197 (process_scope_var): Do not emit concrete instances of abstracted
8198 nested functions from here.
8199 (gen_decl_die): Emit the abstract instance if the function is possibly
8200 abstracted and not only possibly inlined.
8201 (dwarf2out_finish): Find the first non-abstract parent instance and
8202 attach concrete instances on the limbo list to it.
8203
e71384dc 82042012-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8205 Julian Brown <julian@codesourcery.com>
8206
e1bfea63 8207 PR target/48941
8208 PR target/51980
8209 * config/arm/neon-gen.ml (return_by_ptr): Delete.
8210 (print_function): Handle empty strings.
8211 (return): Delete use of return_by_ptr.
8212 (mask_shape_for_shuffle): New function.
8213 (mask_elems): Likewise.
8214 (shuffle_fn): Likewise.
8215 (params): Simplify and remove use of return_by_ptr.
8216 (get_shuffle): New function.
8217 (print_variant): Update.
8218 * config/arm/neon.ml (rev_elems): New function.
8219 (permute_range): Likewise.
8220 (zip_range): Likewise.
8221 (uzip_range): Likewise.
8222 (trn_range): Likewise.
8223 (zip_elems): Likewise.
8224 (uzip_elems): Likewise.
8225 (trn_elems): Likewise.
8226 (features): New enumeration Use_shuffle. Delete ReturnPtr.
8227 (pf_su_8_16): New.
8228 (suf_32): New.
8229 (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
8230 * config/arm/arm_neon.h: Regenerate.
e71384dc 8231
69435ea2 82322012-07-05 Richard Guenther <rguenther@suse.de>
8233
8234 * tree-pretty-print.c (dump_generic_node): Properly test
8235 the result of exact_log2.
8236
daa87e5a 82372012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8238
8239 * config/s390/s390-protos.h (s390_expand_movmem)
8240 (s390_expand_cmpmem): Add return value.
8241 * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
8242 Return FALSE to use the library function in some cases.
8243 * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
8244 helper functions.
8245
fcddec9f 82462012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8247
8248 * config.gcc: Enable ifunc attribute by default on s390 and s390x.
8249
5e9ee578 82502012-07-05 Steven Bosscher <steven@gcc.gnu.org>
8251
8252 * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
8253 * stmt.c (dump_case_nodes): New.
8254 (expand_case): Split out code generation parts into new functions.
8255 (expand_switch_as_decision_tree_p): Split out from expand_case.
8256 (emit_case_decision_tree): Likewise.
8257 (emit_case_dispatch_table): Likewise.
8258
7c0baf23 82592012-07-05 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
8260
8261 * config/arm/iterators.md (SDF): New mode iterator.
8262 (V_if_elem): Add support for SF and DF modes.
8263 (V_reg): Likewise.
8264 (F_constraint): New mode iterator attribute.
8265 (F_fma_type): Likewise.
8266 config/arm/vfp.md (fma<SDF:mode>4): New pattern.
8267 (*fmsub<SDF:mode>4): Likewise.
8268 (*fmnsub<SDF:mode>4): Likewise.
8269 (*fmnadd<SDF:mode>4): Likewise.
8270
45e9f803 82712012-07-04 Uros Bizjak <ubizjak@gmail.com>
8272
8273 * expmed.c (expand_mult): Initialize coeff and is_neg.
8274
392e1ee8 82752012-07-04 Oleg Endo <olegendo@gcc.gnu.org>
8276
8277 * config/sh/predicates.md (zero_extend_operand): New predicate.
8278 * config/sh/sh.md (zero_extendhisi2): Simplify by using new
8279 zero_extend_operand predicate.
8280 (zero_extendqisi2): Likewise.
8281
b3df2fb9 82822012-07-04 Uros Bizjak <ubizjak@gmail.com>
8283
8284 PR middle-end/53321
8285 * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
8286 to not call cgraph_propagate_frequency if something was changed.
8287
80a91f5b 82882012-07-04 Richard Guenther <rguenther@suse.de>
8289
8290 PR middle-end/53433
8291 * gimple-fold.c (get_base_constructor): Do not return an
8292 error_mark_node DECL_INITIAL.
8293
48089971 82942012-07-04 Richard Guenther <rguenther@suse.de>
8295
8296 PR tree-optimization/53844
8297 * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
8298 the loop virtual PHI.
8299
f31a6f35 83002012-07-04 Richard Guenther <rguenther@suse.de>
8301
8302 PR tree-optimization/53849
8303 * tree-cfg.c (move_stmt_op): Only call add_referenced_var
8304 for duplicated locals. Use add_referenced_var_1 to avoid
8305 pushing/popping cfun.
8306
29b4b219 83072012-07-04 Kai Tietz <ktietz@redhat.com>
8308
8309 * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
8310 * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
8311 prototype.
8312 * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
8313 as i386_pe_reloc_rw_mask.
8314
61523a35 83152012-07-04 Richard Guenther <rguenther@suse.de>
8316
8317 * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
8318 as in free_lang_data_in_type.
8319
89049f25 83202012-07-04 Tobias Grosser <tobias@grosser.es>
b3df2fb9 8321 Michael Matz <matz@suse.de>
89049f25 8322
8323 * Makefile.in (OBJS): Add graphite-optimize-isl.o.
8324 (graphite-optimize-isl.o): Add dependencies.
8325 * common.opt (floop-nest-optimize): New flag.
8326 * doc/invoke.texi (floop-nest-optimize): Document.
8327 * graphite-dependences.c (compute_deps): Export.
8328 * graphite-poly.h (compute_deps): Declare.
8329 * graphite-optimize-isl.c: New file.
8330 * graphite-poly.c (apply_poly_transforms): Run the loop
8331 nest optimizer.
8332 * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
8333 if -floop-nest-optimize is enabled.
8334
48d72ad2 83352012-07-03 Oleg Endo <olegendo@gcc.gnu.org>
8336
8337 * config/sh/predicates.md (logical_and_operand): New predicate.
8338 * config/sh/constraints.md (Jmb, Jmw): New constraints.
8339 * config/sh/sh.md (andsi3): Move expander above insns. Add handling
8340 of 0xFFFF constant. Use logical_and_operand predicate and
8341 satisfies_constraint_Jmb, satisfies_constraint_Jmw.
8342 (*andsi3_compact): Make it an insn_and_split. Use
8343 logical_and_operand predicate. Add Jmb,Jmw alternatives.
8344
e30361c6 83452012-07-03 Jason Merrill <jason@redhat.com>
8346
8347 PR c++/53826
8348 * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
8349
6f3836d6 83502012-07-03 Nick Clifton <nickc@redhat.com>
8351
8352 * config/mep/mep.c (mep_reorg_regmove): Use
8353 next_nonnote_non_debug_insn to advance to the next insn. Do not
8354 expect delete_insn to return an rtx.
8355
fdb86f97 83562012-07-03 Richard Guenther <rguenther@suse.de>
8357
8358 * doc/install.texi (CLooG): Clarify how CLooG needs to be
8359 configured and that it needs to be built against ISL 0.10.
8360
e4304ad1 83612012-07-03 Uros Bizjak <ubizjak@gmail.com>
8362
8363 * config/i386/i386.c (ix86_option_override_internal): Fix wrong
8364 code model string in the error message.
8365
f3e7bab4 83662012-07-03 Uros Bizjak <ubizjak@gmail.com>
8367
8368 PR target/53811
8369 * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
8370 sibcall_insn_operand. Move it to a temporary register if not.
8371
d229c219 83722012-07-03 Andreas Schwab <schwab@linux-m68k.org>
8373
8374 PR target/28896
8375 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
8376 if !TARGET_68020.
8377
44bfcc4f 83782012-07-03 Uros Bizjak <ubizjak@gmail.com>
8379
8380 * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
8381
948e3eac 83822012-07-03 Roland McGrath <mcgrathr@google.com>
8383
8384 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
8385 assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
8386 * configure: Regenerated.
8387 * config/i386/i386.md (simple_return_internal_long): Use %;
8388 (ctz<mode>2): Likewise.
8389 (*pause): Likewise.
8390
a6be7821 83912012-07-02 Oleg Endo <olegendo@gcc.gnu.org>
8392
8393 PR target/51244
8394 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
8395 predicates.
8396 * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
8397 * config/sh/sh.c (get_t_reg_rtx): New function. Use it when invoking
8398 gen_branch_true and gen_branch_false.
8399 * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
8400 gen_branch_false.
8401 (branch_true, branch_false): Use t_reg_operand predicate.
8402 (*branch_true, *branch_false): Delete.
8403 (movt): Use t_reg_operand predicate.
8404 (*negnegt): Use negt_reg_operand predicate and fold little and big
8405 endian variants.
8406 (*movtt): Use t_reg_operand and fold little and big endian variants.
8407 (*movt_qi): Delete.
8408
78b7a675 84092012-07-02 Steven Bosscher <steven@gcc.gnu.org>
8410
8411 * stmt.c (emit_case_bit_tests): Remove.
8412 (expand_case): Remove expand_switch_using_bit_tests_p code.
8413 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
8414 (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
8415 (lshift_cheap_p): Likewise.
8416 (expand_switch_using_bit_tests_p): Likewise.
8417 (struct case_bit_test): Likewise.
8418 (case_bit_test_cmp): Likewise.
8419 (emit_case_bit_tests): New implementation for GIMPLE.
8420 (gen_inbound_check): Do not release post-dominator info here.
8421 (process_switch): Reorder code. Expand as bit tests if it
8422 looks like a win.
948e3eac 8423 (do_switchconv): Release post-dominator info here if something changed.
78b7a675 8424 (struct gimple_opt_pass): Verify more.
8425 * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
8426
7c33163b 84272012-07-02 Martin Jambor <mjambor@suse.cz>
8428
8429 PR middle-end/38474
8430 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
8431 dynamic type change check.
8432
87e20041 84332012-07-02 Richard Guenther <rguenther@suse.de>
948e3eac 8434 Michael Matz <matz@suse.de>
8435 Tobias Grosser <tobias@grosser.es>
8436 Sebastian Pop <sebpop@gmail.com>
87e20041 8437
8438 * Makefile.in: Remove PPL flags in favor of ISL ones.
8439 (BACKENDLIBS): Remove PPL libs.
8440 (INCLUDES): Remove PPL includes in favor of ISL ones.
8441 (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
8442 graphite-cloog-compat.h dependencies.
8443 (graphite-dependences.o): Likewise.
8444 (graphite-poly.o): Likewise.
8445 * configure.ac: Declare ISL vars instead of PPL ones.
8446 * configure: Regenerated.
948e3eac 8447 * doc/install.texi: Replace PPL requirement documentation with ISL one.
87e20041 8448 * graphite-blocking.c: Remove PPL code, add ISL equivalent.
8449 * graphite-clast-to-gimple.c: Likewise.
8450 * graphite-dependences.c: Likewise.
8451 * graphite-interchange.c: Likewise.
8452 * graphite-poly.h: Likewise.
8453 * graphite-poly.c: Likewise.
8454 * graphite-sese-to-poly.c: Likewise.
8455 * graphite.c: Likewise.
8456 * graphite-scop-detection.c: Re-arrange includes.
8457 * graphite-cloog-util.c: Remove.
8458 * graphite-cloog-util.h: Likewise.
8459 * graphite-ppl.h: Likewise.
8460 * graphite-ppl.c: Likewise.
8461 * graphite-dependences.h: Likewise.
8462
32819af5 84632012-07-02 Richard Guenther <rguenther@suse.de>
8464
8465 Merge from graphite branch
8466 2011-07-21 Tobias Grosser <tobias@grosser.es>
948e3eac 8467
32819af5 8468 * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
8469 Remove graphite-cloog-util.h.
8470 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
8471 build_iv_mapping, translate_clast_user, translate_clast,
8472 free_scattering, initialize_cloog_names, build_cloog_prog,
8473 create_params_index): Do not use old compatibility functions.
8474 (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
8475 * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
8476 compatibility functions.
8477 (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
8478 cloog.
8479 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
8480 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
8481 cloog_finalize().
8482 * graphite-cloog-compat.h: Remove.
8483
8484 2011-08-09 Tobias Grosser <tobias@grosser.es>
8485
8486 * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
8487 of the string, no just a reference.
8488 (clast_name_index): Add a new field, that specifies if we need to free
8489 the name.
8490 (free_clast_name_index): If necessary, free the name string.
8491 (clast_name_index_elt_info): Calculate the hash based on the string
8492 content, not the memory location it is stored in.
8493 (clast_name_to_level): Specify that we do not need to free the name.
8494 (clast_name_to_index): Dito.
8495 (clast_name_to_lb_ub): Dito.
8496 (eq_clast_name_indexes): Compare the strings, not their base pointers.
8497 (free_scattering): Removed.
8498 (initialize_cloog_names): Renamed to add_names_to_union_domain().
8499 (add_names_to_union_domain): Changed to work on a union_domain,
8500 instead of a CloogNames structure.
8501 (build_cloog_prog): Removed.
8502 (build_cloog_union_domain): New.
8503 (generate_cloog_input): New.
8504 (scop_to_clast): Use CloogInput instead of CloogProgram.
8505 (print_generated_program): Adapt to new scop_to_clast() and do not
8506 print the CloogProgram any more.
8507 (create_params_index): Removed, functionality integrated in
8508 add_names_to_union_domain().
8509 (gloog): Adapt to new scop_to_clast().
8510 * graphite-clast-to-gimple.h (scop_to_clast): Remove.
8511
8512 2012-01-11 Tobias Grosser <tobias@grosser.es>
948e3eac 8513
32819af5 8514 * graphite-clast-to-gimple.c (clast_name_to_index,
8515 clast_name_to_lb_ub, clast_name_to_gcc): Change types.
8516 (clast_to_gcc_expression): Add clast_expr_name as a new
8517 case. Do not assume a clast_expr_term points always to a
8518 clast_expr_name.
8519 (type_for_clast_term): Do not assume a clast_expr_term points always to
8520 a clast_expr_name.
8521 (type_for_clast_name): New.
8522 (type_for_clast_expr): Add clast_expr_name as a new case.
8523
8524 2011-08-03 Sebastian Pop <sebpop@gmail.com>
8525
8526 * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
8527 new_Cloog_Scattering_from_ppl_Polyhedron,
8528 new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
8529
ca0ab26a 85302012-07-02 Jakub Jelinek <jakub@redhat.com>
8531
8532 PR tree-optimization/53645
8533 * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
8534 instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
8535
10e5ccd5 85362012-07-01 Wei Guozhi <carrot@google.com>
8537
8538 PR target/53447
8539 * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
8540 * config/arm/arm.c (const_ok_for_dimode_op): New function.
8541 * config/arm/constraints.md (Dd): New constraint.
8542 * config/arm/predicates.md (arm_adddi_operand): New predicate.
8543 * config/arm/arm.md (adddi3): Extend it to handle constants.
8544 (arm_adddi3): Likewise.
8545 (addsi3_carryin_<optab>): Extend it to handle sbc case.
8546 (addsi3_carryin_alt2_<optab>): Likewise.
8547 * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
8548
267dc7fa 85492012-06-30 Nathan Sidwell <nathan@acm.org>
8550
8551 * coverage.c (bbg_file_stamp): New.
8552 (read_counts_file): Merge incoming stamp with bbg_file_stamp.
8553 (build_info): Write bbg_file_stamp.
8554 (coverage_init): Initialize bbg_file_stamp. Read counts file
8555 before writing graph header.
8556 (coverage_finish): Don't unlink the data file if we can generate a
8557 unique file stamp.
8558 * tree.h (crc32_unsigned): Declare.
8559 * tree.c (crc32_unsigned_bits): New, broken out of ...
8560 (crc32_byte): ... here. Use it.
8561 (crc32_unsigned): New.
8562
948e3eac 85632012-06-29 Cary Coutant <ccoutant@google.com>
baa99c50 8564
8565 * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
8566 (gen_subprogram_die): Don't add pubname if want_pubnames is false.
8567 (gen_variable_die): Likewise.
8568 (gen_namespace_die): Likewise.
8569
a6217c59 85702012-06-29 Eric Botcazou <ebotcazou@adacore.com>
8571
8572 * tree-eh.c (lower_try_finally_switch): Really put the location of the
8573 last statement of the finally block onto the switch.
8574
58377760 85752012-06-29 H.J. Lu <hongjiu.lu@intel.com>
8576
8577 PR target/53539
8578 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
8579 TARGET_LP64.
8580
de4eff30 85812012-06-29 Sterling Augustine <saugustine@google.com>
8582
8583 * dwarf2out.c (add_pubname): Add comment.
8584 (add_pubtype): Fix indentation.
8585 (gen_enumeration_type_die): Likewise.
8586
9425f22e 85872012-06-29 Jakub Jelinek <jakub@redhat.com>
8588
8589 * tree-vect-generic.c (expand_vector_divmod): For even/odd
948e3eac 8590 widening multiply, put even always as first argument to VEC_PERM_EXPR.
9425f22e 8591
10dd7335 85922012-06-29 Richard Henderson <rth@redhat.com>
8593
8594 * tree-vect-generic.c: Include target.h.
8595 (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
8596 * Makefile.in (tree-vect-generic.o): Update.
8597
e53d55e7 85982012-06-29 Steven Bosscher <steven@gcc.gnu.org>
8599
8600 * configure.ac: Remove special gtfiles case for C.
8601 * configure: Regenerate.
8602 * Makefile.in: Remove C front-end hooks and build hooks that
8603 will be picked up from c/Make-lang.in now.
8604 Add tree-mudflap to C_COMMON_OBJS.
8605 * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
8606 * config/vms/vms.c: Look for c-tree.h in c/.
8607 * doc/gty.texi: Remove reference to c-config-lang.in.
8608 * doc/sourcebuild.texi: Document the c/ subdirectory.
8609
22d29d94 86102012-06-29 Steven Bosscher <steven@gcc.gnu.org>
8611
8612 * system.h (CASE_USE_BIT_TESTS): Poison.
8613 * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
8614 (expand_switch_using_bit_tests_p): ...here.
8615 * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
8616 * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
8617
e2ca32a4 86182012-06-29 Steven Bosscher <steven@gcc.gnu.org>
8619
8620 * system.h (IFCVT_EXTRA_FIELDS): Poison.
8621 (IFCVT_INIT_EXTRA_FIELDS): Poison.
8622 * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
8623 * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
8624 IFCVT_INIT_EXTRA_FIELDS.
8625 * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
8626 * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
8627 IFCVT_MACHDEP_INIT.
8628 * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
8629 frv_ifcvt_machdep_init.
8630 * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
8631 Remove documentation.
8632 (IFCVT_MACHDEP_INIT): Document.
8633 * doc/tm.texi: Regenerate.
8634
98eea2ef 86352012-06-29 Nick Clifton <nickc@redhat.com>
8636
8637 * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
8638
e5da8101 86392012-06-29 Jakub Jelinek <jakub@redhat.com>
8640
8641 * tree-vect-stmts.c (vectorizable_operation): Check both
8642 VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
8643 Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
8644
b4855609 86452012-06-28 Richard Henderson <rth@redhat.com>
8646
8647 * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
8648
99ee4cc8 86492012-06-28 Jakub Jelinek <jakub@redhat.com>
8650
3af51fe9 8651 PR tree-optimization/51581
8652 * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
8653 (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
8654 also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
8655 VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
8656 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
8657 MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
8658
99ee4cc8 8659 PR tree-optimization/53645
8660 * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
8661 instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
8662 if possible.
8663
f55cb01e 86642012-06-28 Georg-Johann Lay <avr@gjlay.de>
8665
8666 PR 53595
8667 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
8668 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
8669 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
8670 avr_hard_regno_call_part_clobbered.
8671
2357fda0 86722012-06-28 Richard Guenther <rguenther@suse.de>
8673
8674 PR middle-end/53790
8675 * expr.c (expand_expr_real_1): Verify if the type is complete
8676 before inspecting its size.
8677
67888653 86782012-06-28 Andreas Schwab <schwab@linux-m68k.org>
8679
8680 * doc/include/gpl.texi: Remove.
8681 * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
8682
60420e1c 86832012-06-28 Jakub Jelinek <jakub@redhat.com>
8684
8685 PR tree-optimization/53645
8686 * tree-vect-generic.c (add_rshift): New function.
8687 (expand_vector_divmod): New function.
8688 (expand_vector_operation): Use it for vector integer
8689 TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
8690 * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
8691 unused lguup variable with dummy_int.
8692
c43fbd61 86932012-06-28 OLivier Hainque <hainque@adacore.com>
8694
8695 * expr.c (convert_move): Latch mem integer inputs into a
8696 register before expanding a multi-instructions sequence.
8697
19931eea 86982012-06-28 Alexandre Oliva <aoliva@redhat.com>
8699 Uros Bizjak <ubizjak@gmail.com>
8700 Jakub Jelinek <jakub@redhat.com>
b7517b82 8701
8702 PR debug/53706
8703 PR debug/47624
8704 * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
8705 (vt_finalize): ... here instead, if needed.
8706
704e91bd 87072012-06-28 Alexandre Oliva <aoliva@redhat.com>
8708
8709 PR debug/53740
8710 PR debug/52983
8711 PR debug/48866
8712 * dce.c (word_dce_process_block): Check whether inserting debug
8713 temps are needed even for needed insns.
8714 (dce_process_block): Likewise.
8715 * df-problems.c (dead_debug_add): Add comment about multi-regs.
8716 (dead_debug_insert_temp): Likewise. Don't subreg when we're
8717 setting fewer regs than a multi-reg requires.
8718
21c2a8b2 87192012-06-27 Richard Henderson <rth@redhat.com>
8720
8721 * config/alpha/alpha.c (alpha_dimode_u): New.
8722 (alpha_init_builtins): Initialize it, and use it.
8723 (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
8724 (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
8725 (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
8726 (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
8727 (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
8728 (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
8729 (alpha_fold_builtin_ctpop): Likewise.
8730 (alpha_fold_builtin_umulh): Remove.
8731 (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
8732 typo in MAX_ARGS check.
8733
96504875 87342012-06-27 Richard Henderson <rth@redhat.com>
8735
8736 * tree.def (MULT_HIGHPART_EXPR): New.
8737 * cfgexpand.c (expand_debug_expr): Ignore it.
8738 * expr.c (expand_expr_real_2): Handle it.
8739 * fold-const.c (int_const_binop_1): Likewise.
8740 * optabs.c (optab_for_tree_code): Likewise.
8741 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
8742 * tree-inline.c (estimate_operator_cost): Likewise.
8743 * tree-pretty-print.c (dump_generic_node): Likewise.
8744 (op_code_prio, op_symbol_code): Likewise.
8745 * tree.c (commutative_tree_code): Likewise. Also handle
8746 WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
8747
d6187fde 87482012-06-27 Richard Henderson <rth@redhat.com>
8749
8750 PR target/53749
8751 * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
8752 in 2012-06-23 change. Adjust two other DImode tests as well.
8753
9136feff 87542012-06-27 Nick Clifton <nickc@redhat.com>
8755
8756 * config/rx/rx.md (comparesi3_extend): Remove = modifier from
8757 input operand.
8758
3ef23449 87592012-06-27 Richard Guenther <rguenther@suse.de>
8760
8761 PR middle-end/53676
8762 * tree-chrec.c (chrec_convert_1): Represent truncation to
8763 a type with undefined overflow as truncation to an unsigned
8764 type converted to the type with undefined overflow.
8765 * tree-scalar-evolution.c (interpret_rhs_expr): For computing
8766 the scalar evolution of a truncated widened operation avoid
8767 looking at the non-existing evolution of the widened operation
8768 result.
8769
61e371b0 87702012-06-27 Richard Guenther <rguenther@suse.de>
8771
8772 PR tree-optimization/53774
8773 * tree-ssa-reassoc.c (get_rank): All default defs have
8774 precomputed rank.
8775 (init_reassoc): Precompute rank for all SSA default defs.
8776
71b18c48 87772012-06-27 Nick Clifton <nickc@redhat.com>
8778
8779 * config/rx/rx.md (simple_return): Use the simple_return rtx.
8780
981d19b4 87812012-06-26 Richard Henderson <rth@redhat.com>
8782
8783 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
8784 and don't fall thru from standard_80387_constant_p to the memory
19931eea 8785 fallback.
981d19b4 8786
5cd92c37 87872012-06-26 Richard Henderson <rth@redhat.com>
8788
8789 * config/i386/i386.c (bdesc_args): Update. Change
8790 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
8791 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
8792 (ix86_builtin_mul_widen_even): Use it.
8793 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
8794 (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
8795 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
8796 for all SSE2.
8797 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
8798 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2.
8799 (vec_widen_smult_even_v4si): New.
8800
04c4f045 88012012-06-26 Richard Henderson <rth@redhat.com>
8802
8803 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
8804 to expander; move guts to ...
8805 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add
8806 highparts before shifting up.
8807 * config/i386/i386-protos.h: Update.
8808
f97cd9ed 88092012-06-26 Steven Bosscher <steven@gcc.gnu.org>
8810
8811 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
8812 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
8813 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
8814
7882e02e 88152012-06-26 Alexandre Oliva <aoliva@redhat.com>
8816
8817 * var-tracking.c (vt_add_function_parameter): Use a preserved
8818 VALUE for the MEM address of an incoming parameter.
8819
a52c3a6a 88202012-06-26 Sterling Augustine <saugustine@google.com>
8821
58b4004e 8822 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
8823 (prune_unused_types): Likewise.
a52c3a6a 8824
d8555e79 88252012-06-26 Steven Bosscher <steven@gcc.gnu.org>
8826
8827 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8828 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
8829 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
8830 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
8831 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
8832 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
8833 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
8834 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
8835 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
8836 documentation.
8837 * doc/tm.texi: Regenerate.
8838 * doc/cpp.texi: Make example for #error generic.
8839 * config/frv/frv.h: Fix example text to match tm.texi.
8840
4502f5d0 88412012-06-26 Bill Schmidt <wschmidt@linux.ibm.com>
8842
8843 * tree-pass.h (pass_strength_reduction): New decl.
8844 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
8845 (finalize_costs): Likewise.
8846 * timevar.def (TV_TREE_SLSR): New timevar.
8847 * gimple-ssa-strength-reduction.c: New.
8848 * tree-flow.h (initialize_costs): New decl.
8849 (finalize_costs): Likewise.
8850 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
8851 * passes.c (init_optimization_passes): Add pass_strength_reduction.
8852
b780dd27 88532012-06-26 Matt Turner <mattst88@gmail.com>
8854
19931eea 8855 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
b780dd27 8856 (__builtin_arm_tinsrh): Likewise.
8857 (__builtin_arm_tinsrw): Likewise.
8858 (__builtin_arm_wsadb): Add missing v2si parameter.
8859 (__builtin_arm_wsadh): Likewise.
8860 (__builtin_arm_getwcx): Delete.
8861 (__builtin_arm_setwcx): Delete.
8862 (__builtin_arm_getwcgr0): Add.
8863 (__builtin_arm_getwcgr1): Add.
8864 (__builtin_arm_getwcgr2): Add.
8865 (__builtin_arm_getwcgr3): Add.
8866 (__builtin_arm_setwcgr0): Add.
8867 (__builtin_arm_setwcgr1): Add.
8868 (__builtin_arm_setwcgr2): Add.
8869 (__builtin_arm_setwcgr3): Add.
8870
1c89c7a8 88712012-06-26 Richard Guenther <rguenther@suse.de>
8872
8873 Revert
8874 2012-06-21 Richard Guenther <rguenther@suse.de>
8875
8876 * tree-inline.c (estimate_num_insns): Estimate call cost for
8877 tailcalls properly.
8878
802c6441 88792012-06-26 Steven Bosscher <steven@gcc.gnu.org>
8880
8881 PR other/33190
8882 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
8883 * doc/tm.texi: Regenerate.
8884
c07f27fd 88852012-06-26 Steven Bosscher <steven@gcc.gnu.org>
8886
8887 PR other/33190
8888 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
8889 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
8890 * doc/tm.texi.in: Remove documentation for unused target macros
8891 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
8892 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
8893 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
8894 TARGET_NARROW_VOLATILE_BITFIELDS.
8895 Document that MD_HANDLE_UNWABI is a macro in libgcc.
8896 * doc/tm.texi: Regenerate.
8897 * system.h: Poison target macros
8898 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
8899 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
8900 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
8901 TARGET_NARROW_VOLATILE_BITFIELDS
8902
59991b30 89032012-06-26 Jan Hubicka <jh@suse.cz>
8904
8905 PR lto/53572
8906 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
8907 used symbols.
8908
c2e72ba3 89092012-06-26 Dehao Chen <dehao@google.com>
8910
8911 * tree-inline.c: (expand_call_inline): Ensure that lexical block's
8912 source location is consistant with the call stmt.
8913
1ad41595 89142012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org>
8915
8916 PR tree-optimization/53729
8917 PR tree-optimization/53636
8918 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
8919 vect_verify_datarefs_alignment until after statements have
8920 been marked as relevant/irrelevant.
8921 * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
8922 Skip irrelevant statements.
8923 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
8924 instead of STMT_VINFO_RELEVANT.
8925 (vect_get_data_access_cost): Do not check for supportable
8926 alignment before calling vect_get_load_cost/vect_get_store_cost.
8927 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
8928 handling unsupported alignment.
8929 (vect_get_load_cost): Likewise.
8930
a6a21833 89312012-06-25 Steven Bosscher <steven@gcc.gnu.org>
8932
8933 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
8934 Do not define JMP_BUF_SIZE.
8935
47b88316 89362012-06-26 Jakub Jelinek <jakub@redhat.com>
8937
8938 PR tree-optimization/53748
8939 * tree-ssa-phiopt.c (conditional_replacement): Only optimize
8940 if arg0/arg1 have integral or pointer types.
8941
48bb0beb 89422012-06-25 Richard Henderson <rth@redhat.com>
8943
8944 * config/i386/sse.md (sse2_sse4_1): Remove code attr.
8945 (<s>dot_prodv4si, <s>dot_prodv8si): Remove
8946 (sdot_prodv4si): New; handle only XOP.
8947
de9b8545 89482012-06-25 Richard Henderson <rth@redhat.com>
8949
8950 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
8951 (V2UDI_FUNC_V4USI_V4USI): New.
8952 (V4UDI_FUNC_V8USI_V8USI): New.
8953 * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
8954 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
8955 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
8956 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
8957 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
8958 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
8959 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
8960 (bdesc_args): Add them.
8961 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
8962 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
8963 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
8964 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
8965 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
8966
a3fa0286 89672012-06-25 Richard Henderson <rth@redhat.com>
8968
8969 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
8970
3737d3e4 89712012-06-25 Richard Henderson <rth@redhat.com>
8972
8973 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
8974 to V16QImode.
8975 (ix86_expand_vec_interleave): New.
8976 (ix86_expand_mul_widen_evenodd): New.
8977 (ix86_expand_mul_widen_hilo): New.
8978 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
8979 * config/i386/i386.md (u_bool) New code attr.
8980 * config/i386/predicates.md
8981 (nonimmediate_or_const_vector_operand): Remove.
8982 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
8983 both AVX and SSE4_1.
8984 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
8985 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
8986 (vec_widen<s>mult_hi_v8si): Remove.
8987 (vec_widen<s>mult_lo_v8si): Remove.
8988 (vec_widen_smult_hi_v4si): Remove.
8989 (vec_widen_smult_lo_v4si): Remove.
8990 (vec_widen_umult_hi_v4si): Remove.
8991 (vec_widen_umult_lo_v4si): Remove.
8992 (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
8993 (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
8994 * config/i386/i386-protos.h: Update.
8995
f983358a 89962012-06-25 Christophe Lyon <christophe.lyon@st.com>
8997
8998 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
8999 (neon_vld1_dup): Restrict to VQ operands.
9000 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
9001
425588b5 90022012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
19931eea 9003 James Greenhalgh <james.greenhalgh@arm.com>
425588b5 9004
9005 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
9006 (TARGET_FMA): New macro.
9007 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
9008 (TARGET_ARM_ARCH): Likewise.
9009 (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
9010 (TARGET_V6M, TARGET_V7M): Likewise.
9011 (TARGET_ARM_ARCH_PROFILE): Likewise.
9012 (TARGET_ARM_FEATURE_LDREX): Likewise.
9013 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
9014 (ARM_MIN_ENUM_SIZE): Likewise.
9015 * config/arm/arm.c (arm_file_start): Refactor appropriately.
9016 (base_architecture): New enumeration.
9017 (arm_base_arch): New global variable.
9018 (processors): Add field base_arch.
9019 (ARM_ARCH, ARM_CORE): Adjust accordingly.
9020 (arm_option_override): Add initialization of arm_base_arch.
9021 * doc/cpp.texi (system-specific predefined macros.): Change.
9022
50c10b91 90232012-06-25 Jakub Jelinek <jakub@redhat.com>
9024
9025 PR target/53759
9026 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
9027 of x x x in the vmovlps load alternative.
9028
198a48ad 90292012-06-25 Richard Sandiford <rdsandiford@googlemail.com>
9030
9031 PR debug/53740
9032 * df.h (dead_debug_add): Remove third argument.
9033 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
9034 REG that we want to replace instead.
9035 (dead_debug_insert_temp): Use the REGNO of the reg that we want
9036 to replace instead of DF_REF_REGNO. Require there to always be
9037 at least one such use. Check for cases where the same location
9038 has more than df_ref associated with it.
9039 (df_note_bb_compute): Remove third dead_debug_add argument.
9040 * dce.c (word_dce_process_block): Likewise.
9041
91bb968b 90422012-06-25 Steven Bosscher <steven@gcc.gnu.org>
9043
9044 * config/v850/v850.c: Remove redundant extern declarations for
9045 last_assemble_variable_decl and size_directive_output.
9046
9047 * doc/tm.texi.in: Document JMP_BUF_SIZE.
9048 * doc/tm.texi: Regenerate.
9049 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
9050 * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
9051 * config/stormy16/stormy16.h: Likewise.
9052
9053 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
9054
9055 * doc/sourcebuild.texi: Add missing subdirectories.
9056
646ea1f5 90572012-06-25 Tristan Gingold <gingold@adacore.com>
9058
9059 * config/i386/i386.h: Fix typo.
9060
595bdb35 90612012-06-25 Tristan Gingold <gingold@adacore.com>
9062
9063 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
9064 (seh_cfa_adjust_cfa): ... that function.
9065 (seh_emit_stackalloc): Do not emit out of range values.
9066 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
9067 UNSPEC_DEF_CFA constants.
9068 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
9069 * config/i386/i386.c (ix86_frame_pointer_required): Required
9070 for very large frames on SEH target.
9071 (ix86_compute_frame_layout): Save area is before frame pointer
9072 on SEH target. Handle very large frames.
9073 (ix86_expand_prologue): Likewise.
9074
d5bf7b64 90752012-06-24 Steven Bosscher <steven@gcc.gnu.org>
9076
9077 * output.h: (current_function_is_leaf,
9078 current_function_sp_is_unchanging,
9079 current_function_uses_only_leaf_regs): Remove.
9080 * function.c (current_function_is_leaf,
9081 current_function_sp_is_unchanging,
9082 current_function_uses_only_leaf_regs): Remove.
9083 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
9084 instead of current_function_uses_only_leaf_regs.
9085 * function.h (struct rtl_data): New fields sp_is_unchanging,
9086 is_leaf, uses_only_leaf_regs.
9087 * resource.c (init_resource_info): Replace current_function_is_leaf,
9088 current_function_sp_is_unchanging, and
9089 current_function_uses_only_leaf_regs with new crtl fields.
9090 * sdbout.c (sdbout_symbol): Likewise.
9091 * df-core.c (rest_of_handle_df_initialize): Likewise.
9092 * ira.c (ira): Likewise.
9093 * final.c (final_start_function): Likewise.
9094 * reorg.c (fill_simple_delay_slots): Likewise.
9095 * regrename.c (check_new_reg_p): Likewise.
9096 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
9097 (notice_stack_pointer_modification): Likewise.
9098 * dbxout.c (dbxout_symbol): Likewise.
9099 (dbxout_parms): Likewise.
9100 * sel-sched.c (init_regs_for_mode): Likewise.
9101 * dwarf2out.c (dbx_reg_number): Likewise.
9102 (multiple_reg_loc_descriptor): Likewise.
9103 * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
9104 (gen_pop): Likewise.
9105 (ix86_select_alt_pic_regnum): Likewise.
9106 (ix86_compute_frame_layout): Likewise.
9107 (ix86_finalize_stack_realign_flags): Likewise.
9108 (ix86_expand_epilogue): Likewise.
9109 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
9110 * config/h8300/h8300.c (byte_reg): Likewise.
9111 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
9112 (c6x_save_reg): Likewise.
9113 (c6x_compute_frame_layout): Likewise.
9114 * config/pa/pa.c (pa_compute_frame_size): Likewise.
9115 (pa_output_function_prologue): Likewise.
9116 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
9117 * config/sparc/sparc.md (attr "leaf_function"): Likewise.
9118 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
9119 (sparc_expand_prologue): Likewise.
9120 (sparc_flat_expand_prologue): Likewise.
9121 (sparc_asm_function_prologue): Likewise.
9122 (sparc_output_mi_thunk): Likewise.
9123 (sparc_frame_pointer_required): Likewise.
9124 * config/epiphany/epiphany.c (epiphany_compute_function_type):
9125 Likewise.
9126 (epiphany_compute_frame_size): Likewise.
9127 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
9128 * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
9129 (cris_frame_pointer_required): Likewise.
9130 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
9131 (tilepro_current_function_is_leaf): Likewise.
9132 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
9133 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
9134 * config/ia64/ia64.c (find_gr_spill): Likewise.
9135 (ia64_compute_frame_size): Likewise.
9136 (ia64_can_eliminate): Likewise.
9137 (ia64_initial_elimination_offset): Likewise.
9138 * config/m68k/m68k.c (m68k_save_reg): Likewise.
9139 (m68k_expand_epilogue): Likewise.
9140 * config/rx/rx.c (rx_get_stack_layout): Likewise.
9141 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
9142 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
9143 Likewise.
9144 (picochip_output_frame_debug): Likewise.
9145 * config/sh/sh.c (sh_media_register_for_return): Likewise.
9146 (sh_allocate_initial_value): Likewise.
9147 (sh_output_mi_thunk): Likewise.
9148 * config/microblaze/microblaze.c (microblaze_must_save_register):
9149 Likewise.
9150 (compute_frame_size): Likewise.
9151 (microblaze_initial_elimination_offset): Likewise.
9152 (microblaze_expand_prologue): Likewise.
9153 (microblaze_expand_epilogue): Likewise.
9154 * config/frv/frv.c (frv_expand_epilogue): Likewise.
9155 (frv_frame_pointer_required): Likewise.
9156 * config/spu/spu.c (get_pic_reg): Likewise.
9157 (direct_return): Likewise.
9158 (spu_expand_prologue): Likewise.
9159 (spu_expand_epilogue): Likewise.
9160 (spu_initial_elimination_offset): Likewise.
9161 * config/mips/mips.c (mips_global_pointer): Likewise.
9162 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9163 (mips_compute_frame_info): Likewise.
9164 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
9165 (mep_reload_pointer): Likewise.
9166 * config/rl78/rl78.c (need_to_save): Likewise.
9167 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
9168 * config/score/score.c (score_compute_frame_size): Likewise.
9169 (score_function_prologue): Likewise.
9170 * config/bfin/bfin.c (must_save_p): Likewise.
9171 (expand_prologue_reg_save): Likewise.
9172 (expand_epilogue_reg_restore): Likewise.
9173 (bfin_frame_pointer_required): Likewise.
9174 (n_regs_saved_by_prologue): Likewise.
9175 (add_to_reg): Likewise.
9176 (expand_interrupt_handler_prologue): Likewise.
9177 (expand_interrupt_handler_epilogue): Likewise.
9178 (bfin_expand_prologue): Likewise.
9179 * config/avr/avr.c (avr_regs_to_save): Likewise.
9180 (avr_prologue_setup_frame): Likewise.
9181 (expand_epilogue): Likewise.
9182 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
9183 (s390_register_info): Likewise.
9184 (s390_frame_info): Likewise.
9185 (s390_init_frame_layout): Likewise.
9186 (s390_emit_prologue): Likewise.
9187
9188
774dffd5 91892012-06-24 Steven Bosscher <steven@gcc.gnu.org>
9190
9191 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
9192 * vmsdbgout: Do not undefine it if defined.
9193 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
9194 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
9195 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
9196
d574b954 91972012-06-24 Richard Sandiford <rdsandiford@googlemail.com>
9198
19931eea 9199 * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
d574b954 9200
b1b4d742 92012012-06-23 Richard Henderson <rth@redhat.com>
9202
1f983100 9203 PR target/53749
9204 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
9205 V*QImode shifts and multiply.
9206 (ix86_expand_vecop_qihi): Support shifts.
9207 * config/i386/i386.md (any_shift): New code iterator.
9208 * config/i386/sse.md (ashlv16qi3): Merge ...
9209 (<any_shiftrt>v16qi3): ... into ...
9210 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi
9211 to support SSE and AVX.
9212
3b87d2ec 9213 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
9214 parameter into src and dest.
9215 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
9216 (vec_unpacks_hi_<V124_AVX2>): Likewise.
9217 (vec_unpacku_lo_<V124_AVX2>): Likewise.
9218 (vec_unpacks_lo_<V124_AVX2>): Likewise.
9219 * config/i386/i386-protos.h: Update.
9220
b1b4d742 9221 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
9222 pure expander; move expansion code ...
9223 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function.
9224 * config/i386/i386-protos.h: Update.
9225
aab806a1 92262012-06-22 Edmar Wienskoski <edmar@freescale.com>
9227
9228 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
9229 (popcntb<mode>2): Add attribute type popcnt.
9230 (popcntd<mode>2): Ditto.
9231 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
9232 * config/rs6000/power5.md (define_insn_reservation): Ditto.
9233 * config/rs6000/power7.md (define_insn_reservation): Ditto.
9234 * config/rs6000/476.md (define_insn_reservation): Ditto.
9235 * config/rs6000/power6.md (define_insn_reservation): New
9236 reservation for popcnt instructions.
9237
e7d8781a 92382012-06-22 H.J. Lu <hongjiu.lu@intel.com>
9239
9240 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
9241
e24005a2 92422012-06-22 H.J. Lu <hongjiu.lu@intel.com>
9243
9244 PR target/53383
9245 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
9246
9247 * config/i386/i386.c (ix86_option_override_internal): Allow
9248 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
9249
9250 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
9251 if SSE is disabled.
9252
8ac8f5ae 92532012-06-22 Bill Schmidt <wschmidt@linux.ibm.com>
9254
9255 * double-int.c (double_int_multiple_of): New function.
9256 * double-int.h (double_int_multiple_of): New decl.
9257 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
9258 (mbc_entry_hash): New forward decl.
9259 (mbc_entry_eq): Likewise.
9260 (zero_cost): Change to no_cost.
9261 (mult_costs): New static var.
9262 (cost_tables_exist): Likewise.
9263 (initialize_costs): New function.
9264 (finalize_costs): Likewise.
9265 (tree_ssa_iv_optimize_init): Call initialize_costs.
9266 (add_cost): Change to add_regs_cost; distinguish costs by speed.
9267 (multiply_regs_cost): New function.
9268 (add_const_cost): Likewise.
9269 (extend_or_trunc_reg_cost): Likewise.
9270 (negate_reg_cost): Likewise.
9271 (multiply_by_cost): Change to multiply_by_const_cost; distinguish
9272 costs by speed.
9273 (get_address_cost): Change add_cost to add_regs_cost; change
9274 multiply_by_cost to multiply_by_const_cost.
9275 (force_expr_to_var_cost): Change zero_cost to no_cost; change
9276 add_cost to add_regs_cost; change multiply_by_cost to
9277 multiply_by_const_cost.
9278 (split_cost): Change zero_cost to no_cost.
9279 (ptr_difference_cost): Likewise.
9280 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
9281 to multiply_by_const_cost.
9282 (get_computation_cost_at): Change add_cost to add_regs_cost; change
9283 multiply_by_cost to multiply_by_const_cost.
9284 (determine_use_iv_cost_generic): Change zero_cost to no_cost.
9285 (determine_iv_cost): Change add_cost to add_regs_cost.
9286 (iv_ca_new): Change zero_cost to no_cost.
9287 (tree_ssa_iv_optimize_finalize): Call finalize_costs.
9288 * tree-ssa-address.c (most_expensive_mult_to_index): Change
9289 multiply_by_cost to multiply_by_const_cost.
9290 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
9291 (add_regs_cost): New decl.
9292 (multiply_regs_cost): Likewise.
9293 (add_const_cost): Likewise.
9294 (extend_or_trunc_reg_cost): Likewise.
9295 (negate_reg_cost): Likewise.
9296
479a6d79 92972012-06-22 Richard Guenther <rguenther@suse.de>
9298
9299 Merge from graphite branch
9300 2011-08-10 Sebastian Pop <sebpop@gmail.com>
19931eea 9301
479a6d79 9302 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
9303
9304 2012-01-13 Tobias Grosser <tobias@grosser.es>
9305
9306 * tree-flow.h (parallelized_function_p): Declare.
9307 * tree-parloops.c (parallelized_function_p): Export.
9308 * graphite.c (graphite_transform_loops): Do not run graphite on
9309 already parallel functions.
9310
45565b9d 93112012-06-22 Alan Modra <amodra@gmail.com>
9312
9313 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
9314 return mem. Convert to indirect addressing if not indirect or
9315 indexed. Adjust all callers.
9316
ed5a298a 93172012-06-22 Richard Guenther <rguenther@suse.de>
9318
9319 * gcov-iov.c: Include bconfig.h and system.h.
9320
f4518482 93212012-06-22 Andreas Schwab <schwab@linux-m68k.org>
9322
9323 * doc/include/texinfo.tex: Update to version 2012-06-05.14.
9324
f174c04f 93252012-06-22 Richard Guenther <rguenther@suse.de>
9326
9327 PR gcov-profile/53744
9328 * gcov-iov.c (main): Treat "" and "prerelease" the same.
9329
53c763aa 93302012-06-22 Eric Botcazou <ebotcazou@adacore.com>
9331
9332 PR debug/53704
9333 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
9334 for GNU Fortran if in strict DWARF2 mode.
9335
25db41e9 93362012-06-22 Eric Botcazou <ebotcazou@adacore.com>
9337
9338 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
9339 DECL_IGNORED_P non-reg vars even if they are used.
9340
d806488d 93412012-06-21 Alexandre Oliva <aoliva@redhat.com>
9342
9343 PR debug/53671
9344 PR debug/49888
9345 * var-tracking.c (vt_get_canonicalize_base): New.
9346 (vt_canonicalize_addr, vt_stack_offset_p): New.
9347 (vt_canon_true_dep): New.
9348 (drop_overlapping_mem_locs): Use vt_canon_true_dep.
9349 (clobber_overlaping_mems): Use vt_canonicalize_addr.
9350
e9c7d461 93512012-06-21 Alexandre Oliva <aoliva@redhat.com>
9352
9353 PR debug/53671
9354 PR debug/49888
9355 * var-tracking.c (vt_initialize): Record initial offset between
9356 arg pointer and stack pointer.
9357
b47bca61 93582012-06-21 Alexandre Oliva <aoliva@redhat.com>
9359
9360 PR debug/53671
9361 PR debug/49888
9362 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
9363 CFA base.
9364
f78d5f53 93652012-06-21 Alexandre Oliva <aoliva@redhat.com>
9366
9367 PR debug/53671
9368 PR debug/49888
19931eea 9369 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
f78d5f53 9370
5d3c92c8 93712012-06-21 Alexandre Oliva <aoliva@redhat.com>
9372
9373 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
9374
17ed1ca0 93752012-06-21 Alexandre Oliva <aoliva@redhat.com>
9376
9377 PR debug/53682
9378 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
9379
fd9cb2ca 93802012-06-21 Meador Inge <meadori@codesourcery.com>
9381
9382 PR c/53702
9383 * c-decl.c (c_push_function_context): Restore the behavior to reuse
9384 the language function allocated for -Wunused-local-typedefs.
9385 (c_pop_function_context): If necessary, clear the language function
9386 created in c_push_function_context. Always clear out the
9387 x_cur_stmt_list field of the restored language function.
9388
19931eea 93892012-06-21 Sterling Augustine <saugustine@google.com>
9390 Cary Coutant <ccoutant@google.com>
7a99ccab 9391
9392 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
9393 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
9394 (comdat_type_struct): New field 'skeleton_die'.
9395 (breakout_comdat_types): Update it.
9396 (add_pubname): Rework logic. Call is_class_die, is_cu_die and
9397 is_namespace_die. Fix minor style violation. Call want_pubnames.
9398 (add_pubname_string): Call want_pubnames.
9399 (add_pubtype): Rework logic for calculating type name. Call
9400 is_namespace_die. Call want_pubnames.
9401 (output_pubnames): Move conditional logic deciding when to produce the
9402 section from dwarf2out_finish. Use new skeleton_die field.
9403 (base_type_die): Call add_pubtype.
9404 (gen_enumeration_type_die): Unconditionally call add_pubtype.
9405 (gen_subprogram_die): Adjust calls to add_pubname.
9406 (gen_namespace_die): Call add_pubname_string.
9407 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
9408 produce pubnames and pubtypes sections to output_pubnames.
0be17af6 9409 * common.opt (-gpubnames): New option.
17cb58eb 9410 * doc/invoke.texi: Document it.
7a99ccab 9411
355e7f03 94122012-06-21 Steven Bosscher <steven@gcc.gnu.org>
9413
9414 * config/m32c/m32c-pragma.c: Remove unnecessary includes.
9415
5dd3f78f 94162012-06-21 Michael Matz <matz@suse.de>
9417
9418 PR middle-end/53688
9419 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
9420 with correct size.
9421
0d6939f9 94222012-06-21 Richard Guenther <rguenther@suse.de>
9423
9424 * tree-inline.c (estimate_num_insns): Estimate call cost for
9425 tailcalls properly.
9426
cff9d209 94272012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
9428
9429 * tree.h (DECL_SOURCE_COLUMN): New accessor.
9430
c62ec2b1 94312012-06-20 Uros Bizjak <ubizjak@gmail.com>
9432
9433 * config/i386/i386.md (SINCOS): New int iterator.
9434 (sincos): New int attribute.
9435 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
9436 SINCOS int iterator.
9437 (*<sincos>_extend<mode>xf2_i387): Macroize insn from
9438 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
9439
94402012-06-20 Uros Bizjak <ubizjak@gmail.com>
9441
9442 * config/i386/i386.md (RDFSGSBASE): New int iterator.
9443 (WRFSGSBASE): Ditto.
9444 (fsgs): New int attribute.
9445 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
9446 RDFSGSBASE int iterator.
9447 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
9448 WRFSGSBASE int iterator.
9449
c1444935 94502012-06-20 Uros Bizjak <ubizjak@gmail.com>
9451
9452 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
9453 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
9454 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
9455 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
9456 int iterator.
9457
c6b9d78a 94582012-06-20 Steven Bosscher <steven@gcc.gnu.org>
9459
9460 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
9461
ac4a8000 94622012-06-20 Richard Guenther <rguenther@suse.de>
9463
9464 PR tree-optimization/30318
9465 * tree-vrp.c (range_int_cst_p): Do not reject overflowed
9466 constants here.
9467 (range_int_cst_singleton_p): But explicitely here.
9468 (zero_nonzero_bits_from_vr): And here.
9469 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
9470 to cover all cases we can perform arbitrary precision
9471 arithmetic with double-ints.
9472 (intersect_ranges): Handle adjacent anti-ranges.
9473
4cc5b3bf 94742012-06-20 Uros Bizjak <ubizjak@gmail.com>
9475
9476 * config/i386/i386.md (rounding_insn): New int attribute.
9477 (<rounding_insn>xf2): Macroize insn from
9478 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
9479 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
9480
94812012-06-20 Uros Bizjak <ubizjak@gmail.com>
9482
9483 * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
9484 (ieee_maxmin): New int attribute.
9485 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
c62ec2b1 9486 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
4cc5b3bf 9487
2c07aa0a 94882012-06-20 Steven Bosscher <steven@gcc.gnu.org>
9489
9490 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
9491 * config/arm/arm.c: Do not include c-pragma.h.
9492 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
9493 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
9494 to arm_emit_eabi_attribute.
9495 * arm-c.c: Do not include output.h.
9496 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
9497 call to arm_emit_eabi_attribute.
9498 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
9499
0bbf0fd8 95002012-06-20 Richard Guenther <rguenther@suse.de>
9501
9502 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
9503 Allow adjusting alignment of user-aligned decls again.
9504
e3228285 95052012-06-20 Steven Bosscher <steven@gcc.gnu.org>
9506
9507 * config/rl78/rl78-c.c: Remove unnecessary includes.
9508
97a652ea 95092012-06-20 Steven Bosscher <steven@gcc.gnu.org>
9510
9511 * config/cris/cris.c: Include cgraph.h.
9512 (cris_option_override): Do not set non-existing flag_no_gcc_ident.
9513
30c3c442 95142012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
9515
9516 * emit-rtl.c (need_atomic_barrier_p): New function.
9517 * emit-rtl.h (need_atomic_barrier_p): Declare it.
9518 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
9519 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
9520 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
9521 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
9522 (mips_process_sync_loop): Use generic version instead.
9523
0f8e46b1 95242012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
9525
9526 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
9527 it is used.
9528
974f0a74 95292012-06-19 Tom de Vries <vries@codesourcery.com>
4cc5b3bf 9530 Maxim Kuvyrkov <maxim@codesourcery.com>
974f0a74 9531
9532 * config/mips/constraints.md (ZR): New constraint.
9533 * config/mips/predicates.md (mem_noofs_operand): New predicate.
9534 * config/mips/mips.c (mips_print_operand): Handle new print modifier.
4cc5b3bf 9535 * config/mips/mips.h (TARGET_XLP): Define.
974f0a74 9536 (TARGET_SYNC_AFTER_SC): Update.
9537 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
9538 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
9539 XLP-specific swap and ldadd patterns.
9540 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
9541
39a8c5ea 95422012-06-19 Tom de Vries <vries@codesourcery.com>
9543 Maxim Kuvyrkov <maxim@codesourcery.com>
9544
9545 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
9546 (mips_emit_post_atomic_barrier_p): New static functions.
9547 (mips_process_sync_loop): Use them. Emit sync memory barriers in
9548 accordance with memory model semantics. Add return of CMP result for
9549 compare_and_swap.
9550 * config/mips/mips.md: Update comment.
9551 (sync_cmp): New attribute.
9552 (sync_memmodel): New attribute replacing sync_release_barrier.
9553 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
9554 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
9555 (sync_lock_test_and_set, test_and_set_12): Update.
9556 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
9557 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
9558
ebd75471 95592012-06-19 Joseph Myers <joseph@codesourcery.com>
9560
9561 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
9562 mov_si<mode>_e500_subreg0.
9563 (*mov_si<mode>_e500_subreg0_elf_low)
9564 (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
9565
56317318 95662012-06-19 Richard Henderson <rth@redhat.com>
9567
9568 * config/alpha/alpha.c: Include params.h.
9569 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
9570 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
9571
ff6624bc 95722012-06-19 Steven Bosscher <steven@gcc.gnu.org>
9573
9574 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
9575 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
9576 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
9577 Remove.
9578 * doc/tm.texi: Regenerate.
9579 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
9580 .objc_class_name_*.
9581 * config/darwin-c.c: Include target.h.
9582 (darwin_objc_declare_unresolved_class_reference): New function.
9583 (darwin_objc_declare_class_definition): New function.
9584 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
9585 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
9586
367b1459 95872012-06-19 Steven Bosscher <steven@gcc.gnu.org>
9588
9589 * target.def (output_ident): New hook.
9590 * targhooks.h (default_asm_output_ident_directive): Add prototype.
9591 * varasm.c (assemble_asm): Only prefix a tab if the string does not
9592 already start with one.
9593 (default_asm_output_ident_directive): New function to emit
9594 .ident as a top-level asm node while parsing, or directly to
9595 asm_out_file after parsing.
9596 * toplev.c (compile_file): Print a GCC .ident with
9597 targetm.asm_out.output_ident.
9598 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
9599 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
9600 * doc/tm.texi: Update.
9601
9602 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
9603 (TARGET_ASM_OUTPUT_IDENT): Define.
9604 * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
9605 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
9606 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
9607 * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
9608 (TARGET_ASM_OUTPUT_IDENT): Define.
9609 * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
9610 (TARGET_ASM_OUTPUT_IDENT): Define.
9611
9612 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
9613 * config/cris/cris.c (cris_asm_output_ident): New function.
9614 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
9615
9616 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
9617 Add prototype.
9618 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
9619 (microblaze_asm_output_ident): Rewrite to work similar to
9620 default_asm_output_ident_directive for front-end .idents.
9621 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
9622 (TARGET_ASM_OUTPUT_IDENT): Define.
9623
9624 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
9625 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
9626
9627 * config/rx/rx.c: Include cgraph.h for add_asm_node.
9628 (rx_asm_output_ident): New function, similar to
9629 default_asm_output_ident_directive, but handle AS100 syntax also, so
9630 that #ident also works for rx in AS100 syntax.
9631 (TARGET_ASM_OUTPUT_IDENT): Define.
9632 * config/rx/rx.h (IDENT_ASM_OP): Remove.
9633
9634 * Makefile.in: Fix dependencies for c-family/c-lex.o.
9635
52789361 96362012-06-19 Uros Bizjak <ubizjak@gmail.com>
9637
9638 * config/i386/i386.md (FIST_ROUNDING): New int iterator.
9639 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
9640 (ROUNDING): Ditto.
9641 (*fist<mode>2_<rounding>_1): Macroize insn from
9642 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
9643 (fistdi2_<rounding>): Macroize insn from
9644 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
9645 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
9646 corresponding splitters from fistdi2_{floor,ceil} and corresponding
9647 splitters using FIST_ROUNDING int iterator.
9648 (fist<mode>2_<rounding>): Macroize insn from
9649 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
9650 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
9651 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
9652 splitters using FIST_ROUNDING int iterator.
9653 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
9654 using FIST_ROUNDING int iterator.
9655
087cf0d3 96562012-06-19 Richard Henderson <rth@redhat.com>
9657
9658 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
9659 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
9660 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
9661 * config/i386/sse.md (sse2_mulv4si3): Delete.
9662 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
9663 nonimmediate_or_const_vector_operand.
9664
49db198b 96652012-06-19 Richard Henderson <rth@redhat.com>
9666
9667 * expmed.c (struct init_expmed_rtl): Split ...
9668 (init_expmed_one_mode): ... out of ...
9669 (init_expmed): ... here. Initialize integer vector modes also.
9670 (synth_mult): Handle integer vector modes.
9671 (choose_mult_variant): Likewise.
9672 (expand_mult_const): Likewise.
9673 (expand_mult): Likewise.
9674 * machmode.h (GET_MODE_UNIT_BITSIZE): New.
9675
313507bb 96762012-06-19 Richard Henderson <rth@redhat.com>
9677
9678 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
9679 integral vector modes.
9680
cb741a65 96812012-06-19 Uros Bizjak <ubizjak@gmail.com>
9682
9683 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
9684 (rounding): New int attribute.
9685 (ROUNDING): Ditto.
9686 (frndintxf2_<rounding>): Macroize insn from
9687 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
9688 (frndintxf2_<rounding>_i387): Macroize insn from
9689 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
9690
9c0a48ce 96912012-06-19 Richard Guenther <rguenther@suse.de>
9692
9693 * tree-vrp.c (union_ranges): New function.
9694 (vrp_meet_1): Use union_ranges.
9695 (vrp_meet): Dump what we union and call vrp_meet_1.
9696
96854199 96972012-06-19 Richard Earnshaw <rearnsha@arm.com>
9698
9699 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
9700 (attr type): Remove fmul, ffmul, farith, ffarith, float_em
9701 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
9702 (attr write_conflict, attr core_cycles): Update.
9703 * arm-generic.md (r_mem_f_wbuf): Delete reservation.
9704
a339107e 97052012-06-19 Richard Guenther <rguenther@suse.de>
9706
9707 * tree-vrp.c (intersect_ranges): Handle more cases.
9708 (vrp_intersect_ranges): Dump what we intersect and call ...
9709 (vrp_intersect_ranges_1): ... this.
9710
5f8265c3 97112012-06-19 Richard Guenther <rguenther@suse.de>
9712
9713 PR tree-optimization/53708
9714 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
9715 user-supplied alignment and alignment of decls with the used
9716 attribute.
9717
161121a9 97182012-06-18 Lawrence Crowl <crowl@google.com>
9719
9720 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
9721 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
9722 (TV_PHASE_STREAM_IN): New.
9723 (TV_PHASE_STREAM_OUT): New.
9724 * timevar.c (validate_phases): New.
9725 (timevar_print): Call validate_phases.
9726 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
9727 to TV_PHASE_OPT_GEN.
9728 * langhooks.c (write_global_declarations): Rename use of
9729 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of
9730 TV_PHASE_CHECK_DBGINFO.
9731 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
9732 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to
9733 lang_hooks.decls.final_write_globals.
9734
0f5ba2d7 97352012-06-18 David Edelshn <dje.gcc@gmail.com>
9736
9737 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
9738
538c1aa0 97392012-06-18 Uros Bizjak <ubizjak@gmail.com>
9740
9741 PR target/53712
9742 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
9743 (*sse4_2_pcmpistr_unaligned): New.
9744
b1324f4f 97452012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9746 Sameera Deshpande <sameera.deshpande@arm.com>
9747 Greta Yorsh <greta.yorsh@arm.com>
b1324f4f 9748
6a5af5b5 9749 * config/arm/arm-protos.h (arm_output_epilogue): Remove.
9750 * config/arm/arm.c (print_multi_reg): Remove.
9751 (vfp_output_fldmd): Likewise.
9752 (arm_output_epilogue): Likewise.
9753 * config/arm/arm.md (epilogue_insns): Update condition and code.
b1324f4f 9754
8cba51a5 97552012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9756 Sameera Deshpande <sameera.deshpande@arm.com>
9757 Greta Yorsh <greta.yorsh@arm.com>
8cba51a5 9758
6a5af5b5 9759 * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
9760 * config/arm/arm.c (thumb2_expand_return): New function.
9761 * config/arm/arm.md (return): Update condition and code.
8cba51a5 9762
e2549f81 97632012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9764 Sameera Deshpande <sameera.deshpande@arm.com>
9765 Greta Yorsh <greta.yorsh@arm.com>
e2549f81 9766
6a5af5b5 9767 * config/arm/arm-protos.h (output_return_instruction): New parameter
9768 and int to bool change of parameter types.
9769 * config/arm/arm.c (output_return_instruction): Likewise.
9770 * config/arm/arm.md (arm_simple_return): New pattern.
9771 (arm_return, cond_return, cond_return_inverted): Add new arguments.
9772 * config/arm/thumb2.md (thumb2_return): Update condition and code.
e2549f81 9773
c3635784 97742012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9775 Sameera Deshpande <sameera.deshpande@arm.com>
9776 Greta Yorsh <greta.yorsh@arm.com>
c3635784 9777
6a5af5b5 9778 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
9779 * config/arm/arm.c (arm_expand_epilogue): New function.
9780 * config/arm/arm.md (epilogue): Update condition and code.
9781 (sibcall_epilogue): Likewise.
c3635784 9782
d7757711 97832012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9784 Sameera Deshpande <sameera.deshpande@arm.com>
9785 Greta Yorsh <greta.yorsh@arm.com>
d7757711 9786
6a5af5b5 9787 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
9788 * config/arm/arm.md (arm_addsi3) Add an alternative.
d7757711 9789
1a0b0f12 97902012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9791 Sameera Deshpande <sameera.deshpande@arm.com>
9792 Greta Yorsh <greta.yorsh@arm.com>
1a0b0f12 9793
6a5af5b5 9794 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
9795 * config/arm/predicates.md (pop_multiple_fp) New special predicate.
9796 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
1a0b0f12 9797
426be8c5 97982012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 9799 Sameera Deshpande <sameera.deshpande@arm.com>
9800 Greta Yorsh <greta.yorsh@arm.com>
426be8c5 9801
6a5af5b5 9802 * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
9803 (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
9804 (pop_multiple_with_return, ldr_with_return) Likewise.
9805 * config/arm/predicates.md (pop_multiple_return) New special predicate.
9806 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
9807 * config/arm/arm.c (arm_output_multireg_pop) New function.
9808 (arm_emit_multi_reg_pop): New function.
426be8c5 9809
d0e38b85 98102012-06-18 Greta Yorsh <Greta.Yorsh@arm.com>
9811
9812 * config/arm/arm.c (ldm_stm_operation_p): Require SP
9813 as base register for loads if SP is in the register list.
9814
897c6e08 98152012-06-18 Richard Guenther <rguenther@suse.de>
9816
9817 PR tree-optimization/53693
9818 * tree-vect-patterns.c (vect_operation_fits_smaller_type):
9819 Reject operands with more than one use.
9820
7c74ee50 98212012-06-18 Bill Schmidt <wschmidt@linux.ibm.com>
9822
9823 PR tree-optimization/53703
9824 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
9825 correctly set bb_for_def[12].
9826
6789e11c 98272012-06-18 Steven Bosscher <steven@gcc.gnu.org>
9828
9829 * config/vax/vax.h (VMS_TARGET): Remove.
9830
04dbf3c4 98312012-06-18 Richard Guenther <rguenther@suse.de>
9832
9833 * tree-vrp.c (extract_range_from_assert): Split out range
9834 intersecting code.
9835 (intersect_ranges): New function.
9836 (vrp_intersect_ranges): Likewise.
9837
91f7d5ff 98382012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9839
9840 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
9841 r187965.
9842
65729bd0 98432012-06-18 Tejas Belagod <tejas.belagod@arm.com>
9844
9845 * doc/md.texi: Document int iterators.
9846 * read-rtl.c (ints): New iterator group.
9847 (find_int): Int iterator group callback.
9848 (apply_int_iterator): Likewise.
9849 (apply_iterators): Traverse int iterator table and add all the used
9850 iterators to list.
6a5af5b5 9851 (initialize_iterators): Initialize data structures and callbacks for
9852 int iterators.
65729bd0 9853 (read_rtx): Parse and read mappings for int iterators.
9854 (read_rtx_code): Record int iterator usage.
9855
fe265396 98562012-06-18 Richard Sandiford <rdsandiford@googlemail.com>
9857
9858 PR middle-end/53698
9859 * expr.c (expand_expr_addr_expr_1): Convert to tmode before
9860 performing an addition.
9861
21eb4639 98622012-06-17 Steven Bosscher <steven@gcc.gnu.org>
9863
9864 * output.h (split_double): Move prototype to rtl.h.
9865 (constructor_static_from_elts_p): Move prototype to tree.c.
9866 * rtl.h (split_double): Moved here from output.h.
9867 * tree.h (constructor_static_from_elts_p): Moved here from output.h.
9868 * final.c (split_double): Move from here ...
9869 * rtlanal.c (split_double): ... to here.
9870 * expr.c: Do not include output.h.
9871
1fe976c3 98722012-06-17 Steven Bosscher <steven@gcc.gnu.org>
9873
9874 * cfglayout.h: Remove.
9875 * cfglayout.c: Remove.
9876 * function.h (struct function): Remove x_last_location field.
9877 * function.c: Do not include cfglayout.h.
9878 (expand_function_start): Do not call no-op force_next_line_note.
9879 (expand_function_end): Likewise.
9880 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h.
9881 (unlink_insn_chain): Moved here from cfglayout.c.
9882 (skip_insns_after_block, label_for_bb, record_effective_endpoints,
9883 into_cfg_layout_mode, outof_cfg_layout_mode,
9884 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
9885 relink_block_chain, fixup_reorder_chain, verify_insn_chain,
9886 fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
9887 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
9888 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
9889 cfg_layout_finalize): Likewise.
9890 (rtl_can_remove_branch_p): Likewise.
9891 * rtl.h (insn_scope): Move prototype from cfglayout.h here.
9892 (duplicate_insn_chain): Likewise.
9893 (force_next_line_note): Remove prototype.
9894 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h.
9895 (last_location): Remove #define to emit.x_last_location.
9896 (force_next_line_note): Remove no-op function.
9897 (init_emit): Don't set x_last_location.
9898 (block_locators_locs, block_locators_blocks, locations_locators_locs,
9899 locations_locators_vals, prologue_locator, epilogue_locator,
9900 curr_location, last_location, curr_block, last_block, curr_rtl_loc):
9901 Move POD to here from cfglayout.c.
9902 (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
9903 set_curr_insn_source_location, get_curr_insn_source_location,
9904 set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
9905 locator_scope, insn_scope, locator_location, locator_line, insn_line,
9906 locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
9907 * cfghooks.h: Remove double-include protection.
9908 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
9909 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
9910 * final.c: Do not include cfglayout.h.
9911 (choose_inner_scope, change_scope): Move to here from cfglayout.c.
9912 (reemit_insn_block_notes): Likewise. Make static.
9913 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
9914 operation_could_trap_p, tree_could_throw_p): Move from here...
9915 * tree.h: ... to here.
9916 * gengtype.c (open_base_files): Remove cfglayout.h from the list.
9917 * profile.c: Do not include cfghooks.h.
9918 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
9919 * modulo-sched.c: Likewise.
9920 * loop-unswitch.c: Do not include cfglayout.h.
9921 * sched-ebb.c: Likewise.
9922 * tracer.c: Likewise.
9923 * ddg.c: Likewise.
9924 * tree-vect-loop-manip.c: Likewise.
9925 * loop-init.c: Likewise.
9926 * dwarf2out.c: Likewise.
9927 * hw-doloop.c: Likewise.
9928 * loop-unroll.c: Likewise.
9929 * cfgcleanup.c: Likewise.
9930 * bb-reorder.c: Likewise.
9931 * sched-rgn.c: Likewise.
9932 * tree-cfg.c: Likewise.
9933 * config/alpha/alpha.c: Likewise.
9934 * config/spu/spu.c: Likewise.
9935 * config/sparc/sparc.c: Likewise.
9936 * config/sh/sh.c: Likewise.
9937 * config/c6x/c6x.c: Likewise.
9938 * config/ia64/ia64.c: Likewise.
9939 * config/rs6000/rs6000.c: Likewise.
9940 * config/score/score.c: Likewise.
9941 * config/mips/mips.c: Likewise.
9942 * config/bfin/bfin.c: Likewise.
9943 * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
9944 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
9945 * config/spu/t-spu-elf (spu.o: $): Likewise.
9946 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
9947
aedb7bf8 99482012-06-17 Steven Bosscher <steven@gcc.gnu.org>
9949
9950 * cfgloop.h: Do not include rtl.h.
9951 (enum iv_extend_code): New.
9952 (struct rtx_iv): Use iv_extend_code instead of rtx_code.
9953 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
9954 * loop-iv.c (iv_extend_to_rtx_code): New function to translate
9955 an IV_EXTEND_CODE to an RTX_CODE.
9956 (dump_iv_info): Update for rtx_iv field type change.
9957 (iv_constant): Likewise.
9958 (iv_subreg): Likewise.
9959 (iv_extend): Likewise.
9960 (iv_neg): Likewise.
9961 (iv_add): Likewise.
9962 (iv_mult): Likewise.
9963 (iv_shift): Likewise.
9964 (get_biv_step_1): Likewise.
9965 (get_biv_step): Likewise.
9966 (iv_analyze_biv): Likewise.
9967 (get_iv_value): Likewise.
9968 (shorten_into_mode): Likewise.
9969 (canonicalize_iv_subregs): Likewise.
9970 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
9971 of MAY_HAVE_DEBUG_INSNS.
9972 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
9973 * tree-ssa-loop-prefetch.c: Likewise.
9974
f80de6c2 99752012-06-17 Steven Bosscher <steven@gcc.gnu.org>
9976
9977 * expmed.c (ceil_log2): Move from here...
9978 * hwint.c: ... to here for older GCCs...
9979 * hwint.h: ... and here for newer GCCs.
9980 * rtl.h (ceil_log2): Remove prototype.
9981
9982 * tree-phinodes.c: Do not include rtl.h.
9983 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
9984
6df83406 99852012-06-17 Steven Bosscher <steven@gcc.gnu.org>
9986
9987 * config/cris/cris.h (TARGET_ELF): Remove.
9988 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
9989 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
9990 (LOCAL_LABEL_PREFIX): Likewise.
9991 * config/cris/cris.c (cris_target_asm_named_section): Remove.
9992 (cris_option_override): Simpify using TARGET_ELF==1.
9993 (cris_file_start): Likewise.
9994 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
9995
30f58bc8 99962012-06-17 Uros Bizjak <ubizjak@gmail.com>
9997
9998 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
9999
39e8019f 100002012-06-16 Eric Botcazou <ebotcazou@adacore.com>
10001
10002 PR middle-end/53590
10003 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
10004
30f58bc8 100052012-06-15 Easwaran Raman <eraman@google.com>
ff447f48 10006
10007 * passes.c (init_optimization_passes): Remove pass_call_cdce
10008 from its current position and insert after pass_dce.
10009
6dc33d02 100102012-06-15 Walter Lee <walt@tilera.com>
10011
10012 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
10013
187cc7c7 100142012-06-15 Richard Earnshaw <rearnsha@arm.com>
10015
10016 * arm.c (note_invalid_constants): Don't return a result.
10017 (arm_memory_load_p): Delete function.
10018 (arm_const_double_rtx): Delete iterator variable i;
10019 (fp_immediate_constant): Likewise.
10020 (fp_const_from_val): Likewise.
10021
10022 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
10023
bf0cb017 100242012-06-15 Marc Glisse <marc.glisse@inria.fr>
10025
10026 PR c++/51033
10027 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
cb741a65 10028 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
bf0cb017 10029
d0acfa59 100302012-06-15 Georg-Johann Lay <avr@gjlay.de>
10031
10032 * config/avr/avr.c (avr_default_expand_builtin): New function.
10033 (avr_expand_builtin): Use it.
10034 (avr_expand_unop_builtin): Remove.
10035 (avr_expand_binop_builtin): Remove.
10036 (avr_expand_triop_builtin): Remove.
10037
fc3c948c 100382012-06-15 Michael Matz <matz@suse.de>
10039
10040 PR middle-end/38474
10041 * cfgexpand.c (add_alias_set_conflicts): Remove.
10042 (expand_used_vars): Don't call it.
10043 (aggregate_contains_union_type): Remove.
10044 * function.c (n_temp_slots_in_use): New static data.
10045 (make_slot_available, assign_stack_temp_for_type): Update it.
10046 (init_temp_slots): Zero it.
10047 (remove_unused_temp_slot_addresses): Use it for quicker removal.
10048 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
10049
930802aa 100502012-06-15 Michael Matz <matz@suse.de>
10051
10052 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
10053 argument, don't emit assign statement if value is directly usable.
10054 (gimplify_expr): Adjust.
10055
8f1c7d19 100562012-06-15 Michael Matz <matz@suse.de>
10057
10058 * gimplify.c (gimplify_modify_expr): Fold generated statements.
10059 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
10060
bc8c1f83 100612012-06-15 Richard Guenther <rguenther@suse.de>
10062
10063 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
10064 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case
10065 we assert for in set_value_range to VR_VARYING.
10066
d86c91f6 100672012-06-15 Richard Earnshaw <rearnsha@arm.com>
10068
10069 * arm.md (addsf3, adddf3): Use s_register_operand.
10070 (subsf3, subdf3): Likewise.
10071 (mulsf3, muldf3): Likewise.
10072 (difsf3, divdf3): Likewise.
10073 (movsfcc, movdfcc): Likewise.
10074 * predicates.md (f_register_operand): Delete.
10075 (arm_float_rhs_operand): Delete.
10076 (arm_float_add_operand): Delete.
10077 (arm_float_compare_operand): Use s_register_operand when
10078 there's no VFP.
10079 (cirrus_register_operand): Delete.
10080 (cirrus_fp_register): Delete.
10081 (cirrus_shift_const): Delete.
10082 (cmpdi_operand): Remove Maverick support.
10083 * constraints.md (f, v, H): Delete constraints.
10084 (G): Update documentation.
10085 * arm.c (fp_consts_inited): Convert to bool.
10086 (strings_fp): Delete.
10087 (values_fp): Delete.
10088 (value_fp0): New variable.
10089 (init_fp_table): Simplify logic.
10090 (arm_const_double_rtx): Likewise.
10091 (fp_immediate_constant): Likewise.
10092 (fp_const_from_val): Likewise.
10093 (neg_const_double_rtx_ok_for_fpa): Delete.
10094 * doc/md.texi (ARM constraints): Update documentation.
10095
38682b67 100962012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
10097
10098 PR tree-optimization/53636
10099 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
10100 stride when doing basic-block vectorization.
10101
53d84863 101022012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10103
10104 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
10105 into VEC_PERM_EXPR.
10106
127cb1cd 101072012-06-15 Jakub Jelinek <jakub@redhat.com>
10108
eca8fccf 10109 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
10110 allocate and free bbs array for the SLP case.
10111
127cb1cd 10112 PR tree-optimization/51581
10113 * expr.h (choose_multiplier): New prototype.
10114 * expmed.c (choose_multiplier): No longer static.
10115 Change multiplier_ptr from rtx * to UHWI *.
10116 (expand_divmod): Adjust callers.
30f58bc8 10117 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
127cb1cd 10118 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last
10119 argument to new_stmt_vec_info. Attempt to optimize also divisions
10120 by non-pow2 constants if integer vector division isn't supported.
10121 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
10122 don't look at pattern stmts and sequences.
10123
bc0dfc8d 101242012-06-15 Eric Botcazou <ebotcazou@adacore.com>
10125
10126 PR middle-end/53590
10127 * common.opt (-fdelete-dead-exceptions): New switch.
10128 * doc/invoke.texi (Code Gen Options): Document it.
10129 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
10130 insn_could_throw_p predicate. Do not skip an insn that could throw
10131 if dead exceptions can be deleted.
10132 (insn_live_p): Likewise, do not return true in that case.
10133 * dce.c (can_alter_cfg): New flag.
10134 (deletable_insn_p): Do not return false for an insn that can throw if
10135 the CFG can be altered and dead exceptions can be deleted.
10136 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
10137 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
10138 predicate. Do not preserve an insn that could throw if dead exceptions
10139 can be deleted.
10140 * function.h (struct function): Add can_delete_dead_exceptions flag.
10141 * function.c (allocate_struct_function): Set it.
10142 * lto-streamer-in.c (input_struct_function_base): Stream it.
10143 * lto-streamer-out.c (input_struct_function_base): Likewise.
10144 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
10145 statement that could throw as necessary if dead exceptions can be
10146 deleted.
10147
9abfe9e2 101482012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com>
10149
10150 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
10151
e5952d20 101522012-06-14 Oleg Endo <olegendo@gcc.gnu.org>
10153
10154 PR target/53568
10155 * config/sh/sh.md: Add peephole for swapbsi2.
10156 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
10157
60c519ac 101582012-06-14 Uros Bizjak <ubizjak@gmail.com>
10159
e3b79a3d 10160 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
97c56fb6 10161 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute.
60c519ac 10162
4fb62579 101632012-06-14 Jakub Jelinek <jakub@redhat.com>
10164
10165 PR target/53639
10166 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
10167
b805622c 101682012-06-14 Richard Earnshaw <rearnsha@arm.com>
10169
10170 * arm.c (arm_cirrus_insn_p): Delete.
10171 (cirrus_reorg): Delete.
10172 (arm_reorg): Don't call cirrus_reorg.
10173 (arm_final_prescan_insn_p): Don't check for cirrus insns.
10174 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
10175 (adddi3, subdi3): Remove Maverick support.
10176 (arm_adddi3): Likewise.
10177 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
10178 (addsf3, adddf3): Likewise.
10179 (subsf3, subdf3): Likewise.
10180 (mulsf3, muldf3): Likewise.
10181 (ashldi3, ashrdi3, lshrdi3): Likewise.
10182 (floatsisf2, floatsidf2): Likewise.
10183 (fix_truncsfsi2, fix_truncdfsi2): Likewise.
10184 (arm_movdi, thumb1_movdi_insn): Likewise.
10185 (arm_cmpdi_insn): Likewise.
10186 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
10187 (cirrus.md): Don't include.
10188 * cirrus.md: Delete file.
10189 * t-arm (MD_INCLUDES): Remove cirrus.md.
10190
37bd48b8 101912012-06-14 Eric Botcazou <ebotcazou@adacore.com>
10192
10193 * dwarf2out.c (function_possibly_abstracted_p): New static function.
10194 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
10195 cgraph_function_possibly_inlined_p.
10196 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
10197 (process_scope_var): Do not emit concrete instances of abstracted
10198 nested functions from here.
10199 (gen_decl_die): Emit the abstract instance if the function is possibly
10200 abstracted and not only possibly inlined.
10201 (dwarf2out_finish): Find the first non-abstract parent instance and
10202 attach concrete instances on the limbo list to it.
10203
994606f8 102042012-06-14 Richard Earnshaw <rearnsha@arm.com>
10205
10206 * arm.md (divsf3, divdf3): Remove FPA support.
10207 (negsf2, negdf2): Likewise.
10208 (sqrtsf2, sqrtdf2): Likewise.
10209 (movdfcc): Likewise.
10210 (modsf3, moddf3, movxf): Delete.
10211 (push_fp_multi): Delete.
10212 (fpa.md): Don't include it.
10213 * fpa.md: Delete file.
10214 * t-arm (MD_INCLUDES): Remove fpa.md.
10215
f4ac3f3e 102162012-06-14 Bill Schmidt <wschmidt@linux.ibm.com>
10217
10218 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
10219 (cost_for_stmt): Remove decl.
10220 (vect_get_single_scalar_iteration_cost): Correct typo in name.
10221 * tree-vect-loop.c (vect_get_cost): Remove.
10222 (vect_get_single_scalar_iteration_cost): Correct typo in name; use
10223 vect_get_stmt_cost rather than vect_get_cost.
10224 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
10225 vect_get_cost.
10226 (vect_estimate_min_profitable_iters): Correct typo in call to
10227 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
10228 than vect_get_cost.
10229 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
10230 vect_get_cost.
10231 (vect_model_induction_cost): Likewise.
10232 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
10233 typo in call to vect_get_single_scalar_iteration_cost.
10234 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
10235 (cost_for_stmt): Remove unnecessary function.
10236 * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
10237
d5bd3ab2 102382012-06-14 Richard Earnshaw <rearnsha@arm.com>
10239
10240 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
fc3c948c 10241 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
d5bd3ab2 10242 * arm-tables.opt: Regenerated.
fc3c948c 10243 * doc/invoke.texi: Remove references to deleted options.
d5bd3ab2 10244
320bbcd2 102452012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
10246
60c519ac 10247 * config/h8300/genmova.sh: Modified to add offset bits of
320bbcd2 10248 mova/Sz assembly instruction for memory access.
10249 * config/h8300/h8300.c: Likewise.
10250 * config/h8300/mova.md: Likewise.
10251
901e08a3 102522012-06-12 Christian Bruel <christian.bruel@st.com>
10253
10254 PR target/53621
10255 * config/sh/sh.c (sh_option_override): Don't force
10256 flag_omit_frame_pointer and maccumulate_outgoing_args.
10257 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
10258
748eb1f9 102592012-06-14 Richard Guenther <rguenther@suse.de>
10260
10261 * tree-vrp.c (VR_INITIALIZER): New define.
10262 (ranges_from_anti_range): New function.
10263 (extract_range_from_binary_expr_1): Decompose operations on
10264 VR_ANTI_RANGEs to operations on VR_RANGE.
10265 (extract_range_from_unary_expr_1): Likewise.
10266 (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
10267 extract_range_from_unary_expr_1, extract_range_from_unary_expr,
10268 extract_range_from_cond_expr, adjust_range_with_scev,
10269 vrp_visit_assignment_or_call, vrp_visit_phi_node,
10270 simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
10271
1fa4dd5c 102722012-06-13 Richard Henderson <rth@redhat.com>
10273
10274 * hwint.h (HOST_WIDEST_INT_C): New.
10275 (HOST_WIDE_INT_C): New.
10276 (HOST_WIDE_INT_1): Use it.
10277 * config/alpha/alpha.c (alpha_trampoline_init): Use it.
10278
c573c1b5 102792012-06-13 Alexandre Oliva <aoliva@redhat.com>
10280
10281 PR debug/49888
10282 * var-tracking.c: Include alias.h.
10283 (overlapping_mems): New struct.
10284 (drop_overlapping_mem_locs): New.
10285 (clobber_overlapping_mems): New.
10286 (var_mem_delete_and_set, var_mem_delete): Call it.
10287 (val_bind): Likewise, but only if modified.
10288 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
10289 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
10290
df226854 102912012-06-13 Alexandre Oliva <aoliva@redhat.com>
10292
10293 PR debug/47624
10294 * var-tracking.c (loc_exp_dep_pool): New.
10295 (vt_emit_notes): Create and release the pool.
10296 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
10297 (emit_notes_in_bb): Likewise.
10298 (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
10299 (notify_dependents_of_changed_value): Likewise.
10300 (notify_dependents_of_resolved_value): Check that NOT_ONEPART
10301 variables don't have a VAR_LOC_DEP_LST.
10302 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
10303 VALUEs or MEMs of VALUEs.
10304
5ea3fd4b 103052012-06-13 Alexandre Oliva <aoliva@redhat.com>
10306
10307 PR debug/52983
10308 PR debug/48866
10309 * dce.c (word_dce_process_block): Insert debug temps only if the
10310 insn is not marked.
10311 (dce_process_block): Likewise, and if debug.used is not empty,
10312 and only after iterating over all DEFs that might mark the insn.
10313
4015e18c 103142012-06-13 Alexandre Oliva <aoliva@redhat.com>
10315
10316 * common.opt (ftree-coalesce-inlined-vars): New.
10317 (ftree-coalesce-vars): New.
10318 * doc/invoke.texi: Document them.
10319 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
10320 Implement them.
10321
f5d566ff 103222012-06-13 Richard Sandiford <rdsandiford@googlemail.com>
10323
10324 * read-rtl.c (mapping): Remove index field. Add current_value field.
10325 Define heap vectors.
10326 (iterator_group): Fix long line. Remove num_builtins field and
10327 uses_iterator fields. Make apply_iterator take a void * parameter.
10328 (iterator_use, atttribute_use): New structures.
10329 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
10330 (current_iterators, iterator_uses, attribute_uses): New variables.
10331 (uses_mode_iterator_p, uses_code_iterator_p): Delete.
10332 (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
10333 (map_attr_string, apply_iterator_to_string): Remove iterator
10334 and value parameters. Look through all current iterator values
10335 for a matching attribute.
10336 (mode_attr_index, apply_mode_maps): Delete.
10337 (apply_iterator_to_rtx): Replace with...
10338 (copy_rtx_for_iterators): ...this new function.
10339 (uses_iterator_p, apply_iterator_traverse): Delete.
10340 (apply_attribute_uses, add_current_iterators, apply_iterators): New
10341 functions.
10342 (add_mapping): Remove index field. Set current_value field.
10343 (initialize_iterators): Don't set num_builtins and uses_iterator_p
10344 fields.
10345 (find_iterator): Delete.
10346 (record_iterator_use, record_attribute_use): New functions.
10347 (record_potential_iterator_use): New function.
10348 (check_code_iterator): Remove handling of bellwether codes.
10349 (read_rtx): Remove mode maps. Truncate iterator and attribute uses.
10350 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
10351 parameter. Use the first code iterator value instead of the
60c519ac 10352 bellwether_codes array. Use record_potential_iterator_use for modes.
f5d566ff 10353
81170d79 103542012-06-13 Oleg Endo <olegendo@gcc.gnu.org>
10355
10356 PR target/53568
10357 * config/sh/sh.md (bswapsi2): New expander.
10358 (swapbsi2): New insn.
10359
df8c2b2d 103602012-06-13 H.J. Lu <hongjiu.lu@intel.com>
10361
10362 PR target/53647
10363 * config/i386/i386.c (ix86_tune_cost): New variable.
10364 (ix86_option_override_internal): Set ix86_tune_cost. Use
10365 ix86_tune_cost for simultaneous_prefetches, prefetch_block,
10366 l1_cache_size and l2_cache_size.
10367
72940ce4 103682012-06-13 Richard Guenther <rguenther@suse.de>
10369
10370 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
10371 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement
10372 all possible meetings of VR_RANGE with VR_ANTI_RANGE and
10373 VR_ANTI_RANGE with VR_ANTI_RANGE.
10374
295f5c5c 103752012-06-13 Richard Earnshaw <rearnsha@arm.com>
10376
10377 * config.gcc (unsupported): Move obsoleted FPA-based configurations
10378 here from ...
10379 (obsolete): ... here.
10380 (arm*-*-freebsd*): Remove.
10381 (arm*-*-linux*): Only accept EABI variants. Simplify logic.
10382 (arm*-*-uclinux*): Likewise.
10383 (arm*-*-ecos-elf): Remove.
10384 (arm*-*-rtems*): Remove.
10385 (arm*-*-elf): Remove.
10386 (arm*-wince-pe*): Remove.
10387 (arm, --with-fpu): Remove support for fpa and Maverick variants.
10388 * arm/ecos-elf.h: Delete.
10389 * arm/t-strongarm-elf: Delete.
10390 * arm/rtems-elf.h: Delete.
10391 * arm/wince-pe.h: Delete.
10392 * arm/pe.c: Delete.
10393 * arm/pe.h: Delete.
10394 * arm/t-wince-pe: Delete.
10395
6f0ddab1 103962012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
10397
10398 PR tree-optimization/53647
10399 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
10400 targets with no defined cache line size.
10401
d13adc77 104022012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
10403
10404 * targhooks.c (default_builtin_vectorized_conversion): Handle
10405 vec_construct, using vectype to base cost on subparts.
10406 * target.h (enum vect_cost_for_stmt): Add vec_construct.
10407 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
10408 instead of scalar_to-vec.
10409 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
10410 vec_construct in same way as default for now.
10411 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
10412 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
10413 Handle vec_construct, including special case for 32-bit loads.
10414
6b8f7c28 104152012-06-13 Xinyu Qi <xyqi@marvell.com>
10416
10417 * config/arm/arm.c (FL_IWMMXT2): New define.
10418 (arm_arch_iwmmxt2): New variable.
10419 (arm_option_override): Enable use of iWMMXt with VFP.
10420 Disable use of iWMMXt with NEON. Disable use of iWMMXt under
10421 Thumb mode. Set arm_arch_iwmmxt2.
10422 (arm_expand_binop_builtin): Accept VOIDmode op.
10423 (enum arm_builtins): Revise built-in fcode.
10424 (IWMMXT2_BUILTIN): New define.
10425 (IWMMXT2_BUILTIN2): Likewise.
10426 (iwmmx2_mbuiltin): Likewise.
10427 (builtin_description bdesc_2arg): Revise built in declaration.
10428 (builtin_description bdesc_1arg): Likewise.
10429 (arm_init_iwmmxt_builtins): Revise built in initialization.
10430 (arm_expand_builtin): Revise built in expansion.
10431 (arm_output_iwmmxt_shift_immediate): New function.
10432 (arm_output_iwmmxt_tinsr): Likewise.
10433 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
10434 (arm_output_iwmmxt_tinsr): Likewise.
10435 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
10436 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
10437 (rorv4hi3, rorv2si3, rordi3): Likewise.
10438 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
10439 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
10440 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
10441 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
10442 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
10443 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
10444 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
10445 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
10446 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
10447 (ror<mode>3, ror<mode>3_di): Likewise.
10448 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
10449 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
10450 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
10451 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
10452 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
10453 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
10454 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
10455 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
10456 (All instruction patterns): Add wtype attribute.
10457 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
10458 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
10459 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
10460 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
10461 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
10462 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
10463 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
10464 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
10465 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
10466 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
10467 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
10468 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
10469 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
10470 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
10471 (iwmmxt2.md): Include.
10472 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
10473 (TARGET_IWMMXT2): New define.
10474 (TARGET_REALLY_IWMMXT2): Likewise.
10475 (arm_arch_iwmmxt2): Declare.
10476 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
10477 Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
10478 Use C name-mangling for intrinsics.
10479 (__v8qi): Redefine.
10480 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
10481 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
10482 (_m_from_int): Likewise.
10483 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
10484 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
10485 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
10486 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
10487 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
10488 (_mm_tbcst_pi32): Likewise.
10489 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
10490 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
10491 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
10492 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
10493 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
10494 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
10495 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
10496 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
10497 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
10498 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
10499 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
10500 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
10501 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
10502 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
10503 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
10504 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
10505 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
10506 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
10507 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
10508 (_m_to_int): New define.
10509 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
10510 * config/arm/arm-arches.def (iwmmxt2): Likewise.
10511 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
10512 iwmmxt2.md.
10513 * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
10514 (arch): Add "iwmmxt2".
10515 (arch_enabled): Handle "iwmmxt2".
10516 (wtype): New attribute.
10517 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
10518 (UNSPEC_WALIGNI): New unspec.
10519 * config/arm/predicates.md (imm_or_reg_operand): New predicate.
10520 * config/arm/iterators.md (VMMX2): New mode_iterator.
10521 * config/arm/marvell-f-iwmmxt.md: New file.
10522 * config/arm/iwmmxt2.md: New file.
10523
4269c49c 105242012-06-12 Jakub Jelinek <jakub@redhat.com>
10525
10526 PR c/53532
10527 PR c/51034
10528 PR c/53196
10529 * c-decl.c (build_compound_literal): Call c_incomplete_type_error
10530 if type isn't complete.
10531
5a909fae 105322012-06-12 Uros Bizjak <ubizjak@gmail.com>
10533
10534 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
10535
84dabd71 105362012-06-12 Richard Henderson <rth@redhat.com>
10537
10538 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
10539 iterator instead of INT.
5a909fae 10540
239e9670 105412012-06-12 Bill Schmidt <wschmidt@linux.ibm.com>
10542
10543 * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
10544 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
10545 declaration.
10546 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
10547 (tree_ssa_phiopt): Call gate_hoist_loads.
10548 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
10549 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
10550 hoist_adjacent_loads.
10551 (local_mem_dependence): New function.
10552 (hoist_adjacent_loads): Likewise.
10553 (gate_hoist_loads): Likewise.
10554 * common.opt (fhoist-adjacent-loads): New switch.
10555 * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
10556
658f1736 105572012-06-12 Michael Matz <matz@suse.de>
10558
10559 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
10560 (nonoverlapping_memrefs_p): Don't call it here ...
10561 (true_dependence_1): ... but here.
10562
cbc80ce5 105632012-06-12 Richard Guenther <rguenther@suse.de>
10564
10565 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
10566 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
10567 and MEM_SIZE only refines it. Reflect that and be less conservative
10568 if either of the latter is not known.
10569
92f67f6e 105702012-06-12 Jakub Jelinek <jakub@redhat.com>
10571
10572 PR rtl-optimization/53589
10573 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
10574 discovery even when e->dest != target. If any LABEL_REF points
10575 to e->dest label, redirect it to target's label.
10576
c8ad18ed 105772012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
10578
10579 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
10580 condition for generating REG_FRAME_RELATED_EXPR note.
10581 (pop): Add code for generating REG_CFA_RESTORE,
10582 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
10583 (sh_expand_epilogue): Use frame_insn() for FP to SP move.
10584 Set 'frame_p' of calls to output_stack_adjust() to 'true'.
10585
3ea24468 105862012-06-11 Richard Henderson <rth@redhat.com>
10587
ac0eec87 10588 * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
10589 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
10590
3ea24468 10591 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
10592
7bc65ea7 105932012-06-12 Hans-Peter Nilsson <hp@axis.com>
10594
10595 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
10596 Mention that this hook needs to be defined for native TLS.
10597 * doc/tm.texi: Regenerate.
10598
8c20007a 105992012-06-11 Mike Stump <mikestump@comcast.net>
10600
10601 * emit-rtl.c (init_emit_once): Iterate through the
10602 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
10603 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
10604 all the MIN_MODE_PARTIAL_INT modes anymore.
10605
cf9b5bbc 106062012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com>
10607
10608 * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
10609
117f8975 106102012-06-11 Roland McGrath <mcgrathr@google.com>
10611
10612 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
10613 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
10614 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
10615 operand.
10616
658a6fb7 106172012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
10618
10619 PR target/53511
10620 * config/sh/sh.md (fmasf4): New expander.
10621 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern.
10622 (mac_media): Rename to fmasf4_media. Adapt to fma pattern.
10623 * config/sh/sh.opt (mfused-madd): Remove.
10624 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
10625 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
10626 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
10627 as extra options.
10628 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
10629 descriptions.
10630
dfed30bc 106312012-06-11 Richard Henderson <rth@redhat.com>
10632
10633 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
10634
8f6a4a62 106352012-06-11 Richard Guenther <rguenther@suse.de>
10636
10637 PR middle-end/53470
10638 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
10639 replace it with the first non-BLOCK context.
10640
557f718e 106412012-06-11 Richard Guenther <rguenther@suse.de>
10642
10643 * alias.c (aliases_everything_p): Remove.
10644 (DIFFERENT_ALIAS_SETS_P): Likewise.
10645 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
10646 Do not use aliases_everything_p or special-case ANDs. Do not
10647 special-case BLKmode moves.
10648 (may_alias_p): Likewise. Handle BLKmode similar like everywhere
5a909fae 10649 - for SCATCH only.
557f718e 10650
32354eaf 106512012-06-09 Hans-Peter Nilsson <hp@axis.com>
10652
10653 Fix CRIS build errors with --enable-build-with-cxx.
10654 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
10655 variable "and" to "andop".
10656 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
10657 temporary variable for memory model, passing C++-type-correct
10658 parameter type to expand_mem_thread_fence.
10659 ("atomic_compare_and_swap<mode>"): Ditto.
10660
76cdbc6d 106612012-06-09 Richard Henderson <rth@redhat.com>
10662
10663 PR c++/53602
10664 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
10665 (pass_jump): Rename from pass_jump2.
10666 (execute_jump2, pass_jump2): New.
10667 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
10668 perform cfg cleanup here. Move the test of PUSH_ROUNDING
10669 and ACCUMULATE_OUTGOING_ARGS test...
10670 (gate_handle_stack_adjustments): ... here.
10671 * passes.c (init_optimization_passes): Update for pass_jump2 rename.
10672 Place new pass_jump2 after pass_stack_adjustments.
10673 * tree-pass.h (pass_jump): Declare.
10674
86018455 106752012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
10676
10677 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
10678 count trucation.
10679
f62cadce 106802012-06-08 Richard Henderson <rth@redhat.com>
10681
ca8a2f4e 10682 PR c++/53602
10683 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
10684 note to a clobber insn when no other insn is available.
f62cadce 10685
6d8ed506 106862012-06-08 Georg-Johann Lay <avr@gjlay.de>
10687
10688 * config/avr/avr.c (avr_case_values_threshold): Return 7.
10689
7bfdbc17 106902012-06-07 Andreas Schwab <schwab@linux-m68k.org>
10691
10692 * genhooks.c (main): Set progname.
10693 (emit_documentation): Remove variable found_start, always bail out
10694 when a place is missing.
ca8a2f4e 10695 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
7bfdbc17 10696
ab129075 106972012-06-07 Jakub Jelinek <jakub@redhat.com>
10698
10699 PR middle-end/53580
ca8a2f4e 10700 * omp-low.c (scan_omp): Change first argument to gimple_seq *,
10701 call walk_gimple_seq_mod instead of walk_gimple_seq.
ab129075 10702 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
10703 scan_omp_for, scan_omp_sections, scan_omp_single,
10704 execute_lower_omp): Adjust callers.
10705 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
10706 returns false, replace stmt with GIMPLE_NOP.
10707 (check_omp_nesting_restrictions): Instead of issuing warnings,
10708 issue errors and return false if any errors were reported.
10709
b37a3600 107102012-06-06 Steven Bosscher <steven@gcc.gnu.org>
10711
10712 * doc/invoke.texi (fconserve-space): Remove documentation.
10713
98da658b 107142012-06-06 Edmar Wienskoski <edmar@freescale.com>
10715
10716 * config/rs6000/rs6000-tables.opt: Regenerated.
10717
f689d33d 107182012-06-06 Richard Guenther <rguenther@suse.de>
10719
10720 PR tree-optimization/53081
10721 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
10722 (adjacent_dr_p): ... this and make it work for reads, too.
10723 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
10724 (struct partition_s): Change main_stmt to main_dr, add
10725 secondary_dr member.
10726 (build_size_arg_loc): Change to date data-reference and not
10727 gimplify here.
10728 (build_addr_arg_loc): New function split out from ...
10729 (generate_memset_builtin): ... here. Use it and simplify.
10730 (generate_memcpy_builtin): New function.
10731 (generate_code_for_partition): Adjust.
ca8a2f4e 10732 (classify_partition): Streamline pattern detection. Detect memcpy.
f689d33d 10733 (ldist_gen): Adjust.
10734 (tree_loop_distribution): Adjust seed statements for memcpy
10735 recognition.
10736
966d4175 107372012-06-06 Matt Turner <mattst88@gmail.com>
10738
10739 * config/arm/mmintrin.h (_mm_empty): New.
ca8a2f4e 10740 (_m_empty): New.
966d4175 10741
d86dbf92 107422012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
10743
10744 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
10745 * common.opt (fsched-pressure-algorithm=): Remove.
10746 * flag-types.h (sched_pressure_algorithm): Move to...
10747 * sched-int.h (sched_pressure_algorithm): ...here.
10748 * params.def (sched-pressure-algorithm): New param.
10749 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
10750 * common/config/s390/s390-common.c (s390_option_optimization_table):
10751 Remove OPT_fsched_pressure_algorithm_ entry.
10752 * config/s390/s390.c (s390_option_override): Set a default value for
10753 PARAM_SCHED_PRESSURE_ALGORITHM.
10754
aca8cc63 107552012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
10756
10757 PR target/53487
10758 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
10759 doing an unsigned compare, make sure the second argument is not a
10760 negative constant.
10761 (rs6000_emit_cmove): Don't allow floating point comparisons when
10762 generating ISEL moves.
10763
e7ae865c 107642012-06-05 Edmar Wienskoski <edmar@freescale.com>
b770074c 10765
10766 * config/rs6000/e5500.md: New file.
10767 * config/rs6000/e6500.md: New file.
10768 * config/rs6000/rs6000.c (processor_costs): Add new costs for
10769 e5500 and e6500.
10770 (rs6000_option_override_internal): Altivec and Spe options not
10771 allowed with e5500. Spe options not allowed with e6500. Increase
10772 move inline limit for e5500 and e6500. Disable string instructions
10773 for e5500 and e6500. Enable branch targets alignment for e5500 and
10774 e6500. Initialize rs6000_cost for e5500 and e6500.
10775 (rs6000_adjust_cost): Add extra scheduling cycles between compare
10776 and brnach for e5500 and e6500.
10777 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
10778 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
10779 e6500.
10780 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
10781 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
10782 ppce6500.
10783 Include e5500.md and e6500.md.
10784 * config/rs6000/rs6000-opt.h (processor_type): Add
10785 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
10786 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
10787 (powerpc*-*-*): Add new cores e5500, e6500.
10788 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
10789
156b8feb 107902012-06-05 Richard Guenther <rguenther@suse.de>
10791
ca8a2f4e 10792 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
156b8feb 10793
d26d40c8 107942012-06-05 H.J. Lu <hongjiu.lu@intel.com>
10795
10796 PR target/53575
10797 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
10798 is used for x86_64-*-*.
10799
ec84182d 108002012-06-05 Richard Guenther <rguenther@suse.de>
10801
10802 PR tree-optimization/30442
10803 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
10804 vectorization stop analysis at the first stmt we cannot compute
10805 a data-reference for instead of giving up completely.
10806
e5edce84 108072012-06-05 Richard Guenther <rguenther@suse.de>
10808
ca8a2f4e 10809 * tree-loop-distribution.c (struct partition_s): Add has_writes member.
e5edce84 10810 (partition_alloc): Initialize it.
10811 (partition_has_writes): New function.
10812 (rdg_flag_uses): Adjust.
10813 (rdg_flag_vertex): Likewise.
10814 (rdg_flag_vertex_and_dependent): Likewise.
10815 (rdg_flag_loop_exits): Likewise.
10816 (build_rdg_partition_for_component): Likewise.
10817 (rdg_build_partitions): Likewise.
10818
0644fcba 108192012-06-05 Richard Guenther <rguenther@suse.de>
10820
10821 PR tree-optimization/53081
10822 * tree-loop-distribution.c (generate_memset_builtin): Handle all
10823 kinds of byte-sized stores.
10824 (classify_partition): Likewise.
10825 (tree_loop_distribution): Adjust seed statements used for
10826 !flag_tree_loop_distribution.
10827
6862f949 108282012-06-05 Alan Modra <amodra@gmail.com>
10829
10830 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
10831 (rs6000_emit_prologue): Ensure register used for inline saves
10832 of vector regs is not the static chain register. Revise comment.
10833
2b1e078e 108342012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
10835
10836 * doc/md.texi (Standard Pattern Names For Generation): Document
10837 sincos pattern.
10838
874bb5cb 108392012-06-04 H.J. Lu <hongjiu.lu@intel.com>
10840
10841 PR bootstrap/53555
10842 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
10843
bf3a97cf 108442012-06-04 Jason Merrill <jason@redhat.com>
10845
10846 * dwarf2out.c (is_unit_die): New.
10847 (copy_declaration_context, copy_ancestor_tree): Use it.
10848 (copy_decls_walk): Likewise.
10849
2a99a57e 108502012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
10851
10852 PR c++/53524
10853 * doc/invoke.texi (Wenum-compare): Update documentation.
10854
0aa42a53 108552012-06-04 Dodji Seketeli <dodji@redhat.com>
10856
10857 PR preprocessor/53463
10858 * parser.c (cp_parser_assignment_expression): Use the location
10859 for the '=' as the default location for the expression.
10860
670e461f 108612012-06-04 Edmar Wienskoski <edmar@freescale.com>
10862
10863 PR target/53559
10864 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
10865 operands.
10866 (altivec_stvlxl): Ditto.
10867 (altivec_stvrx): Ditto.
10868 (altivec_stvrxl): Ditto.
10869
b48acad0 108702012-06-04 Vladimir Makarov <vmakarov@redhat.com>
10871
ca8a2f4e 10872 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
b48acad0 10873 (ira_uniform_class_p): New macro.
10874
10875 * ira.c (setup_uniform_class_p): New function.
10876 (setup_allocno_and_important_classes): Call the function.
10877 (print_unform_and_important_classes): New function.
10878 (print_classes): Rename to print_translated_classes.
10879 (ira_debug_allocno_classes): Add call of
10880 print_unform_and_important_classes.
10881
10882 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
10883 classes instead of pressure classes.
10884
b953589d 108852012-06-04 Aldy Hernandez <aldyh@redhat.com>
10886
10887 PR middle-end/47530
10888 * trans-mem.c (expand_block_edges): Do not skip the first
10889 statement when resetting the BB.
10890
6198d968 108912012-06-04 Richard Guenther <rguenther@suse.de>
10892
10893 * tree-data-ref.c (stores_from_loop): Remove.
10894 (stmt_with_adjacent_zero_store_dr_p): Likewise.
10895 (stores_zero_from_loop): Likewise.
10896 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
10897 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
10898 (adjacent_store_dr_p): New function.
10899 * tree-loop-distribution.c (generate_memset_builtin): Pass
10900 the RDG, use the already available data-reference.
10901 (generate_code_for_partition): Pass down RDG.
10902 (classify_partition): Inline parts of the former
10903 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
10904 (ldist_gen): Remember if there was any detected builtin and
10905 do less work if not and flag_tree_loop_distribution is not set.
10906 (tree_loop_distribution): Inline and fuse stores_from_loop
10907 and stores_zero_from_loop here.
10908
c909c89a 109092012-06-04 Richard Guenther <rguenther@suse.de>
10910
10911 PR middle-end/53471
10912 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
10913 create new assembler names.
10914
f83623cc 109152012-06-04 Richard Guenther <rguenther@suse.de>
10916
10917 * tree-data-ref.c (struct rdg_vertex_info): Remove.
10918 (rdg_vertex_for_stmt): Simplify using gimple_uid.
10919 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
19931eea 10920 hashtable. Record stmt data-references.
f83623cc 10921 (hash_stmt_vertex_info): Remove.
10922 (eq_stmt_vertex_info): Likewise.
10923 (hash_stmt_vertex_del): Likewise.
10924 (build_empty_rdg): Simplify.
10925 (build_rdg): Adjust.
10926 (free_rdg): Likewise.
10927 (ref_base_address): Remove.
10928 (have_similar_memory_accesses): Likewise.
10929 * tree-data-ref.h (create_rdg_vertices): Remove.
10930 (struct rdg_vertex): Add datarefs member.
10931 (RDGV_DATAREFS): New define.
10932 (RDG_DATAREFS): Likewise.
10933 (have_similar_memory_accesses): Remove.
10934 (rdg_has_similar_memory_accesses): Likewise.
10935 * tree-loop-distribution.c (ref_base_address): Re-implement here.
10936 (similar_memory_accesses): Re-implement using existing data-references.
10937 (tree_loop_distribution): Initialize stmt uids for the stmt to
10938 RDG index mapping.
10939 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
10940 access stmt vinfo for stmts in loop.
10941
bcab8a3c 109422012-06-04 Andreas Schwab <schwab@linux-m68k.org>
10943
10944 PR target/53461
10945 * config/m68k/m68k.md ("tablejump"): Fix check for
10946 CASE_VECTOR_PC_RELATIVE.
10947
dff12c10 109482012-06-04 Steven Bosscher <steven@gcc.gnu.org>
10949
10950 * output.h (merge_weak, assemble_alias,
10951 initializer_constant_valid_p,
10952 initializer_constant_valid_for_bitfield_p): Move protos from here...
10953 * tree.h: ... to here.
10954 * cgraphclones.c: Do not include output.h.
10955 * gimplify.c: Likewise.
10956 * reload.c: Likewise.
10957 * recog.c: Likewise.
10958 * tree-ssa-loop-ivopts.c: Likewise.
10959 * tree-switch-conversion.c: Likewise.
10960 * c-parser.c: Likewise.
10961 * c-typeck.c: Likewise.
10962 * Makefile.in: Fix dependencies.
10963
6e5a5492 109642012-06-04 Georg-Johann Lay <avr@gjlay.de>
10965
10966 PR target/46261
10967 * config/avr/avr-stdint.h: New file.
10968 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
10969 newlib-stdint.h
10970
a50fd9b7 109712012-06-04 Jakub Jelinek <jakub@redhat.com>
10972
10973 PR tree-optimization/53550
10974 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
10975 is POINTER_TYPE_P, use sizetype as step type instead of type.
10976
54459dd6 109772012-06-04 Richard Guenther <rguenther@suse.de>
10978
10979 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
10980 (ref_base_address_1): Likewise.
10981 (remove_similar_memory_refs): Likewise.
10982 * tree-data-ref.h (remove_similar_memory_refs): Remove.
10983 * tree-loop-distribution.c (classify_partition): Do not classify
10984 as builtin if -ftree-loop-distribute-patterns is not enabled.
10985 (fuse_partitions_with_similar_memory_accesses): Inline ...
10986 (ldist_gen): ... here. Fuse all non-builtin partitions if
10987 -ftree-loop-distribution is not enabled. Properly return
ca8a2f4e 10988 the number of created partitions. Do not update SSA form here but ...
54459dd6 10989 (tree_loop_distribution): ... once here for the whole function.
10990 Only walk innermost loops, constrain loops we consider here
10991 further. Do not call remove_similar_memory_refs.
10992 (distribute_loop): Do not check number of loop nodes here.
10993
05c9fb04 109942012-06-04 Steven Bosscher <steven@gcc.gnu.org>
10995
10996 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
10997
4fa83f96 109982012-06-03 Martin Jambor <mjambor@suse.cz>
10999
11000 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
11001 (ipa_get_jf_known_type_base_type): Likewise.
11002 (ipa_get_jf_known_type_component_type): Likewise.
11003 (ipa_get_jf_constant): Likewise.
11004 (ipa_get_jf_pass_through_formal_id): Likewise.
11005 (ipa_get_jf_pass_through_operation): Likewise.
11006 (ipa_get_jf_ancestor_offset): Likewise.
11007 (ipa_get_jf_ancestor_type): Likewise.
11008 (ipa_get_jf_ancestor_formal_id): Likewise.
11009 (ipa_get_jf_member_ptr_pfn): Likewise.
11010 * ipa-prop.c (ipa_set_jf_known_type): New function.
11011 (ipa_set_jf_constant): Likewise.
11012 (ipa_set_jf_simple_pass_through): Likewise.
11013 (ipa_set_jf_arith_pass_through): Likewise.
11014 (ipa_set_ancestor_jf): Likewise.
11015 (fill_member_ptr_cst_jump_function): Moved up and renamed to
11016 ipa_set_jf_member_ptr_cst.
11017 (detect_type_change_1): Use the new jump function creation functions.
11018 (compute_complex_assign_jump_func): Likewise.
11019 (compute_complex_ancestor_jump_func): Likewise.
11020 (compute_known_type_jump_func): Likewise.
11021 (compute_scalar_jump_functions): Likewise.
11022 (compute_pass_through_member_ptrs): Likewise.
11023 (determine_cst_member_ptr): Likewise.
11024 (combine_known_type_and_ancestor_jfs): Likewise.
11025 (try_make_edge_direct_simple_call): Likewise.
11026 (try_make_edge_direct_virtual_call): Likewise.
11027 (update_indirect_edges_after_inlining): Likewise.
11028 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
11029 access functions. Incorporat NOP_EXPR and BINFO handling from its
11030 callers.
11031 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
11032 which was in its callers.
11033 (ipa_value_from_jfunc): Use jump function access functions. Some
11034 functionality moved to functions above.
11035 (propagate_vals_accross_ancestor): Likewise.
11036 (propagate_vals_accross_pass_through): Use jump function access
11037 functions.
11038 (propagate_accross_jump_function): Likewise.
11039 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
11040 access functions.
11041 (inline_merge_summary): Likewise.
11042
4f12c67a 110432012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11044
11045 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
11046 * config/pa/pa.c (pa_attr_length_millicode_call): Use
11047 MAX_PCREL17F_OFFSET instead of fixed offset.
11048 (pa_attr_length_call): Likewise.
11049 (pa_attr_length_indirect_call): Likewise.
11050
2b15a89a 110512012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
11052
11053 PR target/53512
6c1286fc 11054 * config/sh/sh.opt (mfsca, mfsrra): New options.
11055 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
11056 condition.
2b15a89a 11057 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
11058 (sinssf2, cossf2): Fold expanders to ...
11059 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
11060 TARGET_FSCA condition.
6c1286fc 11061 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
11062 TARGET_FSCA.
2b15a89a 11063 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
11064 -mno-fsca, -mfsrra, -mno-fsrra.
11065
c90c9973 110662012-06-03 Matt Turner <mattst88@gmail.com>
11067
11068 * config/mips/4600.md (r4700_imul_si): New.
11069 (r4700_imul_di): New.
11070 (r4700_fmul_single): New.
11071 (r4700_fmul_double): New.
11072 * config/mips/mips-cpus.def: Add r4700.
11073 * config/mips/mips.c: Likewise.
11074 * config/mips/mips.md: Likewise.
11075 * config/mips/mips-tables.opt: Regenerate.
11076
1ecd9aaf 110772012-06-02 Steven Bosscher <steven@gcc.gnu.org>
11078
11079 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
11080 new function sparc_initial_elimination_offset.
11081 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
11082 function.
11083 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
11084 Prototype it.
11085
2b15a89a 110862012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
24cd46a7 11087
ca8a2f4e 11088 * expmed.c (expand_mult, choose_multiplier): Change
11089 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
24cd46a7 11090 * expr.c (convert_modes): Likewise.
11091 * explow.c (plus_constant): Likewise.
11092 * fixed-value.c (fixed_saturate1, fixed_saturate2)
11093 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
11094 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
11095 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
11096 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
11097 (do_fixed_shift, fixed_convert, fixed_convert)
11098 (fixed_convert_from_int, fixed_convert_from_int)
11099 (fixed_convert_from_real): Likewise.
11100 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
11101 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
11102 * varasm.c (output_constructor_bitfield): Likewise.
11103 * tree-vrp.c (register_edge_assert_for_2): Likewise.
11104 * double-int.c (rshift_double, lshift_double): Likewise.
6c1286fc 11105 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
11106 Likewise.
24cd46a7 11107 * simplify-rtx.c (mode_signbit_p)
11108 (simplify_const_unary_operation, simplify_binary_operation_1)
11109 (simplify_immed_subreg): Likewise.
11110 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
11111 * tree-vect-generic.c (build_replicated_const): Likewise.
11112 * dbxout.c (stabstr_O): Likewise.
11113 * emit-rtl.c (immed_double_int_const, immed_double_const)
11114 (gen_lowpart_common, init_emit_once): Likewise.
11115 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
11116 (widest_int_cst_value, upper_bound_in_type): Likewise.
11117 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
11118 (fixup_unsigned_type): Likewise.
11119 * real.c (real_to_integer2, real_from_integer): Likewise.
11120 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
11121 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
11122
67227558 111232012-06-01 Eric Botcazou <ebotcazou@adacore.com>
11124
11125 PR middle-end/53501
11126 * fold-const.c (fold_binary_loc): Refine previous change.
11127
988d0588 111282012-06-01 Olivier Hainque <hainque@adacore.com>
11129
11130 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
11131 the "do {" part of the do-while(0) loop.
11132
7d5d66f0 111332012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
11134
11135 * config/i386/i386.c (x86_sched_reorder): New function.
11136 Added new function x86_sched_reorder.
11137
35ec0372 111382012-06-01 Richard Guenther <rguenther@suse.de>
11139
11140 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
11141 Handle PHIs.
11142 (classify_partition): Likewise.
11143
d32bc1d7 111442012-06-01 Richard Guenther <rguenther@suse.de>
11145
11146 * tree-loop-distribution.c (enum partition_kind): New enum.
11147 (struct partition_s): Add kind and main_stmt members.
11148 (partition_alloc): Initialize kind to PKIND_NORMAL.
11149 (partition_builtin_p): New function.
11150 (copy_loop_before): Remove failure path and assert instead.
11151 (generate_loops_for_partition): Likewise.
11152 (generate_memset_zero): Fold into ...
11153 (generate_memset_builtin): ... this.
11154 (classify_partition): New function with code from
11155 can_generate_builtin and generate_builtin.
11156 (generate_builtin): Remove.
11157 (can_generate_builtin): Likewise.
11158 (fuse_partitions_with_similar_memory_accesses): Call
11159 partition_builtin_p instead of can_generate_builtin.
11160 (rdg_build_partitions): Do not call
11161 fuse_partitions_with_similar_memory_accesses here...
11162 (ldist_gen): ... but here after classifying all partitions.
11163 Remove failure path of generate_code_for_partition.
11164 (generate_code_for_partition): Generate code according
11165 to partition classification.
11166
01fdca2b 111672012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
ca8a2f4e 11168 Jonathan Wakely <jwakely.gcc@gmail.com>
01fdca2b 11169
11170 PR c++/50134
11171 * doc/invoke.texi (Warning Options): Explain purpose and differences
11172 between -Wmissing-prototypes and -Wmissing-declarations.
11173
556cfe53 111742012-06-01 Christian Bruel <christian.bruel@st.com>
11175
11176 * gcc.c (save_switch): Add user_p parameter.
11177 (read_specs): Likewise.
11178 (set_specs): Likewise.
11179 (validate_switches): Likewise.
11180 (validate_switches_from_spec): Likewise.
11181 (validate_all_switches): Pass on user_p parameter.
11182 (struct spec_list): Add user_p field.
11183 (struct switchstr): Add known field.
11184 (save_switch): Add known parameter.
11185 (INIT_STATIC_SPEC): Initialize user_p;
11186 (driver_unknown_option_callbac): call save_switch if
11187 OPT_SPECIAL_unknown.
11188 (driver_handle_option): Propagate OPT_specs.
11189 (do_spec_1): Set validated only if known.
11190 (check_live_switch): Likewise.
11191 (validate_switches): Set validated if known or user_spec.
11192
2ef7687b 111932012-06-01 Hans-Peter Nilsson <hp@axis.com>
11194
11195 Add CRIS atomic patterns for 1, 2, and 4 bytes.
11196 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
11197 * config/cris/cris-protos.h: Declare it.
5a909fae 11198 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
2ef7687b 11199 (TARGET_DEFAULT): Add alignment by 32.
11200 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
11201 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
5a909fae 11202 TARGET_CPU_DEFAULT == 32.
2ef7687b 11203 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
11204 * config/cris/cris.md: Include sync.md. Avoid allocating specific
11205 numbers by replacing the define_constants for all UNSPECs with the
11206 equivalent define_c_enum construct.
11207 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
11208 * config/cris/sync.md: New file.
11209
3918c286 112102012-05-31 Matt Turner <mattst88@gmail.com>
11211
11212 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
11213 (r4600_imul_di): New.
11214 (r4600_idiv_si): Rename from r4600_idiv.
11215 (r4600_idiv_di): New.
11216
b5369b7d 112172012-05-31 Steven Bosscher <steven@gcc.gnu.org>
11218
11219 * output.h (__gcc_host_wide_int__): Move to hwint.h.
11220 (decl_default_tls_model): Move to tree.h
11221 (dump_file): Move to system.h.
11222 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
11223 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
11224 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
11225 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
11226 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
11227 dbxout_stab_value_internal_label,
11228 dbxout_stab_value_internal_label_diff): Move from here ...
11229 * dbxout.h: ... to here.
11230 * system.h (dump_file): Moved here from output.h.
11231 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
11232 * tree.h (decl_default_tls_model): Moved here from output.h.
11233 * varasm.c (default_stabs_asm_out_destructor,
11234 default_stabs_asm_out_constructor): Move from here ...
11235 * dbxout.c: ... to here.
11236
11237 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
11238
11239 * collect2.h (dump_file): Rename to dump_ld_file.
11240 * collect2.c: Likewise.
11241 * tlink.c: Likewise.
11242
11243 * alias.c: Do not include output.h.
11244 * auto-inc-dec.c: Likewise.
11245 * bt-load.c: Likewise.
11246 * caller-save.c: Likewise.
11247 * cfg.c: Likewise.
11248 * cfgbuild.c: Likewise.
11249 * cfgcleanup.c: Likewise.
11250 * cfglayout.c: Likewise.
11251 * cfgloop.c: Likewise.
11252 * cfgloopanal.c: Likewise.
11253 * cfgloopmanip.c: Likewise.
11254 * cfgrtl.c: Likewise.
11255 * cgraph.c: Likewise.
11256 * cgraphclones.c: Likewise.
11257 * combine-stack-adj.c: Likewise.
11258 * combine.c: Likewise.
11259 * cprop.c: Likewise.
11260 * cse.c: Likewise.
11261 * cselib.c: Likewise.
11262 * dbgcnt.c: Likewise.
11263 * df-problems.c: Likewise.
11264 * df-scan.c: Likewise.
11265 * dojump.c: Likewise.
11266 * fwprop.c: Likewise.
11267 * gcse.c: Likewise.
11268 * graph.c: Likewise.
11269 * haifa-sched.c: Likewise.
11270 * hw-doloop.c: Likewise.
11271 * ipa-inline-transform.c: Likewise.
11272 * ipa-pure-const.c: Likewise.
11273 * ipa-reference.c: Likewise.
11274 * ipa-utils.c: Likewise.
11275 * ira-build.c: Likewise.
11276 * ira-emit.c: Likewise.
11277 * lcm.c: Likewise.
11278 * loop-doloop.c: Likewise.
11279 * loop-invariant.c: Likewise.
11280 * loop-iv.c: Likewise.
11281 * loop-unroll.c: Likewise.
11282 * loop-unswitch.c: Likewise.
11283 * lto-cgraph.c: Likewise.
11284 * lto-section-in.c: Likewise.
11285 * lto-streamer-in.c: Likewise.
11286 * mcf.c: Likewise.
11287 * mode-switching.c: Likewise.
11288 * postreload-gcse.c: Likewise.
11289 * postreload.c: Likewise.
11290 * predict.c: Likewise.
11291 * profile.c: Likewise.
11292 * ree.c: Likewise.
11293 * reg-stack.c: Likewise.
11294 * regcprop.c: Likewise.
11295 * regmove.c: Likewise.
11296 * regstat.c: Likewise.
11297 * reload1.c: Likewise.
11298 * sched-ebb.c: Likewise.
11299 * sel-sched-dump.c: Likewise.
11300 * simplify-rtx.c: Likewise.
11301 * stor-layout.c: Likewise.
11302 * store-motion.c: Likewise.
11303 * tracer.c: Likewise.
11304 * tree-affine.c: Likewise.
11305 * tree-cfg.c: Likewise.
11306 * tree-cfgcleanup.c: Likewise.
11307 * tree-dfa.c: Likewise.
11308 * tree-into-ssa.c: Likewise.
11309 * tree-nomudflap.c: Likewise.
11310 * tree-optimize.c: Likewise.
11311 * tree-pretty-print.c: Likewise.
11312 * tree-profile.c: Likewise.
11313 * tree-ssa-address.c: Likewise.
11314 * tree-ssa-ccp.c: Likewise.
11315 * tree-ssa-copy.c: Likewise.
11316 * tree-ssa-dom.c: Likewise.
11317 * tree-ssa-loop-ch.c: Likewise.
11318 * tree-ssa-loop-im.c: Likewise.
11319 * tree-ssa-loop-manip.c: Likewise.
11320 * tree-ssa-loop-niter.c: Likewise.
11321 * tree-ssa-loop-prefetch.c: Likewise.
11322 * tree-ssa-loop-unswitch.c: Likewise.
11323 * tree-ssa-loop.c: Likewise.
11324 * tree-ssa-propagate.c: Likewise.
11325 * tree-ssa-structalias.c: Likewise.
11326 * tree-ssa-tail-merge.c: Likewise.
11327 * tree-ssa-threadedge.c: Likewise.
11328 * tree-ssa-threadupdate.c: Likewise.
11329 * tree-ssa-uncprop.c: Likewise.
11330 * tree-ssa-uninit.c: Likewise.
11331 * tree-ssa.c: Likewise.
11332 * value-prof.c: Likewise.
11333 * var-tracking.c: Likewise.
11334 * web.c: Likewise.
11335
11336 * config/m32r/m32r.c: Include dbxout.h.
11337 * config/pa/pa.c: Likewise.
11338 * config/rs6000/rs6000.c: Likewise.
11339
11340 * Makefile.in: Fix dependencies.
11341 * config/rs6000/t-rs5000: Likewise.
11342
25c30572 113432012-05-31 Aldy Hernandez <aldyh@redhat.com>
11344
11345 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
11346 * gimple.h (block_in_transaction): Check for flag_tm.
11347
61025ec0 113482012-05-31 Aldy Hernandez <aldyh@redhat.com>
11349
11350 PR tree-optimization/52558
11351 * cfg.c (alloc_aux_for_edge): Fix comment.
11352 (alloc_aux_for_edge): Remove static.
11353 * basic-block.h (alloc_aux_for_edge): Protoize.
11354 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
11355 (execute_sm_if_changed_flag): New.
11356 (execute_sm_if_changed_flag_set): New.
11357 (execute_sm): Do not generate data races unless requested.
11358 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
11359 (tree_ssa_lim_finalize): Call free_aux_for_edges.
11360 * gimple.h (block_in_transaction): New.
11361 (gimple_in_transaction): Use block_in_transaction.
11362
f69bbc7f 113632012-05-31 Georg-Johann Lay <avr@gjlay.de>
11364
11365 PR target/51345
11366 * config/avr/avr.opt (-msp8): Document it.
11367 * doc/invoke.texi (AVR Options): Ditto. And document related
11368 built-in macros.
11369
d5bf7b64 113702012-05-31 Diego Novillo <dnovillo@google.com>
a44c8c3b 11371
ca8a2f4e 11372 * configure.ac (CXX_FOR_BUILD): Define and substitute.
11373 (BUILD_CXXFLAGS): Define and substitute.
11374 * Makefile.in (BUILD_CXXFLAGS): Define.
11375 (CXX_FOR_BUILD): Define.
11376 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
11377 (LINKER_FOR_BUILD): Likewise.
11378 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
11379 (BUILD_LINKERFLAGS): Likewise.
11380 * configure: Regenerate.
a44c8c3b 11381
0f246197 113822012-05-31 Steven Bosscher <steven@gcc.gnu.org>
11383
11384 * Makefile.in: Fix many dependencies.
11385 * tree-profile.c: Don't include regs.h.
11386 * tree-vectorizer.c: Don't include cfglayout.h.
11387 * tree-vect-stmts.c: Likewise.
11388 * tree-vect-slp.c: Likewise.
11389 * tree-vect-loop.c: Likewise.
11390 * reg-stack.c: Likewise.
11391 * tree-ssa-loop-manip.c: Likewise.
11392 * toplev.c: Likewise.
11393 * varasm.c: Don't include cfglayout.h, basic-block.h,
11394 and tree-iterator.h.
11395 * tree-cfgcleanup.c: Don't include cfglayout.h.
11396 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
11397 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
11398 * cgraphclones.c: Don't include plugin.h.
11399
93110b99 114002012-05-31 Georg-Johann Lay <avr@gjlay.de>
11401
11402 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
11403 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
11404 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
ca8a2f4e 11405
543506e0 114062012-05-31 Richard Guenther <rguenther@suse.de>
11407
11408 * tree-loop-distribution.c (struct partition_s): New struct,
11409 typedef and vector type.
11410 (partition_alloc, partition_free): New functions.
11411 (generate_loops_for_partition, generate_builtin,
11412 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
11413 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
11414 build_rdg_partition_for_component, can_generate_builtin,
11415 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
11416 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
11417 number_of_rw_in_partition, partition_contains_all_rw,
11418 ldist_gen): Use partition_t instead of bitmap.
11419
7da94a4f 114202012-05-31 Georg-Johann Lay <avr@gjlay.de>
11421
ca8a2f4e 11422 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
7da94a4f 11423 * doc/avr-mmcu.texi: Regenerate.
ca8a2f4e 11424
bfcf35ff 114252012-05-31 Richard Guenther <rguenther@suse.de>
11426
11427 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
11428 Use FOR_EACH_SSA_DEF_OPERAND.
11429 (generate_builtin): Adjust.
11430 (stmt_generated_in_another_partition): Remove.
11431 (add_scalar_computations_to_partition): Likewise.
11432 (rdg_build_partitions): Do not call
11433 add_scalar_computations_to_partition.
11434
34409c18 114352012-05-31 Eric Botcazou <ebotcazou@adacore.com>
11436
11437 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
11438 double ints throughout.
11439 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
11440 Check that the position of the field is representable as an integer.
11441
7667733b 114422012-05-31 Richard Guenther <rguenther@suse.de>
11443
11444 * tree-data-ref.c (dr_analyze_innermost): Properly convert
11445 the MEM_REF offset to sizetype.
11446
27677dd8 114472012-05-31 Georg-Johann Lay <avr@gjlay.de>
11448
11449 * doc/invoke.texi (AVR Options): Fix typos.
11450
0e7a4cac 114512012-05-31 Hans-Peter Nilsson <hp@axis.com>
11452
11453 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
11454 and -mcpu= options.
11455 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
aac15713 11456 non-v32 into --march=v0_v10.
0e7a4cac 11457
80ebb64a 114582012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11459
11460 * ira-int.h (target_ira_int): Rename x_move_cost to
11461 x_ira_register_move_cost, x_may_move_in_cost to
11462 x_ira_may_move_in_cost and x_may_move_out_cost to
11463 x_ira_may_move_out_cost. Delete the old fields with
11464 those names and also x_ira_max_register_move_cost,
11465 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
11466 (move_cost, may_move_in_cost, may_move_out_cost)
11467 (ira_max_register_move_cost, ira_max_may_move_in_cost)
11468 (ira_max_may_move_out_cost): Delete.
11469 * ira.c (init_move_cost): Rename to...
11470 (ira_init_register_move_cost): ...this, deleting the old
11471 function with that name. Apply above variable renamings.
11472 Retain asserts for null fields.
11473 (ira_init_once): Don't initialize register move costs here.
11474 (free_register_move_costs): Apply above variable renamings.
11475 Remove code for deleted fields.
11476
a0085a50 114772012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11478
11479 * ira.c (init_move_cost): Adjust choice of subclasses to match
11480 the current ira_init_register_move_cost choice. Use
11481 ira_class_subset_p instead of reg_class_subset_p.
11482 (ira_init_register_move_cost): Assert that move_cost,
11483 may_move_in_cost and may_move_out_cost already hold the desired
11484 values for their ira_* equivalents. For the latter two,
11485 ignore classes that can't store a register of the given mode.
11486
0d089656 114872012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11488
11489 * ira.c (setup_allocno_and_important_classes): Use
11490 ira_class_hard_regs_num to check whether a class has any
11491 allocatable registers.
11492 (ira_init_register_move_cost): Likewise.
11493
f3d26300 114942012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11495
11496 * ira.c (init_move_cost): Adjust local variable names to match
11497 file conventions. Use ira_assert instead of gcc_assert.
11498
36eb146a 114992012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11500
11501 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
11502 Move these definitions and associated target_globals fields to...
11503 * ira-int.h: ...here.
11504 * rtl.h (init_move_cost): Delete.
11505 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
11506 * ira.c: ...here, making the latter static.
11507
ad8d4dca 115082012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11509
11510 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
11511 and ira_register_move_cost instead of init_move_cost and move_cost.
11512
1072fecf 115132012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
11514
11515 * ira.h (target_ira): Delete x_ira_available_class_regs.
11516 (ira_available_class_regs): Delete.
11517 * ira.c (setup_available_class_regs): Delete.
11518 (setup_alloc_classes): Don't call it.
11519 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
11520 ira_available_class_regs.
11521 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
11522 (model_spill_cost): Likewise.
11523 * ira-build.c (low_pressure_loop_node_p): Likewise.
11524 * ira-color.c (color_pass): Likewise.
11525 * ira-emit.c (change_loop): Likewise.
11526 * ira-lives.c (inc_register_pressure, dec_register_pressure)
11527 (single_reg_class, ira_implicitly_set_insn_hard_regs)
11528 (process_bb_node_lives): Likewise.
11529 * loop-invariant.c (gain_for_invariant): Likewise.
11530
7949e3eb 115312012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11532
11533 PR target/52999
11534 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
11535 (pa_section_type_flags): New.
11536 (pa_legitimate_constant_p): Revert previous change.
11537
22760026 115382012-05-30 Steven Bosscher <steven@gcc.gnu.org>
11539
11540 * ira.c (allocate_initial_values): Make static.
11541
91c4f7e4 115422012-05-30 Uros Bizjak <ubizjak@gmail.com>
11543
11544 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
11545 Generate tls_initial_exec_64_sun only when !TARGET_X32.
11546
e8aef9ed 115472012-05-30 Richard Guenther <rguenther@suse.de>
11548
11549 PR middle-end/53501
11550 * fold-const.c (fold_binary_loc): Make sure to call
11551 fold_plusminus_mult_expr with the original sign of operands.
11552
eb3dd80d 115532012-05-30 Steven Bosscher <steven@gcc.gnu.org>
11554
11555 * Makefile.in: Fix many dependencies.
11556 (DWARF2_H): Depend on dwarf2.def.
11557 (RTL_ERROR_H): Depend on rtl-error.h.
11558 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
11559 all gimple-pretty-print.h and tree-pretty-print.h references.
11560
22bcc33d 115612012-05-30 Marc Glisse <marc.glisse@inria.fr>
11562
11563 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
11564 concatenations.
11565
20ecc3c4 115662012-05-30 Richard Guenther <rguenther@suse.de>
11567
11568 PR middle-end/53522
11569 * tree-emutls.c (gen_emutls_addr): Do not add globals to
11570 referenced-vars.
11571
15b37e31 115722012-05-30 Eric Botcazou <ebotcazou@adacore.com>
11573
11574 * explow.c (probe_stack_range): Restore simple control flow and stop
11575 again when the probe cannot be generated if HAVE_check_stack.
11576
77b4556a 115772012-05-30 Jakub Jelinek <jakub@redhat.com>
11578
11579 PR rtl-optimization/53519
11580 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
11581 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
11582
e8f3287f 115832012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11584
11585 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
11586
effa044f 115872012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
11588
11589 PR debug/53453
11590 * doc/tm.texi: Update.
11591 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
11592 * target.def (force_at_comp_dir): New hook.
11593 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
11594 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
11595
41f5b5b0 115962012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
4c654fa7 11597
11598 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
11599 Darwin >= 10.
11600 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
11601 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
11602
de9013ac 116032012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
11604
11605 PR target/51340
11606 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
11607 flag_unsafe_math_optimizations is set.
11608 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
11609 Update description of -mfused-madd.
11610
e10782c9 116112012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
11612
11613 PR target/52941
11614 * config/sh/predicates.md (atomic_arith_operand,
11615 atomic_logical_operand): New predicates.
11616 * config/sh/sh.c (sh_option_override): Check atomic options.
11617 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
11618 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
11619 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
11620 UNSUPPORTED_HARD_ATOMIC_CPU.
11621 * config/sh/sync.md: Update description comments.
11622 (I12): New mode iterator.
11623 (fetchop_predicate, fetchop_constraint): New code attributes.
11624 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
11625 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
11626 atomic_fetch_<fetchop_name>si_hard,
11627 atomic_fetch_<fetchop_name><mode>_hard,
11628 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
11629 atomic_<fetchop_name>_fetchsi_hard,
11630 atomic_<fetchop_name>_fetch<mode>_hard,
11631 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
11632 atomic_test_and_set_hard): New insns.
11633 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
11634 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
11635 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
11636 atomic_test_and_set_soft): Use same formatting for the first line of
11637 the asm block as in new insns above.
11638 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
11639 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
11640 atomic_test_and_set): Integrate new *_hard insns into expanders.
11641 * config/sh/sh.opt (mhard-atomic): New option.
11642 * doc/invoke.texi (SH Options): Document it.
11643
e4a33abd 116442012-05-29 Meador Inge <meadori@codesourcery.com>
11645
11646 * c-decl.c (c_push_function_context): Always create a new language
11647 function.
11648 (c_pop_function_context): Clear the language function created in
11649 c_push_function_context.
11650
9315255d 116512012-05-29 Matt Turner <mattst88@gmail.com>
11652
11653 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
11654 (define_bypass "ev6_fcmov"): New.
11655
ea1760a3 116562012-05-29 Steven Bosscher <steven@gcc.gnu.org>
11657
11658 * integrate.c: Remove.
11659 * integrate.h: Remove.
11660 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
11661 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
11662 * config/rs6000/t-rs6000: Likewise
11663 * config/spu/t-spu-elf: Likewise.
11664 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
11665 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
11666 from integrate.h to here.
11667 (initial_value_entry): New prototype.
11668 * reload.h (allocate_initial_values): Remove prototype.
11669 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
11670 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
11671 integrate.c.
11672 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
11673 set_decl_abstract_flags, set_block_abstract_flags): Move from
11674 integrate.c to here, the only user.
11675 * expmed.c (extract_fixed_bit_field): Remove outdated comment
11676 about integrate.c.
11677 * function.c: Don't include integrate.h.
11678 (struct initial_value_pair, struct initial_value_struct,
11679 get_hard_reg_initial_val, has_hard_reg_initial_val,
11680 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
11681 integrate.c to here.
11682 (initial_value_entry): New function.
11683 * genemit.c (main): Don't print integrate.h include line.
11684 * ira.c: Don't include integrate.h.
11685 (allocate_initial_values): Move from integrate.c to here.
11686 (ira): Update allocate_initial_values call.
11687 * tree-inline.c: Don't include integrate.h.
11688 (function_attribute_inlinable_p): Moved from integrate.c to here.
11689 * cfgexpand.c: Don't include integrate.h.
11690 * except.c: Likewise.
11691 * langhooks.c: Likewise.
11692 * passes.c: Likewise.
11693 * toplev.c: Likewise.
11694 * config/frv/frv.c: Likewise.
11695 * config/pa/pa.c: Likewise.
11696 * config/spu/spu.c: Likewise.
11697 * config/epiphany/epiphany.c: Likewise.
11698 * config/mep/mep.c: Likewise.
11699 * config/score/score.c: Likewise.
11700 * config/picochip/picochip.c: Likewise.
11701 * config/sh/sh.c: Likewise.
11702 * config/alpha/alpha.c: Likewise.
11703 * config/microblaze/microblaze.c: Likewise.
11704 * config/mips/mips.c: Likewise.
11705 * config/v850/v850.c: Likewise.
11706 * config/mmix/mmix.c: Likewise.
11707 * config/bfin/bfin.c: Likewise.
11708 * config/arm/arm.c: Likewise.
11709 * config/s390/s390.c: Likewise.
11710 * config/m32r/m32r.c: Likewise.
11711 * config/rs6000/rs6000.c: Likewise.
11712 * config/c6x/c6x.c: Include function.h instead of integrate.h.
11713 * config/tilegx/tilegx.c: Likewise.
11714 * config/tilepro/tilepro.c: Likewise.
11715
234d19a4 117162012-05-29 Georg-Johann Lay <avr@gjlay.de>
11717
91c4f7e4 11718 * config/avr/t-avr (s-avr-mmcu-texi): Call
234d19a4 11719 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
91c4f7e4 11720
0ab48139 117212012-05-29 Michael Matz <matz@suse.de>
11722
11723 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
11724 assign_temp): Remove 'keep' argument.
11725 (mark_temp_addr_taken): Remove prototype.
11726 * tree.h (expand_decl): Remove prototype.
91c4f7e4 11727 * function.c (struct temp_slot): Remove addr_taken and keep member.
0ab48139 11728 (assign_stack_temp_for_type) Don't initialize above, remove
11729 keep argument.
11730 (assign_stack_temp, assign_temp): Remove keep argument.
11731 (mark_temp_addr_taken): Remove.
91c4f7e4 11732 (preserve_temp_slots): Remove handling of addr_taken and keep members.
0ab48139 11733 (free_temp_slots): Ditto.
11734 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
11735 dead code.
11736 * stmt.c (expand_asm_operands): Remove dead code.
11737 (expand_decl): Remove.
11738 * c-decl.c (finish_struct): Don't call expand_decl.
11739 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
11740 and assign_stack_temp.
11741 * calls.c (save_fixed_argument_area, initialize_argument_information,
11742 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
11743 * expmed.c (extract_bit_field_1): Ditto.
11744 * expr.c (emit_group_load_1, emit_group_store,
11745 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
11746 store_field, expand_constructor, expand_cond_expr_using_cmove,
11747 expand_expr_real_2, expand_expr_real_1): Ditto.
11748 * stmt.c (expand_asm_operands, expand_return): Ditto.
11749
11750 * function.c (pop_temp_slots): Call free_temp_slots.
11751 * calls.c (store_one_arg): Don't call preserve_temp_slots or
11752 free_temp_slots.
11753 * expr.c (expand_assignment): Don't call free_temp_slots.
11754
11755 * config/arm/arm.c (neon_expand_vector_init): Ditto.
11756 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
11757 (ix86_expand_vector_extract): Ditto.
11758 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
11759 ia64_expand_movxf_movrf): Ditto.
11760 * config/mips/mips.c (mips_expand_vi_general): Ditto.
11761 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
11762 extendsfdf2): Ditto.
11763 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
11764 rs6000_expand_vector_set, rs6000_expand_vector_extract,
11765 rs6000_allocate_stack_temp): Ditto.
11766 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
11767 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
11768 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
11769 sparc_expand_vector_init): Ditto.
11770
7843e4bc 117712012-05-29 Michael Matz <matz@suse.de>
11772
11773 * c-tree.h (c_expand_decl): Remove prototype.
11774
11775 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
11776 a kept temp.
11777 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
91c4f7e4 11778 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
7843e4bc 11779 COMPOUND_LITERAL_EXPR.
11780 * function.c (expand_function_start): Don't call expand_decl,
11781 instead assert that we have RTL assigned.
11782 * tree-ssa-live.c (remove_unused_locals): Clear
11783 nonlocal_goto_save_area if its backing variable is removed.
11784 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
11785 as mem inputs.
11786 (expand_decl): Assert that this does nothing.
11787 * calls.c (expand_call): Don't call mark_temp_addr_taken.
11788
87c952b8 117892012-05-29 Richard Guenther <rguenther@suse.de>
11790
11791 PR tree-optimization/53516
11792 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
11793 bitfield accesses.
11794 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
11795
9d75589a 117962012-05-29 Joseph Myers <joseph@codesourcery.com>
11797
11798 * LANGUAGES: Fix typos.
11799 * Makefile.in: Fix typos.
11800 * alias.c: Fix typos.
11801 * auto-inc-dec.c: Fix typos.
11802 * bb-reorder.c: Fix typos.
11803 * cfgcleanup.c: Fix typos.
11804 * cgraph.c: Fix typos.
11805 * cgraph.h: Fix typos.
11806 * cgraphunit.c: Fix typos.
11807 * collect2-aix.h: Fix typos.
11808 * collect2.c: Fix typos.
11809 * compare-elim.c: Fix typos.
11810 * config/alpha/vms.h: Fix typos.
11811 * config/arm/README-interworking: Fix typos.
11812 * config/arm/arm.c: Fix typos.
11813 * config/arm/iterators.md: Fix typos.
11814 * config/arm/vxworks.h: Fix typos.
11815 * config/avr/avr.c: Fix typos.
11816 * config/avr/avr.h: Fix typos.
11817 * config/avr/avr.md: Fix typos.
11818 * config/avr/builtins.def: Fix typos.
11819 * config/c6x/c6x.c: Fix typos.
11820 * config/cr16/cr16.c: Fix typos.
11821 * config/cr16/cr16.md: Fix typos.
11822 * config/cris/cris.md: Fix typos.
11823 * config/darwin.c: Fix typos.
11824 * config/darwin.opt: Fix typos.
11825 * config/i386/i386-c.c: Fix typos.
11826 * config/i386/i386.c: Fix typos.
11827 * config/ia64/ia64.c: Fix typos.
11828 * config/m68k/cf.md: Fix typos.
11829 * config/mep/mep.c: Fix typos.
11830 * config/microblaze/microblaze.c: Fix typos.
11831 * config/microblaze/microblaze.h: Fix typos.
11832 * config/mn10300/mn10300.c: Fix typos.
11833 * config/mn10300/mn10300.md: Fix typos.
11834 * config/pa/pa.c: Fix typos.
11835 * config/picochip/picochip.h: Fix typos.
11836 * config/rs6000/a2.md: Fix typos.
11837 * config/rs6000/rs6000.c: Fix typos.
11838 * config/rs6000/vector.md: Fix typos.
11839 * config/rx/rx.md: Fix typos.
11840 * config/rx/rx.opt: Fix typos.
11841 * config/s390/2097.md: Fix typos.
11842 * config/s390/s390.c: Fix typos.
11843 * config/s390/s390.h: Fix typos.
11844 * config/sh/sh.c: Fix typos.
11845 * config/sh/sh.md: Fix typos.
11846 * config/sparc/sync.md: Fix typos.
11847 * config/spu/spu.c: Fix typos.
11848 * config/spu/spu.md: Fix typos.
11849 * config/vms/vms.c: Fix typos.
11850 * config/vxworks-dummy.h: Fix typos.
11851 * config/vxworks.h: Fix typos.
11852 * cselib.c: Fix typos.
11853 * df-scan.c: Fix typos.
11854 * df.h: Fix typos.
11855 * doc/extend.texi: Fix typos.
11856 * doc/install.texi: Fix typos.
11857 * doc/invoke.texi: Fix typos.
11858 * doc/md.texi: Fix typos.
11859 * doc/plugins.texi: Fix typos.
11860 * doc/rtl.texi: Fix typos.
11861 * dse.c: Fix typos.
11862 * dwarf2asm.c: Fix typos.
11863 * dwarf2out.c: Fix typos.
11864 * except.h: Fix typos.
11865 * expr.c: Fix typos.
11866 * fold-const.c: Fix typos.
11867 * gcc.c: Fix typos.
11868 * gcse.c: Fix typos.
11869 * genautomata.c: Fix typos.
11870 * gengtype-state.c: Fix typos.
11871 * gengtype.c: Fix typos.
11872 * genhooks.c: Fix typos.
11873 * gimple-fold.c: Fix typos.
11874 * gimple-pretty-print.c: Fix typos.
11875 * gimple.c: Fix typos.
11876 * gimple.h: Fix typos.
11877 * gimplify.c: Fix typos.
11878 * graphite-interchange.c: Fix typos.
11879 * graphite-sese-to-poly.c: Fix typos.
11880 * ifcvt.c: Fix typos.
11881 * input.c: Fix typos.
11882 * ipa-cp.c: Fix typos.
11883 * ipa-inline-analysis.c: Fix typos.
11884 * ipa-inline-transform.c: Fix typos.
11885 * ipa-inline.c: Fix typos.
11886 * ipa-pure-const.c: Fix typos.
11887 * ipa-ref.h: Fix typos.
11888 * ipa-reference.c: Fix typos.
11889 * ipa-utils.c: Fix typos.
11890 * ipa.c: Fix typos.
11891 * ira-emit.c: Fix typos.
11892 * ira-lives.c: Fix typos.
11893 * lto-streamer.c: Fix typos.
11894 * lto-streamer.h: Fix typos.
11895 * lto-wrapper.c: Fix typos.
11896 * mcf.c: Fix typos.
11897 * mode-switching.c: Fix typos.
11898 * modulo-sched.c: Fix typos.
11899 * plugin.c: Fix typos.
11900 * postreload.c: Fix typos.
11901 * sched-deps.c: Fix typos.
11902 * sel-sched-ir.c: Fix typos.
11903 * sel-sched-ir.h: Fix typos.
11904 * sel-sched.c: Fix typos.
11905 * sese.c: Fix typos.
11906 * stor-layout.c: Fix typos.
11907 * target-hooks-macros.h: Fix typos.
11908 * target.def: Fix typos.
11909 * trans-mem.c: Fix typos.
11910 * tree-eh.c: Fix typos.
11911 * tree-predcom.c: Fix typos.
11912 * tree-sra.c: Fix typos.
11913 * tree-ssa-address.c: Fix typos.
11914 * tree-ssa-loop-ivopts.c: Fix typos.
11915 * tree-ssa-loop-niter.c: Fix typos.
11916 * tree-ssa-math-opts.c: Fix typos.
11917 * tree-ssa-pre.c: Fix typos.
11918 * tree-ssa-propagate.c: Fix typos.
11919 * tree-ssa-reassoc.c: Fix typos.
11920 * tree-ssa-sccvn.c: Fix typos.
11921 * tree-ssa-ter.c: Fix typos.
11922 * tree-ssa-uninit.c: Fix typos.
11923 * tree-ssanames.c: Fix typos.
11924 * tree-vect-generic.c: Fix typos.
11925 * tree-vect-slp.c: Fix typos.
11926 * tree.c: Fix typos.
11927 * tree.h: Fix typos.
11928 * varasm.c: Fix typos.
11929 * varpool.c: Fix typos.
11930
d668316d 119312012-05-29 Joseph Myers <joseph@codesourcery.com>
11932
11933 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
11934
134f0957 119352012-05-29 Richard Guenther <rguenther@suse.de>
11936
11937 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
11938 for globals.
11939 (add_referenced_var_1): Re-organize. Assert we are not
11940 called for globals.
11941 (remove_referenced_var): Likewise.
11942 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
11943 * tree-mudflap.c (execute_mudflap_function_ops): Do not
11944 call add_referenced_var on globals.
11945 * matrix-reorg.c (transform_access_sites): Likewise.
11946
d6443ebe 119472012-05-29 Steven Bosscher <steven@gcc.gnu.org>
11948
11949 * alias.c (reg_known_value): Make this a VEC.
11950 (reg_known_equiv_p): Make this an sbitmap.
11951 (reg_known_value_size): Remove.
11952 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
11953 set_reg_known_equiv_p): Update for reg_known_value and
11954 reg_known_value_size data structure change.
11955 (init_alias_analysis, end_alias_analysis): Likewise.
11956
c306fbbf 119572012-05-29 Jakub Jelinek <jakub@redhat.com>
11958
11959 PR middle-end/53510
11960 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
11961 to avoid leaking memory. No need to handle memory allocation
91c4f7e4 11962 failure. Double string_len on each reallocation instead of adding 2.
c306fbbf 11963 * gcov.c (read_line): Likewise.
11964
2cfdd775 119652012-05-29 Hans-Peter Nilsson <hp@axis.com>
11966
11967 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
11968 New macros.
11969 * config/cris/cris.md ("trap"): Define, enabled for
11970 TARGET_TRAP_USING_BREAK8.
11971 * config/cris/cris.opt (mtrap-using-break8): New option.
11972
8b64dc3c 119732012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
11974
11975 PR c++/25137
11976 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
11977 for C++.
11978
e67780f7 119792012-05-28 Hans-Peter Nilsson <hp@axis.com>
11980
91c4f7e4 11981 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
3ed894b7 11982 (Standard Names): Fix typos in documentation of atomic patterns.
e67780f7 11983
b3a0814b 119842012-05-27 Nathan Sidwell <nathan@acm.org>
11985
11986 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
11987
eb5d9b7b 119882012-05-26 Jason Merrill <jason@redhat.com>
11989
11990 PR c++/53220
11991 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
11992 about array compound literals.
11993
8ddad41d 119942012-05-26 Eric Botcazou <ebotcazou@adacore.com>
11995
11996 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
11997 if CLEANUP_NO_INSN_DEL.
11998 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
11999 from cfg_layout_merge_blocks.
12000 (emit_nop_for_unique_locus_between): New function.
12001 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
12002 (cfg_layout_merge_blocks): Likewise.
12003
f7583c76 120042012-05-26 Dimitrios Apostolou <jimis@gmx.net>
12005 Paolo Bonzini <bonzini@gnu.org>
12006
12007 * df-scan.c (df_def_record_1): Assert a parallel must contain an
12008 EXPR_LIST at this point. Receive the LOC and move its extraction...
12009 (df_defs_record): ... here. Change if-else to a switch statement.
12010 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
12011 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
12012 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
12013 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
12014 regs_invalidated_by_call.
12015 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
12016 df_get_call_refs().
12017
eaf1e576 120182012-05-25 Eric Botcazou <ebotcazou@adacore.com>
12019
12020 PR lto/52178
12021 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
12022 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
12023
e684d543 120242012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
12025
12026 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
12027 software floating point emulation. No longer build the multilibs
12028 with -mstrict-align.
12029
709ed320 120302012-05-25 Aldy Hernandez <aldyh@redhat.com>
12031
12032 PR middle-end/53008
12033 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
12034 accessed indirectly.
12035 (ipa_tm_create_version): Same.
12036
45476806 120372012-05-25 Uros Bizjak <ubizjak@gmail.com>
12038
12039 PR target/53474
12040 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
12041 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
12042
b04c1b7f 120432012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
12044
12045 PR target/53435
12046 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
12047 (ix86_expand_vec_perm): Use int mode instead of float.
12048 (expand_vec_perm_pshufb): Remove handling of useseless type
12049 conversion.
12050
8ffcff2e 120512012-05-25 Eric Botcazou <ebotcazou@adacore.com>
12052
12053 PR ada/52362
12054 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
12055 gnu_ld variables to yes.
12056 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
12057 (HAVE_GNU_AS): Likewise.
12058 * config.in: Regenerate.
12059 * configure: Likewise.
12060
5bb035a3 120612012-05-25 Tristan Gingold <gingold@adacore.com>
12062
12063 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
12064 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
12065 and preferred_alignment.
12066
bfde030e 120672012-05-25 Tristan Gingold <gingold@adacore.com>
12068
12069 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
12070
5253ef2b 120712012-05-25 Thomas Schwinge <thomas@codesourcery.com>
12072
12073 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
12074 volatile bitfields case.
12075
120762012-05-24 Pat Haugen <pthaugen@us.ibm.com>
409e1a55 12077
12078 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
12079 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
12080 (adjacent_mem_locations): Move some code to and call...
12081 (get_memref_parts): ...new function.
12082 (mem_locations_overlap): New function.
12083 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
12084 (is_mem_ref): Rename to...
12085 (find_mem_ref): ...this. Return MEM rtx.
12086 (get_store_dest): Remove function.
12087 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
12088 new parameter and adjust calls.
12089 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
12090 mem refs overlap for true_store_to_load_dep_costly.
12091 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
12092 passed to adjacent_mem_locations.
12093 (is_costly_group): Walk resolved dependency list.
12094 (force_new_group): Emit group ending nop for Power6/Power7.
12095 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
12096 (group_ending_nop): New define_insn.
12097
8ae39fa8 120982012-05-24 Dodji Seketeli <dodji@redhat.com>
12099
12100 Make unwound macro expansion trace less redundant
12101 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
12102 context of macro definition in the trace, when it's redundant.
12103 Update comments.
12104
141de90e 121052012-05-24 Richard Guenther <rguenther@suse.de>
12106
12107 PR middle-end/53460
12108 * tree-profile.c (tree_profiling): Cleanup the CFG if
12109 execute_fixup_cfg requests it.
12110
1b55a29e 121112012-05-24 Richard Guenther <rguenther@suse.de>
12112
12113 * tree-flow.h (create_var_ann): Remove.
12114 * tree-dfa.c (create_var_ann): Remove and inline into its
12115 single caller ...
12116 (add_referenced_var_1): ... here.
12117 * varpool.c (add_new_static_var): Do not call add_referenced_var
12118 for global vars.
12119 * gimple-fold.c (canonicalize_constructor_val): Likewise.
12120 * tree-switch-conversion.c (build_one_array): Likewise.
12121 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
12122 * tree-flow-inline.h (gimple_referenced_vars): Guard against
12123 NULL fn argument.
12124 * tree-inline.c (remap_gimple_op_r): Likewise. Check
12125 gimple_referenced_vars instead of gimple_in_ssa_p.
12126 (copy_tree_body_r): Likewise.
12127 (setup_one_parameter): Likewise.
12128 (declare_return_variable): Likewise.
12129 (tree_function_versioning): Likewise.
12130
a2623f6b 121312012-05-24 Jakub Jelinek <jakub@redhat.com>
12132
12133 PR tree-optimization/53465
12134 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
12135 vr0 into *vr, then vrp_meet that.
12136 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
12137 have any equivalences.
12138 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
12139 first time.
12140
121412012-05-24 Jim MacArthur <jim.macarthur@arm.com>
71e16a8f 12142
12143 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
12144 hard registers.
12145 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
12146 check end_regno - 1 is a hard register.
12147
cc3f82be 121482012-05-24 Richard Guenther <rguenther@suse.de>
12149
12150 * varpool.c (add_new_static_var): Remove call to create_var_ann.
12151 * tree-ssa-operands.c (create_vop_var): Likewise.
12152
2887c015 121532012-05-24 Richard Guenther <rguenther@suse.de>
12154
12155 PR bootstrap/53466
12156 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
12157 handle globals.
12158 (remove_unused_locals): Pass global_unused_vars to
12159 remove_unused_scope_block_p. Restore code walking all
12160 referenced vars and pruning them.
12161
afea39ad 121622012-05-23 Jan Hubicka <jh@suse.cz>
12163
12164 * tree.h (alias_diag_flags): Remove.
12165 (alias_pair): Remove emitted_diags.
12166 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
12167 symbol_alias_set_t, symbol_alias_set_destroy,
12168 symbol_alias_set_contains, propagate_aliases_backward): Remove.
12169 * toplev.c (compile_file): Do not call finish_aliases_2
45476806 12170 * cgraphunit.c (cgraph_process_new_functions): Do not call
12171 finish_aliases_1.
afea39ad 12172 (handle_alias_pairs): Output diagnostics about aliases to externals.
12173 (assemble_thunks_and_aliases): Use do_assemble_alias.
12174 (output_weakrefs): Likewise.
12175 (finalize_compilation_unit): Do not call finish_aliases_1.
45476806 12176 * ipa.c (symtab_remove_unreachable_nodes): De not call
12177 remove_unreachable_alias_pairs.
afea39ad 12178 * varasm.c (do_assemble_alias): Export.
45476806 12179 (symbol_alias_set_create, symbol_alias_set_destroy,
12180 symbol_alias_set_contains, symbol_alias_set_insert,
12181 propagate_aliases_forward, propagate_aliases_backward,
12182 propagate_aliases_backward, trivially_visible_alias,
12183 trivially_defined_alias, remove_unreachable_alias_pairs,
12184 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
afea39ad 12185 * output.h (do_assemble_alias): Declare.
45476806 12186 * varpool.c (varpool_remove_unreferenced_decls): Do not call
12187 finish_aliases_1.
afea39ad 12188
9d68bc02 121892012-05-23 Martin Jambor <mjambor@suse.cz>
12190
12191 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
12192
4190f293 121932012-05-23 Eric Botcazou <ebotcazou@adacore.com>
12194
12195 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
12196 size handling.
12197 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
12198 (iterative_hash_gimple_type): Adjust comment.
12199 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
12200 domain for an array type instead of the domain type itself.
12201
53b5b75f 122022012-05-23 Richard Guenther <rguenther@suse.de>
12203
12204 PR tree-optimization/53438
12205 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
12206
7ce72b61 122072012-05-23 Georg-Johann Lay <avr@gjlay.de>
12208
12209 PR target/53448
12210 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
12211 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
12212 ASM_OUTPUT_ALIGN.
12213
ad75582e 122142012-05-23 Richard Guenther <rguenther@suse.de>
12215
12216 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
12217 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
12218 via the global_unused_vars bitmap.
12219 (remove_unused_locals): Handle global vars in local-decls via
12220 a global_unused_vars bitmap instead of the used flag in the
12221 var annotation. Simplify global variable handling and removal.
12222
f963f90b 122232012-05-22 Jan Hubicka <jh@suse.cz>
12224
12225 PR middle-end/53426
ad75582e 12226 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
12227 from other partitions.
f963f90b 12228
ad0fe105 122292012-05-22 Jan Hubicka <jh@suse.cz>
12230
12231 PR middle-end/53161
12232 * symtab.c (symtab_register_node): Fix ordering issue.
12233
c93570ad 122342012-05-22 Steven Drake <sbd@NetBSD.org>
12235
12236 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
12237
f8efdac8 122382012-05-22 David Edelsohn <dje.gcc@gmail.com>
12239
12240 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
12241 Use strip_name_encoding target hook.
12242
5084b2e4 122432012-05-22 Richard Guenther <rguenther@suse.de>
12244
12245 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
12246 (init_function_for_compilation): Remove.
12247 * tree-dfa.c (find_vars_r): Take struct function argument.
12248 (find_referenced_vars_in): Adjust.
12249 * tree-ssa-operands.c (clobber_stats): Remove.
12250 (create_vop_var): Take struct function argument. Mark
12251 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
12252 (init_ssa_operands): Take struct function argument.
12253 (fini_ssa_operands): Do not dump dead stats.
12254 * tree-ssa-operands.h (init_ssa_operands): Take struct function
12255 argument.
12256 * cgraphunit.c (init_lowered_empty_function): Adjust.
12257 * lto-streamer-in.c (input_cfg): Likewise.
12258 * tree-inline.c (initialize_cfun): Likewise.
12259 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
45476806 12260 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
5084b2e4 12261 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
12262 virtual operands are not registers.
12263
22ba4121 122642012-05-22 Richard Guenther <rguenther@suse.de>
12265
45476806 12266 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
22ba4121 12267
6084b64c 122682012-05-22 Richard Guenther <rguenther@suse.de>
12269
12270 PR middle-end/53437
12271 * tree-inline.c (setup_one_parameter): Create a dummy init
12272 statement for unused parameters when not optimizing.
12273
665507eb 122742012-05-22 Richard Guenther <rguenther@suse.de>
12275
12276 * tree-flow.h (add_referenced_var_1): Declare.
12277 (add_referenced_var): Define.
45476806 12278 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
665507eb 12279 (add_referenced_var): Rename to ...
12280 (add_referenced_var_1): ... this. Take struct function argument.
12281
f9aa4160 122822012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12283
12284 PR target/53334
12285 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
12286 * config/arm/arm.c (arm_validize_comparison): Define.
12287 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
12288 arm_validize_comparison.
12289 ("cbranchdi4"): Likewise.
12290 ("cstoredi4"): Likewise.
12291 ("movsicc"): Likewise.
12292 ("movsfcc"): Likewise.
12293 ("movdfcc"): Likewise.
12294
6940c58b 122952012-05-22 Dimitrios Apostolou <jimis@gmx.net>
12296
12297 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
f9aa4160 12298 the mw_reg_pool size.
6940c58b 12299
3f55c2b5 123002012-05-22 Paolo Bonzini <bonzini@gnu.org>
12301
12302 PR tree-optimization/53336
12303 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
12304 non-integer integral types to offset type and vice versa.
12305
07f7357d 123062012-05-22 Alan Modra <amodra@gmail.com>
12307
53845569 12308 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
12309 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
12310 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
12311 V_SAVE_INLINE): Delete.
07f7357d 12312 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
12313 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
12314 For ELF targets, use out-of-line restores for -Os and any number
12315 of regs if the restore exits, and out-of-line gp save for two or
12316 more regs. Use save_reg_p to test for holes in reg restore set.
12317 Replace "#if" with "if".
12318
1988c1c3 123192012-05-22 Alan Modra <amodra@gmail.com>
12320
12321 * config/rs6000/rs6000.c (save_reg_p): New function.
12322 (first_reg_to_save, first_fp_reg_to_save): Use it here.
12323 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
12324 (emit_frame_save): Use gen_frame_store.
12325 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
12326 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
12327 vrsave and toc.
12328 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
12329 vrsave, toc, gp and fp restores.
12330
5afb4a41 123312012-05-22 Alan Modra <amodra@gmail.com>
12332
12333 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
12334 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
12335 Move function pointer variables after forward declarations.
12336 (rs6000_builtin_support_vector_misalignment): Make static.
12337 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
12338 (rs6000_function_value, rs6000_can_eliminate): Likewise.
12339
d73df292 123402012-05-21 Bernd Schmidt <bernds@codesourcery.com>
12341
12342 PR rtl-optimization/53373
12343 * caller-save.c (save_call_clobbered_regs): Look into a possible
12344 PARALLEL manually rather than using single_set on a call insn.
12345
445d06b6 123462012-05-21 Jakub Jelinek <jakub@redhat.com>
12347
12348 PR tree-optimization/53436
12349 * omp-low.c (omp_build_component_ref): New function.
12350 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
12351
04275edf 123522012-05-21 Uros Bizjak <ubizjak@gmail.com>
12353
12354 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
12355 arguments to bool.
12356 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
12357 Do not print '.' here. Output operand lossage error for unhandled
12358 sizes. Move.
12359 <case '*'>: Move.
12360 <case '&'>: Ditto.
12361 <case 'Y'>: Ditto.
12362 <case 'z'>: Hardcode "code" argument into error strings.
12363 <case 'Z'>: Ditto.
12364 <case 'D'>: Merge AVX and non-AVX codes.
12365 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
12366 Update call to put_condition_code.
12367
eddf6a68 123682012-05-21 Andreas Schwab <schwab@linux-m68k.org>
12369
12370 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
12371 CC_STATUS_INIT.
12372 (clzsi2): New expander.
12373 (*clzsi2_68k): New insn.
04275edf 12374 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
eddf6a68 12375
6ad451f8 123762012-05-21 Aldy Hernandez <aldyh@redhat.com>
12377
12378 * gimple.h (gimple_set_in_transaction): Remove.
12379 (gimple_in_transaction): Look in BB instead.
12380 (gimple_statement_base): Remove in_transaction field.
12381 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
12382 * trans-mem.c (compute_transaction_bits): Place transaction bit
12383 information into basic blocks.
12384
ef47fd1d 123852012-05-21 Andreas Schwab <schwab@linux-m68k.org>
12386
12387 * expr.c (get_def_for_expr_class): Define only if
12388 HAVE_conditional_move.
12389 (convert_tree_comp_to_rtx): Likewise.
12390
b1182707 123912012-05-21 Uros Bizjak <ubizjak@gmail.com>
12392
12393 PR target/53399
12394 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
12395 for TARGET_BMI.
12396 (ffssi2_no_cmove): Ditto.
12397 (*ffs<mode>_1): Remove insn pattern.
12398 (*tzcnt<mode>_1): New insn pattern.
12399 (*bsf<mode>1): Ditto.
12400
c77bfbc9 124012012-05-21 Richard Guenther <rguenther@suse.de>
12402
12403 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
12404 more referenced vars.
12405 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
12406 flag on variables that have a var-annotation.
12407
7c2df6db 124082012-05-21 Joseph Myers <joseph@codesourcery.com>
12409
6a17c9e0 12410 PR c/53418
7c2df6db 12411 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
12412 from folded operands before wrapping another around the
12413 conditional expression.
12414
8cb435f5 124152012-05-21 Jakub Jelinek <jakub@redhat.com>
12416
e694f1e7 12417 PR tree-optimization/53366
12418 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
12419 tests if complex_numbers == 2, but there are non-complex number loads
12420 too.
12421
791e6391 12422 PR tree-optimization/53409
12423 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
12424 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
12425
8cb435f5 12426 PR tree-optimization/53410
12427 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
12428 instead of build_int_cst (type, 0) where vector types might be
12429 involved. Instead of build_int_cst (type, 1) convert the original
12430 integer_onep argument to the desired type.
12431
31eb619c 124322012-05-21 Michael Matz <matz@suse.de>
12433
12434 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
12435 (simplify_test_exp): Handle one more case of distributive law,
12436 decrease cost threshold.
12437 (tests_attr_p, get_attr_order): New functions.
12438 (optimize_attrs): Use topological order, inline only cheap values.
12439 (write_attr_set): Reset our_known_true after some time.
12440
391d150e 124412012-05-21 H.J. Lu <hongjiu.lu@intel.com>
12442
12443 PR target/53425
12444 * config/i386/i386.c (type_natural_mode): Warn passing SSE
12445 vector argument without SSE enabled changes the ABI.
12446
02a2bdca 124472012-05-21 Richard Guenther <rguenther@suse.de>
12448
12449 PR tree-optimization/53408
12450 * tree-vect-loop.c (vectorizable_induction): Properly check
12451 the restriction that we cannot handle induction results from
12452 the inner loop outside of the outer loop.
12453
bdd31be6 124542012-05-21 H.J. Lu <hongjiu.lu@intel.com>
12455
12456 PR target/53416
12457 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
12458 (UNSPECV_RDRAND): This.
12459 (rdrand<mode>_1): Updated.
12460
6681da88 124612012-05-21 Richard Guenther <rguenther@suse.de>
12462
12463 * tree-loop-distribution.c (can_generate_builtin): Reject
12464 volatile stmts.
12465
abe01860 124662012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
12467
12468 * Makefile.in (options.c): Add options.h to included header
12469 files, before tm.h.
12470
0773b627 124712012-05-21 Razya Ladelsky <razya@il.ibm.com>
12472
b1182707 12473 * tree-parloops.c : Add myself to contributors, update
0773b627 12474 TODO list, add link to wiki.
12475
ae4dcb11 124762012-05-21 Alan Modra <amodra@gmail.com>
12477
12478 * config/rs6000/predicates.md (input_operand): Don't match
12479 constant pool addresses. Remove label_ref, high and plus from
12480 match_code list. Remove redundant CONSTANT_P test.
12481 (splat_input_operand): Similarly update match_code list.
12482 (small_toc_ref): New predicate.
12483 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
12484 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
12485 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
12486 register checks to..
12487 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
12488 generated by create_TOC_reference.
12489 (rs6000_legitimize_address): Update cerate_TOC_reference call.
12490 (rs6000_delegitimize_address): Handle new rtl for toc refs.
12491 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
12492 (use_toc_relative_ref): New function, split out from..
12493 (rs6000_emit_move): ..here. Remove redundant tests. Update
12494 create_TOC_reference calls.
12495 (rs6000_legitimize_reload_address): Formatting. Handle splitting
12496 of medium/large model toc addresses. Use use_toc_relative_ref.
12497 (print_operand): Formatting, style. Adjust for toc changes.
12498 (print_operand_address): Likewise.
12499 (rs6000_output_addr_const_extra): Likewise.
12500 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
12501 than a PLUS. Use this formulation for both high and low part
12502 of -mcmodel=medium/large toc reference too. Before reload,
12503 always use the small model formulation.
12504 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
12505 a PLUS in high part of addresses here.
12506 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
12507 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
12508 (largetoc_high, largetoc_low): Move earlier. Cope when no
12509 base reg available.
12510 (largetoc_high_plus): New insn.
12511 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
12512 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
12513 (tocref): ..instead do so here, new insn and split.
12514
db3de906 125152012-05-20 H.J. Lu <hongjiu.lu@intel.com>
12516
12517 * config/i386/driver-i386.c (host_detect_local_cpu): Support
12518 RDRND, F16C and FSGSBASE.
12519
c91c5188 125202012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12521
12522 PR rtl-optimzation/53373
12523 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
12524 call pattern. Update split patterns.
12525 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
12526 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
12527
362dc73c 125282012-05-20 Razya Ladelsky <razya@il.ibm.com>
b1182707 12529
12530 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
12531 for outer loops.
362dc73c 12532
18a71d50 125332012-05-18 Jan Hubicka <jh@suse.cz>
12534
12535 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
12536 (cgraph_process_new_functions): Process also aliases.
12537 * lto-streamer-out.c (struct sets): Remove.
12538 (trivally_defined_alias): Remove.
12539 (output_alias_pair_p): Remove.
12540 (output_unreferenced_globals): Remove.
12541 (produce_symtab); Do not handle alias pairs.
12542 (produce_asm_for_decls): Likewise.
12543 * lto-streamer-in.c (input_alias_pairs): Remove.
12544 (lto_read_body): Do not input alias pairs.
12545 (lto_input_constructors_and_inits): Remove.
12546
48c84ee3 125472012-05-18 Jan Hubicka <jh@suse.cz>
12548
b1182707 12549 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
12550 aliases.
48c84ee3 12551
a65b88bf 125522012-05-18 Jan Hubicka <jh@suse.cz>
12553
12554 * cgraphbuild.c (record_reference): Update.
12555 * lto-cgraph.c (lto_output_varpool_node): External vars
12556 are not in other partition even if they are not output
12557 in current partition.
12558 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
12559 argument; fix.
12560 (canonicalize_constructor_val): Take FROM_DECL argument.
12561 (fold_ctor_reference, fold_string_cst_ctor_reference,
12562 fold_array_ctor_reference, fold_nonarray_ctor_reference,
12563 fold_ctor_reference): Likewise.
12564 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
12565 * gimple.h (gimple_fold_builtin): Likewise.
12566
01922927 125672012-05-18 Olivier Hainque <hainque@adacore.com>
12568
12569 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
12570 $(libsubdir) as libexecsubdir.
12571
dcc95d92 125722012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12573
12574 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
12575 relied on signed overflow behavior.
12576
58ccfbea 125772012-05-18 Richard Guenther <rguenther@suse.de>
12578
12579 PR tree-optimization/53346
12580 * tree-loop-distribution.c (ldist_gen): Make sure to apply
12581 builtin transform even when only a single partition with
12582 all reads/writes exists.
12583
a72a38f4 125842012-05-18 Richard Guenther <rguenther@suse.de>
12585
12586 PR tree-optimization/53390
12587 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
12588 strided loads.
12589
97269507 125902012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12591
12592 * tree-ssa-reassoc.c (bip_map): Remove decl.
12593 (completely_remove_stmt): Remove function.
12594 (remove_def_if_absorbed_call): Remove function.
12595 (remove_visited_stmt_chain): Remove __builtin_powi handling.
12596 (possibly_move_powi): Remove function.
12597 (rewrite_expr_tree): Remove calls to possibly_move_powi.
12598 (rewrite_expr_tree_parallel): Likewise.
12599 (attempt_builtin_powi): Build multiplies explicitly rather than
12600 relying on the ops vector and rank system.
12601 (transform_stmt_to_copy): New function.
12602 (transform_stmt_to_multiply): Likewise.
12603 (reassociate_bb): Handle leftover operations after __builtin_powi
12604 optimization; build a final multiply if necessary.
12605
2d4bf241 126062012-05-18 Jan Hubicka <jh@suse.cz>
12607
12608 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
12609 (mark_functions_to_output): Fix sanity check.
b1182707 12610 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
2d4bf241 12611
a7745367 126122012-05-18 Richard Guenther <rguenther@suse.de>
12613
12614 * tree-flow.h (mark_symbols_for_renaming): Remove.
12615 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
b1182707 12616 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
a7745367 12617 (copy_debug_stmt): Likewise.
12618 (expand_call_inline): Likewise.
12619 (declare_return_variable): Mark the return variable for renaming
12620 if necessary.
12621
ffcc986d 126222012-05-18 Andrew Stubbs <ams@codesourcery.com>
12623
12624 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
12625 prototype.
12626 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
12627 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
12628 (ashrdi3,lshrdi3): Likewise.
12629 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
12630
3a966565 126312012-05-18 Meador Inge <meadori@codesourcery.com>
12632
12633 PR rtl-optimization/53352
12634 * cse.c (equiv_constant): Ignore paradoxical subregs.
12635
cb454387 126362012-05-17 Steven Bosscher <steven@gcc.gnu.org>
12637
12638 PR rtl-optimization/53125
12639 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
12640 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
12641 die in the basic block. Correctly top off REG_FREQ and
12642 REG_FREQ_CALLS_CROSSED.
12643 Remove do_not_gen.
12644 (regstat_compute_ri): Allocate and free local_live_last_luid.
12645 Remove do_not_gen.
12646 (regstat_bb_compute_calls_crossed): Correctly top off
12647 REG_FREQ_CALLS_CROSSED.
12648
aa419a52 126492012-05-17 Jan Hubicka <jh@suse.cz>
12650
b1182707 12651 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
12652 constructor over decl without.
aa419a52 12653 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
12654 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
b1182707 12655 * cgraphunit.c (process_function_and_variable_attributes): Finalize
aa419a52 12656 extrnal decls.
b1182707 12657 (mark_functions_to_output): Also accept bodies for functions with
12658 clones.
aa419a52 12659 (output_in_order): Skip external vars.
12660 * lto-cgraph.c (lto_output_node): External functions are never in other
12661 partition.
12662 (lto_output_varpool_node): Likewise.
12663 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
12664 forgotten initializers.
12665 * ipa.c (process_references): Handle external vars.
12666 (symtab_remove_unreachable_nodes): Update to handle external vars.
12667 (varpool_externally_visible_p): External vars are externally visible.
12668 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
12669 * varpool.c (varpool_remove_node): Remove constructor.
12670 (decide_is_variable_needed): Handle externals.
12671 (varpool_remove_unreferenced_decls): Likewise.
12672
db490cb6 126732012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
12674
12675 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
12676 (enable_warning_as_error): Do not special case Wuninitialized.
12677 * optc-gen.awk: Add sanity checks.
12678
19931eea 126792012-05-17 Jan Hubicka <jh@suse.cz>
a7847fbd 12680
12681 * ipa-reference.c (is_proper_for_analysis): Do not check flags
12682 that might change as result of global optimization.
12683 (analyze_function): Do not check analyzed and externally_visible
12684 flags; be happy about address dereferences.
12685 (propagate): Prune all_module_statics so it really contains just
12686 statics; prune all the local summaries.
12687 (ipa_reference_write_optimization_summary): Simplify.
12688
54418b27 126892012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
12690
b1182707 12691 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
54418b27 12692 * config/m68k/m68k-tables.opt: Regenerated.
12693 * doc/invoke.texi (M680x0 Options): Document.
12694
2670559d 126952012-05-16 Dave Boutcher <daveboutcher@gmail.com>
12696 Patrick Marlier <patrick.marlier@gmail.com>
12697
12698 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
12699 indirect calls.
12700
b4b3bbba 127012012-05-16 H.J. Lu <hongjiu.lu@intel.com>
12702
12703 * configure: Regenerated.
12704
1eaedae6 127052012-05-16 Andrew Pinski <apinski@cavium.com>
12706
12707 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
12708 GIMPLE_ASSIGN.
12709
ad35ffdc 127102012-05-16 David S. Miller <davem@davemloft.net>
12711
12712 * jump.c (delete_related_insns): If we remove a CALL, make sure
12713 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
12714
97bad265 127152012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12716
12717 PR tree-optimization/53217
12718 * tree-ssa-reassoc.c (bip_map): New static variable.
12719 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
12720 (attempt_builtin_powi): Save feeding multiplies on a stack.
12721 (reassociate_bb): Create and destroy bip_map.
12722
9281483c 127232012-05-16 Olivier Hainque <hainque@adacore.com>
12724
12725 * Makefile.in (install-no-fixedincludes): New target, former toplevel
12726 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
12727 Add comments and improve stamp preservation across the whole sequence.
12728 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
12729
cbbd431d 127302012-05-16 Richard Guenther <rguenther@suse.de>
12731
12732 * tree-inline.c (insert_init_stmt): Do not call
12733 mark_symbols_for_renaming.
12734 (setup_one_parameter): Avoid initializing unused parameters.
12735 (declare_return_variable): Properly handle DECL_BY_REFERENCE
12736 return vars in SSA form.
12737
35505f9a 127382012-05-16 Richard Guenther <rguenther@suse.de>
12739
12740 * tree-flow.h (get_virtual_var): Remove.
12741 * tree-dfa.c (get_virtual_var): Likewise.
12742
1e8cf080 127432012-05-16 Richard Guenther <rguenther@suse.de>
12744
12745 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
12746 Remove set-only bitmap of new names.
12747 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
12748 CFG hooks.
12749 * tree-flow.h (ssa_names_to_replace): Remove.
12750 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
12751
5ef4302d 127522012-05-16 Richard Guenther <rguenther@suse.de>
12753
12754 PR tree-optimization/53364
12755 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
12756 detect a view-conversion of the decl.
12757
a60f3e81 127582012-05-16 Dodji Seketeli <dodji@redhat.com>
12759
12760 PR preprocessor/7263
12761 * c-tree.h (enum c_declspec_word): Declare new enum.
12762 (struct c_declspecs::locations): New member.
12763 (declspecs_add_qual, declspecs_add_scspec)
12764 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
12765 location parameter.
12766 * c-decl.c (build_null_declspecs): Initialize the new struct
12767 c_declspecs::locations member.
12768 (declspecs_add_addrspace): Take a location parameter for the
12769 address space. Store it onto declaration specifiers.
12770 (declspecs_add_qual): Likewise, take a location parameter for the
12771 qualifier.
12772 (declspecs_add_type): Likewise, take a location parameter for the
12773 type specifier.
12774 (declspecs_add_scspec): Likewise, take a location parameter for
12775 the storage class specifier.
12776 (declspecs_add_attrs): Likewise, take a location parameter for the
12777 first attribute.
12778 (declspecs_add_alignas): Likewise, take a location parameter for
12779 the alignas token.
12780 (finish_declspecs): For diagnostics, use the location of the
12781 relevant declspec, instead of the global input_location.
12782 * c-parser.c (c_parser_parameter_declaration): Pass the precise
12783 virtual location of the declspec to the declspecs-setters.
12784 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
12785 repeatedly.
12786
e54ce707 127872012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
12788
12789 * configure.ac: Stack protector enabling for Android targets.
12790 * configure: Regenerate.
12791
f42197a5 127922012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
12793
12794 * ira.c (pseudo_move_insn): Delete.
12795 (find_moveable_pseudos): Don't set it.
12796 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
12797 the definitions of the original pseudo. Delete all of them.
12798
76303083 127992012-05-16 Olivier Hainque <hainque@adacore.com>
12800
12801 * config/rs6000/rs6000-opts.h (enum processor_type): Add
12802 PROCESSOR_PPC8548.
12803 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
12804 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
12805 * config/rs6000/8540.md: indicate that the units/patterns apply to
12806 ppc8548 as well.
12807
12808 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
12809 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
12810 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
12811 related flags, check that what is queried is supported by the selected
12812 configuration. Rework the single/double_float and MASK_STRING resets to
12813 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
12814 costs for PROCESSOR_PPC8548 as well.
12815 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
12816 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
12817 statement instead of a sequence of ifs.
12818
12819 * config/rs6000/rs6000.h (TARGET_E500): Remove.
12820 (TARGET_NO_LWSYNC): Adjust accordingly.
12821 * config/rs6000/e500.h (TARGET_E500): Remove.
12822 (CHECK_E500_OPTIONS): Adjust accordingly.
12823 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
12824 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
12825 * config/rs6000/linuxspe.h: Likewise.
12826 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
12827 superfluous comments.
12828 * config/rs6000/e500-double.h: Remove.
12829
12830 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
12831 default to with_cpu=8548 if --enable-e500-double, and to 8540
12832 otherwise.
12833 (set misc flags section): For powerpc*|rs6000*, remove inclusion
12834 of e500-double.h for --enable-e500-double.
12835
136fa403 128362012-05-16 Olivier Hainque <hainque@adacore.com>
12837
12838 * Makefile.in (s-header-vars): Resort to -n instead of trailing
12839 -e d in sed invocation.
12840
816c3ff2 128412012-05-16 Hans-Peter Nilsson <hp@axis.com>
12842
12843 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
12844 source-code.
12845 * doc/tm.texi: Regenerate.
12846
de9d5a8c 128472012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
12848
12849 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
12850
f2a4755d 128512012-05-15 Jakub Jelinek <jakub@redhat.com>
12852
12853 PR target/53358
12854 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
12855 that operands[2] is either immediate, or q_regs_operand.
12856
37ffa8fe 128572012-05-15 Richard Guenther <rguenther@suse.de>
12858
12859 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
12860 (assemble_thunk): Likewise. Manually rename and register
12861 function arguments.
12862
e7ea1c21 128632012-05-15 Richard Guenther <rguenther@suse.de>
12864
12865 PR tree-optimization/53355
12866 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
12867 by constants.
12868
d1f1c0a9 128692012-05-15 Tristan Gingold <gingold@adacore.com>
12870
b1182707 12871 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
d1f1c0a9 12872
5168aa67 128732012-05-15 Richard Guenther <rguenther@suse.de>
12874
12875 * gimple.c (gimple_set_modified): Move ...
12876 * gimple.h (gimple_set_modified): ... here.
12877
135c4579 128782012-05-15 Tristan Gingold <gingold@adacore.com>
12879
12880 * ira-color.c (move_spill_restore): Add a guard.
12881
675fed0b 128822012-05-15 Tristan Gingold <gingold@adacore.com>
12883
12884 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
12885 plus_constant.
12886
94a6770c 128872012-05-15 Eric Botcazou <ebotcazou@adacore.com>
12888
12889 * gimplify.c (gimplify_init_constructor): Do a block move for very
12890 small objects as well.
12891
e453e47c 128922012-05-15 Bernd Schmidt <bernds@codesourcery.com>
12893
12894 * ira.c (find_moveable_pseudos): Skip registers whose
12895 DF_REG_EQ_USE_COUNT is nonzero.
12896
c9bf5a0e 128972012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
12898
b1182707 12899 * doc/md.texi (fma): Define to only be applicable for single rounding.
d1f1c0a9 12900
c6dab7d2 129012012-05-14 Uros Bizjak <ubizjak@gmail.com>
12902
12903 PR target/46098
12904 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
12905 generate target register for "load" class builtins.
12906
12907 Revert:
12908 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
12909
12910 PR target/46098
12911 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
12912 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
12913 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
12914 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
12915 (<sse>_movu<ssemodesuffix>): New expander.
12916 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
12917 (avx_movdqu<avxmodesuffix>): New expander.
12918 (*sse2_movdqu): Rename from sse2_movdqu.
12919 (sse2_movdqu): New expander.
12920
801c4432 129212012-05-14 Marc Glisse <marc.glisse@inria.fr>
12922
12923 PR target/52607
12924 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
12925 (canonicalize_perm): ... new function.
12926 (expand_vec_perm_2vperm2f128_vshuf): New function.
12927 (ix86_expand_vec_perm_const_1): Call it.
12928
5dc7473d 129292012-05-14 Andrew Pinski <apinski@cavium.com>
12930 H.J. Lu <hongjiu.lu@intel.com>
12931 Jakub Jelinek <jakub@redhat.com>
12932
12933 PR target/53315
c6dab7d2 12934 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
5dc7473d 12935 (xbegin): Updated.
12936
f449422d 129372012-05-14 Jakub Jelinek <jakub@redhat.com>
12938
130129dd 12939 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
12940 lineno 1 the same as lineno 0 before first start file directive.
12941 (optimize_macinfo_range): Likewise.
12942
f449422d 12943 * dwarf2out.c (have_macinfo): Define.
12944 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
12945 attribute, don't force empty compilation unit and don't emit any
12946 .debug_macinfo/.debug_macro section if macinfo_table is empty.
12947
5a9cc803 129482012-05-14 Georg-Johann Lay <avr@gjlay.de>
12949
12950 PR target/53344
12951 * config/avr/avr.c (avr_const_address_lo16): Remove.
12952 (avr_assemble_integer): Print ".byte lo8(x)",
12953 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
b1182707 12954 .warning if 3-byte address is assembled.
5a9cc803 12955 * doc/extend.texi (AVR Named Address Spaces): Document that
12956 binutils 2.23 is needed to assemble 3-byte addresses.
12957
a9696ee9 129582012-05-14 Richard Guenther <rguenther@suse.de>
12959
12960 * tree-vect-data-refs.c (vect_setup_realignment): Remove
12961 call to mark_symbols_for_renaming.
12962 (vect_permute_load_chain): Likewise.
12963 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
12964 instead of calling mark_symbols_for_renaming.
12965 * tree-vect-stmts.c (read_vector_array): Remove call to
12966 mark_symbols_for_renaming.
12967 (write_vector_array): Likewise.
12968 (vectorizable_call): Likewise.
12969 (vectorizable_store): Likewise.
12970 (vectorizable_load): Likewise.
12971 * matrix-reorg.c (transform_allocation_sites): Likewise.
12972 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
12973 (create_expression_by_pieces): Likewise.
12974
95eb4ad3 129752012-05-14 Richard Guenther <rguenther@suse.de>
12976
12977 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
12978 of statements for renaming.
12979 (force_gimple_operand_1): Likewise, consistently for both
12980 calls to force_gimple_operand and force_gimple_operand_gsi.
12981
083152fb 129822012-05-14 Richard Guenther <rguenther@suse.de>
12983
12984 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
12985 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
12986 to update_ssa.
12987 (expand_omp_for): Likewise.
12988 (expand_omp_for_generic): Adjust conditional add to referenced vars.
12989 Use make_rename_temp for temporaries that should be rewritten into
12990 SSA form.
12991 (expand_omp_for_static_nochunk): Likewise.
12992 (expand_omp_atomic_pipeline): Likewise.
12993
506aa8fc 129942012-05-14 Richard Guenther <rguenther@suse.de>
12995
12996 PR tree-optimization/53331
12997 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
12998 strided loads.
12999 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
13000
d3b7ee7c 130012012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
13002
13003 PR 53063
13004 * doc/options.texi: (LangEnabledBy): Document it.
13005 * optc-gen.awk: Handle LangEnabledBy.
13006 * opth-gen.awk: Generate declaration for lang-specific functions.
13007 * opt-read.awk: Record lang numbers.
13008 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
13009 (lang_sanitized_name): New.
13010
c8010b80 130112012-05-14 Bernd Schmidt <bernds@codesourcery.com>
13012
13013 * attribs.c (decl_attributes): Avoid emitting a warning if
13014 ATTR_FLAG_BUILT_IN.
13015 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
13016 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
c8010b80 13017 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
13018 define a string "1".
13019 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
13020 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
13021 BUILT_IN_STRCPY): Use it for these functions.
13022 * postreload.c (reload_combine): Deal with SETs inside
13023 CALL_INSN_FUNCTION_USAGE.
13024 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
13025 Look for REG_RETURNED notes and use a cheap restore if possible.
13026 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
13027 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
13028 * ira-build.c (ira_create_allocno, create_cap_allocno,
13029 propagate_allocno_info, propagate_some_info_from_allocno,
13030 copy_info_to_removed_store_destination, ira_flattening): Handle it.
13031 * ira-lives.c (pseudo_regno_single_word_and_live_p,
13032 find_call_crossed_cheap_reg): New static functions.
13033 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
13034 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
13035 a REG_RETURNED note in that case.
13036 * ira.c (setup_reg_renumber): Change assert to allow cases where
13037 allocnos only cross calls for which they are cheap to restore.
13038 * ira-costs.c (ira_tune_allocno_costs): Compare
13039 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
13040 than 0.
13041 * reg-notes.def (REG_RETURNED): New note.
13042 * cse.c (cse_insn): Likewise.
13043 * sched-deps.c (sched_analyze_insn): Likewise.
13044 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
13045 * calls.c (decl_return_flags): New static function.
13046 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
13047 functions that return one of their arguments.
c8010b80 13048 * regcprop.c (struct kill_set_value_data): New.
13049 (kill_set_value): Interpret data as a pointer to such a struct.
13050 Do nothing if the caller wants the register to be ignored.
13051 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
13052
1c88e4bc 130532012-05-14 Richard Guenther <rguenther@suse.de>
13054
13055 PR tree-optimization/53340
13056 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
13057
a31fefa3 130582012-05-14 Richard Guenther <rguenther@suse.de>
13059
13060 * gimplify.c (gimplify_expr): Remove odd code.
13061
d9906773 130622012-05-14 Eric Botcazou <ebotcazou@adacore.com>
13063
13064 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
13065 into a PLUS_EXPR byte offset.
13066
13067 * tree-ssa-pre.c (can_value_number_call): Delete.
13068 (compute_avail): Skip all statements with side effects.
13069 <GIMPLE_CALL>: Skip calls to internal functions.
13070
3e894428 130712012-05-13 Steven Bosscher <steven@gcc.gnu.org>
13072
13073 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
13074
70059cea 130752012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
13076
13077 * common.opt (Wtype-limits): Use EnabledBy.
13078
513529cd 130792012-05-13 Uros Bizjak <ubizjak@gmail.com>
13080
13081 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
13082 (pushtf splitter): Ditto.
13083 (movtf): Ditto.
13084 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
13085 (<code>tf2): Enable for TARGET_SSE.
13086 (*absnegtf2_sse): Ditto.
13087 (copysign<mode>3): Enable TFmode for TARGET_SSE.
13088 (copysign<mode>3_const): Ditto.
13089 (copysign<mode>3_var): Ditto.
13090 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
13091 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
13092 (*<code>tf3): Ditto.
13093 * config/i386/i386.c (struct builtin_description bdesc_args)
13094 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
13095 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
13096 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
13097 Emit a normal call if SSE isn't available.
13098
596112aa 130992012-05-13 Uros Bizjak <ubizjak@gmail.com>
13100
13101 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
13102 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
13103 (<code><mode>3): Ditto.
13104 (*andnot<mode>3): Ditto.
13105 (*andnottf3): Ditto.
13106 (*<code><mode>3): Ditto.
13107 (<code>tf3): Ditto.
13108
4584d89f 131092012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
13110
13111 * optc-gen.awk: Error instead of warning for conflicting help.
13112
cc6e6715 131132012-05-12 Jason Merrill <jason@redhat.com>
13114
13115 PR debug/53235
13116 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
13117 comdat types.
13118
ec3aa8fe 131192012-05-12 Eric Botcazou <ebotcazou@adacore.com>
13120
13121 * function.c (requires_stack_frame_p): If the function can throw
13122 non-call exceptions, return true if the insn can throw internally.
13123
05765a91 131242012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
13125
13126 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
13127
c4d3c065 131282012-05-12 Uros Bizjak <ubizjak@gmail.com>
13129
13130 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
13131 ORDERED and UNORDERED conditions.
13132
0de7f8dd 131332012-05-11 Richard Guenther <rguenther@suse.de>
13134
13135 * tree-flow.h (referenced_var_check_and_insert): Remove.
13136 (find_new_referenced_vars): Likewise.
13137 * tree-dfa.c (referenced_var_check_and_insert): Make static.
13138 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
13139 * tree-inline.c (copy_bb): Use find_referenced_vars_in
13140 instead of find_new_referenced_vars.
13141 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
13142
615091c1 131432012-05-11 Richard Guenther <rguenther@suse.de>
13144
13145 * tree-pass.h (pass_rest_of_compilation,
13146 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
13147 Remove.
13148 * passes.c (pass_all_optimizations, pass_postreload,
13149 pass_all_early_optimizations): Make static.
13150 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
13151 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
13152 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
13153 (delete_tree_ssa): Do not call fini_phinodes.
13154 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
13155
fbb6fbd8 131562012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
13157
13158 PR 53063
13159 * doc/options.texi (EnabledBy): Document
13160 * opts.c: Include opts.h and options.h before tm.h.
13161 (finish_options): Do not handle some sub-options here...
ea1760a3 13162 (common_handle_option): ... instead call common_handle_option_auto
13163 here.
fbb6fbd8 13164 * optc-gen.awk: Handle EnabledBy.
13165 * opth-gen.awk: Declare common_handle_option_auto.
13166 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
13167 (Wmaybe-uninitialized): Likewise.
c6dab7d2 13168 (Wunused-but-set-variable): Likewise.
13169 (Wunused-function): Likewise.
13170 (Wunused-label): Likewise.
13171 (Wunused-value): Likewise.
13172 (Wunused-variable): Likewise.
13173 * opt-read.awk: Create opt_numbers array.
fbb6fbd8 13174
f634c3e9 131752012-05-11 Richard Guenther <rguenther@suse.de>
13176
13177 PR tree-optimization/53295
13178 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
13179 strides.
13180 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
13181 strides when analyzing data-references in a loop context.
13182 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
13183 non-constant strides for now.
13184 (vect_enhance_data_refs_alignment): Ignore data references
13185 that are strided loads.
13186 (vect_analyze_data_ref_access): Handle non-constant strides.
13187 (vect_check_strided_load): Verify the data-reference is a load.
13188 (vect_analyze_data_refs): Restructure to make strided load
13189 support not dependent on gather support.
13190 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
13191 when doing strided or gather loads.
13192 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
13193 integer_zerop to compare stride with zero.
13194
91af12fe 131952012-05-11 H.J. Lu <hongjiu.lu@intel.com>
13196
596112aa 13197 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
91af12fe 13198
015a842e 131992012-05-11 Jan Hubicka <jh@suse.cz>
13200
13201 PR bootstrap/53300
13202 * varpool.c (varpool_assemble_decl): Also output constat pool entries
13203 that output_constant_pool missed.
13204
b87e70ca 132052012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
13206
13207 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
13208 MULTILIB_EXTRA_OPTS.
13209
2b26d531 132102012-05-11 Uros Bizjak <ubizjak@gmail.com>
13211
13212 PR target/53291
13213 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
13214
7c93cdac 132152012-05-11 Uros Bizjak <ubizjak@gmail.com>
13216
13217 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
13218 optimization for TARGET_AVX.
13219 (*movti_internal_sse): Ditto.
13220 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
13221 (*movdi_internal): Ditto.
13222 (*movsi_internal): Ditto.
13223 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
13224 (*movdf_internal_rex64): Ditto.
13225 (*movfd_internal): Ditto.
13226 (*movsf_internal): Ditto.
13227 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
13228
670b32ab 132292012-05-10 Eric Botcazou <ebotcazou@adacore.com>
13230
13231 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
13232 reference as size attribute.
13233
28d5c3d9 132342012-05-10 Eric Botcazou <ebotcazou@adacore.com>
13235 Tristan Gingold <gingold@adacore.com>
13236
13237 * doc/md.texi (Standard Names): Document probe_stack_address.
13238 * explow.c (emit_stack_probe): Handle probe_stack_address.
13239 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
13240 (UNSPECV_PROBE_STACK_RANGE): Likewise.
13241 (probe_stack_address): New insn.
13242 (probe_stack_range): Likewise.
13243 * config/ia64/ia64.c: Include common/common-target.h.
13244 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
13245 checking is enabled.
13246 (ia64_emit_probe_stack_range): New function.
13247 (output_probe_stack_range): Likewise.
13248 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
13249 builtin stack checking is enabled.
13250 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
13251 and UNSPECV_PROBE_STACK_ADDRESS.
13252 (unknown_for_bundling_p): New predicate.
13253 (group_barrier_needed): Use important_for_bundling_p.
13254 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
13255 (issue_nops_and_insn): Likewise.
13256 (bundling): Likewise.
13257 (final_emit_insn_group_barriers): Likewise.
13258 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
13259 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
13260 (STACK_CHECK_PROTECT): Likewise.
13261 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13262
e8e650cf 132632012-05-10 Jan Hubicka <jh@suse.cz>
13264
13265 * ipa-inline.c (update_all_callee_keys): Remove.
13266 (inline_small_functions): Simplify priority updating.
13267
303c3a7d 132682012-05-10 Jan Hubicka <jh@suse.cz>
13269
13270 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
13271
91f0ab48 132722012-05-10 Jan Hubicka <jh@suse.cz>
13273
13274 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
13275 (symtab_remove_unreachable_nodes): ... this one.
13276 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
13277 * cgraphunit.c (ipa_passes): Update.
13278 * cgraphclones.c (cgraph_materialize_all_clones): Update.
13279 * cgraph.c (cgraph_release_function_body): Only turn initial
13280 into error mark when initial was previously set.
13281 * ipa-inline.c (ipa_inline): Update.
13282 * ipa.c: Include ipa-inline.h
13283 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
13284 (enqueue_node): New function.
13285 (process_references): Update.
13286 (symtab_remove_unreachable_nodes): Cleanup.
13287 * passes.c (execute_todo, execute_one_pass): Update.
13288
b105f58b 132892012-05-10 Vladimir Makarov <vmakarov@redhat.com>
13290
13291 PR rtl-optimization/53125
0399122b 13292 * ira.c (ira): Call find_moveable_pseudos and
b105f58b 13293 move_unallocated_pseudos if only ira_conflicts_p is true.
13294
dab25421 132952012-05-10 Uros Bizjak <ubizjak@gmail.com>
13296
13297 * config/i386/i386.md (*movoi_internal_avx): Handle
13298 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
13299 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
13300 (*movti_internal_sse): Ditto.
13301 (*movtf_internal): Ditto.
13302 * config/i386/sse.md (ssePSmode): New mode attribute.
13303 (*move<mode>_internal): Use ssePSmode.
13304 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
13305 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
13306 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
13307 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
13308
72e1426b 133092012-05-10 Eric Botcazou <ebotcazou@adacore.com>
13310
13311 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
13312 DECL_ORIGINAL_TYPE if it is present.
13313
56828342 133142012-05-10 Nick Clifton <nickc@redhat.com>
13315
13316 PR target/53120
13317 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
13318 a "0" constraint to being a (match_dup 0).
13319
dcb06804 133202012-05-10 Richard Guenther <rguenther@suse.de>
13321
13322 * stor-layout.c (byte_from_pos): Amend comment.
13323
98c9b52b 133242012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13325
13326 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
13327 Document requirement to call in constructors.
13328
dab25421 13329 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
98c9b52b 13330
5a1fe2db 133312012-05-10 Richard Guenther <rguenther@suse.de>
13332
13333 * tree.h (TYPE_IS_SIZETYPE): Remove.
13334 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
13335 (extract_muldiv_1): Likewise.
13336 * gimple.c (gtc_visit): Likewise.
13337 (gimple_types_compatible_p): Likewise.
13338 (iterative_hash_canonical_type): Likewise.
13339 (gimple_canonical_types_compatible_p): Likewise.
13340 * gimplify.c (gimplify_one_sizepos): Likewise.
13341 * print-tree.c (print_node): Likewise.
13342 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
13343
72b48d28 133442012-05-09 Uros Bizjak <ubizjak@gmail.com>
13345
13346 PR target/52908
13347 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
13348 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
13349 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
13350 instead of xop_mulv2div2di3_low.
13351 (xop_p<macs>dql): Fix vec_select selector.
13352 (xop_p<macs>dqh): Ditto.
13353 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
13354 (xop_mulv2div2di3_high): Ditto.
13355
d834564a 133562012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
13357
13358 PR c++/53289
13359 * diagnostic.h (diagnostic_context): Add last_location.
13360 * diagnostic.c (diagnostic_initialize): Initialize it.
13361 (diagnostic_show_locus): Use it.
13362
fd0ccb39 133632012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
13364
c6dab7d2 13365 * doc/extend.texi (Function Attributes): Point xref to section
fd0ccb39 13366 about Pragmas.
13367
f2dce612 133682012-05-09 Uros Bizjak <ubizjak@gmail.com>
13369
13370 * config/i386/i386.c (*movdf_internal_rex64): Remove
13371 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
13372 Calculate "mode" attribute according to
13373 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
13374 (*movdf_internal): Ditto.
13375
034788fc 133762012-05-09 Uros Bizjak <ubizjak@gmail.com>
13377
13378 PR target/44141
13379 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
13380 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
13381 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13382 or when optimizing for size.
13383 * config/i386/sse.md (*mov<mode>_internal): Remove
13384 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
13385 Calculate "mode" attribute according to optimize_function_for_size_p
13386 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
13387 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
13388 depending on the mode of the instruction. Calculate "mode" attribute
13389 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
13390 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
13391 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
13392
ea679361 133932012-05-09 Georg-Johann Lay <avr@gjlay.de>
13394
13395 PR target/53256
13396 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
13397 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
13398 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
13399 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
13400 (expand_prologue): Move initialization of cfun->machine->is_naked,
13401 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
13402 (avr_set_current_function): ...this new static function.
13403 (TARGET_SET_CURRENT_FUNCTION): New define.
13404 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
13405 checking attributes of current_function_decl.
13406 (avr_regs_to_save): Ditto.
13407 (signal_function_p): Rename to avr_signal_function_p.
13408 (interrupt_function_p): Rename to avr_interrupt_function_p.
13409
13410 * doc/extend.texi (Function Attributes): Better explanation of
13411 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
13412 alphabetical order.
13413
8faf5d30 134142012-05-09 Michael Matz <matz@suse.de>
13415
13416 PR tree-optimization/53185
13417 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
13418 peeling when we see strided loads.
13419
1ad03cbf 134202012-05-09 Matthias Klose <doko@ubuntu.com>
13421
13422 * gcc-ar.c (main): Don't check for execute bits for the plugin.
13423
aa1572b5 134242012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
13425
13426 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
13427 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
13428 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
13429 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
13430 (USE_LOAD_POST_INCREMENT): Define.
13431 (USE_LOAD_PRE_INCREMENT): Define.
13432 (USE_LOAD_POST_DECREMENT): Define.
13433 (USE_LOAD_PRE_DECREMENT): Define.
13434 (USE_STORE_PRE_DECREMENT): Define.
13435 (USE_STORE_PRE_INCREMENT): Define.
13436 (USE_STORE_POST_DECREMENT): Define.
13437 (USE_STORE_POST_INCREMENT): Define.
13438 (arm_auto_incmodes): Add enumeration.
13439 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
13440 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
13441
2f5a3c4a 134422012-05-09 Jakub Jelinek <jakub@redhat.com>
13443
13444 PR tree-optimization/53226
13445 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
13446 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
13447 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
13448 doesn't need to be revisited, look for earliest stmt with
13449 !gimple_plf (stmt, GF_PLF_1) if something changed.
13450
e5ed43a0 134512012-05-09 Terry Guo <terry.guo@arm.com>
13452
13453 * genmultilib: Update copyright dates.
13454 * doc/fragments.texi: Ditto.
13455
cec45616 134562012-05-09 Terry Guo <terry.guo@arm.com>
13457
13458 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
13459 * genmultilib (MULTILIB_REQUIRED): New.
13460 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
13461
e7430948 134622012-05-09 Richard Guenther <rguenther@suse.de>
13463
13464 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
13465 (vect_do_peeling_for_loop_bound): Likewise.
13466 (vect_do_peeling_for_alignment): Likewise.
13467 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
13468 (vect_do_peeling_for_loop_bound): Get check_profitability and
13469 threshold as parameters.
13470 (vect_do_peeling_for_alignment): Likewise.
13471 (vect_loop_versioning): Likewise.
13472 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
13473 and threshold here. Control where to put the check here.
13474
87cf5753 134752012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
13476
13477 PR middle-end/53249
13478 * dwarf2out.h (get_address_mode): Move declaration to...
13479 * rtl.h: ...here.
13480 * dwarf2out.c (get_address_mode): Move definition to...
13481 * rtlanal.c: ...here.
13482 * var-tracking.c (get_address_mode): Delete.
13483 * combine.c (find_split_point): Use get_address_mode instead of
13484 targetm.addr_space.address_mode.
13485 * cselib.c (cselib_record_sets): Likewise.
13486 * dse.c (canon_address, record_store): Likewise.
13487 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
13488 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
13489 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
13490 (expand_expr_real_1): Likewise.
13491 * ifcvt.c (noce_try_cmove_arith): Likewise.
13492 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
13493 * reload.c (find_reloads): Likewise.
13494 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13495 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
13496
31082222 134972012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
13498
13499 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
13500 information from the instruction produced.
13501
2765f7eb 135022012-05-09 Richard Guenther <rguenther@suse.de>
13503
13504 * stor-layout.c (bit_from_pos): Document.
13505 (byte_from_pos): Likewise. Optimize.
13506 (pos_from_bit): Likewise.
13507 (normalize_offset): Use pos_from_bit instead of replicating it.
13508
11dd6494 135092012-05-09 Alan Modra <amodra@gmail.com>
13510
13511 PR target/53271
13512 * config/rs6000/rs6000.c (gen_frame_set): New function.
13513 (gen_frame_load, gen_frame_store): New functions.
13514 (rs6000_savres_rtx): Use the above.
13515 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
13516 Correct mode used for CR2 in save/restore_world patterns.
13517 Don't emit instructions for eh_return frame unwind reg info.
13518
3d1c0354 135192012-05-08 Jan Hubicka <jh@suse.cz>
13520
13521 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
13522 with VALUE_EXPR.
13523 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
13524 are removable.
13525 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
13526 need to wrapup.
13527 (compile_file): Do not output variables.
13528 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
13529 output it.
13530 * langhooks.c: Include timevar.h
13531 (write_global_declarations): Finalize compilation unit after wrapup;
13532 set timevars correctly.
13533 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
13534 not to be added to varpool.
13535 * varpool.c (varpool_assemble_decl): Sanity check that we are called
13536 only on cases where it makes sense; skip constant pool and value expr
13537 vars.
13538
a083d7d2 135392012-05-08 David S. Miller <davem@davemloft.net>
13540
13541 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
13542 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
13543 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
13544
e5d6fbb8 135452012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
13546
13547 PR rtl-optimization/53278
13548 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
13549 speed_p code from earlier patch.
13550
0e1dddb4 135512012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
13552
13553 PR target/51244
13554 * config/sh/sh.md (*branch_true, *branch_false): New insns.
13555
034788fc 135562012-05-08 Teresa Johnson <tejohnson@google.com>
4ef7becb 13557
13558 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
13559 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
13560
f41db742 135612012-05-08 Jan Hubicka <jh@suse.cz>
13562
13563 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
13564 (cgraph_create_node_1): Rename to ...
13565 (cgraph_create_empty_node): ... this one; export.
13566 (cgraph_create_node): Update.
13567 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
13568 (cgraph_create_edge_including_clones): Likewise.
13569 (cgraph_find_replacement_node): Likewise.
13570 (cgraph_clone_edge): Likewise.
13571 (cgraph_clone_node): Likewise.
13572 (clone_function_name): Likewise.
13573 (cgraph_create_virtual_clone): Likewise.
13574 (cgraph_remove_node_and_inline_clones): Likewise.
034788fc 13575 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
f41db742 13576 * cgraph.h: Reorder declarations so they match file of origin.
13577 (cgraph_create_empty_node): Declare.
13578 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
13579 (cgraph_copy_node_for_versioning): Likewise.
13580 (cgraph_function_versioning): Likewise.
13581 (cgraph_materialize_clone): Likewise.
13582 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
13583 (cgraph_materialize_all_clones): Likewise.
13584 * cgraphclones.c: New file.
13585 * Makefile.in: Update for cgraphclones.
13586
473a6f3e 135872012-05-08 Uros Bizjak <ubizjak@gmail.com>
13588
d44bd47c 13589 PR target/53176
473a6f3e 13590 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
13591 (ix86_rtx_costs): Handle SET.
13592
43e94e51 135932012-05-08 Michael Matz <matz@suse.de>
13594
13595 * basic-block.h (struct rtl_bb_info): Remove visited member and
13596 move head_ member to ...
13597 (struct basic_block_def.basic_block_il_dependent): ... the new
13598 member x, replacing but containing old member rtl.
13599 (enum bb_flags): New BB_VISITED flag.
13600 (BB_HEADER, BB_FOOTER): New macros.
13601
13602 * jump.c (mark_all_labels): Adjust.
13603 * cfgcleanup.c (try_optimize_cfg): Adjust.
13604 * cfglayout.c (record_effective_endpoints): Adjust.
13605 (relink_block_chain): Ditto (and don't fiddle with visited).
13606 (fixup_reorder_chain): Adjust.
13607 (fixup_fallthru_exit_predecessor): Ditto.
13608 (cfg_layout_duplicate_bb): Ditto.
13609 * combine.c (update_cfg_for_uncondjump): Adjust.
473a6f3e 13610 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
43e94e51 13611 (bb_visited_trace): New accessor.
13612 (mark_bb_visited): Move in front.
13613 (rotate_loop): Use bb_visited_trace.
13614 (find_traces_1_round): Ditto.
13615 (emit_barrier_after): Ditto.
13616 (copy_bb): Ditto, and initialize visited on resize.
13617 (reorder_basic_blocks): Initize visited member.
13618 (duplicate_computed_gotos): Clear bb flags at start, use
13619 BB_VISITED flags.
13620
13621 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
13622 (rtl_verify_flow_info_1): Ditto.
13623 (cfg_layout_split_block): Ditto.
13624 (cfg_layout_delete_block): Ditto.
13625 (cfg_layout_merge_blocks): Ditto.
13626 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
13627
826e3285 136282012-05-08 Hans-Peter Nilsson <hp@axis.com>
13629
13630 PR target/53272
13631 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
13632 when a constant source operand matches an "I" constraint, the "no
13633 CC0 change" applies to a register-destination only, not a
13634 strict_low_part-destination.
13635
42756cae 136362012-05-08 Richard Guenther <rguenther@suse.de>
13637
13638 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
13639 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
13640
8a92b4c3 136412012-05-08 Georg-Johann Lay <avr@gjlay.de>
13642
13643 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
13644
13645 * doc/avr-mmcu.texi: New auto-generated file.
13646 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
13647 to document all valid -mmcu= arguments.
13648
13649 * config/avr/avr.h (arch_info_s): New struct definition.
13650 * config/avr/avr-devices.c (avr_texinfo): New variable.
13651 * config/avr/gen-avr-mmcu-texi.c: New file.
13652 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
13653
fd757b76 136542012-05-08 Dehao Chen <dehao@google.com>
13655
28a0c749 13656 * predict.c (find_qualified_ssa_name): New.
13657 (find_ssa_name_in_expr): New.
13658 (find_ssa_name_in_assign_stmt): New.
13659 (is_comparison_with_loop_invariant_p): New.
13660 (is_bound_expr_similar): New.
13661 (predict_iv_comparison): New.
fd757b76 13662 (predict_loops): Add heuristic for loop-nested branches that compare an
13663 induction variable to a loop bound variable.
28a0c749 13664 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
fd757b76 13665
128e3935 136662012-05-08 Uros Bizjak <ubizjak@gmail.com>
13667
13668 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
13669 TARGET_BDVER2 defines where appropriate.
13670
61f41b94 136712012-05-07 Eric Botcazou <ebotcazou@adacore.com>
13672
13673 * configure.ac (PLUGIN_LD): Rename into...
13674 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
13675 * config.in: Regenerate.
13676 * configure: Likewise.
13677 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
13678
96c3acd0 136792012-05-07 Eric Botcazou <ebotcazou@adacore.com>
13680
13681 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
13682 computation using the precision of the index type.
13683 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
13684 (fold_array_ctor_reference): Do index computations in the index type.
13685
136862012-05-07 Georg-Johann Lay <avr@gjlay.de>
b51b04ad 13687
13688 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
13689 down to plus_constant.
13690 (expand_epilogue): Ditto.
13691
98799adc 136922012-05-07 Steven Bosscher <steven@gcc.gnu.org>
13693
13694 * postreload.c (reload_cse_regs): Make static.
13695 * reload.h (reload_cse_regs): Remove prototype.
13696
7c0618c6 136972012-05-07 Richard Henderson <rth@redhat.com>
13698
13699 * config/alpha/alpha.md (clear_cache): New pattern.
13700
fe812b34 137012012-05-07 Steven Bosscher <steven@gcc.gnu.org>
13702
13703 PR middle-end/53245
13704 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
13705 is folded to a type boundary value, verify that the resulting case
13706 label is still a care range.
13707
dbfd6d04 137082012-05-07 Uros Bizjak <ubizjak@gmail.com>
13709
13710 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
13711 only for TARGET_GENERIC, when not optimizing for size.
13712 (*ffs<mode>_1): Ditto.
13713
9a9033a9 137142012-05-07 Steven Bosscher <steven@gcc.gnu.org>
13715
13716 * tree-cfg.c (verify_gimple_switch): Tighten checks.
13717
0e443ce1 137182012-05-07 Jakub Jelinek <jakub@redhat.com>
13719
13720 PR tree-optimization/53239
128e3935 13721 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
13722 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
0e443ce1 13723
29f2d4e5 137242012-05-07 Richard Guenther <rguenther@suse.de>
13725
13726 PR tree-optimization/53195
13727 * tree-inline.c (setup_one_parameter): Properly add referenced
13728 vars from the parameters new known value.
13729
f4831ba5 137302012-05-07 Steven Bosscher <steven@gcc.gnu.org>
13731
13732 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
13733 (sched_branch_type): Remove.
13734 (m68k_sched_md_init_global): Don't allocate it.
13735 (m68k_sched_md_finish_global): Don't free it.
13736 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
29f2d4e5 13737 * config/m68k/m68k.md: Set the type of insns using
13738 m68k_sched_branch_type to bcc directly.
f4831ba5 13739
db66903a 137402012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13741
13742 * config/sol2.c (solaris_override_options): New function.
13743 * config/sol2-protos.h (solaris_override_options): Declare.
13744 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
13745
b920ee38 137462012-05-07 Richard Guenther <rguenther@suse.de>
13747
13748 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
13749 whether we failed to compute data dependences.
13750 (loop_prefetch_arrays): Fail if we failed.
13751
f1cb261b 137522012-05-07 Uros Bizjak <ubizjak@gmail.com>
13753 Paolo Bonzini <bonzini@gnu.org>
13754
13755 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
13756 Emit bsf when optimizing for size.
13757 (*ffs<mode>_1): Ditto.
13758
a846db2c 137592012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
13760
13761 PR target/53250
13762 * config/sh/sh.c (sh_rtx_costs): Handle SET.
13763
ead6176b 137642012-05-06 Uros Bizjak <ubizjak@gmail.com>
13765
13766 PR target/53227
13767 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
13768 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
13769 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
13770 (bswapsi2): Ditto.
13771 (*bswapdi2_doubleword): New insn pattern.
13772 (*bswap<mode>2): Rename from *bswap<mode>2_1.
13773
37bdfd8a 137742012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
13775
13776 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
13777 (mips_set_reg_reg_cost): Likewise.
13778 (mips_rtx_costs): Handle SET.
13779
a6d935b7 137802012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
13781
13782 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
13783 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
13784 to compute the cost of moves. Set the mode of the target register.
13785
29c05e22 137862012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
13787
13788 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
13789 plus_constant function.
13790 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
13791 that the mode is sensible.
13792 (use_anchored_address, round_push, allocate_dynamic_stack_space)
13793 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
13794 plus_constant.
13795
13796 * alias.c (canon_rtx): Likewise.
13797 (init_alias_analysis): Likewise.
13798 * builtins.c (expand_builtin_return_addr)
13799 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
13800 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
13801 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
13802 (expand_builtin_stpcpy): Likewise.
13803 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
13804 (compute_argument_addresses, internal_arg_pointer_based_exp)
13805 (expand_call, emit_library_call_value_1): Likewise.
13806 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
13807 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
13808 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
13809 * cse.c (insert_const_anchor, find_reg_offset_for_const)
13810 (use_related_value, fold_rtx): Likewise.
13811 * cselib.c (cselib_subst_to_values): Likewise.
13812 * dse.c (record_store, check_mem_read_rtx): Likewise.
13813 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
13814 * emit-rtl.c (adjust_address_1): Likewise.
13815 * except.c (sjlj_emit_function_enter)
13816 (expand_builtin_extract_return_addr)
13817 (expand_builtin_frob_return_addr): Likewise.
13818 * expmed.c (expand_divmod): Likewise.
13819 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
13820 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
13821 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
13822 * function.c (assign_stack_local_1)
13823 (instantiate_virtual_regs_in_rtx): Likewise.
13824 * optabs.c (prepare_cmp_insn): Likewise.
13825 * recog.c (offsettable_address_addr_space_p): Likewise.
13826 * reload.c (find_reloads_address, form_sum)
13827 (find_reloads_subreg_address): Likewise.
13828 * reload1.c (init_reload, eliminate_regs_1)
13829 (eliminate_regs_in_insn): Likewise.
13830 * simplify-rtx.c (simplify_unary_operation_1)
13831 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
13832 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
13833 (vt_add_function_parameter): Likewise.
13834
13835 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
13836 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
13837 * config/alpha/alpha.c (alpha_legitimize_address_1)
13838 (get_unaligned_address, alpha_expand_unaligned_load)
13839 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
13840 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
13841 (alpha_expand_builtin_establish_vms_condition_handler)
13842 (alpha_setup_incoming_varargs, emit_frame_store_1)
13843 (alpha_expand_prologue, alpha_expand_epilogue)
13844 (alpha_use_linkage): Likewise.
13845 * config/alpha/alpha.md: Likewise.
13846
13847 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
13848 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
13849 (thumb_legitimize_address, arm_gen_load_multiple_1)
13850 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
13851 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
13852 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
13853 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
13854 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
13855 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
13856 (thumb_expand_movmemqi, arm_set_return_address)
13857 (thumb_set_return_address): Likewise.
13858 * config/arm/arm.md: Likewise.
13859
13860 * config/avr/avr.c (avr_incoming_return_addr_rtx)
13861 (avr_prologue_setup_frame, expand_epilogue)
13862 (avr_const_address_lo16): Likewise.
13863
13864 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
13865 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
13866 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
13867 (bfin_output_mi_thunk): Likewise.
13868
13869 * config/c6x/c6x.c (c6x_initialize_trampoline)
13870 (c6x_output_mi_thunk): Likewise.
13871
13872 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
13873 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
13874
13875 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
13876 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
13877 (cris_emit_movem_store, cris_trampoline_init): Likewise.
13878 * config/cris/cris.md: Likewise.
13879
13880 * config/darwin.c (machopic_indirect_data_reference)
13881 (machopic_legitimize_pic_address): Likewise.
13882
13883 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
13884 (epiphany_expand_prologue, epiphany_expand_epilogue)
13885 (epiphany_trampoline_init): Likewise.
13886 * config/epiphany/epiphany.md: Likewise.
13887
13888 * config/fr30/fr30.c (fr30_move_double): Likewise.
13889
13890 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
13891 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
13892 (frv_index_memory, unspec_got_name, frv_find_base_term)
13893 (frv_output_dwarf_dtprel): Likewise.
13894
13895 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
13896 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
13897
13898 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
13899 * config/i386/i386.c (setup_incoming_varargs_64)
13900 (setup_incoming_varargs_ms_64, choose_baseaddr)
13901 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
13902 (ix86_emit_probe_stack_range, ix86_expand_prologue)
13903 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
13904 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
13905 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
13906 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
13907 (x86_output_mi_thunk): Likewise.
13908 * config/i386/i386.md: Likewise.
13909
13910 * config/ia64/ia64.c (ia64_expand_load_address)
13911 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
13912 (do_spill, ia64_trampoline_init): Likewise.
13913
13914 * config/iq2000/iq2000.c (iq2000_va_start)
13915 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
13916 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
13917 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
13918
13919 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
13920
13921 * config/m32c/m32c.c (m32c_return_addr_rtx)
13922 (m32c_expand_insv): Likewise.
13923
13924 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
13925 (m32r_legitimize_pic_address, m32r_print_operand)
13926 (m32r_print_operand_address): Likewise.
13927
13928 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
13929 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
13930 (EH_RETURN_HANDLER_RTX): Likewise.
13931 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
13932 (m68k_expand_epilogue, legitimize_pic_address)
13933 (m68k_output_mi_thunk): Likewise.
13934 * config/m68k/m68k.md: Likewise.
13935
13936 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
13937 (mcore_expand_epilog): Likewise.
13938 * config/mcore/mcore.md: Likewise.
13939
13940 * config/mep/mep.c (mep_allocate_initial_value)
13941 (mep_expand_prologue, mep_expand_epilogue): Likewise.
13942
13943 * config/microblaze/microblaze.c (double_memory_operand)
13944 (microblaze_block_move_loop): Likewise.
13945
13946 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
13947 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
13948 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
13949 (mips_expand_prologue, mips_epilogue_set_cfa)
13950 (mips_expand_epilogue): Likewise.
13951 * config/mips/mips.md: Likewise.
13952
13953 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
13954 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
13955
13956 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
13957 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
13958
13959 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
13960 (EH_RETURN_HANDLER_RTX): Likewise.
13961 * config/moxie/moxie.c (moxie_static_chain): Likewise.
13962
13963 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
13964 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
13965 (pa_return_addr_rtx, hppa_builtin_saveregs)
13966 (pa_trampoline_init): Likewise.
13967 * config/pa/pa.md: Likewise.
13968
13969 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
13970
13971 * config/picochip/picochip.c (picochip_static_chain): Likewise.
13972
13973 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
13974 * config/rs6000/rs6000.c (rs6000_legitimize_address)
13975 (setup_incoming_varargs, print_operand, rs6000_return_addr)
13976 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
13977 (rs6000_emit_epilogue)
13978 (rs6000_machopic_legitimize_pic_address): Likewise.
13979
13980 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
13981
13982 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
13983 (DYNAMIC_CHAIN_ADDRESS): Likewise.
13984 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
13985 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
13986 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
13987 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
13988 (s390_emit_epilogue, s390_function_profiler): Likewise.
13989 * config/s390/s390.md: Likewise.
13990
13991 * config/score/score.c (score_add_offset, score_prologue): Likewise.
13992
13993 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
13994 (sh_output_mi_thunk): Likewise.
13995 * config/sh/sh.md: Likewise.
13996
13997 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
13998 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
13999 * config/sparc/sparc.c (sparc_legitimize_pic_address)
14000 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
14001 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
14002 (emit_and_preserve): Likewise.
14003 * config/sparc/sparc.md: Likewise.
14004
14005 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
14006 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
14007 (spu_setup_incoming_varargs, ea_load_store_inline)
14008 (spu_expand_load): Likewise.
14009
14010 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
14011 (combine_bnp): Likewise.
14012
14013 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
14014 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
14015 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
14016
14017 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
14018 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
14019 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
14020
14021 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
14022 * config/v850/v850.md: Likewise.
14023
14024 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
14025 (EH_RETURN_HANDLER_RTX): Likewise.
14026 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
14027 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
14028 (print_operand_address, vax_trampoline_init): Likewise.
14029
14030 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
14031 (xtensa_function_value_regno_p): Likewise.
14032
c909ed33 140332012-05-04 Andrew Pinski <apinski@cavium.com>
14034
14035 * expr.c (get_def_for_expr_class): New function.
14036 (convert_tree_comp_to_rtx): New function.
14037 (expand_cond_expr_using_cmove): New function.
14038 (expand_expr_real_2 <case COND_EXPR>): Call
14039 expand_cond_expr_using_cmove first and return if it succeeds.
14040 Remove the check for HAVE_conditional_move since we should have
14041 already converted it to a conditional move.
14042 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
14043 modes of DImode for 32bits and TImode.
14044
73ed0c67 140452012-05-04 Steven Bosscher <steven@gcc.gnu.org>
14046
14047 PR other/29442
14048 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
14049 (print_md_ptr_loc, print_c_condition): Use them.
14050 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
14051 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
14052 attr_file, dfa_file, latency_file): New global variables.
14053 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
14054 write_upcase, write_indent, write_length_unit_log, write_test_expr,
14055 write_attr_get, write_insn_cases, write_eligible_delay,
14056 write_const_num_delay_slots): Accept FILE pointer and toss it around.
14057 Update all callers.
14058 (write_header, open_outfile, handle_arg): New funcions.
14059 (make_automaton_attrs): Write prototypes as extern to the output
14060 files.
14061 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
14062 names from the command line. Open the output files and write out
14063 internal functions for DFA functions to dfa_file_name, insn latency
14064 functions to latency_file_name, and everything else to attr_file.
14065 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
14066 (BACKEND): Build libbackend first.
14067 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
14068 (.PRECIOUS): Likewise.
14069 (insn-dfatab.o): New rule.
14070 (insn-latencytab.o): New rule.
14071 (simple_rtl_generated_c): Do not include insn-attrtab.c.
14072 (s-attrtab): New rule.
14073
6a8f5c57 140742012-05-04 Steven Bosscher <steven@gcc.gnu.org>
14075
14076 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
14077 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
14078 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
14079 * reorg.c (get_jump_flags): Do not set the removed flags.
14080
a2159ce7 14081 * doc/md.texi (attr_flag): Update for abovementioned changes.
14082
91fcc716 140832012-05-04 Uros Bizjak <ubizjak@gmail.com>
14084
14085 PR target/53228
14086 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
14087 (TARGET_CMOV): Rename from TARGET_CMOVE.
14088 (TARGET_CMOVE): New define.
14089 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
14090 Do not set TARGET_CMOVE here.
14091
e163935c 140922012-05-04 Dodji Seketeli <dodji@redhat.com>
14093
14094 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
14095 * opts.c (finish_options): Activate -Wunused-local-typedefs if
034788fc 14096 -Wunused is activated.
e163935c 14097 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
14098
c4ded1f6 140992012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14100
14101 * config/s390/s390.md (*movmem_short, *clrmem_short)
14102 (*cmpmem_short): Move the mode check from the insn condition to
14103 the match_scratch.
14104
da5b41a4 141052012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
14106
14107 PR tree-optimization/52633
14108 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
14109 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
14110 (vect_recog_over_widening_pattern): Remove handling of code that was
14111 already detected as over-widening pattern. Remove special handling
14112 of "unsigned" cases. Instead, support general case of conversion
14113 of the shift result to another type.
14114
019bbf38 141152012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
14116
14117 * tree-vect-patterns.c (vect_single_imm_use): New function.
14118 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
14119 (vect_recog_over_widening_pattern): Likewise.
14120 (vect_recog_widen_shift_pattern): Likewise.
14121
33f33894 141222012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
14123
14124 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
14125 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
14126 (vect_recog_widen_mult_pattern): Likewise.
14127 (vect_operation_fits_smaller_type): Likewise.
14128 (vect_recog_over_widening_pattern): Likewise.
14129 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
14130
940a2ab8 141312012-05-04 Richard Guenther <rguenther@suse.de>
14132
14133 PR lto/50602
14134 * lto-wrapper.c (merge_and_complain): Complain about mismatches
14135 of -freg-struct-return and -fpcc-struct-return.
14136 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
14137 from the input file options and ignore those from the link
14138 command line.
14139
147d14aa 141402012-05-04 Richard Guenther <rguenther@suse.de>
14141
14142 PR tree-optimization/53168
14143 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
14144 memory reads when the result is a constant we can pun.
14145
596c40fb 141462012-05-04 Richard Guenther <rguenther@suse.de>
14147
14148 * common.opt (flto-report): Do not mark as Optimization.
14149
50b58916 141502012-05-04 Eric Botcazou <ebotcazou@adacore.com>
14151
14152 PR target/48496
14153 * recog.c (constrain_operands): If extra constraints are present, also
14154 accept pseudo-registers with equivalent memory locations during reload.
14155
2b98e22b 141562012-05-04 Olivier Hainque <hainque@adacore.com>
14157
14158 * collect2.c (may_unlink_output_file): New global.
14159 (maybe_unlink): Honor it.
14160 * collect2.h: Add extern for it.
14161 * tlink.c (do_tlink): Set it to true if the link succeeded.
14162
e2efe9af 141632012-05-04 Olivier Hainque <hainque@adacore.com>
14164
14165 * gcc.c (eval_spec_function): Finalize/restore the current string
14166 obstack state as part of the context push/pop operations.
14167
38d947b0 141682012-05-04 Bin Cheng <bin.cheng@arm.com>
14169
14170 PR rtl-optimization/52804
14171 * reload1.c (reload_reg_reaches_end_p): Check whether successor
14172 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
14173 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
14174 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
14175 RELOAD_FOR_OUTADDR_ADDRESS.
14176
bef475de 141772012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
14178
14179 PR c++/24985
14180 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
14181 for macro expansion.
14182
bba5a206 141832012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
14184
14185 * flags.h (flag_permissive): Do not declare.
14186 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
14187 option specially.
14188 * toplev.c (flag_permissive): Do not define.
14189 * c-tree.h (system_header_p): Delete unused.
14190
beaca8bb 141912012-05-03 David S. Miller <davem@davemloft.net>
14192
14193 PR target/52684
14194 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
14195 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
14196 (sparc_emit_float_lib_cmp): Likewise.
14197
0b10390a 141982012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
14199
14200 PR target/53199
14201 * config/rs6000/rs6000.md (bswapdi splitters): If
14202 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
14203 default) is used, generate an alternate sequence that does not
14204 depend on using indexed addressing.
14205
84879dd0 142062012-05-03 Jason Merrill <jason@redhat.com>
14207
14208 * gengtype.c (write_types): Fix warning message.
14209 (write_local): Likewise.
14210
23c98701 142112012-05-02 Jason Merrill <jason@redhat.com>
14212
14213 * dwarf2out.c (struct external_ref, build_local_stub): New.
14214 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
14215 (optimize_external_refs, optimize_external_refs_1): New.
14216 (change_AT_die_ref): New.
14217 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
14218 (build_abbrev_table): Take the external refs hashtable.
14219 (output_comp_unit): Get it from optimize_external_refs and pass it in.
14220
22fe6d2a 142212012-05-03 Jan Hubicka <jh@suse.cz>
14222
14223 PR middle-end/53093
14224 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
14225
cab51373 142262012-05-03 Jan Hubicka <jh@suse.cz>
14227
14228 PR middle-end/53106
14229 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
14230
039c4ce6 142312012-05-03 Jason Merrill <jason@redhat.com>
14232
14233 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
14234 use_debug_types to discriminate the die_id union.
14235 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
14236 (build_abbrev_table, output_die): Likewise.
14237 (prune_unused_types_walk_attribs): Likewise.
14238 (generate_type_signature, copy_declaration_context): Set it.
14239 (remove_child_or_replace_with_skeleton): Set it.
14240 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
14241 check use_debug_types.
14242 (dwarf2out_finish): Do break_out_includes after .debug_types.
14243
7fc5078f 142442012-05-03 Jason Merrill <jason@redhat.com>
14245
14246 * dwarf2out.c (modified_type_die): Use scope_die_for.
14247 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
14248 (uses_local_type_r, uses_local_type): New.
14249 (scope_die_for): Keep a type that uses a local type in local scope.
14250 Use get_context_die for namespace and type scope.
14251
d03a2c79 142522012-05-03 Jason Merrill <jason@redhat.com>
14253
14254 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
14255 pc thunk.
14256 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
14257 (dwarf2out_finish): Likewise.
14258
ceea063b 142592012-05-03 Martin Jambor <mjambor@suse.cz>
14260
14261 * builtins.c (get_object_alignment_1): Return whether we can determine
14262 the alignment or conservatively assume byte alignment. Return the
14263 alignment by reference. Use get_pointer_alignment_1 for dereference
14264 alignment.
14265 (get_pointer_alignment_1): Return whether we can determine the
14266 alignment or conservatively assume byte alignment. Return the
14267 alignment by reference. Use get_ptr_info_alignment to get SSA name
14268 alignment.
14269 (get_object_alignment): Update call to get_object_alignment_1.
14270 (get_object_or_type_alignment): Likewise, fall back to type alignment
14271 only when it returned false.
14272 (get_pointer_alignment): Update call to get_pointer_alignment_1.
14273 * fold-const.c (get_pointer_modulus_and_residue): Update call to
14274 get_object_alignment_1.
14275 * ipa-prop.c (ipa_modify_call_arguments): Update call to
14276 get_pointer_alignment_1.
14277 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
14278 of MEM_REF or TARGET_MEM_REF only when it returns false.
14279 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
14280 get_object_alignment_1.
14281 (ccp_finalize): Use set_ptr_info_alignment.
14282 * tree.h (get_object_alignment_1): Update declaration.
14283 (get_pointer_alignment_1): Likewise.
14284 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
14285 (dump_gimple_stmt): Likewise.
14286 * tree-flow.h (ptr_info_def): Updated comments of fields align and
14287 misalign.
14288 (get_ptr_info_alignment): Declared.
14289 (mark_ptr_info_alignment_unknown): Likewise.
14290 (set_ptr_info_alignment): Likewise.
14291 (adjust_ptr_info_misalignment): Likewise.
14292 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
14293 and set alignment of SSA names.
14294 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
14295 mark_ptr_info_alignment_unknown.
14296 * tree-ssanames.c (get_ptr_info_alignment): New function.
14297 (mark_ptr_info_alignment_unknown): Likewise.
14298 (set_ptr_info_alignment): Likewise.
14299 (adjust_ptr_info_misalignment): Likewise.
14300 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
14301 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14302 Likewise.
14303 (bump_vector_ptr): Likewise.
14304 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
14305 (vectorizable_store): Likewise.
14306 (vectorizable_load): Likewise.
14307
924c4c71 143082012-05-03 Michael Matz <matz@suse.de>
14309
14310 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
14311 in front of basic_block_def.
14312 (struct basic_block_def): Make il.gimple the full struct, not a
14313 pointer.
14314 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
14315
91fcc716 14316 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
924c4c71 14317 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
14318 NULL il.gimple, which can't happen anymore.
14319 * gimple.h (bb_seq): il.gimple can't be NULL.
14320 (bb_seq_add): Ditto.
14321 (set_bb_seq): Adjust.
14322 (gsi_start_bb, gsi_last_bb): Tidy.
14323 * lto-streamer-in.c (make_new_block): Don't zero members that
14324 are zeroed already, don't allocate a gimple_bb_info.
14325 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
14326 (remove_bb): Clear all il.gimple members.
14327 (gimple_verify_flow_info): Adjust for flat il.gimple.
14328 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
14329
14330 * coretypes.h (const_gimple_seq): Remove typedef.
14331 * gimple.h (gimple_seq_first): Take gimple_seq.
14332 (gimple_seq_first_stmt): Ditto.
14333 (gimple_seq_last): Ditto.
14334 (gimple_seq_last_stmt): Ditto.
14335 (gimple_seq_empty_p): Ditto.
14336
1ef2db75 143372012-05-03 Richard Guenther <rguenther@suse.de>
14338
14339 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
14340 operations.
91fcc716 14341 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
1ef2db75 14342 (compute_avail): Do not add possibly trapping operations to
14343 EXP_GEN if they might not be executed in the block.
14344
e2f2054f 143452012-05-03 Uros Bizjak <ubizjak@gmail.com>
14346
14347 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
14348
6da0d726 143492012-05-03 Steven Bosscher <steven@gcc.gnu.org>
14350
14351 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
14352 information as early as possible. Update dominance info instead of
14353 discarding it.
14354
8974b15d 143552012-05-03 Richard Guenther <rguenther@suse.de>
14356
14357 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
14358 (union_contains_value): Remove.
14359 (vro_valid_in_sets): Likewise.
14360 (op_valid_in_sets): New function.
14361 (valid_in_sets): Use op_valid_in_sets.
14362 (insert_into_preds_of_block): Move dumping ...
14363 (do_regular_insertion): ... here.
14364 (do_partial_partial_insertion): ... and here. Dump that
14365 we've found a partial partial redundancy.
14366 (insert): Dump the current insert iteration.
14367
691c047f 143682012-05-03 Jakub Jelinek <jakub@redhat.com>
14369
2bccd0d3 14370 PR plugins/53126
14371 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
14372 append program name to it and pass that as first argument
14373 to make_relative_prefix. Always pass standard_libexec_prefix
14374 as last argument to make_relative_prefix. If
14375 make_relative_prefix returns NULL, fall back to
14376 standard_libexec_prefix.
14377
b6d5efe6 14378 PR debug/53174
14379 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
14380 removed.
14381
c4a8eb0a 14382 PR target/53187
14383 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
14384 mode, return that mode.
14385
691c047f 14386 PR target/53194
14387 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
14388 define __ATOMIC_HLE_* macros here.
14389 (ix86_target_macros): But here, using cpp_define_formatted.
14390
a4f94d42 143912012-05-03 Richard Guenther <rguenther@suse.de>
14392
14393 PR tree-optimization/53144
14394 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
14395 Rename to ...
14396 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
14397 with SSA name values.
14398 (vn_reference_lookup_3): Adjust callers.
14399
fb0e6fe3 144002012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14401
14402 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
14403 has_fma4 for AMD processors with both fma3 and fma4 support.
14404
c79c9a8d 144052012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
14406
14407 PR target/53201
14408 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
14409 "-mno-hle".
14410
3222e348 144112012-05-03 Michael Matz <matz@suse.de>
14412
14413 PR bootstrap/53197
e2f2054f 14414 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
3222e348 14415 (dse_enter_block): Properly iterate the whole sequence even
14416 if the last statement was removed.
14417
9fbba7ae 144182012-05-02 Steven Bosscher <steven@gcc.gnu.org>
14419
14420 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
14421 unset flag_jump_tables.
14422 * stmt.c (expand_case): Remove special flag_pic case conditional
14423 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
14424
e9f1fe86 144252012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
14426
14427 * common/config/s390/s390-common.c (s390_option_optimization_table):
14428 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
14429 default when optimizing.
14430
ad5f1481 144312012-05-02 Martin Jambor <mjambor@suse.cz>
14432
14433 PR lto/52605
14434 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
14435 of a variable when the contect is a function.
14436
e3a19533 144372012-05-02 Michael Matz <matz@suse.de>
14438
14439 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
14440 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
14441 (const_gimple_seq_node): Remove.
14442 (gimple_seq_node): Typedef as gimple.
14443 (struct gimple_statement_base): Add next and prev members,
14444 adjust all WORD markers in using structs.
14445 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
14446 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
14447 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
14448 gimple are the same.
14449 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
14450 gimple_seq, adjust.
14451 (gimple_init_singleton): New function.
14452 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
14453 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
14454 (gsi_stmt): Adjust.
14455 (gsi_stmt_ptr): Remove.
14456 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
14457
14458 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
14459 again, adjust for above changes.
14460 (update_call_edge_frequencies): Adjust for above changes.
14461 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
14462 (gsi_insert_seq_nodes_after): Ditto.
14463 (gsi_split_seq_after): Ditto.
14464 (gsi_set_stmt): Ditto.
14465 (gsi_split_seq_before): Ditto.
14466 (gsi_remove): Ditto.
14467 (gsi_insert_seq_before_without_update): Don't free sequence.
14468 (gsi_insert_seq_after_without_update): Ditto.
14469 (gsi_replace): Assert some more invariants.
14470 (gsi_insert_before_without_update, gsi_insert_after_without_update):
14471 Tidy.
14472 (gsi_for_stmt): Don't search for stmt.
14473 (gsi_insert_on_edge_immediate): Tidy.
14474
14475 * gimple.c (gimple_alloc_k): Remove "sequences".
14476 (gimple_seq_cache): Remove.
14477 (gimple_alloc_stat): Make stmt a singleton sequence.
14478 (gimple_seq_alloc, gimple_seq_free): Remove.
14479 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
14480 (gimple_copy): Ditto.
14481 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
14482 create iterator from correct sequence.
14483 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
14484
144852012-05-02 Michael Matz <matz@suse.de>
14486
14487 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
14488 gimple_seq.
14489 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
14490 sequence, lazily allocate it.
14491 (bb_seq_addr): New function.
14492 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
14493 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
14494 (gsi_none): New function.
14495 (gsi_start_bb): Adjust.
14496 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
14497 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
14498 (gsi_last_bb): Adjust.
14499 (gsi_seq): Adjust.
14500 * tree-flow-inline.h (phi_nodes_ptr): New function.
14501
e2f2054f 14502 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
e3a19533 14503 datastructure and interface change.
14504 (gsi_insert_seq_before_without_update): Ditto.
14505 (gsi_insert_seq_nodes_after): Ditto.
14506 (gsi_insert_seq_after_without_update): Ditto.
14507 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
14508 (gsi_split_seq_before): Ditto.
14509 (gsi_start_phis): Adjust.
e2f2054f 14510 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
e3a19533 14511 (vect_transform_loop): Ditto.
14512 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
14513 gimple_seq_copy): Don't use gimple_seq_alloc.
14514 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
14515 (gimplify_seq_add_seq): Ditto.
14516 * lto-streamer-in.c (make_new_block): Ditto.
14517 * tree-cfg.c (create_bb): Ditto.
14518 * tree-sra.c (initialize_parameter_reductions): Ditto.
14519
145202012-05-02 Michael Matz <matz@suse.de>
14521
14522 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
14523 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
14524 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
14525 set_bb_seq): Move down to after gimple_statement_d definition.
14526
145272012-05-02 Michael Matz <matz@suse.de>
14528
14529 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
14530 gsi_replace_with_seq, instead of inserting itself.
14531 * gimple-iterator.c (gsi_replace_with_seq): New function.
14532 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
14533 iterator instead of statement, advance it.
14534 (ssa_forward_propagate_and_combine): Adjust call to above.
14535
145362012-05-02 Michael Matz <matz@suse.de>
14537
14538 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
14539 gimple_seq_alloc.
14540 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
14541 * tree-nested.c (walk_gimple_omp_for): Ditto.
14542 * trans-mem.c (lower_transaction): Ditto.
14543 * tree-eh.c (do_return_redirection): Ditto.
14544 (do_goto_redirection): Ditto.
14545 (lower_try_finally_switch): Ditto.
14546 * gimplify.c (gimplify_stmt): Ditto.
14547 (gimplify_scan_omp_clauses): Ditto.
14548 (gimplify_omp_for): Ditto.
14549 (gimplify_function_tree): Ditto.
14550 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
14551 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
14552 (mf_build_check_statement_for): Ditto.
14553 (mx_register_decls): Ditto.
14554 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
14555 and don't use itertors to append.
14556 (insert_stmts): Ditto.
14557 (insert_out_of_ssa_copy): Ditto.
14558 (insert_out_of_ssa_copy_on_edge): Ditto.
14559
145602012-05-02 Michael Matz <matz@suse.de>
14561
14562 * gimple.h (gimple_bind_body_ptr): New function.
14563 (gimple_bind_body): Use it.
14564 (gimple_catch_handler): Use gimple_catch_handler_ptr.
14565 (gimple_eh_filter_failure_ptr): New function.
14566 (gimple_eh_filter_failure): Use it.
14567 (gimple_eh_else_n_body_ptr): New function.
14568 (gimple_eh_else_n_body): Use it.
14569 (gimple_eh_else_e_body_ptr): New function.
14570 (gimple_eh_else_e_body): Use it.
14571 (gimple_try_eval_ptr): New function.
14572 (gimple_try_eval): Use it.
14573 (gimple_try_cleanup_ptr): New function.
14574 (gimple_try_cleanup): Use it.
14575 (gimple_wce_cleanup_ptr): New function.
14576 (gimple_wce_cleanup): Use it.
14577 (gimple_omp_body_ptr): New function.
14578 (gimple_omp_body): Use it.
14579 (gimple_omp_for_pre_body_ptr): New function.
14580 (gimple_omp_for_pre_body): Use it.
14581 (gimple_transaction_body_ptr): New function.
14582 (gimple_transaction_body): Use it.
14583 (gsi_split_seq_before): Adjust to return nothing and take pointer
14584 to sequence.
14585 (gsi_set_stmt): Declare.
14586 (gsi_replace_with_seq): Declare.
14587 (walk_gimple_seq_mod): Declare.
14588 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
14589
14590 * gimple-iterator.c (gsi_set_stmt): New function.
14591 (gsi_split_seq_before): Return new sequence via pointer argument.
14592 (gsi_replace): Use gsi_set_stmt.
14593
14594 * tree-ssa-loop-im.c (move_computations_stmt): First remove
14595 then insert stmt.
e2f2054f 14596 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
e3a19533 14597 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
14598 return new stmt.
14599 (reserve_phi_args_for_new_edge): Change call to above,
14600 use gsi_set_stmt.
14601
e2f2054f 14602 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
e3a19533 14603 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
14604 iterators. Adjust call to lower_omp.
14605 (lower_lastprivate_clauses): Adjust call to lower_omp.
14606 (lower_reduction_clauses): Ditto.
14607 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
14608 (lower_omp_sections): Don't explicitely count sequence length,
14609 nullify lowered bodies earlier, ensure stmts are part of only
14610 one sequence, adjust call to lower_omp.
14611 (lower_omp_single): Ensure stmts are part of only one sequence,
14612 adjust call to lower_omp.
14613 (lower_omp_master): Ditto.
14614 (lower_omp_ordered): Ditto.
14615 (lower_omp_critical): Ditto.
14616 (lower_omp_for): Ditto.
14617 (lower_omp_taskreg): Ditto, tidy.
14618 (lower_omp_1): Adjust calls to lower_omp.
14619 (execute_lower_omp): Ditto.
14620 (lower_omp): Adjust to take pointer to sequence.
14621 (diagnose_sb_2): Use walk_gimple_seq_mod.
14622 (diagnose_omp_structured_block_errors): Ditto and set possibly
14623 changed function body.
14624 * gimple-low.c (lower_function_body): Set function body after
14625 it stabilizes.
14626 (lower_sequence): Adjust to take pointer to sequence.
14627 (lower_omp_directive): Ensure stmt isn't put twice into the
14628 sequence, adjust call to lower_sequence.
14629 (lower_stmt): Adjust calls to lower_sequence.
14630 (lower_gimple_bind): Ditto.
14631 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
14632 * tree-nested.c (walk_body): Take pointer to sequence, use
14633 walk_gimple_seq_mod.
e2f2054f 14634 (walk_function): Adjust call to walk_body, set possibly changed body.
e3a19533 14635 (walk_gimple_omp_for): Adjust calls to walk_body.
14636 (convert_nonlocal_omp_clauses): Ditto.
14637 (convert_nonlocal_reference_stmt): Ditto.
14638 (convert_local_omp_clauses): Ditto.
14639 (convert_local_reference_stmt): Ditto.
14640 (convert_tramp_reference_stmt): Ditto.
14641 (convert_gimple_call): Ditto.
14642 (convert_nl_goto_reference): Use local iterator copy.
14643 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
14644 but taking pointer to sequence, ensure gsi_start is called with
14645 callers lvalue.
14646 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
14647 asserting that the sequence head didn't change.
14648 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
14649 walk_gimple_seq_mod.
14650 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
14651 (execute_lower_tm): Ditto, and set possibly changed body.
14652 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
14653 call gsi_start with that lvalue.
14654 (replace_goto_queue_stmt_list): Ditto.
14655 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
14656 (replace_goto_queue): Ditto.
14657 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
14658 (lower_try_finally_onedest): Ditto.
14659 (lower_try_finally_copy): Ditto.
14660 (lower_try_finally_switch): Ditto.
14661 (lower_try_finally): Ditto.
14662 (lower_eh_filter): Ditto.
14663 (lower_eh_must_not_throw): Ditto.
14664 (lower_cleanup): Ditto.
14665 (lower_eh_constructs_2): Ditto.
14666 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
14667 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
14668 set possibly changed body.
14669 (optimize_double_finally): Call gsi_start with lvalue.
14670
14671 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
14672 (gimple_split_block): Ditto.
14673 (gimple_merge_blocks): Use gsi_start_phis.
14674 (move_stmt_r): Use walk_gimple_seq_mod.
14675 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
14676 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
14677 (rebuild_cgraph_edges): Ditto.
14678 (cgraph_rebuild_references): Ditto.
14679 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
14680 * tree-inline.c (copy_phis_for_bb): Ditto.
14681 * tree-ssa-dce.c: Ditto.
14682
14683 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
14684
7f738025 146852012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
14686 Andi Kleen <ak@linux.intel.com>
14687
e3a19533 14688 * coretypes.h (MEMMODEL_MASK): New.
7f738025 14689 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
14690 and return new variable.
14691 (expand_builtin_atomic_exchange): Mask memmodel values.
14692 (expand_builtin_atomic_compare_exchange): Ditto.
14693 (expand_builtin_atomic_load): Ditto.
14694 (expand_builtin_atomic_store): Ditto.
14695 (expand_builtin_atomic_clear): Ditto.
14696 * doc/extend.texi: Mention port-dependent memory model flags.
14697 * config/i386/cpuid.h (bit_HLE): New.
14698 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
14699 HLE support.
14700 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
91fcc716 14701 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
7f738025 14702 (ix86_target_string)<-mhle>: New.
e2f2054f 14703 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
14704 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
14705 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
14706 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
7f738025 14707 enabled for generic, generic64 and core-avx2.
14708 (ix86_print_operand): Generate HLE lock prefixes.
14709 (ix86_memmodel_check): New.
14710 (TARGET_MEMMODEL_CHECK): Ditto.
14711 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
14712 (IX86_HLE_ACQUIRE): Ditto.
14713 (IX86_HLE_RELEASE): Ditto.
14714 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
14715 * config/i386/i386.opt (mhle): Ditto.
14716 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
14717 success model to instruction emitter.
14718 (atomic_fetch_add<mode>): Ditto.
14719 (atomic_exchange<mode>): Ditto.
14720 (atomic_add<mode>): Ditto.
14721 (atomic_sub<mode>): Ditto.
14722 (atomic_<code><mode>): Ditto.
14723 (*atomic_compare_and_swap_doubledi_pic): Ditto.
14724 (atomic_compare_and_swap_single<mode>): Define and use argument
14725 for success model.
14726 (atomic_compare_and_swap_double<mode>): Ditto.
14727 * configure.ac: Check if assembler support HLE prefixes.
14728 * configure: Regenerate.
14729 * config.in: Ditto.
14730
b59e1c90 147312012-05-02 Steven Bosscher <steven@gcc.gnu.org>
14732
14733 PR middle-end/53153
14734 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
14735 split out from ...
14736 (gimplify_switch_expr): ... here.
14737 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
14738 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
14739 to clean up case labels with values outside the index type range.
14740 (simplify_gimple_switch): Call it if something changed.
14741 Remove strange and unnecessary assert.
14742
85d86b55 147432012-05-02 Richard Guenther <rguenther@suse.de>
14744
14745 * fold-const.c (div_if_zero_remainder): sizetypes no longer
14746 sign-extend.
14747 (int_const_binop_1): New worker for int_const_binop with
91fcc716 14748 overflowable parameter. Pass it through to force_fit_type_double.
85d86b55 14749 (int_const_binop): Wrap around int_const_binop_1 with overflowable
14750 equal to one.
14751 (size_binop_loc): Call int_const_binop_1 with overflowable equal
14752 to minus one, forcing overflow detection for even unsigned types.
14753 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
14754 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
14755 * stor-layout.c (initialize_sizetypes): sizetypes no longer
14756 sign-extend.
14757 (layout_type): For zero-sized arrays ignore overflow on the
14758 size calculations.
14759 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
14760 (bit_value_binop_1): Likewise.
14761 * tree.c (double_int_to_tree): Likewise.
14762 (double_int_fits_to_tree_p): Likewise.
14763 (force_fit_type_double): Likewise.
14764 (host_integerp): Likewise.
14765 (int_fits_type_p): Likewise.
14766 * varasm.c (output_constructor_regular_field): Sign-extend the
e2f2054f 14767 field-offset to cater for negative offsets produced by the Ada
14768 frontend.
85d86b55 14769 * omp-low.c (extract_omp_for_data): Convert the loop step to
14770 signed for pointer adjustments.
14771
147722012-05-02 Richard Guenther <rguenther@suse.de>
14773
14774 * tree.c (valid_constant_size_p): New function.
14775 * tree.h (valid_constant_size_p): Declare.
14776 * cfgexpand.c (expand_one_var): Adjust check for too large
14777 variables by using valid_constant_size_p.
14778 * varasm.c (assemble_variable): Likewise.
14779
14780 * c-decl.c (grokdeclarator): Properly check for sizes that
14781 cover more than half of the address-space.
14782
559f753b 147832012-05-02 Jakub Jelinek <jakub@redhat.com>
14784
8b3fb720 14785 PR tree-optimization/53163
14786 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
14787 return value from compute_all_dependences.
14788
559f753b 14789 PR rtl-optimization/53160
14790 * ree.c (combine_reaching_defs): Handle the case where cand->insn
14791 has been modified by ree pass already.
14792
73242672 147932012-05-01 Ian Lance Taylor <iant@google.com>
14794
14795 PR c/37303
14796 * c-decl.c (build_compound_literal): Make the decl readonly if it
14797 an array of a readonly type.
14798 * gimplify.c (gimplify_compound_literal_expr): Add fallback
14799 parameter. Change all callers. If the decl is not addressable
14800 and is not an l-value, make it readonly.
14801
e1d0b655 148022012-05-01 Bernd Schmidt <bernds@codesourcery.com>
14803
14804 * ira.c (allocated_reg_info_size): New static variable.
14805 (expand_reg_info): Manage it. Call
14806 setup_preferred_alternate_classes_for_new_pseudos.
14807 (ira): Don't do it here. Remove local allocated_reg_info_size,
14808 set the global before calling find_moveable_pseudos.
14809 (find_moveable_pseudos): Call expand_reg_info rather than
14810 resize_reg_info.
14811
d8219307 148122012-05-01 Richard Henderson <rth@redhat.com>
14813
14814 * common.opt (fsync-libcalls): New.
14815 * doc/invoke.texi: Document it.
14816 * optabs.c (init_sync_libfuncs): Honor it.
14817
c7944dce 148182012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
14819 Richard Sandiford <r.sandiford@uk.ibm.com>
14820
31fa83cd 14821 PR rtl-optimization/52543
c7944dce 14822 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
14823 lower-subreg.h.
14824 * lower-subreg.h: New file.
14825 * target-globals.h (this_target_lower_subreg): Declare.
14826 (target_globals): Add lower_subreg;
14827 (restore_target_globals): Restore this_target_lower_subreg.
14828 * target-globals.c: Include it.
14829 (default_target_globals): Add default_target_lower_subreg.
14830 (save_target_globals): Initialize target_lower_subreg.
14831 * rtl.h (init_lower_subreg): Added declaration.
14832 * toplev.c (backend_init_target): Call initializer for lower-subreg
14833 pass.
14834 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
14835 (default_target_lower_subreg): New variable.
14836 (this_target_lower_subreg): Likewise.
14837 (twice_word_mode, choices): New macros.
14838 (shift_cost, compute_splitting_shift, compute_costs)
14839 (init_lower_subreg): New functions.
14840 (resolve_simple_move): Add speed_p argument. Check choices.
14841 (find_pseudo_copy): Don't check the mode size here.
14842 (resolve_simple_move): Assert the mode size.
14843 (find_decomposable_shift_zext): Add speed_p argument and return
14844 a bool. Check choices.
14845 (resolve_shift_zext): Add comment.
14846 (dump_shift_choices, dump_choices): New functions.
14847 (decompose_multiword_subregs): Dump list of profitable
14848 transformations. Add code to skip non profitable transformations.
14849 Update calls to simple_move and find_decomposable_shift_zext.
14850
e7fd8dfa 148512012-05-01 Ian Bolton <ian.bolton@arm.com>
e2f2054f 14852 Sameera Deshpande <sameera.deshpande@arm.com>
14853 Greta Yorsh <greta.yorsh@arm.com>
e7fd8dfa 14854
14855 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
e2f2054f 14856 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 14857 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
e2f2054f 14858 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 14859 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
e2f2054f 14860 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 14861
68a172b9 148622012-05-01 Richard Earnshaw <rearnsha@arm.com>
14863
14864 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
14865 comparing enumeration values. Update comments.
14866
e356c169 148672012-05-01 Alan Modra <amodra@gmail.com>
14868
14869 PR target/53038
14870 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
14871 load_cr_save, add_crlr_cfa_restore): New functions.
14872 (rs6000_restore_saved_cr): Rename to..
14873 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
14874 (rs6000_emit_epilogue): Use new functions. Adjust condition
14875 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
14876 regs when using out-of-line restore only when shrink wrapping.
14877
a690dc32 148782012-04-30 Uros Bizjak <ubizjak@gmail.com>
14879
14880 PR middle-end/53136
14881 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
14882 calls to cgraph_node_name in xstrdup.
14883 (ipa_make_edge_direct_to_target): Ditto.
14884 * cgraph.c (dump_cgraph_node): Ditto.
14885 * tree-sra.c (convert_callers_for_node): Ditto.
14886 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
14887 * ipa-cp.c (perhaps_add_new_callers): Ditto.
14888 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
14889 (cgraph_materialize_all_clones): Ditto.
14890 * ipa-inline.c (report_inline_failed_reason): Ditto.
14891 (want_early_inline_function_p): Ditto.
14892 (edge_badness): Ditto.
14893 (update_edge_key): Ditto.
14894 (flatten_function): Ditto.
14895 (ipa_inline): Ditto.
e2f2054f 14896 (inline_always_inline_functions): Ditto.
a690dc32 14897 (early_inline_small_functions): Ditto.
14898
b3987b8f 148992012-04-30 Uros Bizjak <ubizjak@gmail.com>
14900
14901 PR target/53141
14902 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
14903 constraints 0 and 1.
14904
cf951b1a 14905012-04-30 Jan Hubicka <jh@suse.cz>
14906
14907 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
14908 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
14909 (cgraph_add_to_same_comdat_group): Remove.
14910 (cgraph_add_asm_node): Move to cgraphunit.c.
14911 (cgraph_make_decl_local): Move to symtab.c
14912 (cgraph_make_node_local_1): Update.
14913 (cgraph_can_remove_if_no_direct_calls_and): Update.
14914 (used_from_object_file_p): Update.
14915 (resolution_used_from_other_file_p): Move to symtab.c
14916 (cgraph_used_from_object_file_p): move to symtab.c
14917 (verify_cgraph_node): Verify same comdat groups.
14918 * cgraph.h (cgraph_asm_node): Rename to ...
14919 (asm_node): ... this one.
14920 (cgraph_asm_nodes): Rename to ...
14921 (asm_nodes): ... this one.
14922 (symtab_add_to_same_comdat_group): New function.
14923 (symtab_dissolve_same_comdat_group_list): New function.
14924 (symtab_used_from_object_file_p): Declare.
14925 (symtab_make_decl_local): Declare.
14926 (cgraph_add_to_same_comdat_group): Remove.
14927 (cgraph_add_asm_node): Remove.
14928 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
14929 Remove.
14930 (cgraph_finalize_compilation_unit): Rename to ...
14931 (finalize_compilation_unit): ... this one.
14932 (cgraph_optimize): Rename to ....
14933 (compile): ... this one.
14934 (add_asm_node): Declare.
14935 (fixup_same_cpp_alias_visibility): Declare.
14936 (cgraph_make_decl_local): Remove.
14937 (varpool_assemble_pending_decls): Rename to ...
14938 (varpool_output_variables): ... this one.
14939 (varpool_remove_unreferenced_decls): Remove.
14940 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
14941 (preserve_function_body_p): Make static.
b3987b8f 14942 * toplev.c (compile_file): Update comments; update.
cf951b1a 14943 * cgraphunit.c: Update comments.
14944 (cgraph_expand_all_functions): Rename to ...
14945 (expand_all_functions): ... this one; update.
14946 (cgraph_mark_functions_to_output): Rename to ...
14947 (mark_functions_to_output): ... this one; cleanup.
14948 (cgraph_output_pending_asms): Remove prototype.
14949 (asm_nodes, asm_last_node): New static vars.
14950 (cgraph_process_new_functions): Update.
14951 (cgraph_reset_node): Cleanup; add comment.
14952 (cgraph_add_new_function): Update.
14953 (cgraph_output_pending_asms): Rename to ...
14954 (output_asm_statements): ... this one.
14955 (add_asm_node): New function.
14956 (fixup_same_cpp_alias_visibility): New function based on code
14957 in cgraph_analyze_function.
14958 (cgraph_analyze_function): Use it.
14959 (cgraph_order_sort): Update.
14960 (cgraph_output_in_order): Update.
14961 (cgraph_function_versioning): Update.
14962 (cgraph_optimize): Rename to ...
14963 (compile): ... this one; initialize streamer hooks here.
14964 (cgraph_finalize_compilation_unit): Rename to ...
14965 (finalize_compilation_unit): ... this one; do not initialize streamer
14966 hook here.
14967 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
14968 * dwarf2out.c: Update ocmment.
14969 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
14970 * method.c (use_thunk): Likewise.
14971 * semantics.c (maybe_add_lambda_conv_op): Likewise.
b3987b8f 14972 * decl2.c (maybe_emit_vtables): Likewise.
cf951b1a 14973 (cp_write_global_declarations): Use finalize_compilation_unit.
14974 * parser.c (cp_parser_asm_definition): Use add_asm_node.
14975 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
b3987b8f 14976 * c-decl.c (c_write_global_declarations): Use
14977 finalize_compilation_unit.
cf951b1a 14978 * langhooks.c (write_global_declarations): Update.
14979 * ipa.c (cgraph_externally_visible_p): Update.
14980 (dissolve_same_comdat_group_list): Remove.
14981 (function_and_variable_visibility): Update.
14982 * symtab.c: Inlcude lto-streamer.h and rtl.h
14983 (ld_plugin_symbol_resolution_names): New.
14984 (symtab_add_to_same_comdat_group): New.
14985 (symtab_dissolve_same_comdat_group_list): New.
14986 (resolution_used_from_other_file_p): Move here from cgraph.c
14987 (symtab_used_from_object_file_p): New.
14988 (symtab_make_decl_local): New.
14989 * passes.c (register_pass): Update comments.
14990 * c-parser.c (c_parser_asm_definition): Update.
b3987b8f 14991 * varpool.c (varpool_analyze_node): Use
14992 fixup_same_cpp_alias_visibility.
cf951b1a 14993 (varpool_remove_unreferenced_decls): Make static.
14994 (varpool_assemble_pending_decls): Rename to ...
14995 (varpool_output_variables): ... this one; call
14996 varpool_remove_unreferenced_decls.
14997 (varpool_used_from_object_file_p): Remove.
14998
7059d45d 149992012-04-30 Marc Glisse <marc.glisse@inria.fr>
15000
15001 PR c++/51033
15002 * c-typeck.c (build_array_ref): Call
15003 convert_vector_to_pointer_for_subscript.
15004 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
15005
df65c84d 150062012-04-30 Uros Bizjak <ubizjak@gmail.com>
15007
15008 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
15009 to compile-time "mode == <MODE>mode" checks.
15010 (and splitter): Ditto.
15011
ab1e18de 150122012-04-30 Richard Henderson <rth@redhat.com>
15013
15014 * config/arm/arm.md (UNSPEC_LL): New.
15015 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
15016 (arm_load_exclusivedi): Use %H0.
15017
3474b65d 150182012-04-30 Jason Merrill <jason@redhat.com>
15019
15020 * dwarf2out.c (comdat_symbol_id): Add const.
15021 (union die_symbol_or_type_node): Add const to die_symbol.
15022 (output_die_symbol, output_die, output_comp_unit): Adjust.
15023
774d2fbb 150242012-04-30 Andrew Stubbs <ams@codesourcery.com>
15025
15026 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
15027 * config/arm/neon.md (negdi2_neon): New insn.
15028 Also add splitters for core and NEON registers.
15029
87f800b2 150302012-04-30 Andrew Stubbs <ams@codesourcery.com>
15031
15032 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
15033 (arm_print_operand): Add 'x' format.
15034 * config/arm/constraints.md (Dn): Allow const_int.
15035 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
15036 Use 'x' format to print constants.
15037 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
15038 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
15039 is enabled.
15040 (movdi_vfp_cortexa8): Likewise.
15041
a2623f6b 150422012-04-30 Ian Bolton <ian.bolton@arm.com>
917cf02d 15043 Sameera Deshpande <sameera.deshpande@arm.com>
15044 Greta Yorsh <greta.yorsh@arm.com>
69973f3a 15045
15046 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
15047 * config/arm/arm.c (ldm_stm_operation_p): New function.
15048 * config/arm/predicates.md (load_multiple_operation): Update predicate.
15049 (store_multiple_operation): Likewise.
15050
394cb8e0 15051 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
15052 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
15053 * config/arm/predicates.md (load_multiple_operation): Add arguments.
df65c84d 15054 (store_multiple_operation): Likewise.
394cb8e0 15055
9676484f 150562012-04-30 Uros Bizjak <ubizjak@gmail.com>
15057
15058 * config/i386/i386.md (and<mode>3): Expand masking operations with
15059 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
15060 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
15061
7edb1062 150622012-04-30 Dodji Seketeli <dodji@redhat.com>
15063
15064 Add -Wvarargs option
15065 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
9676484f 15066 argument for the various warning_at calls.
7edb1062 15067 * docs/invoke.texi: Update the documentation.
15068
6982c82d 150692012-04-30 Dodji Seketeli <dodji@redhat.com>
15070
611f1003 15071 Switch -ftrack-macro-expansion=2 on by default.
15072 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
15073 by default.
15074
d98fd4a4 15075 Fix va_start related location
15076 * builtins.c (fold_builtin_next_arg): Unwinds to the first
15077 location in real source code.
15078
db30b351 15079 Make conversion warnings work on NULL with -ftrack-macro-expansion
15080 * input.h (expansion_point_location_if_in_system_header): Declare
15081 new function.
9676484f 15082 * input.c (expansion_point_location_if_in_system_header): Define it.
db30b351 15083
18f0e0e5 15084 Fix -Wuninitialized for -ftrack-macro-expansion
9676484f 15085 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
15086 declaration. Use linemap_location_before_p for source locations.
18f0e0e5 15087
bd172d61 15088 Strip "<built-in>" loc from displayed expansion context
15089 * input.c (expand_location_1): When expanding to spelling location
15090 in a context of a macro expansion, skip reserved system header
15091 locations. Update comments. * tree-diagnostic.c
15092 (maybe_unwind_expanded_macro_loc): Likewise.
15093
39107655 15094 Make expand_location resolve to locus in main source file
15095 * input.c (expand_location_1): New. Takes a parameter to choose
15096 whether to resolve the location to spelling or expansion point.
15097 Was factorized from ...
15098 (expand_location): ... here.
15099 (expand_location_to_spelling_point): New. Implemented in terms of
15100 expand_location_1.
15101 * diagnostic.c (diagnostic_build_prefix): Use the new
15102 expand_location_to_spelling_point instead of expand_location.
15103
6982c82d 15104 Fix PCH crash on GTYed pointer-to-scalar field of a struct
15105 * gengtype.c (write_types_process_field): Force second argument of
15106 the call to the PCH object hierarchy walker to be 'x'.
15107
81f9f420 151082012-04-30 Eric Botcazou <ebotcazou@adacore.com>
15109
15110 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
15111 predicate to discriminate types.
15112
b86527d8 151132012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
15114
15115 * doc/invoke.texi (Wmissing-format-attribute): Document as an
15116 alias of Wsuggest-attribute=format.
15117 * c-typeck.c (convert_for_assignment): Replace
15118 Wmissing-format-attribute with Wsuggest-attribute=format.
15119 (digest_init): Likewise.
15120
fdc46702 151212012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
15122
9676484f 15123 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
15124 * common.opt (Wmissing-noreturn): Alias of
15125 -Wsuggest-attribute=noreturn.
fdc46702 15126
87ef8b95 151272012-04-29 Hans-Peter Nilsson <hp@axis.com>
15128
15129 PR target/53156
15130 * config/cris/cris.md (andqu): New peephole2.
15131 (andu): Tweak head comment.
15132
0f9b384d 151332012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15134 Steven Bosscher <steven@gcc.gnu.org>
15135 Maxim Kuvyrkov <maxim@codesourcery.com>
15136
15137 PR tree-optimization/38785
15138 * common.opt (ftree-partial-pre): New option.
15139 * doc/invoke.texi: Document it.
15140 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
15141 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
15142 benefit speed path.
15143 (execute_pre): Use flag_tree_partial_pre.
15144
7c5d3a90 151452012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15146
15147 PR target/52999
15148 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
15149 in constant pool.
15150
034788fc 151512012-04-27 Ollie Wild <aaw@google.com>
76d340ac 15152
15153 * doc/invoke.texi (Wliteral-suffix): Document new option.
15154
c9f46599 151552012-04-27 Tom Tromey <tromey@redhat.com>
15156
15157 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
15158 (dwarf_tag_name): Use get_DW_TAG_name.
15159 (dwarf_attr_name): Use get_DW_AT_name.
15160 (dwarf_form_name): Use get_DW_FORM_name.
15161 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
15162
678919fd 151632012-04-27 Paolo Bonzini <bonzini@gnu.org>
15164
9676484f 15165 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
15166 arguments are -1 and 0, by negating the result of the conditional.
678919fd 15167
8be7badc 151682012-04-27 Paolo Bonzini <bonzini@gnu.org>
15169
15170 PR target/53138
15171 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
15172
8763c223 151732012-04-27 Richard Guenther <rguenther@suse.de>
15174
15175 * tree-flow.h (is_hidden_global_store): Remove.
15176 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
15177 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
15178 (stmt_may_clobber_global_p): Likewise.
15179 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
15180 (stmt_may_clobber_global_p): Likewise.
15181 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
15182 stmt_may_clobber_global_p.
15183 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
15184
11f2f313 151852012-04-27 Steven Bosscher <steven@gcc.gnu.org>
15186
845b40c8 15187 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
15188 place.
15189
11f2f313 15190 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
15191 reorganize some fields and update comments. Rename bit_test_uniq
15192 and bit_test_count to uniq resp. count. Remove bit_test_bb.
15193 (collect_switch_conv_info): New function, collects info about a
15194 GIMPLE_SWITCH into a struct switch_conv_info.
15195 (check_range): Simplify to use pre-recorded info. Fix think-o in
15196 range-branch ratio check.
15197 (check_process_case): Remove function.
15198 (check_all_empty_except_final): New function, verifies that all
15199 non-final basic blocks are empty.
15200 (process_switch): Simplify to use pre-recorded info. Call
15201 collect_switch_conv_info to do that. Assert that degenerate switch
15202 statements have been cleaned up.
15203
487282d5 152042012-04-27 Marc Glisse <marc.glisse@inria.fr>
15205
15206 PR middle-end/27139
15207 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
15208
b0ec32b9 152092012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
15210
15211 PR c/53130
15212 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
15213
b736e424 152142012-04-27 Tom de Vries <tom@codesourcery.com>
15215
15216 PR tree-optimization/51879
15217 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
15218 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
15219 of ...
15220 (defs_to_varying): ... here. Don't set use_processed.
15221 (visit_reference_op_call): Handle gimple_vdef.
15222 Handle case that lhs is NULL_TREE.
15223 (visit_use): Use mark_use_processed. Handle calls with side-effect
15224 using visit_reference_op_call.
15225
fdb1b2b1 152262012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
15227
15228 * sched-deps.c (fixup_sched_groups): Rename to...
15229 (chain_to_prev_insn): ...this.
15230 (chain_to_prev_insn_p): New function.
15231 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
15232
b30b031c 152332012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
15234
15235 * sched-int.h (_haifa_insn_data): Move priority_status.
15236 Add model_index.
15237 (INSN_MODEL_INDEX): New macro.
15238 * haifa-sched.c (insn_delay): New function.
15239 (sched_regno_pressure_class): Update commentary.
15240 (mark_regno_birth_or_death): Pass the liveness bitmap and
15241 pressure array as arguments, instead of using curr_reg_live and
15242 curr_reg_pressure. Only update the pressure if the bit in the
15243 liveness set has changed.
15244 (initiate_reg_pressure_info): Always trust the live-in set for
15245 SCHED_PRESSURE_MODEL.
15246 (initiate_bb_reg_pressure_info): Update call to
15247 mark_regno_birth_or_death.
15248 (dep_list_size): Take the list as argument.
15249 (calculate_reg_deaths): New function, extracted from...
15250 (setup_insn_reg_pressure_info): ...here.
15251 (MODEL_BAR): New macro.
15252 (model_pressure_data, model_insn_info, model_pressure_limit)
15253 (model_pressure_group): New structures.
15254 (model_schedule, model_worklist, model_insns, model_num_insns)
15255 (model_curr_point, model_before_pressure, model_next_priority):
15256 New variables.
15257 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
15258 (MODEL_INSN_INFO, MODEL_INSN): New macros.
15259 (model_index, model_update_limit_points_in_group): New functions.
15260 (model_update_limit_points, model_last_use_except): Likewise.
15261 (model_start_update_pressure, model_update_pressure): Likewise.
15262 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
15263 (model_excess_cost, model_dump_pressure_points): Likewise.
15264 (model_set_excess_costs): Likewise.
15265 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
15266 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
15267 schedule as an alternative tie-breaker. Update the call to
15268 dep_list_size.
15269 (ready_sort): Call model_set_excess_costs.
15270 (update_register_pressure): Update call to mark_regno_birth_or_death.
15271 Rely on that function to check liveness rather than doing it here.
15272 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
15273 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
15274 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
15275 (model_record_pressure, model_record_pressures): New functions.
15276 (model_record_final_pressures, model_add_successors_to_worklist)
15277 (model_promote_predecessors, model_choose_insn): Likewise.
15278 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
15279 (model_start_schedule, model_finalize_pressure_group): Likewise.
15280 (model_end_schedule): Likewise.
15281 (schedule_insn): Say when we're scheduling the next instruction
15282 in the model schedule.
15283 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
15284 (queue_to_ready): Do not add instructions that are
15285 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
15286 Always allow the next instruction in the model schedule to be added.
15287 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
15288 and delay for SCHED_PRESSURE_MODEL too.
15289 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
15290 SCHED_PRIORITY_MODEL, but also take the DFA into account.
15291 (schedule_block): Call model_start_schedule and model_end_schedule.
15292 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
15293 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
15294 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
15295 region_ref_regs.
15296 (sched_finish): Update accordingly.
15297 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
15298 to SCHED_PRESSURE_MODEL.
15299 (add_jump_dependencies): Update call to dep_list_size.
15300 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
15301 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
15302 to SCHED_PRESSURE_MODEL.
15303 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
15304 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
15305 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
15306 handling to SCHED_PRESSURE_MODEL.
15307
11189c7a 153082012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
15309
15310 * common.opt (fsched-pressure-algorithm=): New option.
15311 * flag-types.h (sched_pressure_algorithm): New enum.
15312 * sched-int.h (sched_pressure_p): Replace with...
15313 (sched_pressure): ...this new variable.
15314 * haifa-sched.c (sched_pressure_p): Replace with...
15315 (sched_pressure): ...this new variable.
15316 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
15317 (update_reg_and_insn_max_reg_pressure, schedule_insn)
15318 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
15319 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
15320 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15321 (sched_analyze_insn): Likewise.
15322 * sched-rgn.c (schedule_region): Likewise.
15323 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
15324
be851ef2 153252012-04-26 Bernd Schmidt <bernds@codesourcery.com>
15326
15327 * PR middle-end/52997
15328 * ira.c (find_moveable_pseudos): Call resize_reg_info.
15329
c8076084 15330 PR middle-end/52940
15331 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
15332 * expr.c (convert_move): Honor unsignedp when extending partial int
15333 modes.
15334 * genmodes.c (complete_mode): Don't clear component field of partial
15335 int modes.
15336 (emit_mode_inner): Don't emit it however.
15337 (calc_wider_mode): Partial int modes widen to their component.
15338
cd7e5042 153392012-04-26 David S. Miller <davem@davemloft.net>
15340
65e00a51 15341 * config/sparc/niagara4.md: New file.
15342 * config/sparc/sparc.md: Include it.
15343 * config/sparc/sparc.c (niagara4_costs): New processor costs.
15344 (sparc_option_override): Use it.
15345 (sparc_use_sched_lookahead): Return 2 for niagara4.
15346 (sparc_issue_rate): Likewise.
15347
cd7e5042 15348 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
15349 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
15350 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
9676484f 15351 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
cd7e5042 15352 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
15353 alignaddrldi_vis): Set type to gsr.
15354 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
15355 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
15356 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
15357 v<vis3_shift_patname><mode>3, fmean16_vis,
15358 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
15359 fucmp<code>8<P:mode>_vis): Set type to fga.
15360 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
15361 * config/sparc/niagara.md: Likewise.
15362 * config/sparc/niagara2.md: Likewise.
15363 * config/sparc/ultra3.md: Likewise, and fix type matching for
15364 us3_ialuX reservation.
15365
c7ba7c12 153662012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15367
15368 * reload.c (find_reloads): Change the loop nesting when trying an
15369 alternative with swapped operands.
15370
3f898bd2 153712012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
15372
15373 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
15374 comment. Delete unused parameter first_exp_point_map.
15375 (virt_loc_aware_diagnostic_finalizer): Update call.
15376
9dd1a066 153772012-04-26 Michael Hope <michael.hope@linaro.org>
15378 Richard Earnshaw <rearnsha@arm.com>
15379
15380 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
15381 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
15382 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
15383 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
15384
d79cfc15 153852012-04-25 Sriraman Tallam <tmsriram@google.com>
15386
15387 * doc/extend.texi: Document avx2 support.
15388 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
15389
74e06a83 153902012-04-26 Hans-Peter Nilsson <hp@axis.com>
15391
15392 PR target/53120
15393 * config/cris/cris.md ("*andhi_lowpart_v32")
15394 ("*andqi_lowpart_v32"): Change first input-only operand from
15395 a (match_operand ...) to (match_dup 0). Drop alternatives with
15396 const_int-matching constraints for redundancy.
15397 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
15398 three-operand alternative.
15399
b828abf1 154002012-04-25 Jakub Jelinek <jakub@redhat.com>
15401
15402 PR target/53110
15403 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
15404 instead expand it as zero extension.
15405
89336bc3 154062012-04-25 H.J. Lu <hongjiu.lu@intel.com>
15407
15408 PR debug/52857
9676484f 15409 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
89336bc3 15410
052166fd 154112012-04-25 Jakub Jelinek <jakub@redhat.com>
15412
15413 * common.opt (flag_debug_types_section): Default to 0.
15414 (dwarf_version): Default to 4.
15415 (dwarf_record_gcc_switches): Default to 1.
15416 (dwarf_strict): Default to 0.
15417 * toplev.c (process_options): Don't handle dwarf_strict
15418 or dwarf_version here.
15419 * config/vxworks.c (vxworks_override_options): Don't
15420 test whether dwarf_strict or dwarf_version are negative,
15421 instead test !global_options_set.x_dwarf_*.
15422 * config/darwin.c (darwin_override_options): Default to
15423 dwarf_version 2.
15424 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
15425 and -fno-debug-types-section are now the default.
15426
da5e1e7c 154272012-04-25 Jan Hubicka <jh@suse.cz>
15428
15429 * cgraphunit.c: Update toplevel comment.
15430 (tree_rest_of_compilation): Merge into cgraph_expand_function.
15431 (cgraph_analyze_function): Make static.
15432 (cgraph_decide_is_function_needed): Make static.
15433 (cgraph_add_new_function): Use expand_function instead of
15434 rest_of_compilation.
15435 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
15436 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
15437 Move to cgraph.c
15438 (cgraph_inline_p): Remove.
15439 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
15440 (init_cgraph): Add comment.
15441 * cgraphbuild.c (record_reference, mark_address, mark_load,
15442 mark_store): Do not call analyze_expr hook.
15443 * cgraph.c: Update toplevel comment.
15444 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
15445 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
15446 Move fere from cgraphunit.c
15447 (cgraph_mark_force_output_node): Move to cgraph.h
15448 * cgraph.h: Reorder so the comments match the function placement.
15449 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
15450 (cgraph_mark_force_output_node): Move here from cgraph.c
15451 * tree.c (free_lang_data): Do not clear analyze_expr hook.
15452 * ipa-inline-transform.c (preserve_function_body_p): New function.
15453 (inline_transform): Update.
15454 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
15455 * langhooks.h (lang_hooks_for_callgraph): Remove.
15456 (lang_hooks): Remove callgraph.
15457 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
15458 * varpool.c: Remove out of date comment.
15459 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
15460 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
15461
9a2639fc 154622012-04-25 Jan Hubicka <jh@suse.cz>
15463
9676484f 15464 PR middle-end/53089
15465 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
15466 forward declaration.
9a2639fc 15467 (cgraph_finalize_function): Finalize them here.
15468 * symtab.c (dump_symtab): Dump ctors and dtors.
15469
27d5d67b 154702012-04-25 Jakub Jelinek <jakub@redhat.com>
15471
7e9ba3f3 15472 PR middle-end/52979
15473 * stor-layout.c (get_best_mode): Don't return mode with bitsize
15474 larger than maxbits. Don't compute maxbits modulo align.
15475 Also check that unit bytes long store at bitpos / unit * unit
15476 doesn't affect bits beyond bitregion_end.
15477 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
9676484f 15478 would not fit into bitregion_start ... bitregion_end + 1 bit region.
7e9ba3f3 15479 (store_split_bit_field): Decrease unit close to end of bitregion_end
15480 if access is restricted in order to avoid mutual recursion.
15481
27d5d67b 15482 PR tree-optimization/53058
15483 * double-int.h (double_int_max_value, double_int_min_value): New
15484 prototypes.
15485 * double-int.c (double_int_max_value, double_int_min_value): New
15486 functions.
9676484f 15487 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
15488 or GT_EXPR with double_int_max_value instead of double_int_mask.
27d5d67b 15489
2afdcbed 154902012-04-25 Richard Guenther <rguenther@suse.de>
15491
15492 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
15493 * tree-vect-loop.c (vect_transform_loop): Adjust.
15494 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
15495 the maximum number of iterations for the epilogue loop.
9676484f 15496 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
2afdcbed 15497
537cbcc2 154982012-04-25 Jakub Jelinek <jakub@redhat.com>
15499
15500 PR c/52880
15501 * c-typeck.c (set_nonincremental_init,
15502 set_nonincremental_init_from_string): Pass true instead of false
15503 as IMPLICIT to add_pending_init.
15504
292bb106 155052012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
15506
15507 * c-typeck.c (pop_init_level): Improve diagnostics.
15508
56cc4397 155092012-04-25 Uros Bizjak <ubizjak@gmail.com>
15510
15511 * compare-elim.c (try_eliminate_compare): Also handle operands with
15512 implicit extensions.
15513
cef20746 155142012-04-25 Alan Modra <amodra@gmail.com>
15515
15516 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
15517 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
15518 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
15519 (no_global_regs_above): Delete.
15520 (no_global_regs): New function.
15521 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
15522 value for load multiple test.
15523 (savres_routine_syms): Increase size.
15524 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
15525 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
15526 rather than a number of boolean flags. Update all callers.
15527 (rs6000_savres_routine_name): Generate vector save/restore names.
15528 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
15529 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
15530 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
15531 and using_store_multiple. Expand uses. Don't always use r11 as
15532 frame reg when needed for out-of-line saves. Set up initial offset
15533 for out-of-line vector saves when buying stack frame. Handle pointer
15534 reg setup for out-of-line fp save. Emit call to out-of-line vector
15535 save function. Choose r11 or r12 for vrsave reg when available for
15536 better scheduling.
15537 (rs6000_output_function_prologue): Don't emit .extern for ELF.
15538 (rs6000_emit_epilogue): Choose a better frame reg when restoring
15539 from back-chain to suit out-of-line vector restore functions. Emit
15540 call to out-of-line vector restore function. Adjust register used
15541 for cr restore. Tweak pointer register setup for gpr restore.
15542 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
15543 FIXED_R13.
15544 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
15545 (V_SAVE_INLINE): Define.
15546 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
15547
6b5a351f 155482012-04-25 Alan Modra <amodra@gmail.com>
15549
15550 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
15551 out-of-line save/restore for large frames. Don't disable
15552 out-of-line saves on ABI_AIX when using static chain reg.
15553 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
15554 clobber static chain reg, and tweak for out-of-line gpr saves
15555 that use r1.
15556
e2750fe5 155572012-04-25 Alan Modra <amodra@gmail.com>
15558
15559 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
15560 (rs6000_emit_prologue): Use the above to catch register overlap.
15561
be846acb 155622012-04-25 Alan Modra <amodra@gmail.com>
15563
15564 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
15565 decl. Move logic selecting update reg to callers. Update all callers.
15566 (rs6000_emit_allocate_stack): Add copy_off param.
15567 (emit_frame_save): Don't handle reg+reg addressing.
15568 (ptr_regno_for_savres): New function, extracted from..
15569 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
15570 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
15571 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
15572 frame offset adjustment for out-of-line save with copy from sp.
15573 Simplify condition controlling whether cr is saved early or
15574 late. Use ptr_regno_for_savres to verify correct reg is set
15575 up for out-of-line saves. Pass the actual pointer reg used to
15576 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
15577 function. Rearrange spe vars so code is similar to that
15578 elsewhere in this function. Don't update frame_off when spe
15579 save code will restore r11. Use emit_frame_save for spe and
15580 gpr saves. Consolidate darwin out-of-line gpr setup with that
15581 for other abis. Don't assume frame_offset is zero and frame
15582 reg is sp when setting up altivec reg saves, and calculate
15583 exact offset requirement.
15584 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
15585 spe restore code. Consolidate darwin out-of-line gpr setup
15586 with that for other abis.
15587
9319fb2c 155882012-04-25 Alan Modra <amodra@gmail.com>
15589
15590 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
15591 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
15592 the replacement.
15593 (emit_frame_save): Delete frame_ptr param. Rename total_size to
15594 frame_reg_to_sp.
15595 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
15596 and emit_frame_save calls. Cope with possibly missing note.
15597
f0fd108f 155982012-04-24 Sriraman Tallam <tmsriram@google.com>
15599
15600 * config/i386/i386.c (build_processor_model_struct): New function.
15601 (make_var_decl): New function.
15602 (fold_builtin_cpu): New function.
15603 (ix86_fold_builtin): New function.
15604 (make_cpu_type_builtin): New function.
15605 (ix86_init_platform_type_builtins): New function.
15606 (ix86_expand_builtin): Expand new builtins by folding them.
15607 (ix86_init_builtins): Make new builtins to detect CPU type.
15608 (TARGET_FOLD_BUILTIN): New macro.
15609 (IX86_BUILTIN_CPU_INIT): New enum value.
15610 (IX86_BUILTIN_CPU_IS): New enum value.
15611 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
15612 * config/i386/i386-builtin-types.def: New function type.
15613 * testsuite/gcc.target/builtin_target.c: New testcase.
15614 * doc/extend.texi: Document builtins.
15615
11652e71 156162012-04-24 Olivier Hainque <hainque@adacore.com>
15617
15618 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
15619 * toplev.c (process_options): Default to dwarf_version 2.
15620 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
15621 and dwarf_version 2.
15622
c224fa34 156232012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
15624
15625 * tree-pretty-print.h (default_tree_printer): Do not declare.
15626 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
15627 intl.h.
15628 (default_tree_diagnostic_starter): Make static.
15629 (default_tree_printer): Move to here. Make static.
15630 (tree_diagnostics_defaults): New.
15631 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
15632 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
15633 * toplev.c: Do not include tree-pass.h.
15634 (default_tree_printer): Move from here.
15635 (general_init): Use tree_diagnostics_defaults.
15636
f5dfbb10 156372012-04-24 Chao-ying Fu <fu@mips.com>
15638
15639 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
15640 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
15641 * config/mips/gnu-user.h
15642 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
15643 (GNU_USER_TARGET_LINK_SPEC): New define.
15644 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
15645 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
15646 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
15647 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
15648 GNU_USER_TARGET_ENDFILE_SPEC.
15649 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
15650 (GNU_USER_TARGET_LINK_SPEC): New define.
15651 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
15652 * config/mips/linux-common.h: New file.
15653
745d490f 156542012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15655
15656 PR target/47197
15657 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
15658 (altivec_build_resolved_builtin): Call fully_fold_convert.
15659
8bcbced7 156602012-04-24 Georg-Johann Lay <avr@gjlay.de>
15661
15662 PR target/53065
15663 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
15664
a34205cc 156652012-04-24 Richard Guenther <rguenther@suse.de>
15666
15667 PR tree-optimization/53085
15668 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
15669 stores.
15670
630fd6e1 156712012-04-24 Richard Guenther <rguenther@suse.de>
15672
15673 * tree-if-conv.c (main_tree_if_conversion): Move bb under
15674 ENABLE_CHECKING.
15675
156762012-04-24 Jim Meyering <meyering@redhat.com>
891852a2 15677
15678 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
15679 absence of an define_enum call.
15680
15fa0281 156812012-04-24 Richard Guenther <rguenther@suse.de>
15682
15683 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
15684 the epilogue loop is not re-used as unvectorized version
15685 record the its maximum number of iterations.
15686
0a3f7203 156872012-04-24 Andrew Pinski <apinski@cavium.com>
15688
15689 * tree-ssa-forwprop.c (simplify_bitwise_binary):
15690 Don't directly use def1/def2.
15691
9a5ede52 156922012-04-24 Richard Guenther <rguenther@suse.de>
15693
15694 PR tree-optimization/53098
15695 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
15696 comparison sign.
15697
10fbe63d 156982012-04-24 Andrew Pinski <apinski@cavium.com>
15699
15700 PR tree-opt/33512
15701 * tree-ssa-forwprop.c (defcodefor_name): New function.
15702 (simplify_bitwise_binary): Use defcodefor_name instead of manually
15703 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
15704 Simplify "(~X | Y) & X" to "X & Y" and
15705 "(~X & Y) | X" to "X | Y".
15706
dae9d0e7 157072012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15708
15709 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
15710 validate_change to add clobbers if IN_GROUP is nonzero.
15711 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
15712 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
15713 prototype.
15714 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
15715 set to false.
15716 * config/s390/s390.c (insn_invalid_p): Likewise.
15717
41d658f4 157182012-04-24 Jakub Jelinek <jakub@redhat.com>
15719
36a2ea56 15720 PR middle-end/53084
56cc4397 15721 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
36a2ea56 15722 (output_addressed_constants): Likewise.
15723
41d658f4 15724 PR middle-end/52999
15725 * varasm.c (get_section): Don't ICE for section conflicts with
15726 built-in section kinds.
15727
a9805878 157282012-04-23 DJ Delorie <dj@redhat.com>
15729
15730 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
15731 (LIBSTDCXX): Change to CPP2.
15732
5fcf082c 157332012-04-23 H.J. Lu <hongjiu.lu@intel.com>
15734
15735 PR bootstrap/52878
15736 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
15737 extra_masks.
15738
a110769b 157392012-04-23 Uros Bizjak <ubizjak@gmail.com>
15740
15741 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
15742 (*addsi_2_zext): Ditto.
15743 (*add<mode>_3): Ditto.
15744 (*addsi_3_zext): Ditto.
15745 (*add<mode>_5): Ditto.
15746
35967c0f 157472012-04-23 Andrew Pinski <apinski@cavium.com>
15748
15749 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
15750 (C & B) to (A OP0) & B.
15751
a1a9ca4f 157522012-04-23 Martin Jambor <mjambor@suse.cz>
15753
15754 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
15755 temporaries created for a bitfield (reverting revision 122014).
15756
87ae3989 157572012-04-23 Richard Guenther <rguenther@suse.de>
15758
15759 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
15760 the condition using is_gimple_condexpr and avoid the not necessary
15761 boolification.
15762 (set_prologue_iterations): Likewise.
15763 (vect_loop_versioning): Likewise.
15764
53a87a4b 157652012-04-23 Richard Guenther <rguenther@suse.de>
15766
15767 PR tree-optimization/53070
15768 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
15769 (main_tree_if_conversion): Verify we succeeded in that.
15770
da751785 157712012-04-23 Jan Hubicka <jh@suse.cz>
15772
15773 * lto-symtab.c (lto_cgraph_replace_node): Do not call
15774 mark_reahcable_node.
15775 * cgraph.c (cgraph_remove_node): Do not clear reachable.
15776 (cgraph_mark_reachable_node): Remove.
15777 (cgraph_mark_force_output_node): Do not set reachable.
15778 (dump_cgraph_node): Do not dump reachable.
15779 (cgraph_create_virtual_clone): Do not set reachable.
15780 * cgraph.h (cgraph_node): Remove reachable flag.
15781 (varpool_node): Remove reachable flag.
15782 (cgraph_mark_if_needed): Remove.
15783 (cgraph_mark_reachable_node): Remove.
a110769b 15784 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
da751785 15785 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
15786 reachable.
15787 (cgraph_add_new_function): Likewise.
15788 (cgraph_mark_if_needed): Remove.
15789 (cgraph_analyze_function): Do not set target as reachable.
a110769b 15790 (process_function_and_variable_attributes): Do not care about
15791 dllexport.
da751785 15792 (cgraph_analyze_functions): Do not set reachable flags.
15793 (cgraph_mark_functions_to_output): Do not check reachability.
15794 (cgraph_copy_node_for_versioning): Do not set reachable flag.
15795 (dbxout_expand_expr): Update.
15796 * c-decl.c (merge_decls): Do not track changed externs.
15797 * ipa.c: Include pointer-set.h
15798 (enqueue_cgraph_node): Use reachable pointer set.
15799 (process_references): Likewise.
15800 (cgraph_remove_unreachable_nodes): Likewise.
a110769b 15801 (whole_program_function_and_variable_visibility): Do not recompute
15802 reachable.
da751785 15803 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
15804
6222cbcc 158052012-04-23 Georg-Johann Lay <avr@gjlay.de>
15806
15807 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
15808
104619f5 158092012-04-23 Richard Guenther <rguenther@suse.de>
15810
15811 PR c/53060
15812 * c-typeck.c (build_binary_op): Fix typo.
15813
78fb8a4f 158142012-04-23 Jakub Jelinek <jakub@redhat.com>
15815
15816 PR tree-optimizations/52891
15817 * tree-vect-patterns.c (adjust_bool_pattern): Use
15818 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
15819 but with non-standard precision.
15820
12faa8e4 158212012-04-22 Jan Hubicka <jh@suse.cz>
15822
104619f5 15823 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
15824 tree refs.
12faa8e4 15825
ff2a5ada 158262012-04-22 Jan Hubicka <jh@suse.cz>
15827
15828 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
15829 * cgraphbuild.c (record_reference, record_type_list, mark_address,
15830 mark_load, mark_store): Do not mark varpool nodes as needed.
15831 * cgraph.c (cgraph_new_nodes): Remove.
15832 (cgraph_create_function_alias): Do not mark nodes as reachable.
15833 (cgraph_add_thunk): Likewise.
15834 (cgraph_mark_reachable_node): Do not manage the queue.
15835 * cgraph.h (cgraph_node): Remove next_needed.
15836 (varpool_nodes_queue): Remove next_needed and prev_needed.
15837 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
15838 (cgraph_new_nodes): Declare.
15839 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
15840 (varpool_analyze_pending_decls): Remove.
15841 (varpool_analyze_node): New.
15842 (varpool_mark_needed_node): Remove.
15843 (varpool_first_variable, varpool_next_variable): New inlines.
a110769b 15844 (varpool_first_static_initializer, varpool_next_static_initializer):
15845 Update.
ff2a5ada 15846 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
15847 (varpool_first_defined_variable): New inline.
15848 (varpool_next_defined_variable): New inline
15849 (FOR_EACH_VARIABLE): Reimplement.
15850 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
15851 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
15852 needed flag.
15853 * cgraphunit.c (cgraph_new_nodes): Declare here.
15854 (enqueue_node): New function.
15855 (cgraph_process_new_functions): update for new
15856 node set; when constructing cgraph enqueue node for processing.
15857 (cgraph_add_new_function): Use new node set.
15858 (process_function_and_variable_attributes): Do not set varpool needed
15859 flags.
15860 (referred_to_p): New function.
15861 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
15862 when varpool is in construction.
15863 (cgraph_analyze_functions): Rewrite.
15864 (cgraph_expand_all_functions): Update.
a110769b 15865 (cgraph_output_in_order): Do not analyze pending decls; do not set
15866 needed flags.
ff2a5ada 15867 (cgraph_optimize): Do not analyze pending decls.
a110769b 15868 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
15869 in other partition; do not mark node as needed.
ff2a5ada 15870 * dwarf2out.c (reference_to_unused): Use analyzed flag.
15871 (premark_types_used_by_global_vars_helper): Likewise.
15872 * ipa.c (process_references): Do not call varpool_mark_needed_node.
15873 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
15874 cgrpah queues.
15875 (function_and_variable_visibility): Do not mark node as needed.
15876 (whole_program_function_and_variable_visibility): Likewise.
15877 * Makefile.in (gt-varpool.h): No longer needed.
15878 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
15879 (ipa_write_summaries): Do not use needed flag.
15880 * varpool.c: Do not include gt-varpool.h
15881 (x_varpool_nodes_queue, x_varpool_last_needed_node,
15882 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
15883 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
15884 Remove.
15885 (varpool_remove_node): Do not update the lists.
15886 (dump_varpool_node): Do not dump needed flag.
15887 (varpool_enqueue_needed_node): Remove.
15888 (varpool_mark_needed_node): Remove.
15889 (varpool_reset_queue): Remove.
15890 (varpool_finalize_decl): Move to cgraphunit.c
15891 (varpool_analyze_node): New functions based on former
15892 varpool_analyze_pending_decls.
15893 (varpool_analyze_pending_decls): Remove.
15894 (varpool_assemble_decl): Do not update the lists.
15895 (enqueue_node): New function.
15896 (varpool_remove_unreferenced_decls): Rewrite.
15897 (varpool_empty_needed_queue): Remove.
15898 (add_new_static_var): Do not mark node as needed.
15899 (varpool_create_variable_alias): Handle expansion state
15900 creation.
15901 * except.c (output_ttype): Do not mark node as needed.
15902 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
15903 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
15904 Likewise.
15905 * tree-switch-conversion.c (build_one_array): Likewise.
15906
29438999 159072012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
15908
15909 PR c/44774
15910 * doc/invoke.texi (pedantic): Rename to Wpedantic.
15911 * common.opt (Wpedantic): New.
15912 (pedantic): Alias Wpedantic.
15913 * diagnostic.c (warning_at): Likewise.
15914 * c-decl.c (diagnose_mismatched_decls): Likewise.
15915 (build_array_declarator): Likewise.
15916 (mark_forward_parm_decls):
15917 (check_bitfield_type_and_width): Likewise.
15918 (grokdeclarator): Likewise.
15919 (grokfield): Likewise.
15920 (finish_struct): Likewise.
15921 (build_enumerator): Likewise.
15922 (store_parm_decls_oldstyle): Likewise.
15923 (declspecs_add_qual): Likewise.
15924 (declspecs_add_type): Likewise.
15925 (finish_declspecs): Likewise.
15926 * c-typeck.c (composite_type): Likewise.
15927 (comp_target_types): Likewise.
15928 (build_array_ref): Likewise.
15929 (pointer_diff): Likewise.
15930 (build_unary_op): Likewise.
15931 (build_conditional_expr): Likewise.
15932 (build_c_cast): Likewise.
15933 (convert_for_assignment): Likewise.
15934 (maybe_warn_string_init): Likewise.
15935 (digest_init): Likewise.
15936 (pop_init_level): Likewise.
15937 (set_init_index): Likewise.
15938 (c_finish_goto_label): Likewise.
15939 (c_finish_return): Likewise.
15940 (do_case): Likewise.
15941 (build_binary_op): Likewise.
15942 * c-parser.c (static): Likewise.
15943 (c_parser_external_declaration): Likewise.
15944 (c_parser_declaration_or_fndef): Likewise.
15945 (c_parser_static_assert_declaration_no_se): Likewise.
15946 (c_parser_enum_specifier): Likewise.
15947 (c_parser_struct_or_union_specifier): Likewise.
15948 (c_parser_struct_declaration): Likewise.
15949 (c_parser_alignas_specifier): Likewise.
15950 (c_parser_braced_init): Likewise.
15951 (c_parser_initelt): Likewise.
15952 (c_parser_compound_statement_nostart): Likewise.
15953 (c_parser_conditional_expression): Likewise.
15954 (c_parser_alignof_expression): Likewise.
15955 (c_parser_postfix_expression): Likewise.
15956 (c_parser_postfix_expression_after_paren_): Likewise.
15957 (c_parser_objc_class_instance_variables): Likewise.
15958 (c_parser_objc_method_definition): Likewise.
15959 (c_parser_objc_methodprotolist): Likewise.
15960
5150d596 159612012-04-22 Ian Lance Taylor <iant@google.com>
15962
15963 * godump.c (go_output_typedef): Dump size of structs.
15964
89675e8c 159652012-04-22 Razya Ladelsky <razya@il.ibm.com>
61cb2bc3 15966
15967 Correcting transform_to_exit_first_loop + fix to PR46886
15968 * tree-parloops.c (transform_to_exit_first_loop): Remove
15969 setting of number of iterations according to the loop pattern.
15970 Duplicate from entry to exit->src instead of loop->latch.
15971 (pallelize_loops): Remove the condition preventing do-while loops.
15972 * tree-cfg.c (bool bb_in_region_p): New.
15973 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
15974 Adjust redirection of the duplicated iteration.
15975
86e87ef6 159762012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
15977
15978 PR bootstrap/53021
15979 * rtl.def (ADDRESS): Use "i" rather than "w".
15980 * rtl.h (find_base_term): Delete.
15981 (may_be_sp_based_p): Declare.
15982 * rtl.c (rtx_code_size): Remove ADDRESS special case.
15983 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
15984 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
15985 * alias.c: ...here.
15986 (find_base_term): Make static.
15987 (may_be_sp_based_p): New function.
15988 * dse.c (record_store): Use it.
15989 * store-motion.c (store_killed_in_insn): Likewise.
15990
fd39b896 159912012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
15992
15993 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
15994
28738b20 159952012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
15996
15997 PR 35441
15998 * c-typeck.c (inform_declaration): New.
15999 (build_function_call_vec): Do not pretty-print
16000 expressions when caret is enabled.
16001 (convert_arguments): Use inform_declaration.
16002
cdf7d299 160032012-04-20 Jim Meyering <meyering@redhat.com>
16004
16005 * genmodes.c (make_complex_modes): Don't truncate a mode name of
16006 length 7 or more when prepending a "C". Suggested by Richard Guenther.
16007
3293b457 160082012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16009
16010 PR rtl-optimization/44214
16011 * fold-const.c (exact_inverse): New function.
16012 (fold_binary_loc): Fold vector and complex division by constant into
16013 multiply by recripocal with flag_reciprocal_math; fold vector division
16014 by constant into multiply by reciprocal with exact inverse.
16015
8efa224a 160162012-04-20 Jan Hubicka <jh@suse.cz>
16017
61cb2bc3 16018 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
16019 force flags.
8efa224a 16020 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
16021 (cgraph_remove_node): Update.
16022 (cgraph_mark_needed_node): Remove.
16023 (cgraph_mark_force_output_node): New.
16024 (dump_cgraph_node): Do not dump needed flag.
16025 (cgraph_node_cannot_be_local_p_1): Update.
16026 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
16027 * cgraph.h (symtab_node_base): Add force_output flag.
16028 (cgraph_node): Remove needed flag.
16029 (varpool_node): Remove force_output flag.
16030 (cgraph_mark_needed_node): Remove.
16031 (cgraph_mark_force_output_node): New.
16032 (cgraph_only_called_directly_or_aliased_p,
16033 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
16034 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
16035 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
61cb2bc3 16036 (cgraph_add_new_function): Update.
16037 (cgraph_mark_if_needed): Update.
8efa224a 16038 (verify_cgraph_node): Update.
16039 (cgraph_analyze_function): Alias target is reachable.
16040 (process_function_and_variable_attributes): Update: externally_visible
16041 flag makes function reachable.
16042 (cgraph_analyze_functions): Update dumping.
16043 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
16044 input_overwrite_node, input_varpool_node): Update streaming.
16045 * lto-streamer-out.c (produce_symtab): Use force_output.
16046 * ipa.c (process_references): Weakrefs must be processed.
16047 (cgraph_remove_unreachable_nodes): Likewise; update for new
16048 force_output flag.
61cb2bc3 16049 (varpool_externally_visible_p): Weakrefs are externally visible
8efa224a 16050 even if they are not.
16051 (function_and_variable_visibility): Update; when processing alias
16052 pair force the targets to be output.
61cb2bc3 16053 (whole_program_function_and_variable_visility): Use
16054 mark_reachable_node.
8efa224a 16055 * trans-mem.c (ipa_tm_mark_needed_node): Remove
16056 (ipa_tm_mark_force_output_node): New function.
16057 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
61cb2bc3 16058 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
16059 aliases.
8efa224a 16060 * varasm.c (mark_decl_referenced): Update.
16061 (find_decl_and_mark_needed): Remove.
16062 (find_decl): New function.
16063 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
16064 alias targets as needed.
16065 (dump_tm_clone_pairs): Update.
16066 * tree-inline.c (copy_bb): Update check.
16067 * symtab.c (dump_symtab_base): Dump force_output.
16068 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
16069 * passes.c (execute_todo): Fix dumping.
16070 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
16071 (varpool_analyze_pending_decls): Alias target is reachable.
16072 (varpool_create_variable_alias): Finalize weakrefs.
16073
df3e5a67 160742012-04-20 Jakub Jelinek <jakub@redhat.com>
16075
16076 PR bootstrap/53021
16077 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
16078 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
16079 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
16080 macros instead of constants.
16081 * dse.c (record_store): Check for SP ADDRESS by comparing
16082 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
16083 XEXP to be stack_pointer_rtx.
16084
ebc3ea23 160852012-04-20 Richard Guenther <rguenther@suse.de>
16086
16087 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
16088 update_call_from_tree when propagating into a call.
16089
64581563 160902012-04-20 Alan Modra <amodra@gmail.com>
16091
16092 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
16093 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
16094 sp_offset to frame_off. Move world save code earlier.
16095
11b881f5 160962012-04-20 Richard Guenther <rguenther@suse.de>
16097
16098 PR tree-optimization/53050
16099 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
16100 Do only one transform on COND_EXPRs at the same time.
16101
cae322a0 161022012-04-19 Jan Hubicka <jh@suse.cz>
16103
16104 * symtab.c (dump_symtab_base): Revert accidental checkin.
16105
2e30c82f 161062012-04-20 Alan Modra <amodra@gmail.com>
16107
16108 PR target/53040
16109 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
16110 static chain, set REST_INLINE_FPRS too.
16111
7f85203b 161122012-04-20 Thomas Schwinge <thomas@codesourcery.com>
16113
16114 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
16115 nodes.
16116
5115d20b 161172012-04-20 Richard Guenther <rguenther@suse.de>
16118
61cb2bc3 16119 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
16120 loops that can never run more often than the vectorization factor.
5115d20b 16121
cfacc26f 161222012-04-19 Jan Hubicka <jh@suse.cz>
16123
16124 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
16125
34fac337 161262012-04-19 David Edelsohn <dje.gcc@gmail.com>
16127
16128 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
16129
2e045eaa 161302012-04-19 Jim Meyering <meyering@redhat.com>
16131
2e045eaa 16132 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
16133 We verified above that the string(including trailing NUL) fits in buf,
16134 so just use memcpy.
16135
5300ccdd 161362012-04-19 Richard Guenther <rguenther@suse.de>
16137
16138 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
16139 for dumping DECL_SECTION_NAME.
16140
dbe954dc 161412012-04-19 Michael Matz <matz@suse.de>
16142
16143 PR middle-end/52977
16144 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
16145 (struct tree_vector): Adjust GTY length.
16146 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
16147
16148 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
16149 members.
16150 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
16151 caller emitted the length calulation already.
16152 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
16153 before handling any of the fields for structs.
16154
dbf94397 161552012-04-19 Richard Guenther <rguenther@suse.de>
16156
16157 PR tree-optimization/53031
16158 * tree-vrp.c (adjust_range_with_scev): Revert back to
16159 using max_loop_iterations.
16160
e3d533cf 161612012-04-19 Michael Matz <matz@suse.de>
16162
16163 * diagnostic.c (emit_diagnostic): Move va_end call after user
16164 of the va_list.
16165 (warning, warning_at, pedwarn, permerror): Ditto.
16166
8ee14c01 161672012-04-19 Richard Guenther <rguenther@suse.de>
16168
16169 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
16170 array access.
16171
27b3429e 161722012-04-19 Georg-Johann Lay <avr@gjlay.de>
16173
16174 PR target/53033
16175 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
16176 the case *(X+const).
16177
31e4b46c 161782012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16179
16180 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
16181
61cb2bc3 161822012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
d85dbdb3 16183
16184 PR c/52283/37985
16185 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
16186 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
16187
8fb72e03 161882012-04-19 Richard Guenther <rguenther@suse.de>
16189
16190 PR rtl-optimization/44688
16191 * loop-iv.c (determine_max_iter): Only return max_iter.
16192 (iv_number_of_iterations): Also use the recorded loop bound
16193 on the maximum number of iterations.
16194 * loop-unroll.c (decide_unroll_runtime_iterations): Use
16195 max_iter to avoid unrolling loops that do not roll.
16196 (decide_unroll_stupid): Likewise.
16197
bfb10994 161982012-04-18 Steven Bosscher <steven@gcc.gnu.org>
16199
16200 * targhooks.c (default_case_values_threshold): Fix code style nit.
16201
16202 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
16203 case range and type folding from here...
16204 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
c8302ead 16205 type, as documented in tree.def.
bfb10994 16206
3e7775f6 162072012-04-18 Jan Hubicka <jh@suse.cz>
16208
16209 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
16210 Declare.
bef9aba3 16211 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
3e7775f6 16212 cgraph hash and same comdat groups.
61cb2bc3 16213 (cgraph_optimize): Verify symbol table.
3e7775f6 16214 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
16215 (dissolve_same_comdat_group_list): Work on symtab nodes.
16216 (function_and_variable_visibility): Dissolve variable same comdat group
16217 lists, too.
16218 * symtab.c: Include timevar.h
16219 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
16220
9541f573 162212012-04-18 Steven Bosscher <steven@gcc.gnu.org>
16222
5d459527 16223 * tree-switch-conversion.c (info): Remove global pass info.
16224 (check_range, check_process_case, check_final_bb, create_temp_arrays,
16225 free_temp_arrays, gather_default_values, build_constructors,
16226 array_value_type, build_one_array, build_arrays, gen_def_assigns,
16227 fix_phi_nodes, gen_inbound_check): Pass info around from ...
16228 (process_switch): ... here. Unify message format. Return a const
16229 char pointer to the failure reason message.
16230 (do_switchconv): Unify message format. Update process_switch usage.
16231
9541f573 16232 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
16233 * tree-cfg.c (edge_to_cases): Fix documentation.
16234
ed13de71 162352012-04-18 Uros Bizjak <ubizjak@gmail.com>
16236
16237 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
16238
a963cb46 162392012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16240
16241 PR tree-optimization/52976
16242 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
16243 (possibly_move_powi): New function.
16244 (rewrite_expr_tree): Call possibly_move_powi.
16245 (rewrite_expr_tree_parallel): Likewise.
16246 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
16247 call add_to_ops_vec instead.
16248
56e650d6 162492012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16250
16251 PR tree-optimization/52976
16252 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
16253 (decrement_power): Likewise.
16254 (propagate_op_to_single_use): Likewise.
16255 (zero_one_operation): Handle __builtin_pow* calls in linearized
16256 expression trees; factor logic into propagate_op_to_single_use.
16257 (undistribute_ops_list): Allow operands with repeat counts > 1.
16258
b6556916 162592012-04-18 Richard Guenther <rguenther@suse.de>
16260
16261 PR tree-optimization/44688
16262 * cfgloop.h (record_niter_bound): Declare.
16263 * tree-ssa-loop-niter.c (record_niter_bound): Export.
16264 Update the estimation with the upper bound here...
16265 (estimate_numbers_of_iterations_loop): ... instead of here.
16266 Do not forcefully reset a recorded upper bound.
16267 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
61cb2bc3 16268 Record the maximum number of loop iterations of the prologue loop.
b6556916 16269
04ec15fa 162702012-04-18 Jan Hubicka <jh@suse.cz>
16271
16272 * lto-symtab.c (lto_cgraph_replace_node): Update.
16273 * cgraphbuild.c (record_reference, record_type_list,
16274 record_eh_tables, mark_address, mark_load, mark_store): Update.
16275 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
16276 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
16277 Update.
16278 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
16279 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
16280 * reload.c: Fix typo in comment.
16281 * rtlanal.c: Likewise.
16282 * tree-emultls.c (gen_emutls_addr): Update.
16283 * ipa-reference.c (analyze_function): Update.
16284 * cgraphunit.c (cgraph_analyze_function,
16285 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
16286 Update.
16287 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
16288 (ipa_remove_reference): Likewise.
16289 (ipa_remove_all_refering): Rename to ...
16290 (ipa_remove_all_referring): ... this one; update.
16291 (ipa_dump_references): Update.
16292 (ipa_dump_referring): Update.
16293 (ipa_clone_references): Update.
16294 (ipa_clone_refering): Rename to ...
16295 (ipa_clone_referring): ... this one; update.
16296 (ipa_ref_cannot_lead_to_return): Update.
16297 (ipa_ref_has_aliases_p): Update.
16298 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
16299 forward typedefs.
16300 (ipa_ref_type): Remove.
16301 (ipa_ref_ptr_u): Remove.
16302 (ipa_ref): Remove referencing, refered, refered_index, refering_type
16303 and refered_type; add referring, referred and referred_index.
16304 (ipa_ref_list): Rename refering to referring.
16305 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
16306 ipa_clone_references, ipa_clone_referring): Update prototypes.
16307 * lto-cgraph.c (referenced_from_other_partition_p): Update.
16308 (lto_output_ref): Update.
16309 (add_references): Update.
16310 (input_varpool_node): Update.
16311 (input_refs): Update.
16312 * ipa-ref-inline.h (ipa_ref_node): Update.
16313 (ipa_ref_varpool_node): Update.
61cb2bc3 16314 (ipa_ref_referring_node): Update.
04ec15fa 16315 (ipa_ref_referring_varpool_node): Update.
61cb2bc3 16316 (ipa_ref_referring_ref_list): Update.
04ec15fa 16317 (ipa_ref_referred_ref_list): Update.
16318 (ipa_ref_list_first_referring): Update.
16319 (ipa_empty_ref_list): Update.
16320 (ipa_ref_list_refering_iterate): Rename to ...
16321 (ipa_ref_list_referring_iterate): ... this one.
16322 * cse.c: Update comment.
16323 * ipa-utils.c (ipa_reverse_postorder): Update.
16324 * tree-ssa-alias.c: Update.
16325 * ipa-inline.c (reset_edge_caches): Update.
16326 (update_caller_keys): Update.
16327 * ipa-inline.h: Update comments.
16328 * jump.c: Update comment.
16329 * alias.c: Likewise.
16330 * ipa.c (process_references): Update.
16331 (cgraph_remove_unreachable_nodes): Likewise.
16332 (ipa_discover_readonly_nonaddressable_var): Likewise.
16333 (cgraph_address_taken_from_non_vtable_p): Likewise.
16334 * trans-mem.c (ipa_tm_execute): Update.
16335 * simplify-rtx.c: Fix comment.
16336 * rtl.c: Fix comment.
16337 * symtab.c (symtab_unregister_node): Update.
16338 * varpool.c (dump_varpool_node): Update.
16339 (varpool_analyze_pending_decls): Update.
16340 (assemble_aliases): Update.
16341 (varpool_for_node_and_aliases): Update.
16342
7f521ab4 163432012-04-18 Richard Guenther <rguenther@suse.de>
16344
16345 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
16346 use_undefined_p parameter.
16347 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
16348 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
16349 Likewise.
16350 (estimate_numbers_of_iterations): Likewise.
16351 (estimated_loop_iterations): Adjust.
16352 (max_loop_iterations): Likewise.
16353 (scev_probably_wraps_p): Likewise.
16354 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
16355 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
16356 not max_loop_iterations.
16357 (execute_vrp): Remove explicit number of iterations estimation.
16358
ba102931 163592012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
16360
16361 * config/i386/linux-common.h: New.
16362
16363 * config.gcc: Add i386/linux-common.h before
16364 all i386/linux.h and i386/linux64.h usages.
16365
16366 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
16367 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
16368 * config/i386/gnu-user64.h: Likewise.
16369
16370 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
16371 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
16372 (GNU_USER_TARGET_MATHFILE_SPEC): New.
16373 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
16374
18841b0c 163752012-04-18 Jan Hubicka <jh@suse.cz>
16376
16377 * cgraph.c (cgraph_node_name): Remove.
16378 (dump_cgraph_node): Use dump_symtab_base; reformat.
16379 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
16380 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
16381 Declare.
16382 (cgraph_node_name, varpool_node_name): Remove.
16383 (cgraph_node_asm_name, varpool_node_asm_name,
16384 cgraph_node_name, varpool_node_name): New.
16385 * tree-pass.h (TODO_dump_cgraph): Rename to ...
16386 (TODO_dump_symtab): ... this one.
16387 * ipa-cp (pass_ipa_cp): Update.
16388 * ia-reference.c (generate_summary, read_write_all_from_decl,
16389 propagate, ipa_reference_read_optimization_summary): Update.
16390 * cgraphunit.c (cgraph_analyze_functions): Update.
16391 (cgraph_optimize): Update.
16392 * ipa-ref.c (ipa_dump_references): Update.
16393 (ipa_dump_refering): Update.
16394 * ipa-inline.c (pass_ipa_inline): Update.
16395 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
16396 * ipa.c (pass_ipa_function_visibility,
16397 pass_ipa_whole_program_visibility): Update.
16398 * tree-sra.c (pass_early_ipa_sra): Update.
16399 * symtab.c: Include langhooks.h
16400 (symtab_node_asm_name): New.
16401 (symtab_node_name): New.
16402 (symtab_type_names): New static var.
16403 (dump_symtab_base): New.
16404 (dump_symtab_node, dump_symtab): New.
16405 (debug_symtab_node, debug_symtab): New.
16406 * tree-ssa-structalias.c: Dump symbol table.
16407 * pases.c (execute_todo): Handle TODO_dump_symtab instead
16408 of TODO_dump_cgraph.
16409 * varpoo.c (varpool_node_name): Remove.
16410 (dump_varpool_node): Use dump_symtab_base; reformat.
16411
b583dffb 164122012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
16413
61cb2bc3 16414 * doc/invoke.texi (Language Independent Options): @item should be
b583dffb 16415 before @opindex.
16416
9a37e9c6 164172012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
16418
16419 PR bootstrap/53021
16420 * rtl.c (rtx_code_size): Handle ADDRESS.
16421
85d618f3 164222012-04-17 Tom de Vries <tom@codesourcery.com>
16423
16424 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
16425 is not a STMT_LIST.
16426
4e0c0c52 164272012-04-17 Uros Bizjak <ubizjak@gmail.com>
16428
16429 PR target/53020
16430 * config/i386/sync.md (atomic_<code><mode>): Rename to
16431 atomic_<logic><mode>.
16432
4e56ceb1 164332012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
16434
16435 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
16436 * alias.c (reg_base_value): Expand and update comment.
16437 (arg_base_value): New variable.
16438 (unique_id): Move up file.
16439 (unique_base_value, unique_base_value_p, known_base_value_p): New.
16440 (find_base_value): Use arg_base_value and known_base_value_p.
16441 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
16442 (find_base_term): Use known_base_value_p.
16443 (base_alias_check): Use unique_base_value_p.
16444 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
16445 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
16446
b100cea5 164472012-04-17 Pat Haugen <pthaugen@us.ibm.com>
16448
16449 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
16450
7a10f06b 164512012-04-17 Michael Matz <matz@suse.de>
16452
16453 PR tree-optimization/18437
16454 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
16455 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
16456 (vect_check_strided_load): Declare.
16457 * tree-vect-data-refs.c (vect_check_strided_load): New function.
16458 (vect_analyze_data_refs): Use it to accept strided loads.
16459 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
16460
3a37f7bd 164612012-04-17 Richard Guenther <rguenther@suse.de>
16462
16463 PR middle-end/53011
16464 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
16465 loops when redirecting an entry or latch edge.
16466
2bc1ac5a 164672012-04-17 Bernd Schmidt <bernds@codesourcery.com>
16468
16469 * sel-sched.c (sel_global_init): Revert previous change.
16470
e01d3bb3 164712012-04-17 Richard Guenther <rguenther@suse.de>
16472
16473 * tree-flow.h (array_at_struct_end_p): Move declaration ...
16474 * tree.h (array_at_struct_end_p): ... here.
16475 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
16476 * expr.c (array_at_struct_end_p): ... here. Rewrite.
16477
1c391fd0 164782012-04-17 Steven Bosscher <steven@gcc.gnu.org>
16479
16480 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
16481 COST_TABLE): Remove.
16482 (estimate_case_costs): Remove.
16483 (expand_case): Do not call estimate_case_costs
16484 to set use_cost_table.
16485 (balance_case_nodes): Do not use use_cost_table.
16486
cfbe30aa 164872012-04-16 Jan Hubicka <jh@suse.cz>
16488
16489 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
16490 (hash_node, eq_node): Remove.
16491 (cgraph_create_node): Do not handle hashtable.
16492 (cgraph_get_node): Remove.
16493 (cgraph_insert_node_to_hashtable): Remove.
16494 (hash_node_by_assembler_name): Remove.
16495 (eq_assembler_name): Remove.
16496 (cgraph_node_for_asm): Rewrite.
16497 (cgraph_find_replacement_node): Break out from ...
16498 (cgraph_remove_node): ... here; do not maintain hashtables.
16499 (change_decl_assembler_name): Remove.
16500 (cgraph_clone_node): Do not maintain hashtables.
16501 * cgraph.h (const_symtab_node): New typedef.
16502 (cgraph_insert_node_to_hashtable): Remove.
16503 (symtab_get_node, symtab_node_for_asm,
16504 symtab_insert_node_to_hashtable): Declare.
16505 (cgraph_find_replacement_node): Declare.
16506 (cgraph_get_node, varpool_get_node): Turn into inlines.
16507 (cgraph, varpool): Work sanely on NULL pointers.
16508 (FOR_EACH_SYMBOL): New walker.
16509 * ipa-inline-transform.c (save_inline_function_body): Use
16510 symtab_insert_node_to_hashtable.
16511 * symtab.c: Include ggc.h and diagnostics.h
16512 (symtab_hash, assembler_name_hash): New static vars;
16513 (hash_node, eq_node, hash_node_by_assembler_name,
16514 eq_assembler_name, insert_to_assembler_name_hash,
16515 unlink_from_assembler_name_hash): New.
16516 (symtab_register_node): Update hashtables.
16517 (symtab_insert_node_to_hashtable): New.
16518 (symtab_unregister_node): Update hashtables.
16519 (symtab_get_node): New.
16520 (symtab_node_for_asm): New.
16521 (change_decl_assembler_name): New.
16522 * Makefile.in (symtab.o): Needs GTY.
16523 * varpool.c (varpool_hash): Remove.
16524 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
16525 (varpool_node): Rewrite using varpool_get_node.
16526 (varpool_remove_node): DO not maintain hashtables.
61cb2bc3 16527 (varpool_node_for_asm): Rewrite.
cfbe30aa 16528
cafd8c6c 165292012-04-16 Sandra Loosemore <sandra@codesourcery.com>
16530
16531 * doc/invoke.texi: Copy-edit to put verbs in the present tense
16532 when describing the current behavior of GCC.
16533
5d92623d 165342012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
16535
16536 * genemit.c (gen_exp): Remove ADDRESS handling.
16537 * genoutput.c (scan_operands): Likewise.
16538 * genpeep.c (match_rtx): Likewise.
16539 * genrecog.c (add_to_sequence): Likewise.
16540
addbb217 165412012-04-16 David Edelsohn <dje.gcc@gmail.com>
16542
61cb2bc3 16543 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
addbb217 16544
9e3797f2 165452012-04-16 Martin Jambor <mjambor@suse.cz>
16546
16547 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
16548 bit-fields.
16549
85cedc6b 165502012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
16551
16552 PR target/51819
16553 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
16554 hints for 'A' operand types.
16555
0704fb2e 165562012-04-16 Jan Hubicka <jh@suse.cz>
16557
16558 * cgraph.h (symtab_node_base): Add next and previous pointers.
16559 (cgraph_node): Remove next and preivous pointers.
16560 (varpool_node): Likewise; remove next/previous GTY marker;
16561 it is not type safe.
16562 (symtab_node_def): Update GTY marker
16563 (x_cgraph_nodes, cgraph_nodes): Remove.
16564 (symtab_nodes): New function.
16565 (cgraph_order): Rename to ...
16566 (symtab_order): ... this one.
16567 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
16568 Declare.
16569 (x_varpool_nodes, varpool_nodes): Remove.
16570 (FOR_EACH_STATIC_VARIABLE): Update.
16571 (symtab_function_p, symtab_variable_p): New function.
16572 (FOR_EACH_VARIABLE): Update.
16573 (varpool_first_variable, varpool_next_variable): New functions.
16574 (FOR_EACH_VARIABLE): Update.
16575 (cgraph_first_defined_function): Update.
16576 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
16577 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
16578 (cgraph_first_function, cgraph_next_function): New.
16579 (FOR_EACH_FUNCTION): Update.
16580 (cgraph_first_function_with_gimple_body,
16581 cgraph_next_function_with_gimple_body): Update.
16582 * symtab.c: New file.
16583 * cgraph.c: Update copyright dates.
16584 (x_cgraph_nodes, cgraph_order): Remove.
16585 (NEXT_FREE_NODE): Update.
16586 (SET_NEXT_FREE_NODE): New.
16587 (cgraph_create_node_1): Remove common code.
61cb2bc3 16588 (cgraph_create_node): Remove common code; call symtab_register_node.
0704fb2e 16589 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
61cb2bc3 16590 (cgraph_add_asm_node): Update.
0704fb2e 16591 (cgraph_clone_node): Register new node.
16592 * cgraphunit.c (process_function_and_variable_attributes): Update.
16593 (cgraph_analyze_functions): Update.
16594 (cgraph_analyze_functions): Update.
16595 (cgraph_output_in_order): Update.
61cb2bc3 16596 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
16597 Update.
16598 * ipa-inline.c (recursive_inlining): Update.
16599 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
0704fb2e 16600 * ipa.c (cgraph_remove_unreachable_nodes): Update.
16601 * Makefile.in: Add symtab.o
16602 * varpool.c (x_varpool_nodes): Remove
16603 (varpool_node): Remove common code; call symtab_register_node.
61cb2bc3 16604 (varpool_remove_node): Remove common code; call symtab_unregister_node.
0704fb2e 16605
c7a1d251 166062012-04-16 Richard Guenther <rguenther@suse.de>
16607
16608 PR middle-end/52977
16609 * tree.h (VECTOR_CST_NELTS): Adjust.
16610 (struct tree_vector): Add explicit length field.
16611 (make_vector_stat): Declare.
16612 (make_vector): Define.
16613 * tree.c (make_vector_stat): New function.
16614 (build_vector_stat): Use it.
16615 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
16616
d8a78f92 166172012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16618
16619 PR tree-optimization/52976
16620 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
16621 (undistribute_ops_list): Ops with repeat counts aren't eligible for
16622 undistribution.
16623 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
16624
7c455d87 166252012-04-16 Jan Hubicka <jh@suse.cz>
16626
16627 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
16628 New macros.
16629 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
16630 walkers to walk cgraph and varpool.
16631 * cgraph.c (cgraph_node_for_asm): Likewise.
16632 (dump_cgraph): Likewise.
16633 * value-prof.c (init_node_map): Likewise.
16634 * tree.c (free_lang_data_in_cgraph): Likewise.
16635 * tree-emutls.c: (ipa_lower_emutls): Likewise.
16636 * ipa-reference.c (generate_summary, propagate): Likewise.
16637 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
16638 cgraph_mark_functions_to_output, cgraph_output_in_order,
16639 output_weakrefs, cgraph_materialize_all_clones,
16640 cgraph_optimize): Likewise.
16641 * lto-cgraph.c (merge_profile_summaries): Likewise.
16642 (input_cgraph): Likewise.
16643 * ipa-pure-const.c (generate_summary): Likewise.
16644 (propagate): Likwise.
16645 * ipa-utils.c (ipa_reduced_postorder): Likewise.
16646 (ipa_free_postorder_info): Likewise.
16647 (ipa_reverse_postorder): Likewise.
16648 * ipa-inline.c (ipa_inline): Likewise.
16649 * matrix-reorg.c (find_matrices_decl): Likewise.
16650 (matrix_reorg): Likewise.
16651 * tree-vectorizer.c (increase_alignment): Likewise.
16652 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
16653 (function_and_variable_visibility): Likewise.
16654 (whole_program_function_and_variable_visibility): Likewise.
16655 (ipa_cdtor_merge): Likewise.
16656 * trans-mem.c (ipa_tm_execute): Likewise.
16657 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
16658 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
16659 (ipa_print_all_params): Likewise.
16660 (ipa_update_after_lto_read): Likewise.
16661 * tree-profie.c (tree_profiling): Likewise.
16662 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
16663 * passes.c (dump_passes): Likewise.
16664 (do_per_function): Likewise.
16665 (ipa_write_summaries): Likewise.
16666 * varpool.c (dump_varpool): Likewise.
16667 (varpool_node_for_asm): Likewise.
16668 (varpool_assemble_pending_decls): Likewise.
16669
06734da8 166702012-04-16 Richard Guenther <rguenther@suse.de>
16671
16672 PR tree-optimization/52975
16673 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
16674 condition but always mark it with TRUTH_NOT_EXPR.
4e0c0c52 16675
360b78f3 166762012-04-16 Richard Guenther <rguenther@suse.de>
16677
16678 PR tree-optimization/52975
16679 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
16680 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
16681 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
16682 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
16683
fd65bafc 166842012-04-14 Uros Bizjak <ubizjak@gmail.com>
16685
16686 * config/i386/sse.md (ssse3_plusminus): New code iterator.
16687 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
16688 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
16689 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
16690 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
16691 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
16692 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
16693
16694 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
16695 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
16696 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
16697 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
16698 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
16699 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
16700
16701 (xop_plus): New code iterator.
16702 (macs): New code attribute.
16703 (macds): Ditto.
16704 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
16705 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
16706 iterator.
16707 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
16708 xop_plus code iterator.
16709 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
16710 xop_plus code iterator.
16711 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
16712 xop_plus code iterator.
16713 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
16714 xop_plus code iterator.
16715
16716 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
16717 any_extend code iterator.
16718 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
16719 any_extend code iterator.
16720 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
16721 any_extend code iterator.
16722 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
16723 any_extend code iterator.
16724 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
16725 any_extend code iterator.
16726 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
16727 any_extend code iterator.
16728
a2b85e40 167292012-04-14 Tom de Vries <tom@codesourcery.com>
16730
16731 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
16732 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
16733 DELETED_LABEL note, and move it to ...
16734 * cfgrtl.c (delete_insn): ... here. Change return type to void.
16735 (delete_insn_and_edges): Likewise.
16736 (delete_insn_chain): Handle new return type of delete_insn. Delete
16737 chain backwards rather than forwards.
16738 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
16739 void.
16740 * cfglayout.c (fixup_reorder_chain): Delete unused label.
16741
7d0d0ce1 167422012-04-14 Jan Hubicka <jh@suse.cz>
16743
16744 * cgraph.h: Update copyrights;
16745 (symtab_node): Turn to union typedef.
16746 (symtab_node_base): New structure.
16747 (symtab_type): Add SYMTAB_SYMBOL tag.
16748 (cgraph_node): Annotate some pinters with nested_ptr.
16749 (varpool_node): Likewise.
16750 (cgraph_local_info): Remove lto_file_data
16751 and externally_visible.
16752 (cgraph_node): Remove decl; same_comdat_group list;
16753 aux; ref_list; order; address_taken; reachable_from_other_parittion,
16754 in_other_partition; resolution.
16755 (varpool_node): Remove decl; same_comdat_group;
16756 ref_list; lto_file_data; aux; order; resolution; externally_visible;
16757 used_from_other_partition; in_other_partition.
61cb2bc3 16758 (symtab_node_def): New union.
7d0d0ce1 16759 (cgraph, varpool): Update.
16760 (varpool_first_static_initializer, varpool_next_static_initializer,
16761 cgraph_only_called_directly_or_aliased_p,
16762 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
16763 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
16764 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
16765 field references.
16766 * cgraph.c: Likewise.
16767 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
16768 * cgraphbuild.c: Likewise.
16769 * lto-symtab.c: Likewise.
16770 * c-gimplify.c: Likewise.
16771 * value-prof.c: Likewise.
16772 * tree.c: Likewise.
16773 * ipa-cp.c: Likewise.
16774 * tree-emutls.c: Likewise.
16775 * ipa-inline-transform.c: Likwise.
16776 * ipa-reference.c: Likewise.
16777 * cgraphunit.c: Likewise.
16778 * ipa-ref.c: Likewise.
16779 * lto-cgraph.c: Likewise.
16780 * ipa-ref-inline.h: Likewise.
16781 * ipa-pure-const.c: Likewise.
16782 * lto-streamer-out.c: Likewise.
16783 * ipa-utils.c: Likewise.
16784 * ipa-inline.c: Likewise.
16785 * matrix-reorg.c: Likewise.
16786 * tree-eh.c: Likewise.
16787 * tree-vectorizer.c: Likewise.
16788 * ipa-split.c: Likewise.
16789 * ipa.c: Likewise.
16790 * trans-mem.c: Likewise.
16791 * ipa-inline-analysis.c: Likewise.
16792 * gimplify.c: Likewise.
16793 * cfgexpand.c: Likewise.
16794 * tree-sra.c: Likewise.
16795 * ipa-prop.c: Likewise.
16796 * varasm.c: Likewise.
16797 * tree-nested.c: Likewise.
16798 * tree-inline.c: Likewise.
16799 * tree-profile.c: Likewise.
16800 * tree-ssa-structalias.c: Likewise.
16801 * passes.c: Likewise.
16802 * varpool.c: Likewise.
16803
162fb1a4 168042012-04-14 Tom de Vries <tom@codesourcery.com>
16805
16806 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
16807 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
16808 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
16809 of find_edge.
16810 (gsi_advance_fw_nondebug_nonlocal): New function.
16811 (local_def): Removed function.
16812 (same_succ_hash): Use stmt_local_def.
16813 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
16814 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
16815
fc3dad6f 168162012-04-13 H.J. Lu <hongjiu.lu@intel.com>
16817
16818 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
16819 and __ILP32__ for x32.
16820
86d2a13e 168212012-04-13 Martin Jambor <mjambor@suse.cz>
16822
16823 PR middle-end/52939
16824 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
16825 fold_ctor_reference returns a zero constant.
16826
83dd7eef 168272012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
16828
16829 * config.gcc: Add i386/gnu-user-common.h before all
16830 i386/gnu-user.h and i386/gnu-user64.h usages.
16831
16832 * config/i386/gnu-user-common.h: New.
16833
16834 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
16835 (CC1_SPEC): Likewise.
16836 (ENDFILE_SPEC): Likewise.
16837 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
16838 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
16839 (TARGET_OS_CPP_BUILTINS): Likewise.
16840 (LIBGCC2_HAS_TF_MODE): Likewise.
16841 (LIBGCC2_TF_CEXT): Likewise.
16842 (TF_SIZE): Likewise.
16843 (TARGET_ASM_FILE_END): Likewise.
16844 (STACK_CHECK_MOVING_SP): Likewise.
16845 (STACK_CHECK_STATIC_BUILTIN): Likewise.
16846 * config/i386/gnu-user64.h: Likewise.
16847
75d525a2 168482012-04-13 Martin Jambor <mjambor@suse.cz>
16849
16850 * expr.c (expand_expr_real_1): Pass type, not the expression, to
16851 set_mem_attributes for a memory temporary. Do not call the function
16852 for the memory temporary created for a bitfield.
16853
2abb79fc 168542012-04-13 Alexandre Oliva <aoliva@redhat.com>
16855
16856 PR debug/48866
16857 * df.h (enum debug_temp_where): New.
16858 (dead_debug_init, dead_debug_finish) Declare.
16859 (dead_debug_add, dead_debug_insert_temp): Declare.
16860 (struct dead_debug_use, struct dead_debug): Moved from...
16861 * df-problems.c: ... here.
16862 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
16863 to a debug temp.
16864 (df_create_unused_note): Likewise.
16865 (df_set_dead_notes_for_mw): Move comment where it belongs.
16866 (dead_debug_init): Export.
16867 (dead_debug_reset_uses): New, factored out of...
16868 (dead_debug_finish): ...this. Export.
16869 (dead_debug_reset): Remove.
16870 (dead_debug_add): Export.
16871 (dead_debug_insert_before): Rename to...
16872 (dead_debug_insert_temp): ... this. Add where argument. Export.
16873 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
16874 Return insertion count.
16875 (df_note_bb_compute): Adjust.
16876 * dce.c (word_dce_process_block): Adjust dead debug uses.
16877 (dce_process_block): Likewise.
16878
9f5c85ce 168792012-04-13 Alexandre Oliva <aoliva@redhat.com>
16880
16881 * df-problems.c (df_note_bb_compute): Do not take note of
16882 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
16883
11643610 168842012-04-13 Alexandre Oliva <aoliva@redhat.com>
16885
16886 PR debug/51570
16887 * var-tracking.c (expand_depth): New type.
16888 (onepart_aux, expand_loc_callback_data): Change depth type to it.
16889 (loc_exp_dep_alloc): Adjust initializer.
16890 (update_depth): Use new type. Add entryvals.
16891 (vt_expand_var_loc_chain): Take note of expansions with
16892 ENTRY_VALUEs, but don't accept them right away. Run an optional
16893 second pass accepting the minimum ENTRY_VALUE count found in the
16894 first pass.
16895 (vt_expand_loc_callback, INIT_ELCD): Adjust.
16896
cdd84b7c 168972012-04-13 Tom de Vries <tom@codesourcery.com>
16898
16899 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
16900 parameters vuse and vuse_escaped.
16901 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
16902 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
16903 vuse1 != vuse2.
16904
2df61941 169052012-04-13 Richard Guenther <rguenther@suse.de>
16906
16907 PR tree-optimization/52969
16908 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
16909 the condition for the COND_EXPR and handle predicate negation
16910 by swapping the COND_EXPR arms.
16911
4f08bfe3 169122012-04-13 Nick Clifton <nickc@redhat.com>
16913
16914 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
16915 TODO_dump_func flag.
16916
30474b14 169172012-04-13 Andrey Belevantsev <abel@ispras.ru>
16918
16919 PR rtl-optimization/52203
16920 PR rtl-optimization/52715
16921
16922 Revert the 2012-03-07 fix for PR 52203.
16923 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
16924 the insn does not modify DFA right before issuing, adjust
16925 issue_rate accordingly.
16926
d1d7b24c 169272012-04-13 Richard Guenther <rguenther@suse.de>
16928
16929 PR c/52549
16930 * c-typeck.c (pointer_diff): Remove bogus assert.
16931
799c82e4 169322012-04-13 Richard Guenther <rguenther@suse.de>
16933
16934 PR c/52862
fd65bafc 16935 * convert.c (convert_to_pointer): Remove special-casing of zero.
799c82e4 16936
c5b75283 169372012-04-13 Joey Ye <joey.ye@arm.com>
16938
16939 * config/arm/constraints.md (Pe): New constraint.
16940 * config/arm/arm.md: New split for imm 256-510.
16941
9fd13df4 169422012-04-13 Terry Guo <terry.guo@arm.com>
16943
16944 * config/arm/arm-cores.def: Added core cortex-m0plus.
16945 * config/arm/arm-tune.md: Regenerated.
16946 * config/arm/arm-tables.opt: Regenerated.
16947 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
16948
d6415769 169492012-04-13 Alan Modra <amodra@gmail.com>
16950
16951 PR target/52828
16952 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
16953 tie regs on destination of sets. Delete forward declaration.
16954 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
16955 (rs6000_emit_prologue): Likewise.
16956 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
16957 and gen_stack_tie.
16958 (is_mem_ref): Use tie_operand to recognise stack ties.
16959 * config/rs6000/predicates.md (tie_operand): New.
16960 * config/rs6000/rs6000.md (restore_stack_block): Generate new
16961 stack tie rtl.
16962 (restore_stack_nonlocal): Likewise.
16963 (stack_tie): Update.
16964 (frame_tie): Delete.
16965
8ef3b7cb 169662012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16967
16968 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
16969 HOST_WIDE_INT_PRINT_DEC in format strings.
16970
8da8a06b 169712012-04-12 Uros Bizjak <ubizjak@gmail.com>
16972
16973 PR target/52932
16974 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
16975 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
16976 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
16977 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
16978 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
16979 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
16980 avx2_permvarv8si using VI4F_256 mode iterator.
16981 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
16982 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
16983 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
16984 gen_avx2_permvarv8sf.
16985 (expand_vec_perm_pshufb): Ditto.
16986
203e95f6 169872012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
16988
16989 PR target/52775
16990 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
16991 the list of options to enable the FCFID instruction.
16992 (TARGET_EXTRA_BUILTINS): Adjust comment.
16993
8c5ac7f6 169942012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16995
16996 PR tree-optimization/18589
16997 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
16998 (operand_entry): Add count field.
16999 (add_repeat_to_ops_vec): New function.
17000 (completely_remove_stmt): Likewise.
17001 (remove_def_if_absorbed_call): Likewise.
17002 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
17003 (acceptable_pow_call): New function.
17004 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
17005 entries with repeat counts when found.
17006 (repeat_factor_d): New struct and associated typedefs.
17007 (repeat_factor_vec): New static vector variable.
17008 (compare_repeat_factors): New function.
17009 (get_reassoc_pow_ssa_name): Likewise.
17010 (attempt_builtin_powi): Likewise.
17011 (reassociate_bb): Call attempt_builtin_powi.
17012 (fini_reassoc): Two new calls to statistics_counter_event.
17013
3db65b62 170142012-04-12 Richard Guenther <rguenther@suse.de>
17015
17016 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
17017 * cgraph.h (tree_rest_of_compilation): Remove.
17018 * cgraph.c (cgraph_add_new_function): Move ...
17019 * cgraphunit.c (cgraph_add_new_function): ... here.
17020 (tree_rest_of_compilation): Make static.
17021 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
17022 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
17023 gate_all_early_local_passes, execute_all_early_local_passes,
17024 pass_early_local_passes, gate_all_early_optimizations,
17025 pass_all_early_optimizations): Move ...
17026 * passes.c (gate_all_optimizations, pass_all_optimizations,
17027 gate_all_early_local_passes, execute_all_early_local_passes,
17028 pass_early_local_passes, gate_all_early_optimizations,
17029 pass_all_early_optimizations): ... here.
17030 * tree-optimize.c (execute_free_datastructures): Remove.
17031 * tree-flow.h (execute_free_datastructures): Remove.
17032 * tree-optimize.c (execute_init_datastructures,
17033 pass_init_datastructures): Move ...
17034 * tree-ssa.c (execute_init_datastructures,
17035 pass_init_datastructures): ... here.
17036 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
17037 execute_free_datastructures.
17038
fe9cf48d 170392012-04-12 Bernd Schmidt <bernds@codesourcery.com>
17040
17041 * dbgcnt.def (ira_move): New counter.
17042 * ira-int.h (ira_create_new_reg): Declare function.
17043 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
17044 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
17045 no longer static. All callers changed.
17046 * ira.c: Include "dbgcnt.h".
17047 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
17048 move_unallocated_pseudos): New static functions.
17049 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
17050 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
17051 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
17052 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
17053 to the pseudos generated in find_moveable_pseudos.
17054 * Makefile.in (ira.o): Add $(DBGCNT_H).
17055
06a9142d 170562012-04-12 Richard Guenther <rguenther@suse.de>
17057
17058 PR tree-optimization/52943
17059 * tree-chrec.h (chrec_is_positive): Remove.
17060 * tree-scalar-evolution.c (chrec_is_positive): Move ...
17061 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
17062 Return false for a constant zero instead of negative.
17063 (analyze_siv_subscript_cst_affine): Handle zero difference
17064 in the initial condition explicitely.
17065
b0b097b4 170662012-04-12 Richard Guenther <rguenther@suse.de>
17067
17068 * tree-parloops.c (parallelize_loops): Also consult the upper
17069 bound for the number of iterations.
17070 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
17071 (loop_prefetch_arrays): Likewise.
17072
fee017b3 170732012-04-12 Richard Guenther <rguenther@suse.de>
17074
17075 * cfgloop.h (estimated_loop_iterations_int): Ditch
17076 'conservative' parameter.
17077 (max_stmt_executions_int): Likewise.
17078 (estimated_loop_iterations): Likewise.
17079 (max_stmt_executions): Likewise.
17080 (max_loop_iterations): Declare.
17081 (max_loop_iterations_int): Likewise.
17082 (estimated_stmt_executions): Likewise.
17083 (estimated_stmt_executions_int): Likewise.
17084 * tree-ssa-loop-niter.c (estimated_loop_iterations):
17085 Split parts to ...
17086 (max_loop_iterations): ... this.
17087 (estimated_loop_iterations_int): Split parts to ...
17088 (max_loop_iterations_int): ... this.
17089 (max_stmt_executions_int): Split parts to ...
17090 (estimated_stmt_executions_int): ... this.
17091 (max_stmt_executions): Split parts to ...
17092 (estimated_stmt_executions): ... this.
17093 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
17094 * predict.c (predict_loops): Likewise.
17095 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
17096 (analyze_siv_subscript_cst_affine): Likewise.
17097 (compute_overlap_steps_for_affine_1_2): Likewise.
17098 (analyze_subscript_affine_affine): Likewise.
17099 (init_omega_for_ddr_1): Likewise.
17100 * tree-parloops.c (parallelize_loops): Likewise.
17101 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
17102 (may_eliminate_iv): Likewise.
17103 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
17104 (loop_prefetch_arrays): Likewise.
17105 * tree-vrp.c (adjust_range_with_scev): Likewise.
17106
c3583c9c 171072012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
17108
17109 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
17110 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
17111 Fix line width.
17112 (dump_table): Use bool type for need_align and have_df variables.
17113 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
17114 (regs_used): Remove register modifier.
17115 (barrier_align): Move variables slot, credit, jump_to_next
17116 into if block above for loop. Use bool type for jump_to_next.
17117 (sh_function_arg): Use NULL_RTX instead of 0.
17118
886bfde4 171192012-04-11 Andreas Schwab <schwab@linux-m68k.org>
17120
17121 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
17122 (bswapsi2): New expander.
17123
7a1c6e92 171242012-04-11 H.J. Lu <hongjiu.lu@intel.com>
17125
17126 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
17127 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
17128
e623c80a 171292012-04-11 H.J. Lu <hongjiu.lu@intel.com>
17130
17131 PR rtl-optimization/52876
17132 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
ed13de71 17133 Don't call mark_reg_pointer for incompatible pointer sign extension.
e623c80a 17134
886bfde4 17135 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
e623c80a 17136 directly.
17137
51dbf409 171382012-04-11 Bernd Schmidt <bernds@codesourcery.com>
17139
17140 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
17141 comparisons against TYPE_PRECISION.
17142 * tree-ssa-forwprop.c (combine_conversions): Likewise.
17143
65082f57 171442012-04-11 Xinliang David Li <davidxl@google.com>
17145
17146 * tree-passes.h: Remove TODO_dump_func.
17147 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
17148 * trans-mem.c: Remove TODO_dump_func.
17149 * ira.c: Remove TODO_dump_func.
17150
78474516 171512012-04-11 H.J. Lu <hongjiu.lu@intel.com>
17152
17153 * config/i386/i386.c (ix86_option_override_internal): Check
17154 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
17155 after TARGET_64BIT is updated.
17156
d498e090 171572012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
17158
17159 * config/sh/sh.h: Remove old secondary reload code.
17160
855d5778 171612012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
17162
17163 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
17164 (ready_reorder): ... this function.
17165
c486a06e 171662012-04-11 Bernd Schmidt <bernds@codesourcery.com>
17167
17168 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
17169 sched_init calls.
17170
ca5e50e4 17171 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
17172 insns so that no other insn is queued for a time before them.
17173
6b87239a 17174 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
17175 unknown.
17176
08754147 171772012-04-11 Richard Guenther <rguenther@suse.de>
17178
17179 PR middle-end/52621
17180 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
17181 consider loop nesting.
17182 (evolution_function_is_univariate_p): Properly check the remainder
17183 for chrecs.
17184
a4575f9d 171852012-04-11 Richard Guenther <rguenther@suse.de>
17186
17187 PR middle-end/52918
8da8a06b 17188 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
a4575f9d 17189
e4858e6a 171902012-04-11 Nick Clifton <nickc@redhat.com>
17191
17192 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
17193 information, if requested.
17194
ecfbd70a 17195 * config/rx/rx.c (rx_expand_prologue): Likewise.
17196
0a98b6d9 171972012-04-11 Peter Bergner <bergner@vnet.ibm.com>
17198 Michael Matz <matz@suse.de>
17199
17200 PR target/16458
17201 * rtlanal.c (unsigned_reg_p): New function.
17202 Update copyright notice dates.
17203 * rtl.h (unsigned_reg_p): Prototype it.
17204 Update copyright notice dates.
17205 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
17206 Update comment.
17207 * expr.c (expand_expr_real_1): Set register attributes.
17208 * stmt.c (expand_case): Likewise.
17209
51bc6b40 172102012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
17211
17212 PR target/50751
17213 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
17214 consider_sh2a and allow_zero.
17215 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
17216 (disp_addr_displacement): New function.
17217 (sh_address_cost): Use disp_addr_displacement function instead
17218 of DISP_ADDR_OFFSET.
17219 (sh_legitimate_address_p): Adapt to changed
17220 sh_legitimate_index_p declaration.
17221 (sh_find_mov_disp_adjust): Remove HImode check.
17222 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
17223 disp_addr_displacement and max_mov_insn_displacement.
17224 (max_mov_insn_displacement): Remove HImode check.
e4858e6a 17225 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
51bc6b40 17226 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
17227 * config/sh/constraints.md (K05, K13): New constraints.
17228 (K12): Correct comment.
17229 (Sdd): Do not use DISP_ADDR_P macro.
17230 (Snd, Sbw): Use satisfies_constraint_Sdd.
17231 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
17232 (*extendhisi2_compact, movhi_i): Remove.
17233 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
17234 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
17235 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
17236 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
17237 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
17238 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
17239 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
17240 CONST_OK_FOR_Kxx.
17241 Add new peepholes for HImode displacement addressing.
17242
3dad52b6 172432012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
17244
17245 * config/sh/sh.h (SIDI_OFF): Remove.
17246 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
17247 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
17248 or operand_subword.
17249
74bdbe96 172502012-04-11 Eric Botcazou <ebotcazou@adacore.com>
17251
17252 PR target/52624
17253 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
17254 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
17255 * doc/md.texi (Standard Names): Add bswap.
17256 * builtin-types.def (BT_UINT16): New primitive type.
17257 (BT_FN_UINT16_UINT16): New function type.
17258 * builtins.def (BUILT_IN_BSWAP16): New.
17259 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
17260 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
17261 expand_builtin_bswap.
17262 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
17263 (fold_builtin_1): Likewise.
17264 (is_inexpensive_builtin): Likewise.
17265 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
17266 missing bits for bswap to libcall code.
17267 * tree.c (build_common_tree_nodes): Build uint16_type_node.
17268 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
17269 (uint16_type_node): New define.
17270 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
17271 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
17272 above builtin.
17273 (rs6000_init_builtins): Likewise.
17274 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
17275
669b0b52 172762012-04-11 Tristan Gingold <gingold@adacore.com>
17277
17278 * doc/extend.texi (Type Attributes): Move paragraph.
17279
5a983084 172802012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
17281
17282 PR 24985
886bfde4 17283 * diagnostic.h (show_caret): Declare.
5a983084 17284 (caret_max_width): Declare.
17285 (diagnostic_show_locus): Declare.
886bfde4 17286 * diagnostic.c (diagnostic_initialize): Initialize to false.
17287 (diagnostic_show_locus): New.
17288 (diagnostic_report_diagnostic): Call it.
5a983084 17289 (getenv_columns): New.
17290 (adjust_line): New.
17291 (diagnostic_set_caret_max_width): New.
886bfde4 17292 * input.c (read_line): New.
5a983084 17293 (location_get_source_line): New.
886bfde4 17294 * input.h (location_get_source_line): Declare.
17295 * toplev.c (general_init): Initialize show_caret from options.
17296 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
17297 * opts.c (common_handle_option): Likewise.
5a983084 17298 * pretty-print.h (pp_get_prefix): New.
17299 (pp_base_get_prefix): New.
886bfde4 17300 * common.opt (fdiagnostics-show-caret): New option.
5a983084 17301 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
17302
980af7e0 173032012-04-11 Richard Guenther <rguenther@suse.de>
17304
17305 PR rtl-optimization/52881
17306 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
17307
d906930c 173082012-04-11 Richard Guenther <rguenther@suse.de>
17309
17310 PR tree-optimization/52912
17311 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
17312 manipulation code we are threading through a loop header
17313 to an exit destination.
17314
3d177e8c 173152012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
17316
17317 * tree.h (warn_if_unused_value): Move declaration from here.
17318 * stmt.c (warn_if_unused_value): Move definition from here.
17319
3169c57a 173202012-04-10 Michael Matz <matz@suse.de>
ee612634 17321
17322 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
17323 grouped_stores.
17324 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
17325 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
17326 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
17327 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
17328 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
17329 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
17330 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
17331 (vect_record_strided_load_vectors): Rename to
17332 vect_record_grouped_load_vectors.
17333 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
17334 Rename use of above macros.
17335 (vect_verify_datarefs_alignment): Ditto.
17336 (vector_alignment_reachable_p): Ditto.
17337 (vect_peeling_hash_get_lowest_cost): Ditto.
17338 (vect_enhance_data_refs_alignment): Ditto.
17339 (vect_analyze_group_access): Ditto and rename stride to groupsize.
17340 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
17341 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
17342 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
17343 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
17344 (vect_record_strided_load_vectors): Rename to
17345 vect_record_grouped_load_vectors.
17346 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
17347 (destroy_loop_vec_info): Ditto.
17348 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
17349 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
17350 (vect_analyze_slp): Ditto.
17351 (new_bb_vec_info): Ditto.
17352 (destroy_bb_vec_info): Ditto.
17353 (vect_schedule_slp_instance): Ditto and rename strided_store to
17354 grouped_store.
17355 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
17356 vect_cost_group_size.
17357 (vect_model_store_cost): Rename use of above macros and call
17358 to vect_cost_strided_group_size.
17359 (vect_model_load_cost): Ditto.
17360 (vectorizable_store): Ditto, rename strided_store to grouped_store
17361 and calls to renamed tree-vectorizer.h functions.
17362 (vectorizable_load): Ditto.
17363 (vect_transform_stmt): Rename use of above macros and strided_store
17364 to grouped_store.
17365
b6c89d32 173662012-04-10 Jan Hubicka <jh@suse.cz>
17367
17368 * cgraph.h: Remove misledaing comment on ipa-ref.h.
17369 (symtab_type): New enum.
17370 (symtab_node): New structure.
17371 (cgraph_node, varpool_node): Add symbol base type.
17372 (cgraph, varpool): New accestor functions.
17373 * cgraph.c (cgraph_create_node_1): Set symbol type.
17374 * varpool.c (varpool_node): Set symbol type.
17375
03ad17bf 173762012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
17377 Richard Sandiford <rdsandiford@googlemail.com>
17378
17379 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
17380
0b06d494 173812012-04-10 Richard Guenther <rguenther@suse.de>
17382
17383 PR middle-end/52888
17384 * gimple-low.c (gimple_check_call_args): Properly account for
17385 compatible aggregate types.
17386
941366fd 173872012-04-10 Richard Guenther <rguenther@suse.de>
17388
17389 * toplev.h (tree_rest_of_compilation): Remove.
17390 * tree-optimize.c (tree_rest_of_compilation): Likewise.
17391 * cgraph.h (tree_rest_of_compilation): Declare.
17392 * tree-optimize.c (tree_rest_of_compilation): Move ...
17393 * cgraphunit.c (tree_rest_of_compilation): ... here.
17394 * cgraph.c (cgraph_add_new_function): Adjust.
17395 * Makefile.in (tree-optimize.o): Adjust.
17396 (cgraphunit.o): Likewise.
17397
e9b545c7 173982012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
17399
17400 PR tree-optimization/52870
17401 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
17402 presumed pattern statement is within the same loop or basic block.
17403
ee0af6e0 174042012-04-10 Tristan Gingold <gingold@adacore.com>
17405
17406 * gengtype.c (main): Make uintptr_t a known type.
17407
47199071 174082012-04-10 Richard Guenther <rguenther@suse.de>
17409
17410 * tree-pass.h (tree_lowering_passes): Remove.
17411 * tree-optimize.c (tree_lowering_passes): Remove.
17412 * cgraph.c (cgraph_add_new_function): Inline relevant parts
8da8a06b 17413 of tree_lowering_passes, avoid redundant call of early local passes.
47199071 17414 * cgraphunit.c (cgraph_lower_function): Fold into ...
17415 (cgraph_analyze_function): ... its single caller. Inline
17416 relevant parts of tree_lowering_passes.
17417
69116fc2 174182012-04-09 H.J. Lu <hongjiu.lu@intel.com>
17419
17420 PR other/52777
17421 * config/pa/pa.opt: Remove SIO and GNU_LD.
17422
7c067609 174232012-04-09 Jan Hubicka <jh@suse.cz>
17424
17425 PR lto/52722
17426 PR lto/51765
886bfde4 17427 PR lto/52634
8da8a06b 17428 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
17429 boundary, add its target too.
7c067609 17430 * lto.c (add_references_to_partition): Add also aliased nodes.
17431 (add_cgraph_node_to_partition,
17432 add_varpool_node_to_partition): Work on nodes, not functions/variables;
17433 when adding alias, add also the aliased object.
17434
259ad1be 174352012-04-09 Uros Bizjak <ubizjak@gmail.com>
17436
17437 PR target/52883
17438 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
17439 VOIDmode immediate operands.
17440 * config/i386/constraints.md (Wz): New constraint.
17441 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
17442
a1bec0b4 174432012-04-09 Eric Botcazou <ebotcazou@adacore.com>
17444
17445 PR target/52717
17446 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
17447 the DECL generated for the special GOT helper.
17448
15f60366 174492012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
17450
17451 * config/sh/constraints.md: Update list of constraints in
17452 comment block.
17453 (Sr0): Remove unused memory constraint.
17454
24a470ff 174552012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
17456
17457 * tree-pretty-print.h: Update comment.
17458
afb109dd 174592012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
17460
497f6450 17461 * config/sh/sh.md: Use braced string notation where applicable.
17462 (*prefetch_i4, prefetch_m2a): Merge into ...
afb109dd 17463 (*prefetch): ... this new insn.
17464
278fc7da 174652012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
17466
17467 * config/sh/sh.h (high_life_started): Remove
17468 * config/sh/predicates.md (general_movdst_operand): Use
17469 'reload_in_progress' instead of 'high_life_started'.
17470 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
17471 divsi_inv_fp): Likewise.
17472
7141d4fc 174732012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
17474
17475 * config/sh/sh-protos.h (prepare_move_operands): Return void
17476 instead of int.
17477 * config/sh/sh.c (prepare_move_operands): Likewise.
17478 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
17479
fb4fa5d7 174802012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
17481
17482 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
17483 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
17484 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
17485 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
17486 commutative_float_operator, noncommutative_float_operator,
17487 sh_handle_pragma): Remove.
17488
b8829713 174892012-04-06 Sandra Loosemore <sandra@codesourcery.com>
17490
17491 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
17492 Use @option markup on command-line options. Use @samp markup on
17493 literal keywords to options. Use @code markup on code fragments.
17494 Use other markup in preference to quotation marks in the text.
17495 Add markup to some passages without any.
17496
03231f32 174972012-04-06 Mike Stump <mikestump@comcast.net>
17498
17499 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
17500
e75e7428 175012012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
17502
17503 * config/sh/sh.c (hi_const): Remove.
17504 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
17505 of hi_const.
17506
9db04979 175072012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
17508
17509 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
17510 to bool.
17511 * config/sh/sh.c (sh_expand_t_scc): Likewise.
17512 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
17513 calling sh_expand_t_scc.
17514
a3b1178e 175152012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
17516
17517 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
17518 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
17519 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
17520 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
17521 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
17522 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
17523 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
17524 sh2a_is_function_vector_call): Use bool as return type.
17525 (sh_pass_in_reg_p): Remove.
17526 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
17527 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
17528 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
17529 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
17530 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
17531 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
17532 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
259ad1be 17533 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
a3b1178e 17534 sh_loads_bankedreg_p): Use bool as return type.
17535 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
17536 'register' modifier.
17537
f97942ad 175382012-04-06 Matt Turner <mattst88@gmail.com>
17539
17540 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
17541
2688e10b 175422012-04-06 Eric Botcazou <ebotcazou@adacore.com>
17543
17544 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
17545 of the destination isn't also a FP_REGS register.
17546
ce559b32 175472012-04-05 Teresa Johnson <tejohnson@google.com>
17548 H.J. Lu <hongjiu.lu@intel.com>
17549
8da8a06b 17550 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
ce559b32 17551 * config/i386/i386.md (move immediate to memory peephole2):
17552 Add cases for HImode move when LCP stall avoidance is needed.
17553 * config/i386/i386.c (initial_ix86_tune_features): Initialize
17554 X86_TUNE_LCP_STALL entry.
17555
2473490d 175562012-04-05 Uros Bizjak <ubizjak@gmail.com>
17557
17558 PR target/52882
17559 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
17560 CONST_INT operands, zero-extended with AND.
17561
00868707 175622012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
17563
17564 PR target/50751
17565 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
17566 first argument instead of mode size. Move displacement calculations
17567 to ...
2473490d 17568 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
00868707 17569 ... these new functions.
17570 (disp_adjust): Remove max_mov_disp field.
17571 (sh_legitimate_index_p): Use max_mov_insn_displacement and
17572 mov_insn_alignment_mask.
17573 (sh_address_cost): Use max_mov_insn_displacement.
17574
10efb95f 175752012-04-05 Andrew Stubbs <ams@codesourcery.com>
17576
17577 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
17578 (arch_enabled): Handle new arch types.
17579 (one_cmpldi2): Add NEON support.
17580
183e96b6 175812012-04-05 Richard Guenther <rguenther@suse.de>
17582
17583 * gimple.c (walk_gimple_op): Compute val_only for the LHS
17584 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
17585 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
17586 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
17587 ... here and make static.
17588 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
17589 Remove.
17590
10792deb 175912012-04-05 Richard Guenther <rguenther@suse.de>
17592
17593 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
17594 basic-block before removing it.
17595
f901fae2 175962012-04-05 Richard Guenther <rguenther@suse.de>
17597
17598 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
17599 version namespace as we release the freelist.
17600
bc8a8451 176012012-04-05 Richard Guenther <rguenther@suse.de>
17602
17603 * tree-nrv.c (tree_nrv): Release VDEFs.
17604 * tree-sra.c (sra_modify_constructor_assign): Likewise.
17605 (sra_modify_assign): Likewise.
17606 * tree-vect-stmts.c (vect_remove_stores): Likewise.
17607 * tree-vect-loop.c (vect_transform_loop): Likewise.
17608 * tree-ssa-dom.c (optimize_stmt): Likewise.
17609 * tree-vect-slp.c (vect_schedule_slp): Likewise.
17610 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
17611
13ff78a4 176122012-04-05 Richard Guenther <rguenther@suse.de>
17613
17614 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
17615 cleanup.
17616 * gimple.h (gsi_remove): Adjust.
17617 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
17618 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
17619 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
17620 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
17621 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
17622 * tree-ssa-pre.c (eliminate): Likewise.
17623
db20fb47 176242012-04-04 Mike Stump <mikestump@comcast.net>
17625
17626 * doc/rtl.texi (const_double): Document as sign-extending.
8da8a06b 17627 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
db20fb47 17628 * emit-rtl.c (immed_double_int_const): Refine to state the
17629 value is signed.
17630 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
17631 CONST_DOUBLE integers.
17632 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
17633 negative values are converted. Fix conversions bigger than
17634 HOST_BITS_PER_WIDE_INT.
8da8a06b 17635 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
db20fb47 17636 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
17637 * explow.c (plus_constant_mode): Add.
17638 (plus_constant): Implement with plus_constant_mode.
17639 * rtl.h (plus_constant_mode): Add.
17640
f889f544 176412012-04-04 Richard Guenther <rguenther@suse.de>
17642
17643 PR tree-optimization/52808
8da8a06b 17644 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
f889f544 17645 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
17646
450c6e32 176472012-04-04 Tristan Gingold <gingold@adacore.com>
17648
17649 * expr.c (expand_expr_real_2): Handle larger sizetype in
17650 POINTER_PLUS_EXPR.
17651
98fb5f75 176522012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
17653
17654 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
17655 to m2a-single instead of m2e.
17656
3cef948a 176572012-04-03 Eric Botcazou <ebotcazou@adacore.com>
17658
17659 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
17660 Change type of BITOFFSET to signed. Make sure the lower bound of
17661 the computed range is non-negative by adjusting OFFSET and BITPOS.
17662 (expand_assignment): Adjust call to get_bit_range.
17663
d3677aa8 176642012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
17665
17666 * h8300/h8300.c (h8300_current_function_monitor_function_p):
886bfde4 17667 New function. Added to check monitor functions.
17668 (h8300_option_override): Modified to generate error/warning
17669 messages for invalid combinations of different command line
d3677aa8 17670 options.
17671 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
886bfde4 17672 save EXR on stack for monitor function in case of H8S target
d3677aa8 17673 when "-mno-exr" is passed.
8da8a06b 17674 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
17675 Add prototype.
d3677aa8 17676 * doc/invoke.texi: Document H8S options.
17677
749dea2a 176782012-04-03 Tristan Gingold <gingold@adacore.com>
17679
17680 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
17681 of gcc_AC_FUNC_MMAP_BLACKLIST.
17682 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
17683 * Makefile.in (aclocal_deps): Add mmap.m4.
17684 * configure: Regenerate.
17685 * aclocal.m4: Regenerate.
17686
35c67c83 176872012-04-03 Richard Guenther <rguenther@suse.de>
17688
17689 PR tree-optimization/52808
17690 * tracer.c (tail_duplicate): Return whether we have duplicated
17691 any block.
17692 (tracer): If we have duplicated any block, cleanup the CFG.
17693 * cfghooks.c (duplicate_block): If we duplicated a loop
17694 header but not its loop, destroy the loop because it now has
17695 multiple entries.
17696 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
17697 the cfg manipulation routines we are not creating a multiple
17698 entry loop.
17699
bc05341c 177002012-04-03 Tristan Gingold <gingold@adacore.com>
17701
17702 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
17703 'byte' alignment.
17704 (vms_c_common_override_options): Allow parameterless variadic
17705 functions.
17706
96758487 177072012-04-03 Jakub Jelinek <jakub@redhat.com>
17708
17709 PR tree-optimization/52835
17710 * tree-data-ref.c (build_rdg): Return NULL if
17711 compute_data_dependences_for_loop failed.
17712
766b6590 177132012-04-03 Eric Botcazou <ebotcazou@adacore.com>
17714
17715 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
17716 for REAL_CST as well.
17717 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
17718 In the bitfield case, if the value is a REAL_CST, convert it first to
17719 an INTEGER_CST.
17720
6fa78bde 177212012-04-02 H.J. Lu <hongjiu.lu@intel.com>
17722
17723 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
17724 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
17725 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
17726
17727 * config/i386/biarchx32.h: New.
17728
ffdb0b2d 177292012-04-02 Anatoly Sokolov <aesok@post.ru>
17730
17731 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
17732 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17733 (arm_preferred_reload_class): New function.
17734
6eb99d8a 177352012-04-02 Richard Guenther <rguenther@suse.de>
17736
17737 PR tree-optimization/52756
17738 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
17739 (thread_through_loop_header): After threading through the loop latch
17740 remove the split part from the loop and clear further threading
17741 opportunities that would create a multiple entry loop.
17742
ec3167d1 177432012-04-02 Richard Guenther <rguenther@suse.de>
17744
17745 PR rtl-optimization/52800
17746 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
17747 CLEANUP_CFG_CHANGED.
17748
759626e6 177492012-04-02 Richard Guenther <rguenther@suse.de>
17750
17751 PR middle-end/52803
17752 * loop-init.c (gate_handle_loop2): Destroy loops here if
17753 we don't enter RTL loop optimizers.
17754
8bbbe2b5 177552012-04-02 Uros Bizjak <ubizjak@gmail.com>
17756
17757 Partially revert:
17758 2012-03-29 Richard Guenther <rguenther@suse.de>
17759
17760 * rtl.h (extended_count): Remove.
17761 * combine.c (extended_count): Remove.
17762
6b1f0797 177632012-04-02 Dodji Seketeli <dodji@redhat.com>
17764
17765 PR c++/40942
17766 * pt.c (more_specialized_fn): Don't apply decay conversion to
17767 types of function parameters.
17768
337c992b 177692012-04-02 Tristan Gingold <gingold@adacore.com>
17770
17771 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
17772 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
17773 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
17774 (ggc_pch_this_base): Use uintptr_t instead of size_t.
17775
f4b5bb69 177762012-03-31 H.J. Lu <hongjiu.lu@intel.com>
17777
17778 PR bootstrap/52784
17779 * config/i386/i386.c (ix86_option_override_internal): Don't
17780 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
17781
822dbdbc 177822012-03-31 Eric Botcazou <ebotcazou@adacore.com>
17783
17784 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
17785 (stmt_can_make_abnormal_goto): Use it.
17786 (is_ctrl_altering_stmt): Likewise.
17787
5a333029 177882012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
17789 Kaz Kojima <kkojima@gcc.gnu.org>
17790
17791 * config/sh/sh.c (push_regs): Skip banked registers when
17792 resbank attribute is specified.
17793 (sh_expand_epilogue): Likewise.
17794
1249885e 177952012-03-30 Richard Henderson <rth@redhat.com>
17796
17797 PR debug/52727
17798 * combine-stack-adj.c (prev_active_insn_bb): New.
17799 (next_active_insn_bb): New.
17800 (force_move_args_size_note): New.
17801 (combine_stack_adjustments_for_block): Use it.
17802
8ae0b70d 178032012-03-30 Richard Henderson <rth@redhat.com>
17804
17805 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
17806 (ix86_expand_vector_init_duplicate): Initialize it.
17807 (expand_vec_perm_palignr): Likewise.
17808 (ix86_expand_vec_perm_const): Likewise.
17809 (ix86_vectorize_vec_perm_const_ok): Likewise.
17810 (expand_vec_perm_blend): Use it.
17811 (expand_vec_perm_vpermil): Likewise.
17812 (expand_vec_perm_pshufb): Likewise.
17813 (expand_vec_perm_1): Likewise.
17814 (expand_vec_perm_pshuflw_pshufhw): Likewise.
17815 (expand_vec_perm_interleave2): Likewise.
17816 (expand_vec_perm_vpermq_perm_1): Likewise.
17817 (expand_vec_perm_vperm2f128): Likewise.
17818 (expand_vec_perm_interleave3): Likewise.
17819 (expand_vec_perm_vperm2f128_vblend): Likewise.
17820 (expand_vec_perm_vpshufb2_vpermq): Likewise.
17821 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
17822 (expand_vec_perm_broadcast): Likewise.
17823 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
17824
1e5105ae 178252012-03-30 Richard Henderson <rth@redhat.com>
17826
17827 * dwarf2out.c (gen_variable_die): Initialize off.
17828
b26acc64 178292012-03-30 Tristan Gingold <gingold@adacore.com>
17830
17831 * config/vms/vms-f.c: New file.
17832 * config/vms/t-vms (vms-f.o): New rule.
17833 * config.gcc (*-*-*vms*): Define fortran_target_objs.
17834
b97e39a0 178352012-03-30 Richard Guenther <rguenther@suse.de>
17836
17837 PR tree-optimization/52754
17838 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
17839 propagate arbitrary addresses into really plain dereferences.
17840
99cc6bba 178412012-03-30 Richard Guenther <rguenther@suse.de>
17842
17843 PR middle-end/52772
17844 * except.c (emit_to_new_bb_before): Move loop updating ...
17845 (dw2_build_landing_pads): ... here. Use a proper block for
17846 querying the loop father.
17847
3cab3251 178482012-03-30 Tristan Gingold <gingold@adacore.com>
17849
17850 * config/ia64/ia64.c (ia64_section_type_flags): Remove
17851 common_object attribute handling.
17852 (SECTION_VMS_OVERLAY): Remove
17853 (ia64_vms_common_object_attribute): Replace abort with an assert.
17854 Do not set DECL_SECTION_NAME.
17855 (ia64_vms_output_aligned_decl_common): Handle common_object
17856 attribute.
17857 (ia64_vms_elf_asm_named_section): Remove.
17858 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
17859
24a49f00 178602012-03-30 Richard Guenther <rguenther@suse.de>
17861
17862 PR middle-end/52786
17863 * double-int.c (rshift_double): Remove not needed cast.
17864
d129ada0 178652012-03-30 Richard Guenther <rguenther@suse.de>
17866
17867 * tree-affine.h (print_aff): Remove.
17868 * tree-affine.c (print_aff): Make static.
17869 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
17870 (get_references_in_stmt): Likewise.
17871 (print_direction_vector): Likewise.
17872 (print_dir_vectors): Likewise.
17873 (print_dist_vectors): Likewise.
17874 (dump_subscript): Likewise.
17875 (dump_ddrs): Likewise.
17876 (dump_dist_dir_vectors): Likewise.
17877 (dump_data_references): Likewise.
17878 (dump_data_dependence_relation): Likewise.
17879 (dump_data_dependence_direction): Likewise.
17880 (dump_rdg_vertex): Likewise.
17881 (dump_rdg_component): Likewise.
17882 (debug_ddrs): Declare.
17883 (struct data_ref_loc_d): Move ...
17884 * tree-data-ref.c (struct data_ref_loc_d): ... here.
17885 (get_references_in_stmt): Make static.
17886 (dump_data_references): Likewise.
17887 (dump_subscript): Likewise.
17888 (print_direction_vector): Likewise.
17889 (print_dir_vectors): Likewise.
17890 (print_dist_vectors): Likewise.
17891 (dump_data_dependence_relation): Likewise.
17892 (dump_dist_dir_vectors): Likewise.
17893 (dump_ddrs): Likewise.
17894 (dump_rdg_vertex): Likewise.
17895 (dump_rdg_component): Likewise.
17896 (debug_ddrs): New function.
17897 (access_matrix_get_index_for_parameter): Remove.
17898
bbced055 178992012-03-30 Tristan Gingold <gingold@adacore.com>
17900
17901 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
17902 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
17903 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
17904 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
17905 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
17906 (vms_patch_builtins): Handle new flags
17907 * config/vms/vms-crtlmap.map: Completed using nm on
17908 c and math system libraries.
17909 * config/vms/make-crtlmap.awk: Handle any number of flags.
17910
1543f720 179112012-03-30 Martin Jambor <mjambor@suse.cz>
17912
17913 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
17914 is a builtin_stack_save in a dominating BB.
17915
80f058cd 179162012-03-29 Uros Bizjak <ubizjak@gmail.com>
17917
17918 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
17919 crossing 128bit lane boundary.
17920
385bfbc6 179212012-03-29 Vladimir Makarov <vmakarov@redhat.com>
17922
17923 * ira-color.c (setup_left_conflict_sizes_p): Process all
17924 conflicting objects.
17925
aa17a496 179262012-03-29 Jakub Jelinek <jakub@redhat.com>
17927
17928 PR tree-optimization/52760
17929 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
17930 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
17931
d2bb3f9d 179322012-03-29 Richard Guenther <rguenther@suse.de>
17933
17934 * cgraph.h (cgraph_materialize_all_clones): Remove.
17935 (reset_inline_failed): Likewise.
17936 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
17937 * cgraphbuild.c (reset_inline_failed): Remove.
17938 * rtl.h (cse_main): Remove.
17939 (extended_count): Likewise.
17940 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
17941 (cse_main): Make static.
17942 * combine.c (extended_count): Remove.
17943 (dump_combine_stats): Mark as DEBUG_FUNCTION.
17944 * basic-block.h (reorder_basic_blocks): Remove.
17945 * bb-reorder.c (reorder_basic_blocks): Make static.
17946 * Makefile.in (dse.o): Remove dse.h dependency.
17947 * dse.h: Remove.
17948 * dse.c (gate_dse): Remove.
17949 (clear_alias_mode_eq): Likewise.
17950 (clear_alias_mode_hash): Likewise.
17951 (dse_record_singleton_alias_set): Likewise.
17952 (dse_invalidate_singleton_alias_set): Likewise.
17953
c0dc946a 179542012-03-29 H.J. Lu <hongjiu.lu@intel.com>
17955
17956 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
17957 crtbegin_so%O%s for -shared.
17958 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
17959
54879eec 179602012-03-29 Richard Guenther <rguenther@suse.de>
17961
17962 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
17963 (add_to_value): Remove.
17964 (print_value_expressions): Likewise.
17965 * tree-ssa-pre.c (add_to_value): Make static.
17966 (print_value_expressions): Likewise.
17967 * gimple.h (gimple_adjust_this_by_delta): Remove.
17968 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
17969
e058414d 179702012-03-29 Richard Guenther <rguenther@suse.de>
17971
17972 PR middle-end/50708
17973 * double-int.h (rshift_double): Remove.
4e0c0c52 17974 * double-int.c (lshift_double): Use absu_hwi to make count positive.
e058414d 17975 (rshift_double): Make static, take unsigned count argument,
17976 remove handling of negative count argument.
17977 (double_int_rshift): Dispatch to lshift_double.
17978
bac6f1f6 179792012-03-28 H.J. Lu <hongjiu.lu@intel.com>
17980
17981 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
17982 OPTION_MASK_ABI_64.
17983
17984 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
17985 (SPEC_X32): Likewise.
17986 (MULTILIB_DEFAULTS): Likewise.
17987
17988 * config/i386/i386.c (isa_opts): Remove -m64.
17989 (ix86_target_string): Properly handle -m32/-m64/-mx32.
17990 (ix86_option_override_internal): Properly
17991 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
17992 handle -m32, -m64 and -mx32.
17993
17994 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
17995 with OPTION_ABI_X32. Moved after TARGET_LP64.
17996 (TARGET_LP64): Changed to OPTION_ABI_64.
17997
17998 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
17999 (mx32): Replace ISA_X32 with ABI_X32.
18000
b257ad5f 180012012-03-28 Eric Botcazou <ebotcazou@adacore.com>
18002
18003 * tree.c (tree_size) <VECTOR_CST>: New case.
18004
df6b3006 180052012-03-28 Uros Bizjak <ubizjak@gmail.com>
18006
18007 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
18008 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
18009
891f5177 180102012-03-28 Jakub Jelinek <jakub@redhat.com>
18011
e7ed5dd7 18012 PR middle-end/52691
18013 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
18014 __builtin_va_start to __builtin_next_arg if the latter is
18015 builtin_decl_explicit_p rather than when it is not.
18016
891f5177 18017 PR middle-end/52750
18018 * tree-vect-generic.c (vector_element): Perform multiplication
18019 for pos in bitsizetype type instead of idx type.
18020
79f958cb 180212012-03-28 Richard Guenther <rguenther@suse.de>
18022
18023 * loop-init.c (loop_optimizer_init): If loops are preserved
18024 perform incremental initialization of required loop features.
18025 (loop_optimizer_finalize): If loops are to be preserved only
18026 clean up optional loop features.
18027 (rtl_loop_done): Forcefully free loops here.
df6b3006 18028 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
79f958cb 18029 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
18030 to existing loops.
18031 (construct_init_block): Likewise.
18032 (construct_exit_block): Likewise.
18033 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
18034 the CFG after expanding.
df6b3006 18035 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
18036 If we needed to calculate them, free them afterwards.
79f958cb 18037 * tree-pass.h (PROP_loops): New define.
18038 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
18039 * basic-block.h (CLEANUP_CFG_CHANGED): New.
18040 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
df6b3006 18041 (cleanup_cfg): If we did something and have loops around, fix them up.
79f958cb 18042 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
18043 with CLEANUP_CFG_CHANGED.
18044 * cfghooks.c (merge_blocks): If we merge a loop header into
18045 its predecessor, update the loop structure.
18046 (duplicate_block): If we copy a loop latch, adjust loop state
18047 to note we may have multiple latches.
18048 (delete_basic_block): Mark loops for fixup if we remove a loop.
18049 * cfganal.c (forwarder_block_p): Protect loop latches, headers
18050 and preheaders.
18051 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
18052 (cfg_layout_can_merge_blocks_p): Likewise.
18053 * cprop.c (bypass_block): If we create a loop with multiple
18054 entries, mark it for removal.
18055 * except.c (emit_to_new_bb_before): Add the new basic-block
18056 to existing loops.
18057 * tree-eh.c (lower_resx): Likewise.
18058 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
18059 (expand_omp_taskreg): Likewise.
18060 * tree-inline.c (initialize_cfun): Likewise.
18061 * tree-mudflap.c (add_bb_to_loop): Prototype.
18062 (mf_build_check_statement_for): Properly add new basic-blocks
18063 to existing loops.
18064 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
18065 if we remove a loop.
18066 (thread_through_loop_header): Likewise.
18067 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
18068 new basic-blocks to existing loops.
18069 (expand_transaction): Likewise.
18070 * Makefile.in (except.o): Add $(CFGLOOP_H).
18071 (expr.o): Likewise.
18072 (cgraph.o): Likewise.
18073 (cprop.o): Likewise.
18074 (cfgexpand.o): Likewise.
18075 (cfganal.o): Likewise.
18076 (trans-mem.o): Likewise.
18077 (tree-eh.o): Likewise.
18078
58cf0091 180792012-03-28 Georg-Johann Lay <avr@gjlay.de>
18080
18081 PR target/52692
18082 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
18083 (avr_builtin_decl): New static function.
18084 (struct avr_builtin_description, avr_bdesc): Move up.
18085 Add GTY marker. Add field fndecl. Remove redundant field id.
18086 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
18087 (avr_expand_builtin): Code cleanup because .id is removed.
18088
d32d7e3a 180892012-03-28 Georg-Johann Lay <avr@gjlay.de>
18090
18091 PR target/52737
18092 * config.gcc (tm_file): Remove avr/multilib.h.
18093
df6b3006 18094 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
d32d7e3a 18095
18096 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
18097 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
18098 * config/avr/t-avr: Remove generation of multilib.h.
18099 * config/avr/t-multilib: Regenerate.
18100 * config/avr/multilib.h: Remove.
18101 * config/avr/avr.opt (-msp8): New option.
18102 (avr_sp8): New variable.
18103 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
18104 * config/avr/avr.h (AVR_HAVE_SPH): New define.
18105 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
18106 (avr_device_to_sp8): New prototype.
18107 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
18108 (DRIVER_SELF_SPECS): New define.
18109 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
18110 __AVR_SP8__, __AVR_HAVE_SPH__.
18111 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
18112 AVR_HAVE_8BIT_SP to decide if SP_H is present.
18113 (avr_file_start): Ditto.
18114
9af8c7c5 181152012-03-28 Jakub Jelinek <jakub@redhat.com>
18116
18117 PR target/52736
18118 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
18119 instead of 8 in adjust_address.
18120
cefa4c33 181212012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
18122
18123 PR middle-end/51893
18124 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
18125 targets.
18126
fa9db843 181272012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
18128
18129 PR target/50751
18130 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
18131 Rearrange conditional logic. Move displacement address calculations
18132 to ...
18133 (sh_find_mov_disp_adjust): ... this new function.
18134
367d727c 181352012-03-27 H.J. Lu <hongjiu.lu@intel.com>
18136
18137 * config/arm/arm.opt (mapcs): Remove MaskExists.
18138 * config/cris/linux.opt (mno-gotplt): Likewise.
18139 * config/i386/i386.opt (mhard-float): Likewise.
18140 (msse4): Likewise.
18141 (mno-sse4): Likewise.
18142 * config/m68k/m68k.opt (mhard-float): Likewise.
18143 * config/mep/mep.op (mcop32): Likewise.
18144 * config/pa/pa-hpux.opt (msio): Likewise.
18145 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
18146 * config/picochip/picochip.opt (mlittle): Likewise.
18147 * config/sh/sh.opt (mrenesas): Likewise.
18148 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
18149 * config/sparc/sparc.opt (mhard-float): Likewise.
18150 * config/v850/v850.opt (mv850es): Likewise.
18151 * config/vax/vax.opt (mg-float): Likewise.
18152
49c38e93 181532012-03-27 Martin Jambor <mjambor@suse.cz>
18154
18155 PR middle-end/52693
18156 * tree-sra.c (sra_modify_assign): Do not call
18157 load_assign_lhs_subreplacements when working with an unscalarizable
18158 region.
18159
77c42bd4 181602012-03-27 Uros Bizjak <ubizjak@gmail.com>
18161
18162 PR target/52698
18163 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
18164 New prototype.
18165 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
18166 * config/i386/i386.c: Include reload.h.
18167 (ix86_legitimize_reload_address): New function.
18168
dbc6e347 181692012-03-27 H.J. Lu <hongjiu.lu@intel.com>
18170
18171 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
18172 hasn't been allocated. Define a target macro for Mask and
77c42bd4 18173 InverseMask if it hasn't been defined. Remove MaskExists handling.
dbc6e347 18174
0455e0da 18175 * doc/options.texi: Remove MaskExists.
dbc6e347 18176
6523974f 181772012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
18178
18179 PR target/52667
18180 * config/sh/sh.c (find_barrier): Add equality check of last_got
18181 to avoid going above orig insn. Update comments.
18182
902123ad 181832012-03-27 Richard Guenther <rguenther@suse.de>
18184
18185 PR middle-end/52720
18186 * fold-const.c (try_move_mult_to_index): Handle &x.array more
18187 explicitely.
18188
73041e9b 181892012-03-27 Eric Botcazou <ebotcazou@adacore.com>
18190
18191 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
18192 of a unit before computing the offset in units.
18193 * expr.c (get_bit_range): Return the null range if the enclosing record
18194 is part of a larger bit field.
18195
a2295d74 181962012-03-27 Tristan Gingold <gingold@adacore.com>
18197
18198 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
18199 * config/ia64/ia64.md: Remove mode in template.
18200 Sign extend operand in expand_simple_binop.
18201 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
18202 CASE_VECTOR_MODE instead of TARGET_ILP32.
18203 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
18204
43d744c8 182052012-03-26 Steven Bosscher <steven@gcc.gnu.org>
18206
18207 * varasm.c (assemble_external): #if 0 out the new assert from the
18208 previous commit, it breaks the Java and Go front ends.
18209
a723d770 182102012-03-26 Steven Bosscher <steven@gcc.gnu.org>
18211
ea259bbe 18212 * toplev.c (check_global_declaration_1): Do not call assemble_external.
18213 * expr.c (emit_block_move_libcall_fn): Likewise.
18214 (clear_storage_libcall_fn): Likewise.
18215 (expand_expr_addr_expr_1): Likewise.
18216 (expand_expr_real_1): Likewise.
18217 * calls.c (rtx_for_function_call): Likewise.
18218
a723d770 18219 * varasm.c (assemble_external): Assert this function is only called
18220 during or after expanding to RTL.
18221
7c2ed7d7 182222012-03-26 Martin Jambor <mjambor@suse.cz>
18223
18224 PR tree-optimization/50052
18225 * tree-sra.c (tree_non_aligned_mem_p): Removed.
18226 (tree_non_aligned_mem_for_access_p): Likewise.
18227 (build_accesses_from_assign): Removed strict alignment requirements
18228 checks.
18229 (access_precludes_ipa_sra_p): Likewise.
18230
58280b1f 182312012-03-26 Richard Guenther <rguenther@suse.de>
18232
18233 PR tree-optimization/52701
18234 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
18235 compute and set the evolution part of PHI nodes.
18236
a1dfcdd0 182372012-03-26 Richard Guenther <rguenther@suse.de>
18238
18239 PR tree-optimization/52721
18240 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
18241
1c928a0c 182422012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
18243
18244 PR tree-optimization/52686
18245 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
18246 WIDEN_LSHIFT_EXPR.
18247
784576c7 182482012-03-26 Tristan Gingold <gingold@adacore.com>
18249
18250 * config/alpha/vms.h (LINK_SPEC): Simplify.
18251 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
18252 (NAME__MAIN, SYMBOL__MAIN): Remove.
18253 (VMS_DEBUG_MAIN_POINTER): Remove.
18254 * config/ia64/vms.h: Likewise.
18255 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
18256 code to vms.c. Call vms_start_function.
18257 * config/ia64/ia64.c (ia64_start_function): Likewise.
18258 * config/vms/vms-protos.h (vms_start_function): Declare.
18259 * config/vms/vms.c (vms_start_function): New function.
18260 * config/vms/vms.h (MATH_LIBRARY): Define.
18261 (VMS_DEBUG_MAIN_POINTER): Define.
18262
ab3908c1 182632012-03-26 Eric Botcazou <ebotcazou@adacore.com>
18264
18265 PR rtl-optimization/52629
18266 * reload1.c (count_pseudo): Short-circuit common case.
18267 (count_spilled_pseudo): Return early for pseudos without hard regs.
18268 Assert that the pseudo has got a hard reg before manipulating it.
18269
4dca9aca 182702012-03-24 Jan Hubicka <jh@suse.cz>
18271
18272 PR lto/51663
18273 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
18274 (decide_is_variable_needed): Do not handle toplevel reorder here.
18275 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
18276 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
18277 even at -O0.
18278
40715742 182792012-03-24 Eric Botcazou <ebotcazou@adacore.com>
18280
18281 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
18282 and str_bitsize instead of more convoluted expressions.
18283
4b552df4 182842012-03-24 Eric Botcazou <ebotcazou@adacore.com>
18285
18286 PR target/52610
18287 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
18288
29c08f56 182892012-03-24 Eric Botcazou <ebotcazou@adacore.com>
18290
18291 PR target/52656
18292 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
18293
a00d04d2 182942012-03-23 Martin Jambor <mjambor@suse.cz>
18295
18296 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
18297
86faead7 182982012-03-23 Richard Guenther <rguenther@suse.de>
18299
18300 PR tree-optimization/52678
18301 * tree-vectorizer.h (struct _stmt_vec_info): Add
18302 loop_phi_evolution_part member.
18303 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
18304 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
18305 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
18306 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
18307 Use the cached evolution part and the PHI nodes value from
18308 the loop preheader edge instead of re-analyzing the evolution.
18309
af1bc032 183102012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
18311
18312 * config/mips/mips-tables.opt: Update.
18313 * config/mips/mips.md (processor): Add xlp.
18314 * config/mips/mips-cpus.def: Add xlp.
18315 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
18316 5KF for now.
18317 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
18318 * doc/invoke.texi: Mention XLP.
18319
2ea94a74 183202012-03-22 Jakub Jelinek <jakub@redhat.com>
18321
18322 PR middle-end/52547
18323 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
18324 on any new_local_var_chain vars declared during recursing on
18325 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
18326
af3c0d00 183272012-03-22 Uros Bizjak <ubizjak@gmail.com>
18328
18329 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
18330 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
18331 (ASM_OUTPUT_LOCAL): Ditto.
18332 (ASM_OUTPUT_COMMON): Remove.
18333 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
18334 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
18335
41710b76 183362012-03-22 Jan Hubicka <jh@suse.cz>
18337
18338 PR middle-end/51737
18339 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
18340 parameter.
18341 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
af3c0d00 18342 * ipa-inline-transform.c (save_inline_function_body): Remove
18343 copied clone if needed.
41710b76 18344 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
18345
1957dffb 183462012-03-22 Richard Guenther <rguenther@suse.de>
18347
18348 PR middle-end/52666
18349 * fold-const.c (fold_ternary_loc): Fix typo.
18350
4349a1fa 183512012-03-22 Georg-Johann Lay <avr@gjlay.de>
18352
18353 PR target/52496
18354 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
18355 (unspecv): Add UNSPECV_MEMORY_BARRIER.
18356 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
18357 (delay_cycles_1, delay_cycles_2): Ditto.
18358 (delay_cycles_3, delay_cycles_4): Ditto.
18359 (nopv, *nopv): Ditto.
18360 (sleep, *sleep): Ditto.
18361 (wdr, *wdr): Ditto.
18362
3fd927c9 183632012-03-22 Richard Guenther <rguenther@suse.de>
18364
18365 PR tree-optimization/52548
18366 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
18367 because of clobbers.
18368 (prune_clobbered_mems): New function.
18369 (compute_antic_aux): Use it to prune ANTIC_OUT.
18370 (compute_partial_antic_aux): Use it to prune PA_IN.
af3c0d00 18371 (compute_avail): Only insert expressions into EXP_GEN that are not
18372 invalidated when translated up to the beginning of the block.
3fd927c9 18373
8ca02f71 183742012-03-22 Richard Guenther <rguenther@suse.de>
18375
18376 PR tree-optimization/52638
18377 * tree-vect-stmts.c (vect_init_vector_1): New function, split
18378 out from ...
18379 (vect_init_vector): ... here. Handle scalar vector inits.
18380 (vect_get_vec_def_for_operand): Adjust.
18381 (vectorizable_load): Likewise.
18382
a25bf392 183832012-03-22 Uros Bizjak <ubizjak@gmail.com>
18384
18385 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
18386 (alpha*-*-freebsd*): Ditto.
18387 (alpha*-*-netbsd*): Ditto.
18388 (alpha*-*-openbsd*): Ditto.
18389 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
18390 (DWARF2_DEBUGGING_INFO): Remove.
18391 (PREFERRED_DEBUGGING_TYPE): Remove.
18392 (ASM_FINAL_SPEC): Remove.
18393 (IDENT_ASM_OP): Remove.
18394 (ASM_OUTPUT_IDENT): Remove.
18395 (SKIP_ASM_OP): Remove.
18396 (ASM_OUTPUT_SKIP): Remove.
18397 (ALIGN_ASM_OP): Remove.
18398 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
18399 (ASM_OUTPUT_CASE_LABEL): Remove.
18400 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
18401 (COMMON_ASM_OP): Remove.
18402 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
18403 (ASCII_DATA_ASM_OP): Remove.
18404 (READONLY_DATA_SECTION_ASM_OP): Remove.
18405 (INIT_SECTION_ASM_OP): Remove.
18406 (FINI_SECTION_ASM_OP): Remove.
18407 (ASM_SECTION_START_OP): Remove.
18408 (ASM_OUTPUT_SECTION_START_FILE): Remove.
18409 (TARGET_ASM_NAMED_SECTION): Remove.
18410 (TARGET_ASM_SELECT_SECTION): Remove.
18411 (MAKE_DECL_ONE_ONLY): Remove.
18412 (TYPE_ASM_OP): Remove.
18413 (SIZE_ASM_OP): Remove.
18414 (ASM_WEAKEN_LABEL): Remove.
18415 (TYPE_OPERAND_FMT): Remove.
18416 (ASM_DECLARE_RESULT): Remove.
18417 (ASM_DECLARE_OBJECT_NAME): Remove.
18418 (ASM_FINISH_DECLARE_OBJECT): Remove.
18419 (ELF_ASCII_ESCAPES): Remove.
18420 (ELF_STRING_LIMIT): Remove.
18421 (STRING_ASM_OP): Remove.
18422 (ASM_OUTPUT_EXTERNAL): Remove.
18423 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
18424 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
18425 before define.
18426 (ASM_DECLARE_FUNCTION_NAME): Ditto.
18427 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
18428 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
18429 (ASM_OUTPUT_SKIP): Ditto.
18430 (READONLY_DATA_SECTION_ASM_OP): Remove.
18431 (USER_LABEL_PREFIX): Remove.
18432 (ASM_OUTPUT_ASCII): Remove.
18433 (ASM_OUTPUT_CASE_LABEL): Remove.
18434 (NO_DOLLAR_IN_LABEL): Undefine.
18435
38847948 184362012-03-22 Richard Guenther <rguenther@suse.de>
18437
18438 PR tree-optimization/52459
18439 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
18440 PHI insertion for calls.
18441
2aca5650 184422012-03-21 Steven Bosscher <steven@gcc.gnu.org>
18443
18444 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
18445 find_sets_in_insn, canonicalize_insn): Split out from ...
18446 (cse_insn): ... here.
18447 (invalidate_from_clobbers): Take an insn instead of the pattern.
18448
237a2429 184492012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
18450
18451 PR target/52479
18452 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
18453 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
18454 * config/sh/sh.md (sindf2, cosdf2): Remove.
18455
8fe7656f 184562012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
18457
b45e6434 18458 PR target/52642
8fe7656f 18459 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
a25bf392 18460 prologue for unwinder and profiler.
8fe7656f 18461
2ac000bb 184622012-03-21 Andreas Tobler <andreast@fgznet.ch>
18463
18464 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
18465 Introduce emul_name to select the right linker emulation for
18466 powerpc64-*-freebsd*.
18467 * configure: Regenerate.
18468 * config.gcc: Add bits to support powerpc64-*-freebsd*.
18469 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
18470 * config/rs6000/freebsd64.h: New file.
18471 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
18472 POWERPC_FREEBSD.
18473 (rs6000_savres_strategy): Likewise.
18474 (rs6000_savres_routine_name): Likewise.
18475 (rs6000_elf_file_end): Likewise.
18476 * config/rs6000/t-freebsd64: New file.
18477 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
18478 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
18479
d018c468 18480 * config/rs6000/freebsd64.h: Remove duplicated entries from last
18481 commit.
18482 * config/rs6000/t-freebsd64: Likewise.
18483
002565f0 184842012-03-21 Georg-Johann Lay <avr@gjlay.de>
18485
18486 PR rtl-optimization/52543
18487 PR target/52461
18488 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
18489 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
18490 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
18491 (avr_load_libgcc_p): Restrict to __flash loads.
18492 (avr_out_lpm): Only handle 1-byte loads from __flash.
18493 (avr_load_lpm): New function.
18494 (avr_find_unused_d_reg): Remove.
18495 (avr_out_lpm_no_lpmx): Remove.
18496 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
18497 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
18498 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
18499 (load_<mode>, load_<mode>_clobber): New insns.
18500 (mov<mode>): For multi-byte move from non-generic
18501 16-bit address spaces: Expand to load_<mode> resp.
18502 load_<mode>_clobber.
18503 (load<mode>_libgcc): Remove expander.
18504 (split-lpmx): Remove split.
18505
cd4e07db 185062012-03-21 Richard Earnshaw <rearnsha@arm.com>
18507
18508 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
18509 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
18510 All callers changed.
18511 (Fixed_core_reg): New feature.
18512 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
18513 disassembly.
18514 * neon-testgen.ml: Handle Fixed_core_reg.
18515
ae1dbab8 185162012-03-21 Andrew Stubbs <ams@codesourcery.com>
18517
18518 * config/arm/arm.c (thumb2_reorg): Add complete support
18519 for 16-bit instructions.
18520 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
18521
6fa78636 185222012-03-21 Richard Guenther <rguenther@suse.de>
18523
18524 PR tree-optimizer/52636
18525 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
18526 to the appropriate type.
18527
212dddd3 185282012-03-21 Richard Guenther <rguenther@suse.de>
18529
18530 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
18531 dependencies.
18532 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
18533 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
18534 * passes.c (init_optimization_passes): Remove pass_init_function,
18535 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
18536 * tree-pass.h (pass_init_function): Remove.
18537 (pass_jump): Remove.
18538 (pass_initial_value_sets): Remove.
18539 (pass_unshare_all_rtl): Remove.
18540 * integrate.c (pass_initial_value_sets): Remove.
18541 * emit-rtl.c (pass_unshare_all_rtl): Remove.
18542 * tree.h (init_function_for_compilation): Remove.
18543 * function.c (init_function_for_compilation): Remove.
18544 (pass_init_function): Remove.
18545 * cfgcleanup.c (rest_of_handle_jump): Remove.
18546 (pass_jump): Remove.
18547
358f9d96 185482012-03-20 Jason Merrill <jason@redhat.com>
18549
18550 * tree-streamer-in.c (streamer_alloc_tree): Call
18551 ggc_alloc_zone_cleared_tree_node instead of
18552 ggc_alloc_zone_cleared_tree_node_stat.
18553
6ad63f69 185542012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
18555
18556 * doc/extend.texi (Template Instantiation): Remove anachronisms.
18557
541e350d 185582012-03-20 Jakub Jelinek <jakub@redhat.com>
18559
0b991a69 18560 PR target/52607
18561 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
18562 (ix86_expand_vec_perm_const_1): Call it.
18563
245c00ec 18564 * config/i386/i386.c (vselect_insn): New variable.
18565 (init_vselect_insn): New function.
18566 (expand_vselect, expand_vselect_insn): Add testing_p argument.
18567 Call init_vselect_insn if vselect_insn is NULL. Adjust
18568 PATTERN (vselect_insn), instead of creating a new insn each time,
18569 only emit a copy of it if not testing and recog has been successful.
18570 (expand_vec_perm_pshufb, expand_vec_perm_1,
18571 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
18572 callers.
18573
541e350d 18574 PR target/52607
18575 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
18576 ("enabled" attribute): Handle avx2 and noavx2 isas.
18577 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
18578 New insns.
18579 (vec_dup<mode>): Add avx2 =x,x alternative.
18580 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
18581 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
18582 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
18583 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
18584 for V8SFmode.
18585 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
18586 if possible, handle also V8SFmode.
18587
1987d213 185882012-03-20 Richard Earnshaw <rearnsha@arm.com>
18589
18590 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
18591 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
18592 reg_or_zero_operand predicate.
18593 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
18594
17113bf6 185952012-03-20 Jakub Jelinek <jakub@redhat.com>
18596
18597 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
18598 If operand isn't UNSPEC, return 0.
18599
1dd4980f 186002012-03-20 Richard Guenther <rguenther@suse.de>
18601
18602 * tree-pass.h (pass_rtl_eh): Remove.
18603 * except.c (gate_handle_eh): Likewise.
18604 (rest_of_handle_eh): Likewise.
18605 (pass_rtl_eh): Likewise.
18606 (finish_eh_generation): Export.
18607 * except.h (finish_eh_generation): Declare.
18608 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
18609 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
18610 after expanding stack alignment. Instead of compacting blocks
18611 call cleanup_cfg.
18612
fa42e1a4 186132012-03-20 Richard Guenther <rguenther@suse.de>
18614
18615 * stor-layout.c (finish_bitfield_representative): Fallback
18616 to conservative maximum size if the padding up to the next
18617 field cannot be computed as a constant.
18618 (finish_bitfield_layout): If we cannot compute the distance
18619 between the start of the bitfield representative and the
18620 bitfield member start a new representative.
18621 * expr.c (get_bit_range): The distance between the start of
18622 the bitfield representative and the bitfield member is zero
18623 if the field offsets are not constants.
18624
748e5d45 186252012-03-20 Tristan Gingold <gingold@adacore.com>
18626
18627 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
18628 convert in lowercase.
18629 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
18630 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
18631 * stor-layout.c (sizetype_tab): Adjust.
18632 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
18633 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
18634 instead of type_kind_last.
18635 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
18636 instead of size_int_kind.
18637 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
18638 * doc/tm.texi: Regenerate.
18639 * defaults.h (SIZETYPE): Provide a default value.
18640 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
18641 (SIZETYPE): Define.
18642
a0554dde 186432012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
18644
18645 * config/sh/sh.md: Use braced string notation where applicable.
18646
ee1d2eea 186472012-03-19 Uros Bizjak <ubizjak@gmail.com>
18648
18649 * config/i386/i386.md (allocate_stack): Simplify.
18650
99182918 186512012-03-19 Uros Bizjak <ubizjak@gmail.com>
18652
18653 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
18654 copy_to_mode_reg (Pmode, ...).
18655 (expand_builtin_frame_address): Ditto.
18656 * expr.c (emit_block_move_via_libcall): Ditto.
18657 (set_storage_via_libcall): Ditto.
18658
18659 * config/i386/i386.c (ix86_expand_movmem): Ditto.
18660 (ix86_expand_setmem): Ditto.
18661 (ix86_trampoline_init): DItto.
18662 * config/i386/i386.md (cmpstrnsi): Ditto.
99182918 18663
11e875c9 186642012-03-19 Sandra Loosemore <sandra@codesourcery.com>
18665
18666 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
18667 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
18668 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
18669 (SH Options): Likewise.
18670
0a722f4b 186712012-03-19 Uros Bizjak <ubizjak@gmail.com>
18672
18673 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
18674 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
18675 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
18676 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
18677 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
18678
18679 Revert:
18680 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
18681
18682 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
18683 * config/i386/i386.c (ix86_decompose_address): Use
18684 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
18685 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
18686 thread pointer to a register.
18687
18688 Revert:
18689 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
18690
18691 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
18692 if Pmode != word_mode.
18693 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
18694 Pmode == SImode for TARGET_X32.
18695
18696 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
18697 (tls_initial_exec_x32): Likewise.
18698
89cace00 186992012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
18700
18701 PR target/50751
18702 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
18703 DISP_ADDR_OFFSET): New macros.
18704 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
18705 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
18706 (sh_legitimize_address): Add QImode displacement handling.
0a722f4b 18707 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
89cace00 18708 vector subregs.
18709 (sh_secondary_reload): Add QImode displacement handling.
18710 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
5efe717c 18711 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
18712 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
18713 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
18714 to register operands only.
18715 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
18716 (extendqihi2): Change insn to expander.
18717 (*extendqihi2_compact_reg): New insn.
18718 (movqi_i, movqi): Replace with ...
18719 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
18720 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
18721 Add new peepholes for QImode displacement addressing.
89cace00 18722
62206d34 187232012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
18724
18725 PR c++/14710
18726 * doc/invoke.texi: Document -Wuseless-cast.
18727
c165a033 187282012-03-19 Eric Botcazou <ebotcazou@adacore.com>
18729
18730 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
18731 * tree.h (handled_component_p): Reorder cases.
18732 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
18733 not initialize unsignedp.
18734 (loc_list_from_tree): Likewise.
18735 (fortran_common): Likewise.
18736 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
18737
a8b2b958 187382012-03-19 Uros Bizjak <ubizjak@gmail.com>
18739
18740 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
18741 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
18742 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
18743 (ix86_split_long_move): Ditto.
18744 (legitimize_tls_address): Use ix86_gen_sub3.
18745 (construct_plt_address): Assert that Pmode == DImode.
18746
abd4f58b 187472012-03-18 Uros Bizjak <ubizjak@gmail.com>
18748
18749 * config/i386/i386.md: Remove empty predicates and/or constraints.
18750 * config/i386/sync.md: Ditto.
18751 * config/i386/sse.md: Ditto.
18752 * config/i386/mmx.md: Ditto.
18753 * config/i386/pentium.md: Ditto.
18754 * config/i386/athlon.md: Ditto.
18755
08f83b65 187562012-03-16 Richard Guenther <rguenther@suse.de>
18757
18758 PR tree-optimization/52603
18759 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
18760 comment.
18761
18762 Revert
18763 2012-03-14 Richard Guenther <rguenther@suse.de>
18764
18765 PR tree-optimization/52571
18766 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
18767 flag_section_anchors check ...
18768 (vect_can_force_dr_alignment_p): ... here.
18769
e2c56221 187702012-03-16 Martin Jambor <mjambor@suse.cz>
18771
c165a033 18772 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
e2c56221 18773 memory through MEM_REFs by calling extract_bit_field.
18774
7e5db579 187752012-03-16 Richard Guenther <rguenther@suse.de>
18776
18777 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
18778 and REFERENCE_TYPE interpretations.
18779 (can_native_interpret_type_p): New function.
18780 (fold_ternary_loc): Use native encode/interpret to fold
18781 BIT_FIELD_REFs of constants.
18782
ae37ffaf 187832012-03-16 Richard Guenther <rguenther@suse.de>
18784
18785 PR middle-end/52584
18786 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
18787 of vector constants and constructors.
18788
ace64c06 187892012-03-16 Richard Guenther <rguenther@suse.de>
18790
18791 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
18792 VIEW_CONVERT_EXPR to convert constants.
18793 (vect_is_simple_use): Treat all constants as vec_constant_def.
18794
32b227eb 187952012-03-16 Richard Guenther <rguenther@suse.de>
abd4f58b 18796 Kai Tietz <ktietz@redhat.com>
32b227eb 18797
18798 PR middle-end/48814
18799 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
18800 side-effects completely in the pre-queue and use a temporary
18801 for the result.
18802
75188dc6 188032012-03-16 Richard Guenther <rguenther@suse.de>
18804
18805 * stor-layout.c (finish_bitfield_representative): Fall back
18806 to the conservative maximum size if we cannot compute the
18807 size of the tail padding.
18808
91976c6c 188092012-03-16 Tristan Gingold <gingold@adacore.com>
18810
18811 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
18812 __CRTL_VER and __VMS_VER.
18813 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
18814 and vms_c_get_vms_ver.
18815 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
18816 functions.
18817 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
18818 (VMS_DEFAULT_VMS_VER): Define.
18819 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
18820 (VMS_DEFAULT_VMS_VER): Define.
18821
3e299f5d 188222012-03-16 Richard Guenther <rguenther@suse.de>
18823
18824 * tree-vect-loop.c (get_initial_def_for_induction): Use
18825 build_constructor directly.
18826 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
18827 build_vector_from_val.
18828 * tree.c (build_vector_from_val): Avoid creating a constructor
18829 first when we want a constant vector.
18830
f3e265d7 188312012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18832
18833 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
18834
fadf62f4 188352012-03-16 Richard Guenther <rguenther@suse.de>
18836
18837 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
18838 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
18839 (struct tree_vector): Remove elements member, add variable size
18840 elts array member.
18841 (build_vector_stat): Declare.
18842 (build_vector): Define in terms of build_vector_stat.
18843 * tree.c (build_vector): Rename to ...
18844 (build_vector_stat): ... this. Take array of trees as parameter.
18845 (build_vector_from_ctor): Adjust.
18846 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
18847 initializer_zerop): Adjust.
18848 * cfgexpand.c (expand_debug_expr): Likewise.
18849 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
18850 const_vector_from_tree): Likewise.
18851 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
18852 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
18853 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
18854 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
18855 (lto_input_ts_vector_tree_pointers): Adjust.
18856 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
18857 (write_ts_vector_tree_pointers): Adjust.
18858 * varasm.c (const_hash_1, compare_constant, copy_constant,
18859 output_constant): Adjust.
18860 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
18861 * print-tree.c (print_node): Adjust.
18862 * tree-pretty-print.c (dump_generic_node): Adjust.
18863 * tree-vect-generic.c (uniform_vector_p, vector_element,
18864 lower_vec_perm): Adjust.
18865 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
18866 * tree-vect-slp.c (vect_get_constant_vectors,
18867 vect_transform_slp_perm_load): Adjust.
18868 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
18869 * expmed.c (make_tree): Adjust.
18870 * config/i386/i386.c (ix86_expand_builtin): Adjust.
18871 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
18872 and implementation.
18873 (sparc_fold_builtin): Adjust.
18874
e55b581d 188752012-03-16 Tristan Gingold <gingold@adacore.com>
18876
18877 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
18878 * config/vms/vms-stdint.h: New file.
18879
240f6bb5 188802012-03-16 Tristan Gingold <gingold@adacore.com>
18881
18882 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
18883 (ia64-hp-*vms*): Replaced by ...
18884 (*-*-*vms*): ... This new entry.
18885
e0c9db9b 188862012-03-15 Jakub Jelinek <jakub@redhat.com>
18887
6a8ad139 18888 PR target/52568
abd4f58b 18889 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
6a8ad139 18890 (ix86_expand_vec_perm_const_1): Use it.
18891
e0c9db9b 18892 PR target/52568
18893 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
18894 (avx2_permv4df): Remove.
18895 (avx2_permv4di): Macroize into...
18896 (avx2_perm<mode>): ... this using VI8F_256 iterator.
18897 (avx2_permv4di_1): Macroize into...
18898 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
18899
2ef72921 189002012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
18901
18902 * combine.c (apply_distributive_law): Do not distribute SUBREG.
18903
087903db 189042012-03-15 Ira Rosen <irar@il.ibm.com>
18905 Ulrich Weigand <ulrich.weigand@linaro.org>
18906
18907 * tree-vect-patterns.c (widened_name_p): Rename to ...
18908 (type_conversion_p): ... this. Add new argument to determine
18909 if it's a promotion or demotion operation. Check for
18910 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
18911 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
18912 widened_name_p.
18913 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
18914 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
18915 Likewise.
18916 (vect_recog_mixed_size_cond_pattern): Likewise and allow
18917 non-constant then and else clauses.
18918
4c0c783a 189192012-03-15 Ira Rosen <irar@il.ibm.com>
18920 Ulrich Weigand <ulrich.weigand@linaro.org>
18921
18922 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
18923 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
18924 vect_pattern_recog.
18925 * tree-vect-patterns.c (widened_name_p): Pass basic block
18926 info to vect_is_simple_use.
18927 (vect_recog_dot_prod_pattern): Fail for basic blocks.
18928 (vect_recog_widen_sum_pattern): Likewise.
18929 (vect_handle_widen_op_by_const): Support basic blocks.
18930 (vect_operation_fits_smaller_type,
18931 vect_recog_over_widening_pattern): Likewise.
18932 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
18933 Update call to vect_is_simple_use.
18934 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
18935 Add printing.
18936 (check_bool_pattern): Add an argument, update call to
18937 vect_is_simple_use and the recursive calls.
18938 (vect_recog_bool_pattern): Update relevant function calls.
18939 Add printing.
18940 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
18941 (vect_pattern_recog_1): Check for reduction only in loops.
18942 (vect_pattern_recog): Add new argument. Support basic blocks.
18943 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
18944 info to vect_is_simple_use_1.
a25bf392 18945 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
4c0c783a 18946 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
18947
e951f9a4 189482012-03-15 Jakub Jelinek <jakub@redhat.com>
18949 Andrew Pinski <apinski@cavium.com>
18950
18951 PR middle-end/52592
18952 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
18953 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
18954 calls instead of __builtin_ir{int,ound}*.
18955
ce1d2364 189562012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
18957
18958 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
18959 documentation.
18960
bd29e244 189612012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4eb5a747 18962
18963 * config.gcc (target_type_format_char): New. Document it. Set it for
ce1d2364 18964 arm*-*-* .
abd4f58b 18965 * configure.ac (gnu_unique_option): Use target_type_format_char
18966 in test. Comment rationale.
4eb5a747 18967 * configure: Regenerate .
18968
7139adf8 189692012-03-15 Jakub Jelinek <jakub@redhat.com>
18970
18971 PR tree-optimization/52267
18972 * tree-vrp.c (masked_increment): New function.
18973 (register_edge_assert_for_2): Derive ASSERT_EXPRs
18974 from (X & CST1) cmp CST2 tests.
18975
2ecb06bc 189762012-03-15 Richard Guenther <rguenther@suse.de>
18977
18978 PR middle-end/52580
18979 * tree-data-ref.c (subscript_dependence_tester_1): Check
18980 all dimensions for non-conflicting access functions.
18981
249faa35 189822012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
18983
18984 PR c++/44783
18985 * doc/invoke.texi [C++ Language Options]: Document
18986 -ftemplate-backtrace-limit.
18987
dd8e8868 189882012-03-15 Tristan Gingold <gingold@adacore.com>
18989
18990 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
18991 before a parameter.
18992
9e8ac19d 189932012-03-15 Tristan Gingold <gingold@adacore.com>
18994
18995 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
18996 use DW_OP_call_frame_cfa.
18997
676fcf5f 189982012-03-14 H.J. Lu <hongjiu.lu@intel.com>
18999
19000 PR target/50797
19001 * config/i386/i386-opts.h (pmode): New.
19002
19003 * config/i386/i386.c (ix86_option_override_internal): Properly
19004 check and set ix86_pmode.
19005
a25bf392 19006 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
676fcf5f 19007
19008 * config/i386/i386.opt (maddress-mode=): New.
19009
19010 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
19011
c9185637 190122012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19013
19014 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
19015 (dwarf2out_do_cfi_asm): Likewise.
19016 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
19017 handling.
19018 (add_data_member_location_attribute): Likewise.
19019 (gen_array_type_die): Likewise.
19020 (gen_subprogram_die): Likewise.
19021 (gen_producer_string): Likewise.
19022 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
19023 Remove MIPS_DEBUGGING_INFO handling.
19024 (sdb_debug_hooks): Likewise.
19025 (sdbout_begin_block): Likewise.
19026 (sdbout_end_block): Likewise.
19027 (sdbout_begin_prologue): Likewise.
19028 (sdbout_start_source_file): Likewise.
19029 (sdbout_end_source_file): Likewise.
19030 (sdbout_init): Likewise.
19031 * system.h (MIPS_DEBUGGING_INFO): Poison.
19032
48a5030b 190332012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19034
19035 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
19036 (alpha_file_start) [MS_STAMP]: Remove.
19037
19038 * config/alpha/elf.h (TARGET_GAS): Remove.
19039 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
19040 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
19041 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
19042 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
19043 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
19044 (alpha*-*-freebsd*): Likewise.
19045 (alpha*-*-netbsd*): Likewise.
19046 (alpha*-*-openbsd*): Likewise.
19047 (alpha*-*-*): Remove target_cpu_default2.
19048 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
19049 handling.
19050 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
19051 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
19052 * config/alpha/alpha.c (print_operand): Always assume
19053 TARGET_AS_SLASH_BEFORE_SUFFIX.
19054 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
19055 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
19056 ("*builtin_setjmp_receiver_er_1"): Remove.
19057 * config/alpha/alpha.opt (malpha-as): Remove.
19058 (mgas): Ignore.
19059 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
19060 -malpha-as, -mgas.
19061 Remove DEC Unix reference.
19062
19063 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
19064 (EXTENDED_COFF): Remove.
19065 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
19066 (EXTENDED_COFF): Don't undef.
19067 * config/alpha/alpha.c (alpha_file_start): Always assume
19068 OBJECT_FORMAT_ELF.
19069 Don't set targetm.asm_file_start_file_directive.
19070 [!OBJECT_FORMAT_ELF]: Remove.
19071 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
19072
19073 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
19074 (DBX_DEBUGGING_INFO): Remove.
19075 (MIPS_DEBUGGING_INFO): Remove.
19076 (PREFERRED_DEBUGGING_TYPE): Remove.
19077 (DBX_OUTPUT_SOURCE_LINE): Remove.
19078 (SDB_OUTPUT_SOURCE_LINE): Remove.
19079 (DBX_CONTIN_LENGTH): Remove.
19080 (NO_DBX_FUNCTION_END): Remove.
19081 (ASM_STABS_OP): Remove.
19082 (ASM_STABN_OP): Remove.
19083 (ASM_STABD_OP): Remove.
19084 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
19085 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
19086 (PUT_SDB_DEF): Remove.
19087 (PUT_SDB_PLAIN_DEF): Remove.
19088 (PUT_SDB_TYPE): Remove.
19089 (sdb_label_count): Remove.
19090 (PUT_SDB_BLOCK_START): Remove.
19091 (PUT_SDB_BLOCK_END): Remove.
19092 (PUT_SDB_FUNCTION_START): Remove.
19093 (PUT_SDB_FUNCTION_END): Remove.
19094 (PUT_SDB_EPILOGUE_END): Remove.
19095 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
19096 (MIPS_DEBUGGING_INFO): Don't undef.
19097 (DBX_DEBUGGING_INFO): Don't undef.
19098 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
19099 (MIPS_DEBUGGING_INFO): Don't undef.
19100 (DBX_DEBUGGING_INFO): Don't undef.
19101 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
19102 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
19103 handling.
19104 (alpha_start_function): Likewise.
19105 (sdb_label_count): Remove.
19106 (alpha_output_filename): Remove DBX_DEBUG handling.
19107 (alpha_file_start): Likewise.
19108
264a5d11 191092012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19110
19111 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
19112 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
19113 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
19114 Solaris 8 support.
19115 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
19116 (ld_tls_support): Remove Solaris 8 references.
19117 (lwp_dir, lwp_spec): Remove support for alternate thread library.
abd4f58b 19118 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
264a5d11 19119 * configure: Regenerate.
19120 * config.in: Regenerate.
19121
19122 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
19123 * config/i386/sol2.h: Remove Solaris 8 references.
19124
19125 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
19126 (i?86-*-solaris2.9): ... this.
19127 Remove Solaris 8 references.
19128 (Specific, *-*-solaris2*): Document Solaris 8 removal.
19129 Remove Solaris 8 references.
19130
5641963c 191312012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19132
19133 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
19134 (mips-sgi-irix6.5*): Remove.
19135 * config.host (mips-sgi-irix*): Remove.
19136 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
19137 (set_have_as_tls): Remove *-*-irix6*.
19138 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
19139 * configure: Regenerate.
19140
19141 * config/mips/iris6.h: Remove.
19142 * config/mips/iris6.opt: Remove.
19143 * config/mips/t-irix6: Remove.
19144
19145 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
19146 (TARGET_IRIX6): Remove.
19147 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
19148 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
19149 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
19150 handling.
19151 (mips_file_start): Likewise.
19152 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
19153
19154 * config/mips/driver-native.c [__sgi__]: Remove.
19155 (host_detect_local_cpu) [__sgi__]: Remove.
19156
19157 * config/mips/gnu-user.h: Remove iris5.h reference.
19158
19159 * config/mips/mips-modes.def: Remove IRIX 6 reference.
19160 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
19161 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
19162 Remove.
19163
19164 * gcc.c (main): Move asm_debug initialization ...
19165 (asm_debug): ... here.
19166
19167 * ginclude/stddef.h (__STDDEF_H__): Don't define.
19168
19169 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
19170 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
19171 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
19172 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
19173 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
19174 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
19175 Remove.
19176 * doc/tm.texi: Regenerate.
19177
19178 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
19179 IRIX 6 reference.
19180 (MIPS Options, -march): Remove IRIX reference.
19181 * doc/install.texi (Binaries, SGI IRIX): Remove.
19182 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
19183 of section.
19184 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
19185
884b03c9 191862012-03-14 Martin Jambor <mjambor@suse.cz>
19187
19188 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
abd4f58b 19189 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
884b03c9 19190 (expand_expr_real_1): Do not handle misalignment if modifier is
19191 EXPAND_WRITE.
19192
f1690ec2 191932012-03-14 Richard Guenther <rguenther@suse.de>
19194
19195 PR middle-end/52584
19196 * tree-vect-generic.c (type_for_widest_vector_mode): Take
19197 element type instead of mode, use build_vector_type_for_mode
19198 instead of the langhook, build a vector of proper signedness.
19199 (expand_vector_operations_1): Adjust.
19200
e25d4891 192012012-03-14 Richard Guenther <rguenther@suse.de>
19202
19203 PR middle-end/52582
abd4f58b 19204 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
19205 a cgraph node for a FUNCTION_DECL that comes from a constructor.
e25d4891 19206 (gimple_get_virt_method_for_binfo): Likewise.
19207
1f0f7e1e 192082012-03-14 Richard Guenther <rguenther@suse.de>
19209
19210 PR tree-optimization/52571
19211 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
19212 flag_section_anchors check ...
19213 (vect_can_force_dr_alignment_p): ... here. Do not re-align
19214 DECL_COMMON variables.
19215
8d8a34f9 192162012-03-14 Richard Guenther <rguenther@suse.de>
19217
19218 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
19219 * stor-layout.c (start_bitfield_representative): New function.
19220 (finish_bitfield_representative): Likewise.
19221 (finish_bitfield_layout): Likewise.
19222 (finish_record_layout): Call finish_bitfield_layout.
19223 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
19224 for QUAL_UNION_TYPE fields.
19225 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
19226 Stream DECL_BIT_FIELD_REPRESENTATIVE.
19227 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
19228
19229 PR middle-end/52080
19230 PR middle-end/52097
19231 PR middle-end/48124
19232 * expr.c (get_bit_range): Unconditionally extract bitrange
19233 from DECL_BIT_FIELD_REPRESENTATIVE.
19234 (expand_assignment): Adjust call to get_bit_range.
19235
a6476f88 192362012-03-14 Richard Guenther <rguenther@suse.de>
19237
19238 PR middle-end/52578
19239 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
19240 the outermost conversion is a sign-change only.
19241 (fold_binary_loc): Disregard widening and sign-changing
19242 conversions when we determine if two variables are equal
19243 for reassociation.
19244 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
19245 (T1)x if the outermost conversion is a sign-change only.
19246
6281b3df 192472012-03-14 Uros Bizjak <ubizjak@gmail.com>
19248
19249 Revert:
19250 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
19251
19252 * config/i386/predicates.md (constant_call_address_operand): Declare
19253 as special predicate. Update all uses.
19254
666649ed 192552012-03-13 Jakub Jelinek <jakub@redhat.com>
19256
e739f10c 19257 PR c/52577
19258 * c-parser.c (c_parser_postfix_expression)
19259 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
19260
666649ed 19261 * config/i386/smmintrin.h: Avoid /* within a comment.
19262 * config/i386/nmmintrin.h: Likewise.
19263
b6833dc9 192642012-03-13 Uros Bizjak <ubizjak@gmail.com>
19265
19266 * config/i386/i386.md (xbegin): Remove constraint from expander.
19267
182c3534 192682012-03-13 Uros Bizjak <ubizjak@gmail.com>
19269
19270 * config/i386/predicates.md (constant_call_address_operand): Declare
19271 as special predicate. Update all uses.
19272 * config/i386/i386.md: Remove mode from constant_call_address_operand
19273 predicates.
19274 * config/i386/i386.c (ix86_output_call_insn): Call
19275 constant_call_address_operand with VOIDmode.
19276
0f844e09 192772012-03-13 Uros Bizjak <ubizjak@gmail.com>
19278
19279 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
19280 AND zero extended address correctly.
19281
6a755243 192822012-03-13 Uros Bizjak <ubizjak@gmail.com>
19283
19284 * config/i386/predicates.md (tls_symbolic_operand): Declare as
19285 special predicate.
19286 (tls_modbase_operand): Ditto.
19287 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
19288 tls_modbase_operand predicates.
19289
55e42d78 192902012-03-13 Martin Jambor <mjambor@suse.cz>
19291
19292 * expr.c (expand_assignment): Handle misaligned scalar writes to
19293 memory through top-level MEM_REFs by calling store_bit_field.
19294
7af97aed 192952012-03-13 Richard Guenther <rguenther@suse.de>
19296
19297 PR middle-end/52134
19298 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
19299 if Y is a constant multiple of 1 << CST.
19300
21467ee6 193012012-03-13 Georg-Johann Lay <avr@gjlay.de>
19302
19303 PR target/52488
19304 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
19305 offset (size) to a value the insns can deal with.
19306 (expand_epilogue): Ditto.
19307
fa89c18d 193082012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
19309
19310 * config/arm/neon.ml (ops): Fixup expected instructions for
19311 unsigned vector compares.
19312
1da1898e 193132012-03-13 Uros Bizjak <ubizjak@gmail.com>
19314
19315 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
19316 addresses only when %reg is not in word mode.
19317
c2c4377d 193182012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19319
19320 * config/microblaze/microblaze.md: Fix typo.
19321 * tree-if-conv.c: Likewise.
19322 * tree-vect-patterns.c: Likewise.
19323
7151decb 193242012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19325
19326 * config.gcc (extra_passes): Remove.
19327 * configure.ac (extra_passes): Don't substitute.
19328 * configure: Regenerate.
19329 * Makefile.in (EXTRA_PASSES): Remove.
19330 (GCC_PASSES): Remove $(EXTRA_PASSES).
19331 (MOSTLYCLEANFILES): Likewise.
19332 (native): Likewise.
19333 (install-common): Likewise.
19334
b966bb5f 193352012-03-13 Uros Bizjak <ubizjak@gmail.com>
19336
19337 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
19338 * config/i386/i386.c (ix86_decompose_address): Use
19339 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
19340 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
19341 thread pointer to a register.
19342
f500db2a 193432012-03-12 H.J. Lu <hongjiu.lu@intel.com>
19344
19345 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
19346 on tls_symbolic_operand.
19347 (tls_global_dynamic_64_<mode>): Likewise.
19348
0c8f5ee5 193492012-03-12 Georg-Johann Lay <avr@gjlay.de>
19350
19351 PR other/52545
19352 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
19353 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
19354
63477dcc 193552012-03-12 Georg-Johann Lay <avr@gjlay.de>
19356
19357 PR target/52499
19358 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
19359 type from reg_class_t to enum reg_class.
19360 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
19361
c3597b05 193622012-03-12 Andrew Pinski <apinski@cavium.com>
19363
19364 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
19365 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
19366 (value_replacement): Likewise.
19367 (empty_block_p): Check also if the PHIs for the block are empty.
19368
6bdcc5e4 193692012-03-12 Georg-Johann Lay <avr@gjlay.de>
19370
19371 PR target/52148
19372 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
19373 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
19374 r184615 from 2012-02-28.
19375
63e90859 193762012-03-12 H.J. Lu <hongjiu.lu@intel.com>
19377
19378 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
19379 (ix86_gen_tls_local_dynamic_base_64): Likewise.
19380 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
19381 and ix86_gen_tls_local_dynamic_base_64.
19382 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
19383 ix86_gen_tls_local_dynamic_base_64.
19384
19385 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
19386 (*tls_global_dynamic_64_<mode>): This.
19387 (tls_global_dynamic_64): Renamed to ...
19388 (tls_global_dynamic_64_<mode>): This.
19389 (*tls_local_dynamic_base_64): Renamed to ...
19390 (*tls_local_dynamic_base_64_<mode>): This.
19391 (tls_local_dynamic_base_64): Renamed to ...
19392 (tls_local_dynamic_base_64_<mode>): This.
19393
bf0a02ba 193942012-03-12 H.J. Lu <hongjiu.lu@intel.com>
19395
19396 * config/i386/i386.c (ix86_option_override_internal): Properly
19397 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
19398 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
abd4f58b 19399 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
19400 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
bf0a02ba 19401
19402 * config/i386/sse.md (sse3_monitor64): Renamed to ...
19403 (sse3_monitor64_<mode>): This.
19404
6b6253f2 194052012-03-12 Tristan Gingold <gingold@adacore.com>
19406
19407 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
19408 (ia64_function_arg_advance): Ditto.
19409
1f7e141e 194102012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19411
19412 * config.gcc (mips*-*-openbsd*): Remove.
19413 * config/mips/openbsd.h: Remove.
19414 * config/mips/sdb.h: Remove.
19415
19416 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
19417 * config/mips/mips.c (sdb_label_count): Remove.
19418 (mips_debugger_offset): Remove #if 0 code.
19419 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
19420 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
19421
1647539e 194222012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19423
19424 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
19425 binutils reference.
19426 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
19427 Update binutils references.
19428 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
19429 Update binutils reference.
19430 Update Sun as/GNU ld caveat.
19431 Document binutils largefile requirement for LTO plugin.
6776c1f3 19432 Remove reference to alternate libpthread.
1647539e 19433
126b6848 194342012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19435
19436 * config.gcc (alpha*-dec-osf5.1*): Remove.
19437 * config.host (alpha*-dec-osf*): Remove.
19438 * configure.ac (*-*-osf*): Remove.
19439 (alpha*-dec-osf*): Remove.
19440 * configure: Regenerate.
19441
abd4f58b 19442 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
19443 config/alpha/va_list.h, config/alpha/x-osf: Remove.
126b6848 19444
19445 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
19446 * config/alpha/alpha.c (struct machine_function): Update comment.
19447 (alpha_start_function): Remove Tru64 UNIX as handling for
19448 max_frame_size.
19449 * config/alpha/alpha.md ("exception_receiver"): Remove
19450 TARGET_LD_BUGGY_LDGP.
19451 ("*exception_receiver_2"): Likewise.
19452 * except.c (finish_eh_generation): Remove Tru64 reference.
19453 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
19454 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
19455 * target.def (handle_pragma_extern_prefix): Remove.
19456
19457 * Makefile.in (mips-tfile.o-warn): Remove.
19458 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
19459 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
19460 * mips-tdump.c, mips-tfile.c: Remove.
19461
19462 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
19463 extern_prefix.
19464 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
19465 (Specific, alpha*-dec-osf5.1): Note removal.
19466 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
19467 Remove.
19468 * doc/tm.texi: Regenerate.
19469 * doc/trouble.texi (Cross-Compiler Problems): Remove.
19470
969baf69 194712012-03-12 Richard Guenther <rguenther@suse.de>
19472
19473 * config/arm/arm.c (neon_dereference_pointer): Do not call
19474 covert during RTL expansion.
19475
cc48d234 194762012-03-12 Tristan Gingold <gingold@adacore.com>
19477
19478 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
19479 Options. Mention -mpointer-size.
19480
a51edb4c 194812012-03-12 Richard Guenther <rguenther@suse.de>
19482
19483 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
19484 build_nonstandard_integer_type.
19485
0177b1e3 194862012-03-12 Richard Guenther <rguenther@suse.de>
19487
19488 * tree.c (signed_or_unsigned_type_for): Use
19489 build_nonstandard_integer_type.
19490 (signed_type_for): Adjust documentation.
19491 (unsigned_type_for): Likewise.
19492 * tree-pretty-print.c (dump_generic_node): Use standard names
19493 for non-standard integer types if available.
19494
8f852c44 194952012-03-12 Tristan Gingold <gingold@adacore.com>
19496
19497 * config/vms/vms.opt: Add vms-opts.h header.
19498 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
19499 target mask.
19500 (-mvms-return-codes): Document.
19501 (-mpointer-size): New option.
19502 (vms_pointer_size): Add enumeration.
19503 * config/vms/vms-opts.h: New file.
19504 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
19505 __INITIAL_POINTER_SIZE.
19506 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
19507 (C_COMMON_OVERRIDE_OPTIONS): Define.
19508 (DWARF2_ADDR_SIZE): Define.
19509 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
19510 * config/vms/vms-protos.h (vms_c_common_override_options):
19511 New prototype.
19512 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
19513 if -mno-pointer-size.
19514 (vms_c_common_override_options): New function.
19515 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
19516 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
19517 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
19518 and flag_vms_pointer_size.
19519 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
19520 * config.gcc (*-*-*vms*): Define xm_file.
19521 (alpha*-dec-*vms*): Do not define xm_file.
19522 (alpha64-dec-*vms*): Remove.
19523 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
19524 and tmake_file.
19525
22676c8f 195262012-03-12 Jakub Jelinek <jakub@redhat.com>
19527
19528 PR tree-optimization/51721
19529 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
19530 if (int) unsvar cmp CST.
19531
7f23b9c0 195322012-03-12 Richard Guenther <rguenther@suse.de>
19533
abd4f58b 19534 * tree-sra.c (create_access_replacement): Only rename the replacement
19535 if we can rewrite it into SSA form. Properly mark register typed
19536 replacements that we cannot rewrite with TREE_ADDRESSABLE.
7f23b9c0 19537 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
19538 for aggregate or BLKmode results.
19539
6b48fd25 195402012-03-12 Jakub Jelinek <jakub@redhat.com>
19541
19542 PR tree-optimization/52533
19543 * tree-vrp.c (register_edge_assert_for_2): Use double_int
19544 type for mask, only handle shifts by non-zero in-range
19545 shift count, for LE_EXPR and GT_EXPR if new_val is
19546 maximum, don't add the assertion.
19547
bce88dc2 195482012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
19549
19550 * doc/invoke.texi: Document -mrtm option.
abd4f58b 19551 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
bce88dc2 19552 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
19553 (ix86_handle_option): Handle OPT_mrtm.
19554 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
19555 xtestintrin.h.
19556 (x86_64-*-*): Ditto.
19557 * i386-builtin-types.def (INT_FTYPE_VOID): New.
19558 * config/i386/i386-c.c (ix86_target_macros_internal): Define
19559 __RTM__ if needed.
19560 (ix86_target_string): Define -mrtm option.
19561 (PTA_RTM): New.
abd4f58b 19562 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
19563 Handle new option.
bce88dc2 19564 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
19565 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
19566 IX86_BUILTIN_XTEST.
19567 (bdesc_special_args): Ditto.
19568 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
19569 (ix86_expand_special_args_builtin): Handle new built-in type.
19570 (ix86_expand_builtin): Handle XABORT instruction.
19571 * config/i386/i386.h (TARGET_RTM): New.
19572 * config/i386/i386.md (UNSPECV_XBEGIN): New.
19573 (UNSPECV_XEND): Ditto.
19574 (UNSPECV_XABORT): Ditto.
19575 (UNSPECV_XTEST): Ditto.
19576 (xbegin): Ditto.
19577 (xbegin_1): Ditto.
19578 (xend): Ditto.
19579 (xabort): Ditto
19580 (xtest): Ditto.
19581 (xtest_1): Ditto.
19582 * config/i386/i386.opt (mrtm): New.
abd4f58b 19583 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
bce88dc2 19584 * config/i386/rtmintrin.h: New header.
19585 * config/i386/xtestintrin.h: Ditto.
19586
74a1e041 195872012-03-12 Tristan Gingold <gingold@adacore.com>
19588
abd4f58b 19589 * ginclude/stddef.h: Adjust previous patch.
19590 Use __VMS__ instead of VMS.
74a1e041 19591
c6f81084 195922012-03-12 Uros Bizjak <ubizjak@gmail.com>
19593
19594 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
19595 Also convert sequences with CC setting arithmetic instruction.
19596
3e5e110f 195972012-03-11 Sandra Loosemore <sandra@codesourcery.com>
19598
19599 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
19600 from C Language Options to Preprocessor Options.
19601 (C Dialect Options): Move -no-integrated-cpp documentation
19602 from here...
19603 (Preprocessor Options): ...to here. Rewrite the description
abd4f58b 19604 so it makes more sense, and remove discussion of merging front ends.
3e5e110f 19605
af423a9d 196062012-03-11 H.J. Lu <hongjiu.lu@intel.com>
19607
19608 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
19609 needed for loop.
19610 (ix86_expand_setmem): Likewise.
19611
c7def6ab 196122012-03-11 Uros Bizjak <ubizjak@gmail.com>
19613
19614 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
19615 convert_to_mode.
19616
9e8fad47 196172012-03-11 H.J. Lu <hongjiu.lu@intel.com>
19618
19619 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
19620 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
19621
48ca984b 196222012-03-11 H.J. Lu <hongjiu.lu@intel.com>
19623
c7def6ab 19624 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
48ca984b 19625
235d620e 196262012-03-11 H.J. Lu <hongjiu.lu@intel.com>
19627
19628 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
19629 TARGET_64BIT.
19630
7dd29a1c 196312012-03-11 H.J. Lu <hongjiu.lu@intel.com>
19632 Uros Bizjak <ubizjak@gmail.com>
c290746e 19633
7dd29a1c 19634 * config/i386/predicates.md (call_insn_operand): Allow
c290746e 19635 constant_call_address_operand in Pmode only.
19636 (sibcall_insn_operand): Ditto.
19637 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
19638 (*call_vzeroupper): Ditto.
19639 (*sibcall): Ditto.
19640 (*sibcall_vzeroupper): Ditto.
19641 (*call_value): Ditto.
19642 (*call_value_vzeroupper): Ditto.
19643 (*sibcall_value): Ditto.
19644 (*sibcall_value_vzeroupper): Ditto.
19645 (*indirect_jump): Ditto.
19646 (*tablejump_1): Ditto.
19647 (indirect_jump): Convert memory address to word mode for TARGET_X32.
19648 (tablejump): Ditto.
19649 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
19650 to word mode.
19651
bdd0e5dc 196522012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
19653
19654 PR target/51244
19655 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
19656 Use movrt_negc instead of negc pattern for non-SH2A.
19657 (*movnegt): Remove.
19658 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
19659
fe73ce46 196602012-03-10 H.J. Lu <hongjiu.lu@intel.com>
19661
19662 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
19663 if Pmode != word_mode.
19664 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
c290746e 19665 Pmode == SImode for TARGET_X32.
fe73ce46 19666
19667 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
19668 (tls_initial_exec_x32): Likewise.
19669
bd279947 196702012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
19671
19672 PR rtl-optimization/52528
19673 * combine.c (can_combine_p): Add setting of subst_low_luid
19674 before call to expand_field_assignment().
19675
3bbe8a1c 196762012-03-09 Sandra Loosemore <sandra@codesourcery.com>
19677
19678 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
19679 and related program names.
19680
4eb48a77 196812012-03-09 Sandra Loosemore <sandra@codesourcery.com>
19682
19683 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
19684
f9c68163 196852012-03-09 Uros Bizjak <ubizjak@gmail.com>
19686
19687 PR target/52530
19688 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
19689 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
19690 to set code to 'q'.
19691 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
19692 (*movdi_internal_rex64): Use %E operand modifier for lea.
19693 (*movsi_internal): Ditto.
19694 (*lea_1): Ditto.
19695 (*lea<mode>_2): Ditto.
19696 (*lea_{3,4,5,6}_zext): Ditto.
19697 (*tls_global_dynamic_32_gnu): Ditto.
19698 (*tls_global_dynamic_64): Ditto.
19699 (*tls_dynamic_gnu2_lea_32): Ditto.
19700 (*tls_dynamic_gnu2_lea_64): Ditto.
19701 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
19702
8a3c7c63 197032012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
19704
19705 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
19706 redefine to be NULL if the current bit-size is different from the
19707 configured bit-size.
19708
19709 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
19710 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
19711 set the default tuning. Add asserts to make sure the cpu and tune
19712 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
19713 test whether the index is set, instead of > 0.
19714 (rs6000_file_start): Do not reset the default cpu if the current
19715 bit-size is different from the configured bit-size.
19716
439392ee 197172012-03-09 Tristan Gingold <gingold@adacore.com>
19718
19719 * config/vms/vms-crtlmap.map: Add comments.
19720 Add entries needed to build Ada RTS.
19721
11a439a1 197222012-03-09 Tristan Gingold <gingold@adacore.com>
19723
19724 * ginclude/stddef.h: Do not define __size_t on VMS.
19725
7714837c 197262012-03-09 Tristan Gingold <gingold@adacore.com>
19727
19728 * c-tree.h (c_default_pointer_mode): New variable.
19729 * c-decl.c (c_default_pointer_mode): New variable.
19730 (c_build_pointer_type): New function.
19731 (grokdeclarator): Call c_build_pointer_type instead
19732 of build_pointer_type.
19733
19734 * config/vms/vms-c.c: Include c-tree.h
19735 (saved_pointer_mode): New variable.
19736 (handle_pragma_pointer_size): New function.
19737 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
19738 (vms_c_register_pragma): Register __pointer_size and
19739 __required_pointer_size pragmas.
19740
9368e60a 197412012-03-09 Tristan Gingold <gingold@adacore.com>
19742
19743 * config/vms/vms-c.c (vms_construct_include_filename): New function.
19744 (vms_c_register_includes): Reference it.
19745
fb9912ea 197462012-03-09 Andrew Pinski <apinski@cavium.com>
19747
19748 PR middle-end/51988
19749 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
19750 print_generic_expr.
19751 (tree_ssa_phiopt_worker): Go through all the PHIs for
19752 value_replacement instead of just the singleton one.
19753 (value_replacement): Change return type to int. Return 0 instead of
19754 false.
9368e60a 19755 Allow the middle basic block to contain more than just the defining
19756 statement.
fb9912ea 19757 Handle non empty middle basic blocks.
19758 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
19759
62bc06ea 197602012-03-09 Jiangning Liu <jiangning.liu@arm.com>
19761
19762 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
19763 array reference and component reference.
19764 (analyze_scalar_evolution_for_address_of): New.
19765
d0295369 197662012-03-08 Jie Zhang <jzhang918@gmail.com>
19767
19768 PR target/49862
f9c68163 19769 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
d0295369 19770 (hwloop_pattern_reg): Fix set but not used warning.
19771 (bfin_reorg_loops): Remove unused parameter.
19772 (bfin_reorg): Update use of bfin_reorg_loops.
19773
df901db8 197742012-03-08 H.J. Lu <hongjiu.lu@intel.com>
19775
19776 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
19777 with integer parameters in registers.
19778 (gen_push): Push register in word_mode instead of Pmode.
19779 (ix86_emit_save_regs): Likewise.
f9c68163 19780 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
df901db8 19781 (gen_pop): Pop register in word_mode instead of Pmode.
19782 (ix86_emit_restore_regs_using_pop): Likewise.
19783 (ix86_expand_prologue): Replace Pmode with word_mode for push
19784 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
19785 restore RAX and R10 in word_mode.
19786 (ix86_emit_restore_regs_using_mov): Restore integer registers
19787 in word_mode.
19788 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
19789 word_mode.
19790 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
19791 (ix86_split_long_move): Likewise.
19792
19793 * config/i386/i386.md (W): New.
19794 (*push<mode>2_prologue): Replace :P with :W.
19795 (*pop<mode>1): Likewise.
19796 (*pop<mode>1_epilogue): Likewise.
19797 (push/pop peephole2): Use word_mode scratch registers.
19798
dea4eea4 197992012-03-08 Uros Bizjak <ubizjak@gmail.com>
19800
19801 * config/i386/predicates.md (indirect_branch_operand): Simplify.
19802
1c66468a 198032012-03-08 Georg-Johann Lay <avr@gjlay.de>
19804
19805 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
19806 for constants in [-63,63].
19807
27c1fe3b 198082012-03-08 Uros Bizjak <ubizjak@gmail.com>
19809
19810 PR target/52530
19811 Revert:
19812 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
19813
19814 * config/i386/i386.c (ix86_print_operand_address): Only handle
19815 zero-extended DImode addresses.
19816
5f031e88 198172012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19818
19819 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
19820 * configure: Regenerate.
19821
5af5ea69 198222012-03-08 Georg-Johann Lay <avr@gjlay.de>
19823
19824 PR target/52496
19825 * config/avr/avr.c (avr_mem_clobber): New static function.
19826 (avr_expand_delay_cycles): Add memory clobber operand to
19827 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
19828 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
19829 (enable_interrupt, disable_interrupt): New expander.
19830 (nopv, sleep, wdr): New expanders.
19831 (delay_cycles_1): Add memory clobber.
19832 (delay_cycles_2): Add memory clobber.
19833 (delay_cycles_3): Add memory clobber.
19834 (delay_cycles_4): Add memory clobber.
19835 (cli_sei): New insn from former "enable_interrupt",
19836 "disable_interrupt" with memory clobber.
19837 (*wdt): New insn from former "wdt" with memory clobber.
19838 (*nopv): Similar, but for "nopv".
19839 (*sleep): Similar, but for "sleep".
19840
acf1cb58 198412012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
19842 Kaz Kojima <kkojima@gcc.gnu.org>
19843
19844 PR target/52503
19845 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
19846 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
19847 (SUBTARGET_OVERRIDE_OPTIONS): Define.
19848
79c51b65 198492012-03-07 Uros Bizjak <ubizjak@gmail.com>
19850
19851 * config/i386/predicates.md (x86_64_zext_general_operand): New.
19852 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
19853 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
19854
c6cfe48f 198552012-03-07 Walter Lee <walt@tilera.com>
19856
19857 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
19858 REG_CFA_* notes for the stack pointer.
19859 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
19860 EH_RETURN_STACKADJ_RTX.
19861 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
19862 generate REG_CFA_* notes for the stack pointer.
19863 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
19864 by EH_RETURN_STACKADJ_RTX.
19865
cf19911a 198662012-03-07 Georg-Johann Lay <avr@gjlay.de>
19867
19868 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
19869 when __AVR_3_BYTE_PC__ is defined.
19870
eff54bae 198712012-03-07 Uros Bizjak <ubizjak@gmail.com>
19872
19873 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
19874 (ix86_print_operand): Handle '^'.
19875 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
19876 using P mode iterator. Add %^ to asm template to conditionally emit
19877 addr32 prefix.
19878 (*rep_movdi_rex64): Ditto.
19879 (*strsetdi_rex_1): Ditto.
19880 (*rep_stosdi_rex64): Ditto.
19881 (*strmov{si,hi,qi}_1): Add %^ to asm template to
19882 conditionally emit addr32 prefix.
19883 (*rep_mov{si,qi}): Ditto.
19884 (*strset{si,hi,qi}): Ditto.
19885 (*rep_stos{si,qi}): Ditto.
19886 (*cmpstrnqi_nz_1): Ditto.
19887 (*cmpstrnqi_1): Ditto.
19888 (*strlenqi_1): Ditto.
19889
f8ae29a7 198902012-03-07 H.J. Lu <hongjiu.lu@intel.com>
19891
19892 * config/i386/i386.c (function_value_64): Return pointers in
19893 word_mode instead of Pmode.
19894 (ix86_promote_function_mode): Likewise.
19895
1b3c3119 198962012-03-07 Richard Guenther <rguenther@suse.de>
19897
19898 * coverage.c (get_gcov_type): Use type_for_mode.
19899 (get_gcov_unsigned_t): Likewise.
19900 * expr.c (store_constructor): Use type_for_mode.
19901 (try_casesi): Likewise.
eff54bae 19902 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
1b3c3119 19903 (add_standard_iv_candidates): Use standard type trees.
19904 * dojump.c (do_jump): Remove dead code.
19905
3c9b85aa 199062012-03-07 Richard Guenther <rguenther@suse.de>
19907
19908 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
19909
481e2176 199102012-03-07 Richard Guenther <rguenther@suse.de>
19911
19912 * convert.c (strip_float_extensions): Move ...
19913 * tree.c (strip_float_extensions): ... here.
19914
3f149cc9 199152012-03-07 Georg-Johann Lay <avr@gjlay.de>
19916
19917 PR target/52484
19918 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
19919
3cea8318 199202012-03-07 Richard Guenther <rguenther@suse.de>
19921
19922 * omp-low.c (extract_omp_for_data): Use signed_type_for.
19923 (expand_omp_for_generic): Likewise.
19924 (expand_omp_for_static_nochunk): Likewise.
19925 (expand_omp_for_static_chunk): Likewise.
19926 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
19927 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
19928 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
19929 Use unsigned_type_for.
19930 (vect_create_cond_for_align_checks): Use signed_type_for.
19931
ed726cbf 199322012-03-07 Andrey Belevantsev <abel@ispras.ru>
19933
19934 PR rtl-optimization/52203
19935 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
19936 all callers to pass NULL except ...
19937 (reset_sched_cycles_in_current_ebb): ... here, save the value
19938 in new variable 'empty'. Increase issue_rate only for
eff54bae 19939 non-empty insns.
ed726cbf 19940
3f9e8673 199412012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
19942
19943 PR target/51417
eff54bae 19944 * Makefile.in: Let install-gcc-ar depend on installdirs,
19945 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
3f9e8673 19946 Don't double canonicalize if cross-compiling.
19947
69a2907c 199482012-03-07 Georg-Johann Lay <avr@gjlay.de>
19949
19950 PR target/52506
19951 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
19952 to: RAMPZ, RAMPY, RAMPX, RAMPD.
19953 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
19954
ee3ce577 199552012-03-07 Georg-Johann Lay <avr@gjlay.de>
19956
19957 PR target/52505
19958 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
19959 from RAM.
19960 * config/avr/avr.md (xload_8): Adjust insn length.
19961
be20cbdd 199622012-03-07 Georg-Johann Lay <avr@gjlay.de>
19963
19964 PR target/52461
19965 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
19966 if RAMPZ affects reading from RAM.
19967
8b046cbb 199682012-03-07 Richard Guenther <rguenther@suse.de>
19969
19970 PR pch/52518
19971 PR pch/38987
19972 * doc/invoke.texi (Precompiled Headers): Remove sentence that
19973 suggests you can include PCHs from inside another header.
19974
9737dd95 199752012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
19976
19977 PR middle-end/52515
19978 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
19979
4bc312c5 199802012-03-07 Kai Tietz <ktietz@redhat.com>
19981
19982 * doc/invoke.texi (fwritable-relocated-rdata): Document
19983 new Cygwin/MinGW target option.
19984 * config/i386/winnt.c (i386_pe_unique_section): Ignore
19985 reloc if flag -fwritable-relocated-rdata is not set.
19986 (i386_pe_section_type_flags): Likewise.
19987 * config/i386/cygming.opt (fwritable-relocated-rdata):
19988 Add new flag variable flag_writable_rel_rdata.
19989
b36be69d 199902012-03-07 Richard Guenther <rguenther@suse.de>
19991
19992 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
19993 precision against gimple constraints.
19994
7d7b0bac 199952012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
19996
19997 PR middle-end/52372
19998 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
19999 variables.
20000 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
20001 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
20002 variables.
20003 (init_emit_regs): Move associated initialization to...
20004 (init_emit_once): ...here.
20005
943b78f0 200062012-03-06 Richard Henderson <rth@redhat.com>
20007
20008 * config/m68k/m68k.h (ISA_HAS_TAS): New.
20009 * config/m68k/sync.md (atomic_test_and_set): Use it.
20010 (atomic_test_and_set_1): Likewise.
20011
506056fd 200122012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
20013
20014 PR target/50310
20015 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
20016 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
20017 (vector_ltgt<mode>): Likewise.
20018 (vector_ordered<mode>): Likewise.
20019 (vector_unordered<mode>): Likewise.
eff54bae 20020 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
506056fd 20021
5ab54790 200222012-03-06 Aldy Hernandez <aldyh@redhat.com>
20023
20024 * trans-mem.c: New typedef for tm_region_p.
20025 Define vector types for tm_region_p.
20026 (tm_region_init): Replace region_worklist to a vector called
20027 bb_regions.
20028
06e80d0a 200292012-03-06 Richard Guenther <rguenther@suse.de>
20030
20031 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
20032 MEM_REF with constant pointer operand.
20033
80b4d93e 200342012-03-06 Richard Guenther <rguenther@suse.de>
20035
20036 PR middle-end/52493
20037 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
20038
abb4c37a 200392012-03-06 Tristan Gingold <gingold@adacore.com>
20040
eff54bae 20041 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
abb4c37a 20042 (external_model_kind): Improve documentation.
20043 (vms_pragma_extern_model): Handle relaxed_redef.
20044 (vms_c_register_pragma): Allow expansion for nomember_alignment.
20045
3c90c054 200462012-03-06 Georg-Johann Lay <avr@gjlay.de>
20047
20048 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
20049 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
20050 Some more notes on EIND usage and reorder EIND subsection.
20051
f3925bb3 200522012-03-06 Tristan Gingold <gingold@adacore.com>
20053
20054 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
20055 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
20056
46d35275 200572012-03-06 Tristan Gingold <gingold@adacore.com>
20058
20059 * config/vms/t-vmsnative (version): Define.
20060 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
20061
ef4cf572 200622012-03-06 Andrey Belevantsev <abel@ispras.ru>
20063
20064 PR rtl-optimization/52250
20065 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
20066 to put note list into. Unconditionally call move_bb_info.
20067 (move_bb_info): Do not assert the blocks being in the same region,
46d35275 20068 just drop the note list if they are not.
ef4cf572 20069
3c2ed158 200702012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
20071
20072 PR target/51244
20073 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
20074 and use unified expansion logic.
20075 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
20076 closer to the existing movt insn.
20077 (negc): Rename insn to *negc. Add new expander.
20078 (movnegt): Use xor pattern for T bit negation. Reserve helper
20079 constant for negc pattern.
20080 (*movnegt): New insn and splitter.
20081
555c3766 200822012-03-05 Bernd Schmidt <bernds@codesourcery.com>
20083
20084 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
20085 PLUS_EXPR.
20086
e374c627 200872012-03-05 Richard Henderson <rth@redhat.com>
20088
20089 * genemit.c (main): Include "target.h" in insn-emit.c.
20090 * Makefile.in (insn-emit.o): Depend on TARGET_H.
20091 * config/sh/sync.md (atomic_test_and_set): Reference
20092 targetm.atomic_test_and_set_trueval instead of
20093 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
20094
d00acb08 200952012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
20096
20097 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
20098 Make static.
20099
549aab72 201002012-03-05 Steven Bosscher <steven@gcc.gnu.org>
20101
20102 * langhooks.c (add_builtin_type): New function.
20103 * langhooks.h (add_builtin_type): Export it.
20104 * config/mep/mep.c (mep_init_builtins): Use it.
20105 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
20106
665611e7 201072012-03-05 Jakub Jelinek <jakub@redhat.com>
20108
20109 PR debug/51902
20110 * tree.h (BLOCK_SAME_RANGE): Define.
20111 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
20112 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
20113 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
20114 isn't equal to supercontext fragment's fragment chain.
20115 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
20116 fragment origin.
20117 (blocks_nreverse_all): Likewise.
20118 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
20119 BLOCK_SUPERCONTEXT to supercontext fragment instead of
20120 supercontext fragment's fragment origin.
20121 * dwarf2out.c (add_high_low_attributes): If stmt has the same
20122 range as its parent (or parents thereof etc.), use the parent's
20123 DW_AT_ranges value instead of creating a new .debug_ranges range.
20124
dcf7024c 201252012-03-05 Richard Henderson <rth@redhat.com>
20126
20127 PR tree-opt/52242
20128 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
20129 * omp-low.c (expand_omp_atomic): Assume anything aligned to
20130 BIGGEST_ALIGNMENT is aligned.
20131
940bb42d 201322012-03-05 Richard Henderson <rth@redhat.com>
20133
20134 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
20135 * config/sh/sh.c: ... here.
20136
ba884946 201372012-03-05 Richard Henderson <rth@redhat.com>
20138
20139 PR target/52481
20140 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
20141 instead of calling negqi2 directly.
20142
1dfa4f7f 201432012-03-05 Aldy Hernandez <aldyh@redhat.com>
20144
20145 PR middle-end/52463
20146 * trans-mem.c (tm_region_init): Use last_basic_block.
20147
631f95de 201482012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
20149
20150 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
20151 * config/sh/sync.md (atomic_test_and_set): New expander.
20152 (tasb, atomic_test_and_set_soft): New insns.
20153 * config/sh/sh.opt (menable-tas): New option.
20154 * doc/invoke.texi (SH Options): Document it.
20155
ef0e6535 201562012-03-05 Richard Guenther <rguenther@suse.de>
20157
20158 * cfgloop.c (verify_loop_structure): Verify dominators before
20159 using them.
20160 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
20161 dominators from here.
20162 * graphite-scop-detection.c (create_sese_edges): Likewise.
20163 * loop-doloop.c (doloop_optimize_loops): Likewise.
20164 * loop-init.c (loop_optimizer_init): Likewise.
20165 * loop-unroll.c (unroll_and_peel_loops): Likewise.
20166 * loop-unswitch.c (unswitch_loops): Likewise.
20167 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
20168 * tree-parloops.c (parallelize_loops): Likewise. Verify
20169 only when checking is enabled.
20170 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
20171
e9eae8c8 201722012-03-05 Bernd Schmidt <bernds@codesourcery.com>
20173
20174 * genautomata.c (parse_automata_opt): New static function.
20175 (initiate_automaton_gen): Remove all option handling code. Remove
20176 argc argument. All callers changed.
eff54bae 20177 (main): Call init_rtx_reader_args_cb with the new function as argument.
e9eae8c8 20178
821ac701 201792012-03-05 Richard Guenther <rguenther@suse.de>
20180
20181 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
20182 * tree-if-conv.c (combine_blocks): Free post-dominator info
20183 after breaking it.
20184 * tree-parloops.c (create_parallel_loop): Free and re-compute
20185 dominator info after breaking it.
20186
4c79581c 201872012-03-05 Richard Guenther <rguenther@suse.de>
20188
20189 PR middle-end/52353
20190 * optabs.h (trapv_unoptab_p): New function.
20191 (trapv_binoptab_p): Likewise.
20192 * optabs.c (expand_binop): Use emit_libcall_block_1 with
20193 a proper equiv_may_trap argument.
20194 (expand_unop): Likewise.
20195 (emit_libcall_block_1): Take extra argument whether the
20196 instruction may trap. Renamed from ...
20197 (emit_libcall_block): ... this. New wrapper.
20198
d4afc00c 201992012-03-05 Jakub Jelinek <jakub@redhat.com>
20200
98f00c5b 20201 PR tree-optimization/51721
20202 * tree-vrp.c (register_edge_assert_for_2): If comparing
20203 lhs of right shift by constant with an integer constant,
20204 add ASSERT_EXPRs for the rhs1 of the right shift.
20205
d4afc00c 20206 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
20207
9ee917f7 202082012-03-05 Richard Guenther <rguenther@suse.de>
20209
20210 * tree.c (integer_zerop): Handle VECTOR_CSTs.
20211 (integer_onep): Likewise.
20212 (integer_all_onesp): Likewise.
20213
c2e23f8a 202142012-03-05 Georg-Johann Lay <avr@gjlay.de>
20215
20216 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
20217
7cb32b9e 202182012-03-04 H.J. Lu <hongjiu.lu@intel.com>
20219
20220 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
20221 instead of TARGET_64BIT.
20222
9868cee1 202232012-03-04 H.J. Lu <hongjiu.lu@intel.com>
20224
20225 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
20226 adjust_stack_insn.
20227
a8ebae34 202282012-03-04 H.J. Lu <hongjiu.lu@intel.com>
20229
20230 * config/i386/i386.c (ix86_print_operand_address): Only handle
20231 zero-extended DImode addresses.
20232
8f4b480e 202332012-03-04 Uros Bizjak <ubizjak@gmail.com>
20234
20235 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
20236 taken and cputaken as bool.
20237
ad797097 202382012-03-04 Uros Bizjak <ubizjak@gmail.com>
20239
20240 * config/i386/constraints.md (Ya): New internal constraint.
20241 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
20242 (*zero_extendsidi2_rex64): Add x,x alternative.
20243 (*zero_extendsidi2): Ditto. Add o,0 alternative.
20244 Remove flags reg clobber. Adjust corresponding splits.
20245 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
20246 zero_extendqisi2 expanders using SWI12 mode iterator.
20247 (zero_extend<mode>si2_and): Macroize insn from
20248 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
20249 splitters.
20250 (*zero_extend<mode>si2): Macroize insn from
20251 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
20252 (*zero_extend*2_movzbl_and): Remove insn patterns.
20253 (zero_extendqihi2_and): Merge corresponding splitter.
20254 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
20255 (*zero_extend*2_movzbl_and): Remove insn patterns.
20256 (*anddi_1): Split TYPE_IMOVX instructions.
20257 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
20258 (*andhi_1): Ditto.
20259 (and->zext splitter): Add splitter pattern.
20260 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
20261
0989c0ee 202622012-03-04 Sandra Loosemore <sandra@codesourcery.com>
20263
20264 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
20265 x86-specific text.
20266 (Debugging Options): Likewise.
20267 (Optimize Options): Likewise.
20268 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
20269 with other architectures. Use official processor names with correct
20270 spelling/capitalization. Fix formatting and grammar issues.
20271 (i386 and x86-64 Windows Options): Similar cleanup here.
20272
0f4929a3 202732012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
20274
20275 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
20276
3d7c0741 202772012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
20278
20279 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
20280 DBX_REGISTER_NUMBER.
20281
ed739787 202822012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
20283
20284 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
20285 operand is CONST_INT. Take COSTS_N_INSNS into account.
20286 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
20287 of shiftcosts.
20288
75ee1af4 202892012-03-02 Richard Henderson <rth@redhat.com>
20290
20291 * optabs.c (expand_atomic_test_and_set): Honor
20292 atomic_test_and_set_trueval even when atomic_test_and_set
20293 optab is not in use.
20294
07732170 202952012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
20296
20297 PR target/48596
20298 PR target/48806
20299 * config/sh/sh.c (sh_register_move_cost): Increase cost between
20300 GENERAL_REGS and FP_REGS for SImode.
20301
428d0ab7 203022012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
20303
20304 PR target/49486
20305 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
20306 (absdi2): New expander.
20307 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
20308
52671251 203092012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
20310
882390bb 20311 * config/sh/sync.md (atomic_exchange<mode>): New expander.
20312 (atomic_exchange<mode>_soft): New insn.
20313
203142012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
20315
20316 * config/sh/sync.md: Update copyright notice dates.
52671251 20317 (atomic_compare_and_swap<mode>): Use SImode for return value instead
20318 of QImode.
882390bb 20319 (atomic_compare_and_swap<mode>_soft): Likewise.
52671251 20320
203212012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
ad797097 20322
164fbbdf 20323 PR target/31640
20324 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
20325 * config/sh/sh.c: Update copyright notice dates.
20326 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
20327 alignment for TARGET_HARD_SH4.
ad797097 20328 (sh_option_override): Reduce default function alignment. Set
164fbbdf 20329 loop alignment to 4 bytes when not optimizing for size.
20330
d094f1d6 203312012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
20332
fa2f697a 20333 PR middle-end/50335
d094f1d6 20334 * doc/invoke.texi (floop-flatten): Remove.
20335 * toplev.c (process_options): Remove references to flag_loop_flatten.
20336 * tree-ssa-loop.c (gate_graphite_transform): Same.
20337 * common.opt (floop-flatten): Obsolete.
20338 * graphite-poly.c (apply_poly_transforms): Remove reference to
20339 flag_loop_flatten.
20340 * Makefile.in (graphite-flattening.o): Remove.
20341 * graphite-flattening.c: Remove.
20342
ea6ad4ae 203432012-03-02 Uros Bizjak <ubizjak@gmail.com>
20344
20345 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
20346 having mode compatible with the mode of previous compare. Substitute
20347 compare mode of previous compare with the mode, compatible
20348 with eliminated and previous compare.
20349
b1addacc 203502012-03-02 Peter Bergner <bergner@vnet.ibm.com>
20351
20352 * config/rs6000/dfp.md (floatdidd2): New define_insn.
20353
01c12879 203542012-03-02 Uros Bizjak <ubizjak@gmail.com>
20355
20356 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
20357 compatible with CCGOCmode and CCGCmode.
20358
508c1626 203592012-03-02 Peter Bergner <bergner@vnet.ibm.com>
20360
20361 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
20362
b49e3742 203632012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
20364
20365 * config/arm/arm.c (arm_sat_operator_match): New function.
20366 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
20367 * config/arm/arm.md ("insn" attribute): Add "sat" value.
20368 ("SAT", "SATrev"): New code iterators.
20369 ("SATlo", "SAThi"): New code iterator attributes.
20370 ("*satsi_<SAT:code>"): New pattern.
20371 ("*satsi_<SAT:code>_shift"): Likewise.
20372 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
20373 and "shift" attributes.
20374 ("arm_usatsihi"): Add "insn" attribute.
20375 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
20376 by powers of two. Do not allow shift by 32.
20377
7103ce44 203782012-03-02 Uros Bizjak <ubizjak@gmail.com>
20379
20380 PR target/46716
20381 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
20382 to pass the argument in the register of "natural" mode.
20383
95539e1d 203842012-03-02 Richard Guenther <rguenther@suse.de>
20385
20386 PR tree-optimization/52406
20387 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
20388 (struct indices): Add unconstrained_base member.
20389 (struct dr_alias): Remove unused vops member.
20390 (DR_UNCONSTRAINED_BASE): New define.
20391 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
20392 add indices to allow their disambiguation. Make DR_BASE_OBJECT
20393 be an artificial access that covers the whole indexed object,
20394 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
20395 plain decl base-objects to their MEM_REF variant.
20396 (dr_may_alias_p): When the base-object of either data reference
20397 has unknown size use only points-to information.
20398 (compute_affine_dependence): Make dumps easier to read and
20399 more verbose.
20400 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
20401 DR_REF when looking for packed references.
20402 (vect_supportable_dr_alignment): Likewise.
20403
9811ae10 204042012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
20405
7103ce44 20406 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
9811ae10 20407 Improve conditions for peepholes of loads followed by commutative
20408 operators.
7103ce44 20409 * config/arm/ldmstm.md: Regenerated.
9811ae10 20410
f5c0f433 204112012-03-02 Richard Guenther <rguenther@suse.de>
20412
20413 * BASE-VER: Set to 4.8.0.
20414
8f50e6ed 204152012-03-01 Richard Earnshaw <rearnsha@arm.com>
20416
20417 * config.gcc (obsolete): Add all ARM targets using the FPA.
20418 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
20419 * doc/install.texi: Avoid references to obsolete ARM ports.
20420
830730d6 204212012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
20422
20423 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
20424
43770c4d 204252012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
20426 Joern Rennecke <joern.rennecke@embecosm.com>
20427
20428 * doc/extend.texi: Expand and update information on interrupt
20429 attribute for Epiphany.
20430
bef96223 204312012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
20432
20433 * config/sh/sh-protos.h: Update copyright notice dates.
20434 * config/sh/sh.h: Likewise.
20435 * config/sh/sh.md: Likewise.
20436 * config/sh/constraints.md: Likewise.
20437 * config/sh/predicates.md: Likewise.
20438
b0b9387e 204392012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
20440
20441 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
20442 * config/sh/sh.c (tertiary_reload_operand): Likewise.
20443
7329bf9b 204442012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
20445
20446 * config/sh/constraints.md: Fix comment typo.
20447
aaeba072 204482012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20449
20450 PR target/52408
20451 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
20452 unsigned HOST_WIDE_INT.
20453 (zvdep_imm64): Likewise.
20454 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
20455 (vdepi_and): Likewise.
20456 Likewise for unamed 64-bit patterns.
20457 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
20458
85b6e75b 204592012-03-01 Alexandre Oliva <aoliva@redhat.com>
20460
20461 PR debug/52001
20462 PR rtl-optimization/52417
20463 * cselib.c (cselib_any_perm_equivs): New variable.
20464 (cselib_reset_table): Check that it's not set when not
20465 preserving constants.
20466 (cselib_add_permanent_equiv): Set it.
20467 (cselib_have_permanent_equivalences): New.
20468 (cselib_init, cselib_finish): Reset it.
20469 * cselib.h (cselib_have_permanent_equivalences): Declare.
20470 * alias.c (get_addr): Restore earlier behavior when there
20471 aren't permanent equivalences.
20472
ff560cc5 204732012-03-01 Steven Bosscher <steven@gcc.gnu.org>
20474
20475 * config/mn10300/mn10300-modes.def: Fix copyright notice.
20476 * config/v850/v850-modes.def: Fix copyright notice.
20477
12ffadfa 204782012-03-01 Georg-Johann Lay <avr@gjlay.de>
20479
20480 * doc/extend.texi (AVR Built-in Functions): Document
20481 __builtin_avr_flash_segment.
20482
20483 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
20484 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
20485 (*split.flash_segment): New insn-and-split.
20486 * config/avr/avr.c (avr_init_builtins): Add local variables:
20487 const_memx_void_node, const_memx_ptr_type_node,
20488 char_ftype_const_memx_ptr.
20489
963aee26 204902012-03-01 Jakub Jelinek <jakub@redhat.com>
20491
20492 PR tree-optimization/52445
20493 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
20494 add ssa_name_ver, offset and size fields and change store field
20495 to bool.
20496 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
20497 (add_or_mark_expr): Likewise. Only consider previous stores
20498 with the same size and offset.
20499 (nt_init_block): Only look at gimple_assign_single_p stmts,
20500 doesn't look at rhs2.
20501
5c332a23 205022012-03-01 Richard Guenther <rguenther@suse.de>
20503
20504 PR middle-end/52443
20505 * tree-cfg.c (verify_gimple_assign_unary): Allow any
20506 conversions from integral types to pointer types.
20507
47018d7b 205082012-03-01 Georg-Johann Lay <avr@gjlay.de>
20509
20510 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
7103ce44 20511 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
47018d7b 20512 unintentionally removed in r184616.
20513
fb7c1017 205142012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20515
20516 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
20517 3DNow from bdver1.
20518
2c9cbc56 205192012-02-29 Jakub Jelinek <jakub@redhat.com>
20520 Uros Bizjak <ubizjak@gmail.com>
20521
20522 PR target/52437
20523 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
20524 alternatives, add "e" constraint to the new last alternative
20525 and ! to last 3 alternatives.
20526
ffb4f309 205272012-02-29 Eric Botcazou <ebotcazou@adacore.com>
20528
20529 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
20530 DW_AT_artificial attributes at the end of the processing.
20531 (gen_array_type_die): Likewise.
20532 (gen_enumeration_type_die): Likewise.
20533 (gen_struct_or_union_type_die): Likewise.
20534 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
20535 the parent type.
20536
eee873f6 205372012-02-29 Jakub Jelinek <jakub@redhat.com>
20538
04df78dc 20539 PR middle-end/52419
20540 * expr.c (expand_assignment): If doing misaligned store that doesn't
20541 cover all mode bits, perform a RMW cycle.
20542
eee873f6 20543 PR tree-optimization/52429
20544 * tree-parloops.c (separate_decls_in_region_debug): Return early
20545 if var is LABEL_DECL.
20546
9f396eaf 205472012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20548
20549 PR tree-optimization/52424
20550 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
20551 calling dom_thread_across_edge.
20552
1602e4b0 205532012-02-29 Georg-Johann Lay <avr@gjlay.de>
20554
20555 * config/avr/avr.c: Move definition of TARGET macros to end of file.
20556
16d17f31 205572012-02-29 Georg-Johann Lay <avr@gjlay.de>
20558
20559 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
20560 * config/avr/avr.c (avr_output_bld): Remove unused function.
20561 (avr_out_sbxx_branch): Use "%T" to print bit position.
20562
3d78dda1 205632012-02-29 Georg-Johann Lay <avr@gjlay.de>
20564
20565 * config/avr/avr.md: Untabify.
20566
205672012-02-29 Georg-Johann Lay <avr@gjlay.de>
20568
20569 * config/avr/avr.md (eqne): New code iterator.
20570 (*dec-and-branchsi): Use it in text peephole's condition.
20571 (*dec-and-branchhi): Ditto.
20572 (*dec-and-branchqi): Ditto.
20573
f37ec592 205742012-02-29 Georg-Johann Lay <avr@gjlay.de>
20575
20576 PR target/49939
20577 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
20578 the device does not have the skip-bug.
20579
52bba6ce 205802012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
20581
20582 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
20583 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
20584 -mpretend-cmove): New.
20585
5df3e7ea 205862012-02-29 Jakub Jelinek <jakub@redhat.com>
20587
20588 PR bootstrap/52397
20589 * df.h (struct df_d): Adjust comment that hard_regs_live_count
20590 doesn't count DEBUG_INSN refs.
20591 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
20592 for DEBUG_INSN refs.
20593
31a56b87 205942012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20595
20596 Partially revert:
20597
20598 2012-02-20 Richard Guenther <rguenther@suse.de>
20599 PR tree-optimization/52298
20600 * tree-vect-stmts.c (vectorizable_load): Properly use
4e0c0c52 20601 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
31a56b87 20602
de60f90c 206032012-02-28 Aldy Hernandez <aldyh@redhat.com>
20604
20605 PR middle-end/51752
20606 * gimple.h (gimple_in_transaction): New.
20607 (gimple_set_in_transaction): New.
20608 (struct gimple_statement_base): Add in_transaction field.
20609 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
20610 transaction loads.
20611 (tree_ssa_lim_initialize): Compute transaction bits.
20612 * tree.h (compute_transaction_bits): Protoize.
20613 * trans-mem.c (tm_region_init): Use the heap to store BB
20614 auxilliary data.
20615 (compute_transaction_bits): New.
20616
042a76cf 206172012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20618
20619 * gcc.c (display_help): Document --help=common and sort entries
20620 alphabetically.
20621
ce7f5029 206222012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20623
20624 * doc/install.texi: Document check-$LANG specific shortcuts
20625
ca6c837f 206262012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
20627
20628 PR target/51534
20629 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
20630 and vcgtu.
20631 * config/arm/arm_neon.h: Regenerate.
20632 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
20633 (neon_vcgeu): New insn.
20634 (neon_vcgtu): Likewise.
20635 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
7103ce44 20636 (ops): Unsigned comparison intrinsics call a different builtin.
ca6c837f 20637
8b6c5604 206382012-02-28 Richard Guenther <rguenther@suse.de>
20639
20640 PR target/52407
20641 * config/i386/i386.c (ix86_expand_vector_set): Fix element
20642 ordering for the VEC_CONCAT for two element vectors for
20643 V2SFmode, V2SImode and V2DImode.
20644
736a63d4 206452012-02-28 Richard Earnshaw <rearnsha@arm.com>
20646
20647 PR target/49448
20648 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
20649 detecting big-endian triplets.
20650
9185f2d7 206512012-02-28 Richard Earnshaw <rearnsha@arm.com>
20652
20653 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
20654 mode if there is no type information available.
20655
a8d20b48 206562012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
20657
20658 PR tree-optimization/53207
20659 * doc/invoke.texi: Document as experimental and relying on graphite.
20660
1e946ea6 206612012-02-28 Georg-Johann Lay <avr@gjlay.de>
20662
20663 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
20664 of initializer to changes from r184614.
7103ce44 20665
627491ef 206662012-02-28 Richard Guenther <rguenther@suse.de>
20667
20668 PR tree-optimization/52395
20669 * tree-sra.c (build_ref_for_offset): Also look at the base
20670 TYPE_ALIGN when figuring out the alignment of the replacement.
20671
6b1b2cb7 206722012-02-28 Richard Guenther <rguenther@suse.de>
20673
20674 PR tree-optimization/52402
20675 * ipa-prop.c (ipa_modify_call_arguments): Properly use
20676 mis-aligned types when creating the accesses at the call site.
20677
c19a2f5f 206782012-02-28 Georg-Johann Lay <avr@gjlay.de>
20679
20680 * config/avr/builtins.def: New file.
20681 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
20682 * config/avr/avr.c (enum avr_builtin_id): Use it.
20683 (avr_init_builtins): Use it. And use avr_bdesc.
20684 (bdesc_1arg): Remove.
20685 (bdesc_2arg): Remove.
20686 (bdesc_3arg): Remove.
20687 (struct avr_builtin_description): Add field n_args.
20688 (avr_bdesc): New static variable using builtins.def.
20689 (avr_expand_builtin): Use it.
20690 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
20691 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
20692 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
20693
f1222c71 206942012-02-28 Georg-Johann Lay <avr@gjlay.de>
20695
20696 PR target/52148
20697 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
20698 match only one single hard register with respective hard reg rtx.
20699 (movmemx_<mode>): Ditto.
20700 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
20701 insn anatomy of movmem[x]_<mode>.
20702 (avr_out_movmem): Same for printing assembler and operand usage.
20703
e508bf98 207042012-02-28 Georg-Johann Lay <avr@gjlay.de>
20705
20706 PR target/49868
20707 PR target/52261
20708 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
20709 address spaces located outside of device flash.
20710
20711 * config/avr/avr.h (base_arch_s): Remove field n_segments.
20712 (mcu_type_s): Add field n_flash.
20713 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
20714 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
20715 (AVR_MCU): Add N_FLASH argument.
20716 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
20717 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
20718 macro __FLASH<n> if that address space makes sense for the device.
20719 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
20720 outside of target flash.
20721 (avr_asm_named_section): Ditto.
20722 (avr_asm_select_section): Ditto.
20723 (avr_addr_space_convert): Ditto.
20724 (avr_emit_movmemhi): Ditto.
20725 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
20726 address space is outside of device flash.
20727 (avr_insert_attributes): Ditto.
20728 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
20729 avr_current_arch->n_segments.
20730
1f2e8f6e 207312012-02-27 H.J. Lu <hongjiu.lu@intel.com>
20732
20733 PR target/52352
7103ce44 20734 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
1f2e8f6e 20735 (*movabs<mode>_2): Likewise.
20736
0f41c0cf 207372012-02-27 Jakub Jelinek <jakub@redhat.com>
20738
7510cf26 20739 PR target/52375
20740 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
20741 s_register_operand in the test instead of REG_P. Don't call
20742 gen_reg_rtx if it won't be used.
20743
0f41c0cf 20744 PR tree-optimization/52376
20745 * ipa-split.c (split_function): Ignore CLOBBER stmts.
20746
68b509aa 207472012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
20748
20749 * ifcvt.c (noce_get_condition): Check condition variable is not
20750 small_register_classes_for_mode_p before accepting.
20751
becba2b9 207522012-02-27 Uros Bizjak <ubizjak@gmail.com>
20753
20754 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
20755
347b9640 207562012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
20757
20758 Revert:
20759 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
20760 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
20761 tuning parameters.
20762 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
20763
5b9a8c31 207642012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
20765
20766 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
20767
7a288fec 207682012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
20769
20770 * config/sh/predicates.md: Remove blank lines.
20771 * config/sh/sh.c: Fix typos in comments.
20772 * config/sh/constraints.md: Likewise.
20773 * config/sh/sh.md: Remove blank lines.
20774 Fix typos in comments. Use ;; as comment characters.
20775
02be8f84 207762012-02-26 Walter Lee <walt@tilera.com>
20777
becba2b9 20778 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
02be8f84 20779 (replace_mov_pcrel_step2): Ditto.
20780
0be329ef 207812012-02-25 Alexandre Oliva <aoliva@redhat.com>
20782
fa5e407e 20783 PR debug/52001
20784 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
20785 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
20786 and locs that reference values newer than the non-canonical value
20787 at hand. Return the canonical value as a worst case.
20788 (memrefs_conflict_p): Walk canonical value's locs.
20789
0be329ef 20790 PR debug/52001
20791 * cselib.c (preserve_only_constants): Rename to...
20792 (preserve_constants_and_equivs): ... this. Split out...
20793 (invariant_or_equiv_p): ... this. Preserve plus expressions
20794 of other preserved expressions too.
20795 (cselib_reset_table): Adjust.
20796 * var-tracking.c (reverse_op): Use canonical value to build
20797 reverse operation.
20798
70c72222 207992012-02-23 Kai Tietz <ktietz@redhat.com>
20800
20801 * config/i386/i386.c (ix86_delegitimize_address): Handle
20802 UNSPEC_PCREL plus displacement.
20803
00c52bc9 208042012-02-24 Georg-Johann Lay <avr@gjlay.de>
20805
20806 PR target/52261
20807 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
20808 to test for unusedness in st X addressing.
20809
aa834ebc 208102012-02-24 Richard Guenther <rguenther@suse.de>
20811
20812 PR middle-end/52361
becba2b9 20813 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
aa834ebc 20814 (is_gimple_reg_type): Move inline ...
20815 * gimple.h (is_gimple_reg_type): ... here.
20816
e9d79eef 208172012-02-24 Richard Guenther <rguenther@suse.de>
20818
20819 PR middle-end/52361
20820 * passes.c (execute_function_todo): When verifying SSA form
20821 verify gimple form first.
20822 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
20823
7dd59140 208242012-02-24 Richard Guenther <rguenther@suse.de>
20825
20826 PR middle-end/52355
20827 * fold-const.c (fold_addr_of_array_ref_difference): New function.
becba2b9 20828 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
7dd59140 20829
10b55fcb 208302012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20831
20832 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
20833
8abed11e 208342012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20835
20836 * tree-phinodes.c (make_phi_node): Mark static.
20837 * tree-flow.h (make_phi_node): Remove extern decl.
20838 * doc/gimple.texi (make_phi_node): Remove documentation.
20839
7ef97146 208402012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20841
becba2b9 20842 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
7ef97146 20843 * tree-ssa-sccvn.c (print_scc): Ditto.
20844
6da426a8 208452012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20846
20847 * doc/passes.texi (Full redundancy elimination): Fix typo.
20848
98a3cc50 208492012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20850
20851 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
20852
148868c2 208532012-02-23 Eric Botcazou <ebotcazou@adacore.com>
20854
20855 PR bootstrap/52287
20856 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
20857
6b9c4a52 208582012-02-23 Uros Bizjak <ubizjak@gmail.com>
20859
20860 PR c/52290
20861 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
20862
8266991c 208632012-02-23 Georg-Johann Lay <avr@gjlay.de>
20864
20865 * config/avr/avr.md (code_stdname): Add ior, xor.
20866 (xior): New code iterator.
20867 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
20868 (*<code_stdname><mode>qi.byte1-3): Ditto.
20869
1a3c6423 208702012-02-23 Jakub Jelinek <jakub@redhat.com>
20871
20872 PR tree-optimization/52019
20873 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
20874 CLOBBER stmts.
20875
c3dd2023 208762012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20877
20878 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
20879 HAVE_INITFINI_ARRAY to work around namespace pollution in
20880 certain versions of newlib system headers.
20881 * config.in: Regenerate.
20882 * configure: Regenerate.
20883 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
20884 instead of HAVE_INITFINI_ARRAY.
20885
6bb01a79 208862012-02-22 Uros Bizjak <ubizjak@gmail.com>
20887
20888 PR target/52330
20889 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
20890 is not offsettable memory reference.
20891
5be63f82 208922012-02-22 Georg-Johann Lay <avr@gjlay.de>
20893
20894 PR target/18145
20895 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
20896 setting avr_need_clear_bss_p for __gnu_lto* symbols.
20897
c529cd37 208982012-02-22 Georg-Johann Lay <avr@gjlay.de>
20899
20900 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
6bb01a79 20901 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
c529cd37 20902
291426be 209032012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20904
20905 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
20906 library on Solaris 8 even without TLS support.
20907 * configure: Regenerate.
20908
48bcb852 209092012-02-22 Richard Guenther <rguenther@suse.de>
20910
20911 PR middle-end/52329
20912 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
20913 for GIMPLE_DEBUG stmts.
291426be 20914
3f06bd1b 209152012-02-22 Martin Jambor <mjambor@suse.cz>
20916
20917 PR middle-end/51782
20918 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
20919 according to the base object.
20920
b5b90b5a 209212012-02-22 Georg-Johann Lay <avr@gjlay.de>
20922
20923 PR rtl-optimization/50063
20924 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
20925 and 2 (8-bit SP) in operand 2.
20926 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
20927 setup to use movhi_sp_r instead of vanilla move to write SP.
20928 Adjust REG_CFA notes to superseed unspec.
20929 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
20930 of vanilla move.
20931 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
20932 known to be off) only with TARGET_NO_INTERRUPTS. Never use
20933 irq_state 1 (IRQ known to be on) here.
20934
769de935 209352012-02-21 Bernd Schmidt <bernds@codesourcery.com>
20936
20937 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
20938 WORDS_BIG_ENDIAN.
20939 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
20940 assign_hard_reg): Likewise.
20941
209422012-02-21 Georg-Johann Lay <avr@gjlay.de>
47f9f604 20943
20944 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
20945
769de935 209462012-02-21 Georg-Johann Lay <avr@gjlay.de>
21e3f268 20947
20948 * config/avr/avr.md
20949 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
20950 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
20951
769de935 209522012-02-21 Georg-Johann Lay <avr@gjlay.de>
184a25cd 20953
20954 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
20955 prototype from here to...
20956 * config/avr/avr.h: ...here.
20957
b600658e 209582012-02-21 Richard Earnshaw <rearnsha@arm.com>
20959
20960 PR target/52294
769de935 20961 * thumb2.md (thumb2_shiftsi3_short): Split register and
b600658e 20962 immediate shifts. For register shifts tie operands 0 and 1.
20963 (peephole2 for above): Check that register-controlled shifts
20964 have suitably tied operands.
20965
b65fb916 209662012-02-21 Quentin Neill <quentin.neill@amd.com>
20967
20968 PR target/52137
20969 * config/i386/bdver1.md (bdver1_call, bdver1_push,
20970 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
20971 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
20972 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
20973 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
20974 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
20975 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
20976 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
20977 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
20978 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
20979 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
20980 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
20981 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
20982 bdver1_ssevector_avx256_unaligned_load,
20983 bdver1_ssevector_sse128_unaligned_load,
20984 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
20985 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
20986 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
20987 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
20988 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
20989 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
20990 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
20991 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
20992 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
20993 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
20994 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
20995 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
20996 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
20997 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
20998 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
20999 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
21000 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
21001 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
21002 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
21003 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
21004 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
21005 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
21006 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
21007 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
21008 bdver1_ssediv_double_load, bdver1_ssediv_double,
21009 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
21010 Add "bdver2" attribute.
21011
dcba5e45 210122012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21013
21014 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
21015 default if possible and not specified otherwise.
21016
f2f6d96f 210172012-02-21 Richard Guenther <rguenther@suse.de>
21018
21019 PR middle-end/52314
21020 * gimplify.c (create_tmp_from_val): Use the main variant type
21021 for the type of the temporary we create.
21022
6b55f6d9 210232012-02-21 Richard Guenther <rguenther@suse.de>
21024
21025 PR tree-optimization/52324
21026 * gimplify.c (gimplify_expr): When re-gimplifying expressions
21027 do not gimplify a MEM_REF address operand if it is already
21028 in suitable form.
21029
e29fe543 210302012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21031
21032 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
21033 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
21034
7b0821ca 210352012-02-21 Richard Guenther <rguenther@suse.de>
21036
21037 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
21038 nested_in_vect_loop.
21039
e857485e 210402012-02-21 Jakub Jelinek <jakub@redhat.com>
21041
21042 PR tree-optimization/52318
21043 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
21044 vdef also to non-pure/const call stmts in the sequence.
21045
46d35275 210462012-02-21 Tristan Gingold <gingold@adacore.com>
21047
21048 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
21049
005acfe0 210502012-02-20 David S. Miller <davem@davemloft.net>
21051
21052 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
21053 don't use the "rd %pc" instruction on v9 for PIC register loads.
21054
43156aa3 210552012-02-20 Aldy Hernandez <aldyh@redhat.com>
21056
21057 PR middle-end/52141
21058 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
21059 in a transaction safe function.
21060
b527cbf0 210612012-02-20 Kai Tietz <ktietz@redhat.com>
21062
21063 PR target/52238
21064 * stor-layout.c (place_field): Handle desired_align for
21065 ms-bitfields, too.
21066
e4a9141c 210672012-02-20 Richard Guenther <rguenther@suse.de>
21068
21069 PR tree-optimization/52298
21070 * tree-vect-stmts.c (vectorizable_store): Properly use
21071 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
21072 outer loops.
21073 (vectorizable_load): Likewise.
21074 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
21075 Access DR_STEP after ensuring it is not NULL.
21076
225ffc2f 210772012-02-20 Jakub Jelinek <jakub@redhat.com>
21078
21079 PR tree-optimization/52286
21080 * fold-const.c (fold_binary_loc): For (X & C1) | C2
21081 optimization use double_int_to_tree instead of build_int_cst_wide,
21082 rewrite to use double_int vars.
21083
1c6e4ce9 210842012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21085
21086 PR target/50166
21087 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
21088 Define _start.
21089 Remove -e 0 from $gcc_cv_ld invocation.
21090 Only use __GLIBC_PREREQ if defined.
21091 Enable on Solaris since Solaris 8 patch.
21092 (gcc_SUN_LD_VERSION): New macro.
21093 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
21094 gcc_SUN_LD_VERSION for version number format.
21095 * configure: Regenerate.
21096 * varasm.c (get_elf_initfini_array_priority_section): Set
21097 SECTION_NOTYPE for non-default priority.
21098 Use get_section instead of get_unnamed_section to emit
21099 .init_array/.fini_array with default priority.
21100
6a8f7b8b 211012012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
21102
21103 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
21104 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
21105 (mips_start_unique_function, mips_output_mips16_rdhwr)
21106 (mips_code_end): New functions.
21107 (TARGET_ASM_CODE_END): Define.
21108
7db87803 211092012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
21110
21111 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
21112 to stubs with non-sibling calls.
21113
ce3c28ad 211142012-02-18 Sandra Loosemore <sandra@codesourcery.com>
21115
21116 * doc/invoke.texi (-fira-* options): Copy-edit.
21117 (ira-* parameters): Copy-edit.
21118
1bed49cd 211192012-02-17 Sandra Loosemore <sandra@codesourcery.com>
21120
21121 * doc/invoke.texi: Minor copy-edits to bring into conformance with
21122 GCC coding conventions.
21123
720dbdb5 211242012-02-17 Sandra Loosemore <sandra@codesourcery.com>
21125
21126 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
21127 when used as adjectives.
21128
77d5f3a9 211292012-02-16 Sandra Loosemore <sandra@codesourcery.com>
21130
21131 * doc/invoke.texi: Clean up "that"/"which" confusion.
21132
c7e75c45 211332012-02-17 Steven Bosscher <steven@gcc.gnu.org>
21134
21135 * system.h: Poison SMALL_REGISTER_CLASSES
21136 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
21137 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
21138
97effc09 211392012-02-16 Jakub Jelinek <jakub@redhat.com>
21140
21141 PR tree-optimization/52285
21142 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
21143 when deciding if a call is a tail call or tail recursion.
21144
3f96cc96 211452012-02-16 Kai Tietz <ktietz@redhat.com>
21146
21147 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
21148 interger-constant displacement for UNSPEC_PCREL.
21149
830de880 211502012-02-16 Jakub Jelinek <jakub@redhat.com>
21151
72e3d363 21152 PR rtl-optimization/52208
21153 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
21154 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
21155
38091110 21156 PR tree-optimization/52255
21157 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
21158 loop->header has virtual PHI, but exit_e->dest doesn't, add
21159 virtual PHI to exit_e->dest and adjust all uses after the loop.
21160
830de880 21161 PR debug/52260
21162 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
21163 children with clone_tree_hash, not after it.
21164
dd76b89f 211652012-02-16 Iain Sandoe <iains@gcc.gnu.org>
21166
21167 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
21168 extended identifiers.
21169
70f89d12 211702012-02-16 Jakub Jelinek <jakub@redhat.com>
21171
cdf67cee 21172 PR middle-end/51929
21173 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
21174 a same_body_alias, also test whether e->callee isn't a former
21175 or current clone of the decl this is a same body alias of.
21176
70f89d12 21177 PR translation/52264
21178 * cgraphunit.c (verify_cgraph_node): Fix a typo.
21179
ea76f7e1 211802012-02-15 Sandra Loosemore <sandra@codesourcery.com>
21181
21182 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
21183
3619a9e5 211842012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
21185
21186 PR target/52199
21187 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
21188 force_reg instead of copy_to_reg for better optimization. Force
21189 non-register or memory operands into a register.
21190
fd46ba2e 211912012-02-15 Andrew MacLeod <amacleod@redhat.com>
21192
21193 * extend.texi: Reserve upper bits of memory model for future use.
21194
0b6cf66f 211952012-01-15 Georg-Johann Lay <avr@gjlay.de>
21196 Anatoly Sokolov <aesok@post.ru>
21197 Eric Weddington <eric.weddington@atmel.com>
21198
21199 PR target/52261
21200 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
21201 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
21202 Rewrite initializers for .macro.
21203 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
21204 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
21205 atxmega32d4, atxmega32x1.
21206 avrxmega4: atxmega64a3, atxmega64d3.
21207 avrxmega5: atxmega64a1, atxmega64a1u.
21208 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
21209 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
21210 avrxmega7: atxmega128a1, atxmega128a1u.
21211 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
21212 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
21213 (struct base_arch_s): Rename reserved to xmega_p.
21214 Rename reserved2 to have_rampd.
21215 (AVR_XMEGA): New define.
21216 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
21217 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
21218 * config/avr/predicates.md (io_address_operand): Take into
21219 account SFR offset.
21220 (low_io_address_operand): Ditto.
21221 (high_io_address_operand): Ditto.
21222 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
21223 (enabled, movhi_sp_r): Use them.
21224 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
21225 cpp_define_formatted to built-in define __AVR_ARCH__.
21226 (__AVR_XMEGA__): New built-in define.
21227 (__AVR_HAVE_RAMPD__): New built-in define.
21228 (__AVR_HAVE_RAMPX__): New built-in define.
21229 (__AVR_HAVE_RAMPY__): New built-in define.
21230 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
21231
21232 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
21233 (avr_option_override): Initialize them.
21234 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
21235 (avr_init_expanders): Initialize them. No more block several calls.
21236 (emit_push_sfr): New static function.
21237 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
21238 Handle AVR_XMEGA.
21239 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
21240 (avr_print_operand): Print addreeses as symbols for
21241 RAMPX, RAMPY, RAMPD, CCP.
21242 (output_movhi): Handle AVR_XMEGA when writing to SP.
21243 (avr_out_movhi_mr_r_xmega): New static function.
21244 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
21245 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
21246 __RAMPD__, __CCP__ as needed.
21247
21248 * config/avr/multilib.h: Regenerate.
21249 * config/avr/t-multilib: Regenerate.
21250 * config/avr/avr-tables.opt: Regenerate.
21251
f260bce7 212522012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
21253
21254 PR tree-optimization/50561
21255 * graphite-flattening.c (lst_project_loop): Do not
21256 remove old scattering dimensions after flattening.
21257 (lst_do_flatten): Likewise.
21258
15b84087 212592012-02-15 Georg-Johann Lay <avr@gjlay.de>
21260
21261 * doc/extend.texi (AVR Built-in Functions): Remove doc for
21262 __builtin_avr_map8, __builtin_avr_map16.
21263 Document __builtin_avr_insert_bits.
21264
21265 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
21266 (insert_bits): New insn.
21267 (adjust_len.map_bits): Rename to insert_bits.
21268 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
21269 * avr-protos.h (avr_out_map_bits): Remove.
21270 (avr_out_insert_bits, avr_has_nibble_0xf): New.
21271 * config/avr/constraints.md (Cxf,C0f): New.
21272 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
21273 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
21274 New built-in define __BUILTIN_AVR_INSERT_BITS.
21275 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
21276 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
21277 (avr_move_bits): Rewrite.
21278 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
21279 functions.
21280 (avr_map_op_t): New typedef.
21281 (avr_map_op): New static variable.
21282 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
21283 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
21284 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
21285 (bdesc_3arg, avr_expand_triop_builtin): New.
21286 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
21287 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
21288 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
21289 (avr_map_equal_p, avr_map_sig_p): Remove.
21290 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
21291 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
21292 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
21293 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
21294 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
21295 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
21296
a905d913 212972012-02-14 Bernd Schmidt <bernds@codesourcery.com>
21298
21299 * config/c6x/c6x.md (reserve_cycles): New attribute.
21300 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
21301 don't reserve functional units after the branch occurs.
21302
3bd76a99 213032012-02-14 Aldy Hernandez <aldyh@redhat.com>
21304
21305 PR middle-end/52142
21306 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
21307 functions into non-tm_pure functions.
21308
073dcaef 213092012-02-14 Eric Botcazou <ebotcazou@adacore.com>
21310
21311 PR lto/52178
21312 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
21313 (iterative_hash_canonical_type): Likewise.
21314 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
21315 the dead edges.
21316
213172012-02-14 Bernd Schmidt <bernds@codesourcery.com>
38d8f4bb 21318
21319 * haifa-sched.c (prune_ready_list): Ensure that if there is a
6bb01a79 21320 sched-group insn, it either remains alone or the entire list is pruned.
38d8f4bb 21321
f9ed49a8 213222012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
21323
21324 * doc/install.texi (Prerequisites): Fix grammar.
21325 (Configuration): Likewise.
21326
257fb739 213272012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
21328
21329 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
21330 MPC as part of GCC before describing configuring with --with-gmp etc.
21331 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
21332 sources are present.
21333
65d3bb17 213342012-02-14 Jakub Jelinek <jakub@redhat.com>
21335
21336 PR debug/51950
21337 * dwarf2out.c (clone_tree_hash): New function.
21338 (copy_decls_walk): Use it instead of clone_tree.
21339
a32556d5 213402012-02-14 Richard Guenther <rguenther@suse.de>
21341
21342 PR tree-optimization/52244
21343 PR tree-optimization/51528
21344 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
21345 replacements for integral types.
21346
7ce78e23 213472012-02-14 Walter Lee <walt@tilera.com>
21348
21349 * config.gcc: Handle tilegx and tilepro.
21350 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
21351 tilegx and tilepro.
21352 Add HAVE_AS_TLS check for tilegx and tilepro.
21353 * configure: Regenerate.
21354 * doc/contrib.texi: Add Mat Hostetter and self.
21355 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
21356 Document instruction intrinsics and network accessing intrinsics.
21357 (TILEPro Built-in Functions): New node. Document instruction
21358 intrinsics and network accessing intrinsics.
21359 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
21360 (Specific, tilepro-*-linux*): Likewise.
21361 * doc/invoke.texi (TILE-Gx Options): New section.
21362 (TILEPro Options): New section.
21363 * doc/md.texi (TILE-Gx): New section.
21364 (TILEPro): New section.
21365 * common/config/tilegx/tilegx-common.c: New file.
21366 * common/config/tilepro/tilepro-common.c: New file.
21367 * config/tilegx/constraints.md: New file.
21368 * config/tilegx/linux.h: New file.
21369 * config/tilegx/mul-tables.c: New file.
21370 * config/tilegx/predicates.md: New file.
21371 * config/tilegx/sync.md: New file.
21372 * config/tilegx/t-tilegx: New file.
21373 * config/tilegx/tilegx-builtins.h: New file.
21374 * config/tilegx/tilegx-c.c: New file.
21375 * config/tilegx/tilegx-generic.md: New file.
21376 * config/tilegx/tilegx-modes.def: New file.
21377 * config/tilegx/tilegx-multiply.h: New file.
21378 * config/tilegx/tilegx-protos.h: New file.
21379 * config/tilegx/tilegx.c: New file.
21380 * config/tilegx/tilegx.h: New file.
21381 * config/tilegx/tilegx.md: New file.
21382 * config/tilegx/tilegx.opt: New file.
21383 * config/tilepro/constraints.md: New file.
21384 * config/tilepro/gen-mul-tables.cc: New file.
21385 * config/tilepro/linux.h: New file.
21386 * config/tilepro/mul-tables.c: New file.
21387 * config/tilepro/predicates.md: New file.
21388 * config/tilepro/t-tilepro: New file.
21389 * config/tilepro/tilepro-builtins.h: New file.
21390 * config/tilepro/tilepro-c.c: New file.
21391 * config/tilepro/tilepro-generic.md: New file.
21392 * config/tilepro/tilepro-modes.def: New file.
21393 * config/tilepro/tilepro-multiply.h: New file.
21394 * config/tilepro/tilepro-protos.h: New file.
21395 * config/tilepro/tilepro.c: New file.
21396 * config/tilepro/tilepro.h: New file.
21397 * config/tilepro/tilepro.md: New file.
21398 * config/tilepro/tilepro.opt: New file.
21399
4e158897 214002012-02-14 Jakub Jelinek <jakub@redhat.com>
21401
21402 PR tree-optimization/52210
21403 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
21404 vect_model_simple_cost with two entry vect_def_type array instead
21405 of an address of dt.
21406
0ffa2e92 214072012-02-14 Richard Guenther <rguenther@suse.de>
21408
21409 PR lto/52178
21410 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
21411 Do not stream DECL_QUALIFIER.
21412 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
21413 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
21414 (find_decls_types_r): Do not walk DECL_QUALIFIER.
21415
fc0d4990 214162012-02-14 Jakub Jelinek <jakub@redhat.com>
21417
21418 PR c/52181
21419 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
21420 newdecl.
21421
2af89801 214222012-02-13 Jakub Jelinek <jakub@redhat.com>
21423
21424 PR bootstrap/52172
21425 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
21426 * cselib.c (cselib_subst_to_values_from_insn): New function.
21427 * sched-deps.c (add_insn_mem_dependence,
21428 sched_analyze_1, sched_analyze_2): Use it.
21429
6e3803fb 214302012-02-13 Jan Hubicka <jh@suse.cz>
21431
21432 PR middle-end/52214
21433 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
21434
9a8d01ee 214352012-02-13 Eric Botcazou <ebotcazou@adacore.com>
21436
21437 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
21438 (GTM_SELF_SPECS): Define if not already defined.
21439 (driver_self_specs): Add GTM_SELF_SPECS.
6bb01a79 21440 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
21441 (GTM_SELF_SPECS): Define.
9a8d01ee 21442 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
21443 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
21444
0416ca72 214452012-02-13 Jakub Jelinek <jakub@redhat.com>
21446
533ae4c7 21447 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
21448 away if seen.
21449
6bb01a79 21450 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
0e508b49 21451
0416ca72 21452 PR middle-end/52230
6bb01a79 21453 * omp-low.c (expand_omp_for): If a static schedule without chunk size
21454 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
0416ca72 21455
c5519669 214562012-02-13 Andrew MacLeod <amacleod@redhat.com>
21457
21458 PR c/52190
21459 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
21460
dc35e8f6 214612012-02-13 Richard Guenther <rguenther@suse.de>
21462
21463 PR translation/52211
21464 * passes.c (enable_disable_pass): Fix typo.
21465
7e5608ca 214662012-02-13 Jakub Jelinek <jakub@redhat.com>
21467
21468 PR middle-end/52209
21469 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
21470 XOR for reduce_bit_field if type is unsigned.
21471
7a0443dc 214722012-02-12 Eric Botcazou <ebotcazou@adacore.com>
21473
21474 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
21475 disallow changes from SFmode to mode with different size in FP regs.
21476
214772012-02-12 Robert Millan <rmh@gnu.org>
6bb01a79 21478 Gerald Pfeifer <gerald@pfeifer.com>
a40d9b7c 21479
21480 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
21481 Tweak comment.
21482
f0421938 214832012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
21484
21485 PR rtl-optimization/52175
21486 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
21487 to frame-related instructions.
21488
ee7ee34d 214892012-02-10 Jason Merrill <jason@redhat.com>
21490
21491 PR c++/51910
21492 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
21493 (demangle_new_symbols): Fill it.
21494 (scan_linker_output): Walk it.
21495 (start_tweaking): Split out from scan_linker_output.
21496 (maybe_tweak): Update sym->chosen.
21497 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
21498
f8d0f01f 214992012-02-11 Jakub Jelinek <jakub@redhat.com>
21500
21501 PR debug/52132
6bb01a79 21502 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
f8d0f01f 21503
67755ff0 215042012-02-11 Uros Bizjak <ubizjak@gmail.com>
21505
21506 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
21507 having the same mode as previous compare.
21508
4cdb9b47 215092012-02-10 Eric Botcazou <ebotcazou@adacore.com>
21510
21511 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
21512 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
21513 (nonlocal_goto_internal): Likewise.
21514 (nonlocal_goto): Emit a use and an indirect jump directly.
21515
c311fe7e 215162012-02-10 Andrew MacLeod <amacleod@redhat.com>
21517
21518 PR c/52190
21519 * doc/extend.texi : Update comments for __atomic_compare_exchange and
21520 __atomic_{is,always}_lock_free.
21521
c766750c 215222012-02-10 Uros Bizjak <ubizjak@gmail.com>
21523
21524 PR target/52146
21525 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
c290746e 21526 negative constant address for TARGET_X32.
c766750c 21527
b65fbe25 215282012-02-10 Richard Henderson <rth@redhat.com>
21529
67755ff0 21530 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
21531 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
21532 for GIMPLE_TRANSACTION. Tidy if's into a switch.
b65fbe25 21533
5df2530b 215342012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21535 Ira Rosen <irar@il.ibm.com>
21536
21537 PR tree-optimization/50031
21538 * targhooks.c (default_builtin_vectorization_cost): Handle
21539 vec_promote_demote.
21540 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
21541 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
21542 all types of reduction and pattern statements.
21543 (vect_estimate_min_profitable_iters): Likewise.
21544 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
21545 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
21546 for explicit realigns.
21547 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
21548 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
21549 vec_promote_demote.
21550 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
21551 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
21552 vec_perm for VSX and handle vec_promote_demote.
21553
06308d2a 215542012-02-10 Jakub Jelinek <jakub@redhat.com>
21555
21556 PR middle-end/52177
21557 * builtins.c (fold_builtin_atomic_always_lock_free,
21558 expand_builtin_atomic_always_lock_free,
67755ff0 21559 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
21560 Return and/or test boolean_true_node/boolean_false_node instead of
06308d2a 21561 integer_one_node/integer_zero_node.
21562
d3443011 215632012-02-10 Jan Hubicka <jh@suse.cz>
21564
21565 PR middle-end/48600
21566 * predict.c (predict_paths_for_bb): Prevent looping.
21567 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
21568
151d02b1 215692012-02-10 Roman Zhuykov <zhroma@ispras.ru>
21570
21571 * config/arm/arm.c (output_move_double): In one case properly
21572 count number of instructions that will be emitted.
21573
6d36105a 215742012-02-10 Richard Guenther <rguenther@suse.de>
21575
21576 PR translation/52193
21577 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
21578
670fc240 215792012-02-09 Peter Bergner <bergner@vnet.ibm.com>
21580
21581 PR middle-end/52140
21582 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
21583
d5d74c5f 215842012-02-09 Jakub Jelinek <jakub@redhat.com>
21585
21586 PR debug/52165
21587 * var-tracking.c (emit_note_insn_var_location): If
21588 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
21589 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
21590 non-NOTE_DURING_CALL_P insn.
21591
d95cfd30 215922012-02-09 Bin Cheng <bin.cheng@arm.com>
21593
21594 PR middle-end/51867
21595 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
21596
cbe25b89 215972012-02-08 Magnus Granberg <zorry@gentoo.org>
21598
21599 PR driver/48524
67755ff0 21600 * gcc.c (switch_matches) Support switches with separated form,
21601 -D and -U.
cbe25b89 21602
72851b68 216032012-02-08 Georg-Johann Lay <avr@gjlay.de>
21604
21605 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
21606 (SP_ADDR): Ditto.
21607 (RAMPZ_ADDR): Ditto.
21608 * config/avr/avr.c (avr_addr_t): New typedef.
21609 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
21610 (avr_init_expanders): Initialize it.
21611 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
21612 SREG_ADDR.
21613 (expand_epilogue): Ditto.
21614 (avr_print_operand): Ditto.
21615 (avr_file_start): Ditto.
21616 (avr_emit_movmemhi): Ditto.
21617
8b0287e2 216182012-02-08 Richard Guenther <rguenther@suse.de>
21619
21620 PR tree-optimization/46886
21621 * tree-flow.h (do_while_loop_p): Declare.
21622 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
67755ff0 21623 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
8b0287e2 21624
3b967909 216252012-02-08 Andrew MacLeod <amacleod@redhat.com>
21626
21627 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
21628 always succeed for integers larger than a native word.
21629
3e527904 216302012-02-08 Richard Guenther <rguenther@suse.de>
21631
21632 PR rtl-optimization/52170
21633 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
21634 properly handle integer vector modes.
21635
5a23e907 216362012-02-08 Jakub Jelinek <jakub@redhat.com>
21637
8d354582 21638 PR gcov-profile/52150
21639 * coverage.c: Include target.h.
21640 (build_var): Call targetm.strip_name_encoding on the assembler name.
21641 Change one _ into . or $ if the target allows it.
21642 * Makefile.in (coverage.o): Depend on $(TARGET_H).
21643
5a23e907 21644 PR rtl-optimization/52139
21645 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
21646 is a BARRIER after emit_insn_after_noloc, move BB_END
21647 to the last non-BARRIER insn before it.
21648
9a9bf421 216492012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
21650
21651 PR middle-end/24306
21652 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
21653 (mips_gimplify_va_arg_expr): Call it instead of
21654 std_gimplify_va_arg_expr.
21655
ffc589a8 216562012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
21657
21658 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
21659 message for -mno-pointers-to-nested-function.
21660
476e59ce 216612012-02-07 Eric Botcazou <ebotcazou@adacore.com>
21662
21663 PR middle-end/51994
21664 * expr.c (get_inner_reference): If there is an offset, add a negative
21665 bit position to it (if any).
21666
ec458c01 216672012-02-07 Jakub Jelinek <jakub@redhat.com>
21668
21669 PR rtl-optimization/52060
21670 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
21671 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
21672 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
21673 and/or i0src_copy2 when needed.
21674
47c380e4 216752012-02-07 Jakub Jelinek <jakub@redhat.com>
21676
1d784785 21677 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
21678 or LTOPLUGINSONAME if have_c.
21679
47c380e4 21680 * config/freebsd-spec.h: Add comment about what macros can be defined
21681 in this header.
21682 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
21683 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
21684 here instead.
21685
57d4f313 216862012-02-07 Richard Guenther <rguenther@suse.de>
21687
21688 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
21689 newline in -alias dumps.
21690
b86a2627 216912012-02-07 Kai Tietz <ktietz@redhat.com>
67755ff0 21692 Dave Korn <dave.korn.cygwin@gmail.com>
b86a2627 21693
21694 PR target/40068
21695 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
21696 Take care that typinfo gets dllexport-attribute.
21697
792729b8 216982012-02-07 Jakub Jelinek <jakub@redhat.com>
21699
21700 PR middle-end/52074
21701 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
21702 if modifier < EXPAND_SUM call force_operand on the result.
21703
83debce3 217042012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
21705
21706 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
21707 adding __forwarder_dst__ prefix if a forwarder_section attribute is
21708 present.
21709 (epiphany_function_type): Replace types for specific interrupts with
21710 EPIPHANY_FUNCTION_INTERRUPT.
21711 (EPIPHANY_INTERRUPT_P): Update.
21712 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
21713 New static function.
21714 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
21715 <disinterrupt>: Affects type identity.
21716 (epiphany_handle_interrupt_attribute): Handle variable number of
21717 arguments.
21718 (epiphany_compute_function_type): Update for new
21719 epiphany_function_type definition.
21720 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
21721 handlers with a longcall forwarder.
21722 (epiphany_start_function): Handle multiple interrupt arguments and/or
21723 forwarder_section attribute.
21724
67755ff0 21725 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
21726 libgloss.
fad55529 21727
fd68342f 217282012-02-07 Alan Modra <amodra@gmail.com>
21729
21730 PR target/52107
21731 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
21732 subregs of TFmode.
21733
de8d8819 217342012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21735
21736 PR tree-optimization/50969
21737 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
21738 use vec_perm rather than vector_stmt.
21739 (vect_model_load_cost): Likewise.
21740 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
21741 vec_perm to be the same as other vector statements.
21742 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
21743 cost of vec_perm for TARGET_VSX.
21744
f509e778 217452012-02-06 Richard Guenther <rguenther@suse.de>
21746
21747 PR tree-optimization/52115
21748 * tree-sra.c (access_has_replacements_p): New function.
21749 (sra_modify_assign): Use it to decide whether a use is uninitialized.
21750
c86dbacd 217512012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
21752
21753 PR middle-end/52047
21754 * trans-mem.c (expand_call_tm): Add an assertion.
21755 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
21756 functions.
21757
316830ac 217582012-02-06 Richard Guenther <rguenther@suse.de>
21759
21760 PR tree-optimization/50955
21761 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
21762 raise cost of expressions that replace an address with an
21763 expression based on a different pointer.
21764
98d44ce4 217652012-02-06 Jakub Jelinek <jakub@redhat.com>
21766
21767 PR target/52129
21768 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
21769 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
21770
0737bc6a 217712012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
21772
21773 PR c++/48680
21774 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
21775 -Weffc++ and specify guidelines come from second edition.
21776
cc798c09 217772012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
21778
21779 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
21780 (sibcall_value_multiple_internal, call_split, call_internal_direct)
21781 (call_direct_split, call_value_split, call_value_internal_direct)
21782 (call_value_direct_split, call_value_multiple_split): Use jal and
21783 jal_macro attributes.
21784
677315b6 217852012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
21786
21787 * reload1.c (reload_regs_reach_end_p): Replace with...
21788 (reload_reg_rtx_reaches_end_p): ...this function.
21789 (new_spill_reg_store): Update commentary.
21790 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
21791 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
21792 before setting new_spill_reg_store.
21793 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
21794 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
21795 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
21796 for non-spill reload registers.
21797
bed8b93b 217982012-02-05 Ira Rosen <irar@il.ibm.com>
21799
21800 PR tree-optimization/52091
21801 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
21802 (vect_is_simple_use_1): Likewise.
21803 * tree-vect-loop.c (vectorizable_reduction): Update calls
21804 to vect_is_simple_use_1 and vect_is_simple_use.
21805 (vectorizable_live_operation): Likewise.
21806 * tree-vect-patterns.c (widened_name_p,
67755ff0 21807 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
bed8b93b 21808 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
67755ff0 21809 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
21810 vectorizable_shift,vectorizable_operation, vectorizable_store,
21811 vectorizable_load): Likewise.
bed8b93b 21812 (vect_is_simple_cond): Add an argument, pass it to
21813 vect_is_simple_use_1.
21814 (vectorizable_condition): Update calls to vect_is_simple_cond,
21815 vect_is_simple_use.
21816 (vect_is_simple_use): Add an argument, the statement in which
21817 OPERAND is used. Check that if OPERAND's def stmt is a double
21818 reduction phi node, the use is a phi node too.
21819 (vect_is_simple_use_1): Add an argument, pass it to
21820 vect_is_simple_use.
21821 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
21822 to vect_is_simple_use.
21823
08b31038 218242012-02-04 Jakub Jelinek <jakub@redhat.com>
21825
56134a9f 21826 PR rtl-optimization/52095
21827 * modulo-sched.c (dump_insn_locator): New function.
21828 (loop_canon_p, sms_schedule): Use it.
21829
08b31038 21830 PR rtl-optimization/52113
21831 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
21832 even for decomposable shift/zext insns.
21833
4a169b5e 218342012-02-03 Jakub Jelinek <jakub@redhat.com>
21835 Zdenek Dvorak <ook@ucw.cz>
21836
21837 PR rtl-optimization/52092
21838 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
21839 on get_iv_value result.
21840
24d7beb3 218412012-02-02 Andrew Pinski <apinski@cavium.com>
21842
21843 PR middle-end/47982
21844 PR middle-end/43967
21845 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
21846
00c00a40 218472012-02-02 Jakub Jelinek <jakub@redhat.com>
21848
21849 PR middle-end/48071
21850 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
21851
169d9eaf 218522012-02-02 Vladimir Makarov <vmakarov@redhat.com>
21853
21854 PR rtl-optimization/49800
21855 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
21856 (sched_finish): Call regstat_free_n_sets_and_refs.
21857
a13b68f1 218582012-02-02 Jia Liu <proljc@gmail.com>
21859
21860 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
21861 than operand 2.
21862
6bb01a79 218632012-02-02 Jan Hubicka <jh@suse.cz>
21864 Tom de Vries <tom@codesourcery.com>
b0898cb7 21865
21866 PR middle-end/51998
21867 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
21868 * varpool.c (varpool_analyze_pending_decls): Likewise.
21869
b9fdd12b 218702012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
21871 Jayant R Sonar <jayant.sonar@kpitcummins.com>
21872
21873 * config.gcc: Add cr16-* support.
21874
21875 * doc/extend.texi: Document cr16 extensions.
21876 * doc/install.texi: Document cr16 install.
21877 * doc/invoke.texi: Document cr16 options.
21878 * doc/md.texi: Document cr16 constraints.
21879
21880 * common/config/cr16/cr16-common.c: New file.
21881 * config/cr16/cr16.c: New file.
21882 * config/cr16/cr16.h: New file.
21883 * config/cr16/cr16.md: New file.
21884 * config/cr16/cr16.opt: New file.
21885 * config/cr16/cr16-protos.h: New file.
21886 * config/cr16/predicates.md: New file.
21887 * config/cr16/constraints.md: New file.
21888 * config/cr16/t-cr16: New file.
21889
ddee24bb 218902012-02-02 Jakub Jelinek <jakub@redhat.com>
21891
80b67e55 21892 PR target/52086
21893 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
21894 that operands[2] is either immediate, or q_regs_operand.
21895
ddee24bb 21896 PR tree-optimization/52073
21897 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
21898 a pattern stmt for pattern uses, ignore uses outside of the loop.
21899
02a011e9 219002012-02-01 Georg-Johann Lay <avr@gjlay.de>
21901
21902 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
21903 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
21904 (OUT_AS1, OUT_AS2): Remove.
21905
5dcaa548 219062012-02-01 Georg-Johann Lay <avr@gjlay.de>
21907
21908 PR rtl-optimization/51374
21909 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
21910 to cross other volatile_refs_p insns.
21911
b75cad1f 219122012-02-01 Richard Guenther <rguenther@suse.de>
21913
21914 * doc/invoke.texi (fno-inline): Clarify documentation.
21915 (finline-small-functions): Likewise.
21916 (finline-functions): Likewise.
21917 * common.opt (finline): Adjust comment and documentation.
21918 (finline-small-functions): Clarify documentation.
21919 (finline-functions): Likewise.
21920 (finline-functions-called-once): Likewise.
21921
b589b3b4 219222012-02-01 Tristan Gingold <gingold@adacore.com>
21923
21924 * c-typeck.c (composite_type): Keep mode for pointers.
21925
e49cbd3a 219262012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
21927
21928 * function.h (regno_reg_rtx): Adjust comment.
21929 * reginfo.c (init_reg_modes_target): Only use the previous mode
21930 if it fits within one register. Remove MIPS comment.
21931
3e9db8fa 219322012-01-31 Jakub Jelinek <jakub@redhat.com>
21933
21934 PR bootstrap/52058
21935 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
21936
a6dcd7c0 219372012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21938
21939 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
21940 to srak instruction.
21941
b004da1e 219422012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
21943
67755ff0 21944 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
b004da1e 21945
b74ba78c 219462012-01-31 Jakub Jelinek <jakub@redhat.com>
21947
21948 PR bootstrap/52041
21949 PR bootstrap/52039
21950 PR target/51974
21951 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
21952
192d2ed8 219532012-01-31 Richard Guenther <rguenther@suse.de>
21954
21955 PR tree-optimization/51528
21956 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
21957 assigns.
21958
32a07a44 219592012-01-31 Jakub Jelinek <jakub@redhat.com>
21960
21961 PR bootstrap/52041
21962 PR bootstrap/52039
21963 PR target/51974
21964 * ree.c (add_removable_extension): Change def_map argument
21965 to unsigned *, store in def_map 1 + offset into *insn_list vector
21966 instead of pointers into the vector.
21967 (find_removable_extensions): Adjust caller.
21968
97bdce59 219692012-01-30 Georg-Johann Lay <avr@gjlay.de>
21970
21971 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
21972 Transform all "* quoted-c-code" to { c-code }.
21973 Remove redundant test for "optimize" in combine patterns.
21974 Move (include "avr-dimode.md") to end of file.
21975
232b7e7e 219762012-01-30 Bin Cheng <bin.cheng@arm.com>
21977
21978 PR target/51835
21979 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
21980 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
21981
a4d16d30 219822012-01-30 Richard Guenther <rguenther@suse.de>
21983
21984 PR tree-optimization/52028
21985 * tree-loop-distribution.c (ldist_gen): Properly update
21986 virtual SSA form.
21987
30e4f955 219882012-01-30 Jakub Jelinek <jakub@redhat.com>
21989
f9a7b553 21990 PR debug/52027
21991 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
21992 set_cur_line_info_table if not emitting debug info.
21993
3a542b98 21994 PR tree-optimization/52046
21995 * tree-vect-patterns.c (check_bool_pattern): Give up if
21996 a comparison could throw.
21997
30e4f955 21998 PR debug/52048
21999 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
22000
b7b10fb5 220012012-01-30 Richard Guenther <rguenther@suse.de>
22002
22003 PR tree-optimization/52045
22004 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
22005 SSA form if cfgcleanup did anything.
22006
e723655c 220072012-01-30 Richard Guenther <rguenther@suse.de>
22008
22009 PR tree-optimization/52045
22010 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
22011 before computing final todo.
22012
ce0c5a57 220132012-01-30 Richard Guenther <rguenther@suse.de>
22014
22015 PR tree-optimization/51528
22016 * tree-sra.c (sra_modify_assign): Re-factor in preparation
22017 for PR51528 fix.
22018
a1cf9167 220192012-01-30 Paolo Bonzini <bonzini@gnu.org>
22020
22021 * df-problems.c (df_kill_notes): Check that the use refers
22022 to the note under examination.
22023
6d293a49 220242012-01-30 Eric Botcazou <ebotcazou@adacore.com>
22025
22026 PR target/51920
22027 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
22028 parameter and use short-lived pseudos.
22029 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
22030 (sparc_expand_vector_init): Const-ify local variables and adjust
22031 calls to above functions.
22032
578c09ca 220332012-01-30 Georg-Johann Lay <avr@gjlay.de>
22034
22035 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
22036
009f90be 220372012-01-29 Sandra Loosemore <sandra@codesourcery.com>
22038
22039 * doc/invoke.texi: Make usage of "compile time" and
22040 "run time"/"runtime" consistent throughout the file.
22041
669cf718 220422012-01-29 Uros Bizjak <ubizjak@gmail.com>
22043
67755ff0 22044 * config/alpha/alpha.c (alpha_option_override): Default to
669cf718 22045 full IEEE compliance mode for Go language.
22046
3169c57a 220472012-01-29 Tijl Coosemans <tijl@coosemans.org>
0cfd09e4 22048
22049 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
22050 (LINK_SSP_SPEC): Define.
22051
16309fef 220522012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22053
22054 PR target/51871
22055 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
22056 stubs.
22057
82e24083 220582012-01-28 Sandra Loosemore <sandra@codesourcery.com>
22059
22060 * doc/invoke.texi: Correct hyphenation of "floating point",
22061 "double precision", and related terminology throughout the file.
22062
2d05dfad 220632012-01-28 Jakub Jelinek <jakub@redhat.com>
22064
22065 PR target/52006
22066 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
22067 arm_general_register_operand predicate for operand 2 instead of
22068 register_operand.
22069
c307f106 220702012-01-27 Ian Lance Taylor <iant@google.com>
22071
22072 PR go/47656
22073 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
22074 * builtins.c (expand_builtin_init_trampoline): Add onstack
22075 parameter. Change caller.
22076 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
22077 * tree.c (build_common_builtin_nodes): Declare
22078 __builtin_init_heap_trampoline.
22079
2d86450c 220802012-01-27 Georg-Johann Lay <avr@gjlay.de>
22081
22082 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
22083 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
22084 * config/avr/avr.c: Ditto.
22085 (avr_regnames): Remove because unused.
22086 * config/avr/avr.md (*cpse.ne): New peephole.
22087 (*cpse.eq): New peephole from former cpse peepholes.
22088
3542dbe2 220892012-01-27 Michael Eager <eager@eagercon.com>
22090
22091 * config/microblaze.c (microblaze_emit_compare): Correct
22092 test after pcmp instruction.
22093
9d9e2a99 220942012-01-27 Richard Guenther <rguenther@suse.de>
22095
22096 PR tree-optimization/52020
22097 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
22098
541c6dbb 220992012-01-27 Richard Guenther <rguenther@suse.de>
22100
22101 * ipa-pure-const.c (check_stmt): Clobbers do not make a
22102 function non-const/pure.
22103
25b3bbad 221042012-01-27 Richard Guenther <rguenther@suse.de>
22105
22106 PR tree-optimization/50444
22107 * tree-sra.c (build_ref_for_offset): Properly adjust the
22108 MEM_REF type for unaligned accesses.
22109
a598af2a 221102012-01-27 Richard Guenther <rguenther@suse.de>
22111
22112 PR tree-optimization/50444
22113 * expr.c (mem_ref_refers_to_non_mem_p): New function.
22114 (expand_assignment): Use it. Properly handle misaligned
22115 bases when expanding stores to component references.
22116 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
22117 refactor that case.
22118
c7af8ae7 221192012-01-27 Andrey Belevantsev <abel@ispras.ru>
22120
22121 PR middle-end/51389
22122 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
22123 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
22124 * tree-data-ref.c (find_data_references_in_loop): Make static.
22125 (compute_all_dependences): Change return type to bool. Bail out
22126 for too many datarefs in a loop. Move the hunk resetting the data
22127 dependences vector from ...
22128 (compute_data_dependences_for_loop): ... here. Account for
22129 compute_all_dependences returning false.
22130 (compute_data_dependences_for_bb): Likewise.
22131 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
22132 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
22133
3c089259 221342012-01-27 Richard Guenther <rguenther@suse.de>
22135
22136 PR middle-end/51959
22137 * expr.c (store_field): Use the alias-set of the scratch memory
22138 for storing to it.
22139
8a19bda6 221402012-01-27 Tom de Vries <tom@codesourcery.com>
22141
22142 PR tree-optimization/51990
669cf718 22143 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
22144 WITH_SIZE_EXPR.
8a19bda6 22145 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
22146
0a35a733 221472012-01-27 Jakub Jelinek <jakub@redhat.com>
22148
22149 PR debug/52001
22150 * var-tracking.c (reverse_op): Don't add any reverse operation
22151 if V already has any constant locations.
22152
95e413db 221532012-01-27 Sandra Loosemore <sandra@codesourcery.com>
22154
22155 * doc/invoke.texi: Correct usage of "command line" (noun)
22156 vs "command-line" (adjective) throughout.
22157
ec9e53f7 221582012-01-27 Sandra Loosemore <sandra@codesourcery.com>
22159
22160 * doc/invoke.texi (Language Independent Options): Move
22161 -Wcoverage-mismatch blurb from here....
22162 (Warning Options): ...to here.
22163
7b3c2599 221642012-01-27 Peter Bergner <bergner@vnet.ibm.com>
22165
22166 * config/rs6000/rs6000.c (rs6000_option_override_internal):
22167 Set rs6000_always_hint to false for 476.
22168
c5698d9f 221692012-01-27 Matthias Klose <doko@ubuntu.com>
22170
22171 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
22172 system root.
22173 * incpath.c (add_standard_paths): Likewise.
22174
2a967206 221752012-01-27 Richard Henderson <rth@redhat.com>
22176
22177 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
22178 * config/m68k/sync.md (atomic_test_and_set): Rename from
22179 sync_test_and_setqi and adjust the operands.
22180 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
22181 and unconditionally enable.
22182
8481386e 221832012-01-27 Richard Henderson <rth@redhat.com>
22184
22185 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
22186 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
22187 (ldstub): Rename from ldstubqi.
22188 (ldstub<I24MODE>): Remove.
22189
df1680c8 221902012-01-27 Richard Henderson <rth@redhat.com>
22191
22192 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
22193 * c-cppbuiltin.c (cpp_atomic_builtins): Define
22194 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
22195 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
22196 * doc/tm.texi: Rebuild.
22197
ea17dfa7 221982012-01-27 Richard Henderson <rth@redhat.com>
22199
22200 * optabs.c (gen_atomic_test_and_set): Remove default.
22201 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
22202
7715a410 222032012-01-26 Jakub Jelinek <jakub@redhat.com>
22204
22205 PR rtl-optimization/51978
669cf718 22206 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
7715a410 22207 (combine_reaching_defs): Likewise.
22208 (struct re_info): Remove.
22209 (add_removable_extension): Remove x and data arguments,
22210 add insn, insn_list and def_map. Use the arguments directly
22211 instead of using struct re_info.
22212 (find_removable_extensions): Don't call add_removable_extension
22213 through note_stores, instead just call it with single_set
22214 result if non-NULL.
22215 (find_and_remove_re): Pass curr_cand->expr instead of
669cf718 22216 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
7715a410 22217
b74338cf 222182012-01-26 Michael Matz <matz@suse.de>
22219
22220 PR tree-optimization/46590
22221 * cfgexpand.c: Revert last change (r183305).
22222 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
22223 regs.
22224 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
22225 checking for emptiness.
22226
597cee6a 222272012-01-26 Jakub Jelinek <jakub@redhat.com>
22228
22229 PR middle-end/51895
22230 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
22231 non-addressable non-BLKmode base correctly.
22232
4b393c71 222332012-01-26 Michael Matz <matz@suse.de>
22234
22235 PR tree-optimization/48794
22236 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
22237 regions referenced from RESX/EH_DISPATCH.
22238
abb9bd4b 222392012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22240
22241 * config/s390/s390.h: Make BRANCH_COST an option.
22242 * config/s390/s390.opt: New option -mbranch-cost.
22243
e0f3ea3e 222442012-01-26 Richard Henderson <rth@redhat.com>
22245
22246 Revert 2012-01-24 change:
22247 * trans-mem.c (requires_barrier): Do not instrument thread local
22248 variables and emit save/restore for them.
22249
1d5a3bac 222502012-01-25 Jakub Jelinek <jakub@redhat.com>
22251
22252 PR middle-end/51986
22253 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
22254 for pat == 0.
22255
fb7bf3ef 222562012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
22257
0788eaac 22258 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
22259 ASM_OPERANDS.
fb7bf3ef 22260
590da9f2 222612012-01-25 Georg-Johann Lay <avr@gjlay.de>
22262
22263 PR target/49868
22264 Rename __pgm to __flash.
22265 Rename __pgm1 to __flash1.
22266 Rename __pgm2 to __flash2.
22267 Rename __pgm3 to __flash3.
22268 Rename __pgm4 to __flash4.
22269 Rename __pgm5 to __flash5.
22270 Rename __pgmx to __memx.
22271 * doc/extend.texi (AVR Named Address Spaces)
22272 Rename address space names as indicated above.
22273 * config/avr/avr.c (avr_addrspace): Ditto.
22274
22275 * config/avr/avr-protos.h
22276 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
22277 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
22278 * config/avr/predicates.md: Ditto.
22279 * config/avr/avr.c Ditto, and
22280 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
22281 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
22282
22283 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
22284 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
22285 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
22286 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
22287 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
22288 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
22289 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
22290 * config/avr/avr.c: Ditto.
22291 * config/avr/avr.md: Ditto.
22292
807e0fc2 222932012-01-25 Jason Merrill <jason@redhat.com>
22294
22295 PR c++/51992
22296 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
22297
e9156cad 222982012-01-25 Jakub Jelinek <jakub@redhat.com>
22299
22300 PR tree-optimization/51987
22301 * tree-data-ref.c (get_references_in_stmt): Handle references in
22302 non-volatile GIMPLE_ASM.
22303
f9f051a3 223042012-01-25 Richard Guenther <rguenther@suse.de>
22305
22306 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
22307 bases are dereferenced.
22308
2c622b2e 223092012-01-25 Andrey Belevantsev <abel@ispras.ru>
22310
22311 PR rtl-optimization/48374
669cf718 22312 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
2c622b2e 22313
713f1f14 223142012-01-25 Andrey Belevantsev <abel@ispras.ru>
22315
22316 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
22317 compute_data_dependences_for_loop returns false.
22318 * tree-parloops.c (loop_parallel_p): Likewise.
22319
69fbc3aa 223202012-01-25 Richard Guenther <rguenther@suse.de>
22321
22322 * tree.h (get_pointer_alignment_1): Declare.
22323 * builtins.c (get_pointer_alignment_1): New function.
22324 (get_pointer_alignment): Use it.
22325
eed2904a 223262012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22327
22328 PR rtl-optimization/48308
22329 * combine.c (enum undo_kind): Add UNDO_LINKS.
22330 (struct undo): Add member l to other_contents and where.
22331 (do_SUBST_LINK): New.
22332 (SUBST_LINK): New.
22333 (try_combine): Handle LOG_LINKS for the dummy i1 case.
22334 (undo_all): Handle UNDO_LINKS.
22335
d7c18c60 223362012-01-25 Richard Henderson <rth@redhat.com>
22337
22338 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
22339 mem inputs.
22340
dc4461a1 223412012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
22342
22343 * optabs.c (gen_atomic_test_and_set): Use each argument.
22344
11a9f55b 223452012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
22346
22347 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
22348 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
22349 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
22350 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
22351 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
22352 TARGET_PAIRED_SINGLE_FLOAT.
22353
402f6a9e 223542012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
22355
22356 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
22357 (in_struct, return_val): Remove MEM documentation.
22358 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
22359 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
22360 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
22361 and MEM_SCALAR.
22362 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22363 * cfgexpand.c (add_alias_set_conflicts): Likewise.
22364 * expr.c (store_field): Likewise.
22365 * function.c (assign_stack_temp_for_type): Likewise.
22366 * ifcvt.c (noce_try_cmove_arith): Likewise.
22367 * reload1.c (reload): Likewise.
22368 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
22369 (alpha_set_memflags): Likewise.
22370 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
22371
376a287d 223722012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
22373
22374 * rtl.h (true_dependence, canon_true_dependence): Remove varies
22375 parameter.
22376 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
22377 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
22378 (true_dependence_1, true_dependence, canon_true_dependence): Remove
22379 varies parameter.
22380 * cselib.c (cselib_rtx_varies_p): Delete.
22381 (cselib_invalidate_mem): Update call to canon_true_dependence.
22382 * dse.c (record_store, check_mem_read_rtx): Likewise.
22383 (scan_reads_nospill): Likewise.
22384 * cse.c (check_dependence): Likewise.
22385 (cse_rtx_varies_p): Delete.
22386 * expr.c (safe_from_p): Update call to true_dependence.
22387 * ira.c (validate_equiv_mem_from_store): Likewise.
22388 (memref_referenced_p): Likewise.
22389 * postreload-gcse.c (find_mem_conflicts): Likewise.
22390 * sched-deps.c (sched_analyze_2): Likewise.
22391 * store-motion.c (load_kills_store): Likewise.
22392 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
22393 * gcse.c (mems_conflict_for_gcse_p): Likewise.
22394 (compute_transp): Update call to canon_true_dependence.
22395
39ca90d5 223962012-01-25 Richard Henderson <rth@redhat.com>
22397
22398 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
22399 (maybe_emit_atomic_test_and_set): New.
22400 (expand_sync_lock_test_and_set): Use it.
22401 (expand_atomic_test_and_set): Likewise.
22402 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
22403 the implementation; clarify implementation defined details.
22404 * doc/md.texi (atomic_test_and_set): Document.
22405
803dea20 224062012-01-25 Richard Henderson <rth@redhat.com>
22407
22408 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
22409
256897f4 224102012-01-25 Richard Henderson <rth@redhat.com>
22411
22412 PR target/51968
22413 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
22414 to effect no-op split.
22415
9eb529b8 224162012-01-24 Aldy Hernandez <aldyh@redhat.com>
22417
22418 PR lto/51698
22419 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
22420 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
22421 (BT_FN_VOID_PTR_INT_SIZE): New.
22422 (BT_FN_UINT_UINT_VAR): Remove.
22423 (BT_FN_UINT32_UINT32_VAR): New.
22424 (BT_FN_DOUBLE_VPTR): Remove.
22425 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
22426
669cf718 22427 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
9eb529b8 22428 (_ITM_changeTransactionMode): Same.
22429 (_ITM_memmoveRtWt): Change return type to void.
22430 (_ITM_memcpyRtWt): Same.
22431 (_ITM_memsetW): Same.
22432 (_ITM_RaRD): Change types to double.
22433 (_ITM_RD): Same.
22434 (_ITM_RaWD): Same.
22435 (_ITM_RfWD): Same.
22436
22437 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
22438
5db3f9d5 224392012-01-24 Aldy Hernandez <aldyh@redhat.com>
22440 Patrick Marlier <patrick.marlier@gmail.com>
22441
22442 * trans-mem.c (requires_barrier): Do not instrument thread local
22443 variables and emit save/restore for them.
22444
07828d90 224452012-01-24 Jason Merrill <jason@redhat.com>
22446
22447 PR c++/51812
22448 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
22449 output static aliases.
22450
1412b935 224512012-01-24 Jakub Jelinek <jakub@redhat.com>
22452
22453 PR driver/47249
22454 * common.opt (-pie, -shared, pie, shared): Change from Common to
22455 Driver.
22456 * gcc.c (display_help): Display help for -pie and -shared.
22457
6ee532ba 224582012-01-24 Georg-Johann Lay <avr@gjlay.de>
22459
22460 PR target/49868
22461 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
22462 Remove note on size/offset limitation.
22463 (AVR Variable Attributes): Add example how to read data located
22464 with progmem. Refer to named address spaces.
22465 * doc/invoke.texi (AVR Options): Fix typo.
22466
7f295214 224672012-01-24 Richard Guenther <rguenther@suse.de>
22468
22469 Forward-port to trunk
22470 2010-09-21 Jakub Jelinek <jakub@redhat.com>
22471
22472 PR middle-end/45678
22473 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
22474 op0 isn't sufficiently aligned and there is movmisalignM
22475 insn for mode, use it to load op0 into a temporary register.
22476
202e7097 224772012-01-24 Jakub Jelinek <jakub@redhat.com>
22478
22479 PR target/51957
22480 * target.def (const_not_ok_for_debug_p): New hook.
22481 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
22482 documentation.
22483 * doc/tm.texi: Regenerated.
22484 * dwarf2out.c (const_ok_for_output_1): If
22485 targetm.const_not_ok_for_debug_p returns true, fail.
22486 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
22487 function.
22488 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
22489
c96c9817 224902012-01-23 Kai Tietz <ktietz@redhat.com>
22491
22492 PR target/51900
22493 * config/i386/predicates.md (symbolic_operand): Allow
22494 UNSPEC_PCREL as PIC expression for lea.
22495 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
22496 * config/i386/i386.c (ix86_delegitimize_address): Handle
22497 UNSPEC_PCREL for none-MEM, too.
22498
caf29404 224992012-01-23 Aldy Hernandez <aldyh@redhat.com>
22500
22501 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
22502 (ipa_tm_create_version_alias): Same.
22503
669cf718 225042012-01-23 Uros Bizjak <ubizjak@gmail.com>
be83ebf7 22505
22506 PR libitm/51830
22507 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
22508 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
22509
38fe0c89 225102012-01-23 Aldy Hernandez <aldyh@redhat.com>
22511 Patrick Marlier <patrick.marlier@gmail.com>
22512 Iain Sandoe <developer@sandoe-acoustics.co.uk>
22513
22514 PR lto/51916
22515 * lto-wrapper.c (run_gcc): Pass the LTO section name to
22516 simple_object_start_read.
22517
b94ae734 225182012-01-23 Richard Guenther <rguenther@suse.de>
22519
38fe0c89 22520
b94ae734 22521 PR tree-optimization/51895
22522 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
22523 parameter decomposition into BLKmode components.
22524
bd57fdff 225252012-01-23 Eric Botcazou <ebotcazou@adacore.com>
22526
22527 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
22528 fake variables for restrict-qualified pointers whose pointed-to type
22529 contains a placeholder.
22530
f3941af5 225312012-01-23 Richard Guenther <rguenther@suse.de>
22532
22533 PR tree-optimization/51949
be83ebf7 22534 * ipa-split.c (execute_split_functions): Do not split malloc functions.
f3941af5 22535
6bd23a69 225362012-01-23 Jakub Jelinek <jakub@redhat.com>
22537
22538 PR rtl-optimization/51933
22539 * ree.c (transform_ifelse): Return true right away if dstreg is
22540 already wider or equal to cand->mode.
22541 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
22542 (make_defs_and_copies_lists): Remove defs_list and copies_list
22543 arguments, add state argument, just truncate state->work_list
22544 instead of always allocating and freeing the vector. Assert that
be83ebf7 22545 get_defs succeeds instead of returning 2. Changed return type to bool.
6bd23a69 22546 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
22547 have ext_src_mode, see if it has been modified already with the
22548 right kind of extension and has been extended before from the
22549 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
be83ebf7 22550 just return true. Remember the original mode in state->modified array.
6bd23a69 22551 (combine_reaching_defs): Add state argument. Don't allocate and
22552 free here def_list, copied_list and vec vectors, instead just
be83ebf7 22553 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
6bd23a69 22554 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
22555 Add state variable, clear vectors in it, initialize state.modified
22556 if needed. Free all the vectors at the end and state.modified too.
22557 Don't skip a candidate if the extension expression has been modified.
22558
af8e12d0 225592012-01-22 Douglas B Rupp <rupp@gnat.com>
22560
22561 PR target/47096
22562 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
22563 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
22564 (extra_options) interix.opt -> i386/interix.opt"
22565 (extra_objs):Add winnt-stubs.o
22566 * configure.ac: Add interix to target_os .comm on PE check.
22567 * configure: Regenerate.
22568 * config/interix3.h: Delete and move bits to..
22569 * config/interix.h: Delete and move bits to..
22570 * config/i386/i386-interix3.h: Delete and move bits to..
22571 * config/i386/i386-interix.h: ..here.
22572 (TARGET_CPU_DEFAULT): Remove redefinition.
22573 (TARGET_ASM_CONSTRUCTOR): Undefine.
22574 (SUBTARGET_SWITCHES): Define for ms-bitfields.
22575 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
22576 (PTRDIFF_TYPE): Define.
22577 (LONG_DOUBLE_TYPE_SIZE): Define.
22578 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
22579 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
22580 (TARGET_SECTION_TYPE_FLAGS): Define.
22581 (ASM_DECLARE_FUNCTION_NAME): Define.
22582 (ASM_OUTPUT_EXTERNAL): Define.
22583 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
22584 (ASM_OUTPUT_ALIGNED_BSS): Define.
22585 (PCC_BITFIELD_TYPE_MATTERS): Define.
22586 (USE_CONST_SECTION): Define.
22587 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
22588 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
22589 (SUPPORTS_ONE_ONLY): Remove.
22590 (I386_PE_STRIP_ENCODING): Define.
22591 * config/interix.opt: Delete and move bits to..
22592 * config/i386/interix.opt: ..here. New.
22593 (mpe-aligned-commons): Add.
22594 * config/i386/t-interix: Add copyright header.
22595 (winnt-stubs.o): Add rule.
22596
e87b587e 225972012-01-22 Jason Merrill <jason@redhat.com>
22598
22599 PR c++/51832
22600 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
22601 for extra name aliases.
22602
4a77f173 226032012-01-22 Eric Botcazou <ebotcazou@adacore.com>
22604
22605 PR rtl-optimization/51924
22606 * ree.c (combine_set_extension): Improve debugging message.
22607 (combine_reaching_defs): Likewise.
22608 (get_defs): Rename confusingly named variable.
22609 (find_and_remove_re): Skip a candidate if the extension expression has
22610 been modified.
22611
e351cc52 226122012-01-21 Robert Millan <rmh@gnu.org>
22613 Gerald Pfeifer <gerald@pfeifer.com>
22614
22615 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
22616 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
22617
3991e956 226182012-01-20 Jakub Jelinek <jakub@redhat.com>
22619
22620 PR tree-optimization/51914
22621 * tree-vect-stmts.c (vectorizable_conversion): For
22622 cvt_type && modifier == WIDEN, put temporary with cvt_type
22623 at the beginning of vec_dsts and set vec_dest to temporary
22624 with vectype_out.
22625
4c2112a3 226262012-01-20 Eric Botcazou <ebotcazou@adacore.com>
22627
22628 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
22629
3169c57a 226302012-01-20 Tijl Coosemans <tijl@coosemans.org>
9492fb06 22631
22632 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
22633 * config/rs6000/rs6000.c: Likewise.
22634
40053ccb 226352012-01-20 Jakub Jelinek <jakub@redhat.com>
22636
22637 PR target/51915
22638 * config/arm/arm.c (arm_count_output_move_double_insns): Call
22639 output_move_double on a copy of operands array.
22640
be83ebf7 226412012-01-20 Cary Coutant <ccoutant@google.com>
22642 Dodji Seketeli <dodji@redhat.com>
946ae316 22643
22644 PR debug/45682
22645 * dwarf2out.c (copy_declaration_context): Return ref to parent
22646 of declaration DIE, if necessary.
22647 (remove_child_or_replace_with_skeleton): Add new parameter; update
22648 caller. Place skeleton DIE under parent DIE of original declaration.
22649 Move call to copy_declaration_context to here ...
22650 (break_out_comdat_types): ... from here.
22651
2bfb4f13 226522012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22653
22654 PR rtl-optimization/51856
22655 * reload.c (find_reloads_subreg_address): Set the address_reloaded
22656 flag to reloaded.
22657
093defc8 226582012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22659
22660 PR target/51819
22661 * config/arm/arm.c (arm_print_operand): Correct output of alignment
22662 hints for neon loads and stores.
22663
8516b1c4 226642012-01-20 Georg-Johann Lay <avr@gjlay.de>
22665
22666 PR target/49868
22667 PR target/50887
22668 * doc/extend.texi (Named Address Spaces): Split into subsections.
22669 (AVR Named Address Spaces): New subsection.
22670 (M32C Named Address Spaces): New subsection.
22671 (RL78 Named Address Spaces): New subsection.
22672 (SPU Named Address Spaces): New subsection.
22673 (Variable Attributes): New anchor "AVR Variable Attributes".
22674 (AVR Variable Attributes): Rewrite and avoid wording
22675 "address space" in this context.
22676 * doc/invoke.texi (AVR Options): Rewrite and add documentation
22677 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
22678 (AVR Built-in Macros): New subsubsection therein.
22679 * doc/md.texi (AVR constraints): Remove "C04", "R".
22680
173bd570 226812012-01-20 Richard Guenther <rguenther@suse.de>
22682
22683 PR tree-optimization/51903
22684 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
22685 when removing stmts.
22686
350ccca5 226872012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22688
22689 PR target/50313
22690 * config/arm/arm.c (arm_load_pic_register): Use
22691 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
22692 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
22693 (arm_pic_static_addr): Likewise.
22694 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
22695 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
22696 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
22697 (pic_load_addr_unified): New.
22698
fb10e416 226992012-01-20 Andrey Belevantsev <abel@ispras.ru>
22700
22701 PR target/51106
22702 * function.c (instantiate_virtual_regs_in_insn): Use
22703 delete_insn_and_edges when removing a wrong asm insn.
22704
9f8ac546 227052012-01-19 Vladimir Makarov <vmakarov@redhat.com>
22706
22707 PR rtl-optimization/40761
be83ebf7 22708 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
22709 Add new member loop_num.
9f8ac546 22710 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
22711 (ira_build): Remove the parameter.
22712
be83ebf7 22713 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
9f8ac546 22714 (ira.c): Do not build CFG loops for one region allocation. Remove
22715 argument from ira_build call.
22716
22717 * ira-build.c (init_loop_tree_node): New function.
22718 (create_loop_tree_nodes): Use it. Separate the case when CFG
22719 loops are not built.
22720 (more_one_region_p): Check current_loops.
22721 (finish_loop_tree_nodes): Separate the case when CFG loops are not
22722 built.
22723 (add_loop_to_tree): Process loop equal to NULL too.
22724 (form_loop_tree): Separate the case when CFG loops are not built.
22725 Use explicitly number for the root.
22726 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
22727 an assertion.
22728 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
22729 instead of loop->num.
be83ebf7 22730 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
9f8ac546 22731 (mark_all_loops_for_removal): Ditto.
22732 (remove_unnecessary_regions): Separate the case when CFG loops
22733 are not built.
22734 (ira_build): Remove the parameter. Use explicit number of regions
22735 when CFG loops are not built.
22736
be83ebf7 22737 * ira-color.c (print_loop_title): Separate the case for the root node.
22738 Use loop_num instead of loop->num.
9f8ac546 22739 (move_spill_restore): Use loop_num instead of loop->num.
22740
22741 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
22742 (change_loop): Ditto.
22743 (change_loop): Use loop_num instead of loop->num.
22744
22745 * ira-lives.c (process_bb_node_lives): Ditto.
22746
be83ebf7 22747 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
9f8ac546 22748
22749 * ira-conflicts.c (print_allocno_conflicts): Ditto.
22750
042161e8 227512012-01-19 Jakub Jelinek <jakub@redhat.com>
22752
8c1094a6 22753 PR libmudflap/40778
22754 * tree-mudflap.c (mf_artificial): New function.
22755 (execute_mudflap_function_ops, execute_mudflap_function_decls,
22756 mx_register_decls, mudflap_enqueue_decl): Use it.
22757
042161e8 22758 PR target/51876
22759 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
22760 numbers in the insn pattern.
22761
c729109b 227622012-01-19 Michael Matz <matz@suse.de>
22763
22764 PR tree-optimization/46590
22765 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
22766 use it in remembering which conflicts we already created.
22767 (add_scope_conflicts): Adjust call to above, (de)allocate helper
22768 bitmap.
22769
50f418ca 227702012-01-19 Aldy Hernandez <aldyh@redhat.com>
22771
22772 PR lto/51280
22773 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
22774 (merge_and_complain): Same.
22775
35f51475 227762012-01-19 Jakub Jelinek <jakub@redhat.com>
22777
22778 PR bootstrap/50237
22779 * config/initfini-array.h: Guard content of the header
22780 with #ifdef HAVE_INITFINI_ARRAY.
22781 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
22782 Add initfini-array.h to tm_file here.
be83ebf7 22783 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
35f51475 22784 * config.gcc: Don't add initfini-array.h to tm_file here.
22785 * configure: Regenerated.
22786
227872012-01-19 Andrey Belevantsev <abel@ispras.ru>
918fbeb3 22788
22789 PR rtl-optimization/51505
22790 * df-problems.c (df_kill_notes): New parameter live. Update comment.
22791 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
be83ebf7 22792 (df_note_bb_compute): Update the call to df_kill_notes.
918fbeb3 22793
3c8b8a41 227942012-01-18 Aldy Hernandez <aldyh@redhat.com>
22795
22796 * trans-mem.c (requires_barrier): Remove call to is_global_var.
22797
561ee8fc 227982012-01-18 Richard Guenther <rguenther@suse.de>
22799
22800 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
22801 of conversions to void *.
22802
4d18c297 228032012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22804 Richard Sandiford <rdsandiford@googlemail.com>
22805
22806 PR middle-end/50325
22807 PR middle-end/51192
22808 * optabs.h (simplify_expand_binop): Declare.
22809 * optabs.c (simplify_expand_binop): Make global.
22810 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
22811 endian targets if the source cannot be exactly covered by word
22812 mode chunks.
22813
2e851bb8 228142012-01-17 Jakub Jelinek <jakub@redhat.com>
22815
22816 PR bootstrap/51872
22817 * hard-reg-set.h (struct hard_reg_set_container): New type.
22818 * target.h (struct hard_reg_set_container): Forward declare.
22819 * target.def (set_up_by_prologue): New target hook.
22820 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
22821 * doc/tm.texi: Regenerated.
22822 * function.c (thread_prologue_and_epilogue_insns): Change
22823 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
22824 Call targetm.set_up_by_prologue on it.
22825 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
22826 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
22827
f35edb6f 228282012-01-17 Nick Clifton <nickc@redhat.com>
22829
22830 * config/rx/rx.c (rx_can_use_simple_return): New function.
22831 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
22832 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
22833
1211c450 228342012-01-17 Richard Guenther <rguenther@suse.de>
22835
22836 PR middle-end/51782
22837 * expr.c (expand_assignment): Take address-space information
22838 from the address operand of MEM_REF and TARGET_MEM_REF.
22839 (expand_expr_real_1): Likewise.
22840
59157d8c 228412012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22842
22843 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
22844 reload dump is requested.
22845
d6ded716 228462012-01-17 Aldy Hernandez <aldyh@redhat.com>
22847
22848 PR other/51165
22849 * trans-mem.c (requires_barrier): Call may_be_aliased.
22850
87af2d00 228512012-01-17 Jakub Jelinek <jakub@redhat.com>
22852
22853 PR tree-optimization/51877
22854 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
22855 call arguments and fndecls compare equal, instead return false if they
22856 don't. Return true only if lhs1 and lhs2 are either both NULL, or
22857 both SSA_NAMEs that are valueized the same, or they satisfy
22858 operand_equal_p.
22859
dfeb8a07 228602012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22861
22862 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
22863 Solaris 11+.
22864 * configure: Regenerate.
22865
4470b8f6 228662012-01-16 Jan Hubicka <jh@suse.cz>
22867
22868 PR c/12245
22869 PR c++/14179
22870 * convert.c (convert_to_integer): Use fold_convert for
22871 converting an INTEGER_CST to integer type.
22872
0ecef4a2 228732012-01-16 Jason Merrill <jason@redhat.com>
22874
22875 PR c++/14179
22876 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
22877
0c41699c 228782012-01-16 Jakub Jelinek <jakub@redhat.com>
22879
414bc417 22880 PR bootstrap/51860
22881 * config/s390/s390.c (s390_chunkify_start): Don't skip
22882 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
22883 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
22884 If insn is followed by NOTE_INSN_VAR_LOCATION or
22885 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
22886 Don't use location of note insns.
22887
0c41699c 22888 PR tree-optimization/51865
22889 * tree-inline.c (tree_function_versioning): Call remap_decl
22890 on DECL_RESULT whenever it has VOID_TYPE_P type.
22891
1f873db2 228922012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
22893
22894 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
22895 for calls to locally-binding MIPS16 functions if only the return
22896 type uses float regs.
22897
a657080a 228982012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
22899 Richard Sandiford <rdsandiford@googlemail.com>
22900
22901 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
22902 (SYMBOL_32_HIGH): Likewise.
22903 (mips_output_tls_reloc_directive): Declare.
22904 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
22905 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
22906 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
22907 (mips_lo_relocs, mips_hi_relocs): Make extern.
22908 (mips16_stub_function): Move up file.
22909 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
22910 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
22911 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
be83ebf7 22912 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
22913 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
a657080a 22914 (mips_get_tp): Add MIPS16 support.
22915 (mips_legitimize_tls_address): Remove MIPS16 sorry().
22916 Generalize DTPREL and TPREL handling.
22917 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
22918 Add MIPS16 TLS support.
22919 (mips_output_tls_reloc_directive): New function.
22920 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
22921 * config/mips/predicates.md (symbolic_operand_with_high)
22922 (tls_reloc_operand): New predicates.
22923 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
22924 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
22925 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
be83ebf7 22926 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
a657080a 22927 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
22928 (*tls_get_tp_mips16_call_<mode>): Likewise.
22929
75e237b7 229302012-01-15 Uros Bizjak <ubizjak@gmail.com>
22931
22932 PR rtl-optimization/51821
22933 * recog.c (peep2_find_free_register): Determine clobbered registers
22934 from insn pattern.
22935
9f42c829 229362012-01-14 Denis Chertykov <chertykov@gmail.com>
22937
22938 PR target/50925
22939 * config/avr/avr-protos.h: Revert change of 2012-01-09.
22940 * config/avr/avr.c: Likewise.
22941 * config/avr/avr.h: Likewise.
22942
3637bb87 229432012-01-13 Ian Lance Taylor <iant@google.com>
22944
22945 PR c++/50012
22946 * tree.h (TYPE_QUALS): Add cast to int.
22947 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
22948
981afcd0 229492012-01-13 Ian Lance Taylor <iant@google.com>
22950
22951 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
22952 comparing param_index to VEC_length result.
22953
13b67b5c 229542012-01-13 Steven Bosscher <steven@gcc.gnu.org>
22955
22956 * c-decl.c: Do not include tree-mudflap.h
22957 * tree-optimize.c: Likewise.
22958 * Makefile.in: Update dependencies.
22959
fc0c4d51 229602012-01-13 Richard Guenther <rguenther@suse.de>
22961
22962 PR middle-end/8081
22963 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
22964 variable-sized result always use RSO.
22965
df7f3935 229662012-01-12 DJ Delorie <dj@redhat.com>
22967
22968 * cfgexpand.c (convert_debug_memory_address): Allow any valid
22969 pointer type, not just the default pointer type.
22970
36b6158e 229712012-01-09 Richard Henderson <rth@redhat.com>
22972 Denis Chertykov <chertykov@gmail.com>
22973
22974 PR target/50925
22975 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
22976 * config/avr/avr.c (avr_can_eliminate): Simplify.
22977 (avr_initial_elimination_offset): Likewise.
22978 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
22979 (expand_epilogue): Likewise.
22980 (avr_legitimize_address): Gut.
22981 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
22982 (avr_hard_regno_nregs): New.
22983 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
22984 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
22985 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
22986 add soft frame pointer.
22987 (CALL_USED_REGISTERS): Likewise.
22988 (REG_CLASS_CONTENTS): Likewise.
22989 (REGISTER_NAMES): Likewise.
22990 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
22991 (HARD_FRAME_POINTER_REGNUM): New.
22992 (FRAME_POINTER_REGNUM): Use soft frame pointer.
22993 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
22994 remove the HARD_FRAME_POINTER self-elimination.
22995
4bdc263b 229962012-01-12 Georg-Johann Lay <avr@gjlay.de>
07b2ccdc 22997
22998 PR target/51756
22999 * config/avr/avr.c (avr_encode_section_info): Test for absence of
23000 DECL_EXTERNAL when checking for initializers of progmem variables.
23001
6175d24a 230022012-01-12 Ira Rosen <irar@il.ibm.com>
23003
23004 PR tree-optimization/51799
23005 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
23006 that the last operation is a type demotion.
23007
ad1f1582 230082012-01-12 Uros Bizjak <ubizjak@gmail.com>
23009
23010 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
23011 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
23012
45152a7b 230132012-01-11 Jakub Jelinek <jakub@redhat.com>
23014
23015 PR bootstrap/51796
23016 * combine.c (distribute_notes): If i3 is a noreturn call,
23017 allow old_size to be equal to args_size and make sure the
23018 noreturn call gets REG_ARGS_SIZE note.
23019 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
23020 on noreturn calls even when the delta is 0.
23021
93fcbf99 230222012-01-11 Nathan Sidwell <nathan@acm.org>
23023
23024 * gcov.c (STRING_SIZE): Remove.
23025 (generate_results): Erase annotations for source files with no
23026 coverage information.
23027 (read_line): New.
23028 (output_lines): Use it.
23029
7e3aae05 230302012-01-11 Eric Botcazou <ebotcazou@adacore.com>
23031
23032 * gimple.h (gimplify_body): Remove first argument.
23033 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
23034 pointer set here, instead just pass DATA to walk_tree.
23035 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
23036 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
23037 (unvisit_body): Likewise, but with unmark_visited.
23038 (gimplify_body): Remove BODY_P argument and adjust.
23039 (gimplify_function_tree): Adjust call to gimplify_body.
23040 * omp-low.c (finalize_task_copyfn): Likewise.
23041
7a3ec978 230422012-01-11 Eric Botcazou <ebotcazou@adacore.com>
23043
23044 * tree.h (build_function_decl_skip_args): Add boolean parameter.
23045 (build_function_type_skip_args): Delete.
23046 * tree.c (build_function_type_skip_args): Make static and add
23047 SKIP_RETURN parameter. Fix thinko in the handling of variants.
23048 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
23049 pass it to build_function_type_skip_args.
23050 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
23051 (tree_function_versioning): Likewise.
23052 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
23053 build_function_decl_skip_args.
23054 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
23055 and pass it to build_function_decl_skip_args/tree_function_versioning.
23056 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
23057 * ipa-inline-transform.c (save_inline_function_body): Likewise.
23058 * trans-mem.c (ipa_tm_create_version): Likewise.
23059 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
23060 * tree-inline.c (declare_return_variable): Remove always-true test.
23061 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
23062 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
23063 * ipa-split.c (split_function): Skip the return value for the split
23064 part if it doesn't return.
23065
aa2edcb9 230662012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23067
23068 PR tree-optimization/49642
23069 * ipa-split.c (forbidden_dominators): New variable.
23070 (check_forbidden_calls): New function.
23071 (dominated_by_forbidden): Likewise.
23072 (consider_split): Check for forbidden dominators.
23073 (execute_split_functions): Initialize and free forbidden
23074 dominators info; call check_forbidden_calls.
23075
7d0a3bab 230762012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
23077
23078 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
23079
301901d2 230802012-01-11 Nick Clifton <nickc@redhat.com>
23081
23082 * config/rx/rx.md (return): Define pattern.
23083
35cbef6c 230842012-01-11 Richard Guenther <rguenther@suse.de>
23085
23086 * doc/extend.texi (malloc attribute): Adjust according to
23087 implementation.
23088
3e426b86 230892012-01-10 Aldy Hernandez <aldyh@redhat.com>
23090 Patrick Marlier <patrick.marlier@gmail.com>
23091
23092 PR middle-end/51516
23093 * trans-mem.c (get_cg_data): Traverse aliases if requested.
23094 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
23095 (ipa_tm_note_irrevocable): Same.
23096 (ipa_tm_scan_irr_block): Same.
23097 (ipa_tm_decrement_clone_counts): Same.
23098 (ipa_tm_scan_irr_function): Same.
23099 (ipa_tm_create_version_alias): Same.
23100 (ipa_tm_create_version): Same.
23101 (ipa_tm_transform_calls_redirect): Same.
23102 (ipa_tm_transform_calls): Same.
23103 (ipa_tm_transform_transaction): Same.
23104 (ipa_tm_execute): Same.
23105
90e2341f 231062012-01-10 Richard Guenther <rguenther@suse.de>
23107
23108 PR middle-end/51806
23109 * opts.c (common_handle_option): Handle -Werror.
23110
42720af3 231112012-01-10 Andreas Schwab <schwab@linux-m68k.org>
23112
23113 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
23114 operand number.
23115
2e3ca6dd 231162012-01-10 Jason Merrill <jason@redhat.com>
23117
23118 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
23119 information.
23120
31d2f7ca 231212012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23122
23123 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
23124 supports R_386_TLS_GD_PLT reloc.
23125 (gcc_cv_as_ix86_tlsldmplt): Check if linker
23126 supports R_386_TLS_LDM_PLT reloc.
23127 * configure: Regenerate.
23128 * config.in: Regenerate.
23129
ed2541ea 231302012-01-10 Georg-Johann Lay <avr@gjlay.de>
23131
23132 PR target/49868
23133 Extend __pgmx semantics to linearize memory.
23134 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
23135 determine if code comes inline or from libgcc.
23136 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
23137 (movmem_qi, movmem_qi): Set constraint #2 to "n".
23138 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
23139 (movmemx_qi, movmemx_hi): New insns.
23140 (xload_<mode>_libgcc): Rewrite to new insn condition.
23141 (xload_<mode>): Remove insns.
23142 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
23143 cases that don't satisfy avr_xload_libgcc_p().
23144 (avr_addr_space_convert): Allow converting in any direction.
23145 (avr_addr_space_subset_p): Return always true.
23146 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
23147 (avr_emit_movmemhi): Ditto.
23148 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
23149 (avr_out_movmem): Ditto.
23150 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
23151 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
23152 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
23153 (avr_encode_section_info): Encode 'progmem' in symbol flags.
23154 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
23155
e97c4b0d 231562012-01-10 Richard Guenther <rguenther@suse.de>
23157
23158 PR tree-optimization/50913
23159 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
23160 Require data-refs to be representable by Graphite with respect
23161 to any loop nest.
23162
553c4d0b 231632012-01-10 Uros Bizjak <ubizjak@gmail.com>
23164
23165 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
23166 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
23167
e2ab608c 231682012-01-10 Tom de Vries <tom@codesourcery.com>
23169
abbecd80 23170 PR rtl-optimization/51271
e2ab608c 23171 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
23172 handling annulled branch.
23173
47ddcd6b 231742012-01-10 Richard Henderson <rth@redhat.com>
23175
553c4d0b 23176 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
47ddcd6b 23177 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
23178 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
23179 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
23180 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
23181 arm_expand_vec_perm_const): New.
23182 * config/arm/arm-protos.h: Update.
23183 * config/arm/neon.md (UNSPEC_VCONCAT): New.
23184 (*neon_vswp<VDQX>): New.
23185 (neon_vcombine<VDX>): Use neon_split_vcombine.
23186 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
23187 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
23188 (vec_perm<VE>): New.
23189
e1b93706 231902012-01-10 Richard Henderson <rth@redhat.com>
23191
23192 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
23193 use it if reload_completed.
23194 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
23195 arm_output_asm_insn, arm_process_output_memory_barrier,
23196 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
23197 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
23198 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
23199 arm_process_output_sync_insn, arm_output_sync_insn,
23200 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
23201 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
23202 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
23203 (emit_unlikely_jump): New.
23204 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
23205 (arm_split_atomic_op): New.
23206 * config/arm/arm-protos.h: Update.
23207 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
23208 (struct arm_sync_generator): Remove.
23209 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
23210 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
23211 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
23212 (VUNSPEC_LL, VUNSPEC_SC): New.
23213 (sync_result, sync_memory, sync_required_value, sync_new_value,
23214 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
23215 (attr length): Don't use arm_sync_loop_insns.
23216 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
23217 (movsfcc, movdfcc): Likewise.
23218 * config/arm/constraints.md (Ua): New.
23219 * config/arm/prediates.md (mem_noofs_operand): New.
23220 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
23221 (sync_clobber, sync_t2_reqd): Remove.
23222 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
23223 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
23224 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
23225 (arm_sync_compare_and_swap<SIDI>): Remove.
23226 (arm_sync_compare_and_swap<NARROW>): Remove.
23227 (arm_sync_lock_test_and_set<SIDI>): Remove.
23228 (arm_sync_lock_test_and_set<NARROW>): Remove.
23229 (arm_sync_new_<syncop><SIDI>): Remove.
23230 (arm_sync_new_<syncop><NARROW>): Remove.
23231 (arm_sync_new_nand<SIDI>): Remove.
23232 (arm_sync_new_nand<NARROW>): Remove.
23233 (arm_sync_old_<syncop><SIDI>): Remove.
23234 (arm_sync_old_<syncop><NARROW>): Remove.
23235 (arm_sync_old_nand<SIDI>): Remove.
23236 (arm_sync_old_nand<NARROW>): Remove.
23237 (*memory_barrier): Merge arm_output_memory_barrier.
23238 (atomic_compare_and_swap<QHSD>): New.
23239 (atomic_compare_and_swap<NARROW>_1): New.
23240 (atomic_compare_and_swap<SIDI>_1): New.
23241 (atomic_exchange<QHSD>): New.
23242 (cas_cmp_operand, cas_cmp_str): New.
23243 (atomic_op_operand, atomic_op_str): New.
23244 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
23245 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
23246 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
23247 (arm_load_exclusive<NARROW>): New.
23248 (arm_load_exclusivesi, arm_load_exclusivedi): New.
23249 (arm_store_exclusive<QHSD>): New.
23250
232512012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
ca8c55ac 23252
23253 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
23254 reload patterns if -mvsx-scalar-memory.
23255
23256 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
23257 generated, even -mno-vsx-scalar-double was used.
23258 (vsx_xscvdpsp_scalar): Likewise.
23259 (vsx_xscvspdp_scalar2): Likewise.
23260
5cbfefc3 232612012-01-09 Tom de Vries <tom@codesourcery.com>
23262 Andrew Pinski <apinski@cavium.com>
23263
abbecd80 23264 PR debug/51471
553c4d0b 23265 * reorg.c (fill_slots_from_thread): Don't speculate
23266 frame-related insns.
5cbfefc3 23267
018f0595 232682012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
23269
23270 * sched-int.h (bb_note): Move to...
23271 * basic-block.h: ...here.
23272 * haifa-sched.c (bb_note): Move to...
23273 * cfgrtl.c: ...here.
23274 * function.c (next_block_for_reg): New function.
23275 (move_insn_for_shrink_wrap): Likewise.
23276 (prepare_shrink_wrap): Rewrite to use the above.
23277
28098b5b 232782012-01-09 Aldy Hernandez <aldyh@redhat.com>
23279
23280 * gimple.c (is_gimple_non_addressable): Remove.
23281 * gimple.h: Remove is_gimple_non_addressable.
23282 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
23283 is_gimple_non_addressable.
23284 * trans-mem.c (expand_assign_tm): Same.
23285
f6093533 232862012-01-09 Richard Guenther <rguenther@suse.de>
23287
23288 PR tree-optimization/51775
23289 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
23290 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
23291
92409bbc 232922012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
23293
23294 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
23295 tuning parameters.
23296 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
23297
3f7685cd 232982012-01-09 Richard Guenther <rguenther@suse.de>
23299
23300 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
23301
e67e73bd 233022012-01-08 Jan Hubicka <jh@suse.cz>
23303
23304 PR tree-optimize/51680
3f7685cd 23305 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
23306 on when known_vals needs to be computed; cleanup.
e67e73bd 23307
7aedab82 233082012-01-08 Jan Hubicka <jh@suse.cz>
23309
23310 PR tree-optimize/51694
23311 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
23312
49dc2bdc 233132012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
23314
23315 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
23316 for -std=c++98 and -std=c++11 too.
23317
bf4b25d7 233182012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
23319
23320 * cfgloop.c (cancel_loop): Add free() of bbs array.
23321
5dcaa672 233222012-01-07 Jan Hubicka <jh@suse.cz>
23323
23324 PR tree-optimization/51600
23325 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
23326 that benefits small functions.
23327
233282012-01-07 Jan Hubicka <jh@suse.cz>
23329
23330 * ipa-inline.c (want_inline_small_function_p): Fix formating.
23331
a844747e 233322012-01-07 Jan Hubicka <jh@suse.cz>
23333
23334 PR tree-optimization/51680
23335 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
23336 whose inlining reduce unit size.
23337
c98120f0 233382012-01-07 Alexandre Oliva <aoliva@redhat.com>
23339
23340 PR bootstrap/51725
23341 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
23342 Add canonical node to containing_mem chain after the non-canonical
23343 one, even if there weren't any locs to propagate.
23344 (remove_useless_values): Keep only canonical values.
23345 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
23346 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
23347 canonicalize mem_chain elements that are not discarded.
23348
b9aec3f5 233492012-01-06 Jakub Jelinek <jakub@redhat.com>
23350
5c8ad8f5 23351 PR target/47333
23352 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
23353 before emitting functions.
23354
b9aec3f5 23355 PR gcov-profile/50127
23356 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
23357 clear_aux_for_blocks.
23358
29c70ce8 233592012-01-06 Alexandre Oliva <aoliva@redhat.com>
23360
23361 PR debug/51746
23362 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
23363
00ce46e2 233642012-01-06 Arnaud Charlet <charlet@adacore.com>
23365
23366 * c-decl.c (ext_block): Moved up.
23367 (collect_all_refs, for_each_global_decl): Take ext_block into account.
23368
36ddd5fe 233692012-01-06 Han Shen <shenhan@google.com>
23370
23371 Translate built-in include paths for sysroot.
23372 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
23373 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
23374
23375 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
23376 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
23377
23378 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
23379 control whether sysroot should be prepended to gxx include dir.
23380
23381 * configure: Regenerate.
23382
aa848e47 233832012-01-06 Torvald Riegel <triegel@redhat.com>
23384
23385 PR rtl-optimization/51771
553c4d0b 23386 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
aa848e47 23387 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
23388
89c7922d 233892012-01-05 Eric Botcazou <ebotcazou@adacore.com>
23390
23391 PR tree-optimization/51315
23392 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
23393 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
23394
7208667b 233952012-01-05 Uros Bizjak <ubizjak@gmail.com>
23396
23397 PR target/51681
23398 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
23399 for shrp pattern. Correctly handle and fixup shift variable.
23400 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
23401
27827244 234022012-01-05 Jakub Jelinek <jakub@redhat.com>
23403
23404 PR debug/51762
23405 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
23406 note when !ACCUMULATE_OUTGOING_ARGS.
23407
df8f94d5 234082012-01-05 Eric Botcazou <ebotcazou@adacore.com>
23409
23410 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
23411 condition.
23412 (extract_range_from_unary_expr_1): Avoid useless computations.
23413
180c5ea0 234142012-01-05 Jakub Jelinek <jakub@redhat.com>
23415
d7ff3ab6 23416 PR rtl-optimization/51767
23417 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
23418 of jump_block and add an extra edge for degenerated asm gotos.
23419
1aed71d6 23420 PR middle-end/51768
23421 * stmt.c (check_unique_operand_names): Don't ICE during error
23422 reporting if i is from labels chain.
23423
180c5ea0 23424 PR middle-end/44777
23425 * profile.c (branch_prob): Split bbs that have exit edge
23426 and need a fake entry edge too.
23427
753f2949 234282012-01-05 Jan Hubicka <jh@suse.cz>
23429
23430 PR middle-end/49710
23431 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
23432 unlooping loops.
23433
8a3acf3f 234342012-01-05 Richard Guenther <rguenther@suse.de>
23435
23436 PR lto/50490
23437 * tree-streamer-out.c (write_ts_optimization): New function.
23438 (streamer_write_tree_body): Call it.
23439 * tree-streamer-in.c (lto_input_ts_optimization): New function.
23440 (streamer_read_tree_body): Call it.
23441 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
23442
cbabc8eb 234432012-01-05 Jakub Jelinek <jakub@redhat.com>
23444
23445 PR middle-end/51761
7208667b 23446 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
cbabc8eb 23447 * gimplify.c (gimplify_cleanup_point_expr): Save and set
23448 in_cleanup_point_expr before gimplify_stmt call and restore it
23449 afterwards.
23450 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
23451 in_cleanup_point_expr is false.
23452
9ea022ce 234532012-01-05 Richard Guenther <rguenther@suse.de>
23454
23455 PR middle-end/51764
23456 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
23457 to c.opt.
23458 * toplev.c (process_options): Reject combining mudflap and LTO.
23459 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
23460
c91fedc5 234612012-01-05 Richard Guenther <rguenther@suse.de>
23462
23463 PR tree-optimization/51760
23464 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
23465 not VARYING.
23466 (bit_value_unop): Handle UNDEFINED operands.
23467 (bit_value_binop): Likewise.
23468
1b6c82cc 234692012-01-05 Georg-Johann Lay <avr@gjlay.de>
23470
23471 * config/avr/avr.c (avr_replace_prefix): Remove.
23472 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
23473 (avr_asm_function_rodata_section): Ditto.
23474 (avr_asm_select_section): Ditto.
23475
a7dcb2ba 234762012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
23477
23478 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
23479 insertion.
23480
d1a21c35 234812012-01-05 Jakub Jelinek <jakub@redhat.com>
23482
44e41ce0 23483 PR bootstrap/51648
23484 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
23485 calls that have any non-fake successor edges.
23486
d1a21c35 23487 PR debug/51746
23488 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
23489
d33fd0b7 234902012-01-04 Eric Botcazou <ebotcazou@adacore.com>
23491
23492 PR tree-optimization/51624
23493 * tree-sra.c (build_ref_for_model): When replicating a chain of
23494 COMPONENT_REFs, stop as soon as the offset would become negative.
23495
3003ad99 234962012-01-04 Jakub Jelinek <jakub@redhat.com>
23497
23498 PR debug/51695
23499 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
23500 in .debug_loc on the floor.
23501
79bdd1fe 235022012-01-04 Andrew Pinski <apinski@cavium.com>
23503
23504 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
23505
b7508909 235062012-01-04 Andrew Pinski <apinski@cavium.com>
23507 Adam Nemet <anemet@caviumnetworks.com>
23508
23509 * config/mips/mips.md (size): Add SI and DI.
23510 (SIZE): New mode attribute.
23511 (U): New code attribute.
23512 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
23513 (mips_lbux_<mode>): Delete.
23514 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
23515 (mips_lhx): Use gen_mips_lhx_extsi.
23516 (mips_lhx_<mode>): Delete.
23517 (mips_lwx): Delete.
23518 (mips_l<size>x): New expand.
23519 (mips_lwx_<mode>): Delete.
23520 (mips_l<GPR:size>x_<P:mode>): New pattern.
23521 (*mips_lw<u>x_<P:mode>_ext): Likewise.
23522 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
23523 * config/mips/mips.c (mips_lx_address_p): New function.
23524 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
23525 (dsp64): New availability predicate.
23526 (mips_builtins): Add an entry for __builtin_mips_ldx.
23527 * config/mips/mips.h (ISA_HAS_LBX): New define.
23528 (ISA_HAS_LBUX): Likewise.
23529 (ISA_HAS_LHX): Likewise.
23530 (ISA_HAS_LHUX): Likewise.
23531 (ISA_HAS_LWX): Likewise.
23532 (ISA_HAS_LWUX): Likewise.
23533 (ISA_HAS_LDX): Likewise.
23534 * doc/extend.texi (__builtin_mips_ldx): Document.
23535
ceb6185f 235362012-01-04 Tristan Gingold <gingold@adacore.com>
23537
23538 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
23539 when long pointers are used.
23540 * config.build (*-*-*vms*): Handle all OpenVMS targets.
23541 (alpha64-dec-*vms*, alpha*-dec-*vms*)
23542 (ia64-hp-*vms*): Remove.
23543 * config/vms/xm-vms64.h: Delete.
23544
ea580cf7 235452012-01-04 Aldy Hernandez <aldyh@redhat.com>
23546
23547 PR middle-end/51472
23548 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
23549
cb8ce878 235502012-01-04 Aldy Hernandez <aldyh@redhat.com>
23551
d449d792 23552 * opts.c (finish_options): Remove duplicate sorry.
cb8ce878 23553
300eddba 235542012-01-04 Aldy Hernandez <aldyh@redhat.com>
23555
23556 PR middle-end/51696
23557 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
23558 correctly.
23559
a6c23958 235602012-01-04 Richard Guenther <rguenther@suse.de>
23561
23562 PR middle-end/51750
23563 * tree.c (size_low_cst): New function.
23564 * tree.h (size_low_cst): Declare.
23565 * fold-const.c (fold_comparison): Use it to extract the low
23566 part of the POINTER_PLUS_EXPR offset.
23567
f4806884 235682012-01-04 Georg-Johann Lay <avr@gjlay.de>
23569
23570 Fix clearing ZERO_REG
23571 * config/avr/avr.md (cc): Add alternative "ldi".
23572 (movqi_insn): Use it in cc attribute.
23573 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
23574 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
23575 (output_reload_insisf): Use ZERO_REG to pre-clear register.
23576
ce94380e 235772012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23578
23579 * configure: Regenerate.
23580
b4c39a37 235812012-01-04 Richard Guenther <rguenther@suse.de>
23582
23583 PR tree-optimization/49651
23584 * tree-ssa-structalias.c (type_can_have_subvars): New function.
23585 (var_can_have_subvars): Use it.
7208667b 23586 (get_constraint_for_1): Only consider subfields if there can be any.
b4c39a37 23587
cdfa22f4 235882012-01-03 Jakub Jelinek <jakub@redhat.com>
23589
89159e31 23590 PR bootstrap/51725
7208667b 23591 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
23592 to its new canonical_cselib_val and the cselib_val was in
23593 first_containing_mem chain, but the canonical_cselib_val was not,
23594 add the latter into the chain.
89159e31 23595 (cselib_invalidate_mem): Compare canonical_cselib_val of
23596 addr_list chain elt with v.
23597
cdfa22f4 23598 PR pch/51722
23599 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
23600 dwarf2out_undef): Allocate e.info using ggc_strdup instead
23601 of xstrdup.
23602 (output_macinfo_op): Don't ggc_strdup fd->filename.
23603 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
23604 then ggc_strdup it. Don't free inc->info or cur->info.
23605 (output_macinfo): Don't free ref->info or file->info.
23606
2f630015 236072012-01-03 Ira Rosen <irar@il.ibm.com>
23608
23609 PR tree-optimization/51269
23610 * tree-vect-loop-manip.c (set_prologue_iterations): Make
23611 first_niters a pointer.
23612 (slpeel_tree_peel_loop_to_edge): Likewise.
23613 (vect_do_peeling_for_loop_bound): Update call to
23614 slpeel_tree_peel_loop_to_edge.
23615 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
23616 here. Remove it from the parameters list.
23617 (vect_do_peeling_for_alignment): Update calls and compute
23618 wide_prolog_niters.
23619
958ea92a 236202012-01-03 Richard Guenther <rguenther@suse.de>
23621
23622 PR tree-optimization/51070
23623 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
23624 Properly handle calls.
23625
af988fbc 236262012-01-03 Richard Guenther <rguenther@suse.de>
23627
23628 PR tree-optimization/51692
23629 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
23630 the LHS of allocation stmts.
23631
131e69c7 236322012-01-03 Olivier Hainque <hainque@adacore.com>
23633
23634 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
23635
e4e4eb40 236362012-01-03 Olivier Hainque <hainque@adacore.com>
23637
23638 * collect2.c (main): In AIX specific computations for vector
23639 insertions, use CONST_CAST2 to cast from char ** to const char **.
23640
e94f8cec 236412012-01-03 Richard Guenther <rguenther@suse.de>
23642
23643 PR debug/51650
23644 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
23645 the context of a limbo DIE when it does not already exist.
23646
1cd188fc 236472012-01-03 Jakub Jelinek <jakub@redhat.com>
23648
23649 PR tree-optimization/51719
23650 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
23651 but direct call is, clear direct call's lhs and don't add fallthrough
23652 edge from dcall_bb to join_bb and PHIs.
23653
fbee501c 236542012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23655
23656 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
23657 the instructions emitted by the pattern.
23658 ("*TDC_insn_<mode>"): Add comment.
23659
c8d7e3b9 236602012-01-03 Richard Guenther <rguenther@suse.de>
23661
23662 PR middle-end/51730
23663 * fold-const.c (fold_comparison): Properly canonicalize
23664 tree offset and HOST_WIDE_INT bit position.
23665
87f78f87 236662012-01-02 Uros Bizjak <ubizjak@gmail.com>
23667
23668 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
23669 operands for extzv pattern.
23670
e2b97531 236712012-01-02 Jakub Jelinek <jakub@redhat.com>
23672
23673 PR bootstrap/51725
23674 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
23675 on mem_elt first.
23676
9d1f0198 236772012-01-02 Sandra Loosemore <sandra@codesourcery.com>
23678
23679 * doc/invoke.texi (-flto and related options): Copy-edit.
23680
606b7c1d 236812012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
23682
87f78f87 23683 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
606b7c1d 23684
2cded00a 236852012-01-02 Jakub Jelinek <jakub@redhat.com>
23686
23687 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
23688 New patterns.
23689
8136e769 236902012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
23691
23692 * expr.h (move_by_pieces_ninsns): Declare.
23693 * expr.c (move_by_pieces_ninsns): Make external.
23694 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
23695 (mips_store_by_pieces_p): Likewise.
23696 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
23697 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
23698 * config/mips/mips.c (mips_move_by_pieces_p): New function.
23699 (mips_store_by_pieces_p): Likewise.
23700
364360b8 237012012-01-02 Jakub Jelinek <jakub@redhat.com>
23702
23703 * passes.c (register_one_dump_file): Free full_name.
23704
87f78f87 23705 * reload1.c (reload): Don't allocate reg_max_ref_width here.
364360b8 23706 (calculate_elim_costs_all_insns): Free offsets_at and
23707 offsets_known_at at the end and clear the pointers.
23708
5a1d0410 237092012-01-02 Georg-Johann Lay <avr@gjlay.de>
23710
23711 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
23712 this option introduced in r180739.
23713
b32bc361 237142012-01-02 Georg-Johann Lay <avr@gjlay.de>
23715
23716 PR target/51345
23717 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
23718 (tmake_file target=avr): Add avr/t-multilib.
23719
23720 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
23721 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
23722 * config/avr/genmultilib.awk: New file.
23723 * config/avr/t-multilib: New auto-generated file.
23724 * config/avr/multilib.h: New auto-generated file.
23725 * config/avr/t-avr (AVR_MCUS): New variable.
23726 (genopt.sh): Use it.
23727 (s-mlib): Depend on t-multilib.
23728 (t-multilib, multilib.h): New dependencies.
23729 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
23730 (MULTILIB_OPTIONS): Remove.
23731 (MULTILIB_MATCHES): Remove.
23732 (MULTILIB_DIRNAMES): Remove.
23733 (MULTILIB_EXCEPTIONS): Remove:
23734 * config/avr/genopt.sh: Don't use hard coded file name;
23735 pass AVR_MCUS from t-avr instead.
23736
8e8ae8d4 237372012-01-02 Georg-Johann Lay <avr@gjlay.de>
23738
23739 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
23740
83921eda 237412012-01-02 Georg-Johann Lay <avr@gjlay.de>
23742
23743 Implement light-weight DImode support.
23744 * config/avr/avr-dimode.md: New file.
23745 * config/avr/avr.md: Include it.
23746 (adjust_len): Add plus64, compare64.
23747 (HIDI): Remove code iterator.
23748 (code_stdname): New code attribute.
23749 (rotx, rotsmode): Remove DI.
23750 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
23751 as code iterator.
23752 * config/avr/avr-protos.h (avr_have_dimode): New.
23753 (avr_out_plus64, avr_out_compare64): New.
23754 * config/avr/avr.c (avr_out_compare): Handle DImode.
23755 (avr_have_dimode): New variable definition and initialization.
23756 (avr_out_compare64, avr_out_plus64): New functions.
23757 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
23758 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
23759 (avr_compare_pattern): Skip DImode comparisons.
23760
238c43ff 237612012-01-02 Revital Eres <revital.eres@linaro.org>
23762
23763 * ddg.c (def_has_ccmode_p): New function.
23764 (add_cross_iteration_register_deps,
23765 create_ddg_dep_from_intra_loop_link): Call it.
23766
0c0cdd6f 237672012-01-02 Richard Guenther <rguenther@suse.de>
23768
23769 PR other/51679
23770 * invoke.texi (fassociative-math): Remove spurious paranthesis.
23771
ea87e586 237722012-01-01 Jakub Jelinek <jakub@redhat.com>
23773
23774 * gcc.c (process_command): Update copyright notice dates.
23775 * gcov.c (print_version): Likewise.
23776 * gcov-dump.c (print_version): Likewise.
23777 * mips-tfile.c (main): Likewise.
23778 * mips-tdump.c (main): Likewise.
23779
a1123047 237802012-01-01 Ira Rosen <irar@il.ibm.com>
23781
23782 PR tree-optimization/51704
23783 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
87f78f87 23784 a use is inside the basic block or loop before accessing its vect info.
a1123047 23785
4d50c498 237862012-01-01 Jan Hubicka <jhjh@suse.cz>
23787
23788 PR rtl-optimization/51069
23789 * cfgloopmanip.c (remove_path): Removing path making irreducible
23790 region unconditional makes BB part of the region.
23791
3064bb7b 237922012-01-01 Jakub Jelinek <jakub@redhat.com>
23793
23794 PR tree-optimization/51683
23795 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
23796 calls with side-effects.
23797 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7dfbd804 23798\f
8dfa851a 23799Copyright (C) 2012 Free Software Foundation, Inc.
7dfbd804 23800
23801Copying and distribution of this file, with or without modification,
23802are permitted in any medium without royalty provided the copyright
23803notice and this notice are preserved.