]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
bdc1331d 12012-07-24 Steven Bosscher <steven@gcc.gnu.org>
2
3 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
4
0b66dd3d 52012-07-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6
7 PR target/54051
8 * config/arm/arm.c (arm_print_operand_address): Remove superfluous
9 printing of 0.
10 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
11 specifier.
12 ("neon_vld3_lane<mode>":VMQ): Likewise.
13 ("neon_vld3_dup<mode>":VDX): Likewise.
14 ("neon_vst3_lane<mode>":VD): Likewise.
15 ("neon_vst3_lane<mode>":VMQ): Likewise.
16
e62e9964 172012-07-24 Roland McGrath <mcgrathr@google.com>
18
0b66dd3d 19 * arm.c (arm_get_frame_offsets): Don't use fixed regs for
e62e9964 20 stack alignment padding.
21
12095e04 222012-07-24 Uros Bizjak <ubizjak@gmail.com>
23
24 PR target/53961
25 * config/i386/i386.c (ix86_legitimate_address_p): Move check for
26 negative constant address for TARET_X32 ...
27 (ix86_decompose_address): ... here. Reject constant addresses
28 that don't satisfy x86_64_immediate_operand predicate.
29
a9f3876a 302012-07-24 Julian Brown <julian@codesourcery.com>
31
12095e04 32 * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
a9f3876a 33
ecd52ea9 342012-07-24 Steven Bosscher <steven@gcc.gnu.org>
35
36 * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
37 Move test to check that there is a popcount function for the the number
38 of bits in SBITMAP_ELT_BITS to sbitmap.c.
39 * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
40 MEM_STAT_INFO): Define in terms of their ALONE counterparts.
41
42 * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
43 * configure: Regenerate.
44 * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
45 (GCC_MEM_STAT_ARGUMENTS): New define.
46 (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
47 (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
12095e04 48 (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
49 FINAL_PASS_MEM_STAT): Define.
ecd52ea9 50 * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
51 * ggc.h (ggc_record_overhead, ggc_free_overhead,
52 ggc_prune_overhead_list): Remove internal prototypes, they are defined
53 already in ggc-internal.h.
54 * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
55 wrappers.
56 (add_statistics): Likewise.
12095e04 57 (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
ecd52ea9 58 * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
59 wrappers around "survived" and "stats" members.
60 (alloc_large_page): Always initialize survived.
61 (ggc_internal_alloc_zone_stat): Likewise.
62 Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if
63 GATHER_STATISTICS is non-0.
64 (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
65 (sweep_pages): Always increase survived.
66 (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
67 (calculate_average_page_survival): Always define.
68 (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
69 (ggc_print_statistics): Likewise.
70 (ggc_pch_read): Likewise.
71 * ggc-page.c (struct globals): Always define "stats" member.
72 (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
73 (ggc_free): Likewise.
74 (ggc_collec): Likewise.
75 (ggc_print_statistics): Likewise.
76 * bitmap.h (struct bitmap_head_def): Always define "desc" member.
77 (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
78 * gimple.h (enum gimple_alloc_kind): Always define.
79 (gimple_alloc_kind): Likewise.
80 * tree-flow.h (phinodes_print_statistics): Always define.
81 (ssanames_print_statistics): Likewise.
82 * vec.h (vec_heap_free): Always define.
83 (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
84 * alloc-pool.c (alloc_pool_descriptor): Always define.
85 (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
86 (empty_alloc_pool): Likewise.
87 (pool_alloc): Likewise.
88 (pool_free): Likewise.
89 (dump_alloc_pool_statistics): Likewise.
90 (print_statistics): Always define.
91 * bitmap.c (struct bitmap_descriptor): Always define.
92 (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
93 (register_overhead): Always define.
94 (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
95 (bitmap_element_allocate): Likewise.
96 (bitmap_elt_clear_from): Likewise.
97 (bitmap_obstack_alloc_stat): Likewise.
98 (bitmap_gc_alloc_stat): Likewise.
99 (bitmap_obstack_free): Likewise.
100 (bitmap_find_bit): Likewise.
101 (bitmap_ior_and_into): Likewise.
102 (bitmap_print): Likewise.
103 (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
104 * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
105 (gimple_alloc_kind_names): Likewise.
106 (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
107 (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
108 * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
109 rtvec_alloc_sizes): Always define.
110 (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
111 (rtx_alloc_stat): Likewise.
112 (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
113 * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
114 tree_node_sizes, tree_node_kind_names): Always define.
115 (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
116 to if-code.
117 (type_hash_canon): Likewise.
118 (dump_tree_statistics): Likewise.
119 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
120 Always define.
121 (ssanames_print_statistics): Likewise.
122 (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
123 * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
124 (phinodes_print_statistics): Likewise.
125 (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
126 * vec.c (struct vec_descriptor): Always define.
127 (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
128 vec_descriptor, rester_overhead, free_overhead): Likewise.
129 (cmp_statistic): Likewise.
130 (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
131 (vec_heap_o_reserve_1): Likewise.
132 (dump_vec_loc_statistics): Likewise.
133
ed74aa44 1342012-07-24 Richard Guenther <rguenther@suse.de>
135
136 PR tree-optimization/53616
137 * tree-loop-distribution.c (ldist_gen): Do not change
138 partition ordering when merging partitions.
139
885d1f6b 1402012-07-24 Alan Modra <amodra@gmail.com>
141
142 PR target/53914
143 PR target/54009
144 * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
145 * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
146 Adjust all rs6000_legitimate_offset_address_p calls.
147 * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
148 (rs6000_secondary_reload_gpr): Declare.
149 (rs6000_legitimate_offset_address_p): Update prototype.
150 (rs6000_offsettable_memref_p): Delete.
151 (rs6000_secondary_reload_ppc64): Delete.
152 * config/rs6000/rs6000.c (address_offset): New function.
153 (mem_operand_gpr): Likewise.
154 (rs6000_legitimate_offset_address_p): Add worst_case param. When
155 not worst_case assume class of regs with least restrictive offsets.
156 Adjust all calls.
157 (legitimate_lo_sum_address_p): Simplify register mode tests.
158 (rs6000_legitimize_address): Likewise. Assume best case offset
159 addressing. Combine ELF and MACHO lo_sum code.
160 (rs6000_mode_dependent_address): Correct offset addressing limits.
161 (rs6000_offsettable_memref_p): Make static, add reg_mode param.
162 Use reg_mode to help rs6000_legitimate_offset_address_p.
163 (rs6000_secondary_reload): Use address_offset. Handle 32-bit multi
164 gpr load/store when offset too large.
165 (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
166 (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
167 * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
168 for gpr load/store. Order alternatives as r->Y,Y->r,r->r and
169 d->m,m->d,d->d. Correct size of gpr load/store.
170 (movdf_softfloat32): Use 'Y' constraint for gpr load/store. Order
171 alternatives.
172 (movti_ppc64): Likewise.
173 (movdi_internal32): Likewise. Also disparage fprs.
174 (movdi_mfpgpr, movdi_internal64): Likewise.
175 (movtf_internal): Use 'm' for fpr load/store. Order alternatives.
176 (movtf_softfloat): Order alternatives.
177 (extenddftf2_internal): Use 'm' and 'Y' for store.
178 (movti_power, movti_string): Use 'Y' for gpr load/store. Order.
179 (stack_protect_setdi, stack_protect_testdi): Likewise.
180 (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
181 (movdf_softfloat64): Likewise.
182 (reload_<mode>_store): Adjust reload_di_store to provide
183 reload_si_store as well.
184 (reload_<mode>_load): Likewise.
185
61af3583 1862012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
187
188 PR target/51244
189 * config/sh/predicates.md (general_movsrc_operand,
190 general_movdst_operand): Reject T_REG.
191 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
192 movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
193 Remove T_REG alternatives.
194 (*negtstsi): New insn.
195
83876aca 1962012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
197
198 PR target/53511
199 * config/sh/sh.md (mulsf3_ie): Delete.
200 (mulsf3_i4): Rename to mulsf3_i.
201 (mulsf3): Emit mulsf3_i insn.
202
8474a05b 2032012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
204
205 * config/sh/sh.md (addc1, subc1): Delete.
206 (adddi3_compact): Use addc instead of addc1.
207 (subdi3_compact): Use subc instead of subc1.
208
8c99863d 2092012-07-23 Uros Bizjak <ubizjak@gmail.com>
210
211 * config/i386/i386-protos.c (ix86_lea_outperforms): Remove prototype.
212 * config/i386/i386.c (ix86_lea_outperforms): Make static. Make
213 split_cost argument signed.
214 (ix86_avoid_lea_for_add): Cleanup.
215 (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
216 (ix86_avoid_lea_for_addr): Ditto. Make split_cost signed.
217 Use gen_lowpart instead of gen_rtx_SUBREG. Cleanup.
218
6272f519 2192012-07-23 Ulrich Weigand <ulrich.weigand@linaro.org>
220
221 * config/arm/arm.c (arm_reorg): Ensure all insns are split.
222
76f0a162 2232012-07-23 Uros Bizjak <ubizjak@gmail.com>
224
225 PR target/53961
226 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
227 * config/i386/i386.c (ix86_print_operand_address): Ditto.
228 (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
229 addresses. Prevent zero extensions of CONST_INT operands.
230
ecd52ea9 2312012-07-23 Steven Bosscher <steven@gcc.gnu.org>
34ad4b87 232
233 * sbitmap.h (struct int_list): Remove.
234 (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
235 Remove prototypes of non-existing function.
236 (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
237 sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
238 unused defines.
239 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
240 sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
241 * basic-block.h: ... here.
242 * sbitmap.c: Do not include basic-block.h.
243 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
244 sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
245 * cfganal.c: ... here.
246 * bt-load.c (compute_out, link_btr_uses): Update for above changes.
247 * gcse.c (compute_code_hoist_vbeinout): Likewise.
248 * lcm.c (compute_antinout_edge, compute_available): Likewise.
249 * Makefile.in: Fix sbitmap.o dependencies.
250
7f518cd8 2512012-07-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
252 Nick Clifton <nickc@redhat.com>
253
254 * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
255 * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
256 (unused) parameter to void *.
257
2aac21c5 2582012-07-23 Richard Guenther <rguenther@suse.de>
259
260 * tree-ssa-alias.c (dump_alias_info): Walk over local decls
261 instead of referenced vars.
262
ecd52ea9 2632012-07-23 Steven Bosscher <steven@gcc.gnu.org>
56b17dd7 264
265 * coverage.c: Refer to "notes file" instead of "graph file"
266 in all comments. Explain history of bbg prefix.
267 * gcov-io.h: Likewise.
268 * gcov.c: Likewise.
269 (find_source): Likewise in fnotice.
270 (read_graph_file): Likewise.
271 (read_count_file): Likewise.
272 * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file"
273 and "data file" explicitly in the explanation of the files.
274
ccbef2e3 2752012-07-22 Steven Bosscher <steven@gcc.gnu.org>
276
277 PR tree-optimization/53881
278 * tree-cfg.c (group_case_labels_stmt): Look up the basic block
279 for each label and compare them instead of labels.
280
3e7f455b 2812012-07-22 Steven Bosscher <steven@gcc.gnu.org>
282
76f0a162 283 * opts.c (common_handle_option): Do not set
3e7f455b 284 flag_value_profile_transformations for -fprofile-generate.
285 * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
286 (BB_TO_GCOV_INDEX): Remove.
287 (output_location): Don't use it.
288 (branch_prob): Likewise. Don't fiddle with the index of
289 ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks.
290 (find_spanning_tree):
291 * gcov.c (struct function_info): Document that blocks 0 and 1
292 are the entry resp. exit blocks in gcov, too, like in GCC itself.
293 (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
294 blocks identification.
295 (output_lines): Likewise.
296 * value-prof.c (gimple_value_profile_transformations): Do not
297 test flag_value_profile_transformations again.
298 (gimple_ic_transform): Take a gimple_stmt_iterator like all other
299 transformation functions.
300 (gimple_values_to_profile):
301 Don't test flag_value_profile_transformations
302 * tree-profile.c (tree_profiling): Assert that the cgraph is in
303 the CGRAPH_STATE_IPA_SSA state.
304 Do not set, or look at, after_tree_profile.
305 * function.h (struct function): Remove after_tree_profile bit.
306 * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
307 * tree-inline.c (initialize_cfun): Don't copy it.
308 * lto-streamer-out.c (output_struct_function_base): Don't stream it.
309 * lto-streamer-in.c (input_struct_function_base): Likewise.
310
5e3df43c 3112012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
312
313 * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
314 (SH_DYNAMIC_SHIFT_COST): Use it.
315 * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
316 (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
317 Add sanity check for input value. Add function description.
318 * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
319 lshrsi3_d): Use TARGET_DYNSHIFT.
320
cbb73f9d 3212012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
322
323 * config/sh/sh.md (negc): Delete expander.
324 (*negc): Rename insn to negc.
325
b411c06d 3262012-07-22 Uros Bizjak <ubizjak@gmail.com>
327
328 PR target/53961
329 * config/i386/i386.md (*lea): New insn pattern.
330 (*lea_1): Remove.
331 (*lea<mode>_2): Ditto.
332 (*lea_{3,4,5,6}_zext): Ditto.
333 * config/i386/constraints.md (j): Remove address constraint.
334 * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
335 of an address.
336 (ix86_print_operand_address): Handle SImode subreg of an address.
d2377452 337 (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
b411c06d 338
5baeff2b 3392012-07-22 Hans-Peter Nilsson <hp@axis.com>
340
341 Emit executable-stack note correctly for CRIS targets.
342 * config/cris/cris.c (cris_file_end): New function.
343 (TARGET_ASM_FILE_END): Define.
344
f9b43f50 3452012-07-22 Chung-Lin Tang <cltang@codesourcery.com>
346 Maxim Kuvyrkov <maxim@codesourcery.com>
347 NetLogic Microsystems Inc.
348
349 * config/mips/mips.c (mips_issue_rate): Handle XLP.
350 * config/mips/mips.md: Include xlp.md.
351 * config/mips/xlp.md: New file.
352
2ba3016c 3532012-07-21 Steven Bosscher <steven@gcc.gnu.org>
354
355 PR gcov-profile/32543
356 * profile.c (branch_prob): Update total_num_edges_instrumented and
357 report the number of edges to instrument.
358
923c30fe 3592012-07-21 Oleg Endo <olegendo@gcc.gnu.org>
360
361 * config/sh/sh.md: Correct comment regarding clrt and sett insns.
362
5c8affdc 3632012-07-21 Andrew Pinski <apinski@cavium.com>
364
365 * config/mips/mips.md (*popcountdi2_trunc): New pattern
366 to handle popcount of a truncation.
367
7378b7dc 3682012-07-21 Andrew Pinski <apinski@cavium.com>
369
370 * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
371 Add a bool argument.
372 * config/mips/mips.c (mips_block_move_straight): Update call to
373 mips_expand_ext_as_unaligned_load.
374 (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
375 Accept DImode dest when the width is that of SImode.
b411c06d 376 * config/mips/mips.md (extv): Update call to
7378b7dc 377 mips_expand_ext_as_unaligned_load.
378 (extzv): Likewise.
379
6bed0fe2 3802012-07-21 Andrew Pinski <apinski@cavium.com>
381
382 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
383 adjust_address.
384
408ae786 3852012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
386
387 * config/mips/mips.md (define_attr sync_*): Move before "type".
388 (define_attr "type"): New values "atomic" and "syncloop".
389 * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
390 Set "type" attribute.
391 * config/mips/generic.md (generic_atomic, generic_syncloop):
392 New reservations.
393 * gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
394 * gcc/config/mips/24k.md, gcc/config/mips/4130.md,
b411c06d 395 * gcc/config/mips/4k.md, gcc/config/mips/5400.md,
408ae786 396 * gcc/config/mips/5500.md, gcc/config/mips/5k.md,
b411c06d 397 * gcc/config/mips/7000.md, gcc/config/mips/74k.md,
408ae786 398 * gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
399 * gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
400 * gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
401 * gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
402
a762aed9 4032012-07-20 Oleg Endo <olegendo@gcc.gnu.org>
404
405 * config/sh/sh.md: Group and sort shift related patterns.
406 (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
407
bb787f66 4082012-07-20 Hans-Peter Nilsson <hp@axis.com>
409
410 * config/cris/cris.c (cris_asm_output_ident): Remove unused
411 local variables section_asm_op, size, buf.
412
2e4eb8f5 4132012-07-20 Pat Haugen <pthaugen@us.ibm.com>
414 Steven Bosscher <steven@gcc.gnu.org>
415 * config/rs6000/power4.md (power4-store-update): Fix reservation.
416 (power4-three): Likewise.
417
b7184168 4182012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
6cdd7279 419 Greta Yorsh <Greta.Yorsh@arm.com>
b7184168 420
6cdd7279 421 * config/arm/arm.c (arm_cortex_a15_tune): New tune.
422 * config/arm/arm-cores.def (cortex-a15): Use it.
b7184168 423
4a94ccf9 4242012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
6cdd7279 425 Greta Yorsh <Greta.Yorsh@arm.com>
426
427 * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
428 * config/arm/arm.c (arm_slowmul_tune): Initialize it.
429 (arm_fastmul_tune, arm_strongarm_tune): Likewise.
430 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
431 (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
432 (arm_fa726te_tune): Likewise.
4a94ccf9 433
24ccd9c6 4342012-07-20 Richard Guenther <rguenther@suse.de>
435
436 * tree-dfa.c (collect_dfa_stats): Simplify.
437 * tree-ssa-structalias.c (compute_may_aliases): Do not dump
438 referenced vars.
439 * cfgexpand.c (estimated_stack_frame_size): Walk over local
440 decls instead of referenced vars.
441 * tree-ssa.c (delete_tree_ssa): Simplify.
442 * tree-tailcall.c (find_tail_calls): Walk over local decls
443 instead of referenced vars.
444 (add_virtual_phis): Remove.
445 (tree_optimize_tail_calls_1): Instead mark the virtual operand
446 for renaming.
447
bec2cf98 4482012-07-20 Steven Bosscher <steven@gcc.gnu.org>
449
450 * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
451 (brief_dump_cfg): Update prototype to take flags argument.
452 (check_bb_profile): Remove prototype.
453 * tracer.c (tracer): Update brief_dump_cfg calls.
454 * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
455 Call dump_bb_info before and after the cfghook dump_bb. Terminate
456 the dump with a newline.
457 (dump_flow_info): Do not call check_bb_profile.
458 * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
459 (check_bb_profile): Make static. Take indent and flags arguments.
460 (dump_bb_info): Always dump loop depth. With TDF_DETAILS, call
461 check_bb_profile. Print one edge per line.
462 (brief_dump_cfg): Take a flags argument, and filter out
463 TDF_COMMENT and TDF_DETAILS.
464 * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
b411c06d 465 * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
466 dump_bb_info here, it is already called from dump_bb. Idem for
467 check_bb_profile.
bec2cf98 468 (dump_gimple_bb_footer): Likewise.
469 (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
470 avoid broken dumps for statement histograms.
471 (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do
472 not call pp_flush here, the buffer should be empty.
473 * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
474 * sched-vis.c (debug_bb_slim): Likewise.
475 * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
476 (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
477 (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
478 (dump_function_to_file): Do not call check_bb_profile on
479 ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
480 Use dump_bb instead of gimple_dump_bb.
481 (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
482 * passes.c (execute_function_dump): Always call print_rtl_with_bb
483 for RTL dumps.
484 * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
b411c06d 485 CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
486 bottom of each basic block.
bec2cf98 487
59da1bcd 4882012-07-20 Richard Guenther <rguenther@suse.de>
489
490 PR tree-optimization/54031
491 * tree-ssa-ccp.c (get_value_from_alignment): Use
492 get_pointer_alignment_1.
493
6a1933ed 4942012-07-20 Richard Guenther <rguenther@suse.de>
495
496 * tree-inline.c (add_local_variables): Remove check_var_ann
497 parameter and dead code.
498 (expand_call_inline): Adjust.
499 (tree_function_versioning): Likewise.
500
9ca77b08 5012012-07-20 Jakub Jelinek <jakub@redhat.com>
502
503 PR c++/28656
504 * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
505 of just the first one.
506
4083990a 5072012-07-20 Richard Guenther <rguenther@suse.de>
508
509 * builtins.c (get_object_alignment_2): Correct offset handling
510 when using type alignment of a MEM_REF kind base.
511
c6092377 5122012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
513
514 PR target/53877
515 * config/i386/lzcntintrin.h (_lzcnt_u32): New.
516 (_lzcnt_u64): Ditto.
517
9c103f9f 5182012-07-19 Eric Botcazou <ebotcazou@adacore.com>
519
520 * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
521
3aeff048 5222012-07-19 Eric Botcazou <ebotcazou@adacore.com>
523
524 * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
525 defining statement is a SSA name that occurs in abnormal PHIs.
526
cbcfd5e3 5272012-07-19 Eric Botcazou <ebotcazou@adacore.com>
528
529 * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
530 conversions.
531
30790040 5322012-07-19 Jakub Jelinek <jakub@redhat.com>
533
534 PR rtl-optimization/53942
535 * function.c (assign_parm_setup_reg): Avoid zero/sign extension
536 directly from likely spilled non-fixed hard registers, move them
537 to pseudo first.
538
835deb0f 5392012-07-19 Steve Ellcey <sellcey@mips.com>
540
541 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
542 MIPS16 mode.
543
d11043f9 5442012-07-19 Jason Merrill <jason@redhat.com>
545
546 PR debug/53235
547 * dwarf2out.c (get_die_parent): New.
548 (generate_type_signature): Use it.
549
d386876e 5502012-07-19 Richard Henderson <rth@redhat.com>
551
bd7ac405 552 * config/ia64/vect.md (smulv4hi3_highpart): New.
553 (umulv4hi3_highpart): New.
554 (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
555 (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
556 (udot_prodv8qi, sdot_prodv8qi): Remove.
557 (sdot_prodv4hi, udot_prodv4hi): Remove.
558 * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
559 * config/ia64/ia64-protos.h: Update.
560
82e76116 561 * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
562 vectors larger than UNITS_PER_WORD.
563
d386876e 564 * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
565 * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
566 dummy != CODE_FOR_nothing value.
567
7bc8959a 5682012-07-19 Uros Bizjak <ubizjak@gmail.com>
569
570 * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
571 * doc/tm.texi: Regenerate.
572 * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
573 * config/sh/sh.h (MODE_AFTER): Update.
574 * config/epiphany/epiphany.h (MODE_AFTER): Update.
575
d244d9de 5762012-07-19 Jakub Jelinek <jakub@redhat.com>
577
578 PR middle-end/54017
579 * tree-cfgcleanup.c (cleanup_omp_return): Remove.
580 (cleanup_tree_cfg_bb): Don't call it.
581 * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
582 handling.
583
bc22be57 5842012-07-19 Christian Bruel <christian.bruel@st.com>
585
586 PR target/54029
587 * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
588
43c92e0a 5892012-07-19 Richard Guenther <rguenther@suse.de>
7bc8959a 590 Eric Botcazou <ebotcazou@adacore.com>
43c92e0a 591
592 * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
593 about transition from invariant to known bits.
7bc8959a 594 (likely_value): Addresses with UNDEFINED components are UNDEFINED.
43c92e0a 595
76db2018 5962012-07-19 Richard Guenther <rguenther@suse.de>
597
598 PR tree-optimization/53970
7bc8959a 599 * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
600
8ad0b530 6012012-07-19 Tristan Gingold <gingold@adacore.com>
602 Richard Henderson <rth@redhat.com>
603
604 * opts.c (finish_options): Handle UI_SEH.
605 * expr.c (build_personality_function): Handle UI_SEH.
606 * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
607 * coretypes.h (unwind_info_type): Add UI_SEH.
608 * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
609 New function.
610 (i386_pe_seh_init_sections): Likewise.
611 * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
612 (TARGET_ASM_INIT_SECTIONS): Define.
613 * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
614 (i386_except_unwind_info): New function.
615
e876044e 6162012-07-18 Maciej W. Rozycki <macro@codesourcery.com>
617 Chao-ying Fu <fu@mips.com>
618
619 * config/mips/mips.opt (mmcu): New option.
7bc8959a 620 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
e876044e 621 _mips_mcu when TARGET_MCU.
622 (ASM_SPEC): Pass mcu options to the assembler.
623 * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
624
20fbb1f2 6252012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org>
626
7bc8959a 627 * config.gcc (v850-*-rtems*): New target.
628 * config/v850/rtems.h: New.
629 * config/v850/t-rtems: New.
20fbb1f2 630
6de100ef 6312012-07-18 Bill Schmidt <wschmidt@linux.ibm.com>
632
633 * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
634 of flags controlling optimization; add -ftree-slsr to list of flags
635 enabled by default at -O; add -fhoist-adjacent-loads to list of flags
636 enabled by default at -O2; add -fvect-cost-model to list of flags
637 enabled by default at -O3; document -fhoist-adjacent-loads and
638 -ftree-slsr.
639 * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
640 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
641 flag_tree_slsr.
642 * common.opt: Add -ftree-slsr with flag_tree_slsr.
643
5e3c6fec 6442012-07-18 Jie Zhang <jzhang918@gmail.com>
645 Julian Brown <julian@codesourcery.com>
646
7bc8959a 647 * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
5e3c6fec 648 (arm_size_rtx_costs): Likewise.
649 (neon_valid_immediate): Add a case for double 0.0.
650
4dfe9a2e 6512012-07-18 Andrew Stubbs <ams@codesourcery.com>
652 Mark Shinwell <shinwell@codesourcery.com>
653 Julian Brown <julian@codesourcery.com>
654
4dfe9a2e 655 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
656 (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
657 (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
658 (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
659 neon_type.
660 * config/arm/arm.md (neon_type): Update comment.
661
cfa724cf 6622012-07-18 Richard Guenther <rguenther@suse.de>
663
664 PR tree-optimization/53970
665 * tree.h (contains_packed_reference): Remove.
666 * expr.c (contains_packed_reference): Likewise.
667 * tree-vect-data-refs.c (not_size_aligned): New function.
668 (vector_alignment_reachable_p): Use it.
669 (vect_supportable_dr_alignment): Likewise.
670
3482bf13 6712012-07-18 Richard Guenther <rguenther@suse.de>
672
673 * tree.h (get_object_or_type_alignment): Remove.
674 * builtins.c (get_object_alignment_2): New function copied from
675 get_object_alignment_1. Take extra argument to indicate whether
676 we take the address of EXP. Rework to use type alignment information
677 if not, and return whether the result is an approximation or not.
678 (get_object_alignment_1): Wrap around get_object_alignment_2.
679 (get_pointer_alignment_1): Call get_object_alignment_2 indicating
680 we take the address.
681 (get_object_or_type_alignment): Remove.
682 * expr.c (expand_assignment): Call get_object_alignment.
683 (expand_expr_real_1): Likewise.
684
5ee2f881 6852012-07-18 Nick Clifton <nickc@redhat.com>
686
687 * doc/invoke.texi (ARM Options): Document -munaligned-access.
688
da2c752c 6892012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
690
691 * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
692 expander. Use arith_reg_dest predicate.
693 (rotldi3, rotrdi3): Remove constraints in expander.
694 (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
695 ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
696 insn_and_split.
697
df3032ff 6982012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
699
700 PR target/33135
701 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct
702 description.
5ee2f881 703 * config/sh/sh.c (sh_option_override): Do not change
df3032ff 704 flag_finite_math_only. Set TARGET_IEEE to complement of
705 flag_finite_math_only.
706 * doc/invoke.texi (SH options): Add mno-ieee. Correct description
707 of mieee and mno-ieee behavior.
708
35e5655c 7092012-07-18 Steven Bosscher <steven@gcc.gnu.org>
710
711 * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
712
5147ec07 7132012-07-18 Steven Bosscher <steven@gcc.gnu.org>
714
715 * dumpfile.h (TDF_COMMENT): New define.
716 * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
717 EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
718 EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
719 EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
720 Move to new file cfg-flags.h.
721 (enum cfg_edge_flags): New enum, using cfg-flags.h.
722 (EDGE_ALL_FLAGS): Compute value automatically.
723 (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
724 BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
725 BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
726 BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
727 BB_IN_TRANSACTION): Move to new file cfg-flags.h.
728 (enum bb_flags): Rename to cfg_bb_flags. Use cfg-flags.h.
729 (BB_ALL_FLAGS): New, compute value automatically.
730 (dump_bb_info): Update prototype.
731 (dump_edge_info): Update prototype.
732 * cfg-flags.h: New file.
733 * cfg.c (dump_edge_info): Take flags argument. Be verbose only if
734 TDF_DETAILS and not TDF_SLIM. Include cfg-flags.h for bitnames.
735 Check that the edge flags are within the range of EDGE_ALL_FLAGS.
736 (debug_bb): Update dump_bb call.
737 (dump_cfg_bb_info): Remove.
738 (dump_bb_info): New function. Use cfg-flags.h for bitnames.
739 Adjust verbosity using TDF_* flags. Check that the basic block flags
740 are within the range of BB_ALL_FLAGS.
741 (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
742 * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
743 first for consistency with other dump functions.
744 (dump_bb): Update prototype accordingly.
745 * cfghooks.c: Include dumpfile.h.
746 (verify_flow_info): Update dump_edge_info calls.
747 (dump_bb): Take a flags argument and pass it around.
748 Use dump_bb_info to dump common information about a basic block.
749 (dump_flow_info): Moved here from cfgrtl.c. Make IL agnostic.
750 (debug_flow_info): Moved here from cfgrtl.c.
751 * profile.c (is_edge_inconsistent): Update dump_bb calls.
752 * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
753 * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
754 print_rtl_slim_with_bb): Remove prototypes.
755 (dump_insn_slim): Adjust prototype to take a const_rtx.
756 (print_rtl_with_bb): Adjust prototype.
757 * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
758 * sched-vis.c (dump_insn_slim): Take a const_rtx.
759 (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
760 (print_rtl_slim_with_bb): Remove.
761 (print_rtl_slim): Rename to debug_rtl_slim. Print only insn info,
762 not basic block info (print_rtl_with_bb with TDF_SLIM should be used
763 for that. Prototype here near DEBUG_FUNCTION marker.
764 (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
765 Use dump_bb.
766 (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
767 * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
768 (remove_bb): Update dump_bb call.
769 (gimple_debug_bb): Use dump_bb.
770 (dump_function_to_file): Update gimple_dump_bb call.
771 (print_loops_bb): Likewise.
772 * tree-flow.h (gimple_dump_bb): Update prototype.
773 * gimple-pretty-print.c (dump_bb_header): Rename to
774 dump_gimple_bb_header. Write to a stream instead of a pretty
775 printer. Use dump_bb_info to dump basic block info.
776 (dump_bb_end): Rename to dump_gimple_bb_footer. Write to a
777 stream instead of a pretty printer. Use dump_bb_info.
778 (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
779 (gimple_dump_bb): Do it here with dump_gimple_bb_header and
780 dump_gimple_bb_footer.
781 * cfgrtl.c (rtl_dump_bb): Update prototype. Only dump DF if the
782 dump flags have TDF_DETAILS. Use dump_insn_slim if TDF_SLIM.
783 (print_rtl_with_bb): Take a flags argument and pass it around.
784 Use dump_insn_slim if TDF_SLIM.
785 (dump_bb_info): Removed and re-incarnated in cfg.c.
786 (dump_flow_info): Moved to cfghooks.c.
787 (debug_flow_info): Moved to cfghooks.c.
788 * passes.c (execute_function_dump): Unconditionally use
789 print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
790 * final.c (dump_basic_block_info): Update dump_edge_info calls.
791 * tree-vrp.c (dump_asserts_for): Likewise.
792 * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
793 * tree-if-conv.c (if_convertible_bb_p): Don't look at
794 EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
795 * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
796 for the same reason.
797 * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
798
35244493 7992012-07-17 Richard Guenther <rguenther@suse.de>
800
801 * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
802 vars here, use create_tmp_reg where appropriate.
803 (vect_create_addr_base_for_vector_ref): Do not add referenced
804 vars here, use create_tmp_reg where appropriate.
805 (vect_create_data_ref_ptr): Likewise.
806 (vect_create_destination_var): Likewise.
807 (vect_permute_store_chain): Likewise.
808 (vect_permute_load_chain): Likewise.
809 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
810 Likewise.
811 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
812 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
813 (vect_handle_widen_op_by_const): Likewise.
814 * tree-vect-stmts.c (vect_init_vector): Likewise.
815 (vectorizable_load): Likewise.
816
0354b362 8172012-07-17 Tom de Vries <tom@codesourcery.com>
818
819 * hwint.c: Fix loop range.
820
45105ae2 8212012-07-17 Tom de Vries <tom@codesourcery.com>
822
823 * double-int.h (double_int_popcount): New inline function.
824 * hwint.c (popcount_hwi): New function.
825 * hwint.h (popcount_hwi): Declare function. New inline function.
826
087dde2d 8272012-07-17 Richard Henderson <rth@redhat.com>
828
829 * tree-vect-stmts.c (supportable_widening_operation): Remove decl
830 parameters.
831 (vectorizable_conversion): Update supportable_widening_operation call.
832 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
833 (vect_recog_widen_shift_pattern): Likewise.
834 * tree-vectorizer.h: Update decl.
835
84a1059b 8362012-07-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
837 Ulrich Weigand <ulrich.weigand@linaro.org>
838
839 * common/config/arm/arm-common.c (arm_option_optimization_table):
840 Enable -fsched-pressure by default while optimizing.
841 * config/arm/arm.c (arm_option_override): Use the alternate scheduler
842 pressure algorithm by default.
843
05aca90b 8442012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
845
846 * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
847 (CONST_OK_FOR_I10): Move macro to ...
848 * config/sh/sh.c: ... here.
849 (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
850 CONST_OK_FOR_I06.
851
0bd67b20 8522012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
853
854 * config/sh/sh.md: Delete mov related define_peephole patterns.
855
02d6624a 8562012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com>
857
858 PR c++/53919
859 * doc/install.texi (Installing GCC): Refer to instructions for
860 released versions. Fix hyphenation.
861
3defb88e 8622012-07-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
863
864 * config/spu/spu.c (targetm): Move to bottom of file.
865 (spu_attribute_table): Likewise.
866 (spu_option_override, spu_init_builtins, spu_builtin_decl,
867 spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
868 spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
869 adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
870 frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
871 insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
872 get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
873 spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
874 spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
875 spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
876 spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
877 spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
878 spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
879 spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
880 spu_encode_section_info, spu_legitimize_address,
881 spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
882 spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
883 spu_addr_space_pointer_mode, spu_addr_space_address_mode,
884 spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
885 spu_section_type_flags, spu_select_section, spu_unique_section,
886 spu_trampoline_init, spu_conditional_register_usage,
887 spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
888 spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
889 spu_setup_incoming_varargs): Remove prototypes.
890 (spu_legitimize_address): Add "static" to definition.
891
a07e3d84 8922012-07-16 Jakub Jelinek <jakub@redhat.com>
893
894 * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
895
522f73a1 8962012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org>
897
898 * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
899 before calling gsi_stmt.
900
a204f062 9012012-07-16 Kirill Yukhin <kirill.yukhin@intel.com>
902
903 Revert
904 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
905
906 * config/i386/i386.md (stack_protect_set): Disable the pattern
907 for Android since Android libc (bionic) does not provide random
908 value for stack protection guard at gs:0x14. Guard value
909 will be provided from external symbol (default implementation).
910 (stack_protect_set_<mode>): Likewise.
911 (stack_protect_test): Likewise.
912 (stack_protect_test_<mode>): Likewise.
913
b62cafaa 9142012-07-16 H.J. Lu <hongjiu.lu@intel.com>
915
916 PR middle-end/53959
917 PR bootstrap/53963
918 * gimple.c (gimple_types_compatible_p_1): Restore type attribute
919 comparison.
920
955ef4c5 9212012-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
922
923 * opts.c (default_option): Add -fvect-cost-model to default options
924 at -O3 and above.
925
f0a18dd2 9262012-07-16 Steven Bosscher <steven@gcc.gnu.org>
927
928 * graphite-clast-to-gimple.c, graphite-dependences.c,
929 graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
930 for pass TODO flags.
931 * Makefile.in: Fix dependencies.
932
0aca815c 9332012-07-16 Steven Bosscher <steven@gcc.gnu.org>
934
4ecbba1a 935 * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
936 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
937
938 * function.c (stack_protect_epilogue): Use expand_call to expand
939 targetm.stack_protect_fail.
940 * stmt.c (expand_expr_stmt): Remove now-unused function.
941 * tree.h (expand_expr_stmt): Remove prototype.
942 * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
943 hook must return a CALL_EXPR.
944 * doc/tm.texi: Regenerate.
945
596ef494 946 * emit-rtl.c (emit_label_before): Do not allow the same label
7bc8959a 947 to be emitted twice.
596ef494 948 (emit_label_after): Likewise.
949 (emit_label): Likewise.
950
0aca815c 951 * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
952 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
953 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
954 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
955
b9ed1410 9562012-07-16 Steven Bosscher <steven@gcc.gnu.org>
957
958 * system.h (dump_file): Do not define.
959 * tree-pass.h: Include dumpfile.h, which is a new file containing...
960 (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
961 dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
962 dump_flag_name, dump_file, dump_flags, dump_file_name,
963 get_dump_file_info, struct dump_file_info): all of this, moved to...
964 * dumpfile.h: Here, new file.
965 * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
966 (dump_stmt): Remove prototype for C++ specific function.
967 (dump_enumerated_decls): Move prototype from here...
968 * tree-flow.h (dump_enumerated_decls): ... to here.
969 (get_ref_base_and_extent) Move prototype from here ...
970 * tree.h (get_ref_base_and_extent) ... to here.
971 * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
972 gimple-pretty-print.h is enough. Do not include tree-dump.h,
973 include timevar.h and dumpfile.h instead.
974 (struct numbered_tree_d, compare_decls_by_uid,
975 dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
976 * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
977 dump_enumerated_decls_push, dump_enumerated_decls):... to here.
978 Do not include timevar.h.
979 * tree.c: Do not include timevar.h.
980 * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
981 timevar.h.
982 (dump_cfg_stats): Use current_function_name.
983 (gimple_cfg2vcg): Likewise.
984 (dump_function_to_file): Likewise.
985 * df-scan.c: Do not include tree-pass.h and timevar.h.
986 Include dumpfile.h.
987 (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
988 use print_current_pass.
989 * df-problems.c: Include dumpfile.h.
990 Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
991 leads to errors in the code not selected.
992 (df_note_compute): Do not print_rtl_with_bb here. Fix compilation
993 bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
994 * lcm.c: Include dumpfile.h.
995 Remove obsolete include of insn-attr.h.
996 * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
997 missing probability notes.
998 * stmt.c: Include dumpfile.h.
999 (emit_case_decision_tree): Re-enable printing expand details only
1000 if TDF_DETAILS.
7bc8959a 1001 * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
1002 cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
1003 cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
1004 coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
1005 dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
1006 function.c, fwprop.c, gcse.c, gimple-fold.c,
1007 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
1008 gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
1009 graphite-dependences.c, graphite-interchange.c,
1010 graphite-optimize-isl.c, graphite-poly.c,
1011 graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
1012 ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
1013 ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
1014 ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
1015 jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
1016 loop-unroll.c, loop-unswitch.c, lower-subreg.c,
1017 lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
1018 mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
1019 plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
1020 print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
1021 regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
1022 sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
1023 store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
1024 tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
b9ed1410 1025 tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
7bc8959a 1026 tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
1027 tree-mudflap.c, tree-nrv.c, tree-object-size.c,
1028 tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
1029 tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
1030 tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
1031 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
1032 tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
1033 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
1034 tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
1035 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
1036 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
1037 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
1038 tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
1039 tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
1040 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
1041 tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
1042 tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
1043 tree-ssa-uncprop.c, tree-ssa-uninit.c,
1044 tree-switch-conversion.c, tree-tailcall.c,
1045 tree-vect-data-refs.c, tree-vect-loop.c,
1046 tree-vect-loop-manip.c, tree-vectorizer.c,
1047 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
b9ed1410 1048 tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
1049 only if needed. If tree-pass.h is included, do not include timevar.h
1050 and dumpfile.h. If tree-pass.h is not included but dump_file, or
1051 dump_flags, or the TDF_* flags are used, include dumpfile.h.
7bc8959a 1052 If gimple-pretty-print.h is included, don't include
1053 tree-pretty-print.h. Remove assorted unnecessary includes.
b9ed1410 1054
1055 * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
1056 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
1057 config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
1058 Include dumpfile.h.
1059 * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
1060 * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
1061 spu/t-spu-elf: Fix dependencies.
1062
60d535d2 10632012-07-16 Dehao Chen <dehao@google.com>
1064
1065 Revert
1066 2012-07-10 Dehao Chen <dehao@google.com>
1067
1068 * tree.h (phi_arg_d): New field.
1069 * tree-flow-inline.h (gimple_phi_arg_block): New function.
1070 (gimple_phi_arg_block_from_edge): New function.
1071 (gimple_phi_arg_set_block): New function.
1072 (gimple_phi_arg_has_block): New function.
1073 (redirect_edge_var_map_block): New function.
1074 * tree-flow.h (_edge_var_map): New field.
1075 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
1076 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
1077 redirect_edge_var_map_add.
1078 * tree-outof-ssa.c (_elim_graph): New field.
1079 (insert_partition_copy_on_edge): New parameter.
1080 (insert_value_copy_on_edge): New parameter.
1081 (insert_rtx_to_part_on_edge): New parameter.
1082 (insert_part_to_rtx_on_edge): New parameter.
1083 (elim_graph_add_edge): New parameter.
1084 (elim_graph_remove_succ_edge): New parameter.
1085 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
1086 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
1087 (new_elim_graph): Add block debug info.
1088 (clear_elim_graph): Likewise.
1089 (delete_elim_graph): Likewise.
1090 (elim_graph_add_node): Likewise.
1091 (elim_graph_add_edge): Likewise.
1092 (elim_graph_remove_succ_edge): Likewise.
1093 (eliminate_build): Likewise.
1094 (elim_forward): Likewise.
1095 (elim_unvisited_predecessor): Likewise.
1096 (elim_backward): Likewise.
1097 (elim_create): Likewise.
1098 (eliminate_phi): Likewise.
1099 (insert_backedge_copies): Likewise.
1100 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
1101 add_phi_arg.
1102 (rewrite_add_phi_arguments): Likewise.
1103 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
1104 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
1105 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
1106 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
1107 * tree-ssa-loop-manip.c (create_iv): Likewise.
1108 (add_exit_phis_edge): Likewise.
1109 (split_loop_exit_edge): Likewise.
1110 (copy_phi_node_args): Likewise.
1111 (tree_transform_and_unroll_loop): Likewise.
1112 * value-prof.c (gimple_ic): Likewise.
1113 (gimple_stringop_fixed_value): Likewise.
1114 * tree-tailcall.c (add_successor_phi_arg): Likewise.
1115 (eliminate_tail_call): Likewise.
1116 (create_tailcall_accumulator): Likewise.
1117 (tree_optimize_tail_calls_1): Likewise.
1118 * tree-phinodes.c (add_phi_arg): Likewise.
1119 (make_phi_node): Likewise.
1120 (resize_phi_node): Likewise.
1121 (remove_phi_arg_num): Likewise.
1122 * omp-low.c (expand_parallel_call): Likewise.
1123 (expand_omp_for_static_chunk): Likewise.
1124 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
1125 Likewise.
1126 (slpeel_update_phi_nodes_for_guard1): Likewise.
1127 (slpeel_update_phi_nodes_for_guard2): Likewise.
1128 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1129 (set_prologue_iterations): Likewise.
1130 (slpeel_tree_peel_loop_to_edge): Likewise.
1131 (vect_loop_versioning): Likewise.
1132 * tree-parloops.c (create_phi_for_local_result): Likewise.
1133 (transform_to_exit_first_loop): Likewise.
1134 (create_parallel_loop): Likewise.
1135 * ipa-split.c (split_function): Likewise.
1136 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
1137 (vect_create_epilog_for_reduction): Likewise.
1138 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
1139 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
1140 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1141 (cond_if_else_store_replacement_1): Likewise.
1142 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
1143 (remove_forwarder_block_with_phi): Likewise.
1144 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
1145 * tree-predcom.c (initialize_root_vars): Likewise.
1146 (initialize_root_vars_lm): Likewise.
1147 * sese.c (sese_add_exit_phis_edge): Likewise.
1148 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
1149 * tree-ssa.c (flush_pending_stmts): Likewise.
1150 (redirect_edge_var_map_add): Likewise.
1151 (ssa_redirect_edge): Likewise.
1152 * gimple-streamer-in.c (input_phi): Likewise.
1153 * tree-vect-stmts.c (vectorizable_load): Likewise.
1154 * tree-inline.c (copy_phis_for_bb): Likewise.
1155 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1156 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
1157 * tree-cfg.c (reinstall_phi_args): Likewise.
1158 (gimple_make_forwarder_block): Likewise.
1159 (add_phi_args_after_copy_edge): Likewise.
1160 (gimple_duplicate_sese_tail): Likewise.
1161
bf1c0af1 11622012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
1163
1164 * config/i386/i386.md (stack_protect_set): Disable the pattern
1165 for Android since Android libc (bionic) does not provide random
1166 value for stack protection guard at gs:0x14. Guard value
1167 will be provided from external symbol (default implementation).
1168 (stack_protect_set_<mode>): Likewise.
1169 (stack_protect_test): Likewise.
1170 (stack_protect_test_<mode>): Likewise.
1171
c2934ca7 11722012-07-16 Hans-Peter Nilsson <hp@axis.com>
1173
d5c0ec8e 1174 * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
1175 * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
1176 CONSTANT_P and cris_legitimate_address_p.
1177 * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
1178 (cris_preferred_reload_class): Don't return GENERAL_REGS as
1179 preferred to MOF_SRP_REGS.
bd503556 1180
102c21ad 1181 * config/cris/cris.c (cris_init_libfuncs): Handle initialization
1182 of library functions for basic atomic compare-and-swap.
1183 * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
bf4739e0 1184 * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
102c21ad 1185 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
1186 ("cris_atomic_fetch_<atomic_op_name><mode>_1")
1187 ("atomic_compare_and_swap<mode>")
bf4739e0 1188 ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
1189 TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
71b2d56a 1190 * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
1191 * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
1192 (atomic_op_op_pred): Ditto.
1193 (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
1194 reflect the change to include %2 in expansion. All callers changed.
1195 (qm3): New mode_attr.
1196 ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
7bc8959a 1197 as predicate for operand 2.
71b2d56a 1198 ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME. Use
1199 "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
1200 constraint for operand 2.
1201 ("atomic_compare_and_swap<mode>"): Add FIXME. Change predicate to
1202 nonmemory_operand for operand 3.
1203 ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
1204 exclude memory. Improve emitted sync code for v10 and v32. Use
1205 <qm3> instead of <m> for size designator for cmp.
1206 ("atomic_compare_and_swap<mode>"): Change predicate to
1207 nonmemory_operand for operand 3. Add FIXME.
b1df3e76 1208 ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
1209 constraints for operand 3 to exclude memory.
1210 ("atomic_fetch_<atomic_op_name><mode>")
c2934ca7 1211 ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
1212 calls on result of call to need_atomic_barrier_p.
1213
8ad8575f 12142012-07-15 Richard Sandiford <rdsandiford@googlemail.com>
1215
1216 * config/mips/mips.md (move_type): Replace mfhilo and mthilo
1217 with mflo and mtlo.
1218 (type): Split mfhilo into mfhi and mflo. Split mthilo into mthi
1219 and mtlo. Adjust move_type->type mapping.
1220 (may_clobber_hilo): Split mthilo into mthi and mtlo.
1221 (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
1222 (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
1223 (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
1224 instead of mthilo and mfhilo.
1225 (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
1226 (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
1227 * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
1228 (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
1229 Use mflo instead of mfhilo.
1230 * config/mips/10000.md (r10k_arith): Split mthilo.
1231 (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
1232 * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
1233 (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
1234 * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
1235 mthilo and mfhilo.
1236 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
1237 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
1238 Likewise.
1239 * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
1240 * config/mips/5400.md (ir_vr54_hilo): Likewise.
1241 * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
1242 * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
1243 * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
1244 * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
1245 * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
1246 * config/mips/generic.md (generic_hilo): Likewise.
1247 * config/mips/loongson2ef.md (ls2_alu): Likewise.
1248 * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
1249 * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
1250 (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
1251 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
1252 * config/mips/xlr.md (xlr_hilo): Likewise.
1253
81b46c0d 12542012-07-14 Andrew Stubbs <ams@codesourcery.com>
1255 Sandra Loosemore <sandra@codesourcery.com>
1256
1257 * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
1258
9235bedc 12592012-07-14 Uros Bizjak <ubizjak@gmail.com>
1260
1261 * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
1262 for TARGET_SSE.
1263
c2a65b90 12642012-07-14 Steven Bosscher <steven@gcc.gnu.org>
1265
1266 * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
1267
61b33788 12682012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
1269
1270 PR bootstrap/53955
1271 * config/spu/spu.c (spu_init_cost): Mark static.
1272 (spu_add_stmt_cost): Likewise.
1273 (spu_finish_cost): Likewise.
1274 (spu_destroy_cost_data): Likewise.
1275 * config/i386/i386.c (ix86_init_cost): Mark static.
1276 (ix86_add_stmt_cost): Likewise.
1277 (ix86_finish_cost): Likewise.
1278 (ix86_destroy_cost_data): Likewise.
1279 * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
1280 (rs6000_add_stmt_cost): Likewise.
1281 (rs6000_finish_cost): Likewise.
1282 (rs6000_destroy_cost_data): Likewise.
1283
bc6d217b 12842012-07-13 Steven Bosscher <steven@gcc.gnu.org>
1285
1286 * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
1287 ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
1288 ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
1289 ATTRIBUTE_MALLOC.
1290 * alloc-pool.h (pool_alloc): Likewise.
1291
1292 * final.c (final): Do not loop to find max_uid.
1293
e4fdf07d 12942012-07-13 Steven Bosscher <steven@gcc.gnu.org>
1295
1296 * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
1297 * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
1298
c9c17332 12992012-07-13 Richard Guenther <rguenther@suse.de>
1300
1301 PR tree-optimization/53907
1302 * tree-ssa-forwprop.c (associate_pointerplus): New function.
1303 (ssa_forward_propagate_and_combine): Call it.
1304
7d48cd66 13052012-07-13 Richard Guenther <rguenther@suse.de>
1306
1307 PR tree-optimization/53922
1308 * tree-vrp.c (value_inside_range): Change prototype to take
1309 min/max instead of value-range.
1310 (range_includes_zero_p): Likewise. Return the result from
1311 value_inside_range.
1312 (extract_range_from_binary_expr_1): Adjust to handle dont-know
1313 return value from range_includes_zero_p.
1314 (extract_range_from_unary_expr_1): Likewise.
1315 (compare_range_with_value): Likewise.
1316 (vrp_meet_1): Likewise.
1317
4db2b577 13182012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
1319
1320 * doc/tm.texi: Regenerate.
1321 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
1322 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
1323 (TARGET_VECTORIZE_FINISH_COST): Likewise.
1324 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
1325 * targhooks.c (default_init_cost): New function.
1326 (default_add_stmt_cost): Likewise.
1327 (default_finish_cost): Likewise.
1328 (default_destroy_cost_data): Likewise.
1329 * targhooks.h (default_init_cost): New decl.
1330 (default_add_stmt_cost): Likewise.
1331 (default_finish_cost): Likewise.
1332 (default_destroy_cost_data): Likewise.
1333 * target.def (init_cost): New DEFHOOK.
1334 (add_stmt_cost): Likewise.
1335 (finish_cost): Likewise.
1336 (destroy_cost_data): Likewise.
1337 * target.h (struct _stmt_vec_info): New extern decl.
1338 (stmt_vectype): Likewise.
1339 (stmt_in_inner_loop_p): Likewise.
1340 * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
1341 (stmt_vector_for_cost): New VEC/typedef.
1342 (add_stmt_info_to_vec): New function.
1343 (struct _slp_tree): Remove cost.inside_of_loop field.
1344 (struct _slp_instance): Remove cost.inside_of_loop field; add
1345 stmt_cost_vec field.
1346 (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
1347 (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
1348 (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
1349 (struct _vect_peel_extended_info): Add stmt_cost_vec field.
1350 (struct _loop_vec_info): Add target_cost_data field.
1351 (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
1352 (struct _bb_vec_info): Add target_cost_data field.
1353 (BB_VINFO_TARGET_COST_DATA): New accessor macro.
1354 (struct _stmt_vec_info): Remove cost.inside_of_loop field.
1355 (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
1356 (stmt_vinfo_set_inside_of_loop_cost): Remove function.
1357 (init_cost): New function.
1358 (add_stmt_cost): Likewise.
1359 (finish_cost): Likewise.
1360 (destroy_cost_data): Likewise.
1361 (vect_model_simple_cost): Change parameter list.
1362 (vect_model_store_cost): Likewise.
1363 (vect_model_load_cost): Likewise.
1364 (record_stmt_cost): New extern decl.
1365 (vect_get_load_cost): Change parameter list.
1366 (vect_get_store_cost): Likewise.
1367 * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
1368 (destroy_loop_vec_info): Call destroy_cost_data.
1369 (vect_estimate_min_profitable_iters): Remove old calculation of
1370 inside costs; call finish_cost instead.
1371 (vect_model_reduction_cost): Call add_stmt_cost instead of old
1372 inside-costs calculation.
1373 (vect_model_induction_cost): Likewise.
1374 * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
1375 return a stmt_vector_for_cost; modify calls to vect_get_load_cost
1376 and vect_get_store_cost to obtain the value to return.
1377 (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
1378 vect_get_data_access_cost and store it in the minimum peeling
1379 structure.
1380 (vect_peeling_hash_choose_best_peeling): Change the parameter list
1381 to add a (stmt_vector_for_cost *) output parameter, and set its value.
1382 (vect_enhance_data_refs_alignment): Ignore the new return value from
1383 calls to vect_get_data_access_cost; obtain stmt_cost_vec from
1384 vect_peeling_hash_choose_best_peeling and pass its contents to the
1385 target cost model.
1386 * tree-vect-stmts.c (stmt_vectype): New function.
1387 (stmt_in_inner_loop_p): Likewise.
1388 (record_stmt_cost): Likewise.
1389 (vect_model_simple_cost): Add stmt_cost_vec parameter; call
1390 record_stmt_cost instead of old calculation; don't call
1391 stmt_vinfo_set_inside_of_loop_cost.
1392 (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
1393 old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
1394 (vect_model_store_cost): Add stmt_cost_vec parameter; call
1395 record_stmt_cost instead of old calculation; add stmt_cost_vec
1396 parameter to vect_get_store_cost call; don't call
1397 stmt_vinfo_set_inside_of_loop_cost.
1398 (vect_get_store_cost): Add stmt_cost_vec parameter; call
1399 record_stmt_cost instead of old calculation.
1400 (vect_model_load_cost): Add stmt_cost_vec parameter; call
1401 record_stmt_cost instead of old calculation; add stmt_cost_vec
1402 parameter to vect_get_load_cost call; don't call
1403 stmt_vinfo_set_inside_of_loop_cost.
1404 (vect_get_load_cost): Add stmt_cost_vec parameter; call
1405 record_stmt_cost instead of old calculation.
1406 (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
1407 (vectorizable_conversion): Likewise.
1408 (vectorizable_assignment): Likewise.
1409 (vectorizable_shift): Likewise.
1410 (vectorizable_operation): Likewise.
1411 (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
1412 (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
1413 (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
1414 * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
1415 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
1416 (TARGET_VECTORIZE_FINISH_COST): Likewise.
1417 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
1418 (spu_init_cost): New function.
1419 (spu_add_stmt_cost): Likewise.
1420 (spu_finish_cost): Likewise.
1421 (spu_destroy_cost_data): Likewise.
1422 * config/i386/i386.c (ix86_init_cost): New function.
1423 (ix86_add_stmt_cost): Likewise.
1424 (ix86_finish_cost): Likewise.
1425 (ix86_destroy_cost_data): Likewise.
1426 (TARGET_VECTORIZE_INIT_COST): New macro def.
1427 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
1428 (TARGET_VECTORIZE_FINISH_COST): Likewise.
1429 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
1430 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
1431 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
1432 (TARGET_VECTORIZE_FINISH_COST): Likewise.
1433 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
1434 (rs6000_init_cost): New function.
1435 (rs6000_add_stmt_cost): Likewise.
1436 (rs6000_finish_cost): Likewise.
1437 (rs6000_destroy_cost_data): Likewise.
1438 * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
1439 (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
1440 (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
1441 stmt_cost_vec parameter to vect_model_store_cost and
1442 vect_model_simple_cost calls.
1443 (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
1444 parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
1445 vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
1446 calculating cost more than once for loads; remove inside_cost
1447 parameter from recursive vect_build_slp_tree calls; call
1448 record_stmt_cost instead of old calculation.
1449 (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
1450 the instance; free it on premature exit; remove inside_cost parameter
1451 from vect_build_slp_tree call; add stmt_cost_vec parameter to
1452 vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
1453 (new_bb_vec_info): Call init_cost.
1454 (destroy_bb_vec_info): Call destroy_cost_data.
1455 (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
1456 statement recorded with an SLP instance; call finish_cost instead of
1457 the old calculation.
1458 (vect_update_slp_costs_according_to_vf): Record statement costs from
1459 SLP instances, multiplying by the appropriate number of copies; don't
1460 update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
1461
0bb8b39a 14622012-07-13 Richard Guenther <rguenther@suse.de>
1463
1464 PR middle-end/53937
1465 * builtins.c (get_pointer_alignment_1): Handle constant
1466 pointers.
1467
cd734582 14682012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
1469 Steven Bosscher <steven@gcc.gnu.org>
1470 Bernd Schmidt <bernds@codesourcery.com>
1471
1472 PR rtl-optimization/53908
1473 * df-problems.c (can_move_insns_across): When doing
1474 memory-reference book-keeping, handle call insns.
1475
ca675b2e 14762012-07-13 Richard Guenther <rguenther@suse.de>
1477
1478 * gimple.c (gimple_types_compatible_p_1): Remove redundant
1479 type attribute comparisons.
1480 (gimple_canonical_types_compatible_p): Likewise.
1481
3b3b530a 14822012-07-12 Hans-Peter Nilsson <hp@axis.com>
1483
1484 PR rtl-optimization/53176
1485 * rtlanal.c (rtx_cost): Adjust default cost for X with a
1486 UNITS_PER_WORD factor for all X according to the size of
1487 its mode, not just for SUBREGs with untieable modes.
1488 Handle SET. Use factor * factor for MULT, DIV, UDIV,
1489 MOD, UMOD.
1490
adde45e8 14912012-07-12 Uros Bizjak <ubizjak@gmail.com>
1492
1493 * config/i386/i386.md (QImode and HImode cmove splitters): Merge
1494 QImode and HImode splitters. Use ix86_comparison_operator.
1495 Explicitly match FLAGS_REG.
1496 (DFmode cmove splitter): Explicitly match FLAGS_REG.
1497
88c5a1d1 14982012-07-11 Steven Bosscher <steven@gcc.gnu.org>
1499
1500 * expr.h (can_move_by_pieces): Move prototype from here ...
1501 * tree.h (can_move_by_pieces): ... to here.
1502 * optabs.h (set_widening_optab_handler): Use XCNEW.
1503 * gimplify.c: Do not include expr.h.
1504
1505 * toplev.c: Do not include dwarf2out.h.
1506 * config/ia64/ia64.c: Likewise.
1507 * config/sparc/sparc.c: Likewise.
1508 * config/sparc/t-sparc (sparc.o): Fix dependencies.
1509
1510 * Makefile.in (toplev.o): Fix dependencies
1511 (c-family/c-gimplify.o): Likewise.
1512 (c-family/c-common.o): Likewise.
1513
161dfa6e 15142012-07-11 Steven Bosscher <steven@gcc.gnu.org>
1515
1516 * basic-block.h (struct edge_def): Use basic_block instead of
1517 basic_block_def *.
1518 * cfgloop.h (struct loop_exit, struct loop): Likewise.
1519 * gengenrtl.c (type_from_format): Likewise. Also for 'tree'
1520 instead of union tree_node *.
1521 * rtl.h (union rtunion_def, emit_insn_before_noloc,
1522 emit_insn_after_noloc, add_insn_before, add_insn_after,
1523 debug_bb_slim): Likewise.
1524 * tree-inline.h (struct copy_body_data): Likewise.
1525 * sched-rgn.c (dump_region_dot): Likewise.
1526 * gimple.h (struct gimple_statement_base, gimple_set_bb,
1527 gsi_move_to_bb_end): Likewise.
1528 * sched-vis.c (debug_bb_slim): Likewise.
1529 (debug_bb_n_slim): Likewise.
1530 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
1531 (mn10300_block_contains_call):
1532
a7a9c5b4 15332012-07-11 Greta Yorsh <Greta.Yorsh@arm.com>
1534
1535 PR target/53859
1536 * config/arm/arm.c (arm_early_load_addr_dep): Handle new
1537 epilogue patterns.
1538
b1cd4fdd 15392012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com>
1540
1541 * doc/extend.texi (Namespace Association): Alter cautionary text.
1542
f5e4df50 15432012-07-10 Oleg Endo <olegendo@gcc.gnu.org>
1544
1545 PR target/53911
1546 * config/sh/sh.md: Remove displacement addresssing related splits.
1547
5680e508 15482012-07-10 Xinliang David Li <davidxl@google.com>
1549
1550 * doc/invoke.texi: New option documented.
1551 * flag-types.h: New enum type.
1552 * gimplify.c (gimplify_bind_expr): Control
1553 clobber generation with new option.
1554 (gimplify_target_expr): Ditto.
adde45e8 1555 * common.opt: New option.
5680e508 1556
b8d5d078 15572012-07-10 Julian Brown <julian@codesourcery.com>
1558
1559 * config/arm/arm.md (movsi): Don't split symbol refs here.
1560 (define_split): New.
1561
df47af5a 15622012-07-10 Andreas Schwab <schwab@linux-m68k.org>
1563
1564 PR bootstrap/53913
1565 * config/m68k/m68k.c (m68k_epilogue_uses): New.
1566 * config/m68k/m68k.h (EPILOGUE_USES): Use it.
1567 * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
1568
79a78f7f 15692012-07-10 Richard Henderson <rth@redhat.com>
1570
dc5ba181 1571 * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
1572 * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
1573 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
1574 * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
1575 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
1576 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
1577 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
1578 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
1579 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
1580 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
1581 (bdesc_args): Remove entries to match.
1582 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
1583 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
1584 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
1585 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
1586 (rs6000_builtin_mul_widen_odd): Remove.
1587 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
1588 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
1589 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
1590 (spu_builtin_mul_widen_odd): Remove.
1591 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
1592 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
1593 * doc/tm.texi.in: Don't document the removed hooks.
1594
04fb053a 1595 * tree-vect-stmts.c (supportable_widening_operation): Expand
1596 WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
1597
ebf4f764 1598 * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
1599 (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
1600 * optabs.c (can_mult_highpart_p): New.
1601 (expand_mult_highpart): New.
1602 * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
1603 * tree-vect-generic.c (expand_vector_operations_1): Don't expand
1604 by pieces if can_mult_highpart_p.
1605 (expand_vector_divmod): Use can_mult_highpart_p and always
1606 generate MULT_HIGHPART_EXPR.
1607 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
1608 * tree-vect-stmts.c (vectorizable_operation): Likewise.
1609
64cd118d 1610 * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
1611 (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
1612 * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
1613 (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
1614 (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
1615 (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
1616 * config/spu/spu-builtins.def: Update pattern names to match.
1617
151e7b5c 1618 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
1619 from altivec_vmuleub.
1620 (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
1621 (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
1622 (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
1623 (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
1624 (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
1625 (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
1626 (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
1627 * config/rs6000/rs6000-builtin.def: Update pattern names to match.
1628
d139d8ba 1629 * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
1630 avx2_umulv4siv4di3.
1631 (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
1632 (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
1633 (mulv4si3): Remove XOP test shadowed by SSE4 test.
1634 * config/i386/i386.c (bdesc_args): Update pattern names.
1635 (ix86_expand_sse2_mulvxdi3): Likewise.
1636 (ix86_expand_mul_widen_evenodd): Likewise. Remove XOP test
1637 shadowed by SSE4 test.
1638
79a78f7f 1639 * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
1640 * cfgexpand.c (expand_debug_expr): Handle them.
1641 * expr.c (expand_expr_real_2): Likewise.
1642 * fold-const.c (fold_binary_loc): Likewise.
1643 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
1644 * optabs.c (optab_for_tree_code): Likewise.
1645 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
1646 * tree-inline.c (estimate_operator_cost): Likewise.
1647 * tree-pretty-print.c (dump_generic_node): Likewise.
1648 * tree.c (commutative_tree_code): Likewise.
1649 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1650 Handle type change before looking up optab.
1651 * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
1652 (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
1653 (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
1654 (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
1655 * genopinit.c (optabs): Initialize them.
1656 * doc/md.texi: Document them.
1657
b82a98ee 16582012-07-10 Dehao Chen <dehao@google.com>
1659
1660 * tree.h (phi_arg_d): New field.
1661 * tree-flow-inline.h (gimple_phi_arg_block): New function.
1662 (gimple_phi_arg_block_from_edge): New function.
1663 (gimple_phi_arg_set_block): New function.
1664 (gimple_phi_arg_has_block): New function.
1665 (redirect_edge_var_map_block): New function.
1666 * tree-flow.h (_edge_var_map): New field.
adde45e8 1667 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
b82a98ee 1668 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
1669 redirect_edge_var_map_add.
1670 * tree-outof-ssa.c (_elim_graph): New field.
1671 (insert_partition_copy_on_edge): New parameter.
1672 (insert_value_copy_on_edge): New parameter.
1673 (insert_rtx_to_part_on_edge): New parameter.
1674 (insert_part_to_rtx_on_edge): New parameter.
1675 (elim_graph_add_edge): New parameter.
1676 (elim_graph_remove_succ_edge): New parameter.
1677 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
1678 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
1679 (new_elim_graph): Add block debug info.
1680 (clear_elim_graph): Likewise.
1681 (delete_elim_graph): Likewise.
1682 (elim_graph_add_node): Likewise.
1683 (elim_graph_add_edge): Likewise.
1684 (elim_graph_remove_succ_edge): Likewise.
1685 (eliminate_build): Likewise.
1686 (elim_forward): Likewise.
1687 (elim_unvisited_predecessor): Likewise.
1688 (elim_backward): Likewise.
1689 (elim_create): Likewise.
1690 (eliminate_phi): Likewise.
1691 (insert_backedge_copies): Likewise.
1692 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
1693 add_phi_arg.
1694 (rewrite_add_phi_arguments): Likewise.
1695 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
1696 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
1697 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
1698 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
1699 * tree-ssa-loop-manip.c (create_iv): Likewise.
1700 (add_exit_phis_edge): Likewise.
1701 (split_loop_exit_edge): Likewise.
1702 (copy_phi_node_args): Likewise.
1703 (tree_transform_and_unroll_loop): Likewise.
1704 * value-prof.c (gimple_ic): Likewise.
1705 (gimple_stringop_fixed_value): Likewise.
1706 * tree-tailcall.c (add_successor_phi_arg): Likewise.
1707 (eliminate_tail_call): Likewise.
1708 (create_tailcall_accumulator): Likewise.
1709 (tree_optimize_tail_calls_1): Likewise.
1710 * tree-phinodes.c (add_phi_arg): Likewise.
1711 (make_phi_node): Likewise.
1712 (resize_phi_node): Likewise.
1713 (remove_phi_arg_num): Likewise.
1714 * omp-low.c (expand_parallel_call): Likewise.
1715 (expand_omp_for_static_chunk): Likewise.
1716 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
1717 Likewise.
1718 (slpeel_update_phi_nodes_for_guard1): Likewise.
1719 (slpeel_update_phi_nodes_for_guard2): Likewise.
1720 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1721 (set_prologue_iterations): Likewise.
1722 (slpeel_tree_peel_loop_to_edge): Likewise.
1723 (vect_loop_versioning): Likewise.
1724 * tree-parloops.c (create_phi_for_local_result): Likewise.
1725 (transform_to_exit_first_loop): Likewise.
1726 (create_parallel_loop): Likewise.
1727 * ipa-split.c (split_function): Likewise.
1728 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
1729 (vect_create_epilog_for_reduction): Likewise.
1730 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
1731 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
1732 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1733 (cond_if_else_store_replacement_1): Likewise.
1734 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
1735 (remove_forwarder_block_with_phi): Likewise.
1736 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
1737 * tree-predcom.c (initialize_root_vars): Likewise.
1738 (initialize_root_vars_lm): Likewise.
1739 * sese.c (sese_add_exit_phis_edge): Likewise.
1740 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
1741 * tree-ssa.c (flush_pending_stmts): Likewise.
1742 (redirect_edge_var_map_add): Likewise.
1743 (ssa_redirect_edge): Likewise.
1744 * gimple-streamer-in.c (input_phi): Likewise.
1745 * tree-vect-stmts.c (vectorizable_load): Likewise.
1746 * tree-inline.c (copy_phis_for_bb): Likewise.
1747 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1748 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
1749 * tree-cfg.c (reinstall_phi_args): Likewise.
1750 (gimple_make_forwarder_block): Likewise.
1751 (add_phi_args_after_copy_edge): Likewise.
1752 (gimple_duplicate_sese_tail): Likewise.
1753
66bbc864 17542012-07-09 Oleg Endo <olegendo@gcc.gnu.org>
1755
1756 PR target/53886
1757 * config/sh/sh.c (sequence_insn_p): New function.
1758 (find_barrier, sh_insn_length_adjustment): Use it.
1759
988609f2 17602012-07-09 Iain Sandoe <iain@codesourcery.com>
1761
1762 PR target/53283
1763 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
1764 if defined.
1765 * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
1766 SUBTARGET_FOLD_BUILTIN.
1767 * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
1768 SUBTARGET_FOLD_BUILTIN.
1769
c60ecc90 17702012-07-09 Iain Sandoe <iain@codesourcery.com>
1771
1772 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
1773 runtime exceptions model setting from here ...
1774 * config/darwin.c (darwin_override_options): ... to here.
1775
b7d0690f 17762012-07-09 Steven Bosscher <steven@gcc.gnu.org>
1777
1778 PR tree-optimization/53887
1779 * tree-cfg.c (group_case_labels_stmt): Make non-static.
1780 * tree-flow.h (group_case_labels_stmt): Add prototype.
1781 * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
1782 to pre-process every switch.
1783
defd3e28 17842012-07-09 Jason Merrill <jason@redhat.com>
1785
1786 PR c++/53882
1787 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
1788 (type_hash_eq): Likewise.
1789
f87df69a 17902012-07-09 Tom de Vries <tom@codesourcery.com>
1791 Richard Guenther <rguenther@suse.de>
1792
1793 * tree-ssa-ccp.c (optimize_unreachable): New function.
1794 (execute_fold_all_builtins): Use optimize_unreachable to optimize
1795 BUILT_IN_UNREACHABLE. Don't optimize after BUILT_IN_UNREACHABLE.
1796
3a889482 17972012-07-09 Richard Guenther <rguenther@suse.de>
1798
1799 PR bootstrap/53898
1800 * graphite-optimize-isl.c: Make sure CU is not empty.
1801
5ab7f285 18022012-07-09 Steven Bosscher <steven@gcc.gnu.org>
1803
1804 * gensupport.c (init_rtx_reader_args_cb): Start counting code
1805 generating patterns from 1 to free up 0 for CODE_FOR_nothing.
1806 * gencodes.c (main): Give CODE_FOR_nothing the value 0. Add
1807 the LAST_INSN_CODE marker at the end.
1808 * genoutput.c (nothing): New static struct data.
1809 (idata): Initialize to &nothing.
1810 (idata_end): Initialize to &nothing.next.
1811 (init_insn_for_nothing): New function to create dummy 'nothing' insn.
1812 (main): Use it.
1813 * genpeep.c (insn_code_number): Remove global variable.
1814 (gen_peephole): Take it as an argument instead.
1815 (main): Take insn_code_number from read_md_rtx.
1816 * optabs.h: Revert r161809:
1817 (optab_handlers): Change type of insn_code back to insn_code.
1818 (optab_handler, widening_optab_handler, set_optab_handler,
1819 set_widening_optab_handler, convert_optab_handler,
1820 set_convert_optab_handler, direct_optab_handler,
1821 set_direct_optab_handler): Remove int casts.
1822 Revert to treating the insn_code field as "insn_code".
1823
c8378feb 18242012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
1825
1826 * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
1827 * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
1828 * config/sh/sh-protos.h: Declare it.
1829
62f13add 18302012-07-08 Steven Bosscher <steven@gcc.gnu.org>
1831
1832 * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
1833 (dump_fixup_graph): Use current_function_name.
1834 (adjust_cfg_counts): Likewise.
1835 * ira-conflicts.c: Do not include tree.h.
1836 (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
1837
dc1be6dd 18382012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
1839
1840 PR target/51244
1841 * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
1842
4a020a8c 18432012-07-08 Steven Bosscher <steven@gcc.gnu.org>
1844
1845 * basic-block.h: Re-group most prototypes per file.
1846 (struct edge_list): Remove num_blocks field.
1847 (dump_bb_info): Adjust prototypes.
1848 (dump_reg_info): Move prototype to regs.h.
1849 * function.h: Do not include tree.h.
1850 Include vec.h, vecir.h, input.h and machmode.h to compensate.
1851 (function_name): New prototype.
1852 * gimple.h: Include tree.h to compensate for basic-block.h change.
1853 * langhooks.h: Note that tree.h is only necessary for enum tree_code.
1854 * regs.h (dump_reg_info): Prototype here.
1855 * regset.h: Adjust file reference in comment.
1856 (debug_regset): Remove prototype.
1857 * rtl.h: Include flags.h for flag_var_tracking_assignments.
1858 (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
1859 instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
1860 (dump_reg_info, dump_flow_info): Remove prototypes.
1861 * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
1862 to here, the only user. Make static.
1863 (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
1864 * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
1865 flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
1866 tree-pass.h, cfgloop.h, and tree-flow.h.
1867 Include basic-block.h, the first header I'd expect to be included.
1868 (reg_obstack): Move to df-core.c.
1869 (free_edge): Remove bogus ATTRIBUTE_UNUSED.
1870 (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
1871 (redirect_edge_succ_nodup): Move to cfghooks.c.
1872 (dump_regset, debug_regset): Move to df-core.c.
1873 (dump_bb_info): Move to cfgrtl.c.
1874 (dump_reg_info): Move to regstat.c.
1875 (dump_flow_info): Move to cfgrtl.c.
1876 (debug_flow_info): Likewise.
1877 (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
1878 * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
1879 insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
1880 (flow_active_insn_p, forwarder_block_p, can_fallthru,
1881 could_fall_through): Move to cfgrtl.c.
1882 (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
1883 (create_edge_list): Do not set edge_list's removed num_blocks.
1884 (print_edge_list): Look at n_basic_blocks instead of num_blocks.
1885 (flow_nodes_print): Remove.
1886 (flow_edge_list_print): Remove.
1887 (inverted_post_order_compute): Use FOR_ALL_BB.
bec2cf98 1888 * cfgrtl.c (dump_flow_info): Moved from cfg.c.
4a020a8c 1889 Do not call dump_reg_info.
1890 (debug_flow_info): Moved from cfg.c
1891 (dump_bb_info): Moved from cfg.c. Take 'verbose' argument
1892 to avoid looking at TDF_* flags from tree-pass.h.
1893 (flow_active_insn_p, forwarder_block_p, can_fallthru,
1894 could_fall_through): Moved from cfganal.c.
1895 (print_rtl_with_bb): Adjust dump_bb_info calls.
1896 * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
1897 (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
1898 (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
1899 * cselib.c: Include tree.h with a FIXME.
1900 * df-core.c (reg_obstack): Moved from cfg.c.
1901 (dump_regset): Likewise.
1902 (debug_regset): Likewise. Make a DEBUG_FUNCTION.
1903 * final.c (compute_alignments): Call dump_reg_info before
1904 dump_flow_info.
1905 * function.c (function_name): New function.
1906 (current_function_name): Use it.
1907 * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
1908 dump_flow_info.
1909 * ira-conflicts.c: Include tree.h with a note.
1910 * regstat.c (dump_reg_info): Moved here from cfg.c.
1911 * loop-init.c: Include regs.h instead of hard-reg-set.h.
1912 (rtl_loop_init): Call dump_reg_info before dump_flow_info.
1913 (rtl_loop_done): Likewise.
1914 * mcf.c: Include tree.h before langhooks.h.
1915 * predict.c (maybe_hot_count_p): Assert we have cfun.
1916 (probably_never_executed_bb_p): Likewise.
1917 * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
1918 instead of dump_flow_info.
1919 * sched-deps.c: Include tree.h with a FIXME.
1920 (call_may_noreturn_p): Add FIXME note why this function has to
1921 look at function decls instead of function decl flags.
1922 * sched-vis.c: Include tree.h with a FIXME.
1923 (print_rtl_slim): Adjust dump_bb_info uses.
1924 * statistics.c (statistics_fini_pass_2): Use current_function_name
1925 to avoid including tree.h.
1926 (statistics_counter_event): Use function_name for the same reason.
1927 (statistics_histogram_event): Likewise.
1928 * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg
1929 instead of dump_flow_info.
1930 * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
1931 before dump_flow_info.
1932 * doc/cfg.texi: Update CFG documentation.
1933 * Makefile.in (RTL_H): Depend on FLAGS_H.
1934 (GIMPLE_H): Depend on TREE_H.
1935 (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
1936 but no longer on TREE_H.
1937 (C_COMMON_H): Depend on TREE_H.
1938 (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
1939 sched-deps.o, sched-vis.o): Fixup dependencies.
1940
50a8e74c 19412012-07-08 Steven Bosscher <steven@gcc.gnu.org>
1942
1943 * alias.h: Do not include coretypes.h in header files.
1944 * cppbuiltin.h: Likewise.
1945 * double-int.h: Likewise.
1946 * gimple-fold.h: Likewise.
1947 * flags.h: Likewise.
1948 * tree-ssa-alias.h: Likewise.
1949 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
1950 OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
1951 * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
1952 (TREE_H): Likewise.
1953 (ALIAS_H): Do not depend on coretypes.h.
1954 (FLAGS_H): Likewise.
1955 (realmpfr.o): Depend on coretypes.h.
1956
c833363a 19572012-07-08 Steven Bosscher <steven@gcc.gnu.org>
1958
1959 * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
1960 gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
1961
bffbb863 19622012-07-07 Richard Earnshaw <rearnsha@arm.com>
1963
1964 * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
1965 (TARGET_FPA): Delete definition.
1966 (TARGET_MAVERICK): Likewise.
1967 (TARGET_FPA_EMU2): Likewise.
1968 (arm_fp_model): Remove FPA and Maverick models.
1969 (arm_arch_cirrus): Delete declaration.
1970 (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
1971 (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize.
1972 (CALL_USED_REGISTERS): Likewise.
1973 (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
1974 (FIRST_VFP_REGNUM): Renumbered.
1975 (D7_VFP_REGNUM): Chain definition.
1976 (LAST_LO_VFP_REGNUM): Likewise.
1977 (FIRST_HI_VFP_REGNUM): Likewise.
1978 (LAST_HI_VFP_REGNUM): Likewise.
1979 (FIRST_IWMMXT_GR_REGNUM): Likewise.
1980 (LAST_IWMMXT_GR_REGNUM): Likewise.
1981 (FIRST_IWMMXT_REGNUM): Likewise.
1982 (LAST_IWMMXT_REGNUM): Likewise.
1983 (FRAME_POINTER_REGNUM): Renumbered.
1984 (ARG_POINTER_REGNUM): Renumbered.
1985 (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
1986 (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
1987 (HARD_REGNO_REGNUM): Remove FPA support.
1988 (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize.
1989 (reg_class): Likewise.
1990 (REG_CLASS_NAMES): Likewise.
1991 (REG_CLASS_CONTENTS): Likewise.
1992 (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment.
1993 (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
1994 (CLASS_MAX_NREGS): Remove FPA and Maverick support.
1995 * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
1996 Reorganize. Use AAPCS preferred names.
1997 (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update
1998 comments.
1999 (OVERLAPPING_REGISTER_NAMES): Update register numbering.
2000 * arm.c (FL_CIRRUS): Delete definition.
2001 (arm_arch_cirrus): Delete variable.
2002 (arm_float_words_big_endian): Delete function.
2003 (cirrus_memory_offset): Delete function.
2004 (output_mov_long_double_fpa_from_arm): Delete function.
2005 (output_mov_long_double_arm_from_fpa): Delete function.
2006 (output_mov_double_fpa_from_arm): Delete function.
2007 (output_mov_double_arm_from_fpa): Delete function.
2008 (emit_sfm): Delete function.
2009 (maybe_get_arm_condition_code): Update comment.
2010 (arm_file_start): Always use softvfp for softfloat systems.
2011 (thumb_core_reg_alloc_order): Adjust for updated register allocation.
2012 (arm_option_override): Remove FPA and Maverick support. Always
2013 default to vfp as the fallback FPU format.
2014 (use_return_insn): Remove FPA support.
2015 (arm_get_frame_offsets): Likewise.
2016 (arm_save_coproc_regs): Likewise.
2017 (arm_canonicalize_comparison): Remove Maverick support.
2018 (arm_select_cc_mode): Likewise.
2019 (arm_gen_compare_reg): Likewise.
2020 (arm_print_operand): Likewise.
2021 (arm_libcall_value_1): Remove FPA and Maverick support.
2022 (arm_function_value_regno_p): Likewise.
2023 (arm_apply_result_size): Likewise.
2024 (arm_legitimate_index_p): Likewise.
2025 (thumb2_legitimate_index_p): Likewise.
2026 (legitimize_reload_address): Likewise.
2027 (arm_register_move_cost): Likewise.
2028 (arm_hard_regno_mode_ok): Likewise.
2029 (arm_regno_class): Likewise.
2030 (arm_dbx_register_number): Likewise.
2031 (arm_emit_unwind_sequence): Likewise.
2032 (arm_conditional_register_usage): Likewise.
2033 * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
2034 (cirrus_memory_offset): Likewise.
2035 (output_move_long_double_fpa_from_arm): Likewise.
2036 (output_move_long_double_arm_from_fpa): Likewise.
2037 (output_move_double_fpa_from_arm): Likewise.
2038 (output_move_double_arm_from_fpa): Likewise.
2039 (arm_float_words_big_endian): Likewise.
2040 * arm.md (CC_REGNUM): Renumbered.
2041 (VFPCC_REGNUM): Moved here. Renumbered.
2042 (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
2043 (attr fpu): Remove FPA and Maverick support.
2044 * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md.
2045 * arm-cores.def (ep9312): Remove Maverick support.
2046 * arm-arches.def (ep9312): Delete architecture.
2047 * arm-tables.opt: Regenerated.
2048
2049 * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
2050
3a7ac8c6 20512012-07-07 Steven Bosscher <steven@gcc.gnu.org>
2052
2053 PR tree-optimization/53881
2054 * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
2055 comparing labels to establish uniqueness of a switch case target,
2056 use the CFG instead.
2057
7c4d4cbb 20582012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org>
2059
2060 * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
2061 due to negative shift amount.
2062
e8adf557 20632012-07-07 Hans-Peter Nilsson <hp@axis.com>
2064
2065 Fix configure test for "stack protector support in target C library".
2066 * configure.ac (test_prefix, test_exec_prefix): Move setting from
2067 inside sysroot handling to before and outside it.
2068 * configure: Regenerate.
2069
03870e31 20702012-07-06 Kai Tietz <ktietz@redhat.com>
2071
2072 PR bootstrap/52947
2073 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
2074 as "/mingw/include".
2075
89952baf 20762012-07-06 Alexandre Oliva <aoliva@redhat.com>
2077
2078 PR debug/53820
2079 * var-tracking.c (vt_add_function_parameter): Convert
2080 internal_arg_pointer into arg_pointer-based address even
2081 without DRAP.
2082
686d491a 20832012-07-06 Alexandre Oilva <aoliva@redhat.com>
2084
2085 PR rtl-optimization/53827
2086 PR debug/53671
2087 PR debug/49888
2088 * alias.c (memrefs_conflict_p): Adjust offset and size by the
2089 same amount for alignment ANDs.
2090
7ec657ff 20912012-07-06 Tom de Vries <tom@codesourcery.com>
2092
2093 PR tree-optimization/51879
2094 * tree-ssa-sccvn.c (copy_reference_ops_from_call)
2095 (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
2096 (visit_use): Also call visit_reference_op_call for calls with a vdef.
2097
39215e09 20982012-07-06 Tom de Vries <tom@codesourcery.com>
2099
2100 PR tree-optimization/52009
2101 * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
2102 value numbers of gimple_vdef.
2103 * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
2104 prototype.
2105 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
2106 (vn_reference_insert): Add and handle vdef parameter.
2107 (visit_reference_op_load): Add argument to vn_reference_insert call.
2108 (visit_reference_op_store): Find value number of vdef of store. Insert
2109 value number of vdef of store.
2110
35821c01 21112012-07-06 Uros Bizjak <ubizjak@gmail.com>
2112
2113 * config/i386/i386.md (simple lea to add peephole): Also transform
2114 RTXes where second PLUS operand matches output.
2115
e1bfea63 21162012-07-06 Uros Bizjak <ubizjak@gmail.com>
2117
2118 * config/i386/i386.c (construct_plt_address): Make static.
2119 * config/i386/i386-protos.h (construct_plt_address): Remove.
2120
b4d5791b 21212012-07-06 Nick Clifton <nickc@redhat.com>
2122
2123 * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
2124 default_encode_section_info.
2125
f2285eca 21262012-07-06 Uros Bizjak <ubizjak@gmail.com>
2127
e1bfea63 2128 PR target/53853
f2285eca 2129 * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
2130 emit PIC sequence for fnaddr symbol reference in advance.
2131
cc564d02 21322012-07-06 Eric Botcazou <ebotcazou@adacore.com>
2133
2134 Revert
2135 2012-06-14 Eric Botcazou <ebotcazou@adacore.com>
2136
2137 * dwarf2out.c (function_possibly_abstracted_p): New static function.
2138 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
2139 cgraph_function_possibly_inlined_p.
2140 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
2141 (process_scope_var): Do not emit concrete instances of abstracted
2142 nested functions from here.
2143 (gen_decl_die): Emit the abstract instance if the function is possibly
2144 abstracted and not only possibly inlined.
2145 (dwarf2out_finish): Find the first non-abstract parent instance and
2146 attach concrete instances on the limbo list to it.
2147
e71384dc 21482012-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2149 Julian Brown <julian@codesourcery.com>
2150
e1bfea63 2151 PR target/48941
2152 PR target/51980
2153 * config/arm/neon-gen.ml (return_by_ptr): Delete.
2154 (print_function): Handle empty strings.
2155 (return): Delete use of return_by_ptr.
2156 (mask_shape_for_shuffle): New function.
2157 (mask_elems): Likewise.
2158 (shuffle_fn): Likewise.
2159 (params): Simplify and remove use of return_by_ptr.
2160 (get_shuffle): New function.
2161 (print_variant): Update.
2162 * config/arm/neon.ml (rev_elems): New function.
2163 (permute_range): Likewise.
2164 (zip_range): Likewise.
2165 (uzip_range): Likewise.
2166 (trn_range): Likewise.
2167 (zip_elems): Likewise.
2168 (uzip_elems): Likewise.
2169 (trn_elems): Likewise.
2170 (features): New enumeration Use_shuffle. Delete ReturnPtr.
2171 (pf_su_8_16): New.
2172 (suf_32): New.
2173 (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
2174 * config/arm/arm_neon.h: Regenerate.
e71384dc 2175
69435ea2 21762012-07-05 Richard Guenther <rguenther@suse.de>
2177
2178 * tree-pretty-print.c (dump_generic_node): Properly test
2179 the result of exact_log2.
2180
daa87e5a 21812012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2182
2183 * config/s390/s390-protos.h (s390_expand_movmem)
2184 (s390_expand_cmpmem): Add return value.
2185 * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
2186 Return FALSE to use the library function in some cases.
2187 * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
2188 helper functions.
2189
fcddec9f 21902012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2191
2192 * config.gcc: Enable ifunc attribute by default on s390 and s390x.
2193
5e9ee578 21942012-07-05 Steven Bosscher <steven@gcc.gnu.org>
2195
2196 * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
2197 * stmt.c (dump_case_nodes): New.
2198 (expand_case): Split out code generation parts into new functions.
2199 (expand_switch_as_decision_tree_p): Split out from expand_case.
2200 (emit_case_decision_tree): Likewise.
2201 (emit_case_dispatch_table): Likewise.
2202
7c0baf23 22032012-07-05 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2204
2205 * config/arm/iterators.md (SDF): New mode iterator.
2206 (V_if_elem): Add support for SF and DF modes.
2207 (V_reg): Likewise.
2208 (F_constraint): New mode iterator attribute.
2209 (F_fma_type): Likewise.
2210 config/arm/vfp.md (fma<SDF:mode>4): New pattern.
2211 (*fmsub<SDF:mode>4): Likewise.
2212 (*fmnsub<SDF:mode>4): Likewise.
2213 (*fmnadd<SDF:mode>4): Likewise.
2214
45e9f803 22152012-07-04 Uros Bizjak <ubizjak@gmail.com>
2216
2217 * expmed.c (expand_mult): Initialize coeff and is_neg.
2218
392e1ee8 22192012-07-04 Oleg Endo <olegendo@gcc.gnu.org>
2220
2221 * config/sh/predicates.md (zero_extend_operand): New predicate.
2222 * config/sh/sh.md (zero_extendhisi2): Simplify by using new
2223 zero_extend_operand predicate.
2224 (zero_extendqisi2): Likewise.
2225
b3df2fb9 22262012-07-04 Uros Bizjak <ubizjak@gmail.com>
2227
2228 PR middle-end/53321
2229 * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
2230 to not call cgraph_propagate_frequency if something was changed.
2231
80a91f5b 22322012-07-04 Richard Guenther <rguenther@suse.de>
2233
2234 PR middle-end/53433
2235 * gimple-fold.c (get_base_constructor): Do not return an
2236 error_mark_node DECL_INITIAL.
2237
48089971 22382012-07-04 Richard Guenther <rguenther@suse.de>
2239
2240 PR tree-optimization/53844
2241 * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
2242 the loop virtual PHI.
2243
f31a6f35 22442012-07-04 Richard Guenther <rguenther@suse.de>
2245
2246 PR tree-optimization/53849
2247 * tree-cfg.c (move_stmt_op): Only call add_referenced_var
2248 for duplicated locals. Use add_referenced_var_1 to avoid
2249 pushing/popping cfun.
2250
29b4b219 22512012-07-04 Kai Tietz <ktietz@redhat.com>
2252
2253 * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
2254 * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
2255 prototype.
2256 * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
2257 as i386_pe_reloc_rw_mask.
2258
61523a35 22592012-07-04 Richard Guenther <rguenther@suse.de>
2260
2261 * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
2262 as in free_lang_data_in_type.
2263
89049f25 22642012-07-04 Tobias Grosser <tobias@grosser.es>
b3df2fb9 2265 Michael Matz <matz@suse.de>
89049f25 2266
2267 * Makefile.in (OBJS): Add graphite-optimize-isl.o.
2268 (graphite-optimize-isl.o): Add dependencies.
2269 * common.opt (floop-nest-optimize): New flag.
2270 * doc/invoke.texi (floop-nest-optimize): Document.
2271 * graphite-dependences.c (compute_deps): Export.
2272 * graphite-poly.h (compute_deps): Declare.
2273 * graphite-optimize-isl.c: New file.
2274 * graphite-poly.c (apply_poly_transforms): Run the loop
2275 nest optimizer.
2276 * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
2277 if -floop-nest-optimize is enabled.
2278
48d72ad2 22792012-07-03 Oleg Endo <olegendo@gcc.gnu.org>
2280
2281 * config/sh/predicates.md (logical_and_operand): New predicate.
2282 * config/sh/constraints.md (Jmb, Jmw): New constraints.
2283 * config/sh/sh.md (andsi3): Move expander above insns. Add handling
2284 of 0xFFFF constant. Use logical_and_operand predicate and
2285 satisfies_constraint_Jmb, satisfies_constraint_Jmw.
2286 (*andsi3_compact): Make it an insn_and_split. Use
2287 logical_and_operand predicate. Add Jmb,Jmw alternatives.
2288
e30361c6 22892012-07-03 Jason Merrill <jason@redhat.com>
2290
2291 PR c++/53826
2292 * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
2293
6f3836d6 22942012-07-03 Nick Clifton <nickc@redhat.com>
2295
2296 * config/mep/mep.c (mep_reorg_regmove): Use
2297 next_nonnote_non_debug_insn to advance to the next insn. Do not
2298 expect delete_insn to return an rtx.
2299
fdb86f97 23002012-07-03 Richard Guenther <rguenther@suse.de>
2301
2302 * doc/install.texi (CLooG): Clarify how CLooG needs to be
2303 configured and that it needs to be built against ISL 0.10.
2304
e4304ad1 23052012-07-03 Uros Bizjak <ubizjak@gmail.com>
2306
2307 * config/i386/i386.c (ix86_option_override_internal): Fix wrong
2308 code model string in the error message.
2309
f3e7bab4 23102012-07-03 Uros Bizjak <ubizjak@gmail.com>
2311
2312 PR target/53811
2313 * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
2314 sibcall_insn_operand. Move it to a temporary register if not.
2315
d229c219 23162012-07-03 Andreas Schwab <schwab@linux-m68k.org>
2317
2318 PR target/28896
2319 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
2320 if !TARGET_68020.
2321
44bfcc4f 23222012-07-03 Uros Bizjak <ubizjak@gmail.com>
2323
2324 * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
2325
948e3eac 23262012-07-03 Roland McGrath <mcgrathr@google.com>
2327
2328 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
2329 assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
2330 * configure: Regenerated.
2331 * config/i386/i386.md (simple_return_internal_long): Use %;
2332 (ctz<mode>2): Likewise.
2333 (*pause): Likewise.
2334
a6be7821 23352012-07-02 Oleg Endo <olegendo@gcc.gnu.org>
2336
2337 PR target/51244
2338 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
2339 predicates.
2340 * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
2341 * config/sh/sh.c (get_t_reg_rtx): New function. Use it when invoking
2342 gen_branch_true and gen_branch_false.
2343 * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
2344 gen_branch_false.
2345 (branch_true, branch_false): Use t_reg_operand predicate.
2346 (*branch_true, *branch_false): Delete.
2347 (movt): Use t_reg_operand predicate.
2348 (*negnegt): Use negt_reg_operand predicate and fold little and big
2349 endian variants.
2350 (*movtt): Use t_reg_operand and fold little and big endian variants.
2351 (*movt_qi): Delete.
2352
78b7a675 23532012-07-02 Steven Bosscher <steven@gcc.gnu.org>
2354
2355 * stmt.c (emit_case_bit_tests): Remove.
2356 (expand_case): Remove expand_switch_using_bit_tests_p code.
2357 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
2358 (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
2359 (lshift_cheap_p): Likewise.
2360 (expand_switch_using_bit_tests_p): Likewise.
2361 (struct case_bit_test): Likewise.
2362 (case_bit_test_cmp): Likewise.
2363 (emit_case_bit_tests): New implementation for GIMPLE.
2364 (gen_inbound_check): Do not release post-dominator info here.
2365 (process_switch): Reorder code. Expand as bit tests if it
2366 looks like a win.
948e3eac 2367 (do_switchconv): Release post-dominator info here if something changed.
78b7a675 2368 (struct gimple_opt_pass): Verify more.
2369 * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
2370
7c33163b 23712012-07-02 Martin Jambor <mjambor@suse.cz>
2372
2373 PR middle-end/38474
2374 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
2375 dynamic type change check.
2376
87e20041 23772012-07-02 Richard Guenther <rguenther@suse.de>
948e3eac 2378 Michael Matz <matz@suse.de>
2379 Tobias Grosser <tobias@grosser.es>
2380 Sebastian Pop <sebpop@gmail.com>
87e20041 2381
2382 * Makefile.in: Remove PPL flags in favor of ISL ones.
2383 (BACKENDLIBS): Remove PPL libs.
2384 (INCLUDES): Remove PPL includes in favor of ISL ones.
2385 (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
2386 graphite-cloog-compat.h dependencies.
2387 (graphite-dependences.o): Likewise.
2388 (graphite-poly.o): Likewise.
2389 * configure.ac: Declare ISL vars instead of PPL ones.
2390 * configure: Regenerated.
948e3eac 2391 * doc/install.texi: Replace PPL requirement documentation with ISL one.
87e20041 2392 * graphite-blocking.c: Remove PPL code, add ISL equivalent.
2393 * graphite-clast-to-gimple.c: Likewise.
2394 * graphite-dependences.c: Likewise.
2395 * graphite-interchange.c: Likewise.
2396 * graphite-poly.h: Likewise.
2397 * graphite-poly.c: Likewise.
2398 * graphite-sese-to-poly.c: Likewise.
2399 * graphite.c: Likewise.
2400 * graphite-scop-detection.c: Re-arrange includes.
2401 * graphite-cloog-util.c: Remove.
2402 * graphite-cloog-util.h: Likewise.
2403 * graphite-ppl.h: Likewise.
2404 * graphite-ppl.c: Likewise.
2405 * graphite-dependences.h: Likewise.
2406
32819af5 24072012-07-02 Richard Guenther <rguenther@suse.de>
2408
2409 Merge from graphite branch
2410 2011-07-21 Tobias Grosser <tobias@grosser.es>
948e3eac 2411
32819af5 2412 * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
2413 Remove graphite-cloog-util.h.
2414 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
2415 build_iv_mapping, translate_clast_user, translate_clast,
2416 free_scattering, initialize_cloog_names, build_cloog_prog,
2417 create_params_index): Do not use old compatibility functions.
2418 (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
2419 * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
2420 compatibility functions.
2421 (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
2422 cloog.
2423 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
2424 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
2425 cloog_finalize().
2426 * graphite-cloog-compat.h: Remove.
2427
2428 2011-08-09 Tobias Grosser <tobias@grosser.es>
2429
2430 * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
2431 of the string, no just a reference.
2432 (clast_name_index): Add a new field, that specifies if we need to free
2433 the name.
2434 (free_clast_name_index): If necessary, free the name string.
2435 (clast_name_index_elt_info): Calculate the hash based on the string
2436 content, not the memory location it is stored in.
2437 (clast_name_to_level): Specify that we do not need to free the name.
2438 (clast_name_to_index): Dito.
2439 (clast_name_to_lb_ub): Dito.
2440 (eq_clast_name_indexes): Compare the strings, not their base pointers.
2441 (free_scattering): Removed.
2442 (initialize_cloog_names): Renamed to add_names_to_union_domain().
2443 (add_names_to_union_domain): Changed to work on a union_domain,
2444 instead of a CloogNames structure.
2445 (build_cloog_prog): Removed.
2446 (build_cloog_union_domain): New.
2447 (generate_cloog_input): New.
2448 (scop_to_clast): Use CloogInput instead of CloogProgram.
2449 (print_generated_program): Adapt to new scop_to_clast() and do not
2450 print the CloogProgram any more.
2451 (create_params_index): Removed, functionality integrated in
2452 add_names_to_union_domain().
2453 (gloog): Adapt to new scop_to_clast().
2454 * graphite-clast-to-gimple.h (scop_to_clast): Remove.
2455
2456 2012-01-11 Tobias Grosser <tobias@grosser.es>
948e3eac 2457
32819af5 2458 * graphite-clast-to-gimple.c (clast_name_to_index,
2459 clast_name_to_lb_ub, clast_name_to_gcc): Change types.
2460 (clast_to_gcc_expression): Add clast_expr_name as a new
2461 case. Do not assume a clast_expr_term points always to a
2462 clast_expr_name.
2463 (type_for_clast_term): Do not assume a clast_expr_term points always to
2464 a clast_expr_name.
2465 (type_for_clast_name): New.
2466 (type_for_clast_expr): Add clast_expr_name as a new case.
2467
2468 2011-08-03 Sebastian Pop <sebpop@gmail.com>
2469
2470 * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
2471 new_Cloog_Scattering_from_ppl_Polyhedron,
2472 new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
2473
ca0ab26a 24742012-07-02 Jakub Jelinek <jakub@redhat.com>
2475
2476 PR tree-optimization/53645
2477 * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
2478 instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
2479
10e5ccd5 24802012-07-01 Wei Guozhi <carrot@google.com>
2481
2482 PR target/53447
2483 * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
2484 * config/arm/arm.c (const_ok_for_dimode_op): New function.
2485 * config/arm/constraints.md (Dd): New constraint.
2486 * config/arm/predicates.md (arm_adddi_operand): New predicate.
2487 * config/arm/arm.md (adddi3): Extend it to handle constants.
2488 (arm_adddi3): Likewise.
2489 (addsi3_carryin_<optab>): Extend it to handle sbc case.
2490 (addsi3_carryin_alt2_<optab>): Likewise.
2491 * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
2492
267dc7fa 24932012-06-30 Nathan Sidwell <nathan@acm.org>
2494
2495 * coverage.c (bbg_file_stamp): New.
2496 (read_counts_file): Merge incoming stamp with bbg_file_stamp.
2497 (build_info): Write bbg_file_stamp.
2498 (coverage_init): Initialize bbg_file_stamp. Read counts file
2499 before writing graph header.
2500 (coverage_finish): Don't unlink the data file if we can generate a
2501 unique file stamp.
2502 * tree.h (crc32_unsigned): Declare.
2503 * tree.c (crc32_unsigned_bits): New, broken out of ...
2504 (crc32_byte): ... here. Use it.
2505 (crc32_unsigned): New.
2506
948e3eac 25072012-06-29 Cary Coutant <ccoutant@google.com>
baa99c50 2508
2509 * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
2510 (gen_subprogram_die): Don't add pubname if want_pubnames is false.
2511 (gen_variable_die): Likewise.
2512 (gen_namespace_die): Likewise.
2513
a6217c59 25142012-06-29 Eric Botcazou <ebotcazou@adacore.com>
2515
2516 * tree-eh.c (lower_try_finally_switch): Really put the location of the
2517 last statement of the finally block onto the switch.
2518
58377760 25192012-06-29 H.J. Lu <hongjiu.lu@intel.com>
2520
2521 PR target/53539
2522 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
2523 TARGET_LP64.
2524
de4eff30 25252012-06-29 Sterling Augustine <saugustine@google.com>
2526
2527 * dwarf2out.c (add_pubname): Add comment.
2528 (add_pubtype): Fix indentation.
2529 (gen_enumeration_type_die): Likewise.
2530
9425f22e 25312012-06-29 Jakub Jelinek <jakub@redhat.com>
2532
2533 * tree-vect-generic.c (expand_vector_divmod): For even/odd
948e3eac 2534 widening multiply, put even always as first argument to VEC_PERM_EXPR.
9425f22e 2535
10dd7335 25362012-06-29 Richard Henderson <rth@redhat.com>
2537
2538 * tree-vect-generic.c: Include target.h.
2539 (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
2540 * Makefile.in (tree-vect-generic.o): Update.
2541
e53d55e7 25422012-06-29 Steven Bosscher <steven@gcc.gnu.org>
2543
2544 * configure.ac: Remove special gtfiles case for C.
2545 * configure: Regenerate.
2546 * Makefile.in: Remove C front-end hooks and build hooks that
2547 will be picked up from c/Make-lang.in now.
2548 Add tree-mudflap to C_COMMON_OBJS.
2549 * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
2550 * config/vms/vms.c: Look for c-tree.h in c/.
2551 * doc/gty.texi: Remove reference to c-config-lang.in.
2552 * doc/sourcebuild.texi: Document the c/ subdirectory.
2553
22d29d94 25542012-06-29 Steven Bosscher <steven@gcc.gnu.org>
2555
2556 * system.h (CASE_USE_BIT_TESTS): Poison.
2557 * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
2558 (expand_switch_using_bit_tests_p): ...here.
2559 * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
2560 * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
2561
e2ca32a4 25622012-06-29 Steven Bosscher <steven@gcc.gnu.org>
2563
2564 * system.h (IFCVT_EXTRA_FIELDS): Poison.
2565 (IFCVT_INIT_EXTRA_FIELDS): Poison.
2566 * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
2567 * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
2568 IFCVT_INIT_EXTRA_FIELDS.
2569 * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
2570 * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
2571 IFCVT_MACHDEP_INIT.
2572 * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
2573 frv_ifcvt_machdep_init.
2574 * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
2575 Remove documentation.
2576 (IFCVT_MACHDEP_INIT): Document.
2577 * doc/tm.texi: Regenerate.
2578
98eea2ef 25792012-06-29 Nick Clifton <nickc@redhat.com>
2580
2581 * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
2582
e5da8101 25832012-06-29 Jakub Jelinek <jakub@redhat.com>
2584
2585 * tree-vect-stmts.c (vectorizable_operation): Check both
2586 VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
2587 Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
2588
b4855609 25892012-06-28 Richard Henderson <rth@redhat.com>
2590
2591 * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
2592
99ee4cc8 25932012-06-28 Jakub Jelinek <jakub@redhat.com>
2594
3af51fe9 2595 PR tree-optimization/51581
2596 * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
2597 (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
2598 also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
2599 VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
2600 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
2601 MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
2602
99ee4cc8 2603 PR tree-optimization/53645
2604 * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
2605 instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
2606 if possible.
2607
f55cb01e 26082012-06-28 Georg-Johann Lay <avr@gjlay.de>
2609
2610 PR 53595
2611 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
2612 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
2613 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
2614 avr_hard_regno_call_part_clobbered.
2615
2357fda0 26162012-06-28 Richard Guenther <rguenther@suse.de>
2617
2618 PR middle-end/53790
2619 * expr.c (expand_expr_real_1): Verify if the type is complete
2620 before inspecting its size.
2621
67888653 26222012-06-28 Andreas Schwab <schwab@linux-m68k.org>
2623
2624 * doc/include/gpl.texi: Remove.
2625 * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
2626
60420e1c 26272012-06-28 Jakub Jelinek <jakub@redhat.com>
2628
2629 PR tree-optimization/53645
2630 * tree-vect-generic.c (add_rshift): New function.
2631 (expand_vector_divmod): New function.
2632 (expand_vector_operation): Use it for vector integer
2633 TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
2634 * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
2635 unused lguup variable with dummy_int.
2636
c43fbd61 26372012-06-28 OLivier Hainque <hainque@adacore.com>
2638
2639 * expr.c (convert_move): Latch mem integer inputs into a
2640 register before expanding a multi-instructions sequence.
2641
19931eea 26422012-06-28 Alexandre Oliva <aoliva@redhat.com>
2643 Uros Bizjak <ubizjak@gmail.com>
2644 Jakub Jelinek <jakub@redhat.com>
b7517b82 2645
2646 PR debug/53706
2647 PR debug/47624
2648 * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
2649 (vt_finalize): ... here instead, if needed.
2650
704e91bd 26512012-06-28 Alexandre Oliva <aoliva@redhat.com>
2652
2653 PR debug/53740
2654 PR debug/52983
2655 PR debug/48866
2656 * dce.c (word_dce_process_block): Check whether inserting debug
2657 temps are needed even for needed insns.
2658 (dce_process_block): Likewise.
2659 * df-problems.c (dead_debug_add): Add comment about multi-regs.
2660 (dead_debug_insert_temp): Likewise. Don't subreg when we're
2661 setting fewer regs than a multi-reg requires.
2662
21c2a8b2 26632012-06-27 Richard Henderson <rth@redhat.com>
2664
2665 * config/alpha/alpha.c (alpha_dimode_u): New.
2666 (alpha_init_builtins): Initialize it, and use it.
2667 (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
2668 (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
2669 (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
2670 (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
2671 (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
2672 (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
2673 (alpha_fold_builtin_ctpop): Likewise.
2674 (alpha_fold_builtin_umulh): Remove.
2675 (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
2676 typo in MAX_ARGS check.
2677
96504875 26782012-06-27 Richard Henderson <rth@redhat.com>
2679
2680 * tree.def (MULT_HIGHPART_EXPR): New.
2681 * cfgexpand.c (expand_debug_expr): Ignore it.
2682 * expr.c (expand_expr_real_2): Handle it.
2683 * fold-const.c (int_const_binop_1): Likewise.
2684 * optabs.c (optab_for_tree_code): Likewise.
2685 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
2686 * tree-inline.c (estimate_operator_cost): Likewise.
2687 * tree-pretty-print.c (dump_generic_node): Likewise.
2688 (op_code_prio, op_symbol_code): Likewise.
2689 * tree.c (commutative_tree_code): Likewise. Also handle
2690 WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
2691
d6187fde 26922012-06-27 Richard Henderson <rth@redhat.com>
2693
2694 PR target/53749
2695 * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
2696 in 2012-06-23 change. Adjust two other DImode tests as well.
2697
9136feff 26982012-06-27 Nick Clifton <nickc@redhat.com>
2699
2700 * config/rx/rx.md (comparesi3_extend): Remove = modifier from
2701 input operand.
2702
3ef23449 27032012-06-27 Richard Guenther <rguenther@suse.de>
2704
2705 PR middle-end/53676
2706 * tree-chrec.c (chrec_convert_1): Represent truncation to
2707 a type with undefined overflow as truncation to an unsigned
2708 type converted to the type with undefined overflow.
2709 * tree-scalar-evolution.c (interpret_rhs_expr): For computing
2710 the scalar evolution of a truncated widened operation avoid
2711 looking at the non-existing evolution of the widened operation
2712 result.
2713
61e371b0 27142012-06-27 Richard Guenther <rguenther@suse.de>
2715
2716 PR tree-optimization/53774
2717 * tree-ssa-reassoc.c (get_rank): All default defs have
2718 precomputed rank.
2719 (init_reassoc): Precompute rank for all SSA default defs.
2720
71b18c48 27212012-06-27 Nick Clifton <nickc@redhat.com>
2722
2723 * config/rx/rx.md (simple_return): Use the simple_return rtx.
2724
981d19b4 27252012-06-26 Richard Henderson <rth@redhat.com>
2726
2727 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
2728 and don't fall thru from standard_80387_constant_p to the memory
19931eea 2729 fallback.
981d19b4 2730
5cd92c37 27312012-06-26 Richard Henderson <rth@redhat.com>
2732
2733 * config/i386/i386.c (bdesc_args): Update. Change
2734 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
2735 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
2736 (ix86_builtin_mul_widen_even): Use it.
2737 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
2738 (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
2739 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
2740 for all SSE2.
2741 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
2742 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2.
2743 (vec_widen_smult_even_v4si): New.
2744
04c4f045 27452012-06-26 Richard Henderson <rth@redhat.com>
2746
2747 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
2748 to expander; move guts to ...
2749 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add
2750 highparts before shifting up.
2751 * config/i386/i386-protos.h: Update.
2752
f97cd9ed 27532012-06-26 Steven Bosscher <steven@gcc.gnu.org>
2754
2755 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
2756 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
2757 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
2758
7882e02e 27592012-06-26 Alexandre Oliva <aoliva@redhat.com>
2760
2761 * var-tracking.c (vt_add_function_parameter): Use a preserved
2762 VALUE for the MEM address of an incoming parameter.
2763
a52c3a6a 27642012-06-26 Sterling Augustine <saugustine@google.com>
2765
58b4004e 2766 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
2767 (prune_unused_types): Likewise.
a52c3a6a 2768
d8555e79 27692012-06-26 Steven Bosscher <steven@gcc.gnu.org>
2770
2771 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2772 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
2773 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2774 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
2775 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
2776 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
2777 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
2778 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
2779 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
2780 documentation.
2781 * doc/tm.texi: Regenerate.
2782 * doc/cpp.texi: Make example for #error generic.
2783 * config/frv/frv.h: Fix example text to match tm.texi.
2784
4502f5d0 27852012-06-26 Bill Schmidt <wschmidt@linux.ibm.com>
2786
2787 * tree-pass.h (pass_strength_reduction): New decl.
2788 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
2789 (finalize_costs): Likewise.
2790 * timevar.def (TV_TREE_SLSR): New timevar.
2791 * gimple-ssa-strength-reduction.c: New.
2792 * tree-flow.h (initialize_costs): New decl.
2793 (finalize_costs): Likewise.
2794 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
2795 * passes.c (init_optimization_passes): Add pass_strength_reduction.
2796
b780dd27 27972012-06-26 Matt Turner <mattst88@gmail.com>
2798
19931eea 2799 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
b780dd27 2800 (__builtin_arm_tinsrh): Likewise.
2801 (__builtin_arm_tinsrw): Likewise.
2802 (__builtin_arm_wsadb): Add missing v2si parameter.
2803 (__builtin_arm_wsadh): Likewise.
2804 (__builtin_arm_getwcx): Delete.
2805 (__builtin_arm_setwcx): Delete.
2806 (__builtin_arm_getwcgr0): Add.
2807 (__builtin_arm_getwcgr1): Add.
2808 (__builtin_arm_getwcgr2): Add.
2809 (__builtin_arm_getwcgr3): Add.
2810 (__builtin_arm_setwcgr0): Add.
2811 (__builtin_arm_setwcgr1): Add.
2812 (__builtin_arm_setwcgr2): Add.
2813 (__builtin_arm_setwcgr3): Add.
2814
1c89c7a8 28152012-06-26 Richard Guenther <rguenther@suse.de>
2816
2817 Revert
2818 2012-06-21 Richard Guenther <rguenther@suse.de>
2819
2820 * tree-inline.c (estimate_num_insns): Estimate call cost for
2821 tailcalls properly.
2822
802c6441 28232012-06-26 Steven Bosscher <steven@gcc.gnu.org>
2824
2825 PR other/33190
2826 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
2827 * doc/tm.texi: Regenerate.
2828
c07f27fd 28292012-06-26 Steven Bosscher <steven@gcc.gnu.org>
2830
2831 PR other/33190
2832 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
2833 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
2834 * doc/tm.texi.in: Remove documentation for unused target macros
2835 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
2836 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
2837 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
2838 TARGET_NARROW_VOLATILE_BITFIELDS.
2839 Document that MD_HANDLE_UNWABI is a macro in libgcc.
2840 * doc/tm.texi: Regenerate.
2841 * system.h: Poison target macros
2842 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
2843 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
2844 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
2845 TARGET_NARROW_VOLATILE_BITFIELDS
2846
59991b30 28472012-06-26 Jan Hubicka <jh@suse.cz>
2848
2849 PR lto/53572
2850 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
2851 used symbols.
2852
c2e72ba3 28532012-06-26 Dehao Chen <dehao@google.com>
2854
2855 * tree-inline.c: (expand_call_inline): Ensure that lexical block's
2856 source location is consistant with the call stmt.
2857
1ad41595 28582012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org>
2859
2860 PR tree-optimization/53729
2861 PR tree-optimization/53636
2862 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
2863 vect_verify_datarefs_alignment until after statements have
2864 been marked as relevant/irrelevant.
2865 * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
2866 Skip irrelevant statements.
2867 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
2868 instead of STMT_VINFO_RELEVANT.
2869 (vect_get_data_access_cost): Do not check for supportable
2870 alignment before calling vect_get_load_cost/vect_get_store_cost.
2871 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
2872 handling unsupported alignment.
2873 (vect_get_load_cost): Likewise.
2874
a6a21833 28752012-06-25 Steven Bosscher <steven@gcc.gnu.org>
2876
2877 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
2878 Do not define JMP_BUF_SIZE.
2879
47b88316 28802012-06-26 Jakub Jelinek <jakub@redhat.com>
2881
2882 PR tree-optimization/53748
2883 * tree-ssa-phiopt.c (conditional_replacement): Only optimize
2884 if arg0/arg1 have integral or pointer types.
2885
48bb0beb 28862012-06-25 Richard Henderson <rth@redhat.com>
2887
2888 * config/i386/sse.md (sse2_sse4_1): Remove code attr.
2889 (<s>dot_prodv4si, <s>dot_prodv8si): Remove
2890 (sdot_prodv4si): New; handle only XOP.
2891
de9b8545 28922012-06-25 Richard Henderson <rth@redhat.com>
2893
2894 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
2895 (V2UDI_FUNC_V4USI_V4USI): New.
2896 (V4UDI_FUNC_V8USI_V8USI): New.
2897 * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
2898 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
2899 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
2900 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
2901 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
2902 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
2903 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
2904 (bdesc_args): Add them.
2905 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
2906 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
2907 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2908 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
2909 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
2910
a3fa0286 29112012-06-25 Richard Henderson <rth@redhat.com>
2912
2913 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
2914
3737d3e4 29152012-06-25 Richard Henderson <rth@redhat.com>
2916
2917 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
2918 to V16QImode.
2919 (ix86_expand_vec_interleave): New.
2920 (ix86_expand_mul_widen_evenodd): New.
2921 (ix86_expand_mul_widen_hilo): New.
2922 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
2923 * config/i386/i386.md (u_bool) New code attr.
2924 * config/i386/predicates.md
2925 (nonimmediate_or_const_vector_operand): Remove.
2926 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
2927 both AVX and SSE4_1.
2928 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
2929 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
2930 (vec_widen<s>mult_hi_v8si): Remove.
2931 (vec_widen<s>mult_lo_v8si): Remove.
2932 (vec_widen_smult_hi_v4si): Remove.
2933 (vec_widen_smult_lo_v4si): Remove.
2934 (vec_widen_umult_hi_v4si): Remove.
2935 (vec_widen_umult_lo_v4si): Remove.
2936 (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
2937 (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
2938 * config/i386/i386-protos.h: Update.
2939
f983358a 29402012-06-25 Christophe Lyon <christophe.lyon@st.com>
2941
2942 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
2943 (neon_vld1_dup): Restrict to VQ operands.
2944 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
2945
425588b5 29462012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
19931eea 2947 James Greenhalgh <james.greenhalgh@arm.com>
425588b5 2948
2949 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
2950 (TARGET_FMA): New macro.
2951 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
2952 (TARGET_ARM_ARCH): Likewise.
2953 (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
2954 (TARGET_V6M, TARGET_V7M): Likewise.
2955 (TARGET_ARM_ARCH_PROFILE): Likewise.
2956 (TARGET_ARM_FEATURE_LDREX): Likewise.
2957 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
2958 (ARM_MIN_ENUM_SIZE): Likewise.
2959 * config/arm/arm.c (arm_file_start): Refactor appropriately.
2960 (base_architecture): New enumeration.
2961 (arm_base_arch): New global variable.
2962 (processors): Add field base_arch.
2963 (ARM_ARCH, ARM_CORE): Adjust accordingly.
2964 (arm_option_override): Add initialization of arm_base_arch.
2965 * doc/cpp.texi (system-specific predefined macros.): Change.
2966
50c10b91 29672012-06-25 Jakub Jelinek <jakub@redhat.com>
2968
2969 PR target/53759
2970 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
2971 of x x x in the vmovlps load alternative.
2972
198a48ad 29732012-06-25 Richard Sandiford <rdsandiford@googlemail.com>
2974
2975 PR debug/53740
2976 * df.h (dead_debug_add): Remove third argument.
2977 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
2978 REG that we want to replace instead.
2979 (dead_debug_insert_temp): Use the REGNO of the reg that we want
2980 to replace instead of DF_REF_REGNO. Require there to always be
2981 at least one such use. Check for cases where the same location
2982 has more than df_ref associated with it.
2983 (df_note_bb_compute): Remove third dead_debug_add argument.
2984 * dce.c (word_dce_process_block): Likewise.
2985
91bb968b 29862012-06-25 Steven Bosscher <steven@gcc.gnu.org>
2987
2988 * config/v850/v850.c: Remove redundant extern declarations for
2989 last_assemble_variable_decl and size_directive_output.
2990
2991 * doc/tm.texi.in: Document JMP_BUF_SIZE.
2992 * doc/tm.texi: Regenerate.
2993 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
2994 * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
2995 * config/stormy16/stormy16.h: Likewise.
2996
2997 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
2998
2999 * doc/sourcebuild.texi: Add missing subdirectories.
3000
646ea1f5 30012012-06-25 Tristan Gingold <gingold@adacore.com>
3002
3003 * config/i386/i386.h: Fix typo.
3004
595bdb35 30052012-06-25 Tristan Gingold <gingold@adacore.com>
3006
3007 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
3008 (seh_cfa_adjust_cfa): ... that function.
3009 (seh_emit_stackalloc): Do not emit out of range values.
3010 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
3011 UNSPEC_DEF_CFA constants.
3012 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
3013 * config/i386/i386.c (ix86_frame_pointer_required): Required
3014 for very large frames on SEH target.
3015 (ix86_compute_frame_layout): Save area is before frame pointer
3016 on SEH target. Handle very large frames.
3017 (ix86_expand_prologue): Likewise.
3018
d5bf7b64 30192012-06-24 Steven Bosscher <steven@gcc.gnu.org>
3020
3021 * output.h: (current_function_is_leaf,
3022 current_function_sp_is_unchanging,
3023 current_function_uses_only_leaf_regs): Remove.
3024 * function.c (current_function_is_leaf,
3025 current_function_sp_is_unchanging,
3026 current_function_uses_only_leaf_regs): Remove.
3027 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
3028 instead of current_function_uses_only_leaf_regs.
3029 * function.h (struct rtl_data): New fields sp_is_unchanging,
3030 is_leaf, uses_only_leaf_regs.
3031 * resource.c (init_resource_info): Replace current_function_is_leaf,
3032 current_function_sp_is_unchanging, and
3033 current_function_uses_only_leaf_regs with new crtl fields.
3034 * sdbout.c (sdbout_symbol): Likewise.
3035 * df-core.c (rest_of_handle_df_initialize): Likewise.
3036 * ira.c (ira): Likewise.
3037 * final.c (final_start_function): Likewise.
3038 * reorg.c (fill_simple_delay_slots): Likewise.
3039 * regrename.c (check_new_reg_p): Likewise.
3040 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
3041 (notice_stack_pointer_modification): Likewise.
3042 * dbxout.c (dbxout_symbol): Likewise.
3043 (dbxout_parms): Likewise.
3044 * sel-sched.c (init_regs_for_mode): Likewise.
3045 * dwarf2out.c (dbx_reg_number): Likewise.
3046 (multiple_reg_loc_descriptor): Likewise.
3047 * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
3048 (gen_pop): Likewise.
3049 (ix86_select_alt_pic_regnum): Likewise.
3050 (ix86_compute_frame_layout): Likewise.
3051 (ix86_finalize_stack_realign_flags): Likewise.
3052 (ix86_expand_epilogue): Likewise.
3053 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
3054 * config/h8300/h8300.c (byte_reg): Likewise.
3055 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
3056 (c6x_save_reg): Likewise.
3057 (c6x_compute_frame_layout): Likewise.
3058 * config/pa/pa.c (pa_compute_frame_size): Likewise.
3059 (pa_output_function_prologue): Likewise.
3060 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
3061 * config/sparc/sparc.md (attr "leaf_function"): Likewise.
3062 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
3063 (sparc_expand_prologue): Likewise.
3064 (sparc_flat_expand_prologue): Likewise.
3065 (sparc_asm_function_prologue): Likewise.
3066 (sparc_output_mi_thunk): Likewise.
3067 (sparc_frame_pointer_required): Likewise.
3068 * config/epiphany/epiphany.c (epiphany_compute_function_type):
3069 Likewise.
3070 (epiphany_compute_frame_size): Likewise.
3071 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
3072 * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
3073 (cris_frame_pointer_required): Likewise.
3074 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
3075 (tilepro_current_function_is_leaf): Likewise.
3076 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
3077 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
3078 * config/ia64/ia64.c (find_gr_spill): Likewise.
3079 (ia64_compute_frame_size): Likewise.
3080 (ia64_can_eliminate): Likewise.
3081 (ia64_initial_elimination_offset): Likewise.
3082 * config/m68k/m68k.c (m68k_save_reg): Likewise.
3083 (m68k_expand_epilogue): Likewise.
3084 * config/rx/rx.c (rx_get_stack_layout): Likewise.
3085 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
3086 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
3087 Likewise.
3088 (picochip_output_frame_debug): Likewise.
3089 * config/sh/sh.c (sh_media_register_for_return): Likewise.
3090 (sh_allocate_initial_value): Likewise.
3091 (sh_output_mi_thunk): Likewise.
3092 * config/microblaze/microblaze.c (microblaze_must_save_register):
3093 Likewise.
3094 (compute_frame_size): Likewise.
3095 (microblaze_initial_elimination_offset): Likewise.
3096 (microblaze_expand_prologue): Likewise.
3097 (microblaze_expand_epilogue): Likewise.
3098 * config/frv/frv.c (frv_expand_epilogue): Likewise.
3099 (frv_frame_pointer_required): Likewise.
3100 * config/spu/spu.c (get_pic_reg): Likewise.
3101 (direct_return): Likewise.
3102 (spu_expand_prologue): Likewise.
3103 (spu_expand_epilogue): Likewise.
3104 (spu_initial_elimination_offset): Likewise.
3105 * config/mips/mips.c (mips_global_pointer): Likewise.
3106 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3107 (mips_compute_frame_info): Likewise.
3108 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
3109 (mep_reload_pointer): Likewise.
3110 * config/rl78/rl78.c (need_to_save): Likewise.
3111 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
3112 * config/score/score.c (score_compute_frame_size): Likewise.
3113 (score_function_prologue): Likewise.
3114 * config/bfin/bfin.c (must_save_p): Likewise.
3115 (expand_prologue_reg_save): Likewise.
3116 (expand_epilogue_reg_restore): Likewise.
3117 (bfin_frame_pointer_required): Likewise.
3118 (n_regs_saved_by_prologue): Likewise.
3119 (add_to_reg): Likewise.
3120 (expand_interrupt_handler_prologue): Likewise.
3121 (expand_interrupt_handler_epilogue): Likewise.
3122 (bfin_expand_prologue): Likewise.
3123 * config/avr/avr.c (avr_regs_to_save): Likewise.
3124 (avr_prologue_setup_frame): Likewise.
3125 (expand_epilogue): Likewise.
3126 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
3127 (s390_register_info): Likewise.
3128 (s390_frame_info): Likewise.
3129 (s390_init_frame_layout): Likewise.
3130 (s390_emit_prologue): Likewise.
3131
3132
774dffd5 31332012-06-24 Steven Bosscher <steven@gcc.gnu.org>
3134
3135 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
3136 * vmsdbgout: Do not undefine it if defined.
3137 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
3138 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
3139 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
3140
d574b954 31412012-06-24 Richard Sandiford <rdsandiford@googlemail.com>
3142
19931eea 3143 * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
d574b954 3144
b1b4d742 31452012-06-23 Richard Henderson <rth@redhat.com>
3146
1f983100 3147 PR target/53749
3148 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
3149 V*QImode shifts and multiply.
3150 (ix86_expand_vecop_qihi): Support shifts.
3151 * config/i386/i386.md (any_shift): New code iterator.
3152 * config/i386/sse.md (ashlv16qi3): Merge ...
3153 (<any_shiftrt>v16qi3): ... into ...
3154 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi
3155 to support SSE and AVX.
3156
3b87d2ec 3157 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
3158 parameter into src and dest.
3159 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
3160 (vec_unpacks_hi_<V124_AVX2>): Likewise.
3161 (vec_unpacku_lo_<V124_AVX2>): Likewise.
3162 (vec_unpacks_lo_<V124_AVX2>): Likewise.
3163 * config/i386/i386-protos.h: Update.
3164
b1b4d742 3165 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
3166 pure expander; move expansion code ...
3167 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function.
3168 * config/i386/i386-protos.h: Update.
3169
aab806a1 31702012-06-22 Edmar Wienskoski <edmar@freescale.com>
3171
3172 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
3173 (popcntb<mode>2): Add attribute type popcnt.
3174 (popcntd<mode>2): Ditto.
3175 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
3176 * config/rs6000/power5.md (define_insn_reservation): Ditto.
3177 * config/rs6000/power7.md (define_insn_reservation): Ditto.
3178 * config/rs6000/476.md (define_insn_reservation): Ditto.
3179 * config/rs6000/power6.md (define_insn_reservation): New
3180 reservation for popcnt instructions.
3181
e7d8781a 31822012-06-22 H.J. Lu <hongjiu.lu@intel.com>
3183
3184 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
3185
e24005a2 31862012-06-22 H.J. Lu <hongjiu.lu@intel.com>
3187
3188 PR target/53383
3189 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
3190
3191 * config/i386/i386.c (ix86_option_override_internal): Allow
3192 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
3193
3194 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
3195 if SSE is disabled.
3196
8ac8f5ae 31972012-06-22 Bill Schmidt <wschmidt@linux.ibm.com>
3198
3199 * double-int.c (double_int_multiple_of): New function.
3200 * double-int.h (double_int_multiple_of): New decl.
3201 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
3202 (mbc_entry_hash): New forward decl.
3203 (mbc_entry_eq): Likewise.
3204 (zero_cost): Change to no_cost.
3205 (mult_costs): New static var.
3206 (cost_tables_exist): Likewise.
3207 (initialize_costs): New function.
3208 (finalize_costs): Likewise.
3209 (tree_ssa_iv_optimize_init): Call initialize_costs.
3210 (add_cost): Change to add_regs_cost; distinguish costs by speed.
3211 (multiply_regs_cost): New function.
3212 (add_const_cost): Likewise.
3213 (extend_or_trunc_reg_cost): Likewise.
3214 (negate_reg_cost): Likewise.
3215 (multiply_by_cost): Change to multiply_by_const_cost; distinguish
3216 costs by speed.
3217 (get_address_cost): Change add_cost to add_regs_cost; change
3218 multiply_by_cost to multiply_by_const_cost.
3219 (force_expr_to_var_cost): Change zero_cost to no_cost; change
3220 add_cost to add_regs_cost; change multiply_by_cost to
3221 multiply_by_const_cost.
3222 (split_cost): Change zero_cost to no_cost.
3223 (ptr_difference_cost): Likewise.
3224 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
3225 to multiply_by_const_cost.
3226 (get_computation_cost_at): Change add_cost to add_regs_cost; change
3227 multiply_by_cost to multiply_by_const_cost.
3228 (determine_use_iv_cost_generic): Change zero_cost to no_cost.
3229 (determine_iv_cost): Change add_cost to add_regs_cost.
3230 (iv_ca_new): Change zero_cost to no_cost.
3231 (tree_ssa_iv_optimize_finalize): Call finalize_costs.
3232 * tree-ssa-address.c (most_expensive_mult_to_index): Change
3233 multiply_by_cost to multiply_by_const_cost.
3234 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
3235 (add_regs_cost): New decl.
3236 (multiply_regs_cost): Likewise.
3237 (add_const_cost): Likewise.
3238 (extend_or_trunc_reg_cost): Likewise.
3239 (negate_reg_cost): Likewise.
3240
479a6d79 32412012-06-22 Richard Guenther <rguenther@suse.de>
3242
3243 Merge from graphite branch
3244 2011-08-10 Sebastian Pop <sebpop@gmail.com>
19931eea 3245
479a6d79 3246 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
3247
3248 2012-01-13 Tobias Grosser <tobias@grosser.es>
3249
3250 * tree-flow.h (parallelized_function_p): Declare.
3251 * tree-parloops.c (parallelized_function_p): Export.
3252 * graphite.c (graphite_transform_loops): Do not run graphite on
3253 already parallel functions.
3254
45565b9d 32552012-06-22 Alan Modra <amodra@gmail.com>
3256
3257 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
3258 return mem. Convert to indirect addressing if not indirect or
3259 indexed. Adjust all callers.
3260
ed5a298a 32612012-06-22 Richard Guenther <rguenther@suse.de>
3262
3263 * gcov-iov.c: Include bconfig.h and system.h.
3264
f4518482 32652012-06-22 Andreas Schwab <schwab@linux-m68k.org>
3266
3267 * doc/include/texinfo.tex: Update to version 2012-06-05.14.
3268
f174c04f 32692012-06-22 Richard Guenther <rguenther@suse.de>
3270
3271 PR gcov-profile/53744
3272 * gcov-iov.c (main): Treat "" and "prerelease" the same.
3273
53c763aa 32742012-06-22 Eric Botcazou <ebotcazou@adacore.com>
3275
3276 PR debug/53704
3277 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
3278 for GNU Fortran if in strict DWARF2 mode.
3279
25db41e9 32802012-06-22 Eric Botcazou <ebotcazou@adacore.com>
3281
3282 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
3283 DECL_IGNORED_P non-reg vars even if they are used.
3284
d806488d 32852012-06-21 Alexandre Oliva <aoliva@redhat.com>
3286
3287 PR debug/53671
3288 PR debug/49888
3289 * var-tracking.c (vt_get_canonicalize_base): New.
3290 (vt_canonicalize_addr, vt_stack_offset_p): New.
3291 (vt_canon_true_dep): New.
3292 (drop_overlapping_mem_locs): Use vt_canon_true_dep.
3293 (clobber_overlaping_mems): Use vt_canonicalize_addr.
3294
e9c7d461 32952012-06-21 Alexandre Oliva <aoliva@redhat.com>
3296
3297 PR debug/53671
3298 PR debug/49888
3299 * var-tracking.c (vt_initialize): Record initial offset between
3300 arg pointer and stack pointer.
3301
b47bca61 33022012-06-21 Alexandre Oliva <aoliva@redhat.com>
3303
3304 PR debug/53671
3305 PR debug/49888
3306 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
3307 CFA base.
3308
f78d5f53 33092012-06-21 Alexandre Oliva <aoliva@redhat.com>
3310
3311 PR debug/53671
3312 PR debug/49888
19931eea 3313 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
f78d5f53 3314
5d3c92c8 33152012-06-21 Alexandre Oliva <aoliva@redhat.com>
3316
3317 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
3318
17ed1ca0 33192012-06-21 Alexandre Oliva <aoliva@redhat.com>
3320
3321 PR debug/53682
3322 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
3323
fd9cb2ca 33242012-06-21 Meador Inge <meadori@codesourcery.com>
3325
3326 PR c/53702
3327 * c-decl.c (c_push_function_context): Restore the behavior to reuse
3328 the language function allocated for -Wunused-local-typedefs.
3329 (c_pop_function_context): If necessary, clear the language function
3330 created in c_push_function_context. Always clear out the
3331 x_cur_stmt_list field of the restored language function.
3332
19931eea 33332012-06-21 Sterling Augustine <saugustine@google.com>
3334 Cary Coutant <ccoutant@google.com>
7a99ccab 3335
3336 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
3337 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
3338 (comdat_type_struct): New field 'skeleton_die'.
3339 (breakout_comdat_types): Update it.
3340 (add_pubname): Rework logic. Call is_class_die, is_cu_die and
3341 is_namespace_die. Fix minor style violation. Call want_pubnames.
3342 (add_pubname_string): Call want_pubnames.
3343 (add_pubtype): Rework logic for calculating type name. Call
3344 is_namespace_die. Call want_pubnames.
3345 (output_pubnames): Move conditional logic deciding when to produce the
3346 section from dwarf2out_finish. Use new skeleton_die field.
3347 (base_type_die): Call add_pubtype.
3348 (gen_enumeration_type_die): Unconditionally call add_pubtype.
3349 (gen_subprogram_die): Adjust calls to add_pubname.
3350 (gen_namespace_die): Call add_pubname_string.
3351 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
3352 produce pubnames and pubtypes sections to output_pubnames.
0be17af6 3353 * common.opt (-gpubnames): New option.
17cb58eb 3354 * doc/invoke.texi: Document it.
7a99ccab 3355
355e7f03 33562012-06-21 Steven Bosscher <steven@gcc.gnu.org>
3357
3358 * config/m32c/m32c-pragma.c: Remove unnecessary includes.
3359
5dd3f78f 33602012-06-21 Michael Matz <matz@suse.de>
3361
3362 PR middle-end/53688
3363 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
3364 with correct size.
3365
0d6939f9 33662012-06-21 Richard Guenther <rguenther@suse.de>
3367
3368 * tree-inline.c (estimate_num_insns): Estimate call cost for
3369 tailcalls properly.
3370
cff9d209 33712012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
3372
3373 * tree.h (DECL_SOURCE_COLUMN): New accessor.
3374
c62ec2b1 33752012-06-20 Uros Bizjak <ubizjak@gmail.com>
3376
3377 * config/i386/i386.md (SINCOS): New int iterator.
3378 (sincos): New int attribute.
3379 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
3380 SINCOS int iterator.
3381 (*<sincos>_extend<mode>xf2_i387): Macroize insn from
3382 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
3383
33842012-06-20 Uros Bizjak <ubizjak@gmail.com>
3385
3386 * config/i386/i386.md (RDFSGSBASE): New int iterator.
3387 (WRFSGSBASE): Ditto.
3388 (fsgs): New int attribute.
3389 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
3390 RDFSGSBASE int iterator.
3391 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
3392 WRFSGSBASE int iterator.
3393
c1444935 33942012-06-20 Uros Bizjak <ubizjak@gmail.com>
3395
3396 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
3397 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
3398 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
3399 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
3400 int iterator.
3401
c6b9d78a 34022012-06-20 Steven Bosscher <steven@gcc.gnu.org>
3403
3404 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
3405
ac4a8000 34062012-06-20 Richard Guenther <rguenther@suse.de>
3407
3408 PR tree-optimization/30318
3409 * tree-vrp.c (range_int_cst_p): Do not reject overflowed
3410 constants here.
3411 (range_int_cst_singleton_p): But explicitely here.
3412 (zero_nonzero_bits_from_vr): And here.
3413 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
3414 to cover all cases we can perform arbitrary precision
3415 arithmetic with double-ints.
3416 (intersect_ranges): Handle adjacent anti-ranges.
3417
4cc5b3bf 34182012-06-20 Uros Bizjak <ubizjak@gmail.com>
3419
3420 * config/i386/i386.md (rounding_insn): New int attribute.
3421 (<rounding_insn>xf2): Macroize insn from
3422 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
3423 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
3424
34252012-06-20 Uros Bizjak <ubizjak@gmail.com>
3426
3427 * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
3428 (ieee_maxmin): New int attribute.
3429 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
c62ec2b1 3430 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
4cc5b3bf 3431
2c07aa0a 34322012-06-20 Steven Bosscher <steven@gcc.gnu.org>
3433
3434 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
3435 * config/arm/arm.c: Do not include c-pragma.h.
3436 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
3437 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
3438 to arm_emit_eabi_attribute.
3439 * arm-c.c: Do not include output.h.
3440 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
3441 call to arm_emit_eabi_attribute.
3442 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
3443
0bbf0fd8 34442012-06-20 Richard Guenther <rguenther@suse.de>
3445
3446 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
3447 Allow adjusting alignment of user-aligned decls again.
3448
e3228285 34492012-06-20 Steven Bosscher <steven@gcc.gnu.org>
3450
3451 * config/rl78/rl78-c.c: Remove unnecessary includes.
3452
97a652ea 34532012-06-20 Steven Bosscher <steven@gcc.gnu.org>
3454
3455 * config/cris/cris.c: Include cgraph.h.
3456 (cris_option_override): Do not set non-existing flag_no_gcc_ident.
3457
30c3c442 34582012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
3459
3460 * emit-rtl.c (need_atomic_barrier_p): New function.
3461 * emit-rtl.h (need_atomic_barrier_p): Declare it.
3462 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
3463 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
3464 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
3465 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
3466 (mips_process_sync_loop): Use generic version instead.
3467
0f8e46b1 34682012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
3469
3470 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
3471 it is used.
3472
974f0a74 34732012-06-19 Tom de Vries <vries@codesourcery.com>
4cc5b3bf 3474 Maxim Kuvyrkov <maxim@codesourcery.com>
974f0a74 3475
3476 * config/mips/constraints.md (ZR): New constraint.
3477 * config/mips/predicates.md (mem_noofs_operand): New predicate.
3478 * config/mips/mips.c (mips_print_operand): Handle new print modifier.
4cc5b3bf 3479 * config/mips/mips.h (TARGET_XLP): Define.
974f0a74 3480 (TARGET_SYNC_AFTER_SC): Update.
3481 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
3482 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
3483 XLP-specific swap and ldadd patterns.
3484 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
3485
39a8c5ea 34862012-06-19 Tom de Vries <vries@codesourcery.com>
3487 Maxim Kuvyrkov <maxim@codesourcery.com>
3488
3489 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
3490 (mips_emit_post_atomic_barrier_p): New static functions.
3491 (mips_process_sync_loop): Use them. Emit sync memory barriers in
3492 accordance with memory model semantics. Add return of CMP result for
3493 compare_and_swap.
3494 * config/mips/mips.md: Update comment.
3495 (sync_cmp): New attribute.
3496 (sync_memmodel): New attribute replacing sync_release_barrier.
3497 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
3498 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
3499 (sync_lock_test_and_set, test_and_set_12): Update.
3500 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
3501 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
3502
ebd75471 35032012-06-19 Joseph Myers <joseph@codesourcery.com>
3504
3505 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
3506 mov_si<mode>_e500_subreg0.
3507 (*mov_si<mode>_e500_subreg0_elf_low)
3508 (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
3509
56317318 35102012-06-19 Richard Henderson <rth@redhat.com>
3511
3512 * config/alpha/alpha.c: Include params.h.
3513 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
3514 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
3515
ff6624bc 35162012-06-19 Steven Bosscher <steven@gcc.gnu.org>
3517
3518 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
3519 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
3520 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
3521 Remove.
3522 * doc/tm.texi: Regenerate.
3523 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
3524 .objc_class_name_*.
3525 * config/darwin-c.c: Include target.h.
3526 (darwin_objc_declare_unresolved_class_reference): New function.
3527 (darwin_objc_declare_class_definition): New function.
3528 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
3529 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
3530
367b1459 35312012-06-19 Steven Bosscher <steven@gcc.gnu.org>
3532
3533 * target.def (output_ident): New hook.
3534 * targhooks.h (default_asm_output_ident_directive): Add prototype.
3535 * varasm.c (assemble_asm): Only prefix a tab if the string does not
3536 already start with one.
3537 (default_asm_output_ident_directive): New function to emit
3538 .ident as a top-level asm node while parsing, or directly to
3539 asm_out_file after parsing.
3540 * toplev.c (compile_file): Print a GCC .ident with
3541 targetm.asm_out.output_ident.
3542 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
3543 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
3544 * doc/tm.texi: Update.
3545
3546 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
3547 (TARGET_ASM_OUTPUT_IDENT): Define.
3548 * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
3549 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
3550 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
3551 * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
3552 (TARGET_ASM_OUTPUT_IDENT): Define.
3553 * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
3554 (TARGET_ASM_OUTPUT_IDENT): Define.
3555
3556 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
3557 * config/cris/cris.c (cris_asm_output_ident): New function.
3558 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
3559
3560 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
3561 Add prototype.
3562 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
3563 (microblaze_asm_output_ident): Rewrite to work similar to
3564 default_asm_output_ident_directive for front-end .idents.
3565 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
3566 (TARGET_ASM_OUTPUT_IDENT): Define.
3567
3568 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
3569 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
3570
3571 * config/rx/rx.c: Include cgraph.h for add_asm_node.
3572 (rx_asm_output_ident): New function, similar to
3573 default_asm_output_ident_directive, but handle AS100 syntax also, so
3574 that #ident also works for rx in AS100 syntax.
3575 (TARGET_ASM_OUTPUT_IDENT): Define.
3576 * config/rx/rx.h (IDENT_ASM_OP): Remove.
3577
3578 * Makefile.in: Fix dependencies for c-family/c-lex.o.
3579
52789361 35802012-06-19 Uros Bizjak <ubizjak@gmail.com>
3581
3582 * config/i386/i386.md (FIST_ROUNDING): New int iterator.
3583 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
3584 (ROUNDING): Ditto.
3585 (*fist<mode>2_<rounding>_1): Macroize insn from
3586 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
3587 (fistdi2_<rounding>): Macroize insn from
3588 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
3589 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
3590 corresponding splitters from fistdi2_{floor,ceil} and corresponding
3591 splitters using FIST_ROUNDING int iterator.
3592 (fist<mode>2_<rounding>): Macroize insn from
3593 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
3594 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
3595 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
3596 splitters using FIST_ROUNDING int iterator.
3597 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
3598 using FIST_ROUNDING int iterator.
3599
087cf0d3 36002012-06-19 Richard Henderson <rth@redhat.com>
3601
3602 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
3603 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
3604 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
3605 * config/i386/sse.md (sse2_mulv4si3): Delete.
3606 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
3607 nonimmediate_or_const_vector_operand.
3608
49db198b 36092012-06-19 Richard Henderson <rth@redhat.com>
3610
3611 * expmed.c (struct init_expmed_rtl): Split ...
3612 (init_expmed_one_mode): ... out of ...
3613 (init_expmed): ... here. Initialize integer vector modes also.
3614 (synth_mult): Handle integer vector modes.
3615 (choose_mult_variant): Likewise.
3616 (expand_mult_const): Likewise.
3617 (expand_mult): Likewise.
3618 * machmode.h (GET_MODE_UNIT_BITSIZE): New.
3619
313507bb 36202012-06-19 Richard Henderson <rth@redhat.com>
3621
3622 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
3623 integral vector modes.
3624
cb741a65 36252012-06-19 Uros Bizjak <ubizjak@gmail.com>
3626
3627 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
3628 (rounding): New int attribute.
3629 (ROUNDING): Ditto.
3630 (frndintxf2_<rounding>): Macroize insn from
3631 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
3632 (frndintxf2_<rounding>_i387): Macroize insn from
3633 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
3634
9c0a48ce 36352012-06-19 Richard Guenther <rguenther@suse.de>
3636
3637 * tree-vrp.c (union_ranges): New function.
3638 (vrp_meet_1): Use union_ranges.
3639 (vrp_meet): Dump what we union and call vrp_meet_1.
3640
96854199 36412012-06-19 Richard Earnshaw <rearnsha@arm.com>
3642
3643 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
3644 (attr type): Remove fmul, ffmul, farith, ffarith, float_em
3645 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
3646 (attr write_conflict, attr core_cycles): Update.
3647 * arm-generic.md (r_mem_f_wbuf): Delete reservation.
3648
a339107e 36492012-06-19 Richard Guenther <rguenther@suse.de>
3650
3651 * tree-vrp.c (intersect_ranges): Handle more cases.
3652 (vrp_intersect_ranges): Dump what we intersect and call ...
3653 (vrp_intersect_ranges_1): ... this.
3654
5f8265c3 36552012-06-19 Richard Guenther <rguenther@suse.de>
3656
3657 PR tree-optimization/53708
3658 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
3659 user-supplied alignment and alignment of decls with the used
3660 attribute.
3661
161121a9 36622012-06-18 Lawrence Crowl <crowl@google.com>
3663
3664 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
3665 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
3666 (TV_PHASE_STREAM_IN): New.
3667 (TV_PHASE_STREAM_OUT): New.
3668 * timevar.c (validate_phases): New.
3669 (timevar_print): Call validate_phases.
3670 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
3671 to TV_PHASE_OPT_GEN.
3672 * langhooks.c (write_global_declarations): Rename use of
3673 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of
3674 TV_PHASE_CHECK_DBGINFO.
3675 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
3676 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to
3677 lang_hooks.decls.final_write_globals.
3678
0f5ba2d7 36792012-06-18 David Edelshn <dje.gcc@gmail.com>
3680
3681 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
3682
538c1aa0 36832012-06-18 Uros Bizjak <ubizjak@gmail.com>
3684
3685 PR target/53712
3686 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
3687 (*sse4_2_pcmpistr_unaligned): New.
3688
b1324f4f 36892012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3690 Sameera Deshpande <sameera.deshpande@arm.com>
3691 Greta Yorsh <greta.yorsh@arm.com>
b1324f4f 3692
6a5af5b5 3693 * config/arm/arm-protos.h (arm_output_epilogue): Remove.
3694 * config/arm/arm.c (print_multi_reg): Remove.
3695 (vfp_output_fldmd): Likewise.
3696 (arm_output_epilogue): Likewise.
3697 * config/arm/arm.md (epilogue_insns): Update condition and code.
b1324f4f 3698
8cba51a5 36992012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3700 Sameera Deshpande <sameera.deshpande@arm.com>
3701 Greta Yorsh <greta.yorsh@arm.com>
8cba51a5 3702
6a5af5b5 3703 * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
3704 * config/arm/arm.c (thumb2_expand_return): New function.
3705 * config/arm/arm.md (return): Update condition and code.
8cba51a5 3706
e2549f81 37072012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3708 Sameera Deshpande <sameera.deshpande@arm.com>
3709 Greta Yorsh <greta.yorsh@arm.com>
e2549f81 3710
6a5af5b5 3711 * config/arm/arm-protos.h (output_return_instruction): New parameter
3712 and int to bool change of parameter types.
3713 * config/arm/arm.c (output_return_instruction): Likewise.
3714 * config/arm/arm.md (arm_simple_return): New pattern.
3715 (arm_return, cond_return, cond_return_inverted): Add new arguments.
3716 * config/arm/thumb2.md (thumb2_return): Update condition and code.
e2549f81 3717
c3635784 37182012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3719 Sameera Deshpande <sameera.deshpande@arm.com>
3720 Greta Yorsh <greta.yorsh@arm.com>
c3635784 3721
6a5af5b5 3722 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
3723 * config/arm/arm.c (arm_expand_epilogue): New function.
3724 * config/arm/arm.md (epilogue): Update condition and code.
3725 (sibcall_epilogue): Likewise.
c3635784 3726
d7757711 37272012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3728 Sameera Deshpande <sameera.deshpande@arm.com>
3729 Greta Yorsh <greta.yorsh@arm.com>
d7757711 3730
6a5af5b5 3731 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
3732 * config/arm/arm.md (arm_addsi3) Add an alternative.
d7757711 3733
1a0b0f12 37342012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3735 Sameera Deshpande <sameera.deshpande@arm.com>
3736 Greta Yorsh <greta.yorsh@arm.com>
1a0b0f12 3737
6a5af5b5 3738 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
3739 * config/arm/predicates.md (pop_multiple_fp) New special predicate.
3740 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
1a0b0f12 3741
426be8c5 37422012-06-18 Ian Bolton <ian.bolton@arm.com>
6a5af5b5 3743 Sameera Deshpande <sameera.deshpande@arm.com>
3744 Greta Yorsh <greta.yorsh@arm.com>
426be8c5 3745
6a5af5b5 3746 * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
3747 (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
3748 (pop_multiple_with_return, ldr_with_return) Likewise.
3749 * config/arm/predicates.md (pop_multiple_return) New special predicate.
3750 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
3751 * config/arm/arm.c (arm_output_multireg_pop) New function.
3752 (arm_emit_multi_reg_pop): New function.
426be8c5 3753
d0e38b85 37542012-06-18 Greta Yorsh <Greta.Yorsh@arm.com>
3755
3756 * config/arm/arm.c (ldm_stm_operation_p): Require SP
3757 as base register for loads if SP is in the register list.
3758
897c6e08 37592012-06-18 Richard Guenther <rguenther@suse.de>
3760
3761 PR tree-optimization/53693
3762 * tree-vect-patterns.c (vect_operation_fits_smaller_type):
3763 Reject operands with more than one use.
3764
7c74ee50 37652012-06-18 Bill Schmidt <wschmidt@linux.ibm.com>
3766
3767 PR tree-optimization/53703
3768 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
3769 correctly set bb_for_def[12].
3770
6789e11c 37712012-06-18 Steven Bosscher <steven@gcc.gnu.org>
3772
3773 * config/vax/vax.h (VMS_TARGET): Remove.
3774
04dbf3c4 37752012-06-18 Richard Guenther <rguenther@suse.de>
3776
3777 * tree-vrp.c (extract_range_from_assert): Split out range
3778 intersecting code.
3779 (intersect_ranges): New function.
3780 (vrp_intersect_ranges): Likewise.
3781
91f7d5ff 37822012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3783
3784 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
3785 r187965.
3786
65729bd0 37872012-06-18 Tejas Belagod <tejas.belagod@arm.com>
3788
3789 * doc/md.texi: Document int iterators.
3790 * read-rtl.c (ints): New iterator group.
3791 (find_int): Int iterator group callback.
3792 (apply_int_iterator): Likewise.
3793 (apply_iterators): Traverse int iterator table and add all the used
3794 iterators to list.
6a5af5b5 3795 (initialize_iterators): Initialize data structures and callbacks for
3796 int iterators.
65729bd0 3797 (read_rtx): Parse and read mappings for int iterators.
3798 (read_rtx_code): Record int iterator usage.
3799
fe265396 38002012-06-18 Richard Sandiford <rdsandiford@googlemail.com>
3801
3802 PR middle-end/53698
3803 * expr.c (expand_expr_addr_expr_1): Convert to tmode before
3804 performing an addition.
3805
21eb4639 38062012-06-17 Steven Bosscher <steven@gcc.gnu.org>
3807
3808 * output.h (split_double): Move prototype to rtl.h.
3809 (constructor_static_from_elts_p): Move prototype to tree.c.
3810 * rtl.h (split_double): Moved here from output.h.
3811 * tree.h (constructor_static_from_elts_p): Moved here from output.h.
3812 * final.c (split_double): Move from here ...
3813 * rtlanal.c (split_double): ... to here.
3814 * expr.c: Do not include output.h.
3815
1fe976c3 38162012-06-17 Steven Bosscher <steven@gcc.gnu.org>
3817
3818 * cfglayout.h: Remove.
3819 * cfglayout.c: Remove.
3820 * function.h (struct function): Remove x_last_location field.
3821 * function.c: Do not include cfglayout.h.
3822 (expand_function_start): Do not call no-op force_next_line_note.
3823 (expand_function_end): Likewise.
3824 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h.
3825 (unlink_insn_chain): Moved here from cfglayout.c.
3826 (skip_insns_after_block, label_for_bb, record_effective_endpoints,
3827 into_cfg_layout_mode, outof_cfg_layout_mode,
3828 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
3829 relink_block_chain, fixup_reorder_chain, verify_insn_chain,
3830 fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
3831 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
3832 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
3833 cfg_layout_finalize): Likewise.
3834 (rtl_can_remove_branch_p): Likewise.
3835 * rtl.h (insn_scope): Move prototype from cfglayout.h here.
3836 (duplicate_insn_chain): Likewise.
3837 (force_next_line_note): Remove prototype.
3838 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h.
3839 (last_location): Remove #define to emit.x_last_location.
3840 (force_next_line_note): Remove no-op function.
3841 (init_emit): Don't set x_last_location.
3842 (block_locators_locs, block_locators_blocks, locations_locators_locs,
3843 locations_locators_vals, prologue_locator, epilogue_locator,
3844 curr_location, last_location, curr_block, last_block, curr_rtl_loc):
3845 Move POD to here from cfglayout.c.
3846 (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
3847 set_curr_insn_source_location, get_curr_insn_source_location,
3848 set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
3849 locator_scope, insn_scope, locator_location, locator_line, insn_line,
3850 locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
3851 * cfghooks.h: Remove double-include protection.
3852 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
3853 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
3854 * final.c: Do not include cfglayout.h.
3855 (choose_inner_scope, change_scope): Move to here from cfglayout.c.
3856 (reemit_insn_block_notes): Likewise. Make static.
3857 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
3858 operation_could_trap_p, tree_could_throw_p): Move from here...
3859 * tree.h: ... to here.
3860 * gengtype.c (open_base_files): Remove cfglayout.h from the list.
3861 * profile.c: Do not include cfghooks.h.
3862 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
3863 * modulo-sched.c: Likewise.
3864 * loop-unswitch.c: Do not include cfglayout.h.
3865 * sched-ebb.c: Likewise.
3866 * tracer.c: Likewise.
3867 * ddg.c: Likewise.
3868 * tree-vect-loop-manip.c: Likewise.
3869 * loop-init.c: Likewise.
3870 * dwarf2out.c: Likewise.
3871 * hw-doloop.c: Likewise.
3872 * loop-unroll.c: Likewise.
3873 * cfgcleanup.c: Likewise.
3874 * bb-reorder.c: Likewise.
3875 * sched-rgn.c: Likewise.
3876 * tree-cfg.c: Likewise.
3877 * config/alpha/alpha.c: Likewise.
3878 * config/spu/spu.c: Likewise.
3879 * config/sparc/sparc.c: Likewise.
3880 * config/sh/sh.c: Likewise.
3881 * config/c6x/c6x.c: Likewise.
3882 * config/ia64/ia64.c: Likewise.
3883 * config/rs6000/rs6000.c: Likewise.
3884 * config/score/score.c: Likewise.
3885 * config/mips/mips.c: Likewise.
3886 * config/bfin/bfin.c: Likewise.
3887 * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
3888 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
3889 * config/spu/t-spu-elf (spu.o: $): Likewise.
3890 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
3891
aedb7bf8 38922012-06-17 Steven Bosscher <steven@gcc.gnu.org>
3893
3894 * cfgloop.h: Do not include rtl.h.
3895 (enum iv_extend_code): New.
3896 (struct rtx_iv): Use iv_extend_code instead of rtx_code.
3897 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
3898 * loop-iv.c (iv_extend_to_rtx_code): New function to translate
3899 an IV_EXTEND_CODE to an RTX_CODE.
3900 (dump_iv_info): Update for rtx_iv field type change.
3901 (iv_constant): Likewise.
3902 (iv_subreg): Likewise.
3903 (iv_extend): Likewise.
3904 (iv_neg): Likewise.
3905 (iv_add): Likewise.
3906 (iv_mult): Likewise.
3907 (iv_shift): Likewise.
3908 (get_biv_step_1): Likewise.
3909 (get_biv_step): Likewise.
3910 (iv_analyze_biv): Likewise.
3911 (get_iv_value): Likewise.
3912 (shorten_into_mode): Likewise.
3913 (canonicalize_iv_subregs): Likewise.
3914 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
3915 of MAY_HAVE_DEBUG_INSNS.
3916 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
3917 * tree-ssa-loop-prefetch.c: Likewise.
3918
f80de6c2 39192012-06-17 Steven Bosscher <steven@gcc.gnu.org>
3920
3921 * expmed.c (ceil_log2): Move from here...
3922 * hwint.c: ... to here for older GCCs...
3923 * hwint.h: ... and here for newer GCCs.
3924 * rtl.h (ceil_log2): Remove prototype.
3925
3926 * tree-phinodes.c: Do not include rtl.h.
3927 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
3928
6df83406 39292012-06-17 Steven Bosscher <steven@gcc.gnu.org>
3930
3931 * config/cris/cris.h (TARGET_ELF): Remove.
3932 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
3933 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
3934 (LOCAL_LABEL_PREFIX): Likewise.
3935 * config/cris/cris.c (cris_target_asm_named_section): Remove.
3936 (cris_option_override): Simpify using TARGET_ELF==1.
3937 (cris_file_start): Likewise.
3938 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
3939
30f58bc8 39402012-06-17 Uros Bizjak <ubizjak@gmail.com>
3941
3942 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
3943
39e8019f 39442012-06-16 Eric Botcazou <ebotcazou@adacore.com>
3945
3946 PR middle-end/53590
3947 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
3948
30f58bc8 39492012-06-15 Easwaran Raman <eraman@google.com>
ff447f48 3950
3951 * passes.c (init_optimization_passes): Remove pass_call_cdce
3952 from its current position and insert after pass_dce.
3953
6dc33d02 39542012-06-15 Walter Lee <walt@tilera.com>
3955
3956 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
3957
187cc7c7 39582012-06-15 Richard Earnshaw <rearnsha@arm.com>
3959
3960 * arm.c (note_invalid_constants): Don't return a result.
3961 (arm_memory_load_p): Delete function.
3962 (arm_const_double_rtx): Delete iterator variable i;
3963 (fp_immediate_constant): Likewise.
3964 (fp_const_from_val): Likewise.
3965
3966 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
3967
bf0cb017 39682012-06-15 Marc Glisse <marc.glisse@inria.fr>
3969
3970 PR c++/51033
3971 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
cb741a65 3972 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
bf0cb017 3973
d0acfa59 39742012-06-15 Georg-Johann Lay <avr@gjlay.de>
3975
3976 * config/avr/avr.c (avr_default_expand_builtin): New function.
3977 (avr_expand_builtin): Use it.
3978 (avr_expand_unop_builtin): Remove.
3979 (avr_expand_binop_builtin): Remove.
3980 (avr_expand_triop_builtin): Remove.
3981
fc3c948c 39822012-06-15 Michael Matz <matz@suse.de>
3983
3984 PR middle-end/38474
3985 * cfgexpand.c (add_alias_set_conflicts): Remove.
3986 (expand_used_vars): Don't call it.
3987 (aggregate_contains_union_type): Remove.
3988 * function.c (n_temp_slots_in_use): New static data.
3989 (make_slot_available, assign_stack_temp_for_type): Update it.
3990 (init_temp_slots): Zero it.
3991 (remove_unused_temp_slot_addresses): Use it for quicker removal.
3992 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
3993
930802aa 39942012-06-15 Michael Matz <matz@suse.de>
3995
3996 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
3997 argument, don't emit assign statement if value is directly usable.
3998 (gimplify_expr): Adjust.
3999
8f1c7d19 40002012-06-15 Michael Matz <matz@suse.de>
4001
4002 * gimplify.c (gimplify_modify_expr): Fold generated statements.
4003 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
4004
bc8c1f83 40052012-06-15 Richard Guenther <rguenther@suse.de>
4006
4007 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
4008 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case
4009 we assert for in set_value_range to VR_VARYING.
4010
d86c91f6 40112012-06-15 Richard Earnshaw <rearnsha@arm.com>
4012
4013 * arm.md (addsf3, adddf3): Use s_register_operand.
4014 (subsf3, subdf3): Likewise.
4015 (mulsf3, muldf3): Likewise.
4016 (difsf3, divdf3): Likewise.
4017 (movsfcc, movdfcc): Likewise.
4018 * predicates.md (f_register_operand): Delete.
4019 (arm_float_rhs_operand): Delete.
4020 (arm_float_add_operand): Delete.
4021 (arm_float_compare_operand): Use s_register_operand when
4022 there's no VFP.
4023 (cirrus_register_operand): Delete.
4024 (cirrus_fp_register): Delete.
4025 (cirrus_shift_const): Delete.
4026 (cmpdi_operand): Remove Maverick support.
4027 * constraints.md (f, v, H): Delete constraints.
4028 (G): Update documentation.
4029 * arm.c (fp_consts_inited): Convert to bool.
4030 (strings_fp): Delete.
4031 (values_fp): Delete.
4032 (value_fp0): New variable.
4033 (init_fp_table): Simplify logic.
4034 (arm_const_double_rtx): Likewise.
4035 (fp_immediate_constant): Likewise.
4036 (fp_const_from_val): Likewise.
4037 (neg_const_double_rtx_ok_for_fpa): Delete.
4038 * doc/md.texi (ARM constraints): Update documentation.
4039
38682b67 40402012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
4041
4042 PR tree-optimization/53636
4043 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
4044 stride when doing basic-block vectorization.
4045
53d84863 40462012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4047
4048 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
4049 into VEC_PERM_EXPR.
4050
127cb1cd 40512012-06-15 Jakub Jelinek <jakub@redhat.com>
4052
eca8fccf 4053 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
4054 allocate and free bbs array for the SLP case.
4055
127cb1cd 4056 PR tree-optimization/51581
4057 * expr.h (choose_multiplier): New prototype.
4058 * expmed.c (choose_multiplier): No longer static.
4059 Change multiplier_ptr from rtx * to UHWI *.
4060 (expand_divmod): Adjust callers.
30f58bc8 4061 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
127cb1cd 4062 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last
4063 argument to new_stmt_vec_info. Attempt to optimize also divisions
4064 by non-pow2 constants if integer vector division isn't supported.
4065 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
4066 don't look at pattern stmts and sequences.
4067
bc0dfc8d 40682012-06-15 Eric Botcazou <ebotcazou@adacore.com>
4069
4070 PR middle-end/53590
4071 * common.opt (-fdelete-dead-exceptions): New switch.
4072 * doc/invoke.texi (Code Gen Options): Document it.
4073 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
4074 insn_could_throw_p predicate. Do not skip an insn that could throw
4075 if dead exceptions can be deleted.
4076 (insn_live_p): Likewise, do not return true in that case.
4077 * dce.c (can_alter_cfg): New flag.
4078 (deletable_insn_p): Do not return false for an insn that can throw if
4079 the CFG can be altered and dead exceptions can be deleted.
4080 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
4081 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
4082 predicate. Do not preserve an insn that could throw if dead exceptions
4083 can be deleted.
4084 * function.h (struct function): Add can_delete_dead_exceptions flag.
4085 * function.c (allocate_struct_function): Set it.
4086 * lto-streamer-in.c (input_struct_function_base): Stream it.
4087 * lto-streamer-out.c (input_struct_function_base): Likewise.
4088 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
4089 statement that could throw as necessary if dead exceptions can be
4090 deleted.
4091
9abfe9e2 40922012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com>
4093
4094 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
4095
e5952d20 40962012-06-14 Oleg Endo <olegendo@gcc.gnu.org>
4097
4098 PR target/53568
4099 * config/sh/sh.md: Add peephole for swapbsi2.
4100 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
4101
60c519ac 41022012-06-14 Uros Bizjak <ubizjak@gmail.com>
4103
e3b79a3d 4104 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
97c56fb6 4105 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute.
60c519ac 4106
4fb62579 41072012-06-14 Jakub Jelinek <jakub@redhat.com>
4108
4109 PR target/53639
4110 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
4111
b805622c 41122012-06-14 Richard Earnshaw <rearnsha@arm.com>
4113
4114 * arm.c (arm_cirrus_insn_p): Delete.
4115 (cirrus_reorg): Delete.
4116 (arm_reorg): Don't call cirrus_reorg.
4117 (arm_final_prescan_insn_p): Don't check for cirrus insns.
4118 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
4119 (adddi3, subdi3): Remove Maverick support.
4120 (arm_adddi3): Likewise.
4121 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
4122 (addsf3, adddf3): Likewise.
4123 (subsf3, subdf3): Likewise.
4124 (mulsf3, muldf3): Likewise.
4125 (ashldi3, ashrdi3, lshrdi3): Likewise.
4126 (floatsisf2, floatsidf2): Likewise.
4127 (fix_truncsfsi2, fix_truncdfsi2): Likewise.
4128 (arm_movdi, thumb1_movdi_insn): Likewise.
4129 (arm_cmpdi_insn): Likewise.
4130 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
4131 (cirrus.md): Don't include.
4132 * cirrus.md: Delete file.
4133 * t-arm (MD_INCLUDES): Remove cirrus.md.
4134
37bd48b8 41352012-06-14 Eric Botcazou <ebotcazou@adacore.com>
4136
4137 * dwarf2out.c (function_possibly_abstracted_p): New static function.
4138 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
4139 cgraph_function_possibly_inlined_p.
4140 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
4141 (process_scope_var): Do not emit concrete instances of abstracted
4142 nested functions from here.
4143 (gen_decl_die): Emit the abstract instance if the function is possibly
4144 abstracted and not only possibly inlined.
4145 (dwarf2out_finish): Find the first non-abstract parent instance and
4146 attach concrete instances on the limbo list to it.
4147
994606f8 41482012-06-14 Richard Earnshaw <rearnsha@arm.com>
4149
4150 * arm.md (divsf3, divdf3): Remove FPA support.
4151 (negsf2, negdf2): Likewise.
4152 (sqrtsf2, sqrtdf2): Likewise.
4153 (movdfcc): Likewise.
4154 (modsf3, moddf3, movxf): Delete.
4155 (push_fp_multi): Delete.
4156 (fpa.md): Don't include it.
4157 * fpa.md: Delete file.
4158 * t-arm (MD_INCLUDES): Remove fpa.md.
4159
f4ac3f3e 41602012-06-14 Bill Schmidt <wschmidt@linux.ibm.com>
4161
4162 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
4163 (cost_for_stmt): Remove decl.
4164 (vect_get_single_scalar_iteration_cost): Correct typo in name.
4165 * tree-vect-loop.c (vect_get_cost): Remove.
4166 (vect_get_single_scalar_iteration_cost): Correct typo in name; use
4167 vect_get_stmt_cost rather than vect_get_cost.
4168 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
4169 vect_get_cost.
4170 (vect_estimate_min_profitable_iters): Correct typo in call to
4171 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
4172 than vect_get_cost.
4173 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
4174 vect_get_cost.
4175 (vect_model_induction_cost): Likewise.
4176 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
4177 typo in call to vect_get_single_scalar_iteration_cost.
4178 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
4179 (cost_for_stmt): Remove unnecessary function.
4180 * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
4181
d5bd3ab2 41822012-06-14 Richard Earnshaw <rearnsha@arm.com>
4183
4184 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
fc3c948c 4185 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
d5bd3ab2 4186 * arm-tables.opt: Regenerated.
fc3c948c 4187 * doc/invoke.texi: Remove references to deleted options.
d5bd3ab2 4188
320bbcd2 41892012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
4190
60c519ac 4191 * config/h8300/genmova.sh: Modified to add offset bits of
320bbcd2 4192 mova/Sz assembly instruction for memory access.
4193 * config/h8300/h8300.c: Likewise.
4194 * config/h8300/mova.md: Likewise.
4195
901e08a3 41962012-06-12 Christian Bruel <christian.bruel@st.com>
4197
4198 PR target/53621
4199 * config/sh/sh.c (sh_option_override): Don't force
4200 flag_omit_frame_pointer and maccumulate_outgoing_args.
4201 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
4202
748eb1f9 42032012-06-14 Richard Guenther <rguenther@suse.de>
4204
4205 * tree-vrp.c (VR_INITIALIZER): New define.
4206 (ranges_from_anti_range): New function.
4207 (extract_range_from_binary_expr_1): Decompose operations on
4208 VR_ANTI_RANGEs to operations on VR_RANGE.
4209 (extract_range_from_unary_expr_1): Likewise.
4210 (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
4211 extract_range_from_unary_expr_1, extract_range_from_unary_expr,
4212 extract_range_from_cond_expr, adjust_range_with_scev,
4213 vrp_visit_assignment_or_call, vrp_visit_phi_node,
4214 simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
4215
1fa4dd5c 42162012-06-13 Richard Henderson <rth@redhat.com>
4217
4218 * hwint.h (HOST_WIDEST_INT_C): New.
4219 (HOST_WIDE_INT_C): New.
4220 (HOST_WIDE_INT_1): Use it.
4221 * config/alpha/alpha.c (alpha_trampoline_init): Use it.
4222
c573c1b5 42232012-06-13 Alexandre Oliva <aoliva@redhat.com>
4224
4225 PR debug/49888
4226 * var-tracking.c: Include alias.h.
4227 (overlapping_mems): New struct.
4228 (drop_overlapping_mem_locs): New.
4229 (clobber_overlapping_mems): New.
4230 (var_mem_delete_and_set, var_mem_delete): Call it.
4231 (val_bind): Likewise, but only if modified.
4232 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
4233 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
4234
df226854 42352012-06-13 Alexandre Oliva <aoliva@redhat.com>
4236
4237 PR debug/47624
4238 * var-tracking.c (loc_exp_dep_pool): New.
4239 (vt_emit_notes): Create and release the pool.
4240 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
4241 (emit_notes_in_bb): Likewise.
4242 (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
4243 (notify_dependents_of_changed_value): Likewise.
4244 (notify_dependents_of_resolved_value): Check that NOT_ONEPART
4245 variables don't have a VAR_LOC_DEP_LST.
4246 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
4247 VALUEs or MEMs of VALUEs.
4248
5ea3fd4b 42492012-06-13 Alexandre Oliva <aoliva@redhat.com>
4250
4251 PR debug/52983
4252 PR debug/48866
4253 * dce.c (word_dce_process_block): Insert debug temps only if the
4254 insn is not marked.
4255 (dce_process_block): Likewise, and if debug.used is not empty,
4256 and only after iterating over all DEFs that might mark the insn.
4257
4015e18c 42582012-06-13 Alexandre Oliva <aoliva@redhat.com>
4259
4260 * common.opt (ftree-coalesce-inlined-vars): New.
4261 (ftree-coalesce-vars): New.
4262 * doc/invoke.texi: Document them.
4263 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
4264 Implement them.
4265
f5d566ff 42662012-06-13 Richard Sandiford <rdsandiford@googlemail.com>
4267
4268 * read-rtl.c (mapping): Remove index field. Add current_value field.
4269 Define heap vectors.
4270 (iterator_group): Fix long line. Remove num_builtins field and
4271 uses_iterator fields. Make apply_iterator take a void * parameter.
4272 (iterator_use, atttribute_use): New structures.
4273 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
4274 (current_iterators, iterator_uses, attribute_uses): New variables.
4275 (uses_mode_iterator_p, uses_code_iterator_p): Delete.
4276 (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
4277 (map_attr_string, apply_iterator_to_string): Remove iterator
4278 and value parameters. Look through all current iterator values
4279 for a matching attribute.
4280 (mode_attr_index, apply_mode_maps): Delete.
4281 (apply_iterator_to_rtx): Replace with...
4282 (copy_rtx_for_iterators): ...this new function.
4283 (uses_iterator_p, apply_iterator_traverse): Delete.
4284 (apply_attribute_uses, add_current_iterators, apply_iterators): New
4285 functions.
4286 (add_mapping): Remove index field. Set current_value field.
4287 (initialize_iterators): Don't set num_builtins and uses_iterator_p
4288 fields.
4289 (find_iterator): Delete.
4290 (record_iterator_use, record_attribute_use): New functions.
4291 (record_potential_iterator_use): New function.
4292 (check_code_iterator): Remove handling of bellwether codes.
4293 (read_rtx): Remove mode maps. Truncate iterator and attribute uses.
4294 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
4295 parameter. Use the first code iterator value instead of the
60c519ac 4296 bellwether_codes array. Use record_potential_iterator_use for modes.
f5d566ff 4297
81170d79 42982012-06-13 Oleg Endo <olegendo@gcc.gnu.org>
4299
4300 PR target/53568
4301 * config/sh/sh.md (bswapsi2): New expander.
4302 (swapbsi2): New insn.
4303
df8c2b2d 43042012-06-13 H.J. Lu <hongjiu.lu@intel.com>
4305
4306 PR target/53647
4307 * config/i386/i386.c (ix86_tune_cost): New variable.
4308 (ix86_option_override_internal): Set ix86_tune_cost. Use
4309 ix86_tune_cost for simultaneous_prefetches, prefetch_block,
4310 l1_cache_size and l2_cache_size.
4311
72940ce4 43122012-06-13 Richard Guenther <rguenther@suse.de>
4313
4314 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
4315 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement
4316 all possible meetings of VR_RANGE with VR_ANTI_RANGE and
4317 VR_ANTI_RANGE with VR_ANTI_RANGE.
4318
295f5c5c 43192012-06-13 Richard Earnshaw <rearnsha@arm.com>
4320
4321 * config.gcc (unsupported): Move obsoleted FPA-based configurations
4322 here from ...
4323 (obsolete): ... here.
4324 (arm*-*-freebsd*): Remove.
4325 (arm*-*-linux*): Only accept EABI variants. Simplify logic.
4326 (arm*-*-uclinux*): Likewise.
4327 (arm*-*-ecos-elf): Remove.
4328 (arm*-*-rtems*): Remove.
4329 (arm*-*-elf): Remove.
4330 (arm*-wince-pe*): Remove.
4331 (arm, --with-fpu): Remove support for fpa and Maverick variants.
4332 * arm/ecos-elf.h: Delete.
4333 * arm/t-strongarm-elf: Delete.
4334 * arm/rtems-elf.h: Delete.
4335 * arm/wince-pe.h: Delete.
4336 * arm/pe.c: Delete.
4337 * arm/pe.h: Delete.
4338 * arm/t-wince-pe: Delete.
4339
6f0ddab1 43402012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
4341
4342 PR tree-optimization/53647
4343 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
4344 targets with no defined cache line size.
4345
d13adc77 43462012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
4347
4348 * targhooks.c (default_builtin_vectorized_conversion): Handle
4349 vec_construct, using vectype to base cost on subparts.
4350 * target.h (enum vect_cost_for_stmt): Add vec_construct.
4351 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
4352 instead of scalar_to-vec.
4353 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
4354 vec_construct in same way as default for now.
4355 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
4356 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
4357 Handle vec_construct, including special case for 32-bit loads.
4358
6b8f7c28 43592012-06-13 Xinyu Qi <xyqi@marvell.com>
4360
4361 * config/arm/arm.c (FL_IWMMXT2): New define.
4362 (arm_arch_iwmmxt2): New variable.
4363 (arm_option_override): Enable use of iWMMXt with VFP.
4364 Disable use of iWMMXt with NEON. Disable use of iWMMXt under
4365 Thumb mode. Set arm_arch_iwmmxt2.
4366 (arm_expand_binop_builtin): Accept VOIDmode op.
4367 (enum arm_builtins): Revise built-in fcode.
4368 (IWMMXT2_BUILTIN): New define.
4369 (IWMMXT2_BUILTIN2): Likewise.
4370 (iwmmx2_mbuiltin): Likewise.
4371 (builtin_description bdesc_2arg): Revise built in declaration.
4372 (builtin_description bdesc_1arg): Likewise.
4373 (arm_init_iwmmxt_builtins): Revise built in initialization.
4374 (arm_expand_builtin): Revise built in expansion.
4375 (arm_output_iwmmxt_shift_immediate): New function.
4376 (arm_output_iwmmxt_tinsr): Likewise.
4377 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
4378 (arm_output_iwmmxt_tinsr): Likewise.
4379 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
4380 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
4381 (rorv4hi3, rorv2si3, rordi3): Likewise.
4382 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
4383 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
4384 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
4385 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
4386 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
4387 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
4388 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
4389 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
4390 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
4391 (ror<mode>3, ror<mode>3_di): Likewise.
4392 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
4393 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
4394 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
4395 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
4396 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
4397 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
4398 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
4399 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
4400 (All instruction patterns): Add wtype attribute.
4401 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
4402 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
4403 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
4404 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
4405 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
4406 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
4407 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
4408 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
4409 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
4410 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
4411 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
4412 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
4413 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
4414 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
4415 (iwmmxt2.md): Include.
4416 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
4417 (TARGET_IWMMXT2): New define.
4418 (TARGET_REALLY_IWMMXT2): Likewise.
4419 (arm_arch_iwmmxt2): Declare.
4420 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
4421 Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
4422 Use C name-mangling for intrinsics.
4423 (__v8qi): Redefine.
4424 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
4425 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
4426 (_m_from_int): Likewise.
4427 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
4428 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
4429 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
4430 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
4431 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
4432 (_mm_tbcst_pi32): Likewise.
4433 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
4434 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
4435 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
4436 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
4437 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
4438 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
4439 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
4440 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
4441 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
4442 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
4443 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
4444 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
4445 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
4446 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
4447 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
4448 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
4449 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
4450 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
4451 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
4452 (_m_to_int): New define.
4453 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
4454 * config/arm/arm-arches.def (iwmmxt2): Likewise.
4455 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
4456 iwmmxt2.md.
4457 * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
4458 (arch): Add "iwmmxt2".
4459 (arch_enabled): Handle "iwmmxt2".
4460 (wtype): New attribute.
4461 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
4462 (UNSPEC_WALIGNI): New unspec.
4463 * config/arm/predicates.md (imm_or_reg_operand): New predicate.
4464 * config/arm/iterators.md (VMMX2): New mode_iterator.
4465 * config/arm/marvell-f-iwmmxt.md: New file.
4466 * config/arm/iwmmxt2.md: New file.
4467
4269c49c 44682012-06-12 Jakub Jelinek <jakub@redhat.com>
4469
4470 PR c/53532
4471 PR c/51034
4472 PR c/53196
4473 * c-decl.c (build_compound_literal): Call c_incomplete_type_error
4474 if type isn't complete.
4475
5a909fae 44762012-06-12 Uros Bizjak <ubizjak@gmail.com>
4477
4478 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
4479
84dabd71 44802012-06-12 Richard Henderson <rth@redhat.com>
4481
4482 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
4483 iterator instead of INT.
5a909fae 4484
239e9670 44852012-06-12 Bill Schmidt <wschmidt@linux.ibm.com>
4486
4487 * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
4488 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
4489 declaration.
4490 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
4491 (tree_ssa_phiopt): Call gate_hoist_loads.
4492 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
4493 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
4494 hoist_adjacent_loads.
4495 (local_mem_dependence): New function.
4496 (hoist_adjacent_loads): Likewise.
4497 (gate_hoist_loads): Likewise.
4498 * common.opt (fhoist-adjacent-loads): New switch.
4499 * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
4500
658f1736 45012012-06-12 Michael Matz <matz@suse.de>
4502
4503 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
4504 (nonoverlapping_memrefs_p): Don't call it here ...
4505 (true_dependence_1): ... but here.
4506
cbc80ce5 45072012-06-12 Richard Guenther <rguenther@suse.de>
4508
4509 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
4510 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
4511 and MEM_SIZE only refines it. Reflect that and be less conservative
4512 if either of the latter is not known.
4513
92f67f6e 45142012-06-12 Jakub Jelinek <jakub@redhat.com>
4515
4516 PR rtl-optimization/53589
4517 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
4518 discovery even when e->dest != target. If any LABEL_REF points
4519 to e->dest label, redirect it to target's label.
4520
c8ad18ed 45212012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
4522
4523 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
4524 condition for generating REG_FRAME_RELATED_EXPR note.
4525 (pop): Add code for generating REG_CFA_RESTORE,
4526 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
4527 (sh_expand_epilogue): Use frame_insn() for FP to SP move.
4528 Set 'frame_p' of calls to output_stack_adjust() to 'true'.
4529
3ea24468 45302012-06-11 Richard Henderson <rth@redhat.com>
4531
ac0eec87 4532 * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
4533 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
4534
3ea24468 4535 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
4536
7bc65ea7 45372012-06-12 Hans-Peter Nilsson <hp@axis.com>
4538
4539 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
4540 Mention that this hook needs to be defined for native TLS.
4541 * doc/tm.texi: Regenerate.
4542
8c20007a 45432012-06-11 Mike Stump <mikestump@comcast.net>
4544
4545 * emit-rtl.c (init_emit_once): Iterate through the
4546 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
4547 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
4548 all the MIN_MODE_PARTIAL_INT modes anymore.
4549
cf9b5bbc 45502012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com>
4551
4552 * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
4553
117f8975 45542012-06-11 Roland McGrath <mcgrathr@google.com>
4555
4556 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
4557 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
4558 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
4559 operand.
4560
658a6fb7 45612012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
4562
4563 PR target/53511
4564 * config/sh/sh.md (fmasf4): New expander.
4565 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern.
4566 (mac_media): Rename to fmasf4_media. Adapt to fma pattern.
4567 * config/sh/sh.opt (mfused-madd): Remove.
4568 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
4569 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
4570 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
4571 as extra options.
4572 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
4573 descriptions.
4574
dfed30bc 45752012-06-11 Richard Henderson <rth@redhat.com>
4576
4577 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
4578
8f6a4a62 45792012-06-11 Richard Guenther <rguenther@suse.de>
4580
4581 PR middle-end/53470
4582 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
4583 replace it with the first non-BLOCK context.
4584
557f718e 45852012-06-11 Richard Guenther <rguenther@suse.de>
4586
4587 * alias.c (aliases_everything_p): Remove.
4588 (DIFFERENT_ALIAS_SETS_P): Likewise.
4589 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
4590 Do not use aliases_everything_p or special-case ANDs. Do not
4591 special-case BLKmode moves.
4592 (may_alias_p): Likewise. Handle BLKmode similar like everywhere
5a909fae 4593 - for SCATCH only.
557f718e 4594
32354eaf 45952012-06-09 Hans-Peter Nilsson <hp@axis.com>
4596
4597 Fix CRIS build errors with --enable-build-with-cxx.
4598 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
4599 variable "and" to "andop".
4600 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
4601 temporary variable for memory model, passing C++-type-correct
4602 parameter type to expand_mem_thread_fence.
4603 ("atomic_compare_and_swap<mode>"): Ditto.
4604
76cdbc6d 46052012-06-09 Richard Henderson <rth@redhat.com>
4606
4607 PR c++/53602
4608 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
4609 (pass_jump): Rename from pass_jump2.
4610 (execute_jump2, pass_jump2): New.
4611 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
4612 perform cfg cleanup here. Move the test of PUSH_ROUNDING
4613 and ACCUMULATE_OUTGOING_ARGS test...
4614 (gate_handle_stack_adjustments): ... here.
4615 * passes.c (init_optimization_passes): Update for pass_jump2 rename.
4616 Place new pass_jump2 after pass_stack_adjustments.
4617 * tree-pass.h (pass_jump): Declare.
4618
86018455 46192012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
4620
4621 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
4622 count trucation.
4623
f62cadce 46242012-06-08 Richard Henderson <rth@redhat.com>
4625
ca8a2f4e 4626 PR c++/53602
4627 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
4628 note to a clobber insn when no other insn is available.
f62cadce 4629
6d8ed506 46302012-06-08 Georg-Johann Lay <avr@gjlay.de>
4631
4632 * config/avr/avr.c (avr_case_values_threshold): Return 7.
4633
7bfdbc17 46342012-06-07 Andreas Schwab <schwab@linux-m68k.org>
4635
4636 * genhooks.c (main): Set progname.
4637 (emit_documentation): Remove variable found_start, always bail out
4638 when a place is missing.
ca8a2f4e 4639 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
7bfdbc17 4640
ab129075 46412012-06-07 Jakub Jelinek <jakub@redhat.com>
4642
4643 PR middle-end/53580
ca8a2f4e 4644 * omp-low.c (scan_omp): Change first argument to gimple_seq *,
4645 call walk_gimple_seq_mod instead of walk_gimple_seq.
ab129075 4646 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
4647 scan_omp_for, scan_omp_sections, scan_omp_single,
4648 execute_lower_omp): Adjust callers.
4649 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
4650 returns false, replace stmt with GIMPLE_NOP.
4651 (check_omp_nesting_restrictions): Instead of issuing warnings,
4652 issue errors and return false if any errors were reported.
4653
b37a3600 46542012-06-06 Steven Bosscher <steven@gcc.gnu.org>
4655
4656 * doc/invoke.texi (fconserve-space): Remove documentation.
4657
98da658b 46582012-06-06 Edmar Wienskoski <edmar@freescale.com>
4659
4660 * config/rs6000/rs6000-tables.opt: Regenerated.
4661
f689d33d 46622012-06-06 Richard Guenther <rguenther@suse.de>
4663
4664 PR tree-optimization/53081
4665 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
4666 (adjacent_dr_p): ... this and make it work for reads, too.
4667 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
4668 (struct partition_s): Change main_stmt to main_dr, add
4669 secondary_dr member.
4670 (build_size_arg_loc): Change to date data-reference and not
4671 gimplify here.
4672 (build_addr_arg_loc): New function split out from ...
4673 (generate_memset_builtin): ... here. Use it and simplify.
4674 (generate_memcpy_builtin): New function.
4675 (generate_code_for_partition): Adjust.
ca8a2f4e 4676 (classify_partition): Streamline pattern detection. Detect memcpy.
f689d33d 4677 (ldist_gen): Adjust.
4678 (tree_loop_distribution): Adjust seed statements for memcpy
4679 recognition.
4680
966d4175 46812012-06-06 Matt Turner <mattst88@gmail.com>
4682
4683 * config/arm/mmintrin.h (_mm_empty): New.
ca8a2f4e 4684 (_m_empty): New.
966d4175 4685
d86dbf92 46862012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
4687
4688 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
4689 * common.opt (fsched-pressure-algorithm=): Remove.
4690 * flag-types.h (sched_pressure_algorithm): Move to...
4691 * sched-int.h (sched_pressure_algorithm): ...here.
4692 * params.def (sched-pressure-algorithm): New param.
4693 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
4694 * common/config/s390/s390-common.c (s390_option_optimization_table):
4695 Remove OPT_fsched_pressure_algorithm_ entry.
4696 * config/s390/s390.c (s390_option_override): Set a default value for
4697 PARAM_SCHED_PRESSURE_ALGORITHM.
4698
aca8cc63 46992012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4700
4701 PR target/53487
4702 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
4703 doing an unsigned compare, make sure the second argument is not a
4704 negative constant.
4705 (rs6000_emit_cmove): Don't allow floating point comparisons when
4706 generating ISEL moves.
4707
e7ae865c 47082012-06-05 Edmar Wienskoski <edmar@freescale.com>
b770074c 4709
4710 * config/rs6000/e5500.md: New file.
4711 * config/rs6000/e6500.md: New file.
4712 * config/rs6000/rs6000.c (processor_costs): Add new costs for
4713 e5500 and e6500.
4714 (rs6000_option_override_internal): Altivec and Spe options not
4715 allowed with e5500. Spe options not allowed with e6500. Increase
4716 move inline limit for e5500 and e6500. Disable string instructions
4717 for e5500 and e6500. Enable branch targets alignment for e5500 and
4718 e6500. Initialize rs6000_cost for e5500 and e6500.
4719 (rs6000_adjust_cost): Add extra scheduling cycles between compare
4720 and brnach for e5500 and e6500.
4721 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
4722 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
4723 e6500.
4724 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
4725 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
4726 ppce6500.
4727 Include e5500.md and e6500.md.
4728 * config/rs6000/rs6000-opt.h (processor_type): Add
4729 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
4730 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
4731 (powerpc*-*-*): Add new cores e5500, e6500.
4732 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
4733
156b8feb 47342012-06-05 Richard Guenther <rguenther@suse.de>
4735
ca8a2f4e 4736 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
156b8feb 4737
d26d40c8 47382012-06-05 H.J. Lu <hongjiu.lu@intel.com>
4739
4740 PR target/53575
4741 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
4742 is used for x86_64-*-*.
4743
ec84182d 47442012-06-05 Richard Guenther <rguenther@suse.de>
4745
4746 PR tree-optimization/30442
4747 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
4748 vectorization stop analysis at the first stmt we cannot compute
4749 a data-reference for instead of giving up completely.
4750
e5edce84 47512012-06-05 Richard Guenther <rguenther@suse.de>
4752
ca8a2f4e 4753 * tree-loop-distribution.c (struct partition_s): Add has_writes member.
e5edce84 4754 (partition_alloc): Initialize it.
4755 (partition_has_writes): New function.
4756 (rdg_flag_uses): Adjust.
4757 (rdg_flag_vertex): Likewise.
4758 (rdg_flag_vertex_and_dependent): Likewise.
4759 (rdg_flag_loop_exits): Likewise.
4760 (build_rdg_partition_for_component): Likewise.
4761 (rdg_build_partitions): Likewise.
4762
0644fcba 47632012-06-05 Richard Guenther <rguenther@suse.de>
4764
4765 PR tree-optimization/53081
4766 * tree-loop-distribution.c (generate_memset_builtin): Handle all
4767 kinds of byte-sized stores.
4768 (classify_partition): Likewise.
4769 (tree_loop_distribution): Adjust seed statements used for
4770 !flag_tree_loop_distribution.
4771
6862f949 47722012-06-05 Alan Modra <amodra@gmail.com>
4773
4774 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
4775 (rs6000_emit_prologue): Ensure register used for inline saves
4776 of vector regs is not the static chain register. Revise comment.
4777
2b1e078e 47782012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
4779
4780 * doc/md.texi (Standard Pattern Names For Generation): Document
4781 sincos pattern.
4782
874bb5cb 47832012-06-04 H.J. Lu <hongjiu.lu@intel.com>
4784
4785 PR bootstrap/53555
4786 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
4787
bf3a97cf 47882012-06-04 Jason Merrill <jason@redhat.com>
4789
4790 * dwarf2out.c (is_unit_die): New.
4791 (copy_declaration_context, copy_ancestor_tree): Use it.
4792 (copy_decls_walk): Likewise.
4793
2a99a57e 47942012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
4795
4796 PR c++/53524
4797 * doc/invoke.texi (Wenum-compare): Update documentation.
4798
0aa42a53 47992012-06-04 Dodji Seketeli <dodji@redhat.com>
4800
4801 PR preprocessor/53463
4802 * parser.c (cp_parser_assignment_expression): Use the location
4803 for the '=' as the default location for the expression.
4804
670e461f 48052012-06-04 Edmar Wienskoski <edmar@freescale.com>
4806
4807 PR target/53559
4808 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
4809 operands.
4810 (altivec_stvlxl): Ditto.
4811 (altivec_stvrx): Ditto.
4812 (altivec_stvrxl): Ditto.
4813
b48acad0 48142012-06-04 Vladimir Makarov <vmakarov@redhat.com>
4815
ca8a2f4e 4816 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
b48acad0 4817 (ira_uniform_class_p): New macro.
4818
4819 * ira.c (setup_uniform_class_p): New function.
4820 (setup_allocno_and_important_classes): Call the function.
4821 (print_unform_and_important_classes): New function.
4822 (print_classes): Rename to print_translated_classes.
4823 (ira_debug_allocno_classes): Add call of
4824 print_unform_and_important_classes.
4825
4826 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
4827 classes instead of pressure classes.
4828
b953589d 48292012-06-04 Aldy Hernandez <aldyh@redhat.com>
4830
4831 PR middle-end/47530
4832 * trans-mem.c (expand_block_edges): Do not skip the first
4833 statement when resetting the BB.
4834
6198d968 48352012-06-04 Richard Guenther <rguenther@suse.de>
4836
4837 * tree-data-ref.c (stores_from_loop): Remove.
4838 (stmt_with_adjacent_zero_store_dr_p): Likewise.
4839 (stores_zero_from_loop): Likewise.
4840 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
4841 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
4842 (adjacent_store_dr_p): New function.
4843 * tree-loop-distribution.c (generate_memset_builtin): Pass
4844 the RDG, use the already available data-reference.
4845 (generate_code_for_partition): Pass down RDG.
4846 (classify_partition): Inline parts of the former
4847 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
4848 (ldist_gen): Remember if there was any detected builtin and
4849 do less work if not and flag_tree_loop_distribution is not set.
4850 (tree_loop_distribution): Inline and fuse stores_from_loop
4851 and stores_zero_from_loop here.
4852
c909c89a 48532012-06-04 Richard Guenther <rguenther@suse.de>
4854
4855 PR middle-end/53471
4856 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
4857 create new assembler names.
4858
f83623cc 48592012-06-04 Richard Guenther <rguenther@suse.de>
4860
4861 * tree-data-ref.c (struct rdg_vertex_info): Remove.
4862 (rdg_vertex_for_stmt): Simplify using gimple_uid.
4863 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
19931eea 4864 hashtable. Record stmt data-references.
f83623cc 4865 (hash_stmt_vertex_info): Remove.
4866 (eq_stmt_vertex_info): Likewise.
4867 (hash_stmt_vertex_del): Likewise.
4868 (build_empty_rdg): Simplify.
4869 (build_rdg): Adjust.
4870 (free_rdg): Likewise.
4871 (ref_base_address): Remove.
4872 (have_similar_memory_accesses): Likewise.
4873 * tree-data-ref.h (create_rdg_vertices): Remove.
4874 (struct rdg_vertex): Add datarefs member.
4875 (RDGV_DATAREFS): New define.
4876 (RDG_DATAREFS): Likewise.
4877 (have_similar_memory_accesses): Remove.
4878 (rdg_has_similar_memory_accesses): Likewise.
4879 * tree-loop-distribution.c (ref_base_address): Re-implement here.
4880 (similar_memory_accesses): Re-implement using existing data-references.
4881 (tree_loop_distribution): Initialize stmt uids for the stmt to
4882 RDG index mapping.
4883 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
4884 access stmt vinfo for stmts in loop.
4885
bcab8a3c 48862012-06-04 Andreas Schwab <schwab@linux-m68k.org>
4887
4888 PR target/53461
4889 * config/m68k/m68k.md ("tablejump"): Fix check for
4890 CASE_VECTOR_PC_RELATIVE.
4891
dff12c10 48922012-06-04 Steven Bosscher <steven@gcc.gnu.org>
4893
4894 * output.h (merge_weak, assemble_alias,
4895 initializer_constant_valid_p,
4896 initializer_constant_valid_for_bitfield_p): Move protos from here...
4897 * tree.h: ... to here.
4898 * cgraphclones.c: Do not include output.h.
4899 * gimplify.c: Likewise.
4900 * reload.c: Likewise.
4901 * recog.c: Likewise.
4902 * tree-ssa-loop-ivopts.c: Likewise.
4903 * tree-switch-conversion.c: Likewise.
4904 * c-parser.c: Likewise.
4905 * c-typeck.c: Likewise.
4906 * Makefile.in: Fix dependencies.
4907
6e5a5492 49082012-06-04 Georg-Johann Lay <avr@gjlay.de>
4909
4910 PR target/46261
4911 * config/avr/avr-stdint.h: New file.
4912 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
4913 newlib-stdint.h
4914
a50fd9b7 49152012-06-04 Jakub Jelinek <jakub@redhat.com>
4916
4917 PR tree-optimization/53550
4918 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
4919 is POINTER_TYPE_P, use sizetype as step type instead of type.
4920
54459dd6 49212012-06-04 Richard Guenther <rguenther@suse.de>
4922
4923 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
4924 (ref_base_address_1): Likewise.
4925 (remove_similar_memory_refs): Likewise.
4926 * tree-data-ref.h (remove_similar_memory_refs): Remove.
4927 * tree-loop-distribution.c (classify_partition): Do not classify
4928 as builtin if -ftree-loop-distribute-patterns is not enabled.
4929 (fuse_partitions_with_similar_memory_accesses): Inline ...
4930 (ldist_gen): ... here. Fuse all non-builtin partitions if
4931 -ftree-loop-distribution is not enabled. Properly return
ca8a2f4e 4932 the number of created partitions. Do not update SSA form here but ...
54459dd6 4933 (tree_loop_distribution): ... once here for the whole function.
4934 Only walk innermost loops, constrain loops we consider here
4935 further. Do not call remove_similar_memory_refs.
4936 (distribute_loop): Do not check number of loop nodes here.
4937
05c9fb04 49382012-06-04 Steven Bosscher <steven@gcc.gnu.org>
4939
4940 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
4941
4fa83f96 49422012-06-03 Martin Jambor <mjambor@suse.cz>
4943
4944 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
4945 (ipa_get_jf_known_type_base_type): Likewise.
4946 (ipa_get_jf_known_type_component_type): Likewise.
4947 (ipa_get_jf_constant): Likewise.
4948 (ipa_get_jf_pass_through_formal_id): Likewise.
4949 (ipa_get_jf_pass_through_operation): Likewise.
4950 (ipa_get_jf_ancestor_offset): Likewise.
4951 (ipa_get_jf_ancestor_type): Likewise.
4952 (ipa_get_jf_ancestor_formal_id): Likewise.
4953 (ipa_get_jf_member_ptr_pfn): Likewise.
4954 * ipa-prop.c (ipa_set_jf_known_type): New function.
4955 (ipa_set_jf_constant): Likewise.
4956 (ipa_set_jf_simple_pass_through): Likewise.
4957 (ipa_set_jf_arith_pass_through): Likewise.
4958 (ipa_set_ancestor_jf): Likewise.
4959 (fill_member_ptr_cst_jump_function): Moved up and renamed to
4960 ipa_set_jf_member_ptr_cst.
4961 (detect_type_change_1): Use the new jump function creation functions.
4962 (compute_complex_assign_jump_func): Likewise.
4963 (compute_complex_ancestor_jump_func): Likewise.
4964 (compute_known_type_jump_func): Likewise.
4965 (compute_scalar_jump_functions): Likewise.
4966 (compute_pass_through_member_ptrs): Likewise.
4967 (determine_cst_member_ptr): Likewise.
4968 (combine_known_type_and_ancestor_jfs): Likewise.
4969 (try_make_edge_direct_simple_call): Likewise.
4970 (try_make_edge_direct_virtual_call): Likewise.
4971 (update_indirect_edges_after_inlining): Likewise.
4972 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
4973 access functions. Incorporat NOP_EXPR and BINFO handling from its
4974 callers.
4975 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
4976 which was in its callers.
4977 (ipa_value_from_jfunc): Use jump function access functions. Some
4978 functionality moved to functions above.
4979 (propagate_vals_accross_ancestor): Likewise.
4980 (propagate_vals_accross_pass_through): Use jump function access
4981 functions.
4982 (propagate_accross_jump_function): Likewise.
4983 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
4984 access functions.
4985 (inline_merge_summary): Likewise.
4986
4f12c67a 49872012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4988
4989 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
4990 * config/pa/pa.c (pa_attr_length_millicode_call): Use
4991 MAX_PCREL17F_OFFSET instead of fixed offset.
4992 (pa_attr_length_call): Likewise.
4993 (pa_attr_length_indirect_call): Likewise.
4994
2b15a89a 49952012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
4996
4997 PR target/53512
6c1286fc 4998 * config/sh/sh.opt (mfsca, mfsrra): New options.
4999 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
5000 condition.
2b15a89a 5001 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
5002 (sinssf2, cossf2): Fold expanders to ...
5003 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
5004 TARGET_FSCA condition.
6c1286fc 5005 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
5006 TARGET_FSCA.
2b15a89a 5007 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
5008 -mno-fsca, -mfsrra, -mno-fsrra.
5009
c90c9973 50102012-06-03 Matt Turner <mattst88@gmail.com>
5011
5012 * config/mips/4600.md (r4700_imul_si): New.
5013 (r4700_imul_di): New.
5014 (r4700_fmul_single): New.
5015 (r4700_fmul_double): New.
5016 * config/mips/mips-cpus.def: Add r4700.
5017 * config/mips/mips.c: Likewise.
5018 * config/mips/mips.md: Likewise.
5019 * config/mips/mips-tables.opt: Regenerate.
5020
1ecd9aaf 50212012-06-02 Steven Bosscher <steven@gcc.gnu.org>
5022
5023 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
5024 new function sparc_initial_elimination_offset.
5025 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
5026 function.
5027 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
5028 Prototype it.
5029
2b15a89a 50302012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
24cd46a7 5031
ca8a2f4e 5032 * expmed.c (expand_mult, choose_multiplier): Change
5033 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
24cd46a7 5034 * expr.c (convert_modes): Likewise.
5035 * explow.c (plus_constant): Likewise.
5036 * fixed-value.c (fixed_saturate1, fixed_saturate2)
5037 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
5038 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
5039 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
5040 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
5041 (do_fixed_shift, fixed_convert, fixed_convert)
5042 (fixed_convert_from_int, fixed_convert_from_int)
5043 (fixed_convert_from_real): Likewise.
5044 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
5045 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
5046 * varasm.c (output_constructor_bitfield): Likewise.
5047 * tree-vrp.c (register_edge_assert_for_2): Likewise.
5048 * double-int.c (rshift_double, lshift_double): Likewise.
6c1286fc 5049 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
5050 Likewise.
24cd46a7 5051 * simplify-rtx.c (mode_signbit_p)
5052 (simplify_const_unary_operation, simplify_binary_operation_1)
5053 (simplify_immed_subreg): Likewise.
5054 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
5055 * tree-vect-generic.c (build_replicated_const): Likewise.
5056 * dbxout.c (stabstr_O): Likewise.
5057 * emit-rtl.c (immed_double_int_const, immed_double_const)
5058 (gen_lowpart_common, init_emit_once): Likewise.
5059 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
5060 (widest_int_cst_value, upper_bound_in_type): Likewise.
5061 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
5062 (fixup_unsigned_type): Likewise.
5063 * real.c (real_to_integer2, real_from_integer): Likewise.
5064 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
5065 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
5066
67227558 50672012-06-01 Eric Botcazou <ebotcazou@adacore.com>
5068
5069 PR middle-end/53501
5070 * fold-const.c (fold_binary_loc): Refine previous change.
5071
988d0588 50722012-06-01 Olivier Hainque <hainque@adacore.com>
5073
5074 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
5075 the "do {" part of the do-while(0) loop.
5076
7d5d66f0 50772012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
5078
5079 * config/i386/i386.c (x86_sched_reorder): New function.
5080 Added new function x86_sched_reorder.
5081
35ec0372 50822012-06-01 Richard Guenther <rguenther@suse.de>
5083
5084 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
5085 Handle PHIs.
5086 (classify_partition): Likewise.
5087
d32bc1d7 50882012-06-01 Richard Guenther <rguenther@suse.de>
5089
5090 * tree-loop-distribution.c (enum partition_kind): New enum.
5091 (struct partition_s): Add kind and main_stmt members.
5092 (partition_alloc): Initialize kind to PKIND_NORMAL.
5093 (partition_builtin_p): New function.
5094 (copy_loop_before): Remove failure path and assert instead.
5095 (generate_loops_for_partition): Likewise.
5096 (generate_memset_zero): Fold into ...
5097 (generate_memset_builtin): ... this.
5098 (classify_partition): New function with code from
5099 can_generate_builtin and generate_builtin.
5100 (generate_builtin): Remove.
5101 (can_generate_builtin): Likewise.
5102 (fuse_partitions_with_similar_memory_accesses): Call
5103 partition_builtin_p instead of can_generate_builtin.
5104 (rdg_build_partitions): Do not call
5105 fuse_partitions_with_similar_memory_accesses here...
5106 (ldist_gen): ... but here after classifying all partitions.
5107 Remove failure path of generate_code_for_partition.
5108 (generate_code_for_partition): Generate code according
5109 to partition classification.
5110
01fdca2b 51112012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
ca8a2f4e 5112 Jonathan Wakely <jwakely.gcc@gmail.com>
01fdca2b 5113
5114 PR c++/50134
5115 * doc/invoke.texi (Warning Options): Explain purpose and differences
5116 between -Wmissing-prototypes and -Wmissing-declarations.
5117
556cfe53 51182012-06-01 Christian Bruel <christian.bruel@st.com>
5119
5120 * gcc.c (save_switch): Add user_p parameter.
5121 (read_specs): Likewise.
5122 (set_specs): Likewise.
5123 (validate_switches): Likewise.
5124 (validate_switches_from_spec): Likewise.
5125 (validate_all_switches): Pass on user_p parameter.
5126 (struct spec_list): Add user_p field.
5127 (struct switchstr): Add known field.
5128 (save_switch): Add known parameter.
5129 (INIT_STATIC_SPEC): Initialize user_p;
5130 (driver_unknown_option_callbac): call save_switch if
5131 OPT_SPECIAL_unknown.
5132 (driver_handle_option): Propagate OPT_specs.
5133 (do_spec_1): Set validated only if known.
5134 (check_live_switch): Likewise.
5135 (validate_switches): Set validated if known or user_spec.
5136
2ef7687b 51372012-06-01 Hans-Peter Nilsson <hp@axis.com>
5138
5139 Add CRIS atomic patterns for 1, 2, and 4 bytes.
5140 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
5141 * config/cris/cris-protos.h: Declare it.
5a909fae 5142 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
2ef7687b 5143 (TARGET_DEFAULT): Add alignment by 32.
5144 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
5145 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
5a909fae 5146 TARGET_CPU_DEFAULT == 32.
2ef7687b 5147 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
5148 * config/cris/cris.md: Include sync.md. Avoid allocating specific
5149 numbers by replacing the define_constants for all UNSPECs with the
5150 equivalent define_c_enum construct.
5151 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
5152 * config/cris/sync.md: New file.
5153
3918c286 51542012-05-31 Matt Turner <mattst88@gmail.com>
5155
5156 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
5157 (r4600_imul_di): New.
5158 (r4600_idiv_si): Rename from r4600_idiv.
5159 (r4600_idiv_di): New.
5160
b5369b7d 51612012-05-31 Steven Bosscher <steven@gcc.gnu.org>
5162
5163 * output.h (__gcc_host_wide_int__): Move to hwint.h.
5164 (decl_default_tls_model): Move to tree.h
5165 (dump_file): Move to system.h.
5166 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
5167 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
5168 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
5169 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
5170 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
5171 dbxout_stab_value_internal_label,
5172 dbxout_stab_value_internal_label_diff): Move from here ...
5173 * dbxout.h: ... to here.
5174 * system.h (dump_file): Moved here from output.h.
5175 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
5176 * tree.h (decl_default_tls_model): Moved here from output.h.
5177 * varasm.c (default_stabs_asm_out_destructor,
5178 default_stabs_asm_out_constructor): Move from here ...
5179 * dbxout.c: ... to here.
5180
5181 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
5182
5183 * collect2.h (dump_file): Rename to dump_ld_file.
5184 * collect2.c: Likewise.
5185 * tlink.c: Likewise.
5186
5187 * alias.c: Do not include output.h.
5188 * auto-inc-dec.c: Likewise.
5189 * bt-load.c: Likewise.
5190 * caller-save.c: Likewise.
5191 * cfg.c: Likewise.
5192 * cfgbuild.c: Likewise.
5193 * cfgcleanup.c: Likewise.
5194 * cfglayout.c: Likewise.
5195 * cfgloop.c: Likewise.
5196 * cfgloopanal.c: Likewise.
5197 * cfgloopmanip.c: Likewise.
5198 * cfgrtl.c: Likewise.
5199 * cgraph.c: Likewise.
5200 * cgraphclones.c: Likewise.
5201 * combine-stack-adj.c: Likewise.
5202 * combine.c: Likewise.
5203 * cprop.c: Likewise.
5204 * cse.c: Likewise.
5205 * cselib.c: Likewise.
5206 * dbgcnt.c: Likewise.
5207 * df-problems.c: Likewise.
5208 * df-scan.c: Likewise.
5209 * dojump.c: Likewise.
5210 * fwprop.c: Likewise.
5211 * gcse.c: Likewise.
5212 * graph.c: Likewise.
5213 * haifa-sched.c: Likewise.
5214 * hw-doloop.c: Likewise.
5215 * ipa-inline-transform.c: Likewise.
5216 * ipa-pure-const.c: Likewise.
5217 * ipa-reference.c: Likewise.
5218 * ipa-utils.c: Likewise.
5219 * ira-build.c: Likewise.
5220 * ira-emit.c: Likewise.
5221 * lcm.c: Likewise.
5222 * loop-doloop.c: Likewise.
5223 * loop-invariant.c: Likewise.
5224 * loop-iv.c: Likewise.
5225 * loop-unroll.c: Likewise.
5226 * loop-unswitch.c: Likewise.
5227 * lto-cgraph.c: Likewise.
5228 * lto-section-in.c: Likewise.
5229 * lto-streamer-in.c: Likewise.
5230 * mcf.c: Likewise.
5231 * mode-switching.c: Likewise.
5232 * postreload-gcse.c: Likewise.
5233 * postreload.c: Likewise.
5234 * predict.c: Likewise.
5235 * profile.c: Likewise.
5236 * ree.c: Likewise.
5237 * reg-stack.c: Likewise.
5238 * regcprop.c: Likewise.
5239 * regmove.c: Likewise.
5240 * regstat.c: Likewise.
5241 * reload1.c: Likewise.
5242 * sched-ebb.c: Likewise.
5243 * sel-sched-dump.c: Likewise.
5244 * simplify-rtx.c: Likewise.
5245 * stor-layout.c: Likewise.
5246 * store-motion.c: Likewise.
5247 * tracer.c: Likewise.
5248 * tree-affine.c: Likewise.
5249 * tree-cfg.c: Likewise.
5250 * tree-cfgcleanup.c: Likewise.
5251 * tree-dfa.c: Likewise.
5252 * tree-into-ssa.c: Likewise.
5253 * tree-nomudflap.c: Likewise.
5254 * tree-optimize.c: Likewise.
5255 * tree-pretty-print.c: Likewise.
5256 * tree-profile.c: Likewise.
5257 * tree-ssa-address.c: Likewise.
5258 * tree-ssa-ccp.c: Likewise.
5259 * tree-ssa-copy.c: Likewise.
5260 * tree-ssa-dom.c: Likewise.
5261 * tree-ssa-loop-ch.c: Likewise.
5262 * tree-ssa-loop-im.c: Likewise.
5263 * tree-ssa-loop-manip.c: Likewise.
5264 * tree-ssa-loop-niter.c: Likewise.
5265 * tree-ssa-loop-prefetch.c: Likewise.
5266 * tree-ssa-loop-unswitch.c: Likewise.
5267 * tree-ssa-loop.c: Likewise.
5268 * tree-ssa-propagate.c: Likewise.
5269 * tree-ssa-structalias.c: Likewise.
5270 * tree-ssa-tail-merge.c: Likewise.
5271 * tree-ssa-threadedge.c: Likewise.
5272 * tree-ssa-threadupdate.c: Likewise.
5273 * tree-ssa-uncprop.c: Likewise.
5274 * tree-ssa-uninit.c: Likewise.
5275 * tree-ssa.c: Likewise.
5276 * value-prof.c: Likewise.
5277 * var-tracking.c: Likewise.
5278 * web.c: Likewise.
5279
5280 * config/m32r/m32r.c: Include dbxout.h.
5281 * config/pa/pa.c: Likewise.
5282 * config/rs6000/rs6000.c: Likewise.
5283
5284 * Makefile.in: Fix dependencies.
5285 * config/rs6000/t-rs5000: Likewise.
5286
25c30572 52872012-05-31 Aldy Hernandez <aldyh@redhat.com>
5288
5289 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
5290 * gimple.h (block_in_transaction): Check for flag_tm.
5291
61025ec0 52922012-05-31 Aldy Hernandez <aldyh@redhat.com>
5293
5294 PR tree-optimization/52558
5295 * cfg.c (alloc_aux_for_edge): Fix comment.
5296 (alloc_aux_for_edge): Remove static.
5297 * basic-block.h (alloc_aux_for_edge): Protoize.
5298 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
5299 (execute_sm_if_changed_flag): New.
5300 (execute_sm_if_changed_flag_set): New.
5301 (execute_sm): Do not generate data races unless requested.
5302 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
5303 (tree_ssa_lim_finalize): Call free_aux_for_edges.
5304 * gimple.h (block_in_transaction): New.
5305 (gimple_in_transaction): Use block_in_transaction.
5306
f69bbc7f 53072012-05-31 Georg-Johann Lay <avr@gjlay.de>
5308
5309 PR target/51345
5310 * config/avr/avr.opt (-msp8): Document it.
5311 * doc/invoke.texi (AVR Options): Ditto. And document related
5312 built-in macros.
5313
d5bf7b64 53142012-05-31 Diego Novillo <dnovillo@google.com>
a44c8c3b 5315
ca8a2f4e 5316 * configure.ac (CXX_FOR_BUILD): Define and substitute.
5317 (BUILD_CXXFLAGS): Define and substitute.
5318 * Makefile.in (BUILD_CXXFLAGS): Define.
5319 (CXX_FOR_BUILD): Define.
5320 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
5321 (LINKER_FOR_BUILD): Likewise.
5322 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
5323 (BUILD_LINKERFLAGS): Likewise.
5324 * configure: Regenerate.
a44c8c3b 5325
0f246197 53262012-05-31 Steven Bosscher <steven@gcc.gnu.org>
5327
5328 * Makefile.in: Fix many dependencies.
5329 * tree-profile.c: Don't include regs.h.
5330 * tree-vectorizer.c: Don't include cfglayout.h.
5331 * tree-vect-stmts.c: Likewise.
5332 * tree-vect-slp.c: Likewise.
5333 * tree-vect-loop.c: Likewise.
5334 * reg-stack.c: Likewise.
5335 * tree-ssa-loop-manip.c: Likewise.
5336 * toplev.c: Likewise.
5337 * varasm.c: Don't include cfglayout.h, basic-block.h,
5338 and tree-iterator.h.
5339 * tree-cfgcleanup.c: Don't include cfglayout.h.
5340 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
5341 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
5342 * cgraphclones.c: Don't include plugin.h.
5343
93110b99 53442012-05-31 Georg-Johann Lay <avr@gjlay.de>
5345
5346 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
5347 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
5348 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
ca8a2f4e 5349
543506e0 53502012-05-31 Richard Guenther <rguenther@suse.de>
5351
5352 * tree-loop-distribution.c (struct partition_s): New struct,
5353 typedef and vector type.
5354 (partition_alloc, partition_free): New functions.
5355 (generate_loops_for_partition, generate_builtin,
5356 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
5357 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
5358 build_rdg_partition_for_component, can_generate_builtin,
5359 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
5360 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
5361 number_of_rw_in_partition, partition_contains_all_rw,
5362 ldist_gen): Use partition_t instead of bitmap.
5363
7da94a4f 53642012-05-31 Georg-Johann Lay <avr@gjlay.de>
5365
ca8a2f4e 5366 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
7da94a4f 5367 * doc/avr-mmcu.texi: Regenerate.
ca8a2f4e 5368
bfcf35ff 53692012-05-31 Richard Guenther <rguenther@suse.de>
5370
5371 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
5372 Use FOR_EACH_SSA_DEF_OPERAND.
5373 (generate_builtin): Adjust.
5374 (stmt_generated_in_another_partition): Remove.
5375 (add_scalar_computations_to_partition): Likewise.
5376 (rdg_build_partitions): Do not call
5377 add_scalar_computations_to_partition.
5378
34409c18 53792012-05-31 Eric Botcazou <ebotcazou@adacore.com>
5380
5381 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
5382 double ints throughout.
5383 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
5384 Check that the position of the field is representable as an integer.
5385
7667733b 53862012-05-31 Richard Guenther <rguenther@suse.de>
5387
5388 * tree-data-ref.c (dr_analyze_innermost): Properly convert
5389 the MEM_REF offset to sizetype.
5390
27677dd8 53912012-05-31 Georg-Johann Lay <avr@gjlay.de>
5392
5393 * doc/invoke.texi (AVR Options): Fix typos.
5394
0e7a4cac 53952012-05-31 Hans-Peter Nilsson <hp@axis.com>
5396
5397 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
5398 and -mcpu= options.
5399 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
aac15713 5400 non-v32 into --march=v0_v10.
0e7a4cac 5401
80ebb64a 54022012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5403
5404 * ira-int.h (target_ira_int): Rename x_move_cost to
5405 x_ira_register_move_cost, x_may_move_in_cost to
5406 x_ira_may_move_in_cost and x_may_move_out_cost to
5407 x_ira_may_move_out_cost. Delete the old fields with
5408 those names and also x_ira_max_register_move_cost,
5409 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
5410 (move_cost, may_move_in_cost, may_move_out_cost)
5411 (ira_max_register_move_cost, ira_max_may_move_in_cost)
5412 (ira_max_may_move_out_cost): Delete.
5413 * ira.c (init_move_cost): Rename to...
5414 (ira_init_register_move_cost): ...this, deleting the old
5415 function with that name. Apply above variable renamings.
5416 Retain asserts for null fields.
5417 (ira_init_once): Don't initialize register move costs here.
5418 (free_register_move_costs): Apply above variable renamings.
5419 Remove code for deleted fields.
5420
a0085a50 54212012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5422
5423 * ira.c (init_move_cost): Adjust choice of subclasses to match
5424 the current ira_init_register_move_cost choice. Use
5425 ira_class_subset_p instead of reg_class_subset_p.
5426 (ira_init_register_move_cost): Assert that move_cost,
5427 may_move_in_cost and may_move_out_cost already hold the desired
5428 values for their ira_* equivalents. For the latter two,
5429 ignore classes that can't store a register of the given mode.
5430
0d089656 54312012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5432
5433 * ira.c (setup_allocno_and_important_classes): Use
5434 ira_class_hard_regs_num to check whether a class has any
5435 allocatable registers.
5436 (ira_init_register_move_cost): Likewise.
5437
f3d26300 54382012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5439
5440 * ira.c (init_move_cost): Adjust local variable names to match
5441 file conventions. Use ira_assert instead of gcc_assert.
5442
36eb146a 54432012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5444
5445 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
5446 Move these definitions and associated target_globals fields to...
5447 * ira-int.h: ...here.
5448 * rtl.h (init_move_cost): Delete.
5449 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
5450 * ira.c: ...here, making the latter static.
5451
ad8d4dca 54522012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5453
5454 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
5455 and ira_register_move_cost instead of init_move_cost and move_cost.
5456
1072fecf 54572012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
5458
5459 * ira.h (target_ira): Delete x_ira_available_class_regs.
5460 (ira_available_class_regs): Delete.
5461 * ira.c (setup_available_class_regs): Delete.
5462 (setup_alloc_classes): Don't call it.
5463 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
5464 ira_available_class_regs.
5465 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
5466 (model_spill_cost): Likewise.
5467 * ira-build.c (low_pressure_loop_node_p): Likewise.
5468 * ira-color.c (color_pass): Likewise.
5469 * ira-emit.c (change_loop): Likewise.
5470 * ira-lives.c (inc_register_pressure, dec_register_pressure)
5471 (single_reg_class, ira_implicitly_set_insn_hard_regs)
5472 (process_bb_node_lives): Likewise.
5473 * loop-invariant.c (gain_for_invariant): Likewise.
5474
7949e3eb 54752012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5476
5477 PR target/52999
5478 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
5479 (pa_section_type_flags): New.
5480 (pa_legitimate_constant_p): Revert previous change.
5481
22760026 54822012-05-30 Steven Bosscher <steven@gcc.gnu.org>
5483
5484 * ira.c (allocate_initial_values): Make static.
5485
91c4f7e4 54862012-05-30 Uros Bizjak <ubizjak@gmail.com>
5487
5488 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
5489 Generate tls_initial_exec_64_sun only when !TARGET_X32.
5490
e8aef9ed 54912012-05-30 Richard Guenther <rguenther@suse.de>
5492
5493 PR middle-end/53501
5494 * fold-const.c (fold_binary_loc): Make sure to call
5495 fold_plusminus_mult_expr with the original sign of operands.
5496
eb3dd80d 54972012-05-30 Steven Bosscher <steven@gcc.gnu.org>
5498
5499 * Makefile.in: Fix many dependencies.
5500 (DWARF2_H): Depend on dwarf2.def.
5501 (RTL_ERROR_H): Depend on rtl-error.h.
5502 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
5503 all gimple-pretty-print.h and tree-pretty-print.h references.
5504
22bcc33d 55052012-05-30 Marc Glisse <marc.glisse@inria.fr>
5506
5507 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
5508 concatenations.
5509
20ecc3c4 55102012-05-30 Richard Guenther <rguenther@suse.de>
5511
5512 PR middle-end/53522
5513 * tree-emutls.c (gen_emutls_addr): Do not add globals to
5514 referenced-vars.
5515
15b37e31 55162012-05-30 Eric Botcazou <ebotcazou@adacore.com>
5517
5518 * explow.c (probe_stack_range): Restore simple control flow and stop
5519 again when the probe cannot be generated if HAVE_check_stack.
5520
77b4556a 55212012-05-30 Jakub Jelinek <jakub@redhat.com>
5522
5523 PR rtl-optimization/53519
5524 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
5525 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
5526
e8f3287f 55272012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5528
5529 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
5530
effa044f 55312012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
5532
5533 PR debug/53453
5534 * doc/tm.texi: Update.
5535 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
5536 * target.def (force_at_comp_dir): New hook.
5537 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
5538 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
5539
41f5b5b0 55402012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
4c654fa7 5541
5542 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
5543 Darwin >= 10.
5544 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
5545 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
5546
de9013ac 55472012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
5548
5549 PR target/51340
5550 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
5551 flag_unsafe_math_optimizations is set.
5552 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
5553 Update description of -mfused-madd.
5554
e10782c9 55552012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
5556
5557 PR target/52941
5558 * config/sh/predicates.md (atomic_arith_operand,
5559 atomic_logical_operand): New predicates.
5560 * config/sh/sh.c (sh_option_override): Check atomic options.
5561 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
5562 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
5563 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
5564 UNSUPPORTED_HARD_ATOMIC_CPU.
5565 * config/sh/sync.md: Update description comments.
5566 (I12): New mode iterator.
5567 (fetchop_predicate, fetchop_constraint): New code attributes.
5568 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
5569 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
5570 atomic_fetch_<fetchop_name>si_hard,
5571 atomic_fetch_<fetchop_name><mode>_hard,
5572 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
5573 atomic_<fetchop_name>_fetchsi_hard,
5574 atomic_<fetchop_name>_fetch<mode>_hard,
5575 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
5576 atomic_test_and_set_hard): New insns.
5577 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
5578 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
5579 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
5580 atomic_test_and_set_soft): Use same formatting for the first line of
5581 the asm block as in new insns above.
5582 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
5583 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
5584 atomic_test_and_set): Integrate new *_hard insns into expanders.
5585 * config/sh/sh.opt (mhard-atomic): New option.
5586 * doc/invoke.texi (SH Options): Document it.
5587
e4a33abd 55882012-05-29 Meador Inge <meadori@codesourcery.com>
5589
5590 * c-decl.c (c_push_function_context): Always create a new language
5591 function.
5592 (c_pop_function_context): Clear the language function created in
5593 c_push_function_context.
5594
9315255d 55952012-05-29 Matt Turner <mattst88@gmail.com>
5596
5597 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
5598 (define_bypass "ev6_fcmov"): New.
5599
ea1760a3 56002012-05-29 Steven Bosscher <steven@gcc.gnu.org>
5601
5602 * integrate.c: Remove.
5603 * integrate.h: Remove.
5604 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
5605 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
5606 * config/rs6000/t-rs6000: Likewise
5607 * config/spu/t-spu-elf: Likewise.
5608 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
5609 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
5610 from integrate.h to here.
5611 (initial_value_entry): New prototype.
5612 * reload.h (allocate_initial_values): Remove prototype.
5613 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
5614 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
5615 integrate.c.
5616 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
5617 set_decl_abstract_flags, set_block_abstract_flags): Move from
5618 integrate.c to here, the only user.
5619 * expmed.c (extract_fixed_bit_field): Remove outdated comment
5620 about integrate.c.
5621 * function.c: Don't include integrate.h.
5622 (struct initial_value_pair, struct initial_value_struct,
5623 get_hard_reg_initial_val, has_hard_reg_initial_val,
5624 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
5625 integrate.c to here.
5626 (initial_value_entry): New function.
5627 * genemit.c (main): Don't print integrate.h include line.
5628 * ira.c: Don't include integrate.h.
5629 (allocate_initial_values): Move from integrate.c to here.
5630 (ira): Update allocate_initial_values call.
5631 * tree-inline.c: Don't include integrate.h.
5632 (function_attribute_inlinable_p): Moved from integrate.c to here.
5633 * cfgexpand.c: Don't include integrate.h.
5634 * except.c: Likewise.
5635 * langhooks.c: Likewise.
5636 * passes.c: Likewise.
5637 * toplev.c: Likewise.
5638 * config/frv/frv.c: Likewise.
5639 * config/pa/pa.c: Likewise.
5640 * config/spu/spu.c: Likewise.
5641 * config/epiphany/epiphany.c: Likewise.
5642 * config/mep/mep.c: Likewise.
5643 * config/score/score.c: Likewise.
5644 * config/picochip/picochip.c: Likewise.
5645 * config/sh/sh.c: Likewise.
5646 * config/alpha/alpha.c: Likewise.
5647 * config/microblaze/microblaze.c: Likewise.
5648 * config/mips/mips.c: Likewise.
5649 * config/v850/v850.c: Likewise.
5650 * config/mmix/mmix.c: Likewise.
5651 * config/bfin/bfin.c: Likewise.
5652 * config/arm/arm.c: Likewise.
5653 * config/s390/s390.c: Likewise.
5654 * config/m32r/m32r.c: Likewise.
5655 * config/rs6000/rs6000.c: Likewise.
5656 * config/c6x/c6x.c: Include function.h instead of integrate.h.
5657 * config/tilegx/tilegx.c: Likewise.
5658 * config/tilepro/tilepro.c: Likewise.
5659
234d19a4 56602012-05-29 Georg-Johann Lay <avr@gjlay.de>
5661
91c4f7e4 5662 * config/avr/t-avr (s-avr-mmcu-texi): Call
234d19a4 5663 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
91c4f7e4 5664
0ab48139 56652012-05-29 Michael Matz <matz@suse.de>
5666
5667 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
5668 assign_temp): Remove 'keep' argument.
5669 (mark_temp_addr_taken): Remove prototype.
5670 * tree.h (expand_decl): Remove prototype.
91c4f7e4 5671 * function.c (struct temp_slot): Remove addr_taken and keep member.
0ab48139 5672 (assign_stack_temp_for_type) Don't initialize above, remove
5673 keep argument.
5674 (assign_stack_temp, assign_temp): Remove keep argument.
5675 (mark_temp_addr_taken): Remove.
91c4f7e4 5676 (preserve_temp_slots): Remove handling of addr_taken and keep members.
0ab48139 5677 (free_temp_slots): Ditto.
5678 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
5679 dead code.
5680 * stmt.c (expand_asm_operands): Remove dead code.
5681 (expand_decl): Remove.
5682 * c-decl.c (finish_struct): Don't call expand_decl.
5683 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
5684 and assign_stack_temp.
5685 * calls.c (save_fixed_argument_area, initialize_argument_information,
5686 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
5687 * expmed.c (extract_bit_field_1): Ditto.
5688 * expr.c (emit_group_load_1, emit_group_store,
5689 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
5690 store_field, expand_constructor, expand_cond_expr_using_cmove,
5691 expand_expr_real_2, expand_expr_real_1): Ditto.
5692 * stmt.c (expand_asm_operands, expand_return): Ditto.
5693
5694 * function.c (pop_temp_slots): Call free_temp_slots.
5695 * calls.c (store_one_arg): Don't call preserve_temp_slots or
5696 free_temp_slots.
5697 * expr.c (expand_assignment): Don't call free_temp_slots.
5698
5699 * config/arm/arm.c (neon_expand_vector_init): Ditto.
5700 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
5701 (ix86_expand_vector_extract): Ditto.
5702 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
5703 ia64_expand_movxf_movrf): Ditto.
5704 * config/mips/mips.c (mips_expand_vi_general): Ditto.
5705 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
5706 extendsfdf2): Ditto.
5707 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
5708 rs6000_expand_vector_set, rs6000_expand_vector_extract,
5709 rs6000_allocate_stack_temp): Ditto.
5710 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
5711 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
5712 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
5713 sparc_expand_vector_init): Ditto.
5714
7843e4bc 57152012-05-29 Michael Matz <matz@suse.de>
5716
5717 * c-tree.h (c_expand_decl): Remove prototype.
5718
5719 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
5720 a kept temp.
5721 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
91c4f7e4 5722 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
7843e4bc 5723 COMPOUND_LITERAL_EXPR.
5724 * function.c (expand_function_start): Don't call expand_decl,
5725 instead assert that we have RTL assigned.
5726 * tree-ssa-live.c (remove_unused_locals): Clear
5727 nonlocal_goto_save_area if its backing variable is removed.
5728 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
5729 as mem inputs.
5730 (expand_decl): Assert that this does nothing.
5731 * calls.c (expand_call): Don't call mark_temp_addr_taken.
5732
87c952b8 57332012-05-29 Richard Guenther <rguenther@suse.de>
5734
5735 PR tree-optimization/53516
5736 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
5737 bitfield accesses.
5738 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
5739
9d75589a 57402012-05-29 Joseph Myers <joseph@codesourcery.com>
5741
5742 * LANGUAGES: Fix typos.
5743 * Makefile.in: Fix typos.
5744 * alias.c: Fix typos.
5745 * auto-inc-dec.c: Fix typos.
5746 * bb-reorder.c: Fix typos.
5747 * cfgcleanup.c: Fix typos.
5748 * cgraph.c: Fix typos.
5749 * cgraph.h: Fix typos.
5750 * cgraphunit.c: Fix typos.
5751 * collect2-aix.h: Fix typos.
5752 * collect2.c: Fix typos.
5753 * compare-elim.c: Fix typos.
5754 * config/alpha/vms.h: Fix typos.
5755 * config/arm/README-interworking: Fix typos.
5756 * config/arm/arm.c: Fix typos.
5757 * config/arm/iterators.md: Fix typos.
5758 * config/arm/vxworks.h: Fix typos.
5759 * config/avr/avr.c: Fix typos.
5760 * config/avr/avr.h: Fix typos.
5761 * config/avr/avr.md: Fix typos.
5762 * config/avr/builtins.def: Fix typos.
5763 * config/c6x/c6x.c: Fix typos.
5764 * config/cr16/cr16.c: Fix typos.
5765 * config/cr16/cr16.md: Fix typos.
5766 * config/cris/cris.md: Fix typos.
5767 * config/darwin.c: Fix typos.
5768 * config/darwin.opt: Fix typos.
5769 * config/i386/i386-c.c: Fix typos.
5770 * config/i386/i386.c: Fix typos.
5771 * config/ia64/ia64.c: Fix typos.
5772 * config/m68k/cf.md: Fix typos.
5773 * config/mep/mep.c: Fix typos.
5774 * config/microblaze/microblaze.c: Fix typos.
5775 * config/microblaze/microblaze.h: Fix typos.
5776 * config/mn10300/mn10300.c: Fix typos.
5777 * config/mn10300/mn10300.md: Fix typos.
5778 * config/pa/pa.c: Fix typos.
5779 * config/picochip/picochip.h: Fix typos.
5780 * config/rs6000/a2.md: Fix typos.
5781 * config/rs6000/rs6000.c: Fix typos.
5782 * config/rs6000/vector.md: Fix typos.
5783 * config/rx/rx.md: Fix typos.
5784 * config/rx/rx.opt: Fix typos.
5785 * config/s390/2097.md: Fix typos.
5786 * config/s390/s390.c: Fix typos.
5787 * config/s390/s390.h: Fix typos.
5788 * config/sh/sh.c: Fix typos.
5789 * config/sh/sh.md: Fix typos.
5790 * config/sparc/sync.md: Fix typos.
5791 * config/spu/spu.c: Fix typos.
5792 * config/spu/spu.md: Fix typos.
5793 * config/vms/vms.c: Fix typos.
5794 * config/vxworks-dummy.h: Fix typos.
5795 * config/vxworks.h: Fix typos.
5796 * cselib.c: Fix typos.
5797 * df-scan.c: Fix typos.
5798 * df.h: Fix typos.
5799 * doc/extend.texi: Fix typos.
5800 * doc/install.texi: Fix typos.
5801 * doc/invoke.texi: Fix typos.
5802 * doc/md.texi: Fix typos.
5803 * doc/plugins.texi: Fix typos.
5804 * doc/rtl.texi: Fix typos.
5805 * dse.c: Fix typos.
5806 * dwarf2asm.c: Fix typos.
5807 * dwarf2out.c: Fix typos.
5808 * except.h: Fix typos.
5809 * expr.c: Fix typos.
5810 * fold-const.c: Fix typos.
5811 * gcc.c: Fix typos.
5812 * gcse.c: Fix typos.
5813 * genautomata.c: Fix typos.
5814 * gengtype-state.c: Fix typos.
5815 * gengtype.c: Fix typos.
5816 * genhooks.c: Fix typos.
5817 * gimple-fold.c: Fix typos.
5818 * gimple-pretty-print.c: Fix typos.
5819 * gimple.c: Fix typos.
5820 * gimple.h: Fix typos.
5821 * gimplify.c: Fix typos.
5822 * graphite-interchange.c: Fix typos.
5823 * graphite-sese-to-poly.c: Fix typos.
5824 * ifcvt.c: Fix typos.
5825 * input.c: Fix typos.
5826 * ipa-cp.c: Fix typos.
5827 * ipa-inline-analysis.c: Fix typos.
5828 * ipa-inline-transform.c: Fix typos.
5829 * ipa-inline.c: Fix typos.
5830 * ipa-pure-const.c: Fix typos.
5831 * ipa-ref.h: Fix typos.
5832 * ipa-reference.c: Fix typos.
5833 * ipa-utils.c: Fix typos.
5834 * ipa.c: Fix typos.
5835 * ira-emit.c: Fix typos.
5836 * ira-lives.c: Fix typos.
5837 * lto-streamer.c: Fix typos.
5838 * lto-streamer.h: Fix typos.
5839 * lto-wrapper.c: Fix typos.
5840 * mcf.c: Fix typos.
5841 * mode-switching.c: Fix typos.
5842 * modulo-sched.c: Fix typos.
5843 * plugin.c: Fix typos.
5844 * postreload.c: Fix typos.
5845 * sched-deps.c: Fix typos.
5846 * sel-sched-ir.c: Fix typos.
5847 * sel-sched-ir.h: Fix typos.
5848 * sel-sched.c: Fix typos.
5849 * sese.c: Fix typos.
5850 * stor-layout.c: Fix typos.
5851 * target-hooks-macros.h: Fix typos.
5852 * target.def: Fix typos.
5853 * trans-mem.c: Fix typos.
5854 * tree-eh.c: Fix typos.
5855 * tree-predcom.c: Fix typos.
5856 * tree-sra.c: Fix typos.
5857 * tree-ssa-address.c: Fix typos.
5858 * tree-ssa-loop-ivopts.c: Fix typos.
5859 * tree-ssa-loop-niter.c: Fix typos.
5860 * tree-ssa-math-opts.c: Fix typos.
5861 * tree-ssa-pre.c: Fix typos.
5862 * tree-ssa-propagate.c: Fix typos.
5863 * tree-ssa-reassoc.c: Fix typos.
5864 * tree-ssa-sccvn.c: Fix typos.
5865 * tree-ssa-ter.c: Fix typos.
5866 * tree-ssa-uninit.c: Fix typos.
5867 * tree-ssanames.c: Fix typos.
5868 * tree-vect-generic.c: Fix typos.
5869 * tree-vect-slp.c: Fix typos.
5870 * tree.c: Fix typos.
5871 * tree.h: Fix typos.
5872 * varasm.c: Fix typos.
5873 * varpool.c: Fix typos.
5874
d668316d 58752012-05-29 Joseph Myers <joseph@codesourcery.com>
5876
5877 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
5878
134f0957 58792012-05-29 Richard Guenther <rguenther@suse.de>
5880
5881 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
5882 for globals.
5883 (add_referenced_var_1): Re-organize. Assert we are not
5884 called for globals.
5885 (remove_referenced_var): Likewise.
5886 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
5887 * tree-mudflap.c (execute_mudflap_function_ops): Do not
5888 call add_referenced_var on globals.
5889 * matrix-reorg.c (transform_access_sites): Likewise.
5890
d6443ebe 58912012-05-29 Steven Bosscher <steven@gcc.gnu.org>
5892
5893 * alias.c (reg_known_value): Make this a VEC.
5894 (reg_known_equiv_p): Make this an sbitmap.
5895 (reg_known_value_size): Remove.
5896 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
5897 set_reg_known_equiv_p): Update for reg_known_value and
5898 reg_known_value_size data structure change.
5899 (init_alias_analysis, end_alias_analysis): Likewise.
5900
c306fbbf 59012012-05-29 Jakub Jelinek <jakub@redhat.com>
5902
5903 PR middle-end/53510
5904 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
5905 to avoid leaking memory. No need to handle memory allocation
91c4f7e4 5906 failure. Double string_len on each reallocation instead of adding 2.
c306fbbf 5907 * gcov.c (read_line): Likewise.
5908
2cfdd775 59092012-05-29 Hans-Peter Nilsson <hp@axis.com>
5910
5911 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
5912 New macros.
5913 * config/cris/cris.md ("trap"): Define, enabled for
5914 TARGET_TRAP_USING_BREAK8.
5915 * config/cris/cris.opt (mtrap-using-break8): New option.
5916
8b64dc3c 59172012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
5918
5919 PR c++/25137
5920 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
5921 for C++.
5922
e67780f7 59232012-05-28 Hans-Peter Nilsson <hp@axis.com>
5924
91c4f7e4 5925 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
3ed894b7 5926 (Standard Names): Fix typos in documentation of atomic patterns.
e67780f7 5927
b3a0814b 59282012-05-27 Nathan Sidwell <nathan@acm.org>
5929
5930 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
5931
eb5d9b7b 59322012-05-26 Jason Merrill <jason@redhat.com>
5933
5934 PR c++/53220
5935 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
5936 about array compound literals.
5937
8ddad41d 59382012-05-26 Eric Botcazou <ebotcazou@adacore.com>
5939
5940 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
5941 if CLEANUP_NO_INSN_DEL.
5942 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
5943 from cfg_layout_merge_blocks.
5944 (emit_nop_for_unique_locus_between): New function.
5945 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
5946 (cfg_layout_merge_blocks): Likewise.
5947
f7583c76 59482012-05-26 Dimitrios Apostolou <jimis@gmx.net>
5949 Paolo Bonzini <bonzini@gnu.org>
5950
5951 * df-scan.c (df_def_record_1): Assert a parallel must contain an
5952 EXPR_LIST at this point. Receive the LOC and move its extraction...
5953 (df_defs_record): ... here. Change if-else to a switch statement.
5954 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
5955 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
5956 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
5957 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
5958 regs_invalidated_by_call.
5959 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
5960 df_get_call_refs().
5961
eaf1e576 59622012-05-25 Eric Botcazou <ebotcazou@adacore.com>
5963
5964 PR lto/52178
5965 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
5966 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
5967
e684d543 59682012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
5969
5970 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
5971 software floating point emulation. No longer build the multilibs
5972 with -mstrict-align.
5973
709ed320 59742012-05-25 Aldy Hernandez <aldyh@redhat.com>
5975
5976 PR middle-end/53008
5977 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
5978 accessed indirectly.
5979 (ipa_tm_create_version): Same.
5980
45476806 59812012-05-25 Uros Bizjak <ubizjak@gmail.com>
5982
5983 PR target/53474
5984 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
5985 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
5986
b04c1b7f 59872012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
5988
5989 PR target/53435
5990 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
5991 (ix86_expand_vec_perm): Use int mode instead of float.
5992 (expand_vec_perm_pshufb): Remove handling of useseless type
5993 conversion.
5994
8ffcff2e 59952012-05-25 Eric Botcazou <ebotcazou@adacore.com>
5996
5997 PR ada/52362
5998 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
5999 gnu_ld variables to yes.
6000 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
6001 (HAVE_GNU_AS): Likewise.
6002 * config.in: Regenerate.
6003 * configure: Likewise.
6004
5bb035a3 60052012-05-25 Tristan Gingold <gingold@adacore.com>
6006
6007 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
6008 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
6009 and preferred_alignment.
6010
bfde030e 60112012-05-25 Tristan Gingold <gingold@adacore.com>
6012
6013 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
6014
5253ef2b 60152012-05-25 Thomas Schwinge <thomas@codesourcery.com>
6016
6017 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
6018 volatile bitfields case.
6019
60202012-05-24 Pat Haugen <pthaugen@us.ibm.com>
409e1a55 6021
6022 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
6023 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
6024 (adjacent_mem_locations): Move some code to and call...
6025 (get_memref_parts): ...new function.
6026 (mem_locations_overlap): New function.
6027 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
6028 (is_mem_ref): Rename to...
6029 (find_mem_ref): ...this. Return MEM rtx.
6030 (get_store_dest): Remove function.
6031 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
6032 new parameter and adjust calls.
6033 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
6034 mem refs overlap for true_store_to_load_dep_costly.
6035 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
6036 passed to adjacent_mem_locations.
6037 (is_costly_group): Walk resolved dependency list.
6038 (force_new_group): Emit group ending nop for Power6/Power7.
6039 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
6040 (group_ending_nop): New define_insn.
6041
8ae39fa8 60422012-05-24 Dodji Seketeli <dodji@redhat.com>
6043
6044 Make unwound macro expansion trace less redundant
6045 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
6046 context of macro definition in the trace, when it's redundant.
6047 Update comments.
6048
141de90e 60492012-05-24 Richard Guenther <rguenther@suse.de>
6050
6051 PR middle-end/53460
6052 * tree-profile.c (tree_profiling): Cleanup the CFG if
6053 execute_fixup_cfg requests it.
6054
1b55a29e 60552012-05-24 Richard Guenther <rguenther@suse.de>
6056
6057 * tree-flow.h (create_var_ann): Remove.
6058 * tree-dfa.c (create_var_ann): Remove and inline into its
6059 single caller ...
6060 (add_referenced_var_1): ... here.
6061 * varpool.c (add_new_static_var): Do not call add_referenced_var
6062 for global vars.
6063 * gimple-fold.c (canonicalize_constructor_val): Likewise.
6064 * tree-switch-conversion.c (build_one_array): Likewise.
6065 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
6066 * tree-flow-inline.h (gimple_referenced_vars): Guard against
6067 NULL fn argument.
6068 * tree-inline.c (remap_gimple_op_r): Likewise. Check
6069 gimple_referenced_vars instead of gimple_in_ssa_p.
6070 (copy_tree_body_r): Likewise.
6071 (setup_one_parameter): Likewise.
6072 (declare_return_variable): Likewise.
6073 (tree_function_versioning): Likewise.
6074
a2623f6b 60752012-05-24 Jakub Jelinek <jakub@redhat.com>
6076
6077 PR tree-optimization/53465
6078 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
6079 vr0 into *vr, then vrp_meet that.
6080 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
6081 have any equivalences.
6082 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
6083 first time.
6084
60852012-05-24 Jim MacArthur <jim.macarthur@arm.com>
71e16a8f 6086
6087 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
6088 hard registers.
6089 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
6090 check end_regno - 1 is a hard register.
6091
cc3f82be 60922012-05-24 Richard Guenther <rguenther@suse.de>
6093
6094 * varpool.c (add_new_static_var): Remove call to create_var_ann.
6095 * tree-ssa-operands.c (create_vop_var): Likewise.
6096
2887c015 60972012-05-24 Richard Guenther <rguenther@suse.de>
6098
6099 PR bootstrap/53466
6100 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
6101 handle globals.
6102 (remove_unused_locals): Pass global_unused_vars to
6103 remove_unused_scope_block_p. Restore code walking all
6104 referenced vars and pruning them.
6105
afea39ad 61062012-05-23 Jan Hubicka <jh@suse.cz>
6107
6108 * tree.h (alias_diag_flags): Remove.
6109 (alias_pair): Remove emitted_diags.
6110 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
6111 symbol_alias_set_t, symbol_alias_set_destroy,
6112 symbol_alias_set_contains, propagate_aliases_backward): Remove.
6113 * toplev.c (compile_file): Do not call finish_aliases_2
45476806 6114 * cgraphunit.c (cgraph_process_new_functions): Do not call
6115 finish_aliases_1.
afea39ad 6116 (handle_alias_pairs): Output diagnostics about aliases to externals.
6117 (assemble_thunks_and_aliases): Use do_assemble_alias.
6118 (output_weakrefs): Likewise.
6119 (finalize_compilation_unit): Do not call finish_aliases_1.
45476806 6120 * ipa.c (symtab_remove_unreachable_nodes): De not call
6121 remove_unreachable_alias_pairs.
afea39ad 6122 * varasm.c (do_assemble_alias): Export.
45476806 6123 (symbol_alias_set_create, symbol_alias_set_destroy,
6124 symbol_alias_set_contains, symbol_alias_set_insert,
6125 propagate_aliases_forward, propagate_aliases_backward,
6126 propagate_aliases_backward, trivially_visible_alias,
6127 trivially_defined_alias, remove_unreachable_alias_pairs,
6128 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
afea39ad 6129 * output.h (do_assemble_alias): Declare.
45476806 6130 * varpool.c (varpool_remove_unreferenced_decls): Do not call
6131 finish_aliases_1.
afea39ad 6132
9d68bc02 61332012-05-23 Martin Jambor <mjambor@suse.cz>
6134
6135 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
6136
4190f293 61372012-05-23 Eric Botcazou <ebotcazou@adacore.com>
6138
6139 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
6140 size handling.
6141 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
6142 (iterative_hash_gimple_type): Adjust comment.
6143 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
6144 domain for an array type instead of the domain type itself.
6145
53b5b75f 61462012-05-23 Richard Guenther <rguenther@suse.de>
6147
6148 PR tree-optimization/53438
6149 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
6150
7ce72b61 61512012-05-23 Georg-Johann Lay <avr@gjlay.de>
6152
6153 PR target/53448
6154 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
6155 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
6156 ASM_OUTPUT_ALIGN.
6157
ad75582e 61582012-05-23 Richard Guenther <rguenther@suse.de>
6159
6160 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
6161 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
6162 via the global_unused_vars bitmap.
6163 (remove_unused_locals): Handle global vars in local-decls via
6164 a global_unused_vars bitmap instead of the used flag in the
6165 var annotation. Simplify global variable handling and removal.
6166
f963f90b 61672012-05-22 Jan Hubicka <jh@suse.cz>
6168
6169 PR middle-end/53426
ad75582e 6170 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
6171 from other partitions.
f963f90b 6172
ad0fe105 61732012-05-22 Jan Hubicka <jh@suse.cz>
6174
6175 PR middle-end/53161
6176 * symtab.c (symtab_register_node): Fix ordering issue.
6177
c93570ad 61782012-05-22 Steven Drake <sbd@NetBSD.org>
6179
6180 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
6181
f8efdac8 61822012-05-22 David Edelsohn <dje.gcc@gmail.com>
6183
6184 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
6185 Use strip_name_encoding target hook.
6186
5084b2e4 61872012-05-22 Richard Guenther <rguenther@suse.de>
6188
6189 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
6190 (init_function_for_compilation): Remove.
6191 * tree-dfa.c (find_vars_r): Take struct function argument.
6192 (find_referenced_vars_in): Adjust.
6193 * tree-ssa-operands.c (clobber_stats): Remove.
6194 (create_vop_var): Take struct function argument. Mark
6195 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
6196 (init_ssa_operands): Take struct function argument.
6197 (fini_ssa_operands): Do not dump dead stats.
6198 * tree-ssa-operands.h (init_ssa_operands): Take struct function
6199 argument.
6200 * cgraphunit.c (init_lowered_empty_function): Adjust.
6201 * lto-streamer-in.c (input_cfg): Likewise.
6202 * tree-inline.c (initialize_cfun): Likewise.
6203 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
45476806 6204 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
5084b2e4 6205 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
6206 virtual operands are not registers.
6207
22ba4121 62082012-05-22 Richard Guenther <rguenther@suse.de>
6209
45476806 6210 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
22ba4121 6211
6084b64c 62122012-05-22 Richard Guenther <rguenther@suse.de>
6213
6214 PR middle-end/53437
6215 * tree-inline.c (setup_one_parameter): Create a dummy init
6216 statement for unused parameters when not optimizing.
6217
665507eb 62182012-05-22 Richard Guenther <rguenther@suse.de>
6219
6220 * tree-flow.h (add_referenced_var_1): Declare.
6221 (add_referenced_var): Define.
45476806 6222 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
665507eb 6223 (add_referenced_var): Rename to ...
6224 (add_referenced_var_1): ... this. Take struct function argument.
6225
f9aa4160 62262012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6227
6228 PR target/53334
6229 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
6230 * config/arm/arm.c (arm_validize_comparison): Define.
6231 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
6232 arm_validize_comparison.
6233 ("cbranchdi4"): Likewise.
6234 ("cstoredi4"): Likewise.
6235 ("movsicc"): Likewise.
6236 ("movsfcc"): Likewise.
6237 ("movdfcc"): Likewise.
6238
6940c58b 62392012-05-22 Dimitrios Apostolou <jimis@gmx.net>
6240
6241 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
f9aa4160 6242 the mw_reg_pool size.
6940c58b 6243
3f55c2b5 62442012-05-22 Paolo Bonzini <bonzini@gnu.org>
6245
6246 PR tree-optimization/53336
6247 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
6248 non-integer integral types to offset type and vice versa.
6249
07f7357d 62502012-05-22 Alan Modra <amodra@gmail.com>
6251
53845569 6252 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
6253 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
6254 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
6255 V_SAVE_INLINE): Delete.
07f7357d 6256 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
6257 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
6258 For ELF targets, use out-of-line restores for -Os and any number
6259 of regs if the restore exits, and out-of-line gp save for two or
6260 more regs. Use save_reg_p to test for holes in reg restore set.
6261 Replace "#if" with "if".
6262
1988c1c3 62632012-05-22 Alan Modra <amodra@gmail.com>
6264
6265 * config/rs6000/rs6000.c (save_reg_p): New function.
6266 (first_reg_to_save, first_fp_reg_to_save): Use it here.
6267 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
6268 (emit_frame_save): Use gen_frame_store.
6269 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
6270 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
6271 vrsave and toc.
6272 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
6273 vrsave, toc, gp and fp restores.
6274
5afb4a41 62752012-05-22 Alan Modra <amodra@gmail.com>
6276
6277 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
6278 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
6279 Move function pointer variables after forward declarations.
6280 (rs6000_builtin_support_vector_misalignment): Make static.
6281 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
6282 (rs6000_function_value, rs6000_can_eliminate): Likewise.
6283
d73df292 62842012-05-21 Bernd Schmidt <bernds@codesourcery.com>
6285
6286 PR rtl-optimization/53373
6287 * caller-save.c (save_call_clobbered_regs): Look into a possible
6288 PARALLEL manually rather than using single_set on a call insn.
6289
445d06b6 62902012-05-21 Jakub Jelinek <jakub@redhat.com>
6291
6292 PR tree-optimization/53436
6293 * omp-low.c (omp_build_component_ref): New function.
6294 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
6295
04275edf 62962012-05-21 Uros Bizjak <ubizjak@gmail.com>
6297
6298 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
6299 arguments to bool.
6300 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
6301 Do not print '.' here. Output operand lossage error for unhandled
6302 sizes. Move.
6303 <case '*'>: Move.
6304 <case '&'>: Ditto.
6305 <case 'Y'>: Ditto.
6306 <case 'z'>: Hardcode "code" argument into error strings.
6307 <case 'Z'>: Ditto.
6308 <case 'D'>: Merge AVX and non-AVX codes.
6309 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
6310 Update call to put_condition_code.
6311
eddf6a68 63122012-05-21 Andreas Schwab <schwab@linux-m68k.org>
6313
6314 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
6315 CC_STATUS_INIT.
6316 (clzsi2): New expander.
6317 (*clzsi2_68k): New insn.
04275edf 6318 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
eddf6a68 6319
6ad451f8 63202012-05-21 Aldy Hernandez <aldyh@redhat.com>
6321
6322 * gimple.h (gimple_set_in_transaction): Remove.
6323 (gimple_in_transaction): Look in BB instead.
6324 (gimple_statement_base): Remove in_transaction field.
6325 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
6326 * trans-mem.c (compute_transaction_bits): Place transaction bit
6327 information into basic blocks.
6328
ef47fd1d 63292012-05-21 Andreas Schwab <schwab@linux-m68k.org>
6330
6331 * expr.c (get_def_for_expr_class): Define only if
6332 HAVE_conditional_move.
6333 (convert_tree_comp_to_rtx): Likewise.
6334
b1182707 63352012-05-21 Uros Bizjak <ubizjak@gmail.com>
6336
6337 PR target/53399
6338 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
6339 for TARGET_BMI.
6340 (ffssi2_no_cmove): Ditto.
6341 (*ffs<mode>_1): Remove insn pattern.
6342 (*tzcnt<mode>_1): New insn pattern.
6343 (*bsf<mode>1): Ditto.
6344
c77bfbc9 63452012-05-21 Richard Guenther <rguenther@suse.de>
6346
6347 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
6348 more referenced vars.
6349 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
6350 flag on variables that have a var-annotation.
6351
7c2df6db 63522012-05-21 Joseph Myers <joseph@codesourcery.com>
6353
6a17c9e0 6354 PR c/53418
7c2df6db 6355 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
6356 from folded operands before wrapping another around the
6357 conditional expression.
6358
8cb435f5 63592012-05-21 Jakub Jelinek <jakub@redhat.com>
6360
e694f1e7 6361 PR tree-optimization/53366
6362 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
6363 tests if complex_numbers == 2, but there are non-complex number loads
6364 too.
6365
791e6391 6366 PR tree-optimization/53409
6367 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
6368 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
6369
8cb435f5 6370 PR tree-optimization/53410
6371 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
6372 instead of build_int_cst (type, 0) where vector types might be
6373 involved. Instead of build_int_cst (type, 1) convert the original
6374 integer_onep argument to the desired type.
6375
31eb619c 63762012-05-21 Michael Matz <matz@suse.de>
6377
6378 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
6379 (simplify_test_exp): Handle one more case of distributive law,
6380 decrease cost threshold.
6381 (tests_attr_p, get_attr_order): New functions.
6382 (optimize_attrs): Use topological order, inline only cheap values.
6383 (write_attr_set): Reset our_known_true after some time.
6384
391d150e 63852012-05-21 H.J. Lu <hongjiu.lu@intel.com>
6386
6387 PR target/53425
6388 * config/i386/i386.c (type_natural_mode): Warn passing SSE
6389 vector argument without SSE enabled changes the ABI.
6390
02a2bdca 63912012-05-21 Richard Guenther <rguenther@suse.de>
6392
6393 PR tree-optimization/53408
6394 * tree-vect-loop.c (vectorizable_induction): Properly check
6395 the restriction that we cannot handle induction results from
6396 the inner loop outside of the outer loop.
6397
bdd31be6 63982012-05-21 H.J. Lu <hongjiu.lu@intel.com>
6399
6400 PR target/53416
6401 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
6402 (UNSPECV_RDRAND): This.
6403 (rdrand<mode>_1): Updated.
6404
6681da88 64052012-05-21 Richard Guenther <rguenther@suse.de>
6406
6407 * tree-loop-distribution.c (can_generate_builtin): Reject
6408 volatile stmts.
6409
abe01860 64102012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
6411
6412 * Makefile.in (options.c): Add options.h to included header
6413 files, before tm.h.
6414
0773b627 64152012-05-21 Razya Ladelsky <razya@il.ibm.com>
6416
b1182707 6417 * tree-parloops.c : Add myself to contributors, update
0773b627 6418 TODO list, add link to wiki.
6419
ae4dcb11 64202012-05-21 Alan Modra <amodra@gmail.com>
6421
6422 * config/rs6000/predicates.md (input_operand): Don't match
6423 constant pool addresses. Remove label_ref, high and plus from
6424 match_code list. Remove redundant CONSTANT_P test.
6425 (splat_input_operand): Similarly update match_code list.
6426 (small_toc_ref): New predicate.
6427 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
6428 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
6429 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
6430 register checks to..
6431 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
6432 generated by create_TOC_reference.
6433 (rs6000_legitimize_address): Update cerate_TOC_reference call.
6434 (rs6000_delegitimize_address): Handle new rtl for toc refs.
6435 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
6436 (use_toc_relative_ref): New function, split out from..
6437 (rs6000_emit_move): ..here. Remove redundant tests. Update
6438 create_TOC_reference calls.
6439 (rs6000_legitimize_reload_address): Formatting. Handle splitting
6440 of medium/large model toc addresses. Use use_toc_relative_ref.
6441 (print_operand): Formatting, style. Adjust for toc changes.
6442 (print_operand_address): Likewise.
6443 (rs6000_output_addr_const_extra): Likewise.
6444 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
6445 than a PLUS. Use this formulation for both high and low part
6446 of -mcmodel=medium/large toc reference too. Before reload,
6447 always use the small model formulation.
6448 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
6449 a PLUS in high part of addresses here.
6450 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6451 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6452 (largetoc_high, largetoc_low): Move earlier. Cope when no
6453 base reg available.
6454 (largetoc_high_plus): New insn.
6455 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
6456 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
6457 (tocref): ..instead do so here, new insn and split.
6458
db3de906 64592012-05-20 H.J. Lu <hongjiu.lu@intel.com>
6460
6461 * config/i386/driver-i386.c (host_detect_local_cpu): Support
6462 RDRND, F16C and FSGSBASE.
6463
c91c5188 64642012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6465
6466 PR rtl-optimzation/53373
6467 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
6468 call pattern. Update split patterns.
6469 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
6470 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
6471
362dc73c 64722012-05-20 Razya Ladelsky <razya@il.ibm.com>
b1182707 6473
6474 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
6475 for outer loops.
362dc73c 6476
18a71d50 64772012-05-18 Jan Hubicka <jh@suse.cz>
6478
6479 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
6480 (cgraph_process_new_functions): Process also aliases.
6481 * lto-streamer-out.c (struct sets): Remove.
6482 (trivally_defined_alias): Remove.
6483 (output_alias_pair_p): Remove.
6484 (output_unreferenced_globals): Remove.
6485 (produce_symtab); Do not handle alias pairs.
6486 (produce_asm_for_decls): Likewise.
6487 * lto-streamer-in.c (input_alias_pairs): Remove.
6488 (lto_read_body): Do not input alias pairs.
6489 (lto_input_constructors_and_inits): Remove.
6490
48c84ee3 64912012-05-18 Jan Hubicka <jh@suse.cz>
6492
b1182707 6493 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
6494 aliases.
48c84ee3 6495
a65b88bf 64962012-05-18 Jan Hubicka <jh@suse.cz>
6497
6498 * cgraphbuild.c (record_reference): Update.
6499 * lto-cgraph.c (lto_output_varpool_node): External vars
6500 are not in other partition even if they are not output
6501 in current partition.
6502 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
6503 argument; fix.
6504 (canonicalize_constructor_val): Take FROM_DECL argument.
6505 (fold_ctor_reference, fold_string_cst_ctor_reference,
6506 fold_array_ctor_reference, fold_nonarray_ctor_reference,
6507 fold_ctor_reference): Likewise.
6508 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
6509 * gimple.h (gimple_fold_builtin): Likewise.
6510
01922927 65112012-05-18 Olivier Hainque <hainque@adacore.com>
6512
6513 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
6514 $(libsubdir) as libexecsubdir.
6515
dcc95d92 65162012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6517
6518 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
6519 relied on signed overflow behavior.
6520
58ccfbea 65212012-05-18 Richard Guenther <rguenther@suse.de>
6522
6523 PR tree-optimization/53346
6524 * tree-loop-distribution.c (ldist_gen): Make sure to apply
6525 builtin transform even when only a single partition with
6526 all reads/writes exists.
6527
a72a38f4 65282012-05-18 Richard Guenther <rguenther@suse.de>
6529
6530 PR tree-optimization/53390
6531 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
6532 strided loads.
6533
97269507 65342012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6535
6536 * tree-ssa-reassoc.c (bip_map): Remove decl.
6537 (completely_remove_stmt): Remove function.
6538 (remove_def_if_absorbed_call): Remove function.
6539 (remove_visited_stmt_chain): Remove __builtin_powi handling.
6540 (possibly_move_powi): Remove function.
6541 (rewrite_expr_tree): Remove calls to possibly_move_powi.
6542 (rewrite_expr_tree_parallel): Likewise.
6543 (attempt_builtin_powi): Build multiplies explicitly rather than
6544 relying on the ops vector and rank system.
6545 (transform_stmt_to_copy): New function.
6546 (transform_stmt_to_multiply): Likewise.
6547 (reassociate_bb): Handle leftover operations after __builtin_powi
6548 optimization; build a final multiply if necessary.
6549
2d4bf241 65502012-05-18 Jan Hubicka <jh@suse.cz>
6551
6552 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
6553 (mark_functions_to_output): Fix sanity check.
b1182707 6554 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
2d4bf241 6555
a7745367 65562012-05-18 Richard Guenther <rguenther@suse.de>
6557
6558 * tree-flow.h (mark_symbols_for_renaming): Remove.
6559 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
b1182707 6560 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
a7745367 6561 (copy_debug_stmt): Likewise.
6562 (expand_call_inline): Likewise.
6563 (declare_return_variable): Mark the return variable for renaming
6564 if necessary.
6565
ffcc986d 65662012-05-18 Andrew Stubbs <ams@codesourcery.com>
6567
6568 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
6569 prototype.
6570 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
6571 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
6572 (ashrdi3,lshrdi3): Likewise.
6573 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
6574
3a966565 65752012-05-18 Meador Inge <meadori@codesourcery.com>
6576
6577 PR rtl-optimization/53352
6578 * cse.c (equiv_constant): Ignore paradoxical subregs.
6579
cb454387 65802012-05-17 Steven Bosscher <steven@gcc.gnu.org>
6581
6582 PR rtl-optimization/53125
6583 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
6584 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
6585 die in the basic block. Correctly top off REG_FREQ and
6586 REG_FREQ_CALLS_CROSSED.
6587 Remove do_not_gen.
6588 (regstat_compute_ri): Allocate and free local_live_last_luid.
6589 Remove do_not_gen.
6590 (regstat_bb_compute_calls_crossed): Correctly top off
6591 REG_FREQ_CALLS_CROSSED.
6592
aa419a52 65932012-05-17 Jan Hubicka <jh@suse.cz>
6594
b1182707 6595 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
6596 constructor over decl without.
aa419a52 6597 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
6598 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
b1182707 6599 * cgraphunit.c (process_function_and_variable_attributes): Finalize
aa419a52 6600 extrnal decls.
b1182707 6601 (mark_functions_to_output): Also accept bodies for functions with
6602 clones.
aa419a52 6603 (output_in_order): Skip external vars.
6604 * lto-cgraph.c (lto_output_node): External functions are never in other
6605 partition.
6606 (lto_output_varpool_node): Likewise.
6607 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
6608 forgotten initializers.
6609 * ipa.c (process_references): Handle external vars.
6610 (symtab_remove_unreachable_nodes): Update to handle external vars.
6611 (varpool_externally_visible_p): External vars are externally visible.
6612 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
6613 * varpool.c (varpool_remove_node): Remove constructor.
6614 (decide_is_variable_needed): Handle externals.
6615 (varpool_remove_unreferenced_decls): Likewise.
6616
db490cb6 66172012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
6618
6619 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
6620 (enable_warning_as_error): Do not special case Wuninitialized.
6621 * optc-gen.awk: Add sanity checks.
6622
19931eea 66232012-05-17 Jan Hubicka <jh@suse.cz>
a7847fbd 6624
6625 * ipa-reference.c (is_proper_for_analysis): Do not check flags
6626 that might change as result of global optimization.
6627 (analyze_function): Do not check analyzed and externally_visible
6628 flags; be happy about address dereferences.
6629 (propagate): Prune all_module_statics so it really contains just
6630 statics; prune all the local summaries.
6631 (ipa_reference_write_optimization_summary): Simplify.
6632
54418b27 66332012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
6634
b1182707 6635 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
54418b27 6636 * config/m68k/m68k-tables.opt: Regenerated.
6637 * doc/invoke.texi (M680x0 Options): Document.
6638
2670559d 66392012-05-16 Dave Boutcher <daveboutcher@gmail.com>
6640 Patrick Marlier <patrick.marlier@gmail.com>
6641
6642 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
6643 indirect calls.
6644
b4b3bbba 66452012-05-16 H.J. Lu <hongjiu.lu@intel.com>
6646
6647 * configure: Regenerated.
6648
1eaedae6 66492012-05-16 Andrew Pinski <apinski@cavium.com>
6650
6651 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
6652 GIMPLE_ASSIGN.
6653
ad35ffdc 66542012-05-16 David S. Miller <davem@davemloft.net>
6655
6656 * jump.c (delete_related_insns): If we remove a CALL, make sure
6657 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
6658
97bad265 66592012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6660
6661 PR tree-optimization/53217
6662 * tree-ssa-reassoc.c (bip_map): New static variable.
6663 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
6664 (attempt_builtin_powi): Save feeding multiplies on a stack.
6665 (reassociate_bb): Create and destroy bip_map.
6666
9281483c 66672012-05-16 Olivier Hainque <hainque@adacore.com>
6668
6669 * Makefile.in (install-no-fixedincludes): New target, former toplevel
6670 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
6671 Add comments and improve stamp preservation across the whole sequence.
6672 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
6673
cbbd431d 66742012-05-16 Richard Guenther <rguenther@suse.de>
6675
6676 * tree-inline.c (insert_init_stmt): Do not call
6677 mark_symbols_for_renaming.
6678 (setup_one_parameter): Avoid initializing unused parameters.
6679 (declare_return_variable): Properly handle DECL_BY_REFERENCE
6680 return vars in SSA form.
6681
35505f9a 66822012-05-16 Richard Guenther <rguenther@suse.de>
6683
6684 * tree-flow.h (get_virtual_var): Remove.
6685 * tree-dfa.c (get_virtual_var): Likewise.
6686
1e8cf080 66872012-05-16 Richard Guenther <rguenther@suse.de>
6688
6689 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
6690 Remove set-only bitmap of new names.
6691 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
6692 CFG hooks.
6693 * tree-flow.h (ssa_names_to_replace): Remove.
6694 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
6695
5ef4302d 66962012-05-16 Richard Guenther <rguenther@suse.de>
6697
6698 PR tree-optimization/53364
6699 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
6700 detect a view-conversion of the decl.
6701
a60f3e81 67022012-05-16 Dodji Seketeli <dodji@redhat.com>
6703
6704 PR preprocessor/7263
6705 * c-tree.h (enum c_declspec_word): Declare new enum.
6706 (struct c_declspecs::locations): New member.
6707 (declspecs_add_qual, declspecs_add_scspec)
6708 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
6709 location parameter.
6710 * c-decl.c (build_null_declspecs): Initialize the new struct
6711 c_declspecs::locations member.
6712 (declspecs_add_addrspace): Take a location parameter for the
6713 address space. Store it onto declaration specifiers.
6714 (declspecs_add_qual): Likewise, take a location parameter for the
6715 qualifier.
6716 (declspecs_add_type): Likewise, take a location parameter for the
6717 type specifier.
6718 (declspecs_add_scspec): Likewise, take a location parameter for
6719 the storage class specifier.
6720 (declspecs_add_attrs): Likewise, take a location parameter for the
6721 first attribute.
6722 (declspecs_add_alignas): Likewise, take a location parameter for
6723 the alignas token.
6724 (finish_declspecs): For diagnostics, use the location of the
6725 relevant declspec, instead of the global input_location.
6726 * c-parser.c (c_parser_parameter_declaration): Pass the precise
6727 virtual location of the declspec to the declspecs-setters.
6728 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
6729 repeatedly.
6730
e54ce707 67312012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
6732
6733 * configure.ac: Stack protector enabling for Android targets.
6734 * configure: Regenerate.
6735
f42197a5 67362012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
6737
6738 * ira.c (pseudo_move_insn): Delete.
6739 (find_moveable_pseudos): Don't set it.
6740 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
6741 the definitions of the original pseudo. Delete all of them.
6742
76303083 67432012-05-16 Olivier Hainque <hainque@adacore.com>
6744
6745 * config/rs6000/rs6000-opts.h (enum processor_type): Add
6746 PROCESSOR_PPC8548.
6747 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
6748 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
6749 * config/rs6000/8540.md: indicate that the units/patterns apply to
6750 ppc8548 as well.
6751
6752 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
6753 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
6754 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
6755 related flags, check that what is queried is supported by the selected
6756 configuration. Rework the single/double_float and MASK_STRING resets to
6757 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
6758 costs for PROCESSOR_PPC8548 as well.
6759 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
6760 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
6761 statement instead of a sequence of ifs.
6762
6763 * config/rs6000/rs6000.h (TARGET_E500): Remove.
6764 (TARGET_NO_LWSYNC): Adjust accordingly.
6765 * config/rs6000/e500.h (TARGET_E500): Remove.
6766 (CHECK_E500_OPTIONS): Adjust accordingly.
6767 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
6768 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
6769 * config/rs6000/linuxspe.h: Likewise.
6770 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
6771 superfluous comments.
6772 * config/rs6000/e500-double.h: Remove.
6773
6774 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
6775 default to with_cpu=8548 if --enable-e500-double, and to 8540
6776 otherwise.
6777 (set misc flags section): For powerpc*|rs6000*, remove inclusion
6778 of e500-double.h for --enable-e500-double.
6779
136fa403 67802012-05-16 Olivier Hainque <hainque@adacore.com>
6781
6782 * Makefile.in (s-header-vars): Resort to -n instead of trailing
6783 -e d in sed invocation.
6784
816c3ff2 67852012-05-16 Hans-Peter Nilsson <hp@axis.com>
6786
6787 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
6788 source-code.
6789 * doc/tm.texi: Regenerate.
6790
de9d5a8c 67912012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
6792
6793 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
6794
f2a4755d 67952012-05-15 Jakub Jelinek <jakub@redhat.com>
6796
6797 PR target/53358
6798 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
6799 that operands[2] is either immediate, or q_regs_operand.
6800
37ffa8fe 68012012-05-15 Richard Guenther <rguenther@suse.de>
6802
6803 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
6804 (assemble_thunk): Likewise. Manually rename and register
6805 function arguments.
6806
e7ea1c21 68072012-05-15 Richard Guenther <rguenther@suse.de>
6808
6809 PR tree-optimization/53355
6810 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
6811 by constants.
6812
d1f1c0a9 68132012-05-15 Tristan Gingold <gingold@adacore.com>
6814
b1182707 6815 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
d1f1c0a9 6816
5168aa67 68172012-05-15 Richard Guenther <rguenther@suse.de>
6818
6819 * gimple.c (gimple_set_modified): Move ...
6820 * gimple.h (gimple_set_modified): ... here.
6821
135c4579 68222012-05-15 Tristan Gingold <gingold@adacore.com>
6823
6824 * ira-color.c (move_spill_restore): Add a guard.
6825
675fed0b 68262012-05-15 Tristan Gingold <gingold@adacore.com>
6827
6828 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
6829 plus_constant.
6830
94a6770c 68312012-05-15 Eric Botcazou <ebotcazou@adacore.com>
6832
6833 * gimplify.c (gimplify_init_constructor): Do a block move for very
6834 small objects as well.
6835
e453e47c 68362012-05-15 Bernd Schmidt <bernds@codesourcery.com>
6837
6838 * ira.c (find_moveable_pseudos): Skip registers whose
6839 DF_REG_EQ_USE_COUNT is nonzero.
6840
c9bf5a0e 68412012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
6842
b1182707 6843 * doc/md.texi (fma): Define to only be applicable for single rounding.
d1f1c0a9 6844
c6dab7d2 68452012-05-14 Uros Bizjak <ubizjak@gmail.com>
6846
6847 PR target/46098
6848 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
6849 generate target register for "load" class builtins.
6850
6851 Revert:
6852 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
6853
6854 PR target/46098
6855 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
6856 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
6857 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
6858 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
6859 (<sse>_movu<ssemodesuffix>): New expander.
6860 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
6861 (avx_movdqu<avxmodesuffix>): New expander.
6862 (*sse2_movdqu): Rename from sse2_movdqu.
6863 (sse2_movdqu): New expander.
6864
801c4432 68652012-05-14 Marc Glisse <marc.glisse@inria.fr>
6866
6867 PR target/52607
6868 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
6869 (canonicalize_perm): ... new function.
6870 (expand_vec_perm_2vperm2f128_vshuf): New function.
6871 (ix86_expand_vec_perm_const_1): Call it.
6872
5dc7473d 68732012-05-14 Andrew Pinski <apinski@cavium.com>
6874 H.J. Lu <hongjiu.lu@intel.com>
6875 Jakub Jelinek <jakub@redhat.com>
6876
6877 PR target/53315
c6dab7d2 6878 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
5dc7473d 6879 (xbegin): Updated.
6880
f449422d 68812012-05-14 Jakub Jelinek <jakub@redhat.com>
6882
130129dd 6883 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
6884 lineno 1 the same as lineno 0 before first start file directive.
6885 (optimize_macinfo_range): Likewise.
6886
f449422d 6887 * dwarf2out.c (have_macinfo): Define.
6888 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
6889 attribute, don't force empty compilation unit and don't emit any
6890 .debug_macinfo/.debug_macro section if macinfo_table is empty.
6891
5a9cc803 68922012-05-14 Georg-Johann Lay <avr@gjlay.de>
6893
6894 PR target/53344
6895 * config/avr/avr.c (avr_const_address_lo16): Remove.
6896 (avr_assemble_integer): Print ".byte lo8(x)",
6897 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
b1182707 6898 .warning if 3-byte address is assembled.
5a9cc803 6899 * doc/extend.texi (AVR Named Address Spaces): Document that
6900 binutils 2.23 is needed to assemble 3-byte addresses.
6901
a9696ee9 69022012-05-14 Richard Guenther <rguenther@suse.de>
6903
6904 * tree-vect-data-refs.c (vect_setup_realignment): Remove
6905 call to mark_symbols_for_renaming.
6906 (vect_permute_load_chain): Likewise.
6907 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
6908 instead of calling mark_symbols_for_renaming.
6909 * tree-vect-stmts.c (read_vector_array): Remove call to
6910 mark_symbols_for_renaming.
6911 (write_vector_array): Likewise.
6912 (vectorizable_call): Likewise.
6913 (vectorizable_store): Likewise.
6914 (vectorizable_load): Likewise.
6915 * matrix-reorg.c (transform_allocation_sites): Likewise.
6916 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
6917 (create_expression_by_pieces): Likewise.
6918
95eb4ad3 69192012-05-14 Richard Guenther <rguenther@suse.de>
6920
6921 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
6922 of statements for renaming.
6923 (force_gimple_operand_1): Likewise, consistently for both
6924 calls to force_gimple_operand and force_gimple_operand_gsi.
6925
083152fb 69262012-05-14 Richard Guenther <rguenther@suse.de>
6927
6928 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
6929 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
6930 to update_ssa.
6931 (expand_omp_for): Likewise.
6932 (expand_omp_for_generic): Adjust conditional add to referenced vars.
6933 Use make_rename_temp for temporaries that should be rewritten into
6934 SSA form.
6935 (expand_omp_for_static_nochunk): Likewise.
6936 (expand_omp_atomic_pipeline): Likewise.
6937
506aa8fc 69382012-05-14 Richard Guenther <rguenther@suse.de>
6939
6940 PR tree-optimization/53331
6941 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
6942 strided loads.
6943 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
6944
d3b7ee7c 69452012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
6946
6947 PR 53063
6948 * doc/options.texi: (LangEnabledBy): Document it.
6949 * optc-gen.awk: Handle LangEnabledBy.
6950 * opth-gen.awk: Generate declaration for lang-specific functions.
6951 * opt-read.awk: Record lang numbers.
6952 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
6953 (lang_sanitized_name): New.
6954
c8010b80 69552012-05-14 Bernd Schmidt <bernds@codesourcery.com>
6956
6957 * attribs.c (decl_attributes): Avoid emitting a warning if
6958 ATTR_FLAG_BUILT_IN.
6959 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
6960 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
c8010b80 6961 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
6962 define a string "1".
6963 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
6964 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
6965 BUILT_IN_STRCPY): Use it for these functions.
6966 * postreload.c (reload_combine): Deal with SETs inside
6967 CALL_INSN_FUNCTION_USAGE.
6968 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
6969 Look for REG_RETURNED notes and use a cheap restore if possible.
6970 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
6971 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
6972 * ira-build.c (ira_create_allocno, create_cap_allocno,
6973 propagate_allocno_info, propagate_some_info_from_allocno,
6974 copy_info_to_removed_store_destination, ira_flattening): Handle it.
6975 * ira-lives.c (pseudo_regno_single_word_and_live_p,
6976 find_call_crossed_cheap_reg): New static functions.
6977 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
6978 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
6979 a REG_RETURNED note in that case.
6980 * ira.c (setup_reg_renumber): Change assert to allow cases where
6981 allocnos only cross calls for which they are cheap to restore.
6982 * ira-costs.c (ira_tune_allocno_costs): Compare
6983 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
6984 than 0.
6985 * reg-notes.def (REG_RETURNED): New note.
6986 * cse.c (cse_insn): Likewise.
6987 * sched-deps.c (sched_analyze_insn): Likewise.
6988 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
6989 * calls.c (decl_return_flags): New static function.
6990 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
6991 functions that return one of their arguments.
c8010b80 6992 * regcprop.c (struct kill_set_value_data): New.
6993 (kill_set_value): Interpret data as a pointer to such a struct.
6994 Do nothing if the caller wants the register to be ignored.
6995 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
6996
1c88e4bc 69972012-05-14 Richard Guenther <rguenther@suse.de>
6998
6999 PR tree-optimization/53340
7000 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
7001
a31fefa3 70022012-05-14 Richard Guenther <rguenther@suse.de>
7003
7004 * gimplify.c (gimplify_expr): Remove odd code.
7005
d9906773 70062012-05-14 Eric Botcazou <ebotcazou@adacore.com>
7007
7008 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
7009 into a PLUS_EXPR byte offset.
7010
7011 * tree-ssa-pre.c (can_value_number_call): Delete.
7012 (compute_avail): Skip all statements with side effects.
7013 <GIMPLE_CALL>: Skip calls to internal functions.
7014
3e894428 70152012-05-13 Steven Bosscher <steven@gcc.gnu.org>
7016
7017 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
7018
70059cea 70192012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
7020
7021 * common.opt (Wtype-limits): Use EnabledBy.
7022
513529cd 70232012-05-13 Uros Bizjak <ubizjak@gmail.com>
7024
7025 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
7026 (pushtf splitter): Ditto.
7027 (movtf): Ditto.
7028 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
7029 (<code>tf2): Enable for TARGET_SSE.
7030 (*absnegtf2_sse): Ditto.
7031 (copysign<mode>3): Enable TFmode for TARGET_SSE.
7032 (copysign<mode>3_const): Ditto.
7033 (copysign<mode>3_var): Ditto.
7034 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
7035 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
7036 (*<code>tf3): Ditto.
7037 * config/i386/i386.c (struct builtin_description bdesc_args)
7038 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
7039 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
7040 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
7041 Emit a normal call if SSE isn't available.
7042
596112aa 70432012-05-13 Uros Bizjak <ubizjak@gmail.com>
7044
7045 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
7046 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
7047 (<code><mode>3): Ditto.
7048 (*andnot<mode>3): Ditto.
7049 (*andnottf3): Ditto.
7050 (*<code><mode>3): Ditto.
7051 (<code>tf3): Ditto.
7052
4584d89f 70532012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
7054
7055 * optc-gen.awk: Error instead of warning for conflicting help.
7056
cc6e6715 70572012-05-12 Jason Merrill <jason@redhat.com>
7058
7059 PR debug/53235
7060 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
7061 comdat types.
7062
ec3aa8fe 70632012-05-12 Eric Botcazou <ebotcazou@adacore.com>
7064
7065 * function.c (requires_stack_frame_p): If the function can throw
7066 non-call exceptions, return true if the insn can throw internally.
7067
05765a91 70682012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
7069
7070 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
7071
c4d3c065 70722012-05-12 Uros Bizjak <ubizjak@gmail.com>
7073
7074 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
7075 ORDERED and UNORDERED conditions.
7076
0de7f8dd 70772012-05-11 Richard Guenther <rguenther@suse.de>
7078
7079 * tree-flow.h (referenced_var_check_and_insert): Remove.
7080 (find_new_referenced_vars): Likewise.
7081 * tree-dfa.c (referenced_var_check_and_insert): Make static.
7082 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
7083 * tree-inline.c (copy_bb): Use find_referenced_vars_in
7084 instead of find_new_referenced_vars.
7085 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
7086
615091c1 70872012-05-11 Richard Guenther <rguenther@suse.de>
7088
7089 * tree-pass.h (pass_rest_of_compilation,
7090 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
7091 Remove.
7092 * passes.c (pass_all_optimizations, pass_postreload,
7093 pass_all_early_optimizations): Make static.
7094 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
7095 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
7096 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
7097 (delete_tree_ssa): Do not call fini_phinodes.
7098 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
7099
fbb6fbd8 71002012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
7101
7102 PR 53063
7103 * doc/options.texi (EnabledBy): Document
7104 * opts.c: Include opts.h and options.h before tm.h.
7105 (finish_options): Do not handle some sub-options here...
ea1760a3 7106 (common_handle_option): ... instead call common_handle_option_auto
7107 here.
fbb6fbd8 7108 * optc-gen.awk: Handle EnabledBy.
7109 * opth-gen.awk: Declare common_handle_option_auto.
7110 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
7111 (Wmaybe-uninitialized): Likewise.
c6dab7d2 7112 (Wunused-but-set-variable): Likewise.
7113 (Wunused-function): Likewise.
7114 (Wunused-label): Likewise.
7115 (Wunused-value): Likewise.
7116 (Wunused-variable): Likewise.
7117 * opt-read.awk: Create opt_numbers array.
fbb6fbd8 7118
f634c3e9 71192012-05-11 Richard Guenther <rguenther@suse.de>
7120
7121 PR tree-optimization/53295
7122 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
7123 strides.
7124 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
7125 strides when analyzing data-references in a loop context.
7126 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
7127 non-constant strides for now.
7128 (vect_enhance_data_refs_alignment): Ignore data references
7129 that are strided loads.
7130 (vect_analyze_data_ref_access): Handle non-constant strides.
7131 (vect_check_strided_load): Verify the data-reference is a load.
7132 (vect_analyze_data_refs): Restructure to make strided load
7133 support not dependent on gather support.
7134 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
7135 when doing strided or gather loads.
7136 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
7137 integer_zerop to compare stride with zero.
7138
91af12fe 71392012-05-11 H.J. Lu <hongjiu.lu@intel.com>
7140
596112aa 7141 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
91af12fe 7142
015a842e 71432012-05-11 Jan Hubicka <jh@suse.cz>
7144
7145 PR bootstrap/53300
7146 * varpool.c (varpool_assemble_decl): Also output constat pool entries
7147 that output_constant_pool missed.
7148
b87e70ca 71492012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
7150
7151 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
7152 MULTILIB_EXTRA_OPTS.
7153
2b26d531 71542012-05-11 Uros Bizjak <ubizjak@gmail.com>
7155
7156 PR target/53291
7157 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
7158
7c93cdac 71592012-05-11 Uros Bizjak <ubizjak@gmail.com>
7160
7161 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
7162 optimization for TARGET_AVX.
7163 (*movti_internal_sse): Ditto.
7164 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
7165 (*movdi_internal): Ditto.
7166 (*movsi_internal): Ditto.
7167 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
7168 (*movdf_internal_rex64): Ditto.
7169 (*movfd_internal): Ditto.
7170 (*movsf_internal): Ditto.
7171 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
7172
670b32ab 71732012-05-10 Eric Botcazou <ebotcazou@adacore.com>
7174
7175 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
7176 reference as size attribute.
7177
28d5c3d9 71782012-05-10 Eric Botcazou <ebotcazou@adacore.com>
7179 Tristan Gingold <gingold@adacore.com>
7180
7181 * doc/md.texi (Standard Names): Document probe_stack_address.
7182 * explow.c (emit_stack_probe): Handle probe_stack_address.
7183 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
7184 (UNSPECV_PROBE_STACK_RANGE): Likewise.
7185 (probe_stack_address): New insn.
7186 (probe_stack_range): Likewise.
7187 * config/ia64/ia64.c: Include common/common-target.h.
7188 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
7189 checking is enabled.
7190 (ia64_emit_probe_stack_range): New function.
7191 (output_probe_stack_range): Likewise.
7192 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
7193 builtin stack checking is enabled.
7194 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
7195 and UNSPECV_PROBE_STACK_ADDRESS.
7196 (unknown_for_bundling_p): New predicate.
7197 (group_barrier_needed): Use important_for_bundling_p.
7198 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
7199 (issue_nops_and_insn): Likewise.
7200 (bundling): Likewise.
7201 (final_emit_insn_group_barriers): Likewise.
7202 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
7203 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
7204 (STACK_CHECK_PROTECT): Likewise.
7205 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7206
e8e650cf 72072012-05-10 Jan Hubicka <jh@suse.cz>
7208
7209 * ipa-inline.c (update_all_callee_keys): Remove.
7210 (inline_small_functions): Simplify priority updating.
7211
303c3a7d 72122012-05-10 Jan Hubicka <jh@suse.cz>
7213
7214 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
7215
91f0ab48 72162012-05-10 Jan Hubicka <jh@suse.cz>
7217
7218 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
7219 (symtab_remove_unreachable_nodes): ... this one.
7220 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
7221 * cgraphunit.c (ipa_passes): Update.
7222 * cgraphclones.c (cgraph_materialize_all_clones): Update.
7223 * cgraph.c (cgraph_release_function_body): Only turn initial
7224 into error mark when initial was previously set.
7225 * ipa-inline.c (ipa_inline): Update.
7226 * ipa.c: Include ipa-inline.h
7227 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
7228 (enqueue_node): New function.
7229 (process_references): Update.
7230 (symtab_remove_unreachable_nodes): Cleanup.
7231 * passes.c (execute_todo, execute_one_pass): Update.
7232
b105f58b 72332012-05-10 Vladimir Makarov <vmakarov@redhat.com>
7234
7235 PR rtl-optimization/53125
0399122b 7236 * ira.c (ira): Call find_moveable_pseudos and
b105f58b 7237 move_unallocated_pseudos if only ira_conflicts_p is true.
7238
dab25421 72392012-05-10 Uros Bizjak <ubizjak@gmail.com>
7240
7241 * config/i386/i386.md (*movoi_internal_avx): Handle
7242 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
7243 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
7244 (*movti_internal_sse): Ditto.
7245 (*movtf_internal): Ditto.
7246 * config/i386/sse.md (ssePSmode): New mode attribute.
7247 (*move<mode>_internal): Use ssePSmode.
7248 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
7249 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
7250 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
7251 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
7252
72e1426b 72532012-05-10 Eric Botcazou <ebotcazou@adacore.com>
7254
7255 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
7256 DECL_ORIGINAL_TYPE if it is present.
7257
56828342 72582012-05-10 Nick Clifton <nickc@redhat.com>
7259
7260 PR target/53120
7261 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
7262 a "0" constraint to being a (match_dup 0).
7263
dcb06804 72642012-05-10 Richard Guenther <rguenther@suse.de>
7265
7266 * stor-layout.c (byte_from_pos): Amend comment.
7267
98c9b52b 72682012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7269
7270 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
7271 Document requirement to call in constructors.
7272
dab25421 7273 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
98c9b52b 7274
5a1fe2db 72752012-05-10 Richard Guenther <rguenther@suse.de>
7276
7277 * tree.h (TYPE_IS_SIZETYPE): Remove.
7278 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
7279 (extract_muldiv_1): Likewise.
7280 * gimple.c (gtc_visit): Likewise.
7281 (gimple_types_compatible_p): Likewise.
7282 (iterative_hash_canonical_type): Likewise.
7283 (gimple_canonical_types_compatible_p): Likewise.
7284 * gimplify.c (gimplify_one_sizepos): Likewise.
7285 * print-tree.c (print_node): Likewise.
7286 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
7287
72b48d28 72882012-05-09 Uros Bizjak <ubizjak@gmail.com>
7289
7290 PR target/52908
7291 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
7292 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
7293 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
7294 instead of xop_mulv2div2di3_low.
7295 (xop_p<macs>dql): Fix vec_select selector.
7296 (xop_p<macs>dqh): Ditto.
7297 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
7298 (xop_mulv2div2di3_high): Ditto.
7299
d834564a 73002012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
7301
7302 PR c++/53289
7303 * diagnostic.h (diagnostic_context): Add last_location.
7304 * diagnostic.c (diagnostic_initialize): Initialize it.
7305 (diagnostic_show_locus): Use it.
7306
fd0ccb39 73072012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
7308
c6dab7d2 7309 * doc/extend.texi (Function Attributes): Point xref to section
fd0ccb39 7310 about Pragmas.
7311
f2dce612 73122012-05-09 Uros Bizjak <ubizjak@gmail.com>
7313
7314 * config/i386/i386.c (*movdf_internal_rex64): Remove
7315 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
7316 Calculate "mode" attribute according to
7317 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
7318 (*movdf_internal): Ditto.
7319
034788fc 73202012-05-09 Uros Bizjak <ubizjak@gmail.com>
7321
7322 PR target/44141
7323 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
7324 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
7325 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
7326 or when optimizing for size.
7327 * config/i386/sse.md (*mov<mode>_internal): Remove
7328 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
7329 Calculate "mode" attribute according to optimize_function_for_size_p
7330 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
7331 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
7332 depending on the mode of the instruction. Calculate "mode" attribute
7333 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
7334 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
7335 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
7336
ea679361 73372012-05-09 Georg-Johann Lay <avr@gjlay.de>
7338
7339 PR target/53256
7340 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
7341 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
7342 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
7343 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
7344 (expand_prologue): Move initialization of cfun->machine->is_naked,
7345 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
7346 (avr_set_current_function): ...this new static function.
7347 (TARGET_SET_CURRENT_FUNCTION): New define.
7348 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
7349 checking attributes of current_function_decl.
7350 (avr_regs_to_save): Ditto.
7351 (signal_function_p): Rename to avr_signal_function_p.
7352 (interrupt_function_p): Rename to avr_interrupt_function_p.
7353
7354 * doc/extend.texi (Function Attributes): Better explanation of
7355 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
7356 alphabetical order.
7357
8faf5d30 73582012-05-09 Michael Matz <matz@suse.de>
7359
7360 PR tree-optimization/53185
7361 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
7362 peeling when we see strided loads.
7363
1ad03cbf 73642012-05-09 Matthias Klose <doko@ubuntu.com>
7365
7366 * gcc-ar.c (main): Don't check for execute bits for the plugin.
7367
aa1572b5 73682012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7369
7370 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
7371 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
7372 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
7373 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
7374 (USE_LOAD_POST_INCREMENT): Define.
7375 (USE_LOAD_PRE_INCREMENT): Define.
7376 (USE_LOAD_POST_DECREMENT): Define.
7377 (USE_LOAD_PRE_DECREMENT): Define.
7378 (USE_STORE_PRE_DECREMENT): Define.
7379 (USE_STORE_PRE_INCREMENT): Define.
7380 (USE_STORE_POST_DECREMENT): Define.
7381 (USE_STORE_POST_INCREMENT): Define.
7382 (arm_auto_incmodes): Add enumeration.
7383 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
7384 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
7385
2f5a3c4a 73862012-05-09 Jakub Jelinek <jakub@redhat.com>
7387
7388 PR tree-optimization/53226
7389 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
7390 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
7391 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
7392 doesn't need to be revisited, look for earliest stmt with
7393 !gimple_plf (stmt, GF_PLF_1) if something changed.
7394
e5ed43a0 73952012-05-09 Terry Guo <terry.guo@arm.com>
7396
7397 * genmultilib: Update copyright dates.
7398 * doc/fragments.texi: Ditto.
7399
cec45616 74002012-05-09 Terry Guo <terry.guo@arm.com>
7401
7402 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
7403 * genmultilib (MULTILIB_REQUIRED): New.
7404 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
7405
e7430948 74062012-05-09 Richard Guenther <rguenther@suse.de>
7407
7408 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
7409 (vect_do_peeling_for_loop_bound): Likewise.
7410 (vect_do_peeling_for_alignment): Likewise.
7411 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
7412 (vect_do_peeling_for_loop_bound): Get check_profitability and
7413 threshold as parameters.
7414 (vect_do_peeling_for_alignment): Likewise.
7415 (vect_loop_versioning): Likewise.
7416 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
7417 and threshold here. Control where to put the check here.
7418
87cf5753 74192012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
7420
7421 PR middle-end/53249
7422 * dwarf2out.h (get_address_mode): Move declaration to...
7423 * rtl.h: ...here.
7424 * dwarf2out.c (get_address_mode): Move definition to...
7425 * rtlanal.c: ...here.
7426 * var-tracking.c (get_address_mode): Delete.
7427 * combine.c (find_split_point): Use get_address_mode instead of
7428 targetm.addr_space.address_mode.
7429 * cselib.c (cselib_record_sets): Likewise.
7430 * dse.c (canon_address, record_store): Likewise.
7431 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
7432 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
7433 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
7434 (expand_expr_real_1): Likewise.
7435 * ifcvt.c (noce_try_cmove_arith): Likewise.
7436 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
7437 * reload.c (find_reloads): Likewise.
7438 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
7439 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
7440
31082222 74412012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
7442
7443 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
7444 information from the instruction produced.
7445
2765f7eb 74462012-05-09 Richard Guenther <rguenther@suse.de>
7447
7448 * stor-layout.c (bit_from_pos): Document.
7449 (byte_from_pos): Likewise. Optimize.
7450 (pos_from_bit): Likewise.
7451 (normalize_offset): Use pos_from_bit instead of replicating it.
7452
11dd6494 74532012-05-09 Alan Modra <amodra@gmail.com>
7454
7455 PR target/53271
7456 * config/rs6000/rs6000.c (gen_frame_set): New function.
7457 (gen_frame_load, gen_frame_store): New functions.
7458 (rs6000_savres_rtx): Use the above.
7459 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
7460 Correct mode used for CR2 in save/restore_world patterns.
7461 Don't emit instructions for eh_return frame unwind reg info.
7462
3d1c0354 74632012-05-08 Jan Hubicka <jh@suse.cz>
7464
7465 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
7466 with VALUE_EXPR.
7467 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
7468 are removable.
7469 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
7470 need to wrapup.
7471 (compile_file): Do not output variables.
7472 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
7473 output it.
7474 * langhooks.c: Include timevar.h
7475 (write_global_declarations): Finalize compilation unit after wrapup;
7476 set timevars correctly.
7477 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
7478 not to be added to varpool.
7479 * varpool.c (varpool_assemble_decl): Sanity check that we are called
7480 only on cases where it makes sense; skip constant pool and value expr
7481 vars.
7482
a083d7d2 74832012-05-08 David S. Miller <davem@davemloft.net>
7484
7485 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
7486 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
7487 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
7488
e5d6fbb8 74892012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
7490
7491 PR rtl-optimization/53278
7492 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
7493 speed_p code from earlier patch.
7494
0e1dddb4 74952012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
7496
7497 PR target/51244
7498 * config/sh/sh.md (*branch_true, *branch_false): New insns.
7499
034788fc 75002012-05-08 Teresa Johnson <tejohnson@google.com>
4ef7becb 7501
7502 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
7503 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
7504
f41db742 75052012-05-08 Jan Hubicka <jh@suse.cz>
7506
7507 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
7508 (cgraph_create_node_1): Rename to ...
7509 (cgraph_create_empty_node): ... this one; export.
7510 (cgraph_create_node): Update.
7511 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
7512 (cgraph_create_edge_including_clones): Likewise.
7513 (cgraph_find_replacement_node): Likewise.
7514 (cgraph_clone_edge): Likewise.
7515 (cgraph_clone_node): Likewise.
7516 (clone_function_name): Likewise.
7517 (cgraph_create_virtual_clone): Likewise.
7518 (cgraph_remove_node_and_inline_clones): Likewise.
034788fc 7519 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
f41db742 7520 * cgraph.h: Reorder declarations so they match file of origin.
7521 (cgraph_create_empty_node): Declare.
7522 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
7523 (cgraph_copy_node_for_versioning): Likewise.
7524 (cgraph_function_versioning): Likewise.
7525 (cgraph_materialize_clone): Likewise.
7526 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
7527 (cgraph_materialize_all_clones): Likewise.
7528 * cgraphclones.c: New file.
7529 * Makefile.in: Update for cgraphclones.
7530
473a6f3e 75312012-05-08 Uros Bizjak <ubizjak@gmail.com>
7532
d44bd47c 7533 PR target/53176
473a6f3e 7534 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
7535 (ix86_rtx_costs): Handle SET.
7536
43e94e51 75372012-05-08 Michael Matz <matz@suse.de>
7538
7539 * basic-block.h (struct rtl_bb_info): Remove visited member and
7540 move head_ member to ...
7541 (struct basic_block_def.basic_block_il_dependent): ... the new
7542 member x, replacing but containing old member rtl.
7543 (enum bb_flags): New BB_VISITED flag.
7544 (BB_HEADER, BB_FOOTER): New macros.
7545
7546 * jump.c (mark_all_labels): Adjust.
7547 * cfgcleanup.c (try_optimize_cfg): Adjust.
7548 * cfglayout.c (record_effective_endpoints): Adjust.
7549 (relink_block_chain): Ditto (and don't fiddle with visited).
7550 (fixup_reorder_chain): Adjust.
7551 (fixup_fallthru_exit_predecessor): Ditto.
7552 (cfg_layout_duplicate_bb): Ditto.
7553 * combine.c (update_cfg_for_uncondjump): Adjust.
473a6f3e 7554 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
43e94e51 7555 (bb_visited_trace): New accessor.
7556 (mark_bb_visited): Move in front.
7557 (rotate_loop): Use bb_visited_trace.
7558 (find_traces_1_round): Ditto.
7559 (emit_barrier_after): Ditto.
7560 (copy_bb): Ditto, and initialize visited on resize.
7561 (reorder_basic_blocks): Initize visited member.
7562 (duplicate_computed_gotos): Clear bb flags at start, use
7563 BB_VISITED flags.
7564
7565 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
7566 (rtl_verify_flow_info_1): Ditto.
7567 (cfg_layout_split_block): Ditto.
7568 (cfg_layout_delete_block): Ditto.
7569 (cfg_layout_merge_blocks): Ditto.
7570 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
7571
826e3285 75722012-05-08 Hans-Peter Nilsson <hp@axis.com>
7573
7574 PR target/53272
7575 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
7576 when a constant source operand matches an "I" constraint, the "no
7577 CC0 change" applies to a register-destination only, not a
7578 strict_low_part-destination.
7579
42756cae 75802012-05-08 Richard Guenther <rguenther@suse.de>
7581
7582 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
7583 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
7584
8a92b4c3 75852012-05-08 Georg-Johann Lay <avr@gjlay.de>
7586
7587 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
7588
7589 * doc/avr-mmcu.texi: New auto-generated file.
7590 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
7591 to document all valid -mmcu= arguments.
7592
7593 * config/avr/avr.h (arch_info_s): New struct definition.
7594 * config/avr/avr-devices.c (avr_texinfo): New variable.
7595 * config/avr/gen-avr-mmcu-texi.c: New file.
7596 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
7597
fd757b76 75982012-05-08 Dehao Chen <dehao@google.com>
7599
28a0c749 7600 * predict.c (find_qualified_ssa_name): New.
7601 (find_ssa_name_in_expr): New.
7602 (find_ssa_name_in_assign_stmt): New.
7603 (is_comparison_with_loop_invariant_p): New.
7604 (is_bound_expr_similar): New.
7605 (predict_iv_comparison): New.
fd757b76 7606 (predict_loops): Add heuristic for loop-nested branches that compare an
7607 induction variable to a loop bound variable.
28a0c749 7608 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
fd757b76 7609
128e3935 76102012-05-08 Uros Bizjak <ubizjak@gmail.com>
7611
7612 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
7613 TARGET_BDVER2 defines where appropriate.
7614
61f41b94 76152012-05-07 Eric Botcazou <ebotcazou@adacore.com>
7616
7617 * configure.ac (PLUGIN_LD): Rename into...
7618 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
7619 * config.in: Regenerate.
7620 * configure: Likewise.
7621 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
7622
96c3acd0 76232012-05-07 Eric Botcazou <ebotcazou@adacore.com>
7624
7625 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
7626 computation using the precision of the index type.
7627 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
7628 (fold_array_ctor_reference): Do index computations in the index type.
7629
76302012-05-07 Georg-Johann Lay <avr@gjlay.de>
b51b04ad 7631
7632 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
7633 down to plus_constant.
7634 (expand_epilogue): Ditto.
7635
98799adc 76362012-05-07 Steven Bosscher <steven@gcc.gnu.org>
7637
7638 * postreload.c (reload_cse_regs): Make static.
7639 * reload.h (reload_cse_regs): Remove prototype.
7640
7c0618c6 76412012-05-07 Richard Henderson <rth@redhat.com>
7642
7643 * config/alpha/alpha.md (clear_cache): New pattern.
7644
fe812b34 76452012-05-07 Steven Bosscher <steven@gcc.gnu.org>
7646
7647 PR middle-end/53245
7648 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
7649 is folded to a type boundary value, verify that the resulting case
7650 label is still a care range.
7651
dbfd6d04 76522012-05-07 Uros Bizjak <ubizjak@gmail.com>
7653
7654 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
7655 only for TARGET_GENERIC, when not optimizing for size.
7656 (*ffs<mode>_1): Ditto.
7657
9a9033a9 76582012-05-07 Steven Bosscher <steven@gcc.gnu.org>
7659
7660 * tree-cfg.c (verify_gimple_switch): Tighten checks.
7661
0e443ce1 76622012-05-07 Jakub Jelinek <jakub@redhat.com>
7663
7664 PR tree-optimization/53239
128e3935 7665 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
7666 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
0e443ce1 7667
29f2d4e5 76682012-05-07 Richard Guenther <rguenther@suse.de>
7669
7670 PR tree-optimization/53195
7671 * tree-inline.c (setup_one_parameter): Properly add referenced
7672 vars from the parameters new known value.
7673
f4831ba5 76742012-05-07 Steven Bosscher <steven@gcc.gnu.org>
7675
7676 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
7677 (sched_branch_type): Remove.
7678 (m68k_sched_md_init_global): Don't allocate it.
7679 (m68k_sched_md_finish_global): Don't free it.
7680 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
29f2d4e5 7681 * config/m68k/m68k.md: Set the type of insns using
7682 m68k_sched_branch_type to bcc directly.
f4831ba5 7683
db66903a 76842012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7685
7686 * config/sol2.c (solaris_override_options): New function.
7687 * config/sol2-protos.h (solaris_override_options): Declare.
7688 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
7689
b920ee38 76902012-05-07 Richard Guenther <rguenther@suse.de>
7691
7692 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
7693 whether we failed to compute data dependences.
7694 (loop_prefetch_arrays): Fail if we failed.
7695
f1cb261b 76962012-05-07 Uros Bizjak <ubizjak@gmail.com>
7697 Paolo Bonzini <bonzini@gnu.org>
7698
7699 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
7700 Emit bsf when optimizing for size.
7701 (*ffs<mode>_1): Ditto.
7702
a846db2c 77032012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
7704
7705 PR target/53250
7706 * config/sh/sh.c (sh_rtx_costs): Handle SET.
7707
ead6176b 77082012-05-06 Uros Bizjak <ubizjak@gmail.com>
7709
7710 PR target/53227
7711 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
7712 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
7713 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
7714 (bswapsi2): Ditto.
7715 (*bswapdi2_doubleword): New insn pattern.
7716 (*bswap<mode>2): Rename from *bswap<mode>2_1.
7717
37bdfd8a 77182012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
7719
7720 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
7721 (mips_set_reg_reg_cost): Likewise.
7722 (mips_rtx_costs): Handle SET.
7723
a6d935b7 77242012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
7725
7726 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
7727 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
7728 to compute the cost of moves. Set the mode of the target register.
7729
29c05e22 77302012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
7731
7732 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
7733 plus_constant function.
7734 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
7735 that the mode is sensible.
7736 (use_anchored_address, round_push, allocate_dynamic_stack_space)
7737 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
7738 plus_constant.
7739
7740 * alias.c (canon_rtx): Likewise.
7741 (init_alias_analysis): Likewise.
7742 * builtins.c (expand_builtin_return_addr)
7743 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
7744 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
7745 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
7746 (expand_builtin_stpcpy): Likewise.
7747 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
7748 (compute_argument_addresses, internal_arg_pointer_based_exp)
7749 (expand_call, emit_library_call_value_1): Likewise.
7750 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
7751 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
7752 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
7753 * cse.c (insert_const_anchor, find_reg_offset_for_const)
7754 (use_related_value, fold_rtx): Likewise.
7755 * cselib.c (cselib_subst_to_values): Likewise.
7756 * dse.c (record_store, check_mem_read_rtx): Likewise.
7757 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
7758 * emit-rtl.c (adjust_address_1): Likewise.
7759 * except.c (sjlj_emit_function_enter)
7760 (expand_builtin_extract_return_addr)
7761 (expand_builtin_frob_return_addr): Likewise.
7762 * expmed.c (expand_divmod): Likewise.
7763 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
7764 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
7765 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
7766 * function.c (assign_stack_local_1)
7767 (instantiate_virtual_regs_in_rtx): Likewise.
7768 * optabs.c (prepare_cmp_insn): Likewise.
7769 * recog.c (offsettable_address_addr_space_p): Likewise.
7770 * reload.c (find_reloads_address, form_sum)
7771 (find_reloads_subreg_address): Likewise.
7772 * reload1.c (init_reload, eliminate_regs_1)
7773 (eliminate_regs_in_insn): Likewise.
7774 * simplify-rtx.c (simplify_unary_operation_1)
7775 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
7776 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
7777 (vt_add_function_parameter): Likewise.
7778
7779 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
7780 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
7781 * config/alpha/alpha.c (alpha_legitimize_address_1)
7782 (get_unaligned_address, alpha_expand_unaligned_load)
7783 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
7784 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
7785 (alpha_expand_builtin_establish_vms_condition_handler)
7786 (alpha_setup_incoming_varargs, emit_frame_store_1)
7787 (alpha_expand_prologue, alpha_expand_epilogue)
7788 (alpha_use_linkage): Likewise.
7789 * config/alpha/alpha.md: Likewise.
7790
7791 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
7792 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
7793 (thumb_legitimize_address, arm_gen_load_multiple_1)
7794 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
7795 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
7796 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
7797 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
7798 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
7799 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
7800 (thumb_expand_movmemqi, arm_set_return_address)
7801 (thumb_set_return_address): Likewise.
7802 * config/arm/arm.md: Likewise.
7803
7804 * config/avr/avr.c (avr_incoming_return_addr_rtx)
7805 (avr_prologue_setup_frame, expand_epilogue)
7806 (avr_const_address_lo16): Likewise.
7807
7808 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
7809 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
7810 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
7811 (bfin_output_mi_thunk): Likewise.
7812
7813 * config/c6x/c6x.c (c6x_initialize_trampoline)
7814 (c6x_output_mi_thunk): Likewise.
7815
7816 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
7817 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
7818
7819 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
7820 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
7821 (cris_emit_movem_store, cris_trampoline_init): Likewise.
7822 * config/cris/cris.md: Likewise.
7823
7824 * config/darwin.c (machopic_indirect_data_reference)
7825 (machopic_legitimize_pic_address): Likewise.
7826
7827 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
7828 (epiphany_expand_prologue, epiphany_expand_epilogue)
7829 (epiphany_trampoline_init): Likewise.
7830 * config/epiphany/epiphany.md: Likewise.
7831
7832 * config/fr30/fr30.c (fr30_move_double): Likewise.
7833
7834 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
7835 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
7836 (frv_index_memory, unspec_got_name, frv_find_base_term)
7837 (frv_output_dwarf_dtprel): Likewise.
7838
7839 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
7840 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
7841
7842 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
7843 * config/i386/i386.c (setup_incoming_varargs_64)
7844 (setup_incoming_varargs_ms_64, choose_baseaddr)
7845 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
7846 (ix86_emit_probe_stack_range, ix86_expand_prologue)
7847 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
7848 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
7849 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
7850 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
7851 (x86_output_mi_thunk): Likewise.
7852 * config/i386/i386.md: Likewise.
7853
7854 * config/ia64/ia64.c (ia64_expand_load_address)
7855 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
7856 (do_spill, ia64_trampoline_init): Likewise.
7857
7858 * config/iq2000/iq2000.c (iq2000_va_start)
7859 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
7860 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
7861 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
7862
7863 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
7864
7865 * config/m32c/m32c.c (m32c_return_addr_rtx)
7866 (m32c_expand_insv): Likewise.
7867
7868 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
7869 (m32r_legitimize_pic_address, m32r_print_operand)
7870 (m32r_print_operand_address): Likewise.
7871
7872 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
7873 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
7874 (EH_RETURN_HANDLER_RTX): Likewise.
7875 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
7876 (m68k_expand_epilogue, legitimize_pic_address)
7877 (m68k_output_mi_thunk): Likewise.
7878 * config/m68k/m68k.md: Likewise.
7879
7880 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
7881 (mcore_expand_epilog): Likewise.
7882 * config/mcore/mcore.md: Likewise.
7883
7884 * config/mep/mep.c (mep_allocate_initial_value)
7885 (mep_expand_prologue, mep_expand_epilogue): Likewise.
7886
7887 * config/microblaze/microblaze.c (double_memory_operand)
7888 (microblaze_block_move_loop): Likewise.
7889
7890 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
7891 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
7892 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
7893 (mips_expand_prologue, mips_epilogue_set_cfa)
7894 (mips_expand_epilogue): Likewise.
7895 * config/mips/mips.md: Likewise.
7896
7897 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
7898 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
7899
7900 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
7901 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
7902
7903 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
7904 (EH_RETURN_HANDLER_RTX): Likewise.
7905 * config/moxie/moxie.c (moxie_static_chain): Likewise.
7906
7907 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
7908 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
7909 (pa_return_addr_rtx, hppa_builtin_saveregs)
7910 (pa_trampoline_init): Likewise.
7911 * config/pa/pa.md: Likewise.
7912
7913 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
7914
7915 * config/picochip/picochip.c (picochip_static_chain): Likewise.
7916
7917 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
7918 * config/rs6000/rs6000.c (rs6000_legitimize_address)
7919 (setup_incoming_varargs, print_operand, rs6000_return_addr)
7920 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
7921 (rs6000_emit_epilogue)
7922 (rs6000_machopic_legitimize_pic_address): Likewise.
7923
7924 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
7925
7926 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
7927 (DYNAMIC_CHAIN_ADDRESS): Likewise.
7928 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
7929 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
7930 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
7931 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
7932 (s390_emit_epilogue, s390_function_profiler): Likewise.
7933 * config/s390/s390.md: Likewise.
7934
7935 * config/score/score.c (score_add_offset, score_prologue): Likewise.
7936
7937 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
7938 (sh_output_mi_thunk): Likewise.
7939 * config/sh/sh.md: Likewise.
7940
7941 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
7942 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
7943 * config/sparc/sparc.c (sparc_legitimize_pic_address)
7944 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
7945 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
7946 (emit_and_preserve): Likewise.
7947 * config/sparc/sparc.md: Likewise.
7948
7949 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
7950 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
7951 (spu_setup_incoming_varargs, ea_load_store_inline)
7952 (spu_expand_load): Likewise.
7953
7954 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
7955 (combine_bnp): Likewise.
7956
7957 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
7958 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
7959 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
7960
7961 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
7962 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
7963 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
7964
7965 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
7966 * config/v850/v850.md: Likewise.
7967
7968 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
7969 (EH_RETURN_HANDLER_RTX): Likewise.
7970 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
7971 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
7972 (print_operand_address, vax_trampoline_init): Likewise.
7973
7974 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
7975 (xtensa_function_value_regno_p): Likewise.
7976
c909ed33 79772012-05-04 Andrew Pinski <apinski@cavium.com>
7978
7979 * expr.c (get_def_for_expr_class): New function.
7980 (convert_tree_comp_to_rtx): New function.
7981 (expand_cond_expr_using_cmove): New function.
7982 (expand_expr_real_2 <case COND_EXPR>): Call
7983 expand_cond_expr_using_cmove first and return if it succeeds.
7984 Remove the check for HAVE_conditional_move since we should have
7985 already converted it to a conditional move.
7986 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
7987 modes of DImode for 32bits and TImode.
7988
73ed0c67 79892012-05-04 Steven Bosscher <steven@gcc.gnu.org>
7990
7991 PR other/29442
7992 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
7993 (print_md_ptr_loc, print_c_condition): Use them.
7994 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
7995 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
7996 attr_file, dfa_file, latency_file): New global variables.
7997 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
7998 write_upcase, write_indent, write_length_unit_log, write_test_expr,
7999 write_attr_get, write_insn_cases, write_eligible_delay,
8000 write_const_num_delay_slots): Accept FILE pointer and toss it around.
8001 Update all callers.
8002 (write_header, open_outfile, handle_arg): New funcions.
8003 (make_automaton_attrs): Write prototypes as extern to the output
8004 files.
8005 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
8006 names from the command line. Open the output files and write out
8007 internal functions for DFA functions to dfa_file_name, insn latency
8008 functions to latency_file_name, and everything else to attr_file.
8009 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
8010 (BACKEND): Build libbackend first.
8011 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
8012 (.PRECIOUS): Likewise.
8013 (insn-dfatab.o): New rule.
8014 (insn-latencytab.o): New rule.
8015 (simple_rtl_generated_c): Do not include insn-attrtab.c.
8016 (s-attrtab): New rule.
8017
6a8f5c57 80182012-05-04 Steven Bosscher <steven@gcc.gnu.org>
8019
8020 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
8021 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
8022 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
8023 * reorg.c (get_jump_flags): Do not set the removed flags.
8024
a2159ce7 8025 * doc/md.texi (attr_flag): Update for abovementioned changes.
8026
91fcc716 80272012-05-04 Uros Bizjak <ubizjak@gmail.com>
8028
8029 PR target/53228
8030 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
8031 (TARGET_CMOV): Rename from TARGET_CMOVE.
8032 (TARGET_CMOVE): New define.
8033 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
8034 Do not set TARGET_CMOVE here.
8035
e163935c 80362012-05-04 Dodji Seketeli <dodji@redhat.com>
8037
8038 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
8039 * opts.c (finish_options): Activate -Wunused-local-typedefs if
034788fc 8040 -Wunused is activated.
e163935c 8041 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
8042
c4ded1f6 80432012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8044
8045 * config/s390/s390.md (*movmem_short, *clrmem_short)
8046 (*cmpmem_short): Move the mode check from the insn condition to
8047 the match_scratch.
8048
da5b41a4 80492012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
8050
8051 PR tree-optimization/52633
8052 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
8053 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
8054 (vect_recog_over_widening_pattern): Remove handling of code that was
8055 already detected as over-widening pattern. Remove special handling
8056 of "unsigned" cases. Instead, support general case of conversion
8057 of the shift result to another type.
8058
019bbf38 80592012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
8060
8061 * tree-vect-patterns.c (vect_single_imm_use): New function.
8062 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
8063 (vect_recog_over_widening_pattern): Likewise.
8064 (vect_recog_widen_shift_pattern): Likewise.
8065
33f33894 80662012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
8067
8068 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
8069 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
8070 (vect_recog_widen_mult_pattern): Likewise.
8071 (vect_operation_fits_smaller_type): Likewise.
8072 (vect_recog_over_widening_pattern): Likewise.
8073 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
8074
940a2ab8 80752012-05-04 Richard Guenther <rguenther@suse.de>
8076
8077 PR lto/50602
8078 * lto-wrapper.c (merge_and_complain): Complain about mismatches
8079 of -freg-struct-return and -fpcc-struct-return.
8080 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
8081 from the input file options and ignore those from the link
8082 command line.
8083
147d14aa 80842012-05-04 Richard Guenther <rguenther@suse.de>
8085
8086 PR tree-optimization/53168
8087 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
8088 memory reads when the result is a constant we can pun.
8089
596c40fb 80902012-05-04 Richard Guenther <rguenther@suse.de>
8091
8092 * common.opt (flto-report): Do not mark as Optimization.
8093
50b58916 80942012-05-04 Eric Botcazou <ebotcazou@adacore.com>
8095
8096 PR target/48496
8097 * recog.c (constrain_operands): If extra constraints are present, also
8098 accept pseudo-registers with equivalent memory locations during reload.
8099
2b98e22b 81002012-05-04 Olivier Hainque <hainque@adacore.com>
8101
8102 * collect2.c (may_unlink_output_file): New global.
8103 (maybe_unlink): Honor it.
8104 * collect2.h: Add extern for it.
8105 * tlink.c (do_tlink): Set it to true if the link succeeded.
8106
e2efe9af 81072012-05-04 Olivier Hainque <hainque@adacore.com>
8108
8109 * gcc.c (eval_spec_function): Finalize/restore the current string
8110 obstack state as part of the context push/pop operations.
8111
38d947b0 81122012-05-04 Bin Cheng <bin.cheng@arm.com>
8113
8114 PR rtl-optimization/52804
8115 * reload1.c (reload_reg_reaches_end_p): Check whether successor
8116 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
8117 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
8118 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
8119 RELOAD_FOR_OUTADDR_ADDRESS.
8120
bef475de 81212012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
8122
8123 PR c++/24985
8124 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
8125 for macro expansion.
8126
bba5a206 81272012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
8128
8129 * flags.h (flag_permissive): Do not declare.
8130 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
8131 option specially.
8132 * toplev.c (flag_permissive): Do not define.
8133 * c-tree.h (system_header_p): Delete unused.
8134
beaca8bb 81352012-05-03 David S. Miller <davem@davemloft.net>
8136
8137 PR target/52684
8138 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
8139 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
8140 (sparc_emit_float_lib_cmp): Likewise.
8141
0b10390a 81422012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
8143
8144 PR target/53199
8145 * config/rs6000/rs6000.md (bswapdi splitters): If
8146 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
8147 default) is used, generate an alternate sequence that does not
8148 depend on using indexed addressing.
8149
84879dd0 81502012-05-03 Jason Merrill <jason@redhat.com>
8151
8152 * gengtype.c (write_types): Fix warning message.
8153 (write_local): Likewise.
8154
23c98701 81552012-05-02 Jason Merrill <jason@redhat.com>
8156
8157 * dwarf2out.c (struct external_ref, build_local_stub): New.
8158 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
8159 (optimize_external_refs, optimize_external_refs_1): New.
8160 (change_AT_die_ref): New.
8161 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
8162 (build_abbrev_table): Take the external refs hashtable.
8163 (output_comp_unit): Get it from optimize_external_refs and pass it in.
8164
22fe6d2a 81652012-05-03 Jan Hubicka <jh@suse.cz>
8166
8167 PR middle-end/53093
8168 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
8169
cab51373 81702012-05-03 Jan Hubicka <jh@suse.cz>
8171
8172 PR middle-end/53106
8173 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
8174
039c4ce6 81752012-05-03 Jason Merrill <jason@redhat.com>
8176
8177 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
8178 use_debug_types to discriminate the die_id union.
8179 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
8180 (build_abbrev_table, output_die): Likewise.
8181 (prune_unused_types_walk_attribs): Likewise.
8182 (generate_type_signature, copy_declaration_context): Set it.
8183 (remove_child_or_replace_with_skeleton): Set it.
8184 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
8185 check use_debug_types.
8186 (dwarf2out_finish): Do break_out_includes after .debug_types.
8187
7fc5078f 81882012-05-03 Jason Merrill <jason@redhat.com>
8189
8190 * dwarf2out.c (modified_type_die): Use scope_die_for.
8191 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
8192 (uses_local_type_r, uses_local_type): New.
8193 (scope_die_for): Keep a type that uses a local type in local scope.
8194 Use get_context_die for namespace and type scope.
8195
d03a2c79 81962012-05-03 Jason Merrill <jason@redhat.com>
8197
8198 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
8199 pc thunk.
8200 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
8201 (dwarf2out_finish): Likewise.
8202
ceea063b 82032012-05-03 Martin Jambor <mjambor@suse.cz>
8204
8205 * builtins.c (get_object_alignment_1): Return whether we can determine
8206 the alignment or conservatively assume byte alignment. Return the
8207 alignment by reference. Use get_pointer_alignment_1 for dereference
8208 alignment.
8209 (get_pointer_alignment_1): Return whether we can determine the
8210 alignment or conservatively assume byte alignment. Return the
8211 alignment by reference. Use get_ptr_info_alignment to get SSA name
8212 alignment.
8213 (get_object_alignment): Update call to get_object_alignment_1.
8214 (get_object_or_type_alignment): Likewise, fall back to type alignment
8215 only when it returned false.
8216 (get_pointer_alignment): Update call to get_pointer_alignment_1.
8217 * fold-const.c (get_pointer_modulus_and_residue): Update call to
8218 get_object_alignment_1.
8219 * ipa-prop.c (ipa_modify_call_arguments): Update call to
8220 get_pointer_alignment_1.
8221 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
8222 of MEM_REF or TARGET_MEM_REF only when it returns false.
8223 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
8224 get_object_alignment_1.
8225 (ccp_finalize): Use set_ptr_info_alignment.
8226 * tree.h (get_object_alignment_1): Update declaration.
8227 (get_pointer_alignment_1): Likewise.
8228 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
8229 (dump_gimple_stmt): Likewise.
8230 * tree-flow.h (ptr_info_def): Updated comments of fields align and
8231 misalign.
8232 (get_ptr_info_alignment): Declared.
8233 (mark_ptr_info_alignment_unknown): Likewise.
8234 (set_ptr_info_alignment): Likewise.
8235 (adjust_ptr_info_misalignment): Likewise.
8236 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
8237 and set alignment of SSA names.
8238 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
8239 mark_ptr_info_alignment_unknown.
8240 * tree-ssanames.c (get_ptr_info_alignment): New function.
8241 (mark_ptr_info_alignment_unknown): Likewise.
8242 (set_ptr_info_alignment): Likewise.
8243 (adjust_ptr_info_misalignment): Likewise.
8244 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
8245 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
8246 Likewise.
8247 (bump_vector_ptr): Likewise.
8248 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
8249 (vectorizable_store): Likewise.
8250 (vectorizable_load): Likewise.
8251
924c4c71 82522012-05-03 Michael Matz <matz@suse.de>
8253
8254 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
8255 in front of basic_block_def.
8256 (struct basic_block_def): Make il.gimple the full struct, not a
8257 pointer.
8258 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
8259
91fcc716 8260 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
924c4c71 8261 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
8262 NULL il.gimple, which can't happen anymore.
8263 * gimple.h (bb_seq): il.gimple can't be NULL.
8264 (bb_seq_add): Ditto.
8265 (set_bb_seq): Adjust.
8266 (gsi_start_bb, gsi_last_bb): Tidy.
8267 * lto-streamer-in.c (make_new_block): Don't zero members that
8268 are zeroed already, don't allocate a gimple_bb_info.
8269 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
8270 (remove_bb): Clear all il.gimple members.
8271 (gimple_verify_flow_info): Adjust for flat il.gimple.
8272 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
8273
8274 * coretypes.h (const_gimple_seq): Remove typedef.
8275 * gimple.h (gimple_seq_first): Take gimple_seq.
8276 (gimple_seq_first_stmt): Ditto.
8277 (gimple_seq_last): Ditto.
8278 (gimple_seq_last_stmt): Ditto.
8279 (gimple_seq_empty_p): Ditto.
8280
1ef2db75 82812012-05-03 Richard Guenther <rguenther@suse.de>
8282
8283 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
8284 operations.
91fcc716 8285 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
1ef2db75 8286 (compute_avail): Do not add possibly trapping operations to
8287 EXP_GEN if they might not be executed in the block.
8288
e2f2054f 82892012-05-03 Uros Bizjak <ubizjak@gmail.com>
8290
8291 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
8292
6da0d726 82932012-05-03 Steven Bosscher <steven@gcc.gnu.org>
8294
8295 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
8296 information as early as possible. Update dominance info instead of
8297 discarding it.
8298
8974b15d 82992012-05-03 Richard Guenther <rguenther@suse.de>
8300
8301 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
8302 (union_contains_value): Remove.
8303 (vro_valid_in_sets): Likewise.
8304 (op_valid_in_sets): New function.
8305 (valid_in_sets): Use op_valid_in_sets.
8306 (insert_into_preds_of_block): Move dumping ...
8307 (do_regular_insertion): ... here.
8308 (do_partial_partial_insertion): ... and here. Dump that
8309 we've found a partial partial redundancy.
8310 (insert): Dump the current insert iteration.
8311
691c047f 83122012-05-03 Jakub Jelinek <jakub@redhat.com>
8313
2bccd0d3 8314 PR plugins/53126
8315 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
8316 append program name to it and pass that as first argument
8317 to make_relative_prefix. Always pass standard_libexec_prefix
8318 as last argument to make_relative_prefix. If
8319 make_relative_prefix returns NULL, fall back to
8320 standard_libexec_prefix.
8321
b6d5efe6 8322 PR debug/53174
8323 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
8324 removed.
8325
c4a8eb0a 8326 PR target/53187
8327 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
8328 mode, return that mode.
8329
691c047f 8330 PR target/53194
8331 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
8332 define __ATOMIC_HLE_* macros here.
8333 (ix86_target_macros): But here, using cpp_define_formatted.
8334
a4f94d42 83352012-05-03 Richard Guenther <rguenther@suse.de>
8336
8337 PR tree-optimization/53144
8338 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
8339 Rename to ...
8340 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
8341 with SSA name values.
8342 (vn_reference_lookup_3): Adjust callers.
8343
fb0e6fe3 83442012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
8345
8346 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
8347 has_fma4 for AMD processors with both fma3 and fma4 support.
8348
c79c9a8d 83492012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
8350
8351 PR target/53201
8352 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
8353 "-mno-hle".
8354
3222e348 83552012-05-03 Michael Matz <matz@suse.de>
8356
8357 PR bootstrap/53197
e2f2054f 8358 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
3222e348 8359 (dse_enter_block): Properly iterate the whole sequence even
8360 if the last statement was removed.
8361
9fbba7ae 83622012-05-02 Steven Bosscher <steven@gcc.gnu.org>
8363
8364 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
8365 unset flag_jump_tables.
8366 * stmt.c (expand_case): Remove special flag_pic case conditional
8367 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
8368
e9f1fe86 83692012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
8370
8371 * common/config/s390/s390-common.c (s390_option_optimization_table):
8372 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
8373 default when optimizing.
8374
ad5f1481 83752012-05-02 Martin Jambor <mjambor@suse.cz>
8376
8377 PR lto/52605
8378 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
8379 of a variable when the contect is a function.
8380
e3a19533 83812012-05-02 Michael Matz <matz@suse.de>
8382
8383 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
8384 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
8385 (const_gimple_seq_node): Remove.
8386 (gimple_seq_node): Typedef as gimple.
8387 (struct gimple_statement_base): Add next and prev members,
8388 adjust all WORD markers in using structs.
8389 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
8390 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
8391 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
8392 gimple are the same.
8393 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
8394 gimple_seq, adjust.
8395 (gimple_init_singleton): New function.
8396 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
8397 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
8398 (gsi_stmt): Adjust.
8399 (gsi_stmt_ptr): Remove.
8400 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
8401
8402 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
8403 again, adjust for above changes.
8404 (update_call_edge_frequencies): Adjust for above changes.
8405 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
8406 (gsi_insert_seq_nodes_after): Ditto.
8407 (gsi_split_seq_after): Ditto.
8408 (gsi_set_stmt): Ditto.
8409 (gsi_split_seq_before): Ditto.
8410 (gsi_remove): Ditto.
8411 (gsi_insert_seq_before_without_update): Don't free sequence.
8412 (gsi_insert_seq_after_without_update): Ditto.
8413 (gsi_replace): Assert some more invariants.
8414 (gsi_insert_before_without_update, gsi_insert_after_without_update):
8415 Tidy.
8416 (gsi_for_stmt): Don't search for stmt.
8417 (gsi_insert_on_edge_immediate): Tidy.
8418
8419 * gimple.c (gimple_alloc_k): Remove "sequences".
8420 (gimple_seq_cache): Remove.
8421 (gimple_alloc_stat): Make stmt a singleton sequence.
8422 (gimple_seq_alloc, gimple_seq_free): Remove.
8423 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
8424 (gimple_copy): Ditto.
8425 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
8426 create iterator from correct sequence.
8427 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
8428
84292012-05-02 Michael Matz <matz@suse.de>
8430
8431 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
8432 gimple_seq.
8433 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
8434 sequence, lazily allocate it.
8435 (bb_seq_addr): New function.
8436 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
8437 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
8438 (gsi_none): New function.
8439 (gsi_start_bb): Adjust.
8440 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
8441 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
8442 (gsi_last_bb): Adjust.
8443 (gsi_seq): Adjust.
8444 * tree-flow-inline.h (phi_nodes_ptr): New function.
8445
e2f2054f 8446 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
e3a19533 8447 datastructure and interface change.
8448 (gsi_insert_seq_before_without_update): Ditto.
8449 (gsi_insert_seq_nodes_after): Ditto.
8450 (gsi_insert_seq_after_without_update): Ditto.
8451 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
8452 (gsi_split_seq_before): Ditto.
8453 (gsi_start_phis): Adjust.
e2f2054f 8454 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
e3a19533 8455 (vect_transform_loop): Ditto.
8456 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
8457 gimple_seq_copy): Don't use gimple_seq_alloc.
8458 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
8459 (gimplify_seq_add_seq): Ditto.
8460 * lto-streamer-in.c (make_new_block): Ditto.
8461 * tree-cfg.c (create_bb): Ditto.
8462 * tree-sra.c (initialize_parameter_reductions): Ditto.
8463
84642012-05-02 Michael Matz <matz@suse.de>
8465
8466 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
8467 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
8468 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
8469 set_bb_seq): Move down to after gimple_statement_d definition.
8470
84712012-05-02 Michael Matz <matz@suse.de>
8472
8473 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
8474 gsi_replace_with_seq, instead of inserting itself.
8475 * gimple-iterator.c (gsi_replace_with_seq): New function.
8476 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
8477 iterator instead of statement, advance it.
8478 (ssa_forward_propagate_and_combine): Adjust call to above.
8479
84802012-05-02 Michael Matz <matz@suse.de>
8481
8482 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
8483 gimple_seq_alloc.
8484 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
8485 * tree-nested.c (walk_gimple_omp_for): Ditto.
8486 * trans-mem.c (lower_transaction): Ditto.
8487 * tree-eh.c (do_return_redirection): Ditto.
8488 (do_goto_redirection): Ditto.
8489 (lower_try_finally_switch): Ditto.
8490 * gimplify.c (gimplify_stmt): Ditto.
8491 (gimplify_scan_omp_clauses): Ditto.
8492 (gimplify_omp_for): Ditto.
8493 (gimplify_function_tree): Ditto.
8494 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
8495 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
8496 (mf_build_check_statement_for): Ditto.
8497 (mx_register_decls): Ditto.
8498 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
8499 and don't use itertors to append.
8500 (insert_stmts): Ditto.
8501 (insert_out_of_ssa_copy): Ditto.
8502 (insert_out_of_ssa_copy_on_edge): Ditto.
8503
85042012-05-02 Michael Matz <matz@suse.de>
8505
8506 * gimple.h (gimple_bind_body_ptr): New function.
8507 (gimple_bind_body): Use it.
8508 (gimple_catch_handler): Use gimple_catch_handler_ptr.
8509 (gimple_eh_filter_failure_ptr): New function.
8510 (gimple_eh_filter_failure): Use it.
8511 (gimple_eh_else_n_body_ptr): New function.
8512 (gimple_eh_else_n_body): Use it.
8513 (gimple_eh_else_e_body_ptr): New function.
8514 (gimple_eh_else_e_body): Use it.
8515 (gimple_try_eval_ptr): New function.
8516 (gimple_try_eval): Use it.
8517 (gimple_try_cleanup_ptr): New function.
8518 (gimple_try_cleanup): Use it.
8519 (gimple_wce_cleanup_ptr): New function.
8520 (gimple_wce_cleanup): Use it.
8521 (gimple_omp_body_ptr): New function.
8522 (gimple_omp_body): Use it.
8523 (gimple_omp_for_pre_body_ptr): New function.
8524 (gimple_omp_for_pre_body): Use it.
8525 (gimple_transaction_body_ptr): New function.
8526 (gimple_transaction_body): Use it.
8527 (gsi_split_seq_before): Adjust to return nothing and take pointer
8528 to sequence.
8529 (gsi_set_stmt): Declare.
8530 (gsi_replace_with_seq): Declare.
8531 (walk_gimple_seq_mod): Declare.
8532 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
8533
8534 * gimple-iterator.c (gsi_set_stmt): New function.
8535 (gsi_split_seq_before): Return new sequence via pointer argument.
8536 (gsi_replace): Use gsi_set_stmt.
8537
8538 * tree-ssa-loop-im.c (move_computations_stmt): First remove
8539 then insert stmt.
e2f2054f 8540 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
e3a19533 8541 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
8542 return new stmt.
8543 (reserve_phi_args_for_new_edge): Change call to above,
8544 use gsi_set_stmt.
8545
e2f2054f 8546 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
e3a19533 8547 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
8548 iterators. Adjust call to lower_omp.
8549 (lower_lastprivate_clauses): Adjust call to lower_omp.
8550 (lower_reduction_clauses): Ditto.
8551 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
8552 (lower_omp_sections): Don't explicitely count sequence length,
8553 nullify lowered bodies earlier, ensure stmts are part of only
8554 one sequence, adjust call to lower_omp.
8555 (lower_omp_single): Ensure stmts are part of only one sequence,
8556 adjust call to lower_omp.
8557 (lower_omp_master): Ditto.
8558 (lower_omp_ordered): Ditto.
8559 (lower_omp_critical): Ditto.
8560 (lower_omp_for): Ditto.
8561 (lower_omp_taskreg): Ditto, tidy.
8562 (lower_omp_1): Adjust calls to lower_omp.
8563 (execute_lower_omp): Ditto.
8564 (lower_omp): Adjust to take pointer to sequence.
8565 (diagnose_sb_2): Use walk_gimple_seq_mod.
8566 (diagnose_omp_structured_block_errors): Ditto and set possibly
8567 changed function body.
8568 * gimple-low.c (lower_function_body): Set function body after
8569 it stabilizes.
8570 (lower_sequence): Adjust to take pointer to sequence.
8571 (lower_omp_directive): Ensure stmt isn't put twice into the
8572 sequence, adjust call to lower_sequence.
8573 (lower_stmt): Adjust calls to lower_sequence.
8574 (lower_gimple_bind): Ditto.
8575 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
8576 * tree-nested.c (walk_body): Take pointer to sequence, use
8577 walk_gimple_seq_mod.
e2f2054f 8578 (walk_function): Adjust call to walk_body, set possibly changed body.
e3a19533 8579 (walk_gimple_omp_for): Adjust calls to walk_body.
8580 (convert_nonlocal_omp_clauses): Ditto.
8581 (convert_nonlocal_reference_stmt): Ditto.
8582 (convert_local_omp_clauses): Ditto.
8583 (convert_local_reference_stmt): Ditto.
8584 (convert_tramp_reference_stmt): Ditto.
8585 (convert_gimple_call): Ditto.
8586 (convert_nl_goto_reference): Use local iterator copy.
8587 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
8588 but taking pointer to sequence, ensure gsi_start is called with
8589 callers lvalue.
8590 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
8591 asserting that the sequence head didn't change.
8592 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
8593 walk_gimple_seq_mod.
8594 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
8595 (execute_lower_tm): Ditto, and set possibly changed body.
8596 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
8597 call gsi_start with that lvalue.
8598 (replace_goto_queue_stmt_list): Ditto.
8599 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
8600 (replace_goto_queue): Ditto.
8601 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
8602 (lower_try_finally_onedest): Ditto.
8603 (lower_try_finally_copy): Ditto.
8604 (lower_try_finally_switch): Ditto.
8605 (lower_try_finally): Ditto.
8606 (lower_eh_filter): Ditto.
8607 (lower_eh_must_not_throw): Ditto.
8608 (lower_cleanup): Ditto.
8609 (lower_eh_constructs_2): Ditto.
8610 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
8611 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
8612 set possibly changed body.
8613 (optimize_double_finally): Call gsi_start with lvalue.
8614
8615 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
8616 (gimple_split_block): Ditto.
8617 (gimple_merge_blocks): Use gsi_start_phis.
8618 (move_stmt_r): Use walk_gimple_seq_mod.
8619 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
8620 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
8621 (rebuild_cgraph_edges): Ditto.
8622 (cgraph_rebuild_references): Ditto.
8623 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
8624 * tree-inline.c (copy_phis_for_bb): Ditto.
8625 * tree-ssa-dce.c: Ditto.
8626
8627 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
8628
7f738025 86292012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
8630 Andi Kleen <ak@linux.intel.com>
8631
e3a19533 8632 * coretypes.h (MEMMODEL_MASK): New.
7f738025 8633 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
8634 and return new variable.
8635 (expand_builtin_atomic_exchange): Mask memmodel values.
8636 (expand_builtin_atomic_compare_exchange): Ditto.
8637 (expand_builtin_atomic_load): Ditto.
8638 (expand_builtin_atomic_store): Ditto.
8639 (expand_builtin_atomic_clear): Ditto.
8640 * doc/extend.texi: Mention port-dependent memory model flags.
8641 * config/i386/cpuid.h (bit_HLE): New.
8642 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8643 HLE support.
8644 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
91fcc716 8645 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
7f738025 8646 (ix86_target_string)<-mhle>: New.
e2f2054f 8647 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
8648 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
8649 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
8650 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
7f738025 8651 enabled for generic, generic64 and core-avx2.
8652 (ix86_print_operand): Generate HLE lock prefixes.
8653 (ix86_memmodel_check): New.
8654 (TARGET_MEMMODEL_CHECK): Ditto.
8655 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
8656 (IX86_HLE_ACQUIRE): Ditto.
8657 (IX86_HLE_RELEASE): Ditto.
8658 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
8659 * config/i386/i386.opt (mhle): Ditto.
8660 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
8661 success model to instruction emitter.
8662 (atomic_fetch_add<mode>): Ditto.
8663 (atomic_exchange<mode>): Ditto.
8664 (atomic_add<mode>): Ditto.
8665 (atomic_sub<mode>): Ditto.
8666 (atomic_<code><mode>): Ditto.
8667 (*atomic_compare_and_swap_doubledi_pic): Ditto.
8668 (atomic_compare_and_swap_single<mode>): Define and use argument
8669 for success model.
8670 (atomic_compare_and_swap_double<mode>): Ditto.
8671 * configure.ac: Check if assembler support HLE prefixes.
8672 * configure: Regenerate.
8673 * config.in: Ditto.
8674
b59e1c90 86752012-05-02 Steven Bosscher <steven@gcc.gnu.org>
8676
8677 PR middle-end/53153
8678 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
8679 split out from ...
8680 (gimplify_switch_expr): ... here.
8681 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
8682 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
8683 to clean up case labels with values outside the index type range.
8684 (simplify_gimple_switch): Call it if something changed.
8685 Remove strange and unnecessary assert.
8686
85d86b55 86872012-05-02 Richard Guenther <rguenther@suse.de>
8688
8689 * fold-const.c (div_if_zero_remainder): sizetypes no longer
8690 sign-extend.
8691 (int_const_binop_1): New worker for int_const_binop with
91fcc716 8692 overflowable parameter. Pass it through to force_fit_type_double.
85d86b55 8693 (int_const_binop): Wrap around int_const_binop_1 with overflowable
8694 equal to one.
8695 (size_binop_loc): Call int_const_binop_1 with overflowable equal
8696 to minus one, forcing overflow detection for even unsigned types.
8697 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
8698 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
8699 * stor-layout.c (initialize_sizetypes): sizetypes no longer
8700 sign-extend.
8701 (layout_type): For zero-sized arrays ignore overflow on the
8702 size calculations.
8703 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
8704 (bit_value_binop_1): Likewise.
8705 * tree.c (double_int_to_tree): Likewise.
8706 (double_int_fits_to_tree_p): Likewise.
8707 (force_fit_type_double): Likewise.
8708 (host_integerp): Likewise.
8709 (int_fits_type_p): Likewise.
8710 * varasm.c (output_constructor_regular_field): Sign-extend the
e2f2054f 8711 field-offset to cater for negative offsets produced by the Ada
8712 frontend.
85d86b55 8713 * omp-low.c (extract_omp_for_data): Convert the loop step to
8714 signed for pointer adjustments.
8715
87162012-05-02 Richard Guenther <rguenther@suse.de>
8717
8718 * tree.c (valid_constant_size_p): New function.
8719 * tree.h (valid_constant_size_p): Declare.
8720 * cfgexpand.c (expand_one_var): Adjust check for too large
8721 variables by using valid_constant_size_p.
8722 * varasm.c (assemble_variable): Likewise.
8723
8724 * c-decl.c (grokdeclarator): Properly check for sizes that
8725 cover more than half of the address-space.
8726
559f753b 87272012-05-02 Jakub Jelinek <jakub@redhat.com>
8728
8b3fb720 8729 PR tree-optimization/53163
8730 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
8731 return value from compute_all_dependences.
8732
559f753b 8733 PR rtl-optimization/53160
8734 * ree.c (combine_reaching_defs): Handle the case where cand->insn
8735 has been modified by ree pass already.
8736
73242672 87372012-05-01 Ian Lance Taylor <iant@google.com>
8738
8739 PR c/37303
8740 * c-decl.c (build_compound_literal): Make the decl readonly if it
8741 an array of a readonly type.
8742 * gimplify.c (gimplify_compound_literal_expr): Add fallback
8743 parameter. Change all callers. If the decl is not addressable
8744 and is not an l-value, make it readonly.
8745
e1d0b655 87462012-05-01 Bernd Schmidt <bernds@codesourcery.com>
8747
8748 * ira.c (allocated_reg_info_size): New static variable.
8749 (expand_reg_info): Manage it. Call
8750 setup_preferred_alternate_classes_for_new_pseudos.
8751 (ira): Don't do it here. Remove local allocated_reg_info_size,
8752 set the global before calling find_moveable_pseudos.
8753 (find_moveable_pseudos): Call expand_reg_info rather than
8754 resize_reg_info.
8755
d8219307 87562012-05-01 Richard Henderson <rth@redhat.com>
8757
8758 * common.opt (fsync-libcalls): New.
8759 * doc/invoke.texi: Document it.
8760 * optabs.c (init_sync_libfuncs): Honor it.
8761
c7944dce 87622012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
8763 Richard Sandiford <r.sandiford@uk.ibm.com>
8764
31fa83cd 8765 PR rtl-optimization/52543
c7944dce 8766 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
8767 lower-subreg.h.
8768 * lower-subreg.h: New file.
8769 * target-globals.h (this_target_lower_subreg): Declare.
8770 (target_globals): Add lower_subreg;
8771 (restore_target_globals): Restore this_target_lower_subreg.
8772 * target-globals.c: Include it.
8773 (default_target_globals): Add default_target_lower_subreg.
8774 (save_target_globals): Initialize target_lower_subreg.
8775 * rtl.h (init_lower_subreg): Added declaration.
8776 * toplev.c (backend_init_target): Call initializer for lower-subreg
8777 pass.
8778 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
8779 (default_target_lower_subreg): New variable.
8780 (this_target_lower_subreg): Likewise.
8781 (twice_word_mode, choices): New macros.
8782 (shift_cost, compute_splitting_shift, compute_costs)
8783 (init_lower_subreg): New functions.
8784 (resolve_simple_move): Add speed_p argument. Check choices.
8785 (find_pseudo_copy): Don't check the mode size here.
8786 (resolve_simple_move): Assert the mode size.
8787 (find_decomposable_shift_zext): Add speed_p argument and return
8788 a bool. Check choices.
8789 (resolve_shift_zext): Add comment.
8790 (dump_shift_choices, dump_choices): New functions.
8791 (decompose_multiword_subregs): Dump list of profitable
8792 transformations. Add code to skip non profitable transformations.
8793 Update calls to simple_move and find_decomposable_shift_zext.
8794
e7fd8dfa 87952012-05-01 Ian Bolton <ian.bolton@arm.com>
e2f2054f 8796 Sameera Deshpande <sameera.deshpande@arm.com>
8797 Greta Yorsh <greta.yorsh@arm.com>
e7fd8dfa 8798
8799 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
e2f2054f 8800 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 8801 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
e2f2054f 8802 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 8803 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
e2f2054f 8804 (thumb1_unexpanded_epilogue): ...this.
e7fd8dfa 8805
68a172b9 88062012-05-01 Richard Earnshaw <rearnsha@arm.com>
8807
8808 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
8809 comparing enumeration values. Update comments.
8810
e356c169 88112012-05-01 Alan Modra <amodra@gmail.com>
8812
8813 PR target/53038
8814 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
8815 load_cr_save, add_crlr_cfa_restore): New functions.
8816 (rs6000_restore_saved_cr): Rename to..
8817 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
8818 (rs6000_emit_epilogue): Use new functions. Adjust condition
8819 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
8820 regs when using out-of-line restore only when shrink wrapping.
8821
a690dc32 88222012-04-30 Uros Bizjak <ubizjak@gmail.com>
8823
8824 PR middle-end/53136
8825 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
8826 calls to cgraph_node_name in xstrdup.
8827 (ipa_make_edge_direct_to_target): Ditto.
8828 * cgraph.c (dump_cgraph_node): Ditto.
8829 * tree-sra.c (convert_callers_for_node): Ditto.
8830 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
8831 * ipa-cp.c (perhaps_add_new_callers): Ditto.
8832 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
8833 (cgraph_materialize_all_clones): Ditto.
8834 * ipa-inline.c (report_inline_failed_reason): Ditto.
8835 (want_early_inline_function_p): Ditto.
8836 (edge_badness): Ditto.
8837 (update_edge_key): Ditto.
8838 (flatten_function): Ditto.
8839 (ipa_inline): Ditto.
e2f2054f 8840 (inline_always_inline_functions): Ditto.
a690dc32 8841 (early_inline_small_functions): Ditto.
8842
b3987b8f 88432012-04-30 Uros Bizjak <ubizjak@gmail.com>
8844
8845 PR target/53141
8846 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
8847 constraints 0 and 1.
8848
cf951b1a 8849012-04-30 Jan Hubicka <jh@suse.cz>
8850
8851 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
8852 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
8853 (cgraph_add_to_same_comdat_group): Remove.
8854 (cgraph_add_asm_node): Move to cgraphunit.c.
8855 (cgraph_make_decl_local): Move to symtab.c
8856 (cgraph_make_node_local_1): Update.
8857 (cgraph_can_remove_if_no_direct_calls_and): Update.
8858 (used_from_object_file_p): Update.
8859 (resolution_used_from_other_file_p): Move to symtab.c
8860 (cgraph_used_from_object_file_p): move to symtab.c
8861 (verify_cgraph_node): Verify same comdat groups.
8862 * cgraph.h (cgraph_asm_node): Rename to ...
8863 (asm_node): ... this one.
8864 (cgraph_asm_nodes): Rename to ...
8865 (asm_nodes): ... this one.
8866 (symtab_add_to_same_comdat_group): New function.
8867 (symtab_dissolve_same_comdat_group_list): New function.
8868 (symtab_used_from_object_file_p): Declare.
8869 (symtab_make_decl_local): Declare.
8870 (cgraph_add_to_same_comdat_group): Remove.
8871 (cgraph_add_asm_node): Remove.
8872 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
8873 Remove.
8874 (cgraph_finalize_compilation_unit): Rename to ...
8875 (finalize_compilation_unit): ... this one.
8876 (cgraph_optimize): Rename to ....
8877 (compile): ... this one.
8878 (add_asm_node): Declare.
8879 (fixup_same_cpp_alias_visibility): Declare.
8880 (cgraph_make_decl_local): Remove.
8881 (varpool_assemble_pending_decls): Rename to ...
8882 (varpool_output_variables): ... this one.
8883 (varpool_remove_unreferenced_decls): Remove.
8884 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
8885 (preserve_function_body_p): Make static.
b3987b8f 8886 * toplev.c (compile_file): Update comments; update.
cf951b1a 8887 * cgraphunit.c: Update comments.
8888 (cgraph_expand_all_functions): Rename to ...
8889 (expand_all_functions): ... this one; update.
8890 (cgraph_mark_functions_to_output): Rename to ...
8891 (mark_functions_to_output): ... this one; cleanup.
8892 (cgraph_output_pending_asms): Remove prototype.
8893 (asm_nodes, asm_last_node): New static vars.
8894 (cgraph_process_new_functions): Update.
8895 (cgraph_reset_node): Cleanup; add comment.
8896 (cgraph_add_new_function): Update.
8897 (cgraph_output_pending_asms): Rename to ...
8898 (output_asm_statements): ... this one.
8899 (add_asm_node): New function.
8900 (fixup_same_cpp_alias_visibility): New function based on code
8901 in cgraph_analyze_function.
8902 (cgraph_analyze_function): Use it.
8903 (cgraph_order_sort): Update.
8904 (cgraph_output_in_order): Update.
8905 (cgraph_function_versioning): Update.
8906 (cgraph_optimize): Rename to ...
8907 (compile): ... this one; initialize streamer hooks here.
8908 (cgraph_finalize_compilation_unit): Rename to ...
8909 (finalize_compilation_unit): ... this one; do not initialize streamer
8910 hook here.
8911 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
8912 * dwarf2out.c: Update ocmment.
8913 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
8914 * method.c (use_thunk): Likewise.
8915 * semantics.c (maybe_add_lambda_conv_op): Likewise.
b3987b8f 8916 * decl2.c (maybe_emit_vtables): Likewise.
cf951b1a 8917 (cp_write_global_declarations): Use finalize_compilation_unit.
8918 * parser.c (cp_parser_asm_definition): Use add_asm_node.
8919 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
b3987b8f 8920 * c-decl.c (c_write_global_declarations): Use
8921 finalize_compilation_unit.
cf951b1a 8922 * langhooks.c (write_global_declarations): Update.
8923 * ipa.c (cgraph_externally_visible_p): Update.
8924 (dissolve_same_comdat_group_list): Remove.
8925 (function_and_variable_visibility): Update.
8926 * symtab.c: Inlcude lto-streamer.h and rtl.h
8927 (ld_plugin_symbol_resolution_names): New.
8928 (symtab_add_to_same_comdat_group): New.
8929 (symtab_dissolve_same_comdat_group_list): New.
8930 (resolution_used_from_other_file_p): Move here from cgraph.c
8931 (symtab_used_from_object_file_p): New.
8932 (symtab_make_decl_local): New.
8933 * passes.c (register_pass): Update comments.
8934 * c-parser.c (c_parser_asm_definition): Update.
b3987b8f 8935 * varpool.c (varpool_analyze_node): Use
8936 fixup_same_cpp_alias_visibility.
cf951b1a 8937 (varpool_remove_unreferenced_decls): Make static.
8938 (varpool_assemble_pending_decls): Rename to ...
8939 (varpool_output_variables): ... this one; call
8940 varpool_remove_unreferenced_decls.
8941 (varpool_used_from_object_file_p): Remove.
8942
7059d45d 89432012-04-30 Marc Glisse <marc.glisse@inria.fr>
8944
8945 PR c++/51033
8946 * c-typeck.c (build_array_ref): Call
8947 convert_vector_to_pointer_for_subscript.
8948 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
8949
df65c84d 89502012-04-30 Uros Bizjak <ubizjak@gmail.com>
8951
8952 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
8953 to compile-time "mode == <MODE>mode" checks.
8954 (and splitter): Ditto.
8955
ab1e18de 89562012-04-30 Richard Henderson <rth@redhat.com>
8957
8958 * config/arm/arm.md (UNSPEC_LL): New.
8959 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
8960 (arm_load_exclusivedi): Use %H0.
8961
3474b65d 89622012-04-30 Jason Merrill <jason@redhat.com>
8963
8964 * dwarf2out.c (comdat_symbol_id): Add const.
8965 (union die_symbol_or_type_node): Add const to die_symbol.
8966 (output_die_symbol, output_die, output_comp_unit): Adjust.
8967
774d2fbb 89682012-04-30 Andrew Stubbs <ams@codesourcery.com>
8969
8970 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
8971 * config/arm/neon.md (negdi2_neon): New insn.
8972 Also add splitters for core and NEON registers.
8973
87f800b2 89742012-04-30 Andrew Stubbs <ams@codesourcery.com>
8975
8976 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
8977 (arm_print_operand): Add 'x' format.
8978 * config/arm/constraints.md (Dn): Allow const_int.
8979 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
8980 Use 'x' format to print constants.
8981 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
8982 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
8983 is enabled.
8984 (movdi_vfp_cortexa8): Likewise.
8985
a2623f6b 89862012-04-30 Ian Bolton <ian.bolton@arm.com>
917cf02d 8987 Sameera Deshpande <sameera.deshpande@arm.com>
8988 Greta Yorsh <greta.yorsh@arm.com>
69973f3a 8989
8990 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
8991 * config/arm/arm.c (ldm_stm_operation_p): New function.
8992 * config/arm/predicates.md (load_multiple_operation): Update predicate.
8993 (store_multiple_operation): Likewise.
8994
394cb8e0 8995 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
8996 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
8997 * config/arm/predicates.md (load_multiple_operation): Add arguments.
df65c84d 8998 (store_multiple_operation): Likewise.
394cb8e0 8999
9676484f 90002012-04-30 Uros Bizjak <ubizjak@gmail.com>
9001
9002 * config/i386/i386.md (and<mode>3): Expand masking operations with
9003 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
9004 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
9005
7edb1062 90062012-04-30 Dodji Seketeli <dodji@redhat.com>
9007
9008 Add -Wvarargs option
9009 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
9676484f 9010 argument for the various warning_at calls.
7edb1062 9011 * docs/invoke.texi: Update the documentation.
9012
6982c82d 90132012-04-30 Dodji Seketeli <dodji@redhat.com>
9014
611f1003 9015 Switch -ftrack-macro-expansion=2 on by default.
9016 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
9017 by default.
9018
d98fd4a4 9019 Fix va_start related location
9020 * builtins.c (fold_builtin_next_arg): Unwinds to the first
9021 location in real source code.
9022
db30b351 9023 Make conversion warnings work on NULL with -ftrack-macro-expansion
9024 * input.h (expansion_point_location_if_in_system_header): Declare
9025 new function.
9676484f 9026 * input.c (expansion_point_location_if_in_system_header): Define it.
db30b351 9027
18f0e0e5 9028 Fix -Wuninitialized for -ftrack-macro-expansion
9676484f 9029 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
9030 declaration. Use linemap_location_before_p for source locations.
18f0e0e5 9031
bd172d61 9032 Strip "<built-in>" loc from displayed expansion context
9033 * input.c (expand_location_1): When expanding to spelling location
9034 in a context of a macro expansion, skip reserved system header
9035 locations. Update comments. * tree-diagnostic.c
9036 (maybe_unwind_expanded_macro_loc): Likewise.
9037
39107655 9038 Make expand_location resolve to locus in main source file
9039 * input.c (expand_location_1): New. Takes a parameter to choose
9040 whether to resolve the location to spelling or expansion point.
9041 Was factorized from ...
9042 (expand_location): ... here.
9043 (expand_location_to_spelling_point): New. Implemented in terms of
9044 expand_location_1.
9045 * diagnostic.c (diagnostic_build_prefix): Use the new
9046 expand_location_to_spelling_point instead of expand_location.
9047
6982c82d 9048 Fix PCH crash on GTYed pointer-to-scalar field of a struct
9049 * gengtype.c (write_types_process_field): Force second argument of
9050 the call to the PCH object hierarchy walker to be 'x'.
9051
81f9f420 90522012-04-30 Eric Botcazou <ebotcazou@adacore.com>
9053
9054 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
9055 predicate to discriminate types.
9056
b86527d8 90572012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
9058
9059 * doc/invoke.texi (Wmissing-format-attribute): Document as an
9060 alias of Wsuggest-attribute=format.
9061 * c-typeck.c (convert_for_assignment): Replace
9062 Wmissing-format-attribute with Wsuggest-attribute=format.
9063 (digest_init): Likewise.
9064
fdc46702 90652012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
9066
9676484f 9067 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
9068 * common.opt (Wmissing-noreturn): Alias of
9069 -Wsuggest-attribute=noreturn.
fdc46702 9070
87ef8b95 90712012-04-29 Hans-Peter Nilsson <hp@axis.com>
9072
9073 PR target/53156
9074 * config/cris/cris.md (andqu): New peephole2.
9075 (andu): Tweak head comment.
9076
0f9b384d 90772012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9078 Steven Bosscher <steven@gcc.gnu.org>
9079 Maxim Kuvyrkov <maxim@codesourcery.com>
9080
9081 PR tree-optimization/38785
9082 * common.opt (ftree-partial-pre): New option.
9083 * doc/invoke.texi: Document it.
9084 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
9085 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
9086 benefit speed path.
9087 (execute_pre): Use flag_tree_partial_pre.
9088
7c5d3a90 90892012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9090
9091 PR target/52999
9092 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
9093 in constant pool.
9094
034788fc 90952012-04-27 Ollie Wild <aaw@google.com>
76d340ac 9096
9097 * doc/invoke.texi (Wliteral-suffix): Document new option.
9098
c9f46599 90992012-04-27 Tom Tromey <tromey@redhat.com>
9100
9101 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
9102 (dwarf_tag_name): Use get_DW_TAG_name.
9103 (dwarf_attr_name): Use get_DW_AT_name.
9104 (dwarf_form_name): Use get_DW_FORM_name.
9105 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
9106
678919fd 91072012-04-27 Paolo Bonzini <bonzini@gnu.org>
9108
9676484f 9109 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
9110 arguments are -1 and 0, by negating the result of the conditional.
678919fd 9111
8be7badc 91122012-04-27 Paolo Bonzini <bonzini@gnu.org>
9113
9114 PR target/53138
9115 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
9116
8763c223 91172012-04-27 Richard Guenther <rguenther@suse.de>
9118
9119 * tree-flow.h (is_hidden_global_store): Remove.
9120 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
9121 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
9122 (stmt_may_clobber_global_p): Likewise.
9123 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
9124 (stmt_may_clobber_global_p): Likewise.
9125 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
9126 stmt_may_clobber_global_p.
9127 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
9128
11f2f313 91292012-04-27 Steven Bosscher <steven@gcc.gnu.org>
9130
845b40c8 9131 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
9132 place.
9133
11f2f313 9134 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
9135 reorganize some fields and update comments. Rename bit_test_uniq
9136 and bit_test_count to uniq resp. count. Remove bit_test_bb.
9137 (collect_switch_conv_info): New function, collects info about a
9138 GIMPLE_SWITCH into a struct switch_conv_info.
9139 (check_range): Simplify to use pre-recorded info. Fix think-o in
9140 range-branch ratio check.
9141 (check_process_case): Remove function.
9142 (check_all_empty_except_final): New function, verifies that all
9143 non-final basic blocks are empty.
9144 (process_switch): Simplify to use pre-recorded info. Call
9145 collect_switch_conv_info to do that. Assert that degenerate switch
9146 statements have been cleaned up.
9147
487282d5 91482012-04-27 Marc Glisse <marc.glisse@inria.fr>
9149
9150 PR middle-end/27139
9151 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
9152
b0ec32b9 91532012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
9154
9155 PR c/53130
9156 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
9157
b736e424 91582012-04-27 Tom de Vries <tom@codesourcery.com>
9159
9160 PR tree-optimization/51879
9161 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
9162 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
9163 of ...
9164 (defs_to_varying): ... here. Don't set use_processed.
9165 (visit_reference_op_call): Handle gimple_vdef.
9166 Handle case that lhs is NULL_TREE.
9167 (visit_use): Use mark_use_processed. Handle calls with side-effect
9168 using visit_reference_op_call.
9169
fdb1b2b1 91702012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
9171
9172 * sched-deps.c (fixup_sched_groups): Rename to...
9173 (chain_to_prev_insn): ...this.
9174 (chain_to_prev_insn_p): New function.
9175 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
9176
b30b031c 91772012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
9178
9179 * sched-int.h (_haifa_insn_data): Move priority_status.
9180 Add model_index.
9181 (INSN_MODEL_INDEX): New macro.
9182 * haifa-sched.c (insn_delay): New function.
9183 (sched_regno_pressure_class): Update commentary.
9184 (mark_regno_birth_or_death): Pass the liveness bitmap and
9185 pressure array as arguments, instead of using curr_reg_live and
9186 curr_reg_pressure. Only update the pressure if the bit in the
9187 liveness set has changed.
9188 (initiate_reg_pressure_info): Always trust the live-in set for
9189 SCHED_PRESSURE_MODEL.
9190 (initiate_bb_reg_pressure_info): Update call to
9191 mark_regno_birth_or_death.
9192 (dep_list_size): Take the list as argument.
9193 (calculate_reg_deaths): New function, extracted from...
9194 (setup_insn_reg_pressure_info): ...here.
9195 (MODEL_BAR): New macro.
9196 (model_pressure_data, model_insn_info, model_pressure_limit)
9197 (model_pressure_group): New structures.
9198 (model_schedule, model_worklist, model_insns, model_num_insns)
9199 (model_curr_point, model_before_pressure, model_next_priority):
9200 New variables.
9201 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
9202 (MODEL_INSN_INFO, MODEL_INSN): New macros.
9203 (model_index, model_update_limit_points_in_group): New functions.
9204 (model_update_limit_points, model_last_use_except): Likewise.
9205 (model_start_update_pressure, model_update_pressure): Likewise.
9206 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
9207 (model_excess_cost, model_dump_pressure_points): Likewise.
9208 (model_set_excess_costs): Likewise.
9209 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
9210 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
9211 schedule as an alternative tie-breaker. Update the call to
9212 dep_list_size.
9213 (ready_sort): Call model_set_excess_costs.
9214 (update_register_pressure): Update call to mark_regno_birth_or_death.
9215 Rely on that function to check liveness rather than doing it here.
9216 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
9217 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
9218 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
9219 (model_record_pressure, model_record_pressures): New functions.
9220 (model_record_final_pressures, model_add_successors_to_worklist)
9221 (model_promote_predecessors, model_choose_insn): Likewise.
9222 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
9223 (model_start_schedule, model_finalize_pressure_group): Likewise.
9224 (model_end_schedule): Likewise.
9225 (schedule_insn): Say when we're scheduling the next instruction
9226 in the model schedule.
9227 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
9228 (queue_to_ready): Do not add instructions that are
9229 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
9230 Always allow the next instruction in the model schedule to be added.
9231 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
9232 and delay for SCHED_PRESSURE_MODEL too.
9233 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
9234 SCHED_PRIORITY_MODEL, but also take the DFA into account.
9235 (schedule_block): Call model_start_schedule and model_end_schedule.
9236 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
9237 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
9238 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
9239 region_ref_regs.
9240 (sched_finish): Update accordingly.
9241 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
9242 to SCHED_PRESSURE_MODEL.
9243 (add_jump_dependencies): Update call to dep_list_size.
9244 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
9245 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
9246 to SCHED_PRESSURE_MODEL.
9247 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
9248 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
9249 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
9250 handling to SCHED_PRESSURE_MODEL.
9251
11189c7a 92522012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
9253
9254 * common.opt (fsched-pressure-algorithm=): New option.
9255 * flag-types.h (sched_pressure_algorithm): New enum.
9256 * sched-int.h (sched_pressure_p): Replace with...
9257 (sched_pressure): ...this new variable.
9258 * haifa-sched.c (sched_pressure_p): Replace with...
9259 (sched_pressure): ...this new variable.
9260 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
9261 (update_reg_and_insn_max_reg_pressure, schedule_insn)
9262 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
9263 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
9264 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
9265 (sched_analyze_insn): Likewise.
9266 * sched-rgn.c (schedule_region): Likewise.
9267 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
9268
be851ef2 92692012-04-26 Bernd Schmidt <bernds@codesourcery.com>
9270
9271 * PR middle-end/52997
9272 * ira.c (find_moveable_pseudos): Call resize_reg_info.
9273
c8076084 9274 PR middle-end/52940
9275 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
9276 * expr.c (convert_move): Honor unsignedp when extending partial int
9277 modes.
9278 * genmodes.c (complete_mode): Don't clear component field of partial
9279 int modes.
9280 (emit_mode_inner): Don't emit it however.
9281 (calc_wider_mode): Partial int modes widen to their component.
9282
cd7e5042 92832012-04-26 David S. Miller <davem@davemloft.net>
9284
65e00a51 9285 * config/sparc/niagara4.md: New file.
9286 * config/sparc/sparc.md: Include it.
9287 * config/sparc/sparc.c (niagara4_costs): New processor costs.
9288 (sparc_option_override): Use it.
9289 (sparc_use_sched_lookahead): Return 2 for niagara4.
9290 (sparc_issue_rate): Likewise.
9291
cd7e5042 9292 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
9293 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
9294 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
9676484f 9295 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
cd7e5042 9296 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
9297 alignaddrldi_vis): Set type to gsr.
9298 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
9299 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
9300 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
9301 v<vis3_shift_patname><mode>3, fmean16_vis,
9302 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
9303 fucmp<code>8<P:mode>_vis): Set type to fga.
9304 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
9305 * config/sparc/niagara.md: Likewise.
9306 * config/sparc/niagara2.md: Likewise.
9307 * config/sparc/ultra3.md: Likewise, and fix type matching for
9308 us3_ialuX reservation.
9309
c7ba7c12 93102012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9311
9312 * reload.c (find_reloads): Change the loop nesting when trying an
9313 alternative with swapped operands.
9314
3f898bd2 93152012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
9316
9317 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
9318 comment. Delete unused parameter first_exp_point_map.
9319 (virt_loc_aware_diagnostic_finalizer): Update call.
9320
9dd1a066 93212012-04-26 Michael Hope <michael.hope@linaro.org>
9322 Richard Earnshaw <rearnsha@arm.com>
9323
9324 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
9325 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
9326 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
9327 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
9328
d79cfc15 93292012-04-25 Sriraman Tallam <tmsriram@google.com>
9330
9331 * doc/extend.texi: Document avx2 support.
9332 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
9333
74e06a83 93342012-04-26 Hans-Peter Nilsson <hp@axis.com>
9335
9336 PR target/53120
9337 * config/cris/cris.md ("*andhi_lowpart_v32")
9338 ("*andqi_lowpart_v32"): Change first input-only operand from
9339 a (match_operand ...) to (match_dup 0). Drop alternatives with
9340 const_int-matching constraints for redundancy.
9341 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
9342 three-operand alternative.
9343
b828abf1 93442012-04-25 Jakub Jelinek <jakub@redhat.com>
9345
9346 PR target/53110
9347 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
9348 instead expand it as zero extension.
9349
89336bc3 93502012-04-25 H.J. Lu <hongjiu.lu@intel.com>
9351
9352 PR debug/52857
9676484f 9353 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
89336bc3 9354
052166fd 93552012-04-25 Jakub Jelinek <jakub@redhat.com>
9356
9357 * common.opt (flag_debug_types_section): Default to 0.
9358 (dwarf_version): Default to 4.
9359 (dwarf_record_gcc_switches): Default to 1.
9360 (dwarf_strict): Default to 0.
9361 * toplev.c (process_options): Don't handle dwarf_strict
9362 or dwarf_version here.
9363 * config/vxworks.c (vxworks_override_options): Don't
9364 test whether dwarf_strict or dwarf_version are negative,
9365 instead test !global_options_set.x_dwarf_*.
9366 * config/darwin.c (darwin_override_options): Default to
9367 dwarf_version 2.
9368 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
9369 and -fno-debug-types-section are now the default.
9370
da5e1e7c 93712012-04-25 Jan Hubicka <jh@suse.cz>
9372
9373 * cgraphunit.c: Update toplevel comment.
9374 (tree_rest_of_compilation): Merge into cgraph_expand_function.
9375 (cgraph_analyze_function): Make static.
9376 (cgraph_decide_is_function_needed): Make static.
9377 (cgraph_add_new_function): Use expand_function instead of
9378 rest_of_compilation.
9379 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
9380 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
9381 Move to cgraph.c
9382 (cgraph_inline_p): Remove.
9383 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
9384 (init_cgraph): Add comment.
9385 * cgraphbuild.c (record_reference, mark_address, mark_load,
9386 mark_store): Do not call analyze_expr hook.
9387 * cgraph.c: Update toplevel comment.
9388 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
9389 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
9390 Move fere from cgraphunit.c
9391 (cgraph_mark_force_output_node): Move to cgraph.h
9392 * cgraph.h: Reorder so the comments match the function placement.
9393 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
9394 (cgraph_mark_force_output_node): Move here from cgraph.c
9395 * tree.c (free_lang_data): Do not clear analyze_expr hook.
9396 * ipa-inline-transform.c (preserve_function_body_p): New function.
9397 (inline_transform): Update.
9398 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
9399 * langhooks.h (lang_hooks_for_callgraph): Remove.
9400 (lang_hooks): Remove callgraph.
9401 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
9402 * varpool.c: Remove out of date comment.
9403 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
9404 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
9405
9a2639fc 94062012-04-25 Jan Hubicka <jh@suse.cz>
9407
9676484f 9408 PR middle-end/53089
9409 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
9410 forward declaration.
9a2639fc 9411 (cgraph_finalize_function): Finalize them here.
9412 * symtab.c (dump_symtab): Dump ctors and dtors.
9413
27d5d67b 94142012-04-25 Jakub Jelinek <jakub@redhat.com>
9415
7e9ba3f3 9416 PR middle-end/52979
9417 * stor-layout.c (get_best_mode): Don't return mode with bitsize
9418 larger than maxbits. Don't compute maxbits modulo align.
9419 Also check that unit bytes long store at bitpos / unit * unit
9420 doesn't affect bits beyond bitregion_end.
9421 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
9676484f 9422 would not fit into bitregion_start ... bitregion_end + 1 bit region.
7e9ba3f3 9423 (store_split_bit_field): Decrease unit close to end of bitregion_end
9424 if access is restricted in order to avoid mutual recursion.
9425
27d5d67b 9426 PR tree-optimization/53058
9427 * double-int.h (double_int_max_value, double_int_min_value): New
9428 prototypes.
9429 * double-int.c (double_int_max_value, double_int_min_value): New
9430 functions.
9676484f 9431 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
9432 or GT_EXPR with double_int_max_value instead of double_int_mask.
27d5d67b 9433
2afdcbed 94342012-04-25 Richard Guenther <rguenther@suse.de>
9435
9436 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
9437 * tree-vect-loop.c (vect_transform_loop): Adjust.
9438 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
9439 the maximum number of iterations for the epilogue loop.
9676484f 9440 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
2afdcbed 9441
537cbcc2 94422012-04-25 Jakub Jelinek <jakub@redhat.com>
9443
9444 PR c/52880
9445 * c-typeck.c (set_nonincremental_init,
9446 set_nonincremental_init_from_string): Pass true instead of false
9447 as IMPLICIT to add_pending_init.
9448
292bb106 94492012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
9450
9451 * c-typeck.c (pop_init_level): Improve diagnostics.
9452
56cc4397 94532012-04-25 Uros Bizjak <ubizjak@gmail.com>
9454
9455 * compare-elim.c (try_eliminate_compare): Also handle operands with
9456 implicit extensions.
9457
cef20746 94582012-04-25 Alan Modra <amodra@gmail.com>
9459
9460 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
9461 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
9462 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
9463 (no_global_regs_above): Delete.
9464 (no_global_regs): New function.
9465 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
9466 value for load multiple test.
9467 (savres_routine_syms): Increase size.
9468 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
9469 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
9470 rather than a number of boolean flags. Update all callers.
9471 (rs6000_savres_routine_name): Generate vector save/restore names.
9472 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
9473 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
9474 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
9475 and using_store_multiple. Expand uses. Don't always use r11 as
9476 frame reg when needed for out-of-line saves. Set up initial offset
9477 for out-of-line vector saves when buying stack frame. Handle pointer
9478 reg setup for out-of-line fp save. Emit call to out-of-line vector
9479 save function. Choose r11 or r12 for vrsave reg when available for
9480 better scheduling.
9481 (rs6000_output_function_prologue): Don't emit .extern for ELF.
9482 (rs6000_emit_epilogue): Choose a better frame reg when restoring
9483 from back-chain to suit out-of-line vector restore functions. Emit
9484 call to out-of-line vector restore function. Adjust register used
9485 for cr restore. Tweak pointer register setup for gpr restore.
9486 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
9487 FIXED_R13.
9488 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
9489 (V_SAVE_INLINE): Define.
9490 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
9491
6b5a351f 94922012-04-25 Alan Modra <amodra@gmail.com>
9493
9494 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
9495 out-of-line save/restore for large frames. Don't disable
9496 out-of-line saves on ABI_AIX when using static chain reg.
9497 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
9498 clobber static chain reg, and tweak for out-of-line gpr saves
9499 that use r1.
9500
e2750fe5 95012012-04-25 Alan Modra <amodra@gmail.com>
9502
9503 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
9504 (rs6000_emit_prologue): Use the above to catch register overlap.
9505
be846acb 95062012-04-25 Alan Modra <amodra@gmail.com>
9507
9508 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
9509 decl. Move logic selecting update reg to callers. Update all callers.
9510 (rs6000_emit_allocate_stack): Add copy_off param.
9511 (emit_frame_save): Don't handle reg+reg addressing.
9512 (ptr_regno_for_savres): New function, extracted from..
9513 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
9514 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
9515 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
9516 frame offset adjustment for out-of-line save with copy from sp.
9517 Simplify condition controlling whether cr is saved early or
9518 late. Use ptr_regno_for_savres to verify correct reg is set
9519 up for out-of-line saves. Pass the actual pointer reg used to
9520 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
9521 function. Rearrange spe vars so code is similar to that
9522 elsewhere in this function. Don't update frame_off when spe
9523 save code will restore r11. Use emit_frame_save for spe and
9524 gpr saves. Consolidate darwin out-of-line gpr setup with that
9525 for other abis. Don't assume frame_offset is zero and frame
9526 reg is sp when setting up altivec reg saves, and calculate
9527 exact offset requirement.
9528 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
9529 spe restore code. Consolidate darwin out-of-line gpr setup
9530 with that for other abis.
9531
9319fb2c 95322012-04-25 Alan Modra <amodra@gmail.com>
9533
9534 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
9535 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
9536 the replacement.
9537 (emit_frame_save): Delete frame_ptr param. Rename total_size to
9538 frame_reg_to_sp.
9539 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
9540 and emit_frame_save calls. Cope with possibly missing note.
9541
f0fd108f 95422012-04-24 Sriraman Tallam <tmsriram@google.com>
9543
9544 * config/i386/i386.c (build_processor_model_struct): New function.
9545 (make_var_decl): New function.
9546 (fold_builtin_cpu): New function.
9547 (ix86_fold_builtin): New function.
9548 (make_cpu_type_builtin): New function.
9549 (ix86_init_platform_type_builtins): New function.
9550 (ix86_expand_builtin): Expand new builtins by folding them.
9551 (ix86_init_builtins): Make new builtins to detect CPU type.
9552 (TARGET_FOLD_BUILTIN): New macro.
9553 (IX86_BUILTIN_CPU_INIT): New enum value.
9554 (IX86_BUILTIN_CPU_IS): New enum value.
9555 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
9556 * config/i386/i386-builtin-types.def: New function type.
9557 * testsuite/gcc.target/builtin_target.c: New testcase.
9558 * doc/extend.texi: Document builtins.
9559
11652e71 95602012-04-24 Olivier Hainque <hainque@adacore.com>
9561
9562 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
9563 * toplev.c (process_options): Default to dwarf_version 2.
9564 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
9565 and dwarf_version 2.
9566
c224fa34 95672012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
9568
9569 * tree-pretty-print.h (default_tree_printer): Do not declare.
9570 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
9571 intl.h.
9572 (default_tree_diagnostic_starter): Make static.
9573 (default_tree_printer): Move to here. Make static.
9574 (tree_diagnostics_defaults): New.
9575 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
9576 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
9577 * toplev.c: Do not include tree-pass.h.
9578 (default_tree_printer): Move from here.
9579 (general_init): Use tree_diagnostics_defaults.
9580
f5dfbb10 95812012-04-24 Chao-ying Fu <fu@mips.com>
9582
9583 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
9584 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
9585 * config/mips/gnu-user.h
9586 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
9587 (GNU_USER_TARGET_LINK_SPEC): New define.
9588 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
9589 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
9590 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
9591 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
9592 GNU_USER_TARGET_ENDFILE_SPEC.
9593 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
9594 (GNU_USER_TARGET_LINK_SPEC): New define.
9595 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
9596 * config/mips/linux-common.h: New file.
9597
745d490f 95982012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9599
9600 PR target/47197
9601 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
9602 (altivec_build_resolved_builtin): Call fully_fold_convert.
9603
8bcbced7 96042012-04-24 Georg-Johann Lay <avr@gjlay.de>
9605
9606 PR target/53065
9607 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
9608
a34205cc 96092012-04-24 Richard Guenther <rguenther@suse.de>
9610
9611 PR tree-optimization/53085
9612 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
9613 stores.
9614
630fd6e1 96152012-04-24 Richard Guenther <rguenther@suse.de>
9616
9617 * tree-if-conv.c (main_tree_if_conversion): Move bb under
9618 ENABLE_CHECKING.
9619
96202012-04-24 Jim Meyering <meyering@redhat.com>
891852a2 9621
9622 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
9623 absence of an define_enum call.
9624
15fa0281 96252012-04-24 Richard Guenther <rguenther@suse.de>
9626
9627 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
9628 the epilogue loop is not re-used as unvectorized version
9629 record the its maximum number of iterations.
9630
0a3f7203 96312012-04-24 Andrew Pinski <apinski@cavium.com>
9632
9633 * tree-ssa-forwprop.c (simplify_bitwise_binary):
9634 Don't directly use def1/def2.
9635
9a5ede52 96362012-04-24 Richard Guenther <rguenther@suse.de>
9637
9638 PR tree-optimization/53098
9639 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
9640 comparison sign.
9641
10fbe63d 96422012-04-24 Andrew Pinski <apinski@cavium.com>
9643
9644 PR tree-opt/33512
9645 * tree-ssa-forwprop.c (defcodefor_name): New function.
9646 (simplify_bitwise_binary): Use defcodefor_name instead of manually
9647 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
9648 Simplify "(~X | Y) & X" to "X & Y" and
9649 "(~X & Y) | X" to "X | Y".
9650
dae9d0e7 96512012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9652
9653 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
9654 validate_change to add clobbers if IN_GROUP is nonzero.
9655 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
9656 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
9657 prototype.
9658 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
9659 set to false.
9660 * config/s390/s390.c (insn_invalid_p): Likewise.
9661
41d658f4 96622012-04-24 Jakub Jelinek <jakub@redhat.com>
9663
36a2ea56 9664 PR middle-end/53084
56cc4397 9665 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
36a2ea56 9666 (output_addressed_constants): Likewise.
9667
41d658f4 9668 PR middle-end/52999
9669 * varasm.c (get_section): Don't ICE for section conflicts with
9670 built-in section kinds.
9671
a9805878 96722012-04-23 DJ Delorie <dj@redhat.com>
9673
9674 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
9675 (LIBSTDCXX): Change to CPP2.
9676
5fcf082c 96772012-04-23 H.J. Lu <hongjiu.lu@intel.com>
9678
9679 PR bootstrap/52878
9680 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
9681 extra_masks.
9682
a110769b 96832012-04-23 Uros Bizjak <ubizjak@gmail.com>
9684
9685 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
9686 (*addsi_2_zext): Ditto.
9687 (*add<mode>_3): Ditto.
9688 (*addsi_3_zext): Ditto.
9689 (*add<mode>_5): Ditto.
9690
35967c0f 96912012-04-23 Andrew Pinski <apinski@cavium.com>
9692
9693 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
9694 (C & B) to (A OP0) & B.
9695
a1a9ca4f 96962012-04-23 Martin Jambor <mjambor@suse.cz>
9697
9698 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
9699 temporaries created for a bitfield (reverting revision 122014).
9700
87ae3989 97012012-04-23 Richard Guenther <rguenther@suse.de>
9702
9703 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
9704 the condition using is_gimple_condexpr and avoid the not necessary
9705 boolification.
9706 (set_prologue_iterations): Likewise.
9707 (vect_loop_versioning): Likewise.
9708
53a87a4b 97092012-04-23 Richard Guenther <rguenther@suse.de>
9710
9711 PR tree-optimization/53070
9712 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
9713 (main_tree_if_conversion): Verify we succeeded in that.
9714
da751785 97152012-04-23 Jan Hubicka <jh@suse.cz>
9716
9717 * lto-symtab.c (lto_cgraph_replace_node): Do not call
9718 mark_reahcable_node.
9719 * cgraph.c (cgraph_remove_node): Do not clear reachable.
9720 (cgraph_mark_reachable_node): Remove.
9721 (cgraph_mark_force_output_node): Do not set reachable.
9722 (dump_cgraph_node): Do not dump reachable.
9723 (cgraph_create_virtual_clone): Do not set reachable.
9724 * cgraph.h (cgraph_node): Remove reachable flag.
9725 (varpool_node): Remove reachable flag.
9726 (cgraph_mark_if_needed): Remove.
9727 (cgraph_mark_reachable_node): Remove.
a110769b 9728 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
da751785 9729 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
9730 reachable.
9731 (cgraph_add_new_function): Likewise.
9732 (cgraph_mark_if_needed): Remove.
9733 (cgraph_analyze_function): Do not set target as reachable.
a110769b 9734 (process_function_and_variable_attributes): Do not care about
9735 dllexport.
da751785 9736 (cgraph_analyze_functions): Do not set reachable flags.
9737 (cgraph_mark_functions_to_output): Do not check reachability.
9738 (cgraph_copy_node_for_versioning): Do not set reachable flag.
9739 (dbxout_expand_expr): Update.
9740 * c-decl.c (merge_decls): Do not track changed externs.
9741 * ipa.c: Include pointer-set.h
9742 (enqueue_cgraph_node): Use reachable pointer set.
9743 (process_references): Likewise.
9744 (cgraph_remove_unreachable_nodes): Likewise.
a110769b 9745 (whole_program_function_and_variable_visibility): Do not recompute
9746 reachable.
da751785 9747 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
9748
6222cbcc 97492012-04-23 Georg-Johann Lay <avr@gjlay.de>
9750
9751 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
9752
104619f5 97532012-04-23 Richard Guenther <rguenther@suse.de>
9754
9755 PR c/53060
9756 * c-typeck.c (build_binary_op): Fix typo.
9757
78fb8a4f 97582012-04-23 Jakub Jelinek <jakub@redhat.com>
9759
9760 PR tree-optimizations/52891
9761 * tree-vect-patterns.c (adjust_bool_pattern): Use
9762 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
9763 but with non-standard precision.
9764
12faa8e4 97652012-04-22 Jan Hubicka <jh@suse.cz>
9766
104619f5 9767 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
9768 tree refs.
12faa8e4 9769
ff2a5ada 97702012-04-22 Jan Hubicka <jh@suse.cz>
9771
9772 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
9773 * cgraphbuild.c (record_reference, record_type_list, mark_address,
9774 mark_load, mark_store): Do not mark varpool nodes as needed.
9775 * cgraph.c (cgraph_new_nodes): Remove.
9776 (cgraph_create_function_alias): Do not mark nodes as reachable.
9777 (cgraph_add_thunk): Likewise.
9778 (cgraph_mark_reachable_node): Do not manage the queue.
9779 * cgraph.h (cgraph_node): Remove next_needed.
9780 (varpool_nodes_queue): Remove next_needed and prev_needed.
9781 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
9782 (cgraph_new_nodes): Declare.
9783 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
9784 (varpool_analyze_pending_decls): Remove.
9785 (varpool_analyze_node): New.
9786 (varpool_mark_needed_node): Remove.
9787 (varpool_first_variable, varpool_next_variable): New inlines.
a110769b 9788 (varpool_first_static_initializer, varpool_next_static_initializer):
9789 Update.
ff2a5ada 9790 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
9791 (varpool_first_defined_variable): New inline.
9792 (varpool_next_defined_variable): New inline
9793 (FOR_EACH_VARIABLE): Reimplement.
9794 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
9795 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
9796 needed flag.
9797 * cgraphunit.c (cgraph_new_nodes): Declare here.
9798 (enqueue_node): New function.
9799 (cgraph_process_new_functions): update for new
9800 node set; when constructing cgraph enqueue node for processing.
9801 (cgraph_add_new_function): Use new node set.
9802 (process_function_and_variable_attributes): Do not set varpool needed
9803 flags.
9804 (referred_to_p): New function.
9805 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
9806 when varpool is in construction.
9807 (cgraph_analyze_functions): Rewrite.
9808 (cgraph_expand_all_functions): Update.
a110769b 9809 (cgraph_output_in_order): Do not analyze pending decls; do not set
9810 needed flags.
ff2a5ada 9811 (cgraph_optimize): Do not analyze pending decls.
a110769b 9812 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
9813 in other partition; do not mark node as needed.
ff2a5ada 9814 * dwarf2out.c (reference_to_unused): Use analyzed flag.
9815 (premark_types_used_by_global_vars_helper): Likewise.
9816 * ipa.c (process_references): Do not call varpool_mark_needed_node.
9817 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
9818 cgrpah queues.
9819 (function_and_variable_visibility): Do not mark node as needed.
9820 (whole_program_function_and_variable_visibility): Likewise.
9821 * Makefile.in (gt-varpool.h): No longer needed.
9822 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
9823 (ipa_write_summaries): Do not use needed flag.
9824 * varpool.c: Do not include gt-varpool.h
9825 (x_varpool_nodes_queue, x_varpool_last_needed_node,
9826 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
9827 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
9828 Remove.
9829 (varpool_remove_node): Do not update the lists.
9830 (dump_varpool_node): Do not dump needed flag.
9831 (varpool_enqueue_needed_node): Remove.
9832 (varpool_mark_needed_node): Remove.
9833 (varpool_reset_queue): Remove.
9834 (varpool_finalize_decl): Move to cgraphunit.c
9835 (varpool_analyze_node): New functions based on former
9836 varpool_analyze_pending_decls.
9837 (varpool_analyze_pending_decls): Remove.
9838 (varpool_assemble_decl): Do not update the lists.
9839 (enqueue_node): New function.
9840 (varpool_remove_unreferenced_decls): Rewrite.
9841 (varpool_empty_needed_queue): Remove.
9842 (add_new_static_var): Do not mark node as needed.
9843 (varpool_create_variable_alias): Handle expansion state
9844 creation.
9845 * except.c (output_ttype): Do not mark node as needed.
9846 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
9847 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
9848 Likewise.
9849 * tree-switch-conversion.c (build_one_array): Likewise.
9850
29438999 98512012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
9852
9853 PR c/44774
9854 * doc/invoke.texi (pedantic): Rename to Wpedantic.
9855 * common.opt (Wpedantic): New.
9856 (pedantic): Alias Wpedantic.
9857 * diagnostic.c (warning_at): Likewise.
9858 * c-decl.c (diagnose_mismatched_decls): Likewise.
9859 (build_array_declarator): Likewise.
9860 (mark_forward_parm_decls):
9861 (check_bitfield_type_and_width): Likewise.
9862 (grokdeclarator): Likewise.
9863 (grokfield): Likewise.
9864 (finish_struct): Likewise.
9865 (build_enumerator): Likewise.
9866 (store_parm_decls_oldstyle): Likewise.
9867 (declspecs_add_qual): Likewise.
9868 (declspecs_add_type): Likewise.
9869 (finish_declspecs): Likewise.
9870 * c-typeck.c (composite_type): Likewise.
9871 (comp_target_types): Likewise.
9872 (build_array_ref): Likewise.
9873 (pointer_diff): Likewise.
9874 (build_unary_op): Likewise.
9875 (build_conditional_expr): Likewise.
9876 (build_c_cast): Likewise.
9877 (convert_for_assignment): Likewise.
9878 (maybe_warn_string_init): Likewise.
9879 (digest_init): Likewise.
9880 (pop_init_level): Likewise.
9881 (set_init_index): Likewise.
9882 (c_finish_goto_label): Likewise.
9883 (c_finish_return): Likewise.
9884 (do_case): Likewise.
9885 (build_binary_op): Likewise.
9886 * c-parser.c (static): Likewise.
9887 (c_parser_external_declaration): Likewise.
9888 (c_parser_declaration_or_fndef): Likewise.
9889 (c_parser_static_assert_declaration_no_se): Likewise.
9890 (c_parser_enum_specifier): Likewise.
9891 (c_parser_struct_or_union_specifier): Likewise.
9892 (c_parser_struct_declaration): Likewise.
9893 (c_parser_alignas_specifier): Likewise.
9894 (c_parser_braced_init): Likewise.
9895 (c_parser_initelt): Likewise.
9896 (c_parser_compound_statement_nostart): Likewise.
9897 (c_parser_conditional_expression): Likewise.
9898 (c_parser_alignof_expression): Likewise.
9899 (c_parser_postfix_expression): Likewise.
9900 (c_parser_postfix_expression_after_paren_): Likewise.
9901 (c_parser_objc_class_instance_variables): Likewise.
9902 (c_parser_objc_method_definition): Likewise.
9903 (c_parser_objc_methodprotolist): Likewise.
9904
5150d596 99052012-04-22 Ian Lance Taylor <iant@google.com>
9906
9907 * godump.c (go_output_typedef): Dump size of structs.
9908
89675e8c 99092012-04-22 Razya Ladelsky <razya@il.ibm.com>
61cb2bc3 9910
9911 Correcting transform_to_exit_first_loop + fix to PR46886
9912 * tree-parloops.c (transform_to_exit_first_loop): Remove
9913 setting of number of iterations according to the loop pattern.
9914 Duplicate from entry to exit->src instead of loop->latch.
9915 (pallelize_loops): Remove the condition preventing do-while loops.
9916 * tree-cfg.c (bool bb_in_region_p): New.
9917 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
9918 Adjust redirection of the duplicated iteration.
9919
86e87ef6 99202012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
9921
9922 PR bootstrap/53021
9923 * rtl.def (ADDRESS): Use "i" rather than "w".
9924 * rtl.h (find_base_term): Delete.
9925 (may_be_sp_based_p): Declare.
9926 * rtl.c (rtx_code_size): Remove ADDRESS special case.
9927 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
9928 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
9929 * alias.c: ...here.
9930 (find_base_term): Make static.
9931 (may_be_sp_based_p): New function.
9932 * dse.c (record_store): Use it.
9933 * store-motion.c (store_killed_in_insn): Likewise.
9934
fd39b896 99352012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
9936
9937 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
9938
28738b20 99392012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
9940
9941 PR 35441
9942 * c-typeck.c (inform_declaration): New.
9943 (build_function_call_vec): Do not pretty-print
9944 expressions when caret is enabled.
9945 (convert_arguments): Use inform_declaration.
9946
cdf7d299 99472012-04-20 Jim Meyering <meyering@redhat.com>
9948
9949 * genmodes.c (make_complex_modes): Don't truncate a mode name of
9950 length 7 or more when prepending a "C". Suggested by Richard Guenther.
9951
3293b457 99522012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9953
9954 PR rtl-optimization/44214
9955 * fold-const.c (exact_inverse): New function.
9956 (fold_binary_loc): Fold vector and complex division by constant into
9957 multiply by recripocal with flag_reciprocal_math; fold vector division
9958 by constant into multiply by reciprocal with exact inverse.
9959
8efa224a 99602012-04-20 Jan Hubicka <jh@suse.cz>
9961
61cb2bc3 9962 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
9963 force flags.
8efa224a 9964 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
9965 (cgraph_remove_node): Update.
9966 (cgraph_mark_needed_node): Remove.
9967 (cgraph_mark_force_output_node): New.
9968 (dump_cgraph_node): Do not dump needed flag.
9969 (cgraph_node_cannot_be_local_p_1): Update.
9970 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
9971 * cgraph.h (symtab_node_base): Add force_output flag.
9972 (cgraph_node): Remove needed flag.
9973 (varpool_node): Remove force_output flag.
9974 (cgraph_mark_needed_node): Remove.
9975 (cgraph_mark_force_output_node): New.
9976 (cgraph_only_called_directly_or_aliased_p,
9977 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
9978 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
9979 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
61cb2bc3 9980 (cgraph_add_new_function): Update.
9981 (cgraph_mark_if_needed): Update.
8efa224a 9982 (verify_cgraph_node): Update.
9983 (cgraph_analyze_function): Alias target is reachable.
9984 (process_function_and_variable_attributes): Update: externally_visible
9985 flag makes function reachable.
9986 (cgraph_analyze_functions): Update dumping.
9987 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
9988 input_overwrite_node, input_varpool_node): Update streaming.
9989 * lto-streamer-out.c (produce_symtab): Use force_output.
9990 * ipa.c (process_references): Weakrefs must be processed.
9991 (cgraph_remove_unreachable_nodes): Likewise; update for new
9992 force_output flag.
61cb2bc3 9993 (varpool_externally_visible_p): Weakrefs are externally visible
8efa224a 9994 even if they are not.
9995 (function_and_variable_visibility): Update; when processing alias
9996 pair force the targets to be output.
61cb2bc3 9997 (whole_program_function_and_variable_visility): Use
9998 mark_reachable_node.
8efa224a 9999 * trans-mem.c (ipa_tm_mark_needed_node): Remove
10000 (ipa_tm_mark_force_output_node): New function.
10001 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
61cb2bc3 10002 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
10003 aliases.
8efa224a 10004 * varasm.c (mark_decl_referenced): Update.
10005 (find_decl_and_mark_needed): Remove.
10006 (find_decl): New function.
10007 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
10008 alias targets as needed.
10009 (dump_tm_clone_pairs): Update.
10010 * tree-inline.c (copy_bb): Update check.
10011 * symtab.c (dump_symtab_base): Dump force_output.
10012 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
10013 * passes.c (execute_todo): Fix dumping.
10014 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
10015 (varpool_analyze_pending_decls): Alias target is reachable.
10016 (varpool_create_variable_alias): Finalize weakrefs.
10017
df3e5a67 100182012-04-20 Jakub Jelinek <jakub@redhat.com>
10019
10020 PR bootstrap/53021
10021 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
10022 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
10023 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
10024 macros instead of constants.
10025 * dse.c (record_store): Check for SP ADDRESS by comparing
10026 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
10027 XEXP to be stack_pointer_rtx.
10028
ebc3ea23 100292012-04-20 Richard Guenther <rguenther@suse.de>
10030
10031 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
10032 update_call_from_tree when propagating into a call.
10033
64581563 100342012-04-20 Alan Modra <amodra@gmail.com>
10035
10036 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
10037 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
10038 sp_offset to frame_off. Move world save code earlier.
10039
11b881f5 100402012-04-20 Richard Guenther <rguenther@suse.de>
10041
10042 PR tree-optimization/53050
10043 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
10044 Do only one transform on COND_EXPRs at the same time.
10045
cae322a0 100462012-04-19 Jan Hubicka <jh@suse.cz>
10047
10048 * symtab.c (dump_symtab_base): Revert accidental checkin.
10049
2e30c82f 100502012-04-20 Alan Modra <amodra@gmail.com>
10051
10052 PR target/53040
10053 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
10054 static chain, set REST_INLINE_FPRS too.
10055
7f85203b 100562012-04-20 Thomas Schwinge <thomas@codesourcery.com>
10057
10058 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
10059 nodes.
10060
5115d20b 100612012-04-20 Richard Guenther <rguenther@suse.de>
10062
61cb2bc3 10063 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
10064 loops that can never run more often than the vectorization factor.
5115d20b 10065
cfacc26f 100662012-04-19 Jan Hubicka <jh@suse.cz>
10067
10068 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
10069
34fac337 100702012-04-19 David Edelsohn <dje.gcc@gmail.com>
10071
10072 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
10073
2e045eaa 100742012-04-19 Jim Meyering <meyering@redhat.com>
10075
2e045eaa 10076 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
10077 We verified above that the string(including trailing NUL) fits in buf,
10078 so just use memcpy.
10079
5300ccdd 100802012-04-19 Richard Guenther <rguenther@suse.de>
10081
10082 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
10083 for dumping DECL_SECTION_NAME.
10084
dbe954dc 100852012-04-19 Michael Matz <matz@suse.de>
10086
10087 PR middle-end/52977
10088 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
10089 (struct tree_vector): Adjust GTY length.
10090 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
10091
10092 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
10093 members.
10094 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
10095 caller emitted the length calulation already.
10096 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
10097 before handling any of the fields for structs.
10098
dbf94397 100992012-04-19 Richard Guenther <rguenther@suse.de>
10100
10101 PR tree-optimization/53031
10102 * tree-vrp.c (adjust_range_with_scev): Revert back to
10103 using max_loop_iterations.
10104
e3d533cf 101052012-04-19 Michael Matz <matz@suse.de>
10106
10107 * diagnostic.c (emit_diagnostic): Move va_end call after user
10108 of the va_list.
10109 (warning, warning_at, pedwarn, permerror): Ditto.
10110
8ee14c01 101112012-04-19 Richard Guenther <rguenther@suse.de>
10112
10113 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
10114 array access.
10115
27b3429e 101162012-04-19 Georg-Johann Lay <avr@gjlay.de>
10117
10118 PR target/53033
10119 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
10120 the case *(X+const).
10121
31e4b46c 101222012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10123
10124 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
10125
61cb2bc3 101262012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
d85dbdb3 10127
10128 PR c/52283/37985
10129 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
10130 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
10131
8fb72e03 101322012-04-19 Richard Guenther <rguenther@suse.de>
10133
10134 PR rtl-optimization/44688
10135 * loop-iv.c (determine_max_iter): Only return max_iter.
10136 (iv_number_of_iterations): Also use the recorded loop bound
10137 on the maximum number of iterations.
10138 * loop-unroll.c (decide_unroll_runtime_iterations): Use
10139 max_iter to avoid unrolling loops that do not roll.
10140 (decide_unroll_stupid): Likewise.
10141
bfb10994 101422012-04-18 Steven Bosscher <steven@gcc.gnu.org>
10143
10144 * targhooks.c (default_case_values_threshold): Fix code style nit.
10145
10146 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
10147 case range and type folding from here...
10148 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
c8302ead 10149 type, as documented in tree.def.
bfb10994 10150
3e7775f6 101512012-04-18 Jan Hubicka <jh@suse.cz>
10152
10153 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
10154 Declare.
bef9aba3 10155 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
3e7775f6 10156 cgraph hash and same comdat groups.
61cb2bc3 10157 (cgraph_optimize): Verify symbol table.
3e7775f6 10158 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
10159 (dissolve_same_comdat_group_list): Work on symtab nodes.
10160 (function_and_variable_visibility): Dissolve variable same comdat group
10161 lists, too.
10162 * symtab.c: Include timevar.h
10163 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
10164
9541f573 101652012-04-18 Steven Bosscher <steven@gcc.gnu.org>
10166
5d459527 10167 * tree-switch-conversion.c (info): Remove global pass info.
10168 (check_range, check_process_case, check_final_bb, create_temp_arrays,
10169 free_temp_arrays, gather_default_values, build_constructors,
10170 array_value_type, build_one_array, build_arrays, gen_def_assigns,
10171 fix_phi_nodes, gen_inbound_check): Pass info around from ...
10172 (process_switch): ... here. Unify message format. Return a const
10173 char pointer to the failure reason message.
10174 (do_switchconv): Unify message format. Update process_switch usage.
10175
9541f573 10176 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
10177 * tree-cfg.c (edge_to_cases): Fix documentation.
10178
ed13de71 101792012-04-18 Uros Bizjak <ubizjak@gmail.com>
10180
10181 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
10182
a963cb46 101832012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10184
10185 PR tree-optimization/52976
10186 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
10187 (possibly_move_powi): New function.
10188 (rewrite_expr_tree): Call possibly_move_powi.
10189 (rewrite_expr_tree_parallel): Likewise.
10190 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
10191 call add_to_ops_vec instead.
10192
56e650d6 101932012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10194
10195 PR tree-optimization/52976
10196 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
10197 (decrement_power): Likewise.
10198 (propagate_op_to_single_use): Likewise.
10199 (zero_one_operation): Handle __builtin_pow* calls in linearized
10200 expression trees; factor logic into propagate_op_to_single_use.
10201 (undistribute_ops_list): Allow operands with repeat counts > 1.
10202
b6556916 102032012-04-18 Richard Guenther <rguenther@suse.de>
10204
10205 PR tree-optimization/44688
10206 * cfgloop.h (record_niter_bound): Declare.
10207 * tree-ssa-loop-niter.c (record_niter_bound): Export.
10208 Update the estimation with the upper bound here...
10209 (estimate_numbers_of_iterations_loop): ... instead of here.
10210 Do not forcefully reset a recorded upper bound.
10211 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
61cb2bc3 10212 Record the maximum number of loop iterations of the prologue loop.
b6556916 10213
04ec15fa 102142012-04-18 Jan Hubicka <jh@suse.cz>
10215
10216 * lto-symtab.c (lto_cgraph_replace_node): Update.
10217 * cgraphbuild.c (record_reference, record_type_list,
10218 record_eh_tables, mark_address, mark_load, mark_store): Update.
10219 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
10220 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
10221 Update.
10222 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
10223 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
10224 * reload.c: Fix typo in comment.
10225 * rtlanal.c: Likewise.
10226 * tree-emultls.c (gen_emutls_addr): Update.
10227 * ipa-reference.c (analyze_function): Update.
10228 * cgraphunit.c (cgraph_analyze_function,
10229 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
10230 Update.
10231 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
10232 (ipa_remove_reference): Likewise.
10233 (ipa_remove_all_refering): Rename to ...
10234 (ipa_remove_all_referring): ... this one; update.
10235 (ipa_dump_references): Update.
10236 (ipa_dump_referring): Update.
10237 (ipa_clone_references): Update.
10238 (ipa_clone_refering): Rename to ...
10239 (ipa_clone_referring): ... this one; update.
10240 (ipa_ref_cannot_lead_to_return): Update.
10241 (ipa_ref_has_aliases_p): Update.
10242 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
10243 forward typedefs.
10244 (ipa_ref_type): Remove.
10245 (ipa_ref_ptr_u): Remove.
10246 (ipa_ref): Remove referencing, refered, refered_index, refering_type
10247 and refered_type; add referring, referred and referred_index.
10248 (ipa_ref_list): Rename refering to referring.
10249 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
10250 ipa_clone_references, ipa_clone_referring): Update prototypes.
10251 * lto-cgraph.c (referenced_from_other_partition_p): Update.
10252 (lto_output_ref): Update.
10253 (add_references): Update.
10254 (input_varpool_node): Update.
10255 (input_refs): Update.
10256 * ipa-ref-inline.h (ipa_ref_node): Update.
10257 (ipa_ref_varpool_node): Update.
61cb2bc3 10258 (ipa_ref_referring_node): Update.
04ec15fa 10259 (ipa_ref_referring_varpool_node): Update.
61cb2bc3 10260 (ipa_ref_referring_ref_list): Update.
04ec15fa 10261 (ipa_ref_referred_ref_list): Update.
10262 (ipa_ref_list_first_referring): Update.
10263 (ipa_empty_ref_list): Update.
10264 (ipa_ref_list_refering_iterate): Rename to ...
10265 (ipa_ref_list_referring_iterate): ... this one.
10266 * cse.c: Update comment.
10267 * ipa-utils.c (ipa_reverse_postorder): Update.
10268 * tree-ssa-alias.c: Update.
10269 * ipa-inline.c (reset_edge_caches): Update.
10270 (update_caller_keys): Update.
10271 * ipa-inline.h: Update comments.
10272 * jump.c: Update comment.
10273 * alias.c: Likewise.
10274 * ipa.c (process_references): Update.
10275 (cgraph_remove_unreachable_nodes): Likewise.
10276 (ipa_discover_readonly_nonaddressable_var): Likewise.
10277 (cgraph_address_taken_from_non_vtable_p): Likewise.
10278 * trans-mem.c (ipa_tm_execute): Update.
10279 * simplify-rtx.c: Fix comment.
10280 * rtl.c: Fix comment.
10281 * symtab.c (symtab_unregister_node): Update.
10282 * varpool.c (dump_varpool_node): Update.
10283 (varpool_analyze_pending_decls): Update.
10284 (assemble_aliases): Update.
10285 (varpool_for_node_and_aliases): Update.
10286
7f521ab4 102872012-04-18 Richard Guenther <rguenther@suse.de>
10288
10289 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
10290 use_undefined_p parameter.
10291 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
10292 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
10293 Likewise.
10294 (estimate_numbers_of_iterations): Likewise.
10295 (estimated_loop_iterations): Adjust.
10296 (max_loop_iterations): Likewise.
10297 (scev_probably_wraps_p): Likewise.
10298 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
10299 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
10300 not max_loop_iterations.
10301 (execute_vrp): Remove explicit number of iterations estimation.
10302
ba102931 103032012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
10304
10305 * config/i386/linux-common.h: New.
10306
10307 * config.gcc: Add i386/linux-common.h before
10308 all i386/linux.h and i386/linux64.h usages.
10309
10310 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
10311 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
10312 * config/i386/gnu-user64.h: Likewise.
10313
10314 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
10315 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
10316 (GNU_USER_TARGET_MATHFILE_SPEC): New.
10317 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
10318
18841b0c 103192012-04-18 Jan Hubicka <jh@suse.cz>
10320
10321 * cgraph.c (cgraph_node_name): Remove.
10322 (dump_cgraph_node): Use dump_symtab_base; reformat.
10323 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
10324 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
10325 Declare.
10326 (cgraph_node_name, varpool_node_name): Remove.
10327 (cgraph_node_asm_name, varpool_node_asm_name,
10328 cgraph_node_name, varpool_node_name): New.
10329 * tree-pass.h (TODO_dump_cgraph): Rename to ...
10330 (TODO_dump_symtab): ... this one.
10331 * ipa-cp (pass_ipa_cp): Update.
10332 * ia-reference.c (generate_summary, read_write_all_from_decl,
10333 propagate, ipa_reference_read_optimization_summary): Update.
10334 * cgraphunit.c (cgraph_analyze_functions): Update.
10335 (cgraph_optimize): Update.
10336 * ipa-ref.c (ipa_dump_references): Update.
10337 (ipa_dump_refering): Update.
10338 * ipa-inline.c (pass_ipa_inline): Update.
10339 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
10340 * ipa.c (pass_ipa_function_visibility,
10341 pass_ipa_whole_program_visibility): Update.
10342 * tree-sra.c (pass_early_ipa_sra): Update.
10343 * symtab.c: Include langhooks.h
10344 (symtab_node_asm_name): New.
10345 (symtab_node_name): New.
10346 (symtab_type_names): New static var.
10347 (dump_symtab_base): New.
10348 (dump_symtab_node, dump_symtab): New.
10349 (debug_symtab_node, debug_symtab): New.
10350 * tree-ssa-structalias.c: Dump symbol table.
10351 * pases.c (execute_todo): Handle TODO_dump_symtab instead
10352 of TODO_dump_cgraph.
10353 * varpoo.c (varpool_node_name): Remove.
10354 (dump_varpool_node): Use dump_symtab_base; reformat.
10355
b583dffb 103562012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
10357
61cb2bc3 10358 * doc/invoke.texi (Language Independent Options): @item should be
b583dffb 10359 before @opindex.
10360
9a37e9c6 103612012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
10362
10363 PR bootstrap/53021
10364 * rtl.c (rtx_code_size): Handle ADDRESS.
10365
85d618f3 103662012-04-17 Tom de Vries <tom@codesourcery.com>
10367
10368 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
10369 is not a STMT_LIST.
10370
4e0c0c52 103712012-04-17 Uros Bizjak <ubizjak@gmail.com>
10372
10373 PR target/53020
10374 * config/i386/sync.md (atomic_<code><mode>): Rename to
10375 atomic_<logic><mode>.
10376
4e56ceb1 103772012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
10378
10379 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
10380 * alias.c (reg_base_value): Expand and update comment.
10381 (arg_base_value): New variable.
10382 (unique_id): Move up file.
10383 (unique_base_value, unique_base_value_p, known_base_value_p): New.
10384 (find_base_value): Use arg_base_value and known_base_value_p.
10385 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
10386 (find_base_term): Use known_base_value_p.
10387 (base_alias_check): Use unique_base_value_p.
10388 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
10389 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
10390
b100cea5 103912012-04-17 Pat Haugen <pthaugen@us.ibm.com>
10392
10393 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
10394
7a10f06b 103952012-04-17 Michael Matz <matz@suse.de>
10396
10397 PR tree-optimization/18437
10398 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
10399 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
10400 (vect_check_strided_load): Declare.
10401 * tree-vect-data-refs.c (vect_check_strided_load): New function.
10402 (vect_analyze_data_refs): Use it to accept strided loads.
10403 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
10404
3a37f7bd 104052012-04-17 Richard Guenther <rguenther@suse.de>
10406
10407 PR middle-end/53011
10408 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
10409 loops when redirecting an entry or latch edge.
10410
2bc1ac5a 104112012-04-17 Bernd Schmidt <bernds@codesourcery.com>
10412
10413 * sel-sched.c (sel_global_init): Revert previous change.
10414
e01d3bb3 104152012-04-17 Richard Guenther <rguenther@suse.de>
10416
10417 * tree-flow.h (array_at_struct_end_p): Move declaration ...
10418 * tree.h (array_at_struct_end_p): ... here.
10419 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
10420 * expr.c (array_at_struct_end_p): ... here. Rewrite.
10421
1c391fd0 104222012-04-17 Steven Bosscher <steven@gcc.gnu.org>
10423
10424 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
10425 COST_TABLE): Remove.
10426 (estimate_case_costs): Remove.
10427 (expand_case): Do not call estimate_case_costs
10428 to set use_cost_table.
10429 (balance_case_nodes): Do not use use_cost_table.
10430
cfbe30aa 104312012-04-16 Jan Hubicka <jh@suse.cz>
10432
10433 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
10434 (hash_node, eq_node): Remove.
10435 (cgraph_create_node): Do not handle hashtable.
10436 (cgraph_get_node): Remove.
10437 (cgraph_insert_node_to_hashtable): Remove.
10438 (hash_node_by_assembler_name): Remove.
10439 (eq_assembler_name): Remove.
10440 (cgraph_node_for_asm): Rewrite.
10441 (cgraph_find_replacement_node): Break out from ...
10442 (cgraph_remove_node): ... here; do not maintain hashtables.
10443 (change_decl_assembler_name): Remove.
10444 (cgraph_clone_node): Do not maintain hashtables.
10445 * cgraph.h (const_symtab_node): New typedef.
10446 (cgraph_insert_node_to_hashtable): Remove.
10447 (symtab_get_node, symtab_node_for_asm,
10448 symtab_insert_node_to_hashtable): Declare.
10449 (cgraph_find_replacement_node): Declare.
10450 (cgraph_get_node, varpool_get_node): Turn into inlines.
10451 (cgraph, varpool): Work sanely on NULL pointers.
10452 (FOR_EACH_SYMBOL): New walker.
10453 * ipa-inline-transform.c (save_inline_function_body): Use
10454 symtab_insert_node_to_hashtable.
10455 * symtab.c: Include ggc.h and diagnostics.h
10456 (symtab_hash, assembler_name_hash): New static vars;
10457 (hash_node, eq_node, hash_node_by_assembler_name,
10458 eq_assembler_name, insert_to_assembler_name_hash,
10459 unlink_from_assembler_name_hash): New.
10460 (symtab_register_node): Update hashtables.
10461 (symtab_insert_node_to_hashtable): New.
10462 (symtab_unregister_node): Update hashtables.
10463 (symtab_get_node): New.
10464 (symtab_node_for_asm): New.
10465 (change_decl_assembler_name): New.
10466 * Makefile.in (symtab.o): Needs GTY.
10467 * varpool.c (varpool_hash): Remove.
10468 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
10469 (varpool_node): Rewrite using varpool_get_node.
10470 (varpool_remove_node): DO not maintain hashtables.
61cb2bc3 10471 (varpool_node_for_asm): Rewrite.
cfbe30aa 10472
cafd8c6c 104732012-04-16 Sandra Loosemore <sandra@codesourcery.com>
10474
10475 * doc/invoke.texi: Copy-edit to put verbs in the present tense
10476 when describing the current behavior of GCC.
10477
5d92623d 104782012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
10479
10480 * genemit.c (gen_exp): Remove ADDRESS handling.
10481 * genoutput.c (scan_operands): Likewise.
10482 * genpeep.c (match_rtx): Likewise.
10483 * genrecog.c (add_to_sequence): Likewise.
10484
addbb217 104852012-04-16 David Edelsohn <dje.gcc@gmail.com>
10486
61cb2bc3 10487 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
addbb217 10488
9e3797f2 104892012-04-16 Martin Jambor <mjambor@suse.cz>
10490
10491 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
10492 bit-fields.
10493
85cedc6b 104942012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
10495
10496 PR target/51819
10497 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
10498 hints for 'A' operand types.
10499
0704fb2e 105002012-04-16 Jan Hubicka <jh@suse.cz>
10501
10502 * cgraph.h (symtab_node_base): Add next and previous pointers.
10503 (cgraph_node): Remove next and preivous pointers.
10504 (varpool_node): Likewise; remove next/previous GTY marker;
10505 it is not type safe.
10506 (symtab_node_def): Update GTY marker
10507 (x_cgraph_nodes, cgraph_nodes): Remove.
10508 (symtab_nodes): New function.
10509 (cgraph_order): Rename to ...
10510 (symtab_order): ... this one.
10511 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
10512 Declare.
10513 (x_varpool_nodes, varpool_nodes): Remove.
10514 (FOR_EACH_STATIC_VARIABLE): Update.
10515 (symtab_function_p, symtab_variable_p): New function.
10516 (FOR_EACH_VARIABLE): Update.
10517 (varpool_first_variable, varpool_next_variable): New functions.
10518 (FOR_EACH_VARIABLE): Update.
10519 (cgraph_first_defined_function): Update.
10520 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
10521 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
10522 (cgraph_first_function, cgraph_next_function): New.
10523 (FOR_EACH_FUNCTION): Update.
10524 (cgraph_first_function_with_gimple_body,
10525 cgraph_next_function_with_gimple_body): Update.
10526 * symtab.c: New file.
10527 * cgraph.c: Update copyright dates.
10528 (x_cgraph_nodes, cgraph_order): Remove.
10529 (NEXT_FREE_NODE): Update.
10530 (SET_NEXT_FREE_NODE): New.
10531 (cgraph_create_node_1): Remove common code.
61cb2bc3 10532 (cgraph_create_node): Remove common code; call symtab_register_node.
0704fb2e 10533 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
61cb2bc3 10534 (cgraph_add_asm_node): Update.
0704fb2e 10535 (cgraph_clone_node): Register new node.
10536 * cgraphunit.c (process_function_and_variable_attributes): Update.
10537 (cgraph_analyze_functions): Update.
10538 (cgraph_analyze_functions): Update.
10539 (cgraph_output_in_order): Update.
61cb2bc3 10540 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
10541 Update.
10542 * ipa-inline.c (recursive_inlining): Update.
10543 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
0704fb2e 10544 * ipa.c (cgraph_remove_unreachable_nodes): Update.
10545 * Makefile.in: Add symtab.o
10546 * varpool.c (x_varpool_nodes): Remove
10547 (varpool_node): Remove common code; call symtab_register_node.
61cb2bc3 10548 (varpool_remove_node): Remove common code; call symtab_unregister_node.
0704fb2e 10549
c7a1d251 105502012-04-16 Richard Guenther <rguenther@suse.de>
10551
10552 PR middle-end/52977
10553 * tree.h (VECTOR_CST_NELTS): Adjust.
10554 (struct tree_vector): Add explicit length field.
10555 (make_vector_stat): Declare.
10556 (make_vector): Define.
10557 * tree.c (make_vector_stat): New function.
10558 (build_vector_stat): Use it.
10559 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
10560
d8a78f92 105612012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10562
10563 PR tree-optimization/52976
10564 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
10565 (undistribute_ops_list): Ops with repeat counts aren't eligible for
10566 undistribution.
10567 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
10568
7c455d87 105692012-04-16 Jan Hubicka <jh@suse.cz>
10570
10571 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
10572 New macros.
10573 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
10574 walkers to walk cgraph and varpool.
10575 * cgraph.c (cgraph_node_for_asm): Likewise.
10576 (dump_cgraph): Likewise.
10577 * value-prof.c (init_node_map): Likewise.
10578 * tree.c (free_lang_data_in_cgraph): Likewise.
10579 * tree-emutls.c: (ipa_lower_emutls): Likewise.
10580 * ipa-reference.c (generate_summary, propagate): Likewise.
10581 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
10582 cgraph_mark_functions_to_output, cgraph_output_in_order,
10583 output_weakrefs, cgraph_materialize_all_clones,
10584 cgraph_optimize): Likewise.
10585 * lto-cgraph.c (merge_profile_summaries): Likewise.
10586 (input_cgraph): Likewise.
10587 * ipa-pure-const.c (generate_summary): Likewise.
10588 (propagate): Likwise.
10589 * ipa-utils.c (ipa_reduced_postorder): Likewise.
10590 (ipa_free_postorder_info): Likewise.
10591 (ipa_reverse_postorder): Likewise.
10592 * ipa-inline.c (ipa_inline): Likewise.
10593 * matrix-reorg.c (find_matrices_decl): Likewise.
10594 (matrix_reorg): Likewise.
10595 * tree-vectorizer.c (increase_alignment): Likewise.
10596 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
10597 (function_and_variable_visibility): Likewise.
10598 (whole_program_function_and_variable_visibility): Likewise.
10599 (ipa_cdtor_merge): Likewise.
10600 * trans-mem.c (ipa_tm_execute): Likewise.
10601 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
10602 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
10603 (ipa_print_all_params): Likewise.
10604 (ipa_update_after_lto_read): Likewise.
10605 * tree-profie.c (tree_profiling): Likewise.
10606 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10607 * passes.c (dump_passes): Likewise.
10608 (do_per_function): Likewise.
10609 (ipa_write_summaries): Likewise.
10610 * varpool.c (dump_varpool): Likewise.
10611 (varpool_node_for_asm): Likewise.
10612 (varpool_assemble_pending_decls): Likewise.
10613
06734da8 106142012-04-16 Richard Guenther <rguenther@suse.de>
10615
10616 PR tree-optimization/52975
10617 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
10618 condition but always mark it with TRUTH_NOT_EXPR.
4e0c0c52 10619
360b78f3 106202012-04-16 Richard Guenther <rguenther@suse.de>
10621
10622 PR tree-optimization/52975
10623 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
10624 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
10625 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
10626 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
10627
fd65bafc 106282012-04-14 Uros Bizjak <ubizjak@gmail.com>
10629
10630 * config/i386/sse.md (ssse3_plusminus): New code iterator.
10631 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
10632 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
10633 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
10634 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
10635 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
10636 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
10637
10638 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
10639 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
10640 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
10641 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
10642 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
10643 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
10644
10645 (xop_plus): New code iterator.
10646 (macs): New code attribute.
10647 (macds): Ditto.
10648 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
10649 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
10650 iterator.
10651 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
10652 xop_plus code iterator.
10653 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
10654 xop_plus code iterator.
10655 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
10656 xop_plus code iterator.
10657 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
10658 xop_plus code iterator.
10659
10660 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
10661 any_extend code iterator.
10662 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
10663 any_extend code iterator.
10664 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
10665 any_extend code iterator.
10666 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
10667 any_extend code iterator.
10668 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
10669 any_extend code iterator.
10670 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
10671 any_extend code iterator.
10672
a2b85e40 106732012-04-14 Tom de Vries <tom@codesourcery.com>
10674
10675 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
10676 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
10677 DELETED_LABEL note, and move it to ...
10678 * cfgrtl.c (delete_insn): ... here. Change return type to void.
10679 (delete_insn_and_edges): Likewise.
10680 (delete_insn_chain): Handle new return type of delete_insn. Delete
10681 chain backwards rather than forwards.
10682 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
10683 void.
10684 * cfglayout.c (fixup_reorder_chain): Delete unused label.
10685
7d0d0ce1 106862012-04-14 Jan Hubicka <jh@suse.cz>
10687
10688 * cgraph.h: Update copyrights;
10689 (symtab_node): Turn to union typedef.
10690 (symtab_node_base): New structure.
10691 (symtab_type): Add SYMTAB_SYMBOL tag.
10692 (cgraph_node): Annotate some pinters with nested_ptr.
10693 (varpool_node): Likewise.
10694 (cgraph_local_info): Remove lto_file_data
10695 and externally_visible.
10696 (cgraph_node): Remove decl; same_comdat_group list;
10697 aux; ref_list; order; address_taken; reachable_from_other_parittion,
10698 in_other_partition; resolution.
10699 (varpool_node): Remove decl; same_comdat_group;
10700 ref_list; lto_file_data; aux; order; resolution; externally_visible;
10701 used_from_other_partition; in_other_partition.
61cb2bc3 10702 (symtab_node_def): New union.
7d0d0ce1 10703 (cgraph, varpool): Update.
10704 (varpool_first_static_initializer, varpool_next_static_initializer,
10705 cgraph_only_called_directly_or_aliased_p,
10706 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
10707 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
10708 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
10709 field references.
10710 * cgraph.c: Likewise.
10711 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
10712 * cgraphbuild.c: Likewise.
10713 * lto-symtab.c: Likewise.
10714 * c-gimplify.c: Likewise.
10715 * value-prof.c: Likewise.
10716 * tree.c: Likewise.
10717 * ipa-cp.c: Likewise.
10718 * tree-emutls.c: Likewise.
10719 * ipa-inline-transform.c: Likwise.
10720 * ipa-reference.c: Likewise.
10721 * cgraphunit.c: Likewise.
10722 * ipa-ref.c: Likewise.
10723 * lto-cgraph.c: Likewise.
10724 * ipa-ref-inline.h: Likewise.
10725 * ipa-pure-const.c: Likewise.
10726 * lto-streamer-out.c: Likewise.
10727 * ipa-utils.c: Likewise.
10728 * ipa-inline.c: Likewise.
10729 * matrix-reorg.c: Likewise.
10730 * tree-eh.c: Likewise.
10731 * tree-vectorizer.c: Likewise.
10732 * ipa-split.c: Likewise.
10733 * ipa.c: Likewise.
10734 * trans-mem.c: Likewise.
10735 * ipa-inline-analysis.c: Likewise.
10736 * gimplify.c: Likewise.
10737 * cfgexpand.c: Likewise.
10738 * tree-sra.c: Likewise.
10739 * ipa-prop.c: Likewise.
10740 * varasm.c: Likewise.
10741 * tree-nested.c: Likewise.
10742 * tree-inline.c: Likewise.
10743 * tree-profile.c: Likewise.
10744 * tree-ssa-structalias.c: Likewise.
10745 * passes.c: Likewise.
10746 * varpool.c: Likewise.
10747
162fb1a4 107482012-04-14 Tom de Vries <tom@codesourcery.com>
10749
10750 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
10751 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
10752 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
10753 of find_edge.
10754 (gsi_advance_fw_nondebug_nonlocal): New function.
10755 (local_def): Removed function.
10756 (same_succ_hash): Use stmt_local_def.
10757 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
10758 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
10759
fc3dad6f 107602012-04-13 H.J. Lu <hongjiu.lu@intel.com>
10761
10762 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
10763 and __ILP32__ for x32.
10764
86d2a13e 107652012-04-13 Martin Jambor <mjambor@suse.cz>
10766
10767 PR middle-end/52939
10768 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
10769 fold_ctor_reference returns a zero constant.
10770
83dd7eef 107712012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
10772
10773 * config.gcc: Add i386/gnu-user-common.h before all
10774 i386/gnu-user.h and i386/gnu-user64.h usages.
10775
10776 * config/i386/gnu-user-common.h: New.
10777
10778 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
10779 (CC1_SPEC): Likewise.
10780 (ENDFILE_SPEC): Likewise.
10781 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
10782 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
10783 (TARGET_OS_CPP_BUILTINS): Likewise.
10784 (LIBGCC2_HAS_TF_MODE): Likewise.
10785 (LIBGCC2_TF_CEXT): Likewise.
10786 (TF_SIZE): Likewise.
10787 (TARGET_ASM_FILE_END): Likewise.
10788 (STACK_CHECK_MOVING_SP): Likewise.
10789 (STACK_CHECK_STATIC_BUILTIN): Likewise.
10790 * config/i386/gnu-user64.h: Likewise.
10791
75d525a2 107922012-04-13 Martin Jambor <mjambor@suse.cz>
10793
10794 * expr.c (expand_expr_real_1): Pass type, not the expression, to
10795 set_mem_attributes for a memory temporary. Do not call the function
10796 for the memory temporary created for a bitfield.
10797
2abb79fc 107982012-04-13 Alexandre Oliva <aoliva@redhat.com>
10799
10800 PR debug/48866
10801 * df.h (enum debug_temp_where): New.
10802 (dead_debug_init, dead_debug_finish) Declare.
10803 (dead_debug_add, dead_debug_insert_temp): Declare.
10804 (struct dead_debug_use, struct dead_debug): Moved from...
10805 * df-problems.c: ... here.
10806 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
10807 to a debug temp.
10808 (df_create_unused_note): Likewise.
10809 (df_set_dead_notes_for_mw): Move comment where it belongs.
10810 (dead_debug_init): Export.
10811 (dead_debug_reset_uses): New, factored out of...
10812 (dead_debug_finish): ...this. Export.
10813 (dead_debug_reset): Remove.
10814 (dead_debug_add): Export.
10815 (dead_debug_insert_before): Rename to...
10816 (dead_debug_insert_temp): ... this. Add where argument. Export.
10817 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
10818 Return insertion count.
10819 (df_note_bb_compute): Adjust.
10820 * dce.c (word_dce_process_block): Adjust dead debug uses.
10821 (dce_process_block): Likewise.
10822
9f5c85ce 108232012-04-13 Alexandre Oliva <aoliva@redhat.com>
10824
10825 * df-problems.c (df_note_bb_compute): Do not take note of
10826 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
10827
11643610 108282012-04-13 Alexandre Oliva <aoliva@redhat.com>
10829
10830 PR debug/51570
10831 * var-tracking.c (expand_depth): New type.
10832 (onepart_aux, expand_loc_callback_data): Change depth type to it.
10833 (loc_exp_dep_alloc): Adjust initializer.
10834 (update_depth): Use new type. Add entryvals.
10835 (vt_expand_var_loc_chain): Take note of expansions with
10836 ENTRY_VALUEs, but don't accept them right away. Run an optional
10837 second pass accepting the minimum ENTRY_VALUE count found in the
10838 first pass.
10839 (vt_expand_loc_callback, INIT_ELCD): Adjust.
10840
cdd84b7c 108412012-04-13 Tom de Vries <tom@codesourcery.com>
10842
10843 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
10844 parameters vuse and vuse_escaped.
10845 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
10846 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
10847 vuse1 != vuse2.
10848
2df61941 108492012-04-13 Richard Guenther <rguenther@suse.de>
10850
10851 PR tree-optimization/52969
10852 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
10853 the condition for the COND_EXPR and handle predicate negation
10854 by swapping the COND_EXPR arms.
10855
4f08bfe3 108562012-04-13 Nick Clifton <nickc@redhat.com>
10857
10858 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
10859 TODO_dump_func flag.
10860
30474b14 108612012-04-13 Andrey Belevantsev <abel@ispras.ru>
10862
10863 PR rtl-optimization/52203
10864 PR rtl-optimization/52715
10865
10866 Revert the 2012-03-07 fix for PR 52203.
10867 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
10868 the insn does not modify DFA right before issuing, adjust
10869 issue_rate accordingly.
10870
d1d7b24c 108712012-04-13 Richard Guenther <rguenther@suse.de>
10872
10873 PR c/52549
10874 * c-typeck.c (pointer_diff): Remove bogus assert.
10875
799c82e4 108762012-04-13 Richard Guenther <rguenther@suse.de>
10877
10878 PR c/52862
fd65bafc 10879 * convert.c (convert_to_pointer): Remove special-casing of zero.
799c82e4 10880
c5b75283 108812012-04-13 Joey Ye <joey.ye@arm.com>
10882
10883 * config/arm/constraints.md (Pe): New constraint.
10884 * config/arm/arm.md: New split for imm 256-510.
10885
9fd13df4 108862012-04-13 Terry Guo <terry.guo@arm.com>
10887
10888 * config/arm/arm-cores.def: Added core cortex-m0plus.
10889 * config/arm/arm-tune.md: Regenerated.
10890 * config/arm/arm-tables.opt: Regenerated.
10891 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
10892
d6415769 108932012-04-13 Alan Modra <amodra@gmail.com>
10894
10895 PR target/52828
10896 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
10897 tie regs on destination of sets. Delete forward declaration.
10898 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
10899 (rs6000_emit_prologue): Likewise.
10900 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
10901 and gen_stack_tie.
10902 (is_mem_ref): Use tie_operand to recognise stack ties.
10903 * config/rs6000/predicates.md (tie_operand): New.
10904 * config/rs6000/rs6000.md (restore_stack_block): Generate new
10905 stack tie rtl.
10906 (restore_stack_nonlocal): Likewise.
10907 (stack_tie): Update.
10908 (frame_tie): Delete.
10909
8ef3b7cb 109102012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10911
10912 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
10913 HOST_WIDE_INT_PRINT_DEC in format strings.
10914
8da8a06b 109152012-04-12 Uros Bizjak <ubizjak@gmail.com>
10916
10917 PR target/52932
10918 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
10919 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
10920 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
10921 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
10922 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
10923 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
10924 avx2_permvarv8si using VI4F_256 mode iterator.
10925 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
10926 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
10927 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
10928 gen_avx2_permvarv8sf.
10929 (expand_vec_perm_pshufb): Ditto.
10930
203e95f6 109312012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10932
10933 PR target/52775
10934 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
10935 the list of options to enable the FCFID instruction.
10936 (TARGET_EXTRA_BUILTINS): Adjust comment.
10937
8c5ac7f6 109382012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10939
10940 PR tree-optimization/18589
10941 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
10942 (operand_entry): Add count field.
10943 (add_repeat_to_ops_vec): New function.
10944 (completely_remove_stmt): Likewise.
10945 (remove_def_if_absorbed_call): Likewise.
10946 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
10947 (acceptable_pow_call): New function.
10948 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
10949 entries with repeat counts when found.
10950 (repeat_factor_d): New struct and associated typedefs.
10951 (repeat_factor_vec): New static vector variable.
10952 (compare_repeat_factors): New function.
10953 (get_reassoc_pow_ssa_name): Likewise.
10954 (attempt_builtin_powi): Likewise.
10955 (reassociate_bb): Call attempt_builtin_powi.
10956 (fini_reassoc): Two new calls to statistics_counter_event.
10957
3db65b62 109582012-04-12 Richard Guenther <rguenther@suse.de>
10959
10960 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
10961 * cgraph.h (tree_rest_of_compilation): Remove.
10962 * cgraph.c (cgraph_add_new_function): Move ...
10963 * cgraphunit.c (cgraph_add_new_function): ... here.
10964 (tree_rest_of_compilation): Make static.
10965 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
10966 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
10967 gate_all_early_local_passes, execute_all_early_local_passes,
10968 pass_early_local_passes, gate_all_early_optimizations,
10969 pass_all_early_optimizations): Move ...
10970 * passes.c (gate_all_optimizations, pass_all_optimizations,
10971 gate_all_early_local_passes, execute_all_early_local_passes,
10972 pass_early_local_passes, gate_all_early_optimizations,
10973 pass_all_early_optimizations): ... here.
10974 * tree-optimize.c (execute_free_datastructures): Remove.
10975 * tree-flow.h (execute_free_datastructures): Remove.
10976 * tree-optimize.c (execute_init_datastructures,
10977 pass_init_datastructures): Move ...
10978 * tree-ssa.c (execute_init_datastructures,
10979 pass_init_datastructures): ... here.
10980 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
10981 execute_free_datastructures.
10982
fe9cf48d 109832012-04-12 Bernd Schmidt <bernds@codesourcery.com>
10984
10985 * dbgcnt.def (ira_move): New counter.
10986 * ira-int.h (ira_create_new_reg): Declare function.
10987 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
10988 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
10989 no longer static. All callers changed.
10990 * ira.c: Include "dbgcnt.h".
10991 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
10992 move_unallocated_pseudos): New static functions.
10993 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
10994 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
10995 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
10996 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
10997 to the pseudos generated in find_moveable_pseudos.
10998 * Makefile.in (ira.o): Add $(DBGCNT_H).
10999
06a9142d 110002012-04-12 Richard Guenther <rguenther@suse.de>
11001
11002 PR tree-optimization/52943
11003 * tree-chrec.h (chrec_is_positive): Remove.
11004 * tree-scalar-evolution.c (chrec_is_positive): Move ...
11005 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
11006 Return false for a constant zero instead of negative.
11007 (analyze_siv_subscript_cst_affine): Handle zero difference
11008 in the initial condition explicitely.
11009
b0b097b4 110102012-04-12 Richard Guenther <rguenther@suse.de>
11011
11012 * tree-parloops.c (parallelize_loops): Also consult the upper
11013 bound for the number of iterations.
11014 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
11015 (loop_prefetch_arrays): Likewise.
11016
fee017b3 110172012-04-12 Richard Guenther <rguenther@suse.de>
11018
11019 * cfgloop.h (estimated_loop_iterations_int): Ditch
11020 'conservative' parameter.
11021 (max_stmt_executions_int): Likewise.
11022 (estimated_loop_iterations): Likewise.
11023 (max_stmt_executions): Likewise.
11024 (max_loop_iterations): Declare.
11025 (max_loop_iterations_int): Likewise.
11026 (estimated_stmt_executions): Likewise.
11027 (estimated_stmt_executions_int): Likewise.
11028 * tree-ssa-loop-niter.c (estimated_loop_iterations):
11029 Split parts to ...
11030 (max_loop_iterations): ... this.
11031 (estimated_loop_iterations_int): Split parts to ...
11032 (max_loop_iterations_int): ... this.
11033 (max_stmt_executions_int): Split parts to ...
11034 (estimated_stmt_executions_int): ... this.
11035 (max_stmt_executions): Split parts to ...
11036 (estimated_stmt_executions): ... this.
11037 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
11038 * predict.c (predict_loops): Likewise.
11039 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
11040 (analyze_siv_subscript_cst_affine): Likewise.
11041 (compute_overlap_steps_for_affine_1_2): Likewise.
11042 (analyze_subscript_affine_affine): Likewise.
11043 (init_omega_for_ddr_1): Likewise.
11044 * tree-parloops.c (parallelize_loops): Likewise.
11045 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11046 (may_eliminate_iv): Likewise.
11047 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
11048 (loop_prefetch_arrays): Likewise.
11049 * tree-vrp.c (adjust_range_with_scev): Likewise.
11050
c3583c9c 110512012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
11052
11053 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
11054 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
11055 Fix line width.
11056 (dump_table): Use bool type for need_align and have_df variables.
11057 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
11058 (regs_used): Remove register modifier.
11059 (barrier_align): Move variables slot, credit, jump_to_next
11060 into if block above for loop. Use bool type for jump_to_next.
11061 (sh_function_arg): Use NULL_RTX instead of 0.
11062
886bfde4 110632012-04-11 Andreas Schwab <schwab@linux-m68k.org>
11064
11065 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
11066 (bswapsi2): New expander.
11067
7a1c6e92 110682012-04-11 H.J. Lu <hongjiu.lu@intel.com>
11069
11070 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
11071 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
11072
e623c80a 110732012-04-11 H.J. Lu <hongjiu.lu@intel.com>
11074
11075 PR rtl-optimization/52876
11076 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
ed13de71 11077 Don't call mark_reg_pointer for incompatible pointer sign extension.
e623c80a 11078
886bfde4 11079 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
e623c80a 11080 directly.
11081
51dbf409 110822012-04-11 Bernd Schmidt <bernds@codesourcery.com>
11083
11084 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
11085 comparisons against TYPE_PRECISION.
11086 * tree-ssa-forwprop.c (combine_conversions): Likewise.
11087
65082f57 110882012-04-11 Xinliang David Li <davidxl@google.com>
11089
11090 * tree-passes.h: Remove TODO_dump_func.
11091 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
11092 * trans-mem.c: Remove TODO_dump_func.
11093 * ira.c: Remove TODO_dump_func.
11094
78474516 110952012-04-11 H.J. Lu <hongjiu.lu@intel.com>
11096
11097 * config/i386/i386.c (ix86_option_override_internal): Check
11098 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
11099 after TARGET_64BIT is updated.
11100
d498e090 111012012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
11102
11103 * config/sh/sh.h: Remove old secondary reload code.
11104
855d5778 111052012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
11106
11107 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
11108 (ready_reorder): ... this function.
11109
c486a06e 111102012-04-11 Bernd Schmidt <bernds@codesourcery.com>
11111
11112 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
11113 sched_init calls.
11114
ca5e50e4 11115 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
11116 insns so that no other insn is queued for a time before them.
11117
6b87239a 11118 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
11119 unknown.
11120
08754147 111212012-04-11 Richard Guenther <rguenther@suse.de>
11122
11123 PR middle-end/52621
11124 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
11125 consider loop nesting.
11126 (evolution_function_is_univariate_p): Properly check the remainder
11127 for chrecs.
11128
a4575f9d 111292012-04-11 Richard Guenther <rguenther@suse.de>
11130
11131 PR middle-end/52918
8da8a06b 11132 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
a4575f9d 11133
e4858e6a 111342012-04-11 Nick Clifton <nickc@redhat.com>
11135
11136 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
11137 information, if requested.
11138
ecfbd70a 11139 * config/rx/rx.c (rx_expand_prologue): Likewise.
11140
0a98b6d9 111412012-04-11 Peter Bergner <bergner@vnet.ibm.com>
11142 Michael Matz <matz@suse.de>
11143
11144 PR target/16458
11145 * rtlanal.c (unsigned_reg_p): New function.
11146 Update copyright notice dates.
11147 * rtl.h (unsigned_reg_p): Prototype it.
11148 Update copyright notice dates.
11149 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
11150 Update comment.
11151 * expr.c (expand_expr_real_1): Set register attributes.
11152 * stmt.c (expand_case): Likewise.
11153
51bc6b40 111542012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
11155
11156 PR target/50751
11157 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
11158 consider_sh2a and allow_zero.
11159 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
11160 (disp_addr_displacement): New function.
11161 (sh_address_cost): Use disp_addr_displacement function instead
11162 of DISP_ADDR_OFFSET.
11163 (sh_legitimate_address_p): Adapt to changed
11164 sh_legitimate_index_p declaration.
11165 (sh_find_mov_disp_adjust): Remove HImode check.
11166 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
11167 disp_addr_displacement and max_mov_insn_displacement.
11168 (max_mov_insn_displacement): Remove HImode check.
e4858e6a 11169 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
51bc6b40 11170 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
11171 * config/sh/constraints.md (K05, K13): New constraints.
11172 (K12): Correct comment.
11173 (Sdd): Do not use DISP_ADDR_P macro.
11174 (Snd, Sbw): Use satisfies_constraint_Sdd.
11175 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
11176 (*extendhisi2_compact, movhi_i): Remove.
11177 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
11178 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
11179 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
11180 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
11181 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
11182 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
11183 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
11184 CONST_OK_FOR_Kxx.
11185 Add new peepholes for HImode displacement addressing.
11186
3dad52b6 111872012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
11188
11189 * config/sh/sh.h (SIDI_OFF): Remove.
11190 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
11191 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
11192 or operand_subword.
11193
74bdbe96 111942012-04-11 Eric Botcazou <ebotcazou@adacore.com>
11195
11196 PR target/52624
11197 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
11198 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
11199 * doc/md.texi (Standard Names): Add bswap.
11200 * builtin-types.def (BT_UINT16): New primitive type.
11201 (BT_FN_UINT16_UINT16): New function type.
11202 * builtins.def (BUILT_IN_BSWAP16): New.
11203 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
11204 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
11205 expand_builtin_bswap.
11206 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
11207 (fold_builtin_1): Likewise.
11208 (is_inexpensive_builtin): Likewise.
11209 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
11210 missing bits for bswap to libcall code.
11211 * tree.c (build_common_tree_nodes): Build uint16_type_node.
11212 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
11213 (uint16_type_node): New define.
11214 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
11215 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
11216 above builtin.
11217 (rs6000_init_builtins): Likewise.
11218 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
11219
669b0b52 112202012-04-11 Tristan Gingold <gingold@adacore.com>
11221
11222 * doc/extend.texi (Type Attributes): Move paragraph.
11223
5a983084 112242012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
11225
11226 PR 24985
886bfde4 11227 * diagnostic.h (show_caret): Declare.
5a983084 11228 (caret_max_width): Declare.
11229 (diagnostic_show_locus): Declare.
886bfde4 11230 * diagnostic.c (diagnostic_initialize): Initialize to false.
11231 (diagnostic_show_locus): New.
11232 (diagnostic_report_diagnostic): Call it.
5a983084 11233 (getenv_columns): New.
11234 (adjust_line): New.
11235 (diagnostic_set_caret_max_width): New.
886bfde4 11236 * input.c (read_line): New.
5a983084 11237 (location_get_source_line): New.
886bfde4 11238 * input.h (location_get_source_line): Declare.
11239 * toplev.c (general_init): Initialize show_caret from options.
11240 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
11241 * opts.c (common_handle_option): Likewise.
5a983084 11242 * pretty-print.h (pp_get_prefix): New.
11243 (pp_base_get_prefix): New.
886bfde4 11244 * common.opt (fdiagnostics-show-caret): New option.
5a983084 11245 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
11246
980af7e0 112472012-04-11 Richard Guenther <rguenther@suse.de>
11248
11249 PR rtl-optimization/52881
11250 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
11251
d906930c 112522012-04-11 Richard Guenther <rguenther@suse.de>
11253
11254 PR tree-optimization/52912
11255 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
11256 manipulation code we are threading through a loop header
11257 to an exit destination.
11258
3d177e8c 112592012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
11260
11261 * tree.h (warn_if_unused_value): Move declaration from here.
11262 * stmt.c (warn_if_unused_value): Move definition from here.
11263
3169c57a 112642012-04-10 Michael Matz <matz@suse.de>
ee612634 11265
11266 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
11267 grouped_stores.
11268 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
11269 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
11270 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
11271 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
11272 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
11273 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
11274 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
11275 (vect_record_strided_load_vectors): Rename to
11276 vect_record_grouped_load_vectors.
11277 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
11278 Rename use of above macros.
11279 (vect_verify_datarefs_alignment): Ditto.
11280 (vector_alignment_reachable_p): Ditto.
11281 (vect_peeling_hash_get_lowest_cost): Ditto.
11282 (vect_enhance_data_refs_alignment): Ditto.
11283 (vect_analyze_group_access): Ditto and rename stride to groupsize.
11284 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
11285 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
11286 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
11287 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
11288 (vect_record_strided_load_vectors): Rename to
11289 vect_record_grouped_load_vectors.
11290 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
11291 (destroy_loop_vec_info): Ditto.
11292 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
11293 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
11294 (vect_analyze_slp): Ditto.
11295 (new_bb_vec_info): Ditto.
11296 (destroy_bb_vec_info): Ditto.
11297 (vect_schedule_slp_instance): Ditto and rename strided_store to
11298 grouped_store.
11299 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
11300 vect_cost_group_size.
11301 (vect_model_store_cost): Rename use of above macros and call
11302 to vect_cost_strided_group_size.
11303 (vect_model_load_cost): Ditto.
11304 (vectorizable_store): Ditto, rename strided_store to grouped_store
11305 and calls to renamed tree-vectorizer.h functions.
11306 (vectorizable_load): Ditto.
11307 (vect_transform_stmt): Rename use of above macros and strided_store
11308 to grouped_store.
11309
b6c89d32 113102012-04-10 Jan Hubicka <jh@suse.cz>
11311
11312 * cgraph.h: Remove misledaing comment on ipa-ref.h.
11313 (symtab_type): New enum.
11314 (symtab_node): New structure.
11315 (cgraph_node, varpool_node): Add symbol base type.
11316 (cgraph, varpool): New accestor functions.
11317 * cgraph.c (cgraph_create_node_1): Set symbol type.
11318 * varpool.c (varpool_node): Set symbol type.
11319
03ad17bf 113202012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
11321 Richard Sandiford <rdsandiford@googlemail.com>
11322
11323 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
11324
0b06d494 113252012-04-10 Richard Guenther <rguenther@suse.de>
11326
11327 PR middle-end/52888
11328 * gimple-low.c (gimple_check_call_args): Properly account for
11329 compatible aggregate types.
11330
941366fd 113312012-04-10 Richard Guenther <rguenther@suse.de>
11332
11333 * toplev.h (tree_rest_of_compilation): Remove.
11334 * tree-optimize.c (tree_rest_of_compilation): Likewise.
11335 * cgraph.h (tree_rest_of_compilation): Declare.
11336 * tree-optimize.c (tree_rest_of_compilation): Move ...
11337 * cgraphunit.c (tree_rest_of_compilation): ... here.
11338 * cgraph.c (cgraph_add_new_function): Adjust.
11339 * Makefile.in (tree-optimize.o): Adjust.
11340 (cgraphunit.o): Likewise.
11341
e9b545c7 113422012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
11343
11344 PR tree-optimization/52870
11345 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
11346 presumed pattern statement is within the same loop or basic block.
11347
ee0af6e0 113482012-04-10 Tristan Gingold <gingold@adacore.com>
11349
11350 * gengtype.c (main): Make uintptr_t a known type.
11351
47199071 113522012-04-10 Richard Guenther <rguenther@suse.de>
11353
11354 * tree-pass.h (tree_lowering_passes): Remove.
11355 * tree-optimize.c (tree_lowering_passes): Remove.
11356 * cgraph.c (cgraph_add_new_function): Inline relevant parts
8da8a06b 11357 of tree_lowering_passes, avoid redundant call of early local passes.
47199071 11358 * cgraphunit.c (cgraph_lower_function): Fold into ...
11359 (cgraph_analyze_function): ... its single caller. Inline
11360 relevant parts of tree_lowering_passes.
11361
69116fc2 113622012-04-09 H.J. Lu <hongjiu.lu@intel.com>
11363
11364 PR other/52777
11365 * config/pa/pa.opt: Remove SIO and GNU_LD.
11366
7c067609 113672012-04-09 Jan Hubicka <jh@suse.cz>
11368
11369 PR lto/52722
11370 PR lto/51765
886bfde4 11371 PR lto/52634
8da8a06b 11372 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
11373 boundary, add its target too.
7c067609 11374 * lto.c (add_references_to_partition): Add also aliased nodes.
11375 (add_cgraph_node_to_partition,
11376 add_varpool_node_to_partition): Work on nodes, not functions/variables;
11377 when adding alias, add also the aliased object.
11378
259ad1be 113792012-04-09 Uros Bizjak <ubizjak@gmail.com>
11380
11381 PR target/52883
11382 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
11383 VOIDmode immediate operands.
11384 * config/i386/constraints.md (Wz): New constraint.
11385 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
11386
a1bec0b4 113872012-04-09 Eric Botcazou <ebotcazou@adacore.com>
11388
11389 PR target/52717
11390 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
11391 the DECL generated for the special GOT helper.
11392
15f60366 113932012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
11394
11395 * config/sh/constraints.md: Update list of constraints in
11396 comment block.
11397 (Sr0): Remove unused memory constraint.
11398
24a470ff 113992012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
11400
11401 * tree-pretty-print.h: Update comment.
11402
afb109dd 114032012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
11404
497f6450 11405 * config/sh/sh.md: Use braced string notation where applicable.
11406 (*prefetch_i4, prefetch_m2a): Merge into ...
afb109dd 11407 (*prefetch): ... this new insn.
11408
278fc7da 114092012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
11410
11411 * config/sh/sh.h (high_life_started): Remove
11412 * config/sh/predicates.md (general_movdst_operand): Use
11413 'reload_in_progress' instead of 'high_life_started'.
11414 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
11415 divsi_inv_fp): Likewise.
11416
7141d4fc 114172012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
11418
11419 * config/sh/sh-protos.h (prepare_move_operands): Return void
11420 instead of int.
11421 * config/sh/sh.c (prepare_move_operands): Likewise.
11422 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
11423
fb4fa5d7 114242012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
11425
11426 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
11427 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
11428 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
11429 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
11430 commutative_float_operator, noncommutative_float_operator,
11431 sh_handle_pragma): Remove.
11432
b8829713 114332012-04-06 Sandra Loosemore <sandra@codesourcery.com>
11434
11435 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
11436 Use @option markup on command-line options. Use @samp markup on
11437 literal keywords to options. Use @code markup on code fragments.
11438 Use other markup in preference to quotation marks in the text.
11439 Add markup to some passages without any.
11440
03231f32 114412012-04-06 Mike Stump <mikestump@comcast.net>
11442
11443 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
11444
e75e7428 114452012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
11446
11447 * config/sh/sh.c (hi_const): Remove.
11448 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
11449 of hi_const.
11450
9db04979 114512012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
11452
11453 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
11454 to bool.
11455 * config/sh/sh.c (sh_expand_t_scc): Likewise.
11456 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
11457 calling sh_expand_t_scc.
11458
a3b1178e 114592012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
11460
11461 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
11462 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
11463 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
11464 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
11465 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
11466 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
11467 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
11468 sh2a_is_function_vector_call): Use bool as return type.
11469 (sh_pass_in_reg_p): Remove.
11470 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
11471 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
11472 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
11473 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
11474 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
11475 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
11476 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
259ad1be 11477 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
a3b1178e 11478 sh_loads_bankedreg_p): Use bool as return type.
11479 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
11480 'register' modifier.
11481
f97942ad 114822012-04-06 Matt Turner <mattst88@gmail.com>
11483
11484 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
11485
2688e10b 114862012-04-06 Eric Botcazou <ebotcazou@adacore.com>
11487
11488 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
11489 of the destination isn't also a FP_REGS register.
11490
ce559b32 114912012-04-05 Teresa Johnson <tejohnson@google.com>
11492 H.J. Lu <hongjiu.lu@intel.com>
11493
8da8a06b 11494 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
ce559b32 11495 * config/i386/i386.md (move immediate to memory peephole2):
11496 Add cases for HImode move when LCP stall avoidance is needed.
11497 * config/i386/i386.c (initial_ix86_tune_features): Initialize
11498 X86_TUNE_LCP_STALL entry.
11499
2473490d 115002012-04-05 Uros Bizjak <ubizjak@gmail.com>
11501
11502 PR target/52882
11503 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
11504 CONST_INT operands, zero-extended with AND.
11505
00868707 115062012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
11507
11508 PR target/50751
11509 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
11510 first argument instead of mode size. Move displacement calculations
11511 to ...
2473490d 11512 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
00868707 11513 ... these new functions.
11514 (disp_adjust): Remove max_mov_disp field.
11515 (sh_legitimate_index_p): Use max_mov_insn_displacement and
11516 mov_insn_alignment_mask.
11517 (sh_address_cost): Use max_mov_insn_displacement.
11518
10efb95f 115192012-04-05 Andrew Stubbs <ams@codesourcery.com>
11520
11521 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
11522 (arch_enabled): Handle new arch types.
11523 (one_cmpldi2): Add NEON support.
11524
183e96b6 115252012-04-05 Richard Guenther <rguenther@suse.de>
11526
11527 * gimple.c (walk_gimple_op): Compute val_only for the LHS
11528 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
11529 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
11530 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
11531 ... here and make static.
11532 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
11533 Remove.
11534
10792deb 115352012-04-05 Richard Guenther <rguenther@suse.de>
11536
11537 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
11538 basic-block before removing it.
11539
f901fae2 115402012-04-05 Richard Guenther <rguenther@suse.de>
11541
11542 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
11543 version namespace as we release the freelist.
11544
bc8a8451 115452012-04-05 Richard Guenther <rguenther@suse.de>
11546
11547 * tree-nrv.c (tree_nrv): Release VDEFs.
11548 * tree-sra.c (sra_modify_constructor_assign): Likewise.
11549 (sra_modify_assign): Likewise.
11550 * tree-vect-stmts.c (vect_remove_stores): Likewise.
11551 * tree-vect-loop.c (vect_transform_loop): Likewise.
11552 * tree-ssa-dom.c (optimize_stmt): Likewise.
11553 * tree-vect-slp.c (vect_schedule_slp): Likewise.
11554 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
11555
13ff78a4 115562012-04-05 Richard Guenther <rguenther@suse.de>
11557
11558 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
11559 cleanup.
11560 * gimple.h (gsi_remove): Adjust.
11561 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
11562 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
11563 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
11564 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
11565 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
11566 * tree-ssa-pre.c (eliminate): Likewise.
11567
db20fb47 115682012-04-04 Mike Stump <mikestump@comcast.net>
11569
11570 * doc/rtl.texi (const_double): Document as sign-extending.
8da8a06b 11571 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
db20fb47 11572 * emit-rtl.c (immed_double_int_const): Refine to state the
11573 value is signed.
11574 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
11575 CONST_DOUBLE integers.
11576 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
11577 negative values are converted. Fix conversions bigger than
11578 HOST_BITS_PER_WIDE_INT.
8da8a06b 11579 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
db20fb47 11580 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
11581 * explow.c (plus_constant_mode): Add.
11582 (plus_constant): Implement with plus_constant_mode.
11583 * rtl.h (plus_constant_mode): Add.
11584
f889f544 115852012-04-04 Richard Guenther <rguenther@suse.de>
11586
11587 PR tree-optimization/52808
8da8a06b 11588 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
f889f544 11589 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
11590
450c6e32 115912012-04-04 Tristan Gingold <gingold@adacore.com>
11592
11593 * expr.c (expand_expr_real_2): Handle larger sizetype in
11594 POINTER_PLUS_EXPR.
11595
98fb5f75 115962012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
11597
11598 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
11599 to m2a-single instead of m2e.
11600
3cef948a 116012012-04-03 Eric Botcazou <ebotcazou@adacore.com>
11602
11603 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
11604 Change type of BITOFFSET to signed. Make sure the lower bound of
11605 the computed range is non-negative by adjusting OFFSET and BITPOS.
11606 (expand_assignment): Adjust call to get_bit_range.
11607
d3677aa8 116082012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11609
11610 * h8300/h8300.c (h8300_current_function_monitor_function_p):
886bfde4 11611 New function. Added to check monitor functions.
11612 (h8300_option_override): Modified to generate error/warning
11613 messages for invalid combinations of different command line
d3677aa8 11614 options.
11615 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
886bfde4 11616 save EXR on stack for monitor function in case of H8S target
d3677aa8 11617 when "-mno-exr" is passed.
8da8a06b 11618 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
11619 Add prototype.
d3677aa8 11620 * doc/invoke.texi: Document H8S options.
11621
749dea2a 116222012-04-03 Tristan Gingold <gingold@adacore.com>
11623
11624 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
11625 of gcc_AC_FUNC_MMAP_BLACKLIST.
11626 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
11627 * Makefile.in (aclocal_deps): Add mmap.m4.
11628 * configure: Regenerate.
11629 * aclocal.m4: Regenerate.
11630
35c67c83 116312012-04-03 Richard Guenther <rguenther@suse.de>
11632
11633 PR tree-optimization/52808
11634 * tracer.c (tail_duplicate): Return whether we have duplicated
11635 any block.
11636 (tracer): If we have duplicated any block, cleanup the CFG.
11637 * cfghooks.c (duplicate_block): If we duplicated a loop
11638 header but not its loop, destroy the loop because it now has
11639 multiple entries.
11640 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
11641 the cfg manipulation routines we are not creating a multiple
11642 entry loop.
11643
bc05341c 116442012-04-03 Tristan Gingold <gingold@adacore.com>
11645
11646 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
11647 'byte' alignment.
11648 (vms_c_common_override_options): Allow parameterless variadic
11649 functions.
11650
96758487 116512012-04-03 Jakub Jelinek <jakub@redhat.com>
11652
11653 PR tree-optimization/52835
11654 * tree-data-ref.c (build_rdg): Return NULL if
11655 compute_data_dependences_for_loop failed.
11656
766b6590 116572012-04-03 Eric Botcazou <ebotcazou@adacore.com>
11658
11659 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
11660 for REAL_CST as well.
11661 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
11662 In the bitfield case, if the value is a REAL_CST, convert it first to
11663 an INTEGER_CST.
11664
6fa78bde 116652012-04-02 H.J. Lu <hongjiu.lu@intel.com>
11666
11667 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
11668 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
11669 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
11670
11671 * config/i386/biarchx32.h: New.
11672
ffdb0b2d 116732012-04-02 Anatoly Sokolov <aesok@post.ru>
11674
11675 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
11676 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11677 (arm_preferred_reload_class): New function.
11678
6eb99d8a 116792012-04-02 Richard Guenther <rguenther@suse.de>
11680
11681 PR tree-optimization/52756
11682 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
11683 (thread_through_loop_header): After threading through the loop latch
11684 remove the split part from the loop and clear further threading
11685 opportunities that would create a multiple entry loop.
11686
ec3167d1 116872012-04-02 Richard Guenther <rguenther@suse.de>
11688
11689 PR rtl-optimization/52800
11690 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
11691 CLEANUP_CFG_CHANGED.
11692
759626e6 116932012-04-02 Richard Guenther <rguenther@suse.de>
11694
11695 PR middle-end/52803
11696 * loop-init.c (gate_handle_loop2): Destroy loops here if
11697 we don't enter RTL loop optimizers.
11698
8bbbe2b5 116992012-04-02 Uros Bizjak <ubizjak@gmail.com>
11700
11701 Partially revert:
11702 2012-03-29 Richard Guenther <rguenther@suse.de>
11703
11704 * rtl.h (extended_count): Remove.
11705 * combine.c (extended_count): Remove.
11706
6b1f0797 117072012-04-02 Dodji Seketeli <dodji@redhat.com>
11708
11709 PR c++/40942
11710 * pt.c (more_specialized_fn): Don't apply decay conversion to
11711 types of function parameters.
11712
337c992b 117132012-04-02 Tristan Gingold <gingold@adacore.com>
11714
11715 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
11716 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
11717 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
11718 (ggc_pch_this_base): Use uintptr_t instead of size_t.
11719
f4b5bb69 117202012-03-31 H.J. Lu <hongjiu.lu@intel.com>
11721
11722 PR bootstrap/52784
11723 * config/i386/i386.c (ix86_option_override_internal): Don't
11724 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
11725
822dbdbc 117262012-03-31 Eric Botcazou <ebotcazou@adacore.com>
11727
11728 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
11729 (stmt_can_make_abnormal_goto): Use it.
11730 (is_ctrl_altering_stmt): Likewise.
11731
5a333029 117322012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
11733 Kaz Kojima <kkojima@gcc.gnu.org>
11734
11735 * config/sh/sh.c (push_regs): Skip banked registers when
11736 resbank attribute is specified.
11737 (sh_expand_epilogue): Likewise.
11738
1249885e 117392012-03-30 Richard Henderson <rth@redhat.com>
11740
11741 PR debug/52727
11742 * combine-stack-adj.c (prev_active_insn_bb): New.
11743 (next_active_insn_bb): New.
11744 (force_move_args_size_note): New.
11745 (combine_stack_adjustments_for_block): Use it.
11746
8ae0b70d 117472012-03-30 Richard Henderson <rth@redhat.com>
11748
11749 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
11750 (ix86_expand_vector_init_duplicate): Initialize it.
11751 (expand_vec_perm_palignr): Likewise.
11752 (ix86_expand_vec_perm_const): Likewise.
11753 (ix86_vectorize_vec_perm_const_ok): Likewise.
11754 (expand_vec_perm_blend): Use it.
11755 (expand_vec_perm_vpermil): Likewise.
11756 (expand_vec_perm_pshufb): Likewise.
11757 (expand_vec_perm_1): Likewise.
11758 (expand_vec_perm_pshuflw_pshufhw): Likewise.
11759 (expand_vec_perm_interleave2): Likewise.
11760 (expand_vec_perm_vpermq_perm_1): Likewise.
11761 (expand_vec_perm_vperm2f128): Likewise.
11762 (expand_vec_perm_interleave3): Likewise.
11763 (expand_vec_perm_vperm2f128_vblend): Likewise.
11764 (expand_vec_perm_vpshufb2_vpermq): Likewise.
11765 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
11766 (expand_vec_perm_broadcast): Likewise.
11767 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
11768
1e5105ae 117692012-03-30 Richard Henderson <rth@redhat.com>
11770
11771 * dwarf2out.c (gen_variable_die): Initialize off.
11772
b26acc64 117732012-03-30 Tristan Gingold <gingold@adacore.com>
11774
11775 * config/vms/vms-f.c: New file.
11776 * config/vms/t-vms (vms-f.o): New rule.
11777 * config.gcc (*-*-*vms*): Define fortran_target_objs.
11778
b97e39a0 117792012-03-30 Richard Guenther <rguenther@suse.de>
11780
11781 PR tree-optimization/52754
11782 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
11783 propagate arbitrary addresses into really plain dereferences.
11784
99cc6bba 117852012-03-30 Richard Guenther <rguenther@suse.de>
11786
11787 PR middle-end/52772
11788 * except.c (emit_to_new_bb_before): Move loop updating ...
11789 (dw2_build_landing_pads): ... here. Use a proper block for
11790 querying the loop father.
11791
3cab3251 117922012-03-30 Tristan Gingold <gingold@adacore.com>
11793
11794 * config/ia64/ia64.c (ia64_section_type_flags): Remove
11795 common_object attribute handling.
11796 (SECTION_VMS_OVERLAY): Remove
11797 (ia64_vms_common_object_attribute): Replace abort with an assert.
11798 Do not set DECL_SECTION_NAME.
11799 (ia64_vms_output_aligned_decl_common): Handle common_object
11800 attribute.
11801 (ia64_vms_elf_asm_named_section): Remove.
11802 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
11803
24a49f00 118042012-03-30 Richard Guenther <rguenther@suse.de>
11805
11806 PR middle-end/52786
11807 * double-int.c (rshift_double): Remove not needed cast.
11808
d129ada0 118092012-03-30 Richard Guenther <rguenther@suse.de>
11810
11811 * tree-affine.h (print_aff): Remove.
11812 * tree-affine.c (print_aff): Make static.
11813 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
11814 (get_references_in_stmt): Likewise.
11815 (print_direction_vector): Likewise.
11816 (print_dir_vectors): Likewise.
11817 (print_dist_vectors): Likewise.
11818 (dump_subscript): Likewise.
11819 (dump_ddrs): Likewise.
11820 (dump_dist_dir_vectors): Likewise.
11821 (dump_data_references): Likewise.
11822 (dump_data_dependence_relation): Likewise.
11823 (dump_data_dependence_direction): Likewise.
11824 (dump_rdg_vertex): Likewise.
11825 (dump_rdg_component): Likewise.
11826 (debug_ddrs): Declare.
11827 (struct data_ref_loc_d): Move ...
11828 * tree-data-ref.c (struct data_ref_loc_d): ... here.
11829 (get_references_in_stmt): Make static.
11830 (dump_data_references): Likewise.
11831 (dump_subscript): Likewise.
11832 (print_direction_vector): Likewise.
11833 (print_dir_vectors): Likewise.
11834 (print_dist_vectors): Likewise.
11835 (dump_data_dependence_relation): Likewise.
11836 (dump_dist_dir_vectors): Likewise.
11837 (dump_ddrs): Likewise.
11838 (dump_rdg_vertex): Likewise.
11839 (dump_rdg_component): Likewise.
11840 (debug_ddrs): New function.
11841 (access_matrix_get_index_for_parameter): Remove.
11842
bbced055 118432012-03-30 Tristan Gingold <gingold@adacore.com>
11844
11845 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
11846 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
11847 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
11848 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
11849 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
11850 (vms_patch_builtins): Handle new flags
11851 * config/vms/vms-crtlmap.map: Completed using nm on
11852 c and math system libraries.
11853 * config/vms/make-crtlmap.awk: Handle any number of flags.
11854
1543f720 118552012-03-30 Martin Jambor <mjambor@suse.cz>
11856
11857 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
11858 is a builtin_stack_save in a dominating BB.
11859
80f058cd 118602012-03-29 Uros Bizjak <ubizjak@gmail.com>
11861
11862 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
11863 crossing 128bit lane boundary.
11864
385bfbc6 118652012-03-29 Vladimir Makarov <vmakarov@redhat.com>
11866
11867 * ira-color.c (setup_left_conflict_sizes_p): Process all
11868 conflicting objects.
11869
aa17a496 118702012-03-29 Jakub Jelinek <jakub@redhat.com>
11871
11872 PR tree-optimization/52760
11873 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
11874 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
11875
d2bb3f9d 118762012-03-29 Richard Guenther <rguenther@suse.de>
11877
11878 * cgraph.h (cgraph_materialize_all_clones): Remove.
11879 (reset_inline_failed): Likewise.
11880 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
11881 * cgraphbuild.c (reset_inline_failed): Remove.
11882 * rtl.h (cse_main): Remove.
11883 (extended_count): Likewise.
11884 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
11885 (cse_main): Make static.
11886 * combine.c (extended_count): Remove.
11887 (dump_combine_stats): Mark as DEBUG_FUNCTION.
11888 * basic-block.h (reorder_basic_blocks): Remove.
11889 * bb-reorder.c (reorder_basic_blocks): Make static.
11890 * Makefile.in (dse.o): Remove dse.h dependency.
11891 * dse.h: Remove.
11892 * dse.c (gate_dse): Remove.
11893 (clear_alias_mode_eq): Likewise.
11894 (clear_alias_mode_hash): Likewise.
11895 (dse_record_singleton_alias_set): Likewise.
11896 (dse_invalidate_singleton_alias_set): Likewise.
11897
c0dc946a 118982012-03-29 H.J. Lu <hongjiu.lu@intel.com>
11899
11900 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
11901 crtbegin_so%O%s for -shared.
11902 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
11903
54879eec 119042012-03-29 Richard Guenther <rguenther@suse.de>
11905
11906 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
11907 (add_to_value): Remove.
11908 (print_value_expressions): Likewise.
11909 * tree-ssa-pre.c (add_to_value): Make static.
11910 (print_value_expressions): Likewise.
11911 * gimple.h (gimple_adjust_this_by_delta): Remove.
11912 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
11913
e058414d 119142012-03-29 Richard Guenther <rguenther@suse.de>
11915
11916 PR middle-end/50708
11917 * double-int.h (rshift_double): Remove.
4e0c0c52 11918 * double-int.c (lshift_double): Use absu_hwi to make count positive.
e058414d 11919 (rshift_double): Make static, take unsigned count argument,
11920 remove handling of negative count argument.
11921 (double_int_rshift): Dispatch to lshift_double.
11922
bac6f1f6 119232012-03-28 H.J. Lu <hongjiu.lu@intel.com>
11924
11925 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
11926 OPTION_MASK_ABI_64.
11927
11928 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
11929 (SPEC_X32): Likewise.
11930 (MULTILIB_DEFAULTS): Likewise.
11931
11932 * config/i386/i386.c (isa_opts): Remove -m64.
11933 (ix86_target_string): Properly handle -m32/-m64/-mx32.
11934 (ix86_option_override_internal): Properly
11935 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
11936 handle -m32, -m64 and -mx32.
11937
11938 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
11939 with OPTION_ABI_X32. Moved after TARGET_LP64.
11940 (TARGET_LP64): Changed to OPTION_ABI_64.
11941
11942 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
11943 (mx32): Replace ISA_X32 with ABI_X32.
11944
b257ad5f 119452012-03-28 Eric Botcazou <ebotcazou@adacore.com>
11946
11947 * tree.c (tree_size) <VECTOR_CST>: New case.
11948
df6b3006 119492012-03-28 Uros Bizjak <ubizjak@gmail.com>
11950
11951 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
11952 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
11953
891f5177 119542012-03-28 Jakub Jelinek <jakub@redhat.com>
11955
e7ed5dd7 11956 PR middle-end/52691
11957 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
11958 __builtin_va_start to __builtin_next_arg if the latter is
11959 builtin_decl_explicit_p rather than when it is not.
11960
891f5177 11961 PR middle-end/52750
11962 * tree-vect-generic.c (vector_element): Perform multiplication
11963 for pos in bitsizetype type instead of idx type.
11964
79f958cb 119652012-03-28 Richard Guenther <rguenther@suse.de>
11966
11967 * loop-init.c (loop_optimizer_init): If loops are preserved
11968 perform incremental initialization of required loop features.
11969 (loop_optimizer_finalize): If loops are to be preserved only
11970 clean up optional loop features.
11971 (rtl_loop_done): Forcefully free loops here.
df6b3006 11972 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
79f958cb 11973 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
11974 to existing loops.
11975 (construct_init_block): Likewise.
11976 (construct_exit_block): Likewise.
11977 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
11978 the CFG after expanding.
df6b3006 11979 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
11980 If we needed to calculate them, free them afterwards.
79f958cb 11981 * tree-pass.h (PROP_loops): New define.
11982 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
11983 * basic-block.h (CLEANUP_CFG_CHANGED): New.
11984 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
df6b3006 11985 (cleanup_cfg): If we did something and have loops around, fix them up.
79f958cb 11986 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
11987 with CLEANUP_CFG_CHANGED.
11988 * cfghooks.c (merge_blocks): If we merge a loop header into
11989 its predecessor, update the loop structure.
11990 (duplicate_block): If we copy a loop latch, adjust loop state
11991 to note we may have multiple latches.
11992 (delete_basic_block): Mark loops for fixup if we remove a loop.
11993 * cfganal.c (forwarder_block_p): Protect loop latches, headers
11994 and preheaders.
11995 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
11996 (cfg_layout_can_merge_blocks_p): Likewise.
11997 * cprop.c (bypass_block): If we create a loop with multiple
11998 entries, mark it for removal.
11999 * except.c (emit_to_new_bb_before): Add the new basic-block
12000 to existing loops.
12001 * tree-eh.c (lower_resx): Likewise.
12002 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
12003 (expand_omp_taskreg): Likewise.
12004 * tree-inline.c (initialize_cfun): Likewise.
12005 * tree-mudflap.c (add_bb_to_loop): Prototype.
12006 (mf_build_check_statement_for): Properly add new basic-blocks
12007 to existing loops.
12008 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
12009 if we remove a loop.
12010 (thread_through_loop_header): Likewise.
12011 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
12012 new basic-blocks to existing loops.
12013 (expand_transaction): Likewise.
12014 * Makefile.in (except.o): Add $(CFGLOOP_H).
12015 (expr.o): Likewise.
12016 (cgraph.o): Likewise.
12017 (cprop.o): Likewise.
12018 (cfgexpand.o): Likewise.
12019 (cfganal.o): Likewise.
12020 (trans-mem.o): Likewise.
12021 (tree-eh.o): Likewise.
12022
58cf0091 120232012-03-28 Georg-Johann Lay <avr@gjlay.de>
12024
12025 PR target/52692
12026 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
12027 (avr_builtin_decl): New static function.
12028 (struct avr_builtin_description, avr_bdesc): Move up.
12029 Add GTY marker. Add field fndecl. Remove redundant field id.
12030 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
12031 (avr_expand_builtin): Code cleanup because .id is removed.
12032
d32d7e3a 120332012-03-28 Georg-Johann Lay <avr@gjlay.de>
12034
12035 PR target/52737
12036 * config.gcc (tm_file): Remove avr/multilib.h.
12037
df6b3006 12038 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
d32d7e3a 12039
12040 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
12041 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
12042 * config/avr/t-avr: Remove generation of multilib.h.
12043 * config/avr/t-multilib: Regenerate.
12044 * config/avr/multilib.h: Remove.
12045 * config/avr/avr.opt (-msp8): New option.
12046 (avr_sp8): New variable.
12047 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
12048 * config/avr/avr.h (AVR_HAVE_SPH): New define.
12049 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
12050 (avr_device_to_sp8): New prototype.
12051 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
12052 (DRIVER_SELF_SPECS): New define.
12053 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
12054 __AVR_SP8__, __AVR_HAVE_SPH__.
12055 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
12056 AVR_HAVE_8BIT_SP to decide if SP_H is present.
12057 (avr_file_start): Ditto.
12058
9af8c7c5 120592012-03-28 Jakub Jelinek <jakub@redhat.com>
12060
12061 PR target/52736
12062 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
12063 instead of 8 in adjust_address.
12064
cefa4c33 120652012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
12066
12067 PR middle-end/51893
12068 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
12069 targets.
12070
fa9db843 120712012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
12072
12073 PR target/50751
12074 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
12075 Rearrange conditional logic. Move displacement address calculations
12076 to ...
12077 (sh_find_mov_disp_adjust): ... this new function.
12078
367d727c 120792012-03-27 H.J. Lu <hongjiu.lu@intel.com>
12080
12081 * config/arm/arm.opt (mapcs): Remove MaskExists.
12082 * config/cris/linux.opt (mno-gotplt): Likewise.
12083 * config/i386/i386.opt (mhard-float): Likewise.
12084 (msse4): Likewise.
12085 (mno-sse4): Likewise.
12086 * config/m68k/m68k.opt (mhard-float): Likewise.
12087 * config/mep/mep.op (mcop32): Likewise.
12088 * config/pa/pa-hpux.opt (msio): Likewise.
12089 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
12090 * config/picochip/picochip.opt (mlittle): Likewise.
12091 * config/sh/sh.opt (mrenesas): Likewise.
12092 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
12093 * config/sparc/sparc.opt (mhard-float): Likewise.
12094 * config/v850/v850.opt (mv850es): Likewise.
12095 * config/vax/vax.opt (mg-float): Likewise.
12096
49c38e93 120972012-03-27 Martin Jambor <mjambor@suse.cz>
12098
12099 PR middle-end/52693
12100 * tree-sra.c (sra_modify_assign): Do not call
12101 load_assign_lhs_subreplacements when working with an unscalarizable
12102 region.
12103
77c42bd4 121042012-03-27 Uros Bizjak <ubizjak@gmail.com>
12105
12106 PR target/52698
12107 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
12108 New prototype.
12109 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
12110 * config/i386/i386.c: Include reload.h.
12111 (ix86_legitimize_reload_address): New function.
12112
dbc6e347 121132012-03-27 H.J. Lu <hongjiu.lu@intel.com>
12114
12115 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
12116 hasn't been allocated. Define a target macro for Mask and
77c42bd4 12117 InverseMask if it hasn't been defined. Remove MaskExists handling.
dbc6e347 12118
0455e0da 12119 * doc/options.texi: Remove MaskExists.
dbc6e347 12120
6523974f 121212012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
12122
12123 PR target/52667
12124 * config/sh/sh.c (find_barrier): Add equality check of last_got
12125 to avoid going above orig insn. Update comments.
12126
902123ad 121272012-03-27 Richard Guenther <rguenther@suse.de>
12128
12129 PR middle-end/52720
12130 * fold-const.c (try_move_mult_to_index): Handle &x.array more
12131 explicitely.
12132
73041e9b 121332012-03-27 Eric Botcazou <ebotcazou@adacore.com>
12134
12135 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
12136 of a unit before computing the offset in units.
12137 * expr.c (get_bit_range): Return the null range if the enclosing record
12138 is part of a larger bit field.
12139
a2295d74 121402012-03-27 Tristan Gingold <gingold@adacore.com>
12141
12142 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
12143 * config/ia64/ia64.md: Remove mode in template.
12144 Sign extend operand in expand_simple_binop.
12145 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
12146 CASE_VECTOR_MODE instead of TARGET_ILP32.
12147 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
12148
43d744c8 121492012-03-26 Steven Bosscher <steven@gcc.gnu.org>
12150
12151 * varasm.c (assemble_external): #if 0 out the new assert from the
12152 previous commit, it breaks the Java and Go front ends.
12153
a723d770 121542012-03-26 Steven Bosscher <steven@gcc.gnu.org>
12155
ea259bbe 12156 * toplev.c (check_global_declaration_1): Do not call assemble_external.
12157 * expr.c (emit_block_move_libcall_fn): Likewise.
12158 (clear_storage_libcall_fn): Likewise.
12159 (expand_expr_addr_expr_1): Likewise.
12160 (expand_expr_real_1): Likewise.
12161 * calls.c (rtx_for_function_call): Likewise.
12162
a723d770 12163 * varasm.c (assemble_external): Assert this function is only called
12164 during or after expanding to RTL.
12165
7c2ed7d7 121662012-03-26 Martin Jambor <mjambor@suse.cz>
12167
12168 PR tree-optimization/50052
12169 * tree-sra.c (tree_non_aligned_mem_p): Removed.
12170 (tree_non_aligned_mem_for_access_p): Likewise.
12171 (build_accesses_from_assign): Removed strict alignment requirements
12172 checks.
12173 (access_precludes_ipa_sra_p): Likewise.
12174
58280b1f 121752012-03-26 Richard Guenther <rguenther@suse.de>
12176
12177 PR tree-optimization/52701
12178 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
12179 compute and set the evolution part of PHI nodes.
12180
a1dfcdd0 121812012-03-26 Richard Guenther <rguenther@suse.de>
12182
12183 PR tree-optimization/52721
12184 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
12185
1c928a0c 121862012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
12187
12188 PR tree-optimization/52686
12189 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
12190 WIDEN_LSHIFT_EXPR.
12191
784576c7 121922012-03-26 Tristan Gingold <gingold@adacore.com>
12193
12194 * config/alpha/vms.h (LINK_SPEC): Simplify.
12195 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
12196 (NAME__MAIN, SYMBOL__MAIN): Remove.
12197 (VMS_DEBUG_MAIN_POINTER): Remove.
12198 * config/ia64/vms.h: Likewise.
12199 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
12200 code to vms.c. Call vms_start_function.
12201 * config/ia64/ia64.c (ia64_start_function): Likewise.
12202 * config/vms/vms-protos.h (vms_start_function): Declare.
12203 * config/vms/vms.c (vms_start_function): New function.
12204 * config/vms/vms.h (MATH_LIBRARY): Define.
12205 (VMS_DEBUG_MAIN_POINTER): Define.
12206
ab3908c1 122072012-03-26 Eric Botcazou <ebotcazou@adacore.com>
12208
12209 PR rtl-optimization/52629
12210 * reload1.c (count_pseudo): Short-circuit common case.
12211 (count_spilled_pseudo): Return early for pseudos without hard regs.
12212 Assert that the pseudo has got a hard reg before manipulating it.
12213
4dca9aca 122142012-03-24 Jan Hubicka <jh@suse.cz>
12215
12216 PR lto/51663
12217 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
12218 (decide_is_variable_needed): Do not handle toplevel reorder here.
12219 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
12220 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
12221 even at -O0.
12222
40715742 122232012-03-24 Eric Botcazou <ebotcazou@adacore.com>
12224
12225 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
12226 and str_bitsize instead of more convoluted expressions.
12227
4b552df4 122282012-03-24 Eric Botcazou <ebotcazou@adacore.com>
12229
12230 PR target/52610
12231 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
12232
29c08f56 122332012-03-24 Eric Botcazou <ebotcazou@adacore.com>
12234
12235 PR target/52656
12236 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
12237
a00d04d2 122382012-03-23 Martin Jambor <mjambor@suse.cz>
12239
12240 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
12241
86faead7 122422012-03-23 Richard Guenther <rguenther@suse.de>
12243
12244 PR tree-optimization/52678
12245 * tree-vectorizer.h (struct _stmt_vec_info): Add
12246 loop_phi_evolution_part member.
12247 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
12248 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
12249 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
12250 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12251 Use the cached evolution part and the PHI nodes value from
12252 the loop preheader edge instead of re-analyzing the evolution.
12253
af1bc032 122542012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
12255
12256 * config/mips/mips-tables.opt: Update.
12257 * config/mips/mips.md (processor): Add xlp.
12258 * config/mips/mips-cpus.def: Add xlp.
12259 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
12260 5KF for now.
12261 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
12262 * doc/invoke.texi: Mention XLP.
12263
2ea94a74 122642012-03-22 Jakub Jelinek <jakub@redhat.com>
12265
12266 PR middle-end/52547
12267 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
12268 on any new_local_var_chain vars declared during recursing on
12269 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
12270
af3c0d00 122712012-03-22 Uros Bizjak <ubizjak@gmail.com>
12272
12273 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
12274 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
12275 (ASM_OUTPUT_LOCAL): Ditto.
12276 (ASM_OUTPUT_COMMON): Remove.
12277 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
12278 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
12279
41710b76 122802012-03-22 Jan Hubicka <jh@suse.cz>
12281
12282 PR middle-end/51737
12283 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
12284 parameter.
12285 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
af3c0d00 12286 * ipa-inline-transform.c (save_inline_function_body): Remove
12287 copied clone if needed.
41710b76 12288 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
12289
1957dffb 122902012-03-22 Richard Guenther <rguenther@suse.de>
12291
12292 PR middle-end/52666
12293 * fold-const.c (fold_ternary_loc): Fix typo.
12294
4349a1fa 122952012-03-22 Georg-Johann Lay <avr@gjlay.de>
12296
12297 PR target/52496
12298 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
12299 (unspecv): Add UNSPECV_MEMORY_BARRIER.
12300 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
12301 (delay_cycles_1, delay_cycles_2): Ditto.
12302 (delay_cycles_3, delay_cycles_4): Ditto.
12303 (nopv, *nopv): Ditto.
12304 (sleep, *sleep): Ditto.
12305 (wdr, *wdr): Ditto.
12306
3fd927c9 123072012-03-22 Richard Guenther <rguenther@suse.de>
12308
12309 PR tree-optimization/52548
12310 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
12311 because of clobbers.
12312 (prune_clobbered_mems): New function.
12313 (compute_antic_aux): Use it to prune ANTIC_OUT.
12314 (compute_partial_antic_aux): Use it to prune PA_IN.
af3c0d00 12315 (compute_avail): Only insert expressions into EXP_GEN that are not
12316 invalidated when translated up to the beginning of the block.
3fd927c9 12317
8ca02f71 123182012-03-22 Richard Guenther <rguenther@suse.de>
12319
12320 PR tree-optimization/52638
12321 * tree-vect-stmts.c (vect_init_vector_1): New function, split
12322 out from ...
12323 (vect_init_vector): ... here. Handle scalar vector inits.
12324 (vect_get_vec_def_for_operand): Adjust.
12325 (vectorizable_load): Likewise.
12326
a25bf392 123272012-03-22 Uros Bizjak <ubizjak@gmail.com>
12328
12329 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
12330 (alpha*-*-freebsd*): Ditto.
12331 (alpha*-*-netbsd*): Ditto.
12332 (alpha*-*-openbsd*): Ditto.
12333 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
12334 (DWARF2_DEBUGGING_INFO): Remove.
12335 (PREFERRED_DEBUGGING_TYPE): Remove.
12336 (ASM_FINAL_SPEC): Remove.
12337 (IDENT_ASM_OP): Remove.
12338 (ASM_OUTPUT_IDENT): Remove.
12339 (SKIP_ASM_OP): Remove.
12340 (ASM_OUTPUT_SKIP): Remove.
12341 (ALIGN_ASM_OP): Remove.
12342 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
12343 (ASM_OUTPUT_CASE_LABEL): Remove.
12344 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
12345 (COMMON_ASM_OP): Remove.
12346 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
12347 (ASCII_DATA_ASM_OP): Remove.
12348 (READONLY_DATA_SECTION_ASM_OP): Remove.
12349 (INIT_SECTION_ASM_OP): Remove.
12350 (FINI_SECTION_ASM_OP): Remove.
12351 (ASM_SECTION_START_OP): Remove.
12352 (ASM_OUTPUT_SECTION_START_FILE): Remove.
12353 (TARGET_ASM_NAMED_SECTION): Remove.
12354 (TARGET_ASM_SELECT_SECTION): Remove.
12355 (MAKE_DECL_ONE_ONLY): Remove.
12356 (TYPE_ASM_OP): Remove.
12357 (SIZE_ASM_OP): Remove.
12358 (ASM_WEAKEN_LABEL): Remove.
12359 (TYPE_OPERAND_FMT): Remove.
12360 (ASM_DECLARE_RESULT): Remove.
12361 (ASM_DECLARE_OBJECT_NAME): Remove.
12362 (ASM_FINISH_DECLARE_OBJECT): Remove.
12363 (ELF_ASCII_ESCAPES): Remove.
12364 (ELF_STRING_LIMIT): Remove.
12365 (STRING_ASM_OP): Remove.
12366 (ASM_OUTPUT_EXTERNAL): Remove.
12367 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
12368 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
12369 before define.
12370 (ASM_DECLARE_FUNCTION_NAME): Ditto.
12371 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
12372 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
12373 (ASM_OUTPUT_SKIP): Ditto.
12374 (READONLY_DATA_SECTION_ASM_OP): Remove.
12375 (USER_LABEL_PREFIX): Remove.
12376 (ASM_OUTPUT_ASCII): Remove.
12377 (ASM_OUTPUT_CASE_LABEL): Remove.
12378 (NO_DOLLAR_IN_LABEL): Undefine.
12379
38847948 123802012-03-22 Richard Guenther <rguenther@suse.de>
12381
12382 PR tree-optimization/52459
12383 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
12384 PHI insertion for calls.
12385
2aca5650 123862012-03-21 Steven Bosscher <steven@gcc.gnu.org>
12387
12388 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
12389 find_sets_in_insn, canonicalize_insn): Split out from ...
12390 (cse_insn): ... here.
12391 (invalidate_from_clobbers): Take an insn instead of the pattern.
12392
237a2429 123932012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
12394
12395 PR target/52479
12396 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
12397 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
12398 * config/sh/sh.md (sindf2, cosdf2): Remove.
12399
8fe7656f 124002012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
12401
b45e6434 12402 PR target/52642
8fe7656f 12403 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
a25bf392 12404 prologue for unwinder and profiler.
8fe7656f 12405
2ac000bb 124062012-03-21 Andreas Tobler <andreast@fgznet.ch>
12407
12408 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
12409 Introduce emul_name to select the right linker emulation for
12410 powerpc64-*-freebsd*.
12411 * configure: Regenerate.
12412 * config.gcc: Add bits to support powerpc64-*-freebsd*.
12413 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
12414 * config/rs6000/freebsd64.h: New file.
12415 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
12416 POWERPC_FREEBSD.
12417 (rs6000_savres_strategy): Likewise.
12418 (rs6000_savres_routine_name): Likewise.
12419 (rs6000_elf_file_end): Likewise.
12420 * config/rs6000/t-freebsd64: New file.
12421 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
12422 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
12423
d018c468 12424 * config/rs6000/freebsd64.h: Remove duplicated entries from last
12425 commit.
12426 * config/rs6000/t-freebsd64: Likewise.
12427
002565f0 124282012-03-21 Georg-Johann Lay <avr@gjlay.de>
12429
12430 PR rtl-optimization/52543
12431 PR target/52461
12432 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
12433 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
12434 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
12435 (avr_load_libgcc_p): Restrict to __flash loads.
12436 (avr_out_lpm): Only handle 1-byte loads from __flash.
12437 (avr_load_lpm): New function.
12438 (avr_find_unused_d_reg): Remove.
12439 (avr_out_lpm_no_lpmx): Remove.
12440 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
12441 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
12442 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
12443 (load_<mode>, load_<mode>_clobber): New insns.
12444 (mov<mode>): For multi-byte move from non-generic
12445 16-bit address spaces: Expand to load_<mode> resp.
12446 load_<mode>_clobber.
12447 (load<mode>_libgcc): Remove expander.
12448 (split-lpmx): Remove split.
12449
cd4e07db 124502012-03-21 Richard Earnshaw <rearnsha@arm.com>
12451
12452 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
12453 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
12454 All callers changed.
12455 (Fixed_core_reg): New feature.
12456 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
12457 disassembly.
12458 * neon-testgen.ml: Handle Fixed_core_reg.
12459
ae1dbab8 124602012-03-21 Andrew Stubbs <ams@codesourcery.com>
12461
12462 * config/arm/arm.c (thumb2_reorg): Add complete support
12463 for 16-bit instructions.
12464 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
12465
6fa78636 124662012-03-21 Richard Guenther <rguenther@suse.de>
12467
12468 PR tree-optimizer/52636
12469 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
12470 to the appropriate type.
12471
212dddd3 124722012-03-21 Richard Guenther <rguenther@suse.de>
12473
12474 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
12475 dependencies.
12476 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
12477 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
12478 * passes.c (init_optimization_passes): Remove pass_init_function,
12479 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
12480 * tree-pass.h (pass_init_function): Remove.
12481 (pass_jump): Remove.
12482 (pass_initial_value_sets): Remove.
12483 (pass_unshare_all_rtl): Remove.
12484 * integrate.c (pass_initial_value_sets): Remove.
12485 * emit-rtl.c (pass_unshare_all_rtl): Remove.
12486 * tree.h (init_function_for_compilation): Remove.
12487 * function.c (init_function_for_compilation): Remove.
12488 (pass_init_function): Remove.
12489 * cfgcleanup.c (rest_of_handle_jump): Remove.
12490 (pass_jump): Remove.
12491
358f9d96 124922012-03-20 Jason Merrill <jason@redhat.com>
12493
12494 * tree-streamer-in.c (streamer_alloc_tree): Call
12495 ggc_alloc_zone_cleared_tree_node instead of
12496 ggc_alloc_zone_cleared_tree_node_stat.
12497
6ad63f69 124982012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
12499
12500 * doc/extend.texi (Template Instantiation): Remove anachronisms.
12501
541e350d 125022012-03-20 Jakub Jelinek <jakub@redhat.com>
12503
0b991a69 12504 PR target/52607
12505 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
12506 (ix86_expand_vec_perm_const_1): Call it.
12507
245c00ec 12508 * config/i386/i386.c (vselect_insn): New variable.
12509 (init_vselect_insn): New function.
12510 (expand_vselect, expand_vselect_insn): Add testing_p argument.
12511 Call init_vselect_insn if vselect_insn is NULL. Adjust
12512 PATTERN (vselect_insn), instead of creating a new insn each time,
12513 only emit a copy of it if not testing and recog has been successful.
12514 (expand_vec_perm_pshufb, expand_vec_perm_1,
12515 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
12516 callers.
12517
541e350d 12518 PR target/52607
12519 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
12520 ("enabled" attribute): Handle avx2 and noavx2 isas.
12521 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
12522 New insns.
12523 (vec_dup<mode>): Add avx2 =x,x alternative.
12524 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
12525 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
12526 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
12527 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
12528 for V8SFmode.
12529 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
12530 if possible, handle also V8SFmode.
12531
1987d213 125322012-03-20 Richard Earnshaw <rearnsha@arm.com>
12533
12534 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
12535 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
12536 reg_or_zero_operand predicate.
12537 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
12538
17113bf6 125392012-03-20 Jakub Jelinek <jakub@redhat.com>
12540
12541 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
12542 If operand isn't UNSPEC, return 0.
12543
1dd4980f 125442012-03-20 Richard Guenther <rguenther@suse.de>
12545
12546 * tree-pass.h (pass_rtl_eh): Remove.
12547 * except.c (gate_handle_eh): Likewise.
12548 (rest_of_handle_eh): Likewise.
12549 (pass_rtl_eh): Likewise.
12550 (finish_eh_generation): Export.
12551 * except.h (finish_eh_generation): Declare.
12552 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
12553 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
12554 after expanding stack alignment. Instead of compacting blocks
12555 call cleanup_cfg.
12556
fa42e1a4 125572012-03-20 Richard Guenther <rguenther@suse.de>
12558
12559 * stor-layout.c (finish_bitfield_representative): Fallback
12560 to conservative maximum size if the padding up to the next
12561 field cannot be computed as a constant.
12562 (finish_bitfield_layout): If we cannot compute the distance
12563 between the start of the bitfield representative and the
12564 bitfield member start a new representative.
12565 * expr.c (get_bit_range): The distance between the start of
12566 the bitfield representative and the bitfield member is zero
12567 if the field offsets are not constants.
12568
748e5d45 125692012-03-20 Tristan Gingold <gingold@adacore.com>
12570
12571 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
12572 convert in lowercase.
12573 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
12574 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
12575 * stor-layout.c (sizetype_tab): Adjust.
12576 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
12577 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
12578 instead of type_kind_last.
12579 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
12580 instead of size_int_kind.
12581 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
12582 * doc/tm.texi: Regenerate.
12583 * defaults.h (SIZETYPE): Provide a default value.
12584 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
12585 (SIZETYPE): Define.
12586
a0554dde 125872012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
12588
12589 * config/sh/sh.md: Use braced string notation where applicable.
12590
ee1d2eea 125912012-03-19 Uros Bizjak <ubizjak@gmail.com>
12592
12593 * config/i386/i386.md (allocate_stack): Simplify.
12594
99182918 125952012-03-19 Uros Bizjak <ubizjak@gmail.com>
12596
12597 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
12598 copy_to_mode_reg (Pmode, ...).
12599 (expand_builtin_frame_address): Ditto.
12600 * expr.c (emit_block_move_via_libcall): Ditto.
12601 (set_storage_via_libcall): Ditto.
12602
12603 * config/i386/i386.c (ix86_expand_movmem): Ditto.
12604 (ix86_expand_setmem): Ditto.
12605 (ix86_trampoline_init): DItto.
12606 * config/i386/i386.md (cmpstrnsi): Ditto.
99182918 12607
11e875c9 126082012-03-19 Sandra Loosemore <sandra@codesourcery.com>
12609
12610 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
12611 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
12612 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
12613 (SH Options): Likewise.
12614
0a722f4b 126152012-03-19 Uros Bizjak <ubizjak@gmail.com>
12616
12617 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
12618 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
12619 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
12620 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
12621 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
12622
12623 Revert:
12624 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
12625
12626 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
12627 * config/i386/i386.c (ix86_decompose_address): Use
12628 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
12629 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
12630 thread pointer to a register.
12631
12632 Revert:
12633 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
12634
12635 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
12636 if Pmode != word_mode.
12637 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
12638 Pmode == SImode for TARGET_X32.
12639
12640 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
12641 (tls_initial_exec_x32): Likewise.
12642
89cace00 126432012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
12644
12645 PR target/50751
12646 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
12647 DISP_ADDR_OFFSET): New macros.
12648 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
12649 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
12650 (sh_legitimize_address): Add QImode displacement handling.
0a722f4b 12651 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
89cace00 12652 vector subregs.
12653 (sh_secondary_reload): Add QImode displacement handling.
12654 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
5efe717c 12655 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
12656 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
12657 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
12658 to register operands only.
12659 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
12660 (extendqihi2): Change insn to expander.
12661 (*extendqihi2_compact_reg): New insn.
12662 (movqi_i, movqi): Replace with ...
12663 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
12664 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
12665 Add new peepholes for QImode displacement addressing.
89cace00 12666
62206d34 126672012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
12668
12669 PR c++/14710
12670 * doc/invoke.texi: Document -Wuseless-cast.
12671
c165a033 126722012-03-19 Eric Botcazou <ebotcazou@adacore.com>
12673
12674 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
12675 * tree.h (handled_component_p): Reorder cases.
12676 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
12677 not initialize unsignedp.
12678 (loc_list_from_tree): Likewise.
12679 (fortran_common): Likewise.
12680 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
12681
a8b2b958 126822012-03-19 Uros Bizjak <ubizjak@gmail.com>
12683
12684 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
12685 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
12686 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
12687 (ix86_split_long_move): Ditto.
12688 (legitimize_tls_address): Use ix86_gen_sub3.
12689 (construct_plt_address): Assert that Pmode == DImode.
12690
abd4f58b 126912012-03-18 Uros Bizjak <ubizjak@gmail.com>
12692
12693 * config/i386/i386.md: Remove empty predicates and/or constraints.
12694 * config/i386/sync.md: Ditto.
12695 * config/i386/sse.md: Ditto.
12696 * config/i386/mmx.md: Ditto.
12697 * config/i386/pentium.md: Ditto.
12698 * config/i386/athlon.md: Ditto.
12699
08f83b65 127002012-03-16 Richard Guenther <rguenther@suse.de>
12701
12702 PR tree-optimization/52603
12703 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
12704 comment.
12705
12706 Revert
12707 2012-03-14 Richard Guenther <rguenther@suse.de>
12708
12709 PR tree-optimization/52571
12710 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
12711 flag_section_anchors check ...
12712 (vect_can_force_dr_alignment_p): ... here.
12713
e2c56221 127142012-03-16 Martin Jambor <mjambor@suse.cz>
12715
c165a033 12716 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
e2c56221 12717 memory through MEM_REFs by calling extract_bit_field.
12718
7e5db579 127192012-03-16 Richard Guenther <rguenther@suse.de>
12720
12721 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
12722 and REFERENCE_TYPE interpretations.
12723 (can_native_interpret_type_p): New function.
12724 (fold_ternary_loc): Use native encode/interpret to fold
12725 BIT_FIELD_REFs of constants.
12726
ae37ffaf 127272012-03-16 Richard Guenther <rguenther@suse.de>
12728
12729 PR middle-end/52584
12730 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
12731 of vector constants and constructors.
12732
ace64c06 127332012-03-16 Richard Guenther <rguenther@suse.de>
12734
12735 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
12736 VIEW_CONVERT_EXPR to convert constants.
12737 (vect_is_simple_use): Treat all constants as vec_constant_def.
12738
32b227eb 127392012-03-16 Richard Guenther <rguenther@suse.de>
abd4f58b 12740 Kai Tietz <ktietz@redhat.com>
32b227eb 12741
12742 PR middle-end/48814
12743 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
12744 side-effects completely in the pre-queue and use a temporary
12745 for the result.
12746
75188dc6 127472012-03-16 Richard Guenther <rguenther@suse.de>
12748
12749 * stor-layout.c (finish_bitfield_representative): Fall back
12750 to the conservative maximum size if we cannot compute the
12751 size of the tail padding.
12752
91976c6c 127532012-03-16 Tristan Gingold <gingold@adacore.com>
12754
12755 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
12756 __CRTL_VER and __VMS_VER.
12757 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
12758 and vms_c_get_vms_ver.
12759 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
12760 functions.
12761 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
12762 (VMS_DEFAULT_VMS_VER): Define.
12763 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
12764 (VMS_DEFAULT_VMS_VER): Define.
12765
3e299f5d 127662012-03-16 Richard Guenther <rguenther@suse.de>
12767
12768 * tree-vect-loop.c (get_initial_def_for_induction): Use
12769 build_constructor directly.
12770 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
12771 build_vector_from_val.
12772 * tree.c (build_vector_from_val): Avoid creating a constructor
12773 first when we want a constant vector.
12774
f3e265d7 127752012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12776
12777 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
12778
fadf62f4 127792012-03-16 Richard Guenther <rguenther@suse.de>
12780
12781 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
12782 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
12783 (struct tree_vector): Remove elements member, add variable size
12784 elts array member.
12785 (build_vector_stat): Declare.
12786 (build_vector): Define in terms of build_vector_stat.
12787 * tree.c (build_vector): Rename to ...
12788 (build_vector_stat): ... this. Take array of trees as parameter.
12789 (build_vector_from_ctor): Adjust.
12790 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
12791 initializer_zerop): Adjust.
12792 * cfgexpand.c (expand_debug_expr): Likewise.
12793 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
12794 const_vector_from_tree): Likewise.
12795 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
12796 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
12797 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
12798 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
12799 (lto_input_ts_vector_tree_pointers): Adjust.
12800 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
12801 (write_ts_vector_tree_pointers): Adjust.
12802 * varasm.c (const_hash_1, compare_constant, copy_constant,
12803 output_constant): Adjust.
12804 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
12805 * print-tree.c (print_node): Adjust.
12806 * tree-pretty-print.c (dump_generic_node): Adjust.
12807 * tree-vect-generic.c (uniform_vector_p, vector_element,
12808 lower_vec_perm): Adjust.
12809 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
12810 * tree-vect-slp.c (vect_get_constant_vectors,
12811 vect_transform_slp_perm_load): Adjust.
12812 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
12813 * expmed.c (make_tree): Adjust.
12814 * config/i386/i386.c (ix86_expand_builtin): Adjust.
12815 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
12816 and implementation.
12817 (sparc_fold_builtin): Adjust.
12818
e55b581d 128192012-03-16 Tristan Gingold <gingold@adacore.com>
12820
12821 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
12822 * config/vms/vms-stdint.h: New file.
12823
240f6bb5 128242012-03-16 Tristan Gingold <gingold@adacore.com>
12825
12826 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
12827 (ia64-hp-*vms*): Replaced by ...
12828 (*-*-*vms*): ... This new entry.
12829
e0c9db9b 128302012-03-15 Jakub Jelinek <jakub@redhat.com>
12831
6a8ad139 12832 PR target/52568
abd4f58b 12833 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
6a8ad139 12834 (ix86_expand_vec_perm_const_1): Use it.
12835
e0c9db9b 12836 PR target/52568
12837 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
12838 (avx2_permv4df): Remove.
12839 (avx2_permv4di): Macroize into...
12840 (avx2_perm<mode>): ... this using VI8F_256 iterator.
12841 (avx2_permv4di_1): Macroize into...
12842 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
12843
2ef72921 128442012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
12845
12846 * combine.c (apply_distributive_law): Do not distribute SUBREG.
12847
087903db 128482012-03-15 Ira Rosen <irar@il.ibm.com>
12849 Ulrich Weigand <ulrich.weigand@linaro.org>
12850
12851 * tree-vect-patterns.c (widened_name_p): Rename to ...
12852 (type_conversion_p): ... this. Add new argument to determine
12853 if it's a promotion or demotion operation. Check for
12854 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
12855 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
12856 widened_name_p.
12857 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
12858 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
12859 Likewise.
12860 (vect_recog_mixed_size_cond_pattern): Likewise and allow
12861 non-constant then and else clauses.
12862
4c0c783a 128632012-03-15 Ira Rosen <irar@il.ibm.com>
12864 Ulrich Weigand <ulrich.weigand@linaro.org>
12865
12866 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
12867 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
12868 vect_pattern_recog.
12869 * tree-vect-patterns.c (widened_name_p): Pass basic block
12870 info to vect_is_simple_use.
12871 (vect_recog_dot_prod_pattern): Fail for basic blocks.
12872 (vect_recog_widen_sum_pattern): Likewise.
12873 (vect_handle_widen_op_by_const): Support basic blocks.
12874 (vect_operation_fits_smaller_type,
12875 vect_recog_over_widening_pattern): Likewise.
12876 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
12877 Update call to vect_is_simple_use.
12878 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
12879 Add printing.
12880 (check_bool_pattern): Add an argument, update call to
12881 vect_is_simple_use and the recursive calls.
12882 (vect_recog_bool_pattern): Update relevant function calls.
12883 Add printing.
12884 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
12885 (vect_pattern_recog_1): Check for reduction only in loops.
12886 (vect_pattern_recog): Add new argument. Support basic blocks.
12887 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
12888 info to vect_is_simple_use_1.
a25bf392 12889 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
4c0c783a 12890 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
12891
e951f9a4 128922012-03-15 Jakub Jelinek <jakub@redhat.com>
12893 Andrew Pinski <apinski@cavium.com>
12894
12895 PR middle-end/52592
12896 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
12897 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
12898 calls instead of __builtin_ir{int,ound}*.
12899
ce1d2364 129002012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12901
12902 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
12903 documentation.
12904
bd29e244 129052012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4eb5a747 12906
12907 * config.gcc (target_type_format_char): New. Document it. Set it for
ce1d2364 12908 arm*-*-* .
abd4f58b 12909 * configure.ac (gnu_unique_option): Use target_type_format_char
12910 in test. Comment rationale.
4eb5a747 12911 * configure: Regenerate .
12912
7139adf8 129132012-03-15 Jakub Jelinek <jakub@redhat.com>
12914
12915 PR tree-optimization/52267
12916 * tree-vrp.c (masked_increment): New function.
12917 (register_edge_assert_for_2): Derive ASSERT_EXPRs
12918 from (X & CST1) cmp CST2 tests.
12919
2ecb06bc 129202012-03-15 Richard Guenther <rguenther@suse.de>
12921
12922 PR middle-end/52580
12923 * tree-data-ref.c (subscript_dependence_tester_1): Check
12924 all dimensions for non-conflicting access functions.
12925
249faa35 129262012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
12927
12928 PR c++/44783
12929 * doc/invoke.texi [C++ Language Options]: Document
12930 -ftemplate-backtrace-limit.
12931
dd8e8868 129322012-03-15 Tristan Gingold <gingold@adacore.com>
12933
12934 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
12935 before a parameter.
12936
9e8ac19d 129372012-03-15 Tristan Gingold <gingold@adacore.com>
12938
12939 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
12940 use DW_OP_call_frame_cfa.
12941
676fcf5f 129422012-03-14 H.J. Lu <hongjiu.lu@intel.com>
12943
12944 PR target/50797
12945 * config/i386/i386-opts.h (pmode): New.
12946
12947 * config/i386/i386.c (ix86_option_override_internal): Properly
12948 check and set ix86_pmode.
12949
a25bf392 12950 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
676fcf5f 12951
12952 * config/i386/i386.opt (maddress-mode=): New.
12953
12954 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
12955
c9185637 129562012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12957
12958 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
12959 (dwarf2out_do_cfi_asm): Likewise.
12960 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
12961 handling.
12962 (add_data_member_location_attribute): Likewise.
12963 (gen_array_type_die): Likewise.
12964 (gen_subprogram_die): Likewise.
12965 (gen_producer_string): Likewise.
12966 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
12967 Remove MIPS_DEBUGGING_INFO handling.
12968 (sdb_debug_hooks): Likewise.
12969 (sdbout_begin_block): Likewise.
12970 (sdbout_end_block): Likewise.
12971 (sdbout_begin_prologue): Likewise.
12972 (sdbout_start_source_file): Likewise.
12973 (sdbout_end_source_file): Likewise.
12974 (sdbout_init): Likewise.
12975 * system.h (MIPS_DEBUGGING_INFO): Poison.
12976
48a5030b 129772012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12978
12979 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
12980 (alpha_file_start) [MS_STAMP]: Remove.
12981
12982 * config/alpha/elf.h (TARGET_GAS): Remove.
12983 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
12984 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
12985 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
12986 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
12987 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
12988 (alpha*-*-freebsd*): Likewise.
12989 (alpha*-*-netbsd*): Likewise.
12990 (alpha*-*-openbsd*): Likewise.
12991 (alpha*-*-*): Remove target_cpu_default2.
12992 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
12993 handling.
12994 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
12995 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
12996 * config/alpha/alpha.c (print_operand): Always assume
12997 TARGET_AS_SLASH_BEFORE_SUFFIX.
12998 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
12999 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
13000 ("*builtin_setjmp_receiver_er_1"): Remove.
13001 * config/alpha/alpha.opt (malpha-as): Remove.
13002 (mgas): Ignore.
13003 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
13004 -malpha-as, -mgas.
13005 Remove DEC Unix reference.
13006
13007 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
13008 (EXTENDED_COFF): Remove.
13009 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
13010 (EXTENDED_COFF): Don't undef.
13011 * config/alpha/alpha.c (alpha_file_start): Always assume
13012 OBJECT_FORMAT_ELF.
13013 Don't set targetm.asm_file_start_file_directive.
13014 [!OBJECT_FORMAT_ELF]: Remove.
13015 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
13016
13017 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
13018 (DBX_DEBUGGING_INFO): Remove.
13019 (MIPS_DEBUGGING_INFO): Remove.
13020 (PREFERRED_DEBUGGING_TYPE): Remove.
13021 (DBX_OUTPUT_SOURCE_LINE): Remove.
13022 (SDB_OUTPUT_SOURCE_LINE): Remove.
13023 (DBX_CONTIN_LENGTH): Remove.
13024 (NO_DBX_FUNCTION_END): Remove.
13025 (ASM_STABS_OP): Remove.
13026 (ASM_STABN_OP): Remove.
13027 (ASM_STABD_OP): Remove.
13028 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
13029 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
13030 (PUT_SDB_DEF): Remove.
13031 (PUT_SDB_PLAIN_DEF): Remove.
13032 (PUT_SDB_TYPE): Remove.
13033 (sdb_label_count): Remove.
13034 (PUT_SDB_BLOCK_START): Remove.
13035 (PUT_SDB_BLOCK_END): Remove.
13036 (PUT_SDB_FUNCTION_START): Remove.
13037 (PUT_SDB_FUNCTION_END): Remove.
13038 (PUT_SDB_EPILOGUE_END): Remove.
13039 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
13040 (MIPS_DEBUGGING_INFO): Don't undef.
13041 (DBX_DEBUGGING_INFO): Don't undef.
13042 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
13043 (MIPS_DEBUGGING_INFO): Don't undef.
13044 (DBX_DEBUGGING_INFO): Don't undef.
13045 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
13046 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
13047 handling.
13048 (alpha_start_function): Likewise.
13049 (sdb_label_count): Remove.
13050 (alpha_output_filename): Remove DBX_DEBUG handling.
13051 (alpha_file_start): Likewise.
13052
264a5d11 130532012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13054
13055 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
13056 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
13057 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
13058 Solaris 8 support.
13059 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
13060 (ld_tls_support): Remove Solaris 8 references.
13061 (lwp_dir, lwp_spec): Remove support for alternate thread library.
abd4f58b 13062 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
264a5d11 13063 * configure: Regenerate.
13064 * config.in: Regenerate.
13065
13066 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
13067 * config/i386/sol2.h: Remove Solaris 8 references.
13068
13069 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
13070 (i?86-*-solaris2.9): ... this.
13071 Remove Solaris 8 references.
13072 (Specific, *-*-solaris2*): Document Solaris 8 removal.
13073 Remove Solaris 8 references.
13074
5641963c 130752012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13076
13077 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
13078 (mips-sgi-irix6.5*): Remove.
13079 * config.host (mips-sgi-irix*): Remove.
13080 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
13081 (set_have_as_tls): Remove *-*-irix6*.
13082 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
13083 * configure: Regenerate.
13084
13085 * config/mips/iris6.h: Remove.
13086 * config/mips/iris6.opt: Remove.
13087 * config/mips/t-irix6: Remove.
13088
13089 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
13090 (TARGET_IRIX6): Remove.
13091 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
13092 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
13093 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
13094 handling.
13095 (mips_file_start): Likewise.
13096 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
13097
13098 * config/mips/driver-native.c [__sgi__]: Remove.
13099 (host_detect_local_cpu) [__sgi__]: Remove.
13100
13101 * config/mips/gnu-user.h: Remove iris5.h reference.
13102
13103 * config/mips/mips-modes.def: Remove IRIX 6 reference.
13104 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
13105 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
13106 Remove.
13107
13108 * gcc.c (main): Move asm_debug initialization ...
13109 (asm_debug): ... here.
13110
13111 * ginclude/stddef.h (__STDDEF_H__): Don't define.
13112
13113 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
13114 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
13115 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
13116 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
13117 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
13118 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
13119 Remove.
13120 * doc/tm.texi: Regenerate.
13121
13122 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
13123 IRIX 6 reference.
13124 (MIPS Options, -march): Remove IRIX reference.
13125 * doc/install.texi (Binaries, SGI IRIX): Remove.
13126 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
13127 of section.
13128 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
13129
884b03c9 131302012-03-14 Martin Jambor <mjambor@suse.cz>
13131
13132 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
abd4f58b 13133 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
884b03c9 13134 (expand_expr_real_1): Do not handle misalignment if modifier is
13135 EXPAND_WRITE.
13136
f1690ec2 131372012-03-14 Richard Guenther <rguenther@suse.de>
13138
13139 PR middle-end/52584
13140 * tree-vect-generic.c (type_for_widest_vector_mode): Take
13141 element type instead of mode, use build_vector_type_for_mode
13142 instead of the langhook, build a vector of proper signedness.
13143 (expand_vector_operations_1): Adjust.
13144
e25d4891 131452012-03-14 Richard Guenther <rguenther@suse.de>
13146
13147 PR middle-end/52582
abd4f58b 13148 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
13149 a cgraph node for a FUNCTION_DECL that comes from a constructor.
e25d4891 13150 (gimple_get_virt_method_for_binfo): Likewise.
13151
1f0f7e1e 131522012-03-14 Richard Guenther <rguenther@suse.de>
13153
13154 PR tree-optimization/52571
13155 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
13156 flag_section_anchors check ...
13157 (vect_can_force_dr_alignment_p): ... here. Do not re-align
13158 DECL_COMMON variables.
13159
8d8a34f9 131602012-03-14 Richard Guenther <rguenther@suse.de>
13161
13162 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
13163 * stor-layout.c (start_bitfield_representative): New function.
13164 (finish_bitfield_representative): Likewise.
13165 (finish_bitfield_layout): Likewise.
13166 (finish_record_layout): Call finish_bitfield_layout.
13167 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
13168 for QUAL_UNION_TYPE fields.
13169 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
13170 Stream DECL_BIT_FIELD_REPRESENTATIVE.
13171 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
13172
13173 PR middle-end/52080
13174 PR middle-end/52097
13175 PR middle-end/48124
13176 * expr.c (get_bit_range): Unconditionally extract bitrange
13177 from DECL_BIT_FIELD_REPRESENTATIVE.
13178 (expand_assignment): Adjust call to get_bit_range.
13179
a6476f88 131802012-03-14 Richard Guenther <rguenther@suse.de>
13181
13182 PR middle-end/52578
13183 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
13184 the outermost conversion is a sign-change only.
13185 (fold_binary_loc): Disregard widening and sign-changing
13186 conversions when we determine if two variables are equal
13187 for reassociation.
13188 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
13189 (T1)x if the outermost conversion is a sign-change only.
13190
6281b3df 131912012-03-14 Uros Bizjak <ubizjak@gmail.com>
13192
13193 Revert:
13194 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
13195
13196 * config/i386/predicates.md (constant_call_address_operand): Declare
13197 as special predicate. Update all uses.
13198
666649ed 131992012-03-13 Jakub Jelinek <jakub@redhat.com>
13200
e739f10c 13201 PR c/52577
13202 * c-parser.c (c_parser_postfix_expression)
13203 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
13204
666649ed 13205 * config/i386/smmintrin.h: Avoid /* within a comment.
13206 * config/i386/nmmintrin.h: Likewise.
13207
b6833dc9 132082012-03-13 Uros Bizjak <ubizjak@gmail.com>
13209
13210 * config/i386/i386.md (xbegin): Remove constraint from expander.
13211
182c3534 132122012-03-13 Uros Bizjak <ubizjak@gmail.com>
13213
13214 * config/i386/predicates.md (constant_call_address_operand): Declare
13215 as special predicate. Update all uses.
13216 * config/i386/i386.md: Remove mode from constant_call_address_operand
13217 predicates.
13218 * config/i386/i386.c (ix86_output_call_insn): Call
13219 constant_call_address_operand with VOIDmode.
13220
0f844e09 132212012-03-13 Uros Bizjak <ubizjak@gmail.com>
13222
13223 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
13224 AND zero extended address correctly.
13225
6a755243 132262012-03-13 Uros Bizjak <ubizjak@gmail.com>
13227
13228 * config/i386/predicates.md (tls_symbolic_operand): Declare as
13229 special predicate.
13230 (tls_modbase_operand): Ditto.
13231 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
13232 tls_modbase_operand predicates.
13233
55e42d78 132342012-03-13 Martin Jambor <mjambor@suse.cz>
13235
13236 * expr.c (expand_assignment): Handle misaligned scalar writes to
13237 memory through top-level MEM_REFs by calling store_bit_field.
13238
7af97aed 132392012-03-13 Richard Guenther <rguenther@suse.de>
13240
13241 PR middle-end/52134
13242 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
13243 if Y is a constant multiple of 1 << CST.
13244
21467ee6 132452012-03-13 Georg-Johann Lay <avr@gjlay.de>
13246
13247 PR target/52488
13248 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
13249 offset (size) to a value the insns can deal with.
13250 (expand_epilogue): Ditto.
13251
fa89c18d 132522012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
13253
13254 * config/arm/neon.ml (ops): Fixup expected instructions for
13255 unsigned vector compares.
13256
1da1898e 132572012-03-13 Uros Bizjak <ubizjak@gmail.com>
13258
13259 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
13260 addresses only when %reg is not in word mode.
13261
c2c4377d 132622012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13263
13264 * config/microblaze/microblaze.md: Fix typo.
13265 * tree-if-conv.c: Likewise.
13266 * tree-vect-patterns.c: Likewise.
13267
7151decb 132682012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13269
13270 * config.gcc (extra_passes): Remove.
13271 * configure.ac (extra_passes): Don't substitute.
13272 * configure: Regenerate.
13273 * Makefile.in (EXTRA_PASSES): Remove.
13274 (GCC_PASSES): Remove $(EXTRA_PASSES).
13275 (MOSTLYCLEANFILES): Likewise.
13276 (native): Likewise.
13277 (install-common): Likewise.
13278
b966bb5f 132792012-03-13 Uros Bizjak <ubizjak@gmail.com>
13280
13281 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
13282 * config/i386/i386.c (ix86_decompose_address): Use
13283 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
13284 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
13285 thread pointer to a register.
13286
f500db2a 132872012-03-12 H.J. Lu <hongjiu.lu@intel.com>
13288
13289 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
13290 on tls_symbolic_operand.
13291 (tls_global_dynamic_64_<mode>): Likewise.
13292
0c8f5ee5 132932012-03-12 Georg-Johann Lay <avr@gjlay.de>
13294
13295 PR other/52545
13296 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
13297 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
13298
63477dcc 132992012-03-12 Georg-Johann Lay <avr@gjlay.de>
13300
13301 PR target/52499
13302 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
13303 type from reg_class_t to enum reg_class.
13304 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
13305
c3597b05 133062012-03-12 Andrew Pinski <apinski@cavium.com>
13307
13308 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
13309 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
13310 (value_replacement): Likewise.
13311 (empty_block_p): Check also if the PHIs for the block are empty.
13312
6bdcc5e4 133132012-03-12 Georg-Johann Lay <avr@gjlay.de>
13314
13315 PR target/52148
13316 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
13317 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
13318 r184615 from 2012-02-28.
13319
63e90859 133202012-03-12 H.J. Lu <hongjiu.lu@intel.com>
13321
13322 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
13323 (ix86_gen_tls_local_dynamic_base_64): Likewise.
13324 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
13325 and ix86_gen_tls_local_dynamic_base_64.
13326 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
13327 ix86_gen_tls_local_dynamic_base_64.
13328
13329 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
13330 (*tls_global_dynamic_64_<mode>): This.
13331 (tls_global_dynamic_64): Renamed to ...
13332 (tls_global_dynamic_64_<mode>): This.
13333 (*tls_local_dynamic_base_64): Renamed to ...
13334 (*tls_local_dynamic_base_64_<mode>): This.
13335 (tls_local_dynamic_base_64): Renamed to ...
13336 (tls_local_dynamic_base_64_<mode>): This.
13337
bf0a02ba 133382012-03-12 H.J. Lu <hongjiu.lu@intel.com>
13339
13340 * config/i386/i386.c (ix86_option_override_internal): Properly
13341 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
13342 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
abd4f58b 13343 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
13344 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
bf0a02ba 13345
13346 * config/i386/sse.md (sse3_monitor64): Renamed to ...
13347 (sse3_monitor64_<mode>): This.
13348
6b6253f2 133492012-03-12 Tristan Gingold <gingold@adacore.com>
13350
13351 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
13352 (ia64_function_arg_advance): Ditto.
13353
1f7e141e 133542012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13355
13356 * config.gcc (mips*-*-openbsd*): Remove.
13357 * config/mips/openbsd.h: Remove.
13358 * config/mips/sdb.h: Remove.
13359
13360 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
13361 * config/mips/mips.c (sdb_label_count): Remove.
13362 (mips_debugger_offset): Remove #if 0 code.
13363 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
13364 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
13365
1647539e 133662012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13367
13368 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
13369 binutils reference.
13370 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
13371 Update binutils references.
13372 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
13373 Update binutils reference.
13374 Update Sun as/GNU ld caveat.
13375 Document binutils largefile requirement for LTO plugin.
6776c1f3 13376 Remove reference to alternate libpthread.
1647539e 13377
126b6848 133782012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13379
13380 * config.gcc (alpha*-dec-osf5.1*): Remove.
13381 * config.host (alpha*-dec-osf*): Remove.
13382 * configure.ac (*-*-osf*): Remove.
13383 (alpha*-dec-osf*): Remove.
13384 * configure: Regenerate.
13385
abd4f58b 13386 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
13387 config/alpha/va_list.h, config/alpha/x-osf: Remove.
126b6848 13388
13389 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
13390 * config/alpha/alpha.c (struct machine_function): Update comment.
13391 (alpha_start_function): Remove Tru64 UNIX as handling for
13392 max_frame_size.
13393 * config/alpha/alpha.md ("exception_receiver"): Remove
13394 TARGET_LD_BUGGY_LDGP.
13395 ("*exception_receiver_2"): Likewise.
13396 * except.c (finish_eh_generation): Remove Tru64 reference.
13397 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
13398 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
13399 * target.def (handle_pragma_extern_prefix): Remove.
13400
13401 * Makefile.in (mips-tfile.o-warn): Remove.
13402 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
13403 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
13404 * mips-tdump.c, mips-tfile.c: Remove.
13405
13406 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
13407 extern_prefix.
13408 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
13409 (Specific, alpha*-dec-osf5.1): Note removal.
13410 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
13411 Remove.
13412 * doc/tm.texi: Regenerate.
13413 * doc/trouble.texi (Cross-Compiler Problems): Remove.
13414
969baf69 134152012-03-12 Richard Guenther <rguenther@suse.de>
13416
13417 * config/arm/arm.c (neon_dereference_pointer): Do not call
13418 covert during RTL expansion.
13419
cc48d234 134202012-03-12 Tristan Gingold <gingold@adacore.com>
13421
13422 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
13423 Options. Mention -mpointer-size.
13424
a51edb4c 134252012-03-12 Richard Guenther <rguenther@suse.de>
13426
13427 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
13428 build_nonstandard_integer_type.
13429
0177b1e3 134302012-03-12 Richard Guenther <rguenther@suse.de>
13431
13432 * tree.c (signed_or_unsigned_type_for): Use
13433 build_nonstandard_integer_type.
13434 (signed_type_for): Adjust documentation.
13435 (unsigned_type_for): Likewise.
13436 * tree-pretty-print.c (dump_generic_node): Use standard names
13437 for non-standard integer types if available.
13438
8f852c44 134392012-03-12 Tristan Gingold <gingold@adacore.com>
13440
13441 * config/vms/vms.opt: Add vms-opts.h header.
13442 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
13443 target mask.
13444 (-mvms-return-codes): Document.
13445 (-mpointer-size): New option.
13446 (vms_pointer_size): Add enumeration.
13447 * config/vms/vms-opts.h: New file.
13448 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
13449 __INITIAL_POINTER_SIZE.
13450 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
13451 (C_COMMON_OVERRIDE_OPTIONS): Define.
13452 (DWARF2_ADDR_SIZE): Define.
13453 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
13454 * config/vms/vms-protos.h (vms_c_common_override_options):
13455 New prototype.
13456 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
13457 if -mno-pointer-size.
13458 (vms_c_common_override_options): New function.
13459 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
13460 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
13461 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
13462 and flag_vms_pointer_size.
13463 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
13464 * config.gcc (*-*-*vms*): Define xm_file.
13465 (alpha*-dec-*vms*): Do not define xm_file.
13466 (alpha64-dec-*vms*): Remove.
13467 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
13468 and tmake_file.
13469
22676c8f 134702012-03-12 Jakub Jelinek <jakub@redhat.com>
13471
13472 PR tree-optimization/51721
13473 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
13474 if (int) unsvar cmp CST.
13475
7f23b9c0 134762012-03-12 Richard Guenther <rguenther@suse.de>
13477
abd4f58b 13478 * tree-sra.c (create_access_replacement): Only rename the replacement
13479 if we can rewrite it into SSA form. Properly mark register typed
13480 replacements that we cannot rewrite with TREE_ADDRESSABLE.
7f23b9c0 13481 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
13482 for aggregate or BLKmode results.
13483
6b48fd25 134842012-03-12 Jakub Jelinek <jakub@redhat.com>
13485
13486 PR tree-optimization/52533
13487 * tree-vrp.c (register_edge_assert_for_2): Use double_int
13488 type for mask, only handle shifts by non-zero in-range
13489 shift count, for LE_EXPR and GT_EXPR if new_val is
13490 maximum, don't add the assertion.
13491
bce88dc2 134922012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
13493
13494 * doc/invoke.texi: Document -mrtm option.
abd4f58b 13495 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
bce88dc2 13496 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
13497 (ix86_handle_option): Handle OPT_mrtm.
13498 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
13499 xtestintrin.h.
13500 (x86_64-*-*): Ditto.
13501 * i386-builtin-types.def (INT_FTYPE_VOID): New.
13502 * config/i386/i386-c.c (ix86_target_macros_internal): Define
13503 __RTM__ if needed.
13504 (ix86_target_string): Define -mrtm option.
13505 (PTA_RTM): New.
abd4f58b 13506 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
13507 Handle new option.
bce88dc2 13508 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
13509 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
13510 IX86_BUILTIN_XTEST.
13511 (bdesc_special_args): Ditto.
13512 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
13513 (ix86_expand_special_args_builtin): Handle new built-in type.
13514 (ix86_expand_builtin): Handle XABORT instruction.
13515 * config/i386/i386.h (TARGET_RTM): New.
13516 * config/i386/i386.md (UNSPECV_XBEGIN): New.
13517 (UNSPECV_XEND): Ditto.
13518 (UNSPECV_XABORT): Ditto.
13519 (UNSPECV_XTEST): Ditto.
13520 (xbegin): Ditto.
13521 (xbegin_1): Ditto.
13522 (xend): Ditto.
13523 (xabort): Ditto
13524 (xtest): Ditto.
13525 (xtest_1): Ditto.
13526 * config/i386/i386.opt (mrtm): New.
abd4f58b 13527 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
bce88dc2 13528 * config/i386/rtmintrin.h: New header.
13529 * config/i386/xtestintrin.h: Ditto.
13530
74a1e041 135312012-03-12 Tristan Gingold <gingold@adacore.com>
13532
abd4f58b 13533 * ginclude/stddef.h: Adjust previous patch.
13534 Use __VMS__ instead of VMS.
74a1e041 13535
c6f81084 135362012-03-12 Uros Bizjak <ubizjak@gmail.com>
13537
13538 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
13539 Also convert sequences with CC setting arithmetic instruction.
13540
3e5e110f 135412012-03-11 Sandra Loosemore <sandra@codesourcery.com>
13542
13543 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
13544 from C Language Options to Preprocessor Options.
13545 (C Dialect Options): Move -no-integrated-cpp documentation
13546 from here...
13547 (Preprocessor Options): ...to here. Rewrite the description
abd4f58b 13548 so it makes more sense, and remove discussion of merging front ends.
3e5e110f 13549
af423a9d 135502012-03-11 H.J. Lu <hongjiu.lu@intel.com>
13551
13552 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
13553 needed for loop.
13554 (ix86_expand_setmem): Likewise.
13555
c7def6ab 135562012-03-11 Uros Bizjak <ubizjak@gmail.com>
13557
13558 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
13559 convert_to_mode.
13560
9e8fad47 135612012-03-11 H.J. Lu <hongjiu.lu@intel.com>
13562
13563 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
13564 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
13565
48ca984b 135662012-03-11 H.J. Lu <hongjiu.lu@intel.com>
13567
c7def6ab 13568 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
48ca984b 13569
235d620e 135702012-03-11 H.J. Lu <hongjiu.lu@intel.com>
13571
13572 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
13573 TARGET_64BIT.
13574
7dd29a1c 135752012-03-11 H.J. Lu <hongjiu.lu@intel.com>
13576 Uros Bizjak <ubizjak@gmail.com>
c290746e 13577
7dd29a1c 13578 * config/i386/predicates.md (call_insn_operand): Allow
c290746e 13579 constant_call_address_operand in Pmode only.
13580 (sibcall_insn_operand): Ditto.
13581 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
13582 (*call_vzeroupper): Ditto.
13583 (*sibcall): Ditto.
13584 (*sibcall_vzeroupper): Ditto.
13585 (*call_value): Ditto.
13586 (*call_value_vzeroupper): Ditto.
13587 (*sibcall_value): Ditto.
13588 (*sibcall_value_vzeroupper): Ditto.
13589 (*indirect_jump): Ditto.
13590 (*tablejump_1): Ditto.
13591 (indirect_jump): Convert memory address to word mode for TARGET_X32.
13592 (tablejump): Ditto.
13593 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
13594 to word mode.
13595
bdd0e5dc 135962012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
13597
13598 PR target/51244
13599 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
13600 Use movrt_negc instead of negc pattern for non-SH2A.
13601 (*movnegt): Remove.
13602 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
13603
fe73ce46 136042012-03-10 H.J. Lu <hongjiu.lu@intel.com>
13605
13606 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
13607 if Pmode != word_mode.
13608 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
c290746e 13609 Pmode == SImode for TARGET_X32.
fe73ce46 13610
13611 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
13612 (tls_initial_exec_x32): Likewise.
13613
bd279947 136142012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
13615
13616 PR rtl-optimization/52528
13617 * combine.c (can_combine_p): Add setting of subst_low_luid
13618 before call to expand_field_assignment().
13619
3bbe8a1c 136202012-03-09 Sandra Loosemore <sandra@codesourcery.com>
13621
13622 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
13623 and related program names.
13624
4eb48a77 136252012-03-09 Sandra Loosemore <sandra@codesourcery.com>
13626
13627 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
13628
f9c68163 136292012-03-09 Uros Bizjak <ubizjak@gmail.com>
13630
13631 PR target/52530
13632 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
13633 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
13634 to set code to 'q'.
13635 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
13636 (*movdi_internal_rex64): Use %E operand modifier for lea.
13637 (*movsi_internal): Ditto.
13638 (*lea_1): Ditto.
13639 (*lea<mode>_2): Ditto.
13640 (*lea_{3,4,5,6}_zext): Ditto.
13641 (*tls_global_dynamic_32_gnu): Ditto.
13642 (*tls_global_dynamic_64): Ditto.
13643 (*tls_dynamic_gnu2_lea_32): Ditto.
13644 (*tls_dynamic_gnu2_lea_64): Ditto.
13645 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
13646
8a3c7c63 136472012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
13648
13649 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
13650 redefine to be NULL if the current bit-size is different from the
13651 configured bit-size.
13652
13653 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
13654 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
13655 set the default tuning. Add asserts to make sure the cpu and tune
13656 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
13657 test whether the index is set, instead of > 0.
13658 (rs6000_file_start): Do not reset the default cpu if the current
13659 bit-size is different from the configured bit-size.
13660
439392ee 136612012-03-09 Tristan Gingold <gingold@adacore.com>
13662
13663 * config/vms/vms-crtlmap.map: Add comments.
13664 Add entries needed to build Ada RTS.
13665
11a439a1 136662012-03-09 Tristan Gingold <gingold@adacore.com>
13667
13668 * ginclude/stddef.h: Do not define __size_t on VMS.
13669
7714837c 136702012-03-09 Tristan Gingold <gingold@adacore.com>
13671
13672 * c-tree.h (c_default_pointer_mode): New variable.
13673 * c-decl.c (c_default_pointer_mode): New variable.
13674 (c_build_pointer_type): New function.
13675 (grokdeclarator): Call c_build_pointer_type instead
13676 of build_pointer_type.
13677
13678 * config/vms/vms-c.c: Include c-tree.h
13679 (saved_pointer_mode): New variable.
13680 (handle_pragma_pointer_size): New function.
13681 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
13682 (vms_c_register_pragma): Register __pointer_size and
13683 __required_pointer_size pragmas.
13684
9368e60a 136852012-03-09 Tristan Gingold <gingold@adacore.com>
13686
13687 * config/vms/vms-c.c (vms_construct_include_filename): New function.
13688 (vms_c_register_includes): Reference it.
13689
fb9912ea 136902012-03-09 Andrew Pinski <apinski@cavium.com>
13691
13692 PR middle-end/51988
13693 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
13694 print_generic_expr.
13695 (tree_ssa_phiopt_worker): Go through all the PHIs for
13696 value_replacement instead of just the singleton one.
13697 (value_replacement): Change return type to int. Return 0 instead of
13698 false.
9368e60a 13699 Allow the middle basic block to contain more than just the defining
13700 statement.
fb9912ea 13701 Handle non empty middle basic blocks.
13702 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
13703
62bc06ea 137042012-03-09 Jiangning Liu <jiangning.liu@arm.com>
13705
13706 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
13707 array reference and component reference.
13708 (analyze_scalar_evolution_for_address_of): New.
13709
d0295369 137102012-03-08 Jie Zhang <jzhang918@gmail.com>
13711
13712 PR target/49862
f9c68163 13713 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
d0295369 13714 (hwloop_pattern_reg): Fix set but not used warning.
13715 (bfin_reorg_loops): Remove unused parameter.
13716 (bfin_reorg): Update use of bfin_reorg_loops.
13717
df901db8 137182012-03-08 H.J. Lu <hongjiu.lu@intel.com>
13719
13720 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
13721 with integer parameters in registers.
13722 (gen_push): Push register in word_mode instead of Pmode.
13723 (ix86_emit_save_regs): Likewise.
f9c68163 13724 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
df901db8 13725 (gen_pop): Pop register in word_mode instead of Pmode.
13726 (ix86_emit_restore_regs_using_pop): Likewise.
13727 (ix86_expand_prologue): Replace Pmode with word_mode for push
13728 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
13729 restore RAX and R10 in word_mode.
13730 (ix86_emit_restore_regs_using_mov): Restore integer registers
13731 in word_mode.
13732 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
13733 word_mode.
13734 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
13735 (ix86_split_long_move): Likewise.
13736
13737 * config/i386/i386.md (W): New.
13738 (*push<mode>2_prologue): Replace :P with :W.
13739 (*pop<mode>1): Likewise.
13740 (*pop<mode>1_epilogue): Likewise.
13741 (push/pop peephole2): Use word_mode scratch registers.
13742
dea4eea4 137432012-03-08 Uros Bizjak <ubizjak@gmail.com>
13744
13745 * config/i386/predicates.md (indirect_branch_operand): Simplify.
13746
1c66468a 137472012-03-08 Georg-Johann Lay <avr@gjlay.de>
13748
13749 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
13750 for constants in [-63,63].
13751
27c1fe3b 137522012-03-08 Uros Bizjak <ubizjak@gmail.com>
13753
13754 PR target/52530
13755 Revert:
13756 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
13757
13758 * config/i386/i386.c (ix86_print_operand_address): Only handle
13759 zero-extended DImode addresses.
13760
5f031e88 137612012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13762
13763 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
13764 * configure: Regenerate.
13765
5af5ea69 137662012-03-08 Georg-Johann Lay <avr@gjlay.de>
13767
13768 PR target/52496
13769 * config/avr/avr.c (avr_mem_clobber): New static function.
13770 (avr_expand_delay_cycles): Add memory clobber operand to
13771 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
13772 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
13773 (enable_interrupt, disable_interrupt): New expander.
13774 (nopv, sleep, wdr): New expanders.
13775 (delay_cycles_1): Add memory clobber.
13776 (delay_cycles_2): Add memory clobber.
13777 (delay_cycles_3): Add memory clobber.
13778 (delay_cycles_4): Add memory clobber.
13779 (cli_sei): New insn from former "enable_interrupt",
13780 "disable_interrupt" with memory clobber.
13781 (*wdt): New insn from former "wdt" with memory clobber.
13782 (*nopv): Similar, but for "nopv".
13783 (*sleep): Similar, but for "sleep".
13784
acf1cb58 137852012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
13786 Kaz Kojima <kkojima@gcc.gnu.org>
13787
13788 PR target/52503
13789 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
13790 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
13791 (SUBTARGET_OVERRIDE_OPTIONS): Define.
13792
79c51b65 137932012-03-07 Uros Bizjak <ubizjak@gmail.com>
13794
13795 * config/i386/predicates.md (x86_64_zext_general_operand): New.
13796 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
13797 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
13798
c6cfe48f 137992012-03-07 Walter Lee <walt@tilera.com>
13800
13801 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
13802 REG_CFA_* notes for the stack pointer.
13803 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
13804 EH_RETURN_STACKADJ_RTX.
13805 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
13806 generate REG_CFA_* notes for the stack pointer.
13807 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
13808 by EH_RETURN_STACKADJ_RTX.
13809
cf19911a 138102012-03-07 Georg-Johann Lay <avr@gjlay.de>
13811
13812 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
13813 when __AVR_3_BYTE_PC__ is defined.
13814
eff54bae 138152012-03-07 Uros Bizjak <ubizjak@gmail.com>
13816
13817 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
13818 (ix86_print_operand): Handle '^'.
13819 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
13820 using P mode iterator. Add %^ to asm template to conditionally emit
13821 addr32 prefix.
13822 (*rep_movdi_rex64): Ditto.
13823 (*strsetdi_rex_1): Ditto.
13824 (*rep_stosdi_rex64): Ditto.
13825 (*strmov{si,hi,qi}_1): Add %^ to asm template to
13826 conditionally emit addr32 prefix.
13827 (*rep_mov{si,qi}): Ditto.
13828 (*strset{si,hi,qi}): Ditto.
13829 (*rep_stos{si,qi}): Ditto.
13830 (*cmpstrnqi_nz_1): Ditto.
13831 (*cmpstrnqi_1): Ditto.
13832 (*strlenqi_1): Ditto.
13833
f8ae29a7 138342012-03-07 H.J. Lu <hongjiu.lu@intel.com>
13835
13836 * config/i386/i386.c (function_value_64): Return pointers in
13837 word_mode instead of Pmode.
13838 (ix86_promote_function_mode): Likewise.
13839
1b3c3119 138402012-03-07 Richard Guenther <rguenther@suse.de>
13841
13842 * coverage.c (get_gcov_type): Use type_for_mode.
13843 (get_gcov_unsigned_t): Likewise.
13844 * expr.c (store_constructor): Use type_for_mode.
13845 (try_casesi): Likewise.
eff54bae 13846 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
1b3c3119 13847 (add_standard_iv_candidates): Use standard type trees.
13848 * dojump.c (do_jump): Remove dead code.
13849
3c9b85aa 138502012-03-07 Richard Guenther <rguenther@suse.de>
13851
13852 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
13853
481e2176 138542012-03-07 Richard Guenther <rguenther@suse.de>
13855
13856 * convert.c (strip_float_extensions): Move ...
13857 * tree.c (strip_float_extensions): ... here.
13858
3f149cc9 138592012-03-07 Georg-Johann Lay <avr@gjlay.de>
13860
13861 PR target/52484
13862 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
13863
3cea8318 138642012-03-07 Richard Guenther <rguenther@suse.de>
13865
13866 * omp-low.c (extract_omp_for_data): Use signed_type_for.
13867 (expand_omp_for_generic): Likewise.
13868 (expand_omp_for_static_nochunk): Likewise.
13869 (expand_omp_for_static_chunk): Likewise.
13870 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
13871 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
13872 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
13873 Use unsigned_type_for.
13874 (vect_create_cond_for_align_checks): Use signed_type_for.
13875
ed726cbf 138762012-03-07 Andrey Belevantsev <abel@ispras.ru>
13877
13878 PR rtl-optimization/52203
13879 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
13880 all callers to pass NULL except ...
13881 (reset_sched_cycles_in_current_ebb): ... here, save the value
13882 in new variable 'empty'. Increase issue_rate only for
eff54bae 13883 non-empty insns.
ed726cbf 13884
3f9e8673 138852012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
13886
13887 PR target/51417
eff54bae 13888 * Makefile.in: Let install-gcc-ar depend on installdirs,
13889 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
3f9e8673 13890 Don't double canonicalize if cross-compiling.
13891
69a2907c 138922012-03-07 Georg-Johann Lay <avr@gjlay.de>
13893
13894 PR target/52506
13895 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
13896 to: RAMPZ, RAMPY, RAMPX, RAMPD.
13897 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
13898
ee3ce577 138992012-03-07 Georg-Johann Lay <avr@gjlay.de>
13900
13901 PR target/52505
13902 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
13903 from RAM.
13904 * config/avr/avr.md (xload_8): Adjust insn length.
13905
be20cbdd 139062012-03-07 Georg-Johann Lay <avr@gjlay.de>
13907
13908 PR target/52461
13909 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
13910 if RAMPZ affects reading from RAM.
13911
8b046cbb 139122012-03-07 Richard Guenther <rguenther@suse.de>
13913
13914 PR pch/52518
13915 PR pch/38987
13916 * doc/invoke.texi (Precompiled Headers): Remove sentence that
13917 suggests you can include PCHs from inside another header.
13918
9737dd95 139192012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
13920
13921 PR middle-end/52515
13922 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
13923
4bc312c5 139242012-03-07 Kai Tietz <ktietz@redhat.com>
13925
13926 * doc/invoke.texi (fwritable-relocated-rdata): Document
13927 new Cygwin/MinGW target option.
13928 * config/i386/winnt.c (i386_pe_unique_section): Ignore
13929 reloc if flag -fwritable-relocated-rdata is not set.
13930 (i386_pe_section_type_flags): Likewise.
13931 * config/i386/cygming.opt (fwritable-relocated-rdata):
13932 Add new flag variable flag_writable_rel_rdata.
13933
b36be69d 139342012-03-07 Richard Guenther <rguenther@suse.de>
13935
13936 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
13937 precision against gimple constraints.
13938
7d7b0bac 139392012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
13940
13941 PR middle-end/52372
13942 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
13943 variables.
13944 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
13945 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
13946 variables.
13947 (init_emit_regs): Move associated initialization to...
13948 (init_emit_once): ...here.
13949
943b78f0 139502012-03-06 Richard Henderson <rth@redhat.com>
13951
13952 * config/m68k/m68k.h (ISA_HAS_TAS): New.
13953 * config/m68k/sync.md (atomic_test_and_set): Use it.
13954 (atomic_test_and_set_1): Likewise.
13955
506056fd 139562012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
13957
13958 PR target/50310
13959 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
13960 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
13961 (vector_ltgt<mode>): Likewise.
13962 (vector_ordered<mode>): Likewise.
13963 (vector_unordered<mode>): Likewise.
eff54bae 13964 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
506056fd 13965
5ab54790 139662012-03-06 Aldy Hernandez <aldyh@redhat.com>
13967
13968 * trans-mem.c: New typedef for tm_region_p.
13969 Define vector types for tm_region_p.
13970 (tm_region_init): Replace region_worklist to a vector called
13971 bb_regions.
13972
06e80d0a 139732012-03-06 Richard Guenther <rguenther@suse.de>
13974
13975 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
13976 MEM_REF with constant pointer operand.
13977
80b4d93e 139782012-03-06 Richard Guenther <rguenther@suse.de>
13979
13980 PR middle-end/52493
13981 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
13982
abb4c37a 139832012-03-06 Tristan Gingold <gingold@adacore.com>
13984
eff54bae 13985 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
abb4c37a 13986 (external_model_kind): Improve documentation.
13987 (vms_pragma_extern_model): Handle relaxed_redef.
13988 (vms_c_register_pragma): Allow expansion for nomember_alignment.
13989
3c90c054 139902012-03-06 Georg-Johann Lay <avr@gjlay.de>
13991
13992 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
13993 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
13994 Some more notes on EIND usage and reorder EIND subsection.
13995
f3925bb3 139962012-03-06 Tristan Gingold <gingold@adacore.com>
13997
13998 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
13999 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
14000
46d35275 140012012-03-06 Tristan Gingold <gingold@adacore.com>
14002
14003 * config/vms/t-vmsnative (version): Define.
14004 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
14005
ef4cf572 140062012-03-06 Andrey Belevantsev <abel@ispras.ru>
14007
14008 PR rtl-optimization/52250
14009 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
14010 to put note list into. Unconditionally call move_bb_info.
14011 (move_bb_info): Do not assert the blocks being in the same region,
46d35275 14012 just drop the note list if they are not.
ef4cf572 14013
3c2ed158 140142012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
14015
14016 PR target/51244
14017 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
14018 and use unified expansion logic.
14019 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
14020 closer to the existing movt insn.
14021 (negc): Rename insn to *negc. Add new expander.
14022 (movnegt): Use xor pattern for T bit negation. Reserve helper
14023 constant for negc pattern.
14024 (*movnegt): New insn and splitter.
14025
555c3766 140262012-03-05 Bernd Schmidt <bernds@codesourcery.com>
14027
14028 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
14029 PLUS_EXPR.
14030
e374c627 140312012-03-05 Richard Henderson <rth@redhat.com>
14032
14033 * genemit.c (main): Include "target.h" in insn-emit.c.
14034 * Makefile.in (insn-emit.o): Depend on TARGET_H.
14035 * config/sh/sync.md (atomic_test_and_set): Reference
14036 targetm.atomic_test_and_set_trueval instead of
14037 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
14038
d00acb08 140392012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
14040
14041 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
14042 Make static.
14043
549aab72 140442012-03-05 Steven Bosscher <steven@gcc.gnu.org>
14045
14046 * langhooks.c (add_builtin_type): New function.
14047 * langhooks.h (add_builtin_type): Export it.
14048 * config/mep/mep.c (mep_init_builtins): Use it.
14049 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
14050
665611e7 140512012-03-05 Jakub Jelinek <jakub@redhat.com>
14052
14053 PR debug/51902
14054 * tree.h (BLOCK_SAME_RANGE): Define.
14055 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
14056 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
14057 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
14058 isn't equal to supercontext fragment's fragment chain.
14059 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
14060 fragment origin.
14061 (blocks_nreverse_all): Likewise.
14062 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
14063 BLOCK_SUPERCONTEXT to supercontext fragment instead of
14064 supercontext fragment's fragment origin.
14065 * dwarf2out.c (add_high_low_attributes): If stmt has the same
14066 range as its parent (or parents thereof etc.), use the parent's
14067 DW_AT_ranges value instead of creating a new .debug_ranges range.
14068
dcf7024c 140692012-03-05 Richard Henderson <rth@redhat.com>
14070
14071 PR tree-opt/52242
14072 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
14073 * omp-low.c (expand_omp_atomic): Assume anything aligned to
14074 BIGGEST_ALIGNMENT is aligned.
14075
940bb42d 140762012-03-05 Richard Henderson <rth@redhat.com>
14077
14078 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
14079 * config/sh/sh.c: ... here.
14080
ba884946 140812012-03-05 Richard Henderson <rth@redhat.com>
14082
14083 PR target/52481
14084 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
14085 instead of calling negqi2 directly.
14086
1dfa4f7f 140872012-03-05 Aldy Hernandez <aldyh@redhat.com>
14088
14089 PR middle-end/52463
14090 * trans-mem.c (tm_region_init): Use last_basic_block.
14091
631f95de 140922012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
14093
14094 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
14095 * config/sh/sync.md (atomic_test_and_set): New expander.
14096 (tasb, atomic_test_and_set_soft): New insns.
14097 * config/sh/sh.opt (menable-tas): New option.
14098 * doc/invoke.texi (SH Options): Document it.
14099
ef0e6535 141002012-03-05 Richard Guenther <rguenther@suse.de>
14101
14102 * cfgloop.c (verify_loop_structure): Verify dominators before
14103 using them.
14104 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
14105 dominators from here.
14106 * graphite-scop-detection.c (create_sese_edges): Likewise.
14107 * loop-doloop.c (doloop_optimize_loops): Likewise.
14108 * loop-init.c (loop_optimizer_init): Likewise.
14109 * loop-unroll.c (unroll_and_peel_loops): Likewise.
14110 * loop-unswitch.c (unswitch_loops): Likewise.
14111 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
14112 * tree-parloops.c (parallelize_loops): Likewise. Verify
14113 only when checking is enabled.
14114 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
14115
e9eae8c8 141162012-03-05 Bernd Schmidt <bernds@codesourcery.com>
14117
14118 * genautomata.c (parse_automata_opt): New static function.
14119 (initiate_automaton_gen): Remove all option handling code. Remove
14120 argc argument. All callers changed.
eff54bae 14121 (main): Call init_rtx_reader_args_cb with the new function as argument.
e9eae8c8 14122
821ac701 141232012-03-05 Richard Guenther <rguenther@suse.de>
14124
14125 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
14126 * tree-if-conv.c (combine_blocks): Free post-dominator info
14127 after breaking it.
14128 * tree-parloops.c (create_parallel_loop): Free and re-compute
14129 dominator info after breaking it.
14130
4c79581c 141312012-03-05 Richard Guenther <rguenther@suse.de>
14132
14133 PR middle-end/52353
14134 * optabs.h (trapv_unoptab_p): New function.
14135 (trapv_binoptab_p): Likewise.
14136 * optabs.c (expand_binop): Use emit_libcall_block_1 with
14137 a proper equiv_may_trap argument.
14138 (expand_unop): Likewise.
14139 (emit_libcall_block_1): Take extra argument whether the
14140 instruction may trap. Renamed from ...
14141 (emit_libcall_block): ... this. New wrapper.
14142
d4afc00c 141432012-03-05 Jakub Jelinek <jakub@redhat.com>
14144
98f00c5b 14145 PR tree-optimization/51721
14146 * tree-vrp.c (register_edge_assert_for_2): If comparing
14147 lhs of right shift by constant with an integer constant,
14148 add ASSERT_EXPRs for the rhs1 of the right shift.
14149
d4afc00c 14150 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
14151
9ee917f7 141522012-03-05 Richard Guenther <rguenther@suse.de>
14153
14154 * tree.c (integer_zerop): Handle VECTOR_CSTs.
14155 (integer_onep): Likewise.
14156 (integer_all_onesp): Likewise.
14157
c2e23f8a 141582012-03-05 Georg-Johann Lay <avr@gjlay.de>
14159
14160 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
14161
7cb32b9e 141622012-03-04 H.J. Lu <hongjiu.lu@intel.com>
14163
14164 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
14165 instead of TARGET_64BIT.
14166
9868cee1 141672012-03-04 H.J. Lu <hongjiu.lu@intel.com>
14168
14169 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
14170 adjust_stack_insn.
14171
a8ebae34 141722012-03-04 H.J. Lu <hongjiu.lu@intel.com>
14173
14174 * config/i386/i386.c (ix86_print_operand_address): Only handle
14175 zero-extended DImode addresses.
14176
8f4b480e 141772012-03-04 Uros Bizjak <ubizjak@gmail.com>
14178
14179 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
14180 taken and cputaken as bool.
14181
ad797097 141822012-03-04 Uros Bizjak <ubizjak@gmail.com>
14183
14184 * config/i386/constraints.md (Ya): New internal constraint.
14185 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
14186 (*zero_extendsidi2_rex64): Add x,x alternative.
14187 (*zero_extendsidi2): Ditto. Add o,0 alternative.
14188 Remove flags reg clobber. Adjust corresponding splits.
14189 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
14190 zero_extendqisi2 expanders using SWI12 mode iterator.
14191 (zero_extend<mode>si2_and): Macroize insn from
14192 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
14193 splitters.
14194 (*zero_extend<mode>si2): Macroize insn from
14195 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
14196 (*zero_extend*2_movzbl_and): Remove insn patterns.
14197 (zero_extendqihi2_and): Merge corresponding splitter.
14198 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
14199 (*zero_extend*2_movzbl_and): Remove insn patterns.
14200 (*anddi_1): Split TYPE_IMOVX instructions.
14201 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
14202 (*andhi_1): Ditto.
14203 (and->zext splitter): Add splitter pattern.
14204 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
14205
0989c0ee 142062012-03-04 Sandra Loosemore <sandra@codesourcery.com>
14207
14208 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
14209 x86-specific text.
14210 (Debugging Options): Likewise.
14211 (Optimize Options): Likewise.
14212 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
14213 with other architectures. Use official processor names with correct
14214 spelling/capitalization. Fix formatting and grammar issues.
14215 (i386 and x86-64 Windows Options): Similar cleanup here.
14216
0f4929a3 142172012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
14218
14219 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
14220
3d7c0741 142212012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
14222
14223 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
14224 DBX_REGISTER_NUMBER.
14225
ed739787 142262012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
14227
14228 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
14229 operand is CONST_INT. Take COSTS_N_INSNS into account.
14230 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
14231 of shiftcosts.
14232
75ee1af4 142332012-03-02 Richard Henderson <rth@redhat.com>
14234
14235 * optabs.c (expand_atomic_test_and_set): Honor
14236 atomic_test_and_set_trueval even when atomic_test_and_set
14237 optab is not in use.
14238
07732170 142392012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
14240
14241 PR target/48596
14242 PR target/48806
14243 * config/sh/sh.c (sh_register_move_cost): Increase cost between
14244 GENERAL_REGS and FP_REGS for SImode.
14245
428d0ab7 142462012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
14247
14248 PR target/49486
14249 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
14250 (absdi2): New expander.
14251 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
14252
52671251 142532012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
14254
882390bb 14255 * config/sh/sync.md (atomic_exchange<mode>): New expander.
14256 (atomic_exchange<mode>_soft): New insn.
14257
142582012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
14259
14260 * config/sh/sync.md: Update copyright notice dates.
52671251 14261 (atomic_compare_and_swap<mode>): Use SImode for return value instead
14262 of QImode.
882390bb 14263 (atomic_compare_and_swap<mode>_soft): Likewise.
52671251 14264
142652012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
ad797097 14266
164fbbdf 14267 PR target/31640
14268 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
14269 * config/sh/sh.c: Update copyright notice dates.
14270 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
14271 alignment for TARGET_HARD_SH4.
ad797097 14272 (sh_option_override): Reduce default function alignment. Set
164fbbdf 14273 loop alignment to 4 bytes when not optimizing for size.
14274
d094f1d6 142752012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
14276
fa2f697a 14277 PR middle-end/50335
d094f1d6 14278 * doc/invoke.texi (floop-flatten): Remove.
14279 * toplev.c (process_options): Remove references to flag_loop_flatten.
14280 * tree-ssa-loop.c (gate_graphite_transform): Same.
14281 * common.opt (floop-flatten): Obsolete.
14282 * graphite-poly.c (apply_poly_transforms): Remove reference to
14283 flag_loop_flatten.
14284 * Makefile.in (graphite-flattening.o): Remove.
14285 * graphite-flattening.c: Remove.
14286
ea6ad4ae 142872012-03-02 Uros Bizjak <ubizjak@gmail.com>
14288
14289 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
14290 having mode compatible with the mode of previous compare. Substitute
14291 compare mode of previous compare with the mode, compatible
14292 with eliminated and previous compare.
14293
b1addacc 142942012-03-02 Peter Bergner <bergner@vnet.ibm.com>
14295
14296 * config/rs6000/dfp.md (floatdidd2): New define_insn.
14297
01c12879 142982012-03-02 Uros Bizjak <ubizjak@gmail.com>
14299
14300 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
14301 compatible with CCGOCmode and CCGCmode.
14302
508c1626 143032012-03-02 Peter Bergner <bergner@vnet.ibm.com>
14304
14305 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
14306
b49e3742 143072012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
14308
14309 * config/arm/arm.c (arm_sat_operator_match): New function.
14310 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
14311 * config/arm/arm.md ("insn" attribute): Add "sat" value.
14312 ("SAT", "SATrev"): New code iterators.
14313 ("SATlo", "SAThi"): New code iterator attributes.
14314 ("*satsi_<SAT:code>"): New pattern.
14315 ("*satsi_<SAT:code>_shift"): Likewise.
14316 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
14317 and "shift" attributes.
14318 ("arm_usatsihi"): Add "insn" attribute.
14319 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
14320 by powers of two. Do not allow shift by 32.
14321
7103ce44 143222012-03-02 Uros Bizjak <ubizjak@gmail.com>
14323
14324 PR target/46716
14325 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
14326 to pass the argument in the register of "natural" mode.
14327
95539e1d 143282012-03-02 Richard Guenther <rguenther@suse.de>
14329
14330 PR tree-optimization/52406
14331 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
14332 (struct indices): Add unconstrained_base member.
14333 (struct dr_alias): Remove unused vops member.
14334 (DR_UNCONSTRAINED_BASE): New define.
14335 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
14336 add indices to allow their disambiguation. Make DR_BASE_OBJECT
14337 be an artificial access that covers the whole indexed object,
14338 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
14339 plain decl base-objects to their MEM_REF variant.
14340 (dr_may_alias_p): When the base-object of either data reference
14341 has unknown size use only points-to information.
14342 (compute_affine_dependence): Make dumps easier to read and
14343 more verbose.
14344 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
14345 DR_REF when looking for packed references.
14346 (vect_supportable_dr_alignment): Likewise.
14347
9811ae10 143482012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
14349
7103ce44 14350 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
9811ae10 14351 Improve conditions for peepholes of loads followed by commutative
14352 operators.
7103ce44 14353 * config/arm/ldmstm.md: Regenerated.
9811ae10 14354
f5c0f433 143552012-03-02 Richard Guenther <rguenther@suse.de>
14356
14357 * BASE-VER: Set to 4.8.0.
14358
8f50e6ed 143592012-03-01 Richard Earnshaw <rearnsha@arm.com>
14360
14361 * config.gcc (obsolete): Add all ARM targets using the FPA.
14362 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
14363 * doc/install.texi: Avoid references to obsolete ARM ports.
14364
830730d6 143652012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
14366
14367 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
14368
43770c4d 143692012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
14370 Joern Rennecke <joern.rennecke@embecosm.com>
14371
14372 * doc/extend.texi: Expand and update information on interrupt
14373 attribute for Epiphany.
14374
bef96223 143752012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
14376
14377 * config/sh/sh-protos.h: Update copyright notice dates.
14378 * config/sh/sh.h: Likewise.
14379 * config/sh/sh.md: Likewise.
14380 * config/sh/constraints.md: Likewise.
14381 * config/sh/predicates.md: Likewise.
14382
b0b9387e 143832012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
14384
14385 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
14386 * config/sh/sh.c (tertiary_reload_operand): Likewise.
14387
7329bf9b 143882012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
14389
14390 * config/sh/constraints.md: Fix comment typo.
14391
aaeba072 143922012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14393
14394 PR target/52408
14395 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
14396 unsigned HOST_WIDE_INT.
14397 (zvdep_imm64): Likewise.
14398 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
14399 (vdepi_and): Likewise.
14400 Likewise for unamed 64-bit patterns.
14401 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
14402
85b6e75b 144032012-03-01 Alexandre Oliva <aoliva@redhat.com>
14404
14405 PR debug/52001
14406 PR rtl-optimization/52417
14407 * cselib.c (cselib_any_perm_equivs): New variable.
14408 (cselib_reset_table): Check that it's not set when not
14409 preserving constants.
14410 (cselib_add_permanent_equiv): Set it.
14411 (cselib_have_permanent_equivalences): New.
14412 (cselib_init, cselib_finish): Reset it.
14413 * cselib.h (cselib_have_permanent_equivalences): Declare.
14414 * alias.c (get_addr): Restore earlier behavior when there
14415 aren't permanent equivalences.
14416
ff560cc5 144172012-03-01 Steven Bosscher <steven@gcc.gnu.org>
14418
14419 * config/mn10300/mn10300-modes.def: Fix copyright notice.
14420 * config/v850/v850-modes.def: Fix copyright notice.
14421
12ffadfa 144222012-03-01 Georg-Johann Lay <avr@gjlay.de>
14423
14424 * doc/extend.texi (AVR Built-in Functions): Document
14425 __builtin_avr_flash_segment.
14426
14427 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
14428 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
14429 (*split.flash_segment): New insn-and-split.
14430 * config/avr/avr.c (avr_init_builtins): Add local variables:
14431 const_memx_void_node, const_memx_ptr_type_node,
14432 char_ftype_const_memx_ptr.
14433
963aee26 144342012-03-01 Jakub Jelinek <jakub@redhat.com>
14435
14436 PR tree-optimization/52445
14437 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
14438 add ssa_name_ver, offset and size fields and change store field
14439 to bool.
14440 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
14441 (add_or_mark_expr): Likewise. Only consider previous stores
14442 with the same size and offset.
14443 (nt_init_block): Only look at gimple_assign_single_p stmts,
14444 doesn't look at rhs2.
14445
5c332a23 144462012-03-01 Richard Guenther <rguenther@suse.de>
14447
14448 PR middle-end/52443
14449 * tree-cfg.c (verify_gimple_assign_unary): Allow any
14450 conversions from integral types to pointer types.
14451
47018d7b 144522012-03-01 Georg-Johann Lay <avr@gjlay.de>
14453
14454 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
7103ce44 14455 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
47018d7b 14456 unintentionally removed in r184616.
14457
fb7c1017 144582012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
14459
14460 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
14461 3DNow from bdver1.
14462
2c9cbc56 144632012-02-29 Jakub Jelinek <jakub@redhat.com>
14464 Uros Bizjak <ubizjak@gmail.com>
14465
14466 PR target/52437
14467 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
14468 alternatives, add "e" constraint to the new last alternative
14469 and ! to last 3 alternatives.
14470
ffb4f309 144712012-02-29 Eric Botcazou <ebotcazou@adacore.com>
14472
14473 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
14474 DW_AT_artificial attributes at the end of the processing.
14475 (gen_array_type_die): Likewise.
14476 (gen_enumeration_type_die): Likewise.
14477 (gen_struct_or_union_type_die): Likewise.
14478 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
14479 the parent type.
14480
eee873f6 144812012-02-29 Jakub Jelinek <jakub@redhat.com>
14482
04df78dc 14483 PR middle-end/52419
14484 * expr.c (expand_assignment): If doing misaligned store that doesn't
14485 cover all mode bits, perform a RMW cycle.
14486
eee873f6 14487 PR tree-optimization/52429
14488 * tree-parloops.c (separate_decls_in_region_debug): Return early
14489 if var is LABEL_DECL.
14490
9f396eaf 144912012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14492
14493 PR tree-optimization/52424
14494 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
14495 calling dom_thread_across_edge.
14496
1602e4b0 144972012-02-29 Georg-Johann Lay <avr@gjlay.de>
14498
14499 * config/avr/avr.c: Move definition of TARGET macros to end of file.
14500
16d17f31 145012012-02-29 Georg-Johann Lay <avr@gjlay.de>
14502
14503 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
14504 * config/avr/avr.c (avr_output_bld): Remove unused function.
14505 (avr_out_sbxx_branch): Use "%T" to print bit position.
14506
3d78dda1 145072012-02-29 Georg-Johann Lay <avr@gjlay.de>
14508
14509 * config/avr/avr.md: Untabify.
14510
145112012-02-29 Georg-Johann Lay <avr@gjlay.de>
14512
14513 * config/avr/avr.md (eqne): New code iterator.
14514 (*dec-and-branchsi): Use it in text peephole's condition.
14515 (*dec-and-branchhi): Ditto.
14516 (*dec-and-branchqi): Ditto.
14517
f37ec592 145182012-02-29 Georg-Johann Lay <avr@gjlay.de>
14519
14520 PR target/49939
14521 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
14522 the device does not have the skip-bug.
14523
52bba6ce 145242012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
14525
14526 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
14527 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
14528 -mpretend-cmove): New.
14529
5df3e7ea 145302012-02-29 Jakub Jelinek <jakub@redhat.com>
14531
14532 PR bootstrap/52397
14533 * df.h (struct df_d): Adjust comment that hard_regs_live_count
14534 doesn't count DEBUG_INSN refs.
14535 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
14536 for DEBUG_INSN refs.
14537
31a56b87 145382012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14539
14540 Partially revert:
14541
14542 2012-02-20 Richard Guenther <rguenther@suse.de>
14543 PR tree-optimization/52298
14544 * tree-vect-stmts.c (vectorizable_load): Properly use
4e0c0c52 14545 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
31a56b87 14546
de60f90c 145472012-02-28 Aldy Hernandez <aldyh@redhat.com>
14548
14549 PR middle-end/51752
14550 * gimple.h (gimple_in_transaction): New.
14551 (gimple_set_in_transaction): New.
14552 (struct gimple_statement_base): Add in_transaction field.
14553 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
14554 transaction loads.
14555 (tree_ssa_lim_initialize): Compute transaction bits.
14556 * tree.h (compute_transaction_bits): Protoize.
14557 * trans-mem.c (tm_region_init): Use the heap to store BB
14558 auxilliary data.
14559 (compute_transaction_bits): New.
14560
042a76cf 145612012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14562
14563 * gcc.c (display_help): Document --help=common and sort entries
14564 alphabetically.
14565
ce7f5029 145662012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14567
14568 * doc/install.texi: Document check-$LANG specific shortcuts
14569
ca6c837f 145702012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
14571
14572 PR target/51534
14573 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
14574 and vcgtu.
14575 * config/arm/arm_neon.h: Regenerate.
14576 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
14577 (neon_vcgeu): New insn.
14578 (neon_vcgtu): Likewise.
14579 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
7103ce44 14580 (ops): Unsigned comparison intrinsics call a different builtin.
ca6c837f 14581
8b6c5604 145822012-02-28 Richard Guenther <rguenther@suse.de>
14583
14584 PR target/52407
14585 * config/i386/i386.c (ix86_expand_vector_set): Fix element
14586 ordering for the VEC_CONCAT for two element vectors for
14587 V2SFmode, V2SImode and V2DImode.
14588
736a63d4 145892012-02-28 Richard Earnshaw <rearnsha@arm.com>
14590
14591 PR target/49448
14592 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
14593 detecting big-endian triplets.
14594
9185f2d7 145952012-02-28 Richard Earnshaw <rearnsha@arm.com>
14596
14597 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
14598 mode if there is no type information available.
14599
a8d20b48 146002012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
14601
14602 PR tree-optimization/53207
14603 * doc/invoke.texi: Document as experimental and relying on graphite.
14604
1e946ea6 146052012-02-28 Georg-Johann Lay <avr@gjlay.de>
14606
14607 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
14608 of initializer to changes from r184614.
7103ce44 14609
627491ef 146102012-02-28 Richard Guenther <rguenther@suse.de>
14611
14612 PR tree-optimization/52395
14613 * tree-sra.c (build_ref_for_offset): Also look at the base
14614 TYPE_ALIGN when figuring out the alignment of the replacement.
14615
6b1b2cb7 146162012-02-28 Richard Guenther <rguenther@suse.de>
14617
14618 PR tree-optimization/52402
14619 * ipa-prop.c (ipa_modify_call_arguments): Properly use
14620 mis-aligned types when creating the accesses at the call site.
14621
c19a2f5f 146222012-02-28 Georg-Johann Lay <avr@gjlay.de>
14623
14624 * config/avr/builtins.def: New file.
14625 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
14626 * config/avr/avr.c (enum avr_builtin_id): Use it.
14627 (avr_init_builtins): Use it. And use avr_bdesc.
14628 (bdesc_1arg): Remove.
14629 (bdesc_2arg): Remove.
14630 (bdesc_3arg): Remove.
14631 (struct avr_builtin_description): Add field n_args.
14632 (avr_bdesc): New static variable using builtins.def.
14633 (avr_expand_builtin): Use it.
14634 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
14635 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
14636 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
14637
f1222c71 146382012-02-28 Georg-Johann Lay <avr@gjlay.de>
14639
14640 PR target/52148
14641 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
14642 match only one single hard register with respective hard reg rtx.
14643 (movmemx_<mode>): Ditto.
14644 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
14645 insn anatomy of movmem[x]_<mode>.
14646 (avr_out_movmem): Same for printing assembler and operand usage.
14647
e508bf98 146482012-02-28 Georg-Johann Lay <avr@gjlay.de>
14649
14650 PR target/49868
14651 PR target/52261
14652 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
14653 address spaces located outside of device flash.
14654
14655 * config/avr/avr.h (base_arch_s): Remove field n_segments.
14656 (mcu_type_s): Add field n_flash.
14657 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
14658 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
14659 (AVR_MCU): Add N_FLASH argument.
14660 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
14661 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
14662 macro __FLASH<n> if that address space makes sense for the device.
14663 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
14664 outside of target flash.
14665 (avr_asm_named_section): Ditto.
14666 (avr_asm_select_section): Ditto.
14667 (avr_addr_space_convert): Ditto.
14668 (avr_emit_movmemhi): Ditto.
14669 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
14670 address space is outside of device flash.
14671 (avr_insert_attributes): Ditto.
14672 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
14673 avr_current_arch->n_segments.
14674
1f2e8f6e 146752012-02-27 H.J. Lu <hongjiu.lu@intel.com>
14676
14677 PR target/52352
7103ce44 14678 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
1f2e8f6e 14679 (*movabs<mode>_2): Likewise.
14680
0f41c0cf 146812012-02-27 Jakub Jelinek <jakub@redhat.com>
14682
7510cf26 14683 PR target/52375
14684 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
14685 s_register_operand in the test instead of REG_P. Don't call
14686 gen_reg_rtx if it won't be used.
14687
0f41c0cf 14688 PR tree-optimization/52376
14689 * ipa-split.c (split_function): Ignore CLOBBER stmts.
14690
68b509aa 146912012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
14692
14693 * ifcvt.c (noce_get_condition): Check condition variable is not
14694 small_register_classes_for_mode_p before accepting.
14695
becba2b9 146962012-02-27 Uros Bizjak <ubizjak@gmail.com>
14697
14698 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
14699
347b9640 147002012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
14701
14702 Revert:
14703 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
14704 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
14705 tuning parameters.
14706 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
14707
5b9a8c31 147082012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
14709
14710 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
14711
7a288fec 147122012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
14713
14714 * config/sh/predicates.md: Remove blank lines.
14715 * config/sh/sh.c: Fix typos in comments.
14716 * config/sh/constraints.md: Likewise.
14717 * config/sh/sh.md: Remove blank lines.
14718 Fix typos in comments. Use ;; as comment characters.
14719
02be8f84 147202012-02-26 Walter Lee <walt@tilera.com>
14721
becba2b9 14722 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
02be8f84 14723 (replace_mov_pcrel_step2): Ditto.
14724
0be329ef 147252012-02-25 Alexandre Oliva <aoliva@redhat.com>
14726
fa5e407e 14727 PR debug/52001
14728 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
14729 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
14730 and locs that reference values newer than the non-canonical value
14731 at hand. Return the canonical value as a worst case.
14732 (memrefs_conflict_p): Walk canonical value's locs.
14733
0be329ef 14734 PR debug/52001
14735 * cselib.c (preserve_only_constants): Rename to...
14736 (preserve_constants_and_equivs): ... this. Split out...
14737 (invariant_or_equiv_p): ... this. Preserve plus expressions
14738 of other preserved expressions too.
14739 (cselib_reset_table): Adjust.
14740 * var-tracking.c (reverse_op): Use canonical value to build
14741 reverse operation.
14742
70c72222 147432012-02-23 Kai Tietz <ktietz@redhat.com>
14744
14745 * config/i386/i386.c (ix86_delegitimize_address): Handle
14746 UNSPEC_PCREL plus displacement.
14747
00c52bc9 147482012-02-24 Georg-Johann Lay <avr@gjlay.de>
14749
14750 PR target/52261
14751 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
14752 to test for unusedness in st X addressing.
14753
aa834ebc 147542012-02-24 Richard Guenther <rguenther@suse.de>
14755
14756 PR middle-end/52361
becba2b9 14757 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
aa834ebc 14758 (is_gimple_reg_type): Move inline ...
14759 * gimple.h (is_gimple_reg_type): ... here.
14760
e9d79eef 147612012-02-24 Richard Guenther <rguenther@suse.de>
14762
14763 PR middle-end/52361
14764 * passes.c (execute_function_todo): When verifying SSA form
14765 verify gimple form first.
14766 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
14767
7dd59140 147682012-02-24 Richard Guenther <rguenther@suse.de>
14769
14770 PR middle-end/52355
14771 * fold-const.c (fold_addr_of_array_ref_difference): New function.
becba2b9 14772 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
7dd59140 14773
10b55fcb 147742012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14775
14776 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
14777
8abed11e 147782012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14779
14780 * tree-phinodes.c (make_phi_node): Mark static.
14781 * tree-flow.h (make_phi_node): Remove extern decl.
14782 * doc/gimple.texi (make_phi_node): Remove documentation.
14783
7ef97146 147842012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14785
becba2b9 14786 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
7ef97146 14787 * tree-ssa-sccvn.c (print_scc): Ditto.
14788
6da426a8 147892012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14790
14791 * doc/passes.texi (Full redundancy elimination): Fix typo.
14792
98a3cc50 147932012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14794
14795 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
14796
148868c2 147972012-02-23 Eric Botcazou <ebotcazou@adacore.com>
14798
14799 PR bootstrap/52287
14800 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
14801
6b9c4a52 148022012-02-23 Uros Bizjak <ubizjak@gmail.com>
14803
14804 PR c/52290
14805 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
14806
8266991c 148072012-02-23 Georg-Johann Lay <avr@gjlay.de>
14808
14809 * config/avr/avr.md (code_stdname): Add ior, xor.
14810 (xior): New code iterator.
14811 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
14812 (*<code_stdname><mode>qi.byte1-3): Ditto.
14813
1a3c6423 148142012-02-23 Jakub Jelinek <jakub@redhat.com>
14815
14816 PR tree-optimization/52019
14817 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
14818 CLOBBER stmts.
14819
c3dd2023 148202012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14821
14822 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
14823 HAVE_INITFINI_ARRAY to work around namespace pollution in
14824 certain versions of newlib system headers.
14825 * config.in: Regenerate.
14826 * configure: Regenerate.
14827 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
14828 instead of HAVE_INITFINI_ARRAY.
14829
6bb01a79 148302012-02-22 Uros Bizjak <ubizjak@gmail.com>
14831
14832 PR target/52330
14833 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
14834 is not offsettable memory reference.
14835
5be63f82 148362012-02-22 Georg-Johann Lay <avr@gjlay.de>
14837
14838 PR target/18145
14839 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
14840 setting avr_need_clear_bss_p for __gnu_lto* symbols.
14841
c529cd37 148422012-02-22 Georg-Johann Lay <avr@gjlay.de>
14843
14844 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
6bb01a79 14845 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
c529cd37 14846
291426be 148472012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14848
14849 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
14850 library on Solaris 8 even without TLS support.
14851 * configure: Regenerate.
14852
48bcb852 148532012-02-22 Richard Guenther <rguenther@suse.de>
14854
14855 PR middle-end/52329
14856 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
14857 for GIMPLE_DEBUG stmts.
291426be 14858
3f06bd1b 148592012-02-22 Martin Jambor <mjambor@suse.cz>
14860
14861 PR middle-end/51782
14862 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
14863 according to the base object.
14864
b5b90b5a 148652012-02-22 Georg-Johann Lay <avr@gjlay.de>
14866
14867 PR rtl-optimization/50063
14868 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
14869 and 2 (8-bit SP) in operand 2.
14870 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
14871 setup to use movhi_sp_r instead of vanilla move to write SP.
14872 Adjust REG_CFA notes to superseed unspec.
14873 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
14874 of vanilla move.
14875 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
14876 known to be off) only with TARGET_NO_INTERRUPTS. Never use
14877 irq_state 1 (IRQ known to be on) here.
14878
769de935 148792012-02-21 Bernd Schmidt <bernds@codesourcery.com>
14880
14881 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
14882 WORDS_BIG_ENDIAN.
14883 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
14884 assign_hard_reg): Likewise.
14885
148862012-02-21 Georg-Johann Lay <avr@gjlay.de>
47f9f604 14887
14888 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
14889
769de935 148902012-02-21 Georg-Johann Lay <avr@gjlay.de>
21e3f268 14891
14892 * config/avr/avr.md
14893 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
14894 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
14895
769de935 148962012-02-21 Georg-Johann Lay <avr@gjlay.de>
184a25cd 14897
14898 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
14899 prototype from here to...
14900 * config/avr/avr.h: ...here.
14901
b600658e 149022012-02-21 Richard Earnshaw <rearnsha@arm.com>
14903
14904 PR target/52294
769de935 14905 * thumb2.md (thumb2_shiftsi3_short): Split register and
b600658e 14906 immediate shifts. For register shifts tie operands 0 and 1.
14907 (peephole2 for above): Check that register-controlled shifts
14908 have suitably tied operands.
14909
b65fb916 149102012-02-21 Quentin Neill <quentin.neill@amd.com>
14911
14912 PR target/52137
14913 * config/i386/bdver1.md (bdver1_call, bdver1_push,
14914 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
14915 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
14916 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
14917 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
14918 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
14919 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
14920 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
14921 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
14922 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
14923 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
14924 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
14925 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
14926 bdver1_ssevector_avx256_unaligned_load,
14927 bdver1_ssevector_sse128_unaligned_load,
14928 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
14929 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
14930 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
14931 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
14932 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
14933 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
14934 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
14935 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
14936 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
14937 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
14938 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
14939 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
14940 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
14941 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
14942 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
14943 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
14944 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
14945 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
14946 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
14947 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
14948 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
14949 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
14950 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
14951 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
14952 bdver1_ssediv_double_load, bdver1_ssediv_double,
14953 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
14954 Add "bdver2" attribute.
14955
dcba5e45 149562012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14957
14958 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
14959 default if possible and not specified otherwise.
14960
f2f6d96f 149612012-02-21 Richard Guenther <rguenther@suse.de>
14962
14963 PR middle-end/52314
14964 * gimplify.c (create_tmp_from_val): Use the main variant type
14965 for the type of the temporary we create.
14966
6b55f6d9 149672012-02-21 Richard Guenther <rguenther@suse.de>
14968
14969 PR tree-optimization/52324
14970 * gimplify.c (gimplify_expr): When re-gimplifying expressions
14971 do not gimplify a MEM_REF address operand if it is already
14972 in suitable form.
14973
e29fe543 149742012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14975
14976 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
14977 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
14978
7b0821ca 149792012-02-21 Richard Guenther <rguenther@suse.de>
14980
14981 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
14982 nested_in_vect_loop.
14983
e857485e 149842012-02-21 Jakub Jelinek <jakub@redhat.com>
14985
14986 PR tree-optimization/52318
14987 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
14988 vdef also to non-pure/const call stmts in the sequence.
14989
46d35275 149902012-02-21 Tristan Gingold <gingold@adacore.com>
14991
14992 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
14993
005acfe0 149942012-02-20 David S. Miller <davem@davemloft.net>
14995
14996 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
14997 don't use the "rd %pc" instruction on v9 for PIC register loads.
14998
43156aa3 149992012-02-20 Aldy Hernandez <aldyh@redhat.com>
15000
15001 PR middle-end/52141
15002 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
15003 in a transaction safe function.
15004
b527cbf0 150052012-02-20 Kai Tietz <ktietz@redhat.com>
15006
15007 PR target/52238
15008 * stor-layout.c (place_field): Handle desired_align for
15009 ms-bitfields, too.
15010
e4a9141c 150112012-02-20 Richard Guenther <rguenther@suse.de>
15012
15013 PR tree-optimization/52298
15014 * tree-vect-stmts.c (vectorizable_store): Properly use
15015 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
15016 outer loops.
15017 (vectorizable_load): Likewise.
15018 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
15019 Access DR_STEP after ensuring it is not NULL.
15020
225ffc2f 150212012-02-20 Jakub Jelinek <jakub@redhat.com>
15022
15023 PR tree-optimization/52286
15024 * fold-const.c (fold_binary_loc): For (X & C1) | C2
15025 optimization use double_int_to_tree instead of build_int_cst_wide,
15026 rewrite to use double_int vars.
15027
1c6e4ce9 150282012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15029
15030 PR target/50166
15031 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
15032 Define _start.
15033 Remove -e 0 from $gcc_cv_ld invocation.
15034 Only use __GLIBC_PREREQ if defined.
15035 Enable on Solaris since Solaris 8 patch.
15036 (gcc_SUN_LD_VERSION): New macro.
15037 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
15038 gcc_SUN_LD_VERSION for version number format.
15039 * configure: Regenerate.
15040 * varasm.c (get_elf_initfini_array_priority_section): Set
15041 SECTION_NOTYPE for non-default priority.
15042 Use get_section instead of get_unnamed_section to emit
15043 .init_array/.fini_array with default priority.
15044
6a8f7b8b 150452012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
15046
15047 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
15048 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
15049 (mips_start_unique_function, mips_output_mips16_rdhwr)
15050 (mips_code_end): New functions.
15051 (TARGET_ASM_CODE_END): Define.
15052
7db87803 150532012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
15054
15055 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
15056 to stubs with non-sibling calls.
15057
ce3c28ad 150582012-02-18 Sandra Loosemore <sandra@codesourcery.com>
15059
15060 * doc/invoke.texi (-fira-* options): Copy-edit.
15061 (ira-* parameters): Copy-edit.
15062
1bed49cd 150632012-02-17 Sandra Loosemore <sandra@codesourcery.com>
15064
15065 * doc/invoke.texi: Minor copy-edits to bring into conformance with
15066 GCC coding conventions.
15067
720dbdb5 150682012-02-17 Sandra Loosemore <sandra@codesourcery.com>
15069
15070 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
15071 when used as adjectives.
15072
77d5f3a9 150732012-02-16 Sandra Loosemore <sandra@codesourcery.com>
15074
15075 * doc/invoke.texi: Clean up "that"/"which" confusion.
15076
c7e75c45 150772012-02-17 Steven Bosscher <steven@gcc.gnu.org>
15078
15079 * system.h: Poison SMALL_REGISTER_CLASSES
15080 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
15081 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
15082
97effc09 150832012-02-16 Jakub Jelinek <jakub@redhat.com>
15084
15085 PR tree-optimization/52285
15086 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
15087 when deciding if a call is a tail call or tail recursion.
15088
3f96cc96 150892012-02-16 Kai Tietz <ktietz@redhat.com>
15090
15091 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
15092 interger-constant displacement for UNSPEC_PCREL.
15093
830de880 150942012-02-16 Jakub Jelinek <jakub@redhat.com>
15095
72e3d363 15096 PR rtl-optimization/52208
15097 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
15098 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
15099
38091110 15100 PR tree-optimization/52255
15101 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
15102 loop->header has virtual PHI, but exit_e->dest doesn't, add
15103 virtual PHI to exit_e->dest and adjust all uses after the loop.
15104
830de880 15105 PR debug/52260
15106 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
15107 children with clone_tree_hash, not after it.
15108
dd76b89f 151092012-02-16 Iain Sandoe <iains@gcc.gnu.org>
15110
15111 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
15112 extended identifiers.
15113
70f89d12 151142012-02-16 Jakub Jelinek <jakub@redhat.com>
15115
cdf67cee 15116 PR middle-end/51929
15117 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
15118 a same_body_alias, also test whether e->callee isn't a former
15119 or current clone of the decl this is a same body alias of.
15120
70f89d12 15121 PR translation/52264
15122 * cgraphunit.c (verify_cgraph_node): Fix a typo.
15123
ea76f7e1 151242012-02-15 Sandra Loosemore <sandra@codesourcery.com>
15125
15126 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
15127
3619a9e5 151282012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
15129
15130 PR target/52199
15131 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
15132 force_reg instead of copy_to_reg for better optimization. Force
15133 non-register or memory operands into a register.
15134
fd46ba2e 151352012-02-15 Andrew MacLeod <amacleod@redhat.com>
15136
15137 * extend.texi: Reserve upper bits of memory model for future use.
15138
0b6cf66f 151392012-01-15 Georg-Johann Lay <avr@gjlay.de>
15140 Anatoly Sokolov <aesok@post.ru>
15141 Eric Weddington <eric.weddington@atmel.com>
15142
15143 PR target/52261
15144 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
15145 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
15146 Rewrite initializers for .macro.
15147 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
15148 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
15149 atxmega32d4, atxmega32x1.
15150 avrxmega4: atxmega64a3, atxmega64d3.
15151 avrxmega5: atxmega64a1, atxmega64a1u.
15152 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
15153 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
15154 avrxmega7: atxmega128a1, atxmega128a1u.
15155 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
15156 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
15157 (struct base_arch_s): Rename reserved to xmega_p.
15158 Rename reserved2 to have_rampd.
15159 (AVR_XMEGA): New define.
15160 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
15161 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
15162 * config/avr/predicates.md (io_address_operand): Take into
15163 account SFR offset.
15164 (low_io_address_operand): Ditto.
15165 (high_io_address_operand): Ditto.
15166 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
15167 (enabled, movhi_sp_r): Use them.
15168 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
15169 cpp_define_formatted to built-in define __AVR_ARCH__.
15170 (__AVR_XMEGA__): New built-in define.
15171 (__AVR_HAVE_RAMPD__): New built-in define.
15172 (__AVR_HAVE_RAMPX__): New built-in define.
15173 (__AVR_HAVE_RAMPY__): New built-in define.
15174 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
15175
15176 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
15177 (avr_option_override): Initialize them.
15178 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
15179 (avr_init_expanders): Initialize them. No more block several calls.
15180 (emit_push_sfr): New static function.
15181 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
15182 Handle AVR_XMEGA.
15183 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
15184 (avr_print_operand): Print addreeses as symbols for
15185 RAMPX, RAMPY, RAMPD, CCP.
15186 (output_movhi): Handle AVR_XMEGA when writing to SP.
15187 (avr_out_movhi_mr_r_xmega): New static function.
15188 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
15189 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
15190 __RAMPD__, __CCP__ as needed.
15191
15192 * config/avr/multilib.h: Regenerate.
15193 * config/avr/t-multilib: Regenerate.
15194 * config/avr/avr-tables.opt: Regenerate.
15195
f260bce7 151962012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
15197
15198 PR tree-optimization/50561
15199 * graphite-flattening.c (lst_project_loop): Do not
15200 remove old scattering dimensions after flattening.
15201 (lst_do_flatten): Likewise.
15202
15b84087 152032012-02-15 Georg-Johann Lay <avr@gjlay.de>
15204
15205 * doc/extend.texi (AVR Built-in Functions): Remove doc for
15206 __builtin_avr_map8, __builtin_avr_map16.
15207 Document __builtin_avr_insert_bits.
15208
15209 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
15210 (insert_bits): New insn.
15211 (adjust_len.map_bits): Rename to insert_bits.
15212 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
15213 * avr-protos.h (avr_out_map_bits): Remove.
15214 (avr_out_insert_bits, avr_has_nibble_0xf): New.
15215 * config/avr/constraints.md (Cxf,C0f): New.
15216 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
15217 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
15218 New built-in define __BUILTIN_AVR_INSERT_BITS.
15219 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
15220 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
15221 (avr_move_bits): Rewrite.
15222 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
15223 functions.
15224 (avr_map_op_t): New typedef.
15225 (avr_map_op): New static variable.
15226 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
15227 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
15228 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
15229 (bdesc_3arg, avr_expand_triop_builtin): New.
15230 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
15231 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
15232 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
15233 (avr_map_equal_p, avr_map_sig_p): Remove.
15234 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
15235 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
15236 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
15237 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
15238 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
15239 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
15240
a905d913 152412012-02-14 Bernd Schmidt <bernds@codesourcery.com>
15242
15243 * config/c6x/c6x.md (reserve_cycles): New attribute.
15244 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
15245 don't reserve functional units after the branch occurs.
15246
3bd76a99 152472012-02-14 Aldy Hernandez <aldyh@redhat.com>
15248
15249 PR middle-end/52142
15250 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
15251 functions into non-tm_pure functions.
15252
073dcaef 152532012-02-14 Eric Botcazou <ebotcazou@adacore.com>
15254
15255 PR lto/52178
15256 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
15257 (iterative_hash_canonical_type): Likewise.
15258 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
15259 the dead edges.
15260
152612012-02-14 Bernd Schmidt <bernds@codesourcery.com>
38d8f4bb 15262
15263 * haifa-sched.c (prune_ready_list): Ensure that if there is a
6bb01a79 15264 sched-group insn, it either remains alone or the entire list is pruned.
38d8f4bb 15265
f9ed49a8 152662012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
15267
15268 * doc/install.texi (Prerequisites): Fix grammar.
15269 (Configuration): Likewise.
15270
257fb739 152712012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
15272
15273 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
15274 MPC as part of GCC before describing configuring with --with-gmp etc.
15275 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
15276 sources are present.
15277
65d3bb17 152782012-02-14 Jakub Jelinek <jakub@redhat.com>
15279
15280 PR debug/51950
15281 * dwarf2out.c (clone_tree_hash): New function.
15282 (copy_decls_walk): Use it instead of clone_tree.
15283
a32556d5 152842012-02-14 Richard Guenther <rguenther@suse.de>
15285
15286 PR tree-optimization/52244
15287 PR tree-optimization/51528
15288 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
15289 replacements for integral types.
15290
7ce78e23 152912012-02-14 Walter Lee <walt@tilera.com>
15292
15293 * config.gcc: Handle tilegx and tilepro.
15294 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
15295 tilegx and tilepro.
15296 Add HAVE_AS_TLS check for tilegx and tilepro.
15297 * configure: Regenerate.
15298 * doc/contrib.texi: Add Mat Hostetter and self.
15299 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
15300 Document instruction intrinsics and network accessing intrinsics.
15301 (TILEPro Built-in Functions): New node. Document instruction
15302 intrinsics and network accessing intrinsics.
15303 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
15304 (Specific, tilepro-*-linux*): Likewise.
15305 * doc/invoke.texi (TILE-Gx Options): New section.
15306 (TILEPro Options): New section.
15307 * doc/md.texi (TILE-Gx): New section.
15308 (TILEPro): New section.
15309 * common/config/tilegx/tilegx-common.c: New file.
15310 * common/config/tilepro/tilepro-common.c: New file.
15311 * config/tilegx/constraints.md: New file.
15312 * config/tilegx/linux.h: New file.
15313 * config/tilegx/mul-tables.c: New file.
15314 * config/tilegx/predicates.md: New file.
15315 * config/tilegx/sync.md: New file.
15316 * config/tilegx/t-tilegx: New file.
15317 * config/tilegx/tilegx-builtins.h: New file.
15318 * config/tilegx/tilegx-c.c: New file.
15319 * config/tilegx/tilegx-generic.md: New file.
15320 * config/tilegx/tilegx-modes.def: New file.
15321 * config/tilegx/tilegx-multiply.h: New file.
15322 * config/tilegx/tilegx-protos.h: New file.
15323 * config/tilegx/tilegx.c: New file.
15324 * config/tilegx/tilegx.h: New file.
15325 * config/tilegx/tilegx.md: New file.
15326 * config/tilegx/tilegx.opt: New file.
15327 * config/tilepro/constraints.md: New file.
15328 * config/tilepro/gen-mul-tables.cc: New file.
15329 * config/tilepro/linux.h: New file.
15330 * config/tilepro/mul-tables.c: New file.
15331 * config/tilepro/predicates.md: New file.
15332 * config/tilepro/t-tilepro: New file.
15333 * config/tilepro/tilepro-builtins.h: New file.
15334 * config/tilepro/tilepro-c.c: New file.
15335 * config/tilepro/tilepro-generic.md: New file.
15336 * config/tilepro/tilepro-modes.def: New file.
15337 * config/tilepro/tilepro-multiply.h: New file.
15338 * config/tilepro/tilepro-protos.h: New file.
15339 * config/tilepro/tilepro.c: New file.
15340 * config/tilepro/tilepro.h: New file.
15341 * config/tilepro/tilepro.md: New file.
15342 * config/tilepro/tilepro.opt: New file.
15343
4e158897 153442012-02-14 Jakub Jelinek <jakub@redhat.com>
15345
15346 PR tree-optimization/52210
15347 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
15348 vect_model_simple_cost with two entry vect_def_type array instead
15349 of an address of dt.
15350
0ffa2e92 153512012-02-14 Richard Guenther <rguenther@suse.de>
15352
15353 PR lto/52178
15354 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
15355 Do not stream DECL_QUALIFIER.
15356 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
15357 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
15358 (find_decls_types_r): Do not walk DECL_QUALIFIER.
15359
fc0d4990 153602012-02-14 Jakub Jelinek <jakub@redhat.com>
15361
15362 PR c/52181
15363 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
15364 newdecl.
15365
2af89801 153662012-02-13 Jakub Jelinek <jakub@redhat.com>
15367
15368 PR bootstrap/52172
15369 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
15370 * cselib.c (cselib_subst_to_values_from_insn): New function.
15371 * sched-deps.c (add_insn_mem_dependence,
15372 sched_analyze_1, sched_analyze_2): Use it.
15373
6e3803fb 153742012-02-13 Jan Hubicka <jh@suse.cz>
15375
15376 PR middle-end/52214
15377 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
15378
9a8d01ee 153792012-02-13 Eric Botcazou <ebotcazou@adacore.com>
15380
15381 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
15382 (GTM_SELF_SPECS): Define if not already defined.
15383 (driver_self_specs): Add GTM_SELF_SPECS.
6bb01a79 15384 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
15385 (GTM_SELF_SPECS): Define.
9a8d01ee 15386 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
15387 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
15388
0416ca72 153892012-02-13 Jakub Jelinek <jakub@redhat.com>
15390
533ae4c7 15391 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
15392 away if seen.
15393
6bb01a79 15394 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
0e508b49 15395
0416ca72 15396 PR middle-end/52230
6bb01a79 15397 * omp-low.c (expand_omp_for): If a static schedule without chunk size
15398 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
0416ca72 15399
c5519669 154002012-02-13 Andrew MacLeod <amacleod@redhat.com>
15401
15402 PR c/52190
15403 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
15404
dc35e8f6 154052012-02-13 Richard Guenther <rguenther@suse.de>
15406
15407 PR translation/52211
15408 * passes.c (enable_disable_pass): Fix typo.
15409
7e5608ca 154102012-02-13 Jakub Jelinek <jakub@redhat.com>
15411
15412 PR middle-end/52209
15413 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
15414 XOR for reduce_bit_field if type is unsigned.
15415
7a0443dc 154162012-02-12 Eric Botcazou <ebotcazou@adacore.com>
15417
15418 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
15419 disallow changes from SFmode to mode with different size in FP regs.
15420
154212012-02-12 Robert Millan <rmh@gnu.org>
6bb01a79 15422 Gerald Pfeifer <gerald@pfeifer.com>
a40d9b7c 15423
15424 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
15425 Tweak comment.
15426
f0421938 154272012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
15428
15429 PR rtl-optimization/52175
15430 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
15431 to frame-related instructions.
15432
ee7ee34d 154332012-02-10 Jason Merrill <jason@redhat.com>
15434
15435 PR c++/51910
15436 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
15437 (demangle_new_symbols): Fill it.
15438 (scan_linker_output): Walk it.
15439 (start_tweaking): Split out from scan_linker_output.
15440 (maybe_tweak): Update sym->chosen.
15441 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
15442
f8d0f01f 154432012-02-11 Jakub Jelinek <jakub@redhat.com>
15444
15445 PR debug/52132
6bb01a79 15446 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
f8d0f01f 15447
67755ff0 154482012-02-11 Uros Bizjak <ubizjak@gmail.com>
15449
15450 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
15451 having the same mode as previous compare.
15452
4cdb9b47 154532012-02-10 Eric Botcazou <ebotcazou@adacore.com>
15454
15455 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
15456 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
15457 (nonlocal_goto_internal): Likewise.
15458 (nonlocal_goto): Emit a use and an indirect jump directly.
15459
c311fe7e 154602012-02-10 Andrew MacLeod <amacleod@redhat.com>
15461
15462 PR c/52190
15463 * doc/extend.texi : Update comments for __atomic_compare_exchange and
15464 __atomic_{is,always}_lock_free.
15465
c766750c 154662012-02-10 Uros Bizjak <ubizjak@gmail.com>
15467
15468 PR target/52146
15469 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
c290746e 15470 negative constant address for TARGET_X32.
c766750c 15471
b65fbe25 154722012-02-10 Richard Henderson <rth@redhat.com>
15473
67755ff0 15474 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
15475 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
15476 for GIMPLE_TRANSACTION. Tidy if's into a switch.
b65fbe25 15477
5df2530b 154782012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15479 Ira Rosen <irar@il.ibm.com>
15480
15481 PR tree-optimization/50031
15482 * targhooks.c (default_builtin_vectorization_cost): Handle
15483 vec_promote_demote.
15484 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
15485 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
15486 all types of reduction and pattern statements.
15487 (vect_estimate_min_profitable_iters): Likewise.
15488 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
15489 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
15490 for explicit realigns.
15491 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
15492 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
15493 vec_promote_demote.
15494 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
15495 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
15496 vec_perm for VSX and handle vec_promote_demote.
15497
06308d2a 154982012-02-10 Jakub Jelinek <jakub@redhat.com>
15499
15500 PR middle-end/52177
15501 * builtins.c (fold_builtin_atomic_always_lock_free,
15502 expand_builtin_atomic_always_lock_free,
67755ff0 15503 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
15504 Return and/or test boolean_true_node/boolean_false_node instead of
06308d2a 15505 integer_one_node/integer_zero_node.
15506
d3443011 155072012-02-10 Jan Hubicka <jh@suse.cz>
15508
15509 PR middle-end/48600
15510 * predict.c (predict_paths_for_bb): Prevent looping.
15511 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
15512
151d02b1 155132012-02-10 Roman Zhuykov <zhroma@ispras.ru>
15514
15515 * config/arm/arm.c (output_move_double): In one case properly
15516 count number of instructions that will be emitted.
15517
6d36105a 155182012-02-10 Richard Guenther <rguenther@suse.de>
15519
15520 PR translation/52193
15521 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
15522
670fc240 155232012-02-09 Peter Bergner <bergner@vnet.ibm.com>
15524
15525 PR middle-end/52140
15526 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
15527
d5d74c5f 155282012-02-09 Jakub Jelinek <jakub@redhat.com>
15529
15530 PR debug/52165
15531 * var-tracking.c (emit_note_insn_var_location): If
15532 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
15533 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
15534 non-NOTE_DURING_CALL_P insn.
15535
d95cfd30 155362012-02-09 Bin Cheng <bin.cheng@arm.com>
15537
15538 PR middle-end/51867
15539 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
15540
cbe25b89 155412012-02-08 Magnus Granberg <zorry@gentoo.org>
15542
15543 PR driver/48524
67755ff0 15544 * gcc.c (switch_matches) Support switches with separated form,
15545 -D and -U.
cbe25b89 15546
72851b68 155472012-02-08 Georg-Johann Lay <avr@gjlay.de>
15548
15549 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
15550 (SP_ADDR): Ditto.
15551 (RAMPZ_ADDR): Ditto.
15552 * config/avr/avr.c (avr_addr_t): New typedef.
15553 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
15554 (avr_init_expanders): Initialize it.
15555 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
15556 SREG_ADDR.
15557 (expand_epilogue): Ditto.
15558 (avr_print_operand): Ditto.
15559 (avr_file_start): Ditto.
15560 (avr_emit_movmemhi): Ditto.
15561
8b0287e2 155622012-02-08 Richard Guenther <rguenther@suse.de>
15563
15564 PR tree-optimization/46886
15565 * tree-flow.h (do_while_loop_p): Declare.
15566 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
67755ff0 15567 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
8b0287e2 15568
3b967909 155692012-02-08 Andrew MacLeod <amacleod@redhat.com>
15570
15571 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
15572 always succeed for integers larger than a native word.
15573
3e527904 155742012-02-08 Richard Guenther <rguenther@suse.de>
15575
15576 PR rtl-optimization/52170
15577 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
15578 properly handle integer vector modes.
15579
5a23e907 155802012-02-08 Jakub Jelinek <jakub@redhat.com>
15581
8d354582 15582 PR gcov-profile/52150
15583 * coverage.c: Include target.h.
15584 (build_var): Call targetm.strip_name_encoding on the assembler name.
15585 Change one _ into . or $ if the target allows it.
15586 * Makefile.in (coverage.o): Depend on $(TARGET_H).
15587
5a23e907 15588 PR rtl-optimization/52139
15589 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
15590 is a BARRIER after emit_insn_after_noloc, move BB_END
15591 to the last non-BARRIER insn before it.
15592
9a9bf421 155932012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
15594
15595 PR middle-end/24306
15596 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
15597 (mips_gimplify_va_arg_expr): Call it instead of
15598 std_gimplify_va_arg_expr.
15599
ffc589a8 156002012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
15601
15602 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
15603 message for -mno-pointers-to-nested-function.
15604
476e59ce 156052012-02-07 Eric Botcazou <ebotcazou@adacore.com>
15606
15607 PR middle-end/51994
15608 * expr.c (get_inner_reference): If there is an offset, add a negative
15609 bit position to it (if any).
15610
ec458c01 156112012-02-07 Jakub Jelinek <jakub@redhat.com>
15612
15613 PR rtl-optimization/52060
15614 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
15615 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
15616 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
15617 and/or i0src_copy2 when needed.
15618
47c380e4 156192012-02-07 Jakub Jelinek <jakub@redhat.com>
15620
1d784785 15621 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
15622 or LTOPLUGINSONAME if have_c.
15623
47c380e4 15624 * config/freebsd-spec.h: Add comment about what macros can be defined
15625 in this header.
15626 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
15627 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
15628 here instead.
15629
57d4f313 156302012-02-07 Richard Guenther <rguenther@suse.de>
15631
15632 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
15633 newline in -alias dumps.
15634
b86a2627 156352012-02-07 Kai Tietz <ktietz@redhat.com>
67755ff0 15636 Dave Korn <dave.korn.cygwin@gmail.com>
b86a2627 15637
15638 PR target/40068
15639 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
15640 Take care that typinfo gets dllexport-attribute.
15641
792729b8 156422012-02-07 Jakub Jelinek <jakub@redhat.com>
15643
15644 PR middle-end/52074
15645 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
15646 if modifier < EXPAND_SUM call force_operand on the result.
15647
83debce3 156482012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
15649
15650 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
15651 adding __forwarder_dst__ prefix if a forwarder_section attribute is
15652 present.
15653 (epiphany_function_type): Replace types for specific interrupts with
15654 EPIPHANY_FUNCTION_INTERRUPT.
15655 (EPIPHANY_INTERRUPT_P): Update.
15656 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
15657 New static function.
15658 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
15659 <disinterrupt>: Affects type identity.
15660 (epiphany_handle_interrupt_attribute): Handle variable number of
15661 arguments.
15662 (epiphany_compute_function_type): Update for new
15663 epiphany_function_type definition.
15664 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
15665 handlers with a longcall forwarder.
15666 (epiphany_start_function): Handle multiple interrupt arguments and/or
15667 forwarder_section attribute.
15668
67755ff0 15669 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
15670 libgloss.
fad55529 15671
fd68342f 156722012-02-07 Alan Modra <amodra@gmail.com>
15673
15674 PR target/52107
15675 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
15676 subregs of TFmode.
15677
de8d8819 156782012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15679
15680 PR tree-optimization/50969
15681 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
15682 use vec_perm rather than vector_stmt.
15683 (vect_model_load_cost): Likewise.
15684 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
15685 vec_perm to be the same as other vector statements.
15686 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
15687 cost of vec_perm for TARGET_VSX.
15688
f509e778 156892012-02-06 Richard Guenther <rguenther@suse.de>
15690
15691 PR tree-optimization/52115
15692 * tree-sra.c (access_has_replacements_p): New function.
15693 (sra_modify_assign): Use it to decide whether a use is uninitialized.
15694
c86dbacd 156952012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
15696
15697 PR middle-end/52047
15698 * trans-mem.c (expand_call_tm): Add an assertion.
15699 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
15700 functions.
15701
316830ac 157022012-02-06 Richard Guenther <rguenther@suse.de>
15703
15704 PR tree-optimization/50955
15705 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
15706 raise cost of expressions that replace an address with an
15707 expression based on a different pointer.
15708
98d44ce4 157092012-02-06 Jakub Jelinek <jakub@redhat.com>
15710
15711 PR target/52129
15712 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
15713 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
15714
0737bc6a 157152012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
15716
15717 PR c++/48680
15718 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
15719 -Weffc++ and specify guidelines come from second edition.
15720
cc798c09 157212012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
15722
15723 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
15724 (sibcall_value_multiple_internal, call_split, call_internal_direct)
15725 (call_direct_split, call_value_split, call_value_internal_direct)
15726 (call_value_direct_split, call_value_multiple_split): Use jal and
15727 jal_macro attributes.
15728
677315b6 157292012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
15730
15731 * reload1.c (reload_regs_reach_end_p): Replace with...
15732 (reload_reg_rtx_reaches_end_p): ...this function.
15733 (new_spill_reg_store): Update commentary.
15734 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
15735 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
15736 before setting new_spill_reg_store.
15737 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
15738 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
15739 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
15740 for non-spill reload registers.
15741
bed8b93b 157422012-02-05 Ira Rosen <irar@il.ibm.com>
15743
15744 PR tree-optimization/52091
15745 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
15746 (vect_is_simple_use_1): Likewise.
15747 * tree-vect-loop.c (vectorizable_reduction): Update calls
15748 to vect_is_simple_use_1 and vect_is_simple_use.
15749 (vectorizable_live_operation): Likewise.
15750 * tree-vect-patterns.c (widened_name_p,
67755ff0 15751 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
bed8b93b 15752 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
67755ff0 15753 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
15754 vectorizable_shift,vectorizable_operation, vectorizable_store,
15755 vectorizable_load): Likewise.
bed8b93b 15756 (vect_is_simple_cond): Add an argument, pass it to
15757 vect_is_simple_use_1.
15758 (vectorizable_condition): Update calls to vect_is_simple_cond,
15759 vect_is_simple_use.
15760 (vect_is_simple_use): Add an argument, the statement in which
15761 OPERAND is used. Check that if OPERAND's def stmt is a double
15762 reduction phi node, the use is a phi node too.
15763 (vect_is_simple_use_1): Add an argument, pass it to
15764 vect_is_simple_use.
15765 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
15766 to vect_is_simple_use.
15767
08b31038 157682012-02-04 Jakub Jelinek <jakub@redhat.com>
15769
56134a9f 15770 PR rtl-optimization/52095
15771 * modulo-sched.c (dump_insn_locator): New function.
15772 (loop_canon_p, sms_schedule): Use it.
15773
08b31038 15774 PR rtl-optimization/52113
15775 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
15776 even for decomposable shift/zext insns.
15777
4a169b5e 157782012-02-03 Jakub Jelinek <jakub@redhat.com>
15779 Zdenek Dvorak <ook@ucw.cz>
15780
15781 PR rtl-optimization/52092
15782 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
15783 on get_iv_value result.
15784
24d7beb3 157852012-02-02 Andrew Pinski <apinski@cavium.com>
15786
15787 PR middle-end/47982
15788 PR middle-end/43967
15789 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
15790
00c00a40 157912012-02-02 Jakub Jelinek <jakub@redhat.com>
15792
15793 PR middle-end/48071
15794 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
15795
169d9eaf 157962012-02-02 Vladimir Makarov <vmakarov@redhat.com>
15797
15798 PR rtl-optimization/49800
15799 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
15800 (sched_finish): Call regstat_free_n_sets_and_refs.
15801
a13b68f1 158022012-02-02 Jia Liu <proljc@gmail.com>
15803
15804 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
15805 than operand 2.
15806
6bb01a79 158072012-02-02 Jan Hubicka <jh@suse.cz>
15808 Tom de Vries <tom@codesourcery.com>
b0898cb7 15809
15810 PR middle-end/51998
15811 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
15812 * varpool.c (varpool_analyze_pending_decls): Likewise.
15813
b9fdd12b 158142012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
15815 Jayant R Sonar <jayant.sonar@kpitcummins.com>
15816
15817 * config.gcc: Add cr16-* support.
15818
15819 * doc/extend.texi: Document cr16 extensions.
15820 * doc/install.texi: Document cr16 install.
15821 * doc/invoke.texi: Document cr16 options.
15822 * doc/md.texi: Document cr16 constraints.
15823
15824 * common/config/cr16/cr16-common.c: New file.
15825 * config/cr16/cr16.c: New file.
15826 * config/cr16/cr16.h: New file.
15827 * config/cr16/cr16.md: New file.
15828 * config/cr16/cr16.opt: New file.
15829 * config/cr16/cr16-protos.h: New file.
15830 * config/cr16/predicates.md: New file.
15831 * config/cr16/constraints.md: New file.
15832 * config/cr16/t-cr16: New file.
15833
ddee24bb 158342012-02-02 Jakub Jelinek <jakub@redhat.com>
15835
80b67e55 15836 PR target/52086
15837 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
15838 that operands[2] is either immediate, or q_regs_operand.
15839
ddee24bb 15840 PR tree-optimization/52073
15841 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
15842 a pattern stmt for pattern uses, ignore uses outside of the loop.
15843
02a011e9 158442012-02-01 Georg-Johann Lay <avr@gjlay.de>
15845
15846 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
15847 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
15848 (OUT_AS1, OUT_AS2): Remove.
15849
5dcaa548 158502012-02-01 Georg-Johann Lay <avr@gjlay.de>
15851
15852 PR rtl-optimization/51374
15853 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
15854 to cross other volatile_refs_p insns.
15855
b75cad1f 158562012-02-01 Richard Guenther <rguenther@suse.de>
15857
15858 * doc/invoke.texi (fno-inline): Clarify documentation.
15859 (finline-small-functions): Likewise.
15860 (finline-functions): Likewise.
15861 * common.opt (finline): Adjust comment and documentation.
15862 (finline-small-functions): Clarify documentation.
15863 (finline-functions): Likewise.
15864 (finline-functions-called-once): Likewise.
15865
b589b3b4 158662012-02-01 Tristan Gingold <gingold@adacore.com>
15867
15868 * c-typeck.c (composite_type): Keep mode for pointers.
15869
e49cbd3a 158702012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
15871
15872 * function.h (regno_reg_rtx): Adjust comment.
15873 * reginfo.c (init_reg_modes_target): Only use the previous mode
15874 if it fits within one register. Remove MIPS comment.
15875
3e9db8fa 158762012-01-31 Jakub Jelinek <jakub@redhat.com>
15877
15878 PR bootstrap/52058
15879 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
15880
a6dcd7c0 158812012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15882
15883 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
15884 to srak instruction.
15885
b004da1e 158862012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
15887
67755ff0 15888 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
b004da1e 15889
b74ba78c 158902012-01-31 Jakub Jelinek <jakub@redhat.com>
15891
15892 PR bootstrap/52041
15893 PR bootstrap/52039
15894 PR target/51974
15895 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
15896
192d2ed8 158972012-01-31 Richard Guenther <rguenther@suse.de>
15898
15899 PR tree-optimization/51528
15900 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
15901 assigns.
15902
32a07a44 159032012-01-31 Jakub Jelinek <jakub@redhat.com>
15904
15905 PR bootstrap/52041
15906 PR bootstrap/52039
15907 PR target/51974
15908 * ree.c (add_removable_extension): Change def_map argument
15909 to unsigned *, store in def_map 1 + offset into *insn_list vector
15910 instead of pointers into the vector.
15911 (find_removable_extensions): Adjust caller.
15912
97bdce59 159132012-01-30 Georg-Johann Lay <avr@gjlay.de>
15914
15915 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
15916 Transform all "* quoted-c-code" to { c-code }.
15917 Remove redundant test for "optimize" in combine patterns.
15918 Move (include "avr-dimode.md") to end of file.
15919
232b7e7e 159202012-01-30 Bin Cheng <bin.cheng@arm.com>
15921
15922 PR target/51835
15923 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
15924 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
15925
a4d16d30 159262012-01-30 Richard Guenther <rguenther@suse.de>
15927
15928 PR tree-optimization/52028
15929 * tree-loop-distribution.c (ldist_gen): Properly update
15930 virtual SSA form.
15931
30e4f955 159322012-01-30 Jakub Jelinek <jakub@redhat.com>
15933
f9a7b553 15934 PR debug/52027
15935 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
15936 set_cur_line_info_table if not emitting debug info.
15937
3a542b98 15938 PR tree-optimization/52046
15939 * tree-vect-patterns.c (check_bool_pattern): Give up if
15940 a comparison could throw.
15941
30e4f955 15942 PR debug/52048
15943 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
15944
b7b10fb5 159452012-01-30 Richard Guenther <rguenther@suse.de>
15946
15947 PR tree-optimization/52045
15948 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
15949 SSA form if cfgcleanup did anything.
15950
e723655c 159512012-01-30 Richard Guenther <rguenther@suse.de>
15952
15953 PR tree-optimization/52045
15954 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
15955 before computing final todo.
15956
ce0c5a57 159572012-01-30 Richard Guenther <rguenther@suse.de>
15958
15959 PR tree-optimization/51528
15960 * tree-sra.c (sra_modify_assign): Re-factor in preparation
15961 for PR51528 fix.
15962
a1cf9167 159632012-01-30 Paolo Bonzini <bonzini@gnu.org>
15964
15965 * df-problems.c (df_kill_notes): Check that the use refers
15966 to the note under examination.
15967
6d293a49 159682012-01-30 Eric Botcazou <ebotcazou@adacore.com>
15969
15970 PR target/51920
15971 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
15972 parameter and use short-lived pseudos.
15973 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
15974 (sparc_expand_vector_init): Const-ify local variables and adjust
15975 calls to above functions.
15976
578c09ca 159772012-01-30 Georg-Johann Lay <avr@gjlay.de>
15978
15979 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
15980
009f90be 159812012-01-29 Sandra Loosemore <sandra@codesourcery.com>
15982
15983 * doc/invoke.texi: Make usage of "compile time" and
15984 "run time"/"runtime" consistent throughout the file.
15985
669cf718 159862012-01-29 Uros Bizjak <ubizjak@gmail.com>
15987
67755ff0 15988 * config/alpha/alpha.c (alpha_option_override): Default to
669cf718 15989 full IEEE compliance mode for Go language.
15990
3169c57a 159912012-01-29 Tijl Coosemans <tijl@coosemans.org>
0cfd09e4 15992
15993 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
15994 (LINK_SSP_SPEC): Define.
15995
16309fef 159962012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15997
15998 PR target/51871
15999 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
16000 stubs.
16001
82e24083 160022012-01-28 Sandra Loosemore <sandra@codesourcery.com>
16003
16004 * doc/invoke.texi: Correct hyphenation of "floating point",
16005 "double precision", and related terminology throughout the file.
16006
2d05dfad 160072012-01-28 Jakub Jelinek <jakub@redhat.com>
16008
16009 PR target/52006
16010 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
16011 arm_general_register_operand predicate for operand 2 instead of
16012 register_operand.
16013
c307f106 160142012-01-27 Ian Lance Taylor <iant@google.com>
16015
16016 PR go/47656
16017 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
16018 * builtins.c (expand_builtin_init_trampoline): Add onstack
16019 parameter. Change caller.
16020 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
16021 * tree.c (build_common_builtin_nodes): Declare
16022 __builtin_init_heap_trampoline.
16023
2d86450c 160242012-01-27 Georg-Johann Lay <avr@gjlay.de>
16025
16026 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
16027 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
16028 * config/avr/avr.c: Ditto.
16029 (avr_regnames): Remove because unused.
16030 * config/avr/avr.md (*cpse.ne): New peephole.
16031 (*cpse.eq): New peephole from former cpse peepholes.
16032
3542dbe2 160332012-01-27 Michael Eager <eager@eagercon.com>
16034
16035 * config/microblaze.c (microblaze_emit_compare): Correct
16036 test after pcmp instruction.
16037
9d9e2a99 160382012-01-27 Richard Guenther <rguenther@suse.de>
16039
16040 PR tree-optimization/52020
16041 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
16042
541c6dbb 160432012-01-27 Richard Guenther <rguenther@suse.de>
16044
16045 * ipa-pure-const.c (check_stmt): Clobbers do not make a
16046 function non-const/pure.
16047
25b3bbad 160482012-01-27 Richard Guenther <rguenther@suse.de>
16049
16050 PR tree-optimization/50444
16051 * tree-sra.c (build_ref_for_offset): Properly adjust the
16052 MEM_REF type for unaligned accesses.
16053
a598af2a 160542012-01-27 Richard Guenther <rguenther@suse.de>
16055
16056 PR tree-optimization/50444
16057 * expr.c (mem_ref_refers_to_non_mem_p): New function.
16058 (expand_assignment): Use it. Properly handle misaligned
16059 bases when expanding stores to component references.
16060 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
16061 refactor that case.
16062
c7af8ae7 160632012-01-27 Andrey Belevantsev <abel@ispras.ru>
16064
16065 PR middle-end/51389
16066 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
16067 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
16068 * tree-data-ref.c (find_data_references_in_loop): Make static.
16069 (compute_all_dependences): Change return type to bool. Bail out
16070 for too many datarefs in a loop. Move the hunk resetting the data
16071 dependences vector from ...
16072 (compute_data_dependences_for_loop): ... here. Account for
16073 compute_all_dependences returning false.
16074 (compute_data_dependences_for_bb): Likewise.
16075 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
16076 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
16077
3c089259 160782012-01-27 Richard Guenther <rguenther@suse.de>
16079
16080 PR middle-end/51959
16081 * expr.c (store_field): Use the alias-set of the scratch memory
16082 for storing to it.
16083
8a19bda6 160842012-01-27 Tom de Vries <tom@codesourcery.com>
16085
16086 PR tree-optimization/51990
669cf718 16087 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
16088 WITH_SIZE_EXPR.
8a19bda6 16089 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
16090
0a35a733 160912012-01-27 Jakub Jelinek <jakub@redhat.com>
16092
16093 PR debug/52001
16094 * var-tracking.c (reverse_op): Don't add any reverse operation
16095 if V already has any constant locations.
16096
95e413db 160972012-01-27 Sandra Loosemore <sandra@codesourcery.com>
16098
16099 * doc/invoke.texi: Correct usage of "command line" (noun)
16100 vs "command-line" (adjective) throughout.
16101
ec9e53f7 161022012-01-27 Sandra Loosemore <sandra@codesourcery.com>
16103
16104 * doc/invoke.texi (Language Independent Options): Move
16105 -Wcoverage-mismatch blurb from here....
16106 (Warning Options): ...to here.
16107
7b3c2599 161082012-01-27 Peter Bergner <bergner@vnet.ibm.com>
16109
16110 * config/rs6000/rs6000.c (rs6000_option_override_internal):
16111 Set rs6000_always_hint to false for 476.
16112
c5698d9f 161132012-01-27 Matthias Klose <doko@ubuntu.com>
16114
16115 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
16116 system root.
16117 * incpath.c (add_standard_paths): Likewise.
16118
2a967206 161192012-01-27 Richard Henderson <rth@redhat.com>
16120
16121 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
16122 * config/m68k/sync.md (atomic_test_and_set): Rename from
16123 sync_test_and_setqi and adjust the operands.
16124 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
16125 and unconditionally enable.
16126
8481386e 161272012-01-27 Richard Henderson <rth@redhat.com>
16128
16129 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
16130 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
16131 (ldstub): Rename from ldstubqi.
16132 (ldstub<I24MODE>): Remove.
16133
df1680c8 161342012-01-27 Richard Henderson <rth@redhat.com>
16135
16136 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
16137 * c-cppbuiltin.c (cpp_atomic_builtins): Define
16138 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
16139 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
16140 * doc/tm.texi: Rebuild.
16141
ea17dfa7 161422012-01-27 Richard Henderson <rth@redhat.com>
16143
16144 * optabs.c (gen_atomic_test_and_set): Remove default.
16145 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
16146
7715a410 161472012-01-26 Jakub Jelinek <jakub@redhat.com>
16148
16149 PR rtl-optimization/51978
669cf718 16150 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
7715a410 16151 (combine_reaching_defs): Likewise.
16152 (struct re_info): Remove.
16153 (add_removable_extension): Remove x and data arguments,
16154 add insn, insn_list and def_map. Use the arguments directly
16155 instead of using struct re_info.
16156 (find_removable_extensions): Don't call add_removable_extension
16157 through note_stores, instead just call it with single_set
16158 result if non-NULL.
16159 (find_and_remove_re): Pass curr_cand->expr instead of
669cf718 16160 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
7715a410 16161
b74338cf 161622012-01-26 Michael Matz <matz@suse.de>
16163
16164 PR tree-optimization/46590
16165 * cfgexpand.c: Revert last change (r183305).
16166 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
16167 regs.
16168 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
16169 checking for emptiness.
16170
597cee6a 161712012-01-26 Jakub Jelinek <jakub@redhat.com>
16172
16173 PR middle-end/51895
16174 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
16175 non-addressable non-BLKmode base correctly.
16176
4b393c71 161772012-01-26 Michael Matz <matz@suse.de>
16178
16179 PR tree-optimization/48794
16180 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
16181 regions referenced from RESX/EH_DISPATCH.
16182
abb9bd4b 161832012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16184
16185 * config/s390/s390.h: Make BRANCH_COST an option.
16186 * config/s390/s390.opt: New option -mbranch-cost.
16187
e0f3ea3e 161882012-01-26 Richard Henderson <rth@redhat.com>
16189
16190 Revert 2012-01-24 change:
16191 * trans-mem.c (requires_barrier): Do not instrument thread local
16192 variables and emit save/restore for them.
16193
1d5a3bac 161942012-01-25 Jakub Jelinek <jakub@redhat.com>
16195
16196 PR middle-end/51986
16197 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
16198 for pat == 0.
16199
fb7bf3ef 162002012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
16201
0788eaac 16202 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
16203 ASM_OPERANDS.
fb7bf3ef 16204
590da9f2 162052012-01-25 Georg-Johann Lay <avr@gjlay.de>
16206
16207 PR target/49868
16208 Rename __pgm to __flash.
16209 Rename __pgm1 to __flash1.
16210 Rename __pgm2 to __flash2.
16211 Rename __pgm3 to __flash3.
16212 Rename __pgm4 to __flash4.
16213 Rename __pgm5 to __flash5.
16214 Rename __pgmx to __memx.
16215 * doc/extend.texi (AVR Named Address Spaces)
16216 Rename address space names as indicated above.
16217 * config/avr/avr.c (avr_addrspace): Ditto.
16218
16219 * config/avr/avr-protos.h
16220 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
16221 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
16222 * config/avr/predicates.md: Ditto.
16223 * config/avr/avr.c Ditto, and
16224 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
16225 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
16226
16227 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
16228 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
16229 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
16230 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
16231 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
16232 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
16233 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
16234 * config/avr/avr.c: Ditto.
16235 * config/avr/avr.md: Ditto.
16236
807e0fc2 162372012-01-25 Jason Merrill <jason@redhat.com>
16238
16239 PR c++/51992
16240 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
16241
e9156cad 162422012-01-25 Jakub Jelinek <jakub@redhat.com>
16243
16244 PR tree-optimization/51987
16245 * tree-data-ref.c (get_references_in_stmt): Handle references in
16246 non-volatile GIMPLE_ASM.
16247
f9f051a3 162482012-01-25 Richard Guenther <rguenther@suse.de>
16249
16250 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
16251 bases are dereferenced.
16252
2c622b2e 162532012-01-25 Andrey Belevantsev <abel@ispras.ru>
16254
16255 PR rtl-optimization/48374
669cf718 16256 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
2c622b2e 16257
713f1f14 162582012-01-25 Andrey Belevantsev <abel@ispras.ru>
16259
16260 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
16261 compute_data_dependences_for_loop returns false.
16262 * tree-parloops.c (loop_parallel_p): Likewise.
16263
69fbc3aa 162642012-01-25 Richard Guenther <rguenther@suse.de>
16265
16266 * tree.h (get_pointer_alignment_1): Declare.
16267 * builtins.c (get_pointer_alignment_1): New function.
16268 (get_pointer_alignment): Use it.
16269
eed2904a 162702012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16271
16272 PR rtl-optimization/48308
16273 * combine.c (enum undo_kind): Add UNDO_LINKS.
16274 (struct undo): Add member l to other_contents and where.
16275 (do_SUBST_LINK): New.
16276 (SUBST_LINK): New.
16277 (try_combine): Handle LOG_LINKS for the dummy i1 case.
16278 (undo_all): Handle UNDO_LINKS.
16279
d7c18c60 162802012-01-25 Richard Henderson <rth@redhat.com>
16281
16282 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
16283 mem inputs.
16284
dc4461a1 162852012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
16286
16287 * optabs.c (gen_atomic_test_and_set): Use each argument.
16288
11a9f55b 162892012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
16290
16291 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
16292 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
16293 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
16294 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
16295 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
16296 TARGET_PAIRED_SINGLE_FLOAT.
16297
402f6a9e 162982012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
16299
16300 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
16301 (in_struct, return_val): Remove MEM documentation.
16302 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
16303 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
16304 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
16305 and MEM_SCALAR.
16306 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
16307 * cfgexpand.c (add_alias_set_conflicts): Likewise.
16308 * expr.c (store_field): Likewise.
16309 * function.c (assign_stack_temp_for_type): Likewise.
16310 * ifcvt.c (noce_try_cmove_arith): Likewise.
16311 * reload1.c (reload): Likewise.
16312 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
16313 (alpha_set_memflags): Likewise.
16314 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
16315
376a287d 163162012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
16317
16318 * rtl.h (true_dependence, canon_true_dependence): Remove varies
16319 parameter.
16320 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
16321 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
16322 (true_dependence_1, true_dependence, canon_true_dependence): Remove
16323 varies parameter.
16324 * cselib.c (cselib_rtx_varies_p): Delete.
16325 (cselib_invalidate_mem): Update call to canon_true_dependence.
16326 * dse.c (record_store, check_mem_read_rtx): Likewise.
16327 (scan_reads_nospill): Likewise.
16328 * cse.c (check_dependence): Likewise.
16329 (cse_rtx_varies_p): Delete.
16330 * expr.c (safe_from_p): Update call to true_dependence.
16331 * ira.c (validate_equiv_mem_from_store): Likewise.
16332 (memref_referenced_p): Likewise.
16333 * postreload-gcse.c (find_mem_conflicts): Likewise.
16334 * sched-deps.c (sched_analyze_2): Likewise.
16335 * store-motion.c (load_kills_store): Likewise.
16336 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
16337 * gcse.c (mems_conflict_for_gcse_p): Likewise.
16338 (compute_transp): Update call to canon_true_dependence.
16339
39ca90d5 163402012-01-25 Richard Henderson <rth@redhat.com>
16341
16342 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
16343 (maybe_emit_atomic_test_and_set): New.
16344 (expand_sync_lock_test_and_set): Use it.
16345 (expand_atomic_test_and_set): Likewise.
16346 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
16347 the implementation; clarify implementation defined details.
16348 * doc/md.texi (atomic_test_and_set): Document.
16349
803dea20 163502012-01-25 Richard Henderson <rth@redhat.com>
16351
16352 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
16353
256897f4 163542012-01-25 Richard Henderson <rth@redhat.com>
16355
16356 PR target/51968
16357 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
16358 to effect no-op split.
16359
9eb529b8 163602012-01-24 Aldy Hernandez <aldyh@redhat.com>
16361
16362 PR lto/51698
16363 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
16364 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
16365 (BT_FN_VOID_PTR_INT_SIZE): New.
16366 (BT_FN_UINT_UINT_VAR): Remove.
16367 (BT_FN_UINT32_UINT32_VAR): New.
16368 (BT_FN_DOUBLE_VPTR): Remove.
16369 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
16370
669cf718 16371 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
9eb529b8 16372 (_ITM_changeTransactionMode): Same.
16373 (_ITM_memmoveRtWt): Change return type to void.
16374 (_ITM_memcpyRtWt): Same.
16375 (_ITM_memsetW): Same.
16376 (_ITM_RaRD): Change types to double.
16377 (_ITM_RD): Same.
16378 (_ITM_RaWD): Same.
16379 (_ITM_RfWD): Same.
16380
16381 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
16382
5db3f9d5 163832012-01-24 Aldy Hernandez <aldyh@redhat.com>
16384 Patrick Marlier <patrick.marlier@gmail.com>
16385
16386 * trans-mem.c (requires_barrier): Do not instrument thread local
16387 variables and emit save/restore for them.
16388
07828d90 163892012-01-24 Jason Merrill <jason@redhat.com>
16390
16391 PR c++/51812
16392 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
16393 output static aliases.
16394
1412b935 163952012-01-24 Jakub Jelinek <jakub@redhat.com>
16396
16397 PR driver/47249
16398 * common.opt (-pie, -shared, pie, shared): Change from Common to
16399 Driver.
16400 * gcc.c (display_help): Display help for -pie and -shared.
16401
6ee532ba 164022012-01-24 Georg-Johann Lay <avr@gjlay.de>
16403
16404 PR target/49868
16405 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
16406 Remove note on size/offset limitation.
16407 (AVR Variable Attributes): Add example how to read data located
16408 with progmem. Refer to named address spaces.
16409 * doc/invoke.texi (AVR Options): Fix typo.
16410
7f295214 164112012-01-24 Richard Guenther <rguenther@suse.de>
16412
16413 Forward-port to trunk
16414 2010-09-21 Jakub Jelinek <jakub@redhat.com>
16415
16416 PR middle-end/45678
16417 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
16418 op0 isn't sufficiently aligned and there is movmisalignM
16419 insn for mode, use it to load op0 into a temporary register.
16420
202e7097 164212012-01-24 Jakub Jelinek <jakub@redhat.com>
16422
16423 PR target/51957
16424 * target.def (const_not_ok_for_debug_p): New hook.
16425 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
16426 documentation.
16427 * doc/tm.texi: Regenerated.
16428 * dwarf2out.c (const_ok_for_output_1): If
16429 targetm.const_not_ok_for_debug_p returns true, fail.
16430 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
16431 function.
16432 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
16433
c96c9817 164342012-01-23 Kai Tietz <ktietz@redhat.com>
16435
16436 PR target/51900
16437 * config/i386/predicates.md (symbolic_operand): Allow
16438 UNSPEC_PCREL as PIC expression for lea.
16439 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
16440 * config/i386/i386.c (ix86_delegitimize_address): Handle
16441 UNSPEC_PCREL for none-MEM, too.
16442
caf29404 164432012-01-23 Aldy Hernandez <aldyh@redhat.com>
16444
16445 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
16446 (ipa_tm_create_version_alias): Same.
16447
669cf718 164482012-01-23 Uros Bizjak <ubizjak@gmail.com>
be83ebf7 16449
16450 PR libitm/51830
16451 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
16452 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
16453
38fe0c89 164542012-01-23 Aldy Hernandez <aldyh@redhat.com>
16455 Patrick Marlier <patrick.marlier@gmail.com>
16456 Iain Sandoe <developer@sandoe-acoustics.co.uk>
16457
16458 PR lto/51916
16459 * lto-wrapper.c (run_gcc): Pass the LTO section name to
16460 simple_object_start_read.
16461
b94ae734 164622012-01-23 Richard Guenther <rguenther@suse.de>
16463
38fe0c89 16464
b94ae734 16465 PR tree-optimization/51895
16466 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
16467 parameter decomposition into BLKmode components.
16468
bd57fdff 164692012-01-23 Eric Botcazou <ebotcazou@adacore.com>
16470
16471 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
16472 fake variables for restrict-qualified pointers whose pointed-to type
16473 contains a placeholder.
16474
f3941af5 164752012-01-23 Richard Guenther <rguenther@suse.de>
16476
16477 PR tree-optimization/51949
be83ebf7 16478 * ipa-split.c (execute_split_functions): Do not split malloc functions.
f3941af5 16479
6bd23a69 164802012-01-23 Jakub Jelinek <jakub@redhat.com>
16481
16482 PR rtl-optimization/51933
16483 * ree.c (transform_ifelse): Return true right away if dstreg is
16484 already wider or equal to cand->mode.
16485 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
16486 (make_defs_and_copies_lists): Remove defs_list and copies_list
16487 arguments, add state argument, just truncate state->work_list
16488 instead of always allocating and freeing the vector. Assert that
be83ebf7 16489 get_defs succeeds instead of returning 2. Changed return type to bool.
6bd23a69 16490 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
16491 have ext_src_mode, see if it has been modified already with the
16492 right kind of extension and has been extended before from the
16493 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
be83ebf7 16494 just return true. Remember the original mode in state->modified array.
6bd23a69 16495 (combine_reaching_defs): Add state argument. Don't allocate and
16496 free here def_list, copied_list and vec vectors, instead just
be83ebf7 16497 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
6bd23a69 16498 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
16499 Add state variable, clear vectors in it, initialize state.modified
16500 if needed. Free all the vectors at the end and state.modified too.
16501 Don't skip a candidate if the extension expression has been modified.
16502
af8e12d0 165032012-01-22 Douglas B Rupp <rupp@gnat.com>
16504
16505 PR target/47096
16506 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
16507 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
16508 (extra_options) interix.opt -> i386/interix.opt"
16509 (extra_objs):Add winnt-stubs.o
16510 * configure.ac: Add interix to target_os .comm on PE check.
16511 * configure: Regenerate.
16512 * config/interix3.h: Delete and move bits to..
16513 * config/interix.h: Delete and move bits to..
16514 * config/i386/i386-interix3.h: Delete and move bits to..
16515 * config/i386/i386-interix.h: ..here.
16516 (TARGET_CPU_DEFAULT): Remove redefinition.
16517 (TARGET_ASM_CONSTRUCTOR): Undefine.
16518 (SUBTARGET_SWITCHES): Define for ms-bitfields.
16519 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
16520 (PTRDIFF_TYPE): Define.
16521 (LONG_DOUBLE_TYPE_SIZE): Define.
16522 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
16523 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
16524 (TARGET_SECTION_TYPE_FLAGS): Define.
16525 (ASM_DECLARE_FUNCTION_NAME): Define.
16526 (ASM_OUTPUT_EXTERNAL): Define.
16527 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
16528 (ASM_OUTPUT_ALIGNED_BSS): Define.
16529 (PCC_BITFIELD_TYPE_MATTERS): Define.
16530 (USE_CONST_SECTION): Define.
16531 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
16532 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
16533 (SUPPORTS_ONE_ONLY): Remove.
16534 (I386_PE_STRIP_ENCODING): Define.
16535 * config/interix.opt: Delete and move bits to..
16536 * config/i386/interix.opt: ..here. New.
16537 (mpe-aligned-commons): Add.
16538 * config/i386/t-interix: Add copyright header.
16539 (winnt-stubs.o): Add rule.
16540
e87b587e 165412012-01-22 Jason Merrill <jason@redhat.com>
16542
16543 PR c++/51832
16544 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
16545 for extra name aliases.
16546
4a77f173 165472012-01-22 Eric Botcazou <ebotcazou@adacore.com>
16548
16549 PR rtl-optimization/51924
16550 * ree.c (combine_set_extension): Improve debugging message.
16551 (combine_reaching_defs): Likewise.
16552 (get_defs): Rename confusingly named variable.
16553 (find_and_remove_re): Skip a candidate if the extension expression has
16554 been modified.
16555
e351cc52 165562012-01-21 Robert Millan <rmh@gnu.org>
16557 Gerald Pfeifer <gerald@pfeifer.com>
16558
16559 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
16560 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
16561
3991e956 165622012-01-20 Jakub Jelinek <jakub@redhat.com>
16563
16564 PR tree-optimization/51914
16565 * tree-vect-stmts.c (vectorizable_conversion): For
16566 cvt_type && modifier == WIDEN, put temporary with cvt_type
16567 at the beginning of vec_dsts and set vec_dest to temporary
16568 with vectype_out.
16569
4c2112a3 165702012-01-20 Eric Botcazou <ebotcazou@adacore.com>
16571
16572 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
16573
3169c57a 165742012-01-20 Tijl Coosemans <tijl@coosemans.org>
9492fb06 16575
16576 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
16577 * config/rs6000/rs6000.c: Likewise.
16578
40053ccb 165792012-01-20 Jakub Jelinek <jakub@redhat.com>
16580
16581 PR target/51915
16582 * config/arm/arm.c (arm_count_output_move_double_insns): Call
16583 output_move_double on a copy of operands array.
16584
be83ebf7 165852012-01-20 Cary Coutant <ccoutant@google.com>
16586 Dodji Seketeli <dodji@redhat.com>
946ae316 16587
16588 PR debug/45682
16589 * dwarf2out.c (copy_declaration_context): Return ref to parent
16590 of declaration DIE, if necessary.
16591 (remove_child_or_replace_with_skeleton): Add new parameter; update
16592 caller. Place skeleton DIE under parent DIE of original declaration.
16593 Move call to copy_declaration_context to here ...
16594 (break_out_comdat_types): ... from here.
16595
2bfb4f13 165962012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16597
16598 PR rtl-optimization/51856
16599 * reload.c (find_reloads_subreg_address): Set the address_reloaded
16600 flag to reloaded.
16601
093defc8 166022012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16603
16604 PR target/51819
16605 * config/arm/arm.c (arm_print_operand): Correct output of alignment
16606 hints for neon loads and stores.
16607
8516b1c4 166082012-01-20 Georg-Johann Lay <avr@gjlay.de>
16609
16610 PR target/49868
16611 PR target/50887
16612 * doc/extend.texi (Named Address Spaces): Split into subsections.
16613 (AVR Named Address Spaces): New subsection.
16614 (M32C Named Address Spaces): New subsection.
16615 (RL78 Named Address Spaces): New subsection.
16616 (SPU Named Address Spaces): New subsection.
16617 (Variable Attributes): New anchor "AVR Variable Attributes".
16618 (AVR Variable Attributes): Rewrite and avoid wording
16619 "address space" in this context.
16620 * doc/invoke.texi (AVR Options): Rewrite and add documentation
16621 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
16622 (AVR Built-in Macros): New subsubsection therein.
16623 * doc/md.texi (AVR constraints): Remove "C04", "R".
16624
173bd570 166252012-01-20 Richard Guenther <rguenther@suse.de>
16626
16627 PR tree-optimization/51903
16628 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
16629 when removing stmts.
16630
350ccca5 166312012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16632
16633 PR target/50313
16634 * config/arm/arm.c (arm_load_pic_register): Use
16635 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
16636 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
16637 (arm_pic_static_addr): Likewise.
16638 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
16639 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
16640 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
16641 (pic_load_addr_unified): New.
16642
fb10e416 166432012-01-20 Andrey Belevantsev <abel@ispras.ru>
16644
16645 PR target/51106
16646 * function.c (instantiate_virtual_regs_in_insn): Use
16647 delete_insn_and_edges when removing a wrong asm insn.
16648
9f8ac546 166492012-01-19 Vladimir Makarov <vmakarov@redhat.com>
16650
16651 PR rtl-optimization/40761
be83ebf7 16652 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
16653 Add new member loop_num.
9f8ac546 16654 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
16655 (ira_build): Remove the parameter.
16656
be83ebf7 16657 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
9f8ac546 16658 (ira.c): Do not build CFG loops for one region allocation. Remove
16659 argument from ira_build call.
16660
16661 * ira-build.c (init_loop_tree_node): New function.
16662 (create_loop_tree_nodes): Use it. Separate the case when CFG
16663 loops are not built.
16664 (more_one_region_p): Check current_loops.
16665 (finish_loop_tree_nodes): Separate the case when CFG loops are not
16666 built.
16667 (add_loop_to_tree): Process loop equal to NULL too.
16668 (form_loop_tree): Separate the case when CFG loops are not built.
16669 Use explicitly number for the root.
16670 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
16671 an assertion.
16672 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
16673 instead of loop->num.
be83ebf7 16674 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
9f8ac546 16675 (mark_all_loops_for_removal): Ditto.
16676 (remove_unnecessary_regions): Separate the case when CFG loops
16677 are not built.
16678 (ira_build): Remove the parameter. Use explicit number of regions
16679 when CFG loops are not built.
16680
be83ebf7 16681 * ira-color.c (print_loop_title): Separate the case for the root node.
16682 Use loop_num instead of loop->num.
9f8ac546 16683 (move_spill_restore): Use loop_num instead of loop->num.
16684
16685 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
16686 (change_loop): Ditto.
16687 (change_loop): Use loop_num instead of loop->num.
16688
16689 * ira-lives.c (process_bb_node_lives): Ditto.
16690
be83ebf7 16691 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
9f8ac546 16692
16693 * ira-conflicts.c (print_allocno_conflicts): Ditto.
16694
042161e8 166952012-01-19 Jakub Jelinek <jakub@redhat.com>
16696
8c1094a6 16697 PR libmudflap/40778
16698 * tree-mudflap.c (mf_artificial): New function.
16699 (execute_mudflap_function_ops, execute_mudflap_function_decls,
16700 mx_register_decls, mudflap_enqueue_decl): Use it.
16701
042161e8 16702 PR target/51876
16703 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
16704 numbers in the insn pattern.
16705
c729109b 167062012-01-19 Michael Matz <matz@suse.de>
16707
16708 PR tree-optimization/46590
16709 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
16710 use it in remembering which conflicts we already created.
16711 (add_scope_conflicts): Adjust call to above, (de)allocate helper
16712 bitmap.
16713
50f418ca 167142012-01-19 Aldy Hernandez <aldyh@redhat.com>
16715
16716 PR lto/51280
16717 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
16718 (merge_and_complain): Same.
16719
35f51475 167202012-01-19 Jakub Jelinek <jakub@redhat.com>
16721
16722 PR bootstrap/50237
16723 * config/initfini-array.h: Guard content of the header
16724 with #ifdef HAVE_INITFINI_ARRAY.
16725 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
16726 Add initfini-array.h to tm_file here.
be83ebf7 16727 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
35f51475 16728 * config.gcc: Don't add initfini-array.h to tm_file here.
16729 * configure: Regenerated.
16730
167312012-01-19 Andrey Belevantsev <abel@ispras.ru>
918fbeb3 16732
16733 PR rtl-optimization/51505
16734 * df-problems.c (df_kill_notes): New parameter live. Update comment.
16735 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
be83ebf7 16736 (df_note_bb_compute): Update the call to df_kill_notes.
918fbeb3 16737
3c8b8a41 167382012-01-18 Aldy Hernandez <aldyh@redhat.com>
16739
16740 * trans-mem.c (requires_barrier): Remove call to is_global_var.
16741
561ee8fc 167422012-01-18 Richard Guenther <rguenther@suse.de>
16743
16744 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
16745 of conversions to void *.
16746
4d18c297 167472012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16748 Richard Sandiford <rdsandiford@googlemail.com>
16749
16750 PR middle-end/50325
16751 PR middle-end/51192
16752 * optabs.h (simplify_expand_binop): Declare.
16753 * optabs.c (simplify_expand_binop): Make global.
16754 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
16755 endian targets if the source cannot be exactly covered by word
16756 mode chunks.
16757
2e851bb8 167582012-01-17 Jakub Jelinek <jakub@redhat.com>
16759
16760 PR bootstrap/51872
16761 * hard-reg-set.h (struct hard_reg_set_container): New type.
16762 * target.h (struct hard_reg_set_container): Forward declare.
16763 * target.def (set_up_by_prologue): New target hook.
16764 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
16765 * doc/tm.texi: Regenerated.
16766 * function.c (thread_prologue_and_epilogue_insns): Change
16767 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
16768 Call targetm.set_up_by_prologue on it.
16769 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
16770 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
16771
f35edb6f 167722012-01-17 Nick Clifton <nickc@redhat.com>
16773
16774 * config/rx/rx.c (rx_can_use_simple_return): New function.
16775 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
16776 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
16777
1211c450 167782012-01-17 Richard Guenther <rguenther@suse.de>
16779
16780 PR middle-end/51782
16781 * expr.c (expand_assignment): Take address-space information
16782 from the address operand of MEM_REF and TARGET_MEM_REF.
16783 (expand_expr_real_1): Likewise.
16784
59157d8c 167852012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16786
16787 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
16788 reload dump is requested.
16789
d6ded716 167902012-01-17 Aldy Hernandez <aldyh@redhat.com>
16791
16792 PR other/51165
16793 * trans-mem.c (requires_barrier): Call may_be_aliased.
16794
87af2d00 167952012-01-17 Jakub Jelinek <jakub@redhat.com>
16796
16797 PR tree-optimization/51877
16798 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
16799 call arguments and fndecls compare equal, instead return false if they
16800 don't. Return true only if lhs1 and lhs2 are either both NULL, or
16801 both SSA_NAMEs that are valueized the same, or they satisfy
16802 operand_equal_p.
16803
dfeb8a07 168042012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16805
16806 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
16807 Solaris 11+.
16808 * configure: Regenerate.
16809
4470b8f6 168102012-01-16 Jan Hubicka <jh@suse.cz>
16811
16812 PR c/12245
16813 PR c++/14179
16814 * convert.c (convert_to_integer): Use fold_convert for
16815 converting an INTEGER_CST to integer type.
16816
0ecef4a2 168172012-01-16 Jason Merrill <jason@redhat.com>
16818
16819 PR c++/14179
16820 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
16821
0c41699c 168222012-01-16 Jakub Jelinek <jakub@redhat.com>
16823
414bc417 16824 PR bootstrap/51860
16825 * config/s390/s390.c (s390_chunkify_start): Don't skip
16826 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
16827 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
16828 If insn is followed by NOTE_INSN_VAR_LOCATION or
16829 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
16830 Don't use location of note insns.
16831
0c41699c 16832 PR tree-optimization/51865
16833 * tree-inline.c (tree_function_versioning): Call remap_decl
16834 on DECL_RESULT whenever it has VOID_TYPE_P type.
16835
1f873db2 168362012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
16837
16838 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
16839 for calls to locally-binding MIPS16 functions if only the return
16840 type uses float regs.
16841
a657080a 168422012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
16843 Richard Sandiford <rdsandiford@googlemail.com>
16844
16845 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
16846 (SYMBOL_32_HIGH): Likewise.
16847 (mips_output_tls_reloc_directive): Declare.
16848 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
16849 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
16850 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
16851 (mips_lo_relocs, mips_hi_relocs): Make extern.
16852 (mips16_stub_function): Move up file.
16853 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
16854 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
16855 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
be83ebf7 16856 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
16857 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
a657080a 16858 (mips_get_tp): Add MIPS16 support.
16859 (mips_legitimize_tls_address): Remove MIPS16 sorry().
16860 Generalize DTPREL and TPREL handling.
16861 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
16862 Add MIPS16 TLS support.
16863 (mips_output_tls_reloc_directive): New function.
16864 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
16865 * config/mips/predicates.md (symbolic_operand_with_high)
16866 (tls_reloc_operand): New predicates.
16867 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
16868 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
16869 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
be83ebf7 16870 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
a657080a 16871 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
16872 (*tls_get_tp_mips16_call_<mode>): Likewise.
16873
75e237b7 168742012-01-15 Uros Bizjak <ubizjak@gmail.com>
16875
16876 PR rtl-optimization/51821
16877 * recog.c (peep2_find_free_register): Determine clobbered registers
16878 from insn pattern.
16879
9f42c829 168802012-01-14 Denis Chertykov <chertykov@gmail.com>
16881
16882 PR target/50925
16883 * config/avr/avr-protos.h: Revert change of 2012-01-09.
16884 * config/avr/avr.c: Likewise.
16885 * config/avr/avr.h: Likewise.
16886
3637bb87 168872012-01-13 Ian Lance Taylor <iant@google.com>
16888
16889 PR c++/50012
16890 * tree.h (TYPE_QUALS): Add cast to int.
16891 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
16892
981afcd0 168932012-01-13 Ian Lance Taylor <iant@google.com>
16894
16895 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
16896 comparing param_index to VEC_length result.
16897
13b67b5c 168982012-01-13 Steven Bosscher <steven@gcc.gnu.org>
16899
16900 * c-decl.c: Do not include tree-mudflap.h
16901 * tree-optimize.c: Likewise.
16902 * Makefile.in: Update dependencies.
16903
fc0c4d51 169042012-01-13 Richard Guenther <rguenther@suse.de>
16905
16906 PR middle-end/8081
16907 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
16908 variable-sized result always use RSO.
16909
df7f3935 169102012-01-12 DJ Delorie <dj@redhat.com>
16911
16912 * cfgexpand.c (convert_debug_memory_address): Allow any valid
16913 pointer type, not just the default pointer type.
16914
36b6158e 169152012-01-09 Richard Henderson <rth@redhat.com>
16916 Denis Chertykov <chertykov@gmail.com>
16917
16918 PR target/50925
16919 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
16920 * config/avr/avr.c (avr_can_eliminate): Simplify.
16921 (avr_initial_elimination_offset): Likewise.
16922 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
16923 (expand_epilogue): Likewise.
16924 (avr_legitimize_address): Gut.
16925 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
16926 (avr_hard_regno_nregs): New.
16927 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
16928 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
16929 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
16930 add soft frame pointer.
16931 (CALL_USED_REGISTERS): Likewise.
16932 (REG_CLASS_CONTENTS): Likewise.
16933 (REGISTER_NAMES): Likewise.
16934 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
16935 (HARD_FRAME_POINTER_REGNUM): New.
16936 (FRAME_POINTER_REGNUM): Use soft frame pointer.
16937 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
16938 remove the HARD_FRAME_POINTER self-elimination.
16939
4bdc263b 169402012-01-12 Georg-Johann Lay <avr@gjlay.de>
07b2ccdc 16941
16942 PR target/51756
16943 * config/avr/avr.c (avr_encode_section_info): Test for absence of
16944 DECL_EXTERNAL when checking for initializers of progmem variables.
16945
6175d24a 169462012-01-12 Ira Rosen <irar@il.ibm.com>
16947
16948 PR tree-optimization/51799
16949 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
16950 that the last operation is a type demotion.
16951
ad1f1582 169522012-01-12 Uros Bizjak <ubizjak@gmail.com>
16953
16954 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
16955 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
16956
45152a7b 169572012-01-11 Jakub Jelinek <jakub@redhat.com>
16958
16959 PR bootstrap/51796
16960 * combine.c (distribute_notes): If i3 is a noreturn call,
16961 allow old_size to be equal to args_size and make sure the
16962 noreturn call gets REG_ARGS_SIZE note.
16963 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
16964 on noreturn calls even when the delta is 0.
16965
93fcbf99 169662012-01-11 Nathan Sidwell <nathan@acm.org>
16967
16968 * gcov.c (STRING_SIZE): Remove.
16969 (generate_results): Erase annotations for source files with no
16970 coverage information.
16971 (read_line): New.
16972 (output_lines): Use it.
16973
7e3aae05 169742012-01-11 Eric Botcazou <ebotcazou@adacore.com>
16975
16976 * gimple.h (gimplify_body): Remove first argument.
16977 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
16978 pointer set here, instead just pass DATA to walk_tree.
16979 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
16980 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
16981 (unvisit_body): Likewise, but with unmark_visited.
16982 (gimplify_body): Remove BODY_P argument and adjust.
16983 (gimplify_function_tree): Adjust call to gimplify_body.
16984 * omp-low.c (finalize_task_copyfn): Likewise.
16985
7a3ec978 169862012-01-11 Eric Botcazou <ebotcazou@adacore.com>
16987
16988 * tree.h (build_function_decl_skip_args): Add boolean parameter.
16989 (build_function_type_skip_args): Delete.
16990 * tree.c (build_function_type_skip_args): Make static and add
16991 SKIP_RETURN parameter. Fix thinko in the handling of variants.
16992 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
16993 pass it to build_function_type_skip_args.
16994 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
16995 (tree_function_versioning): Likewise.
16996 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
16997 build_function_decl_skip_args.
16998 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
16999 and pass it to build_function_decl_skip_args/tree_function_versioning.
17000 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
17001 * ipa-inline-transform.c (save_inline_function_body): Likewise.
17002 * trans-mem.c (ipa_tm_create_version): Likewise.
17003 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
17004 * tree-inline.c (declare_return_variable): Remove always-true test.
17005 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
17006 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
17007 * ipa-split.c (split_function): Skip the return value for the split
17008 part if it doesn't return.
17009
aa2edcb9 170102012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17011
17012 PR tree-optimization/49642
17013 * ipa-split.c (forbidden_dominators): New variable.
17014 (check_forbidden_calls): New function.
17015 (dominated_by_forbidden): Likewise.
17016 (consider_split): Check for forbidden dominators.
17017 (execute_split_functions): Initialize and free forbidden
17018 dominators info; call check_forbidden_calls.
17019
7d0a3bab 170202012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
17021
17022 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
17023
301901d2 170242012-01-11 Nick Clifton <nickc@redhat.com>
17025
17026 * config/rx/rx.md (return): Define pattern.
17027
35cbef6c 170282012-01-11 Richard Guenther <rguenther@suse.de>
17029
17030 * doc/extend.texi (malloc attribute): Adjust according to
17031 implementation.
17032
3e426b86 170332012-01-10 Aldy Hernandez <aldyh@redhat.com>
17034 Patrick Marlier <patrick.marlier@gmail.com>
17035
17036 PR middle-end/51516
17037 * trans-mem.c (get_cg_data): Traverse aliases if requested.
17038 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
17039 (ipa_tm_note_irrevocable): Same.
17040 (ipa_tm_scan_irr_block): Same.
17041 (ipa_tm_decrement_clone_counts): Same.
17042 (ipa_tm_scan_irr_function): Same.
17043 (ipa_tm_create_version_alias): Same.
17044 (ipa_tm_create_version): Same.
17045 (ipa_tm_transform_calls_redirect): Same.
17046 (ipa_tm_transform_calls): Same.
17047 (ipa_tm_transform_transaction): Same.
17048 (ipa_tm_execute): Same.
17049
90e2341f 170502012-01-10 Richard Guenther <rguenther@suse.de>
17051
17052 PR middle-end/51806
17053 * opts.c (common_handle_option): Handle -Werror.
17054
42720af3 170552012-01-10 Andreas Schwab <schwab@linux-m68k.org>
17056
17057 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
17058 operand number.
17059
2e3ca6dd 170602012-01-10 Jason Merrill <jason@redhat.com>
17061
17062 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
17063 information.
17064
31d2f7ca 170652012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17066
17067 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
17068 supports R_386_TLS_GD_PLT reloc.
17069 (gcc_cv_as_ix86_tlsldmplt): Check if linker
17070 supports R_386_TLS_LDM_PLT reloc.
17071 * configure: Regenerate.
17072 * config.in: Regenerate.
17073
ed2541ea 170742012-01-10 Georg-Johann Lay <avr@gjlay.de>
17075
17076 PR target/49868
17077 Extend __pgmx semantics to linearize memory.
17078 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
17079 determine if code comes inline or from libgcc.
17080 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
17081 (movmem_qi, movmem_qi): Set constraint #2 to "n".
17082 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
17083 (movmemx_qi, movmemx_hi): New insns.
17084 (xload_<mode>_libgcc): Rewrite to new insn condition.
17085 (xload_<mode>): Remove insns.
17086 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
17087 cases that don't satisfy avr_xload_libgcc_p().
17088 (avr_addr_space_convert): Allow converting in any direction.
17089 (avr_addr_space_subset_p): Return always true.
17090 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
17091 (avr_emit_movmemhi): Ditto.
17092 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
17093 (avr_out_movmem): Ditto.
17094 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
17095 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
17096 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
17097 (avr_encode_section_info): Encode 'progmem' in symbol flags.
17098 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
17099
e97c4b0d 171002012-01-10 Richard Guenther <rguenther@suse.de>
17101
17102 PR tree-optimization/50913
17103 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
17104 Require data-refs to be representable by Graphite with respect
17105 to any loop nest.
17106
553c4d0b 171072012-01-10 Uros Bizjak <ubizjak@gmail.com>
17108
17109 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
17110 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
17111
e2ab608c 171122012-01-10 Tom de Vries <tom@codesourcery.com>
17113
abbecd80 17114 PR rtl-optimization/51271
e2ab608c 17115 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
17116 handling annulled branch.
17117
47ddcd6b 171182012-01-10 Richard Henderson <rth@redhat.com>
17119
553c4d0b 17120 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
47ddcd6b 17121 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
17122 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
17123 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
17124 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
17125 arm_expand_vec_perm_const): New.
17126 * config/arm/arm-protos.h: Update.
17127 * config/arm/neon.md (UNSPEC_VCONCAT): New.
17128 (*neon_vswp<VDQX>): New.
17129 (neon_vcombine<VDX>): Use neon_split_vcombine.
17130 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
17131 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
17132 (vec_perm<VE>): New.
17133
e1b93706 171342012-01-10 Richard Henderson <rth@redhat.com>
17135
17136 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
17137 use it if reload_completed.
17138 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
17139 arm_output_asm_insn, arm_process_output_memory_barrier,
17140 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
17141 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
17142 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
17143 arm_process_output_sync_insn, arm_output_sync_insn,
17144 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
17145 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
17146 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
17147 (emit_unlikely_jump): New.
17148 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
17149 (arm_split_atomic_op): New.
17150 * config/arm/arm-protos.h: Update.
17151 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
17152 (struct arm_sync_generator): Remove.
17153 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
17154 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
17155 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
17156 (VUNSPEC_LL, VUNSPEC_SC): New.
17157 (sync_result, sync_memory, sync_required_value, sync_new_value,
17158 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
17159 (attr length): Don't use arm_sync_loop_insns.
17160 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
17161 (movsfcc, movdfcc): Likewise.
17162 * config/arm/constraints.md (Ua): New.
17163 * config/arm/prediates.md (mem_noofs_operand): New.
17164 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
17165 (sync_clobber, sync_t2_reqd): Remove.
17166 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
17167 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
17168 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
17169 (arm_sync_compare_and_swap<SIDI>): Remove.
17170 (arm_sync_compare_and_swap<NARROW>): Remove.
17171 (arm_sync_lock_test_and_set<SIDI>): Remove.
17172 (arm_sync_lock_test_and_set<NARROW>): Remove.
17173 (arm_sync_new_<syncop><SIDI>): Remove.
17174 (arm_sync_new_<syncop><NARROW>): Remove.
17175 (arm_sync_new_nand<SIDI>): Remove.
17176 (arm_sync_new_nand<NARROW>): Remove.
17177 (arm_sync_old_<syncop><SIDI>): Remove.
17178 (arm_sync_old_<syncop><NARROW>): Remove.
17179 (arm_sync_old_nand<SIDI>): Remove.
17180 (arm_sync_old_nand<NARROW>): Remove.
17181 (*memory_barrier): Merge arm_output_memory_barrier.
17182 (atomic_compare_and_swap<QHSD>): New.
17183 (atomic_compare_and_swap<NARROW>_1): New.
17184 (atomic_compare_and_swap<SIDI>_1): New.
17185 (atomic_exchange<QHSD>): New.
17186 (cas_cmp_operand, cas_cmp_str): New.
17187 (atomic_op_operand, atomic_op_str): New.
17188 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
17189 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
17190 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
17191 (arm_load_exclusive<NARROW>): New.
17192 (arm_load_exclusivesi, arm_load_exclusivedi): New.
17193 (arm_store_exclusive<QHSD>): New.
17194
171952012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
ca8c55ac 17196
17197 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
17198 reload patterns if -mvsx-scalar-memory.
17199
17200 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
17201 generated, even -mno-vsx-scalar-double was used.
17202 (vsx_xscvdpsp_scalar): Likewise.
17203 (vsx_xscvspdp_scalar2): Likewise.
17204
5cbfefc3 172052012-01-09 Tom de Vries <tom@codesourcery.com>
17206 Andrew Pinski <apinski@cavium.com>
17207
abbecd80 17208 PR debug/51471
553c4d0b 17209 * reorg.c (fill_slots_from_thread): Don't speculate
17210 frame-related insns.
5cbfefc3 17211
018f0595 172122012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
17213
17214 * sched-int.h (bb_note): Move to...
17215 * basic-block.h: ...here.
17216 * haifa-sched.c (bb_note): Move to...
17217 * cfgrtl.c: ...here.
17218 * function.c (next_block_for_reg): New function.
17219 (move_insn_for_shrink_wrap): Likewise.
17220 (prepare_shrink_wrap): Rewrite to use the above.
17221
28098b5b 172222012-01-09 Aldy Hernandez <aldyh@redhat.com>
17223
17224 * gimple.c (is_gimple_non_addressable): Remove.
17225 * gimple.h: Remove is_gimple_non_addressable.
17226 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
17227 is_gimple_non_addressable.
17228 * trans-mem.c (expand_assign_tm): Same.
17229
f6093533 172302012-01-09 Richard Guenther <rguenther@suse.de>
17231
17232 PR tree-optimization/51775
17233 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
17234 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
17235
92409bbc 172362012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
17237
17238 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
17239 tuning parameters.
17240 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
17241
3f7685cd 172422012-01-09 Richard Guenther <rguenther@suse.de>
17243
17244 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
17245
e67e73bd 172462012-01-08 Jan Hubicka <jh@suse.cz>
17247
17248 PR tree-optimize/51680
3f7685cd 17249 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
17250 on when known_vals needs to be computed; cleanup.
e67e73bd 17251
7aedab82 172522012-01-08 Jan Hubicka <jh@suse.cz>
17253
17254 PR tree-optimize/51694
17255 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
17256
49dc2bdc 172572012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
17258
17259 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
17260 for -std=c++98 and -std=c++11 too.
17261
bf4b25d7 172622012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
17263
17264 * cfgloop.c (cancel_loop): Add free() of bbs array.
17265
5dcaa672 172662012-01-07 Jan Hubicka <jh@suse.cz>
17267
17268 PR tree-optimization/51600
17269 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
17270 that benefits small functions.
17271
172722012-01-07 Jan Hubicka <jh@suse.cz>
17273
17274 * ipa-inline.c (want_inline_small_function_p): Fix formating.
17275
a844747e 172762012-01-07 Jan Hubicka <jh@suse.cz>
17277
17278 PR tree-optimization/51680
17279 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
17280 whose inlining reduce unit size.
17281
c98120f0 172822012-01-07 Alexandre Oliva <aoliva@redhat.com>
17283
17284 PR bootstrap/51725
17285 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
17286 Add canonical node to containing_mem chain after the non-canonical
17287 one, even if there weren't any locs to propagate.
17288 (remove_useless_values): Keep only canonical values.
17289 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
17290 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
17291 canonicalize mem_chain elements that are not discarded.
17292
b9aec3f5 172932012-01-06 Jakub Jelinek <jakub@redhat.com>
17294
5c8ad8f5 17295 PR target/47333
17296 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
17297 before emitting functions.
17298
b9aec3f5 17299 PR gcov-profile/50127
17300 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
17301 clear_aux_for_blocks.
17302
29c70ce8 173032012-01-06 Alexandre Oliva <aoliva@redhat.com>
17304
17305 PR debug/51746
17306 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
17307
00ce46e2 173082012-01-06 Arnaud Charlet <charlet@adacore.com>
17309
17310 * c-decl.c (ext_block): Moved up.
17311 (collect_all_refs, for_each_global_decl): Take ext_block into account.
17312
36ddd5fe 173132012-01-06 Han Shen <shenhan@google.com>
17314
17315 Translate built-in include paths for sysroot.
17316 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
17317 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
17318
17319 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
17320 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
17321
17322 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
17323 control whether sysroot should be prepended to gxx include dir.
17324
17325 * configure: Regenerate.
17326
aa848e47 173272012-01-06 Torvald Riegel <triegel@redhat.com>
17328
17329 PR rtl-optimization/51771
553c4d0b 17330 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
aa848e47 17331 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
17332
89c7922d 173332012-01-05 Eric Botcazou <ebotcazou@adacore.com>
17334
17335 PR tree-optimization/51315
17336 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
17337 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
17338
7208667b 173392012-01-05 Uros Bizjak <ubizjak@gmail.com>
17340
17341 PR target/51681
17342 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
17343 for shrp pattern. Correctly handle and fixup shift variable.
17344 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
17345
27827244 173462012-01-05 Jakub Jelinek <jakub@redhat.com>
17347
17348 PR debug/51762
17349 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
17350 note when !ACCUMULATE_OUTGOING_ARGS.
17351
df8f94d5 173522012-01-05 Eric Botcazou <ebotcazou@adacore.com>
17353
17354 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
17355 condition.
17356 (extract_range_from_unary_expr_1): Avoid useless computations.
17357
180c5ea0 173582012-01-05 Jakub Jelinek <jakub@redhat.com>
17359
d7ff3ab6 17360 PR rtl-optimization/51767
17361 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
17362 of jump_block and add an extra edge for degenerated asm gotos.
17363
1aed71d6 17364 PR middle-end/51768
17365 * stmt.c (check_unique_operand_names): Don't ICE during error
17366 reporting if i is from labels chain.
17367
180c5ea0 17368 PR middle-end/44777
17369 * profile.c (branch_prob): Split bbs that have exit edge
17370 and need a fake entry edge too.
17371
753f2949 173722012-01-05 Jan Hubicka <jh@suse.cz>
17373
17374 PR middle-end/49710
17375 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
17376 unlooping loops.
17377
8a3acf3f 173782012-01-05 Richard Guenther <rguenther@suse.de>
17379
17380 PR lto/50490
17381 * tree-streamer-out.c (write_ts_optimization): New function.
17382 (streamer_write_tree_body): Call it.
17383 * tree-streamer-in.c (lto_input_ts_optimization): New function.
17384 (streamer_read_tree_body): Call it.
17385 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
17386
cbabc8eb 173872012-01-05 Jakub Jelinek <jakub@redhat.com>
17388
17389 PR middle-end/51761
7208667b 17390 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
cbabc8eb 17391 * gimplify.c (gimplify_cleanup_point_expr): Save and set
17392 in_cleanup_point_expr before gimplify_stmt call and restore it
17393 afterwards.
17394 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
17395 in_cleanup_point_expr is false.
17396
9ea022ce 173972012-01-05 Richard Guenther <rguenther@suse.de>
17398
17399 PR middle-end/51764
17400 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
17401 to c.opt.
17402 * toplev.c (process_options): Reject combining mudflap and LTO.
17403 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
17404
c91fedc5 174052012-01-05 Richard Guenther <rguenther@suse.de>
17406
17407 PR tree-optimization/51760
17408 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
17409 not VARYING.
17410 (bit_value_unop): Handle UNDEFINED operands.
17411 (bit_value_binop): Likewise.
17412
1b6c82cc 174132012-01-05 Georg-Johann Lay <avr@gjlay.de>
17414
17415 * config/avr/avr.c (avr_replace_prefix): Remove.
17416 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
17417 (avr_asm_function_rodata_section): Ditto.
17418 (avr_asm_select_section): Ditto.
17419
a7dcb2ba 174202012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
17421
17422 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
17423 insertion.
17424
d1a21c35 174252012-01-05 Jakub Jelinek <jakub@redhat.com>
17426
44e41ce0 17427 PR bootstrap/51648
17428 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
17429 calls that have any non-fake successor edges.
17430
d1a21c35 17431 PR debug/51746
17432 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
17433
d33fd0b7 174342012-01-04 Eric Botcazou <ebotcazou@adacore.com>
17435
17436 PR tree-optimization/51624
17437 * tree-sra.c (build_ref_for_model): When replicating a chain of
17438 COMPONENT_REFs, stop as soon as the offset would become negative.
17439
3003ad99 174402012-01-04 Jakub Jelinek <jakub@redhat.com>
17441
17442 PR debug/51695
17443 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
17444 in .debug_loc on the floor.
17445
79bdd1fe 174462012-01-04 Andrew Pinski <apinski@cavium.com>
17447
17448 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
17449
b7508909 174502012-01-04 Andrew Pinski <apinski@cavium.com>
17451 Adam Nemet <anemet@caviumnetworks.com>
17452
17453 * config/mips/mips.md (size): Add SI and DI.
17454 (SIZE): New mode attribute.
17455 (U): New code attribute.
17456 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
17457 (mips_lbux_<mode>): Delete.
17458 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
17459 (mips_lhx): Use gen_mips_lhx_extsi.
17460 (mips_lhx_<mode>): Delete.
17461 (mips_lwx): Delete.
17462 (mips_l<size>x): New expand.
17463 (mips_lwx_<mode>): Delete.
17464 (mips_l<GPR:size>x_<P:mode>): New pattern.
17465 (*mips_lw<u>x_<P:mode>_ext): Likewise.
17466 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
17467 * config/mips/mips.c (mips_lx_address_p): New function.
17468 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
17469 (dsp64): New availability predicate.
17470 (mips_builtins): Add an entry for __builtin_mips_ldx.
17471 * config/mips/mips.h (ISA_HAS_LBX): New define.
17472 (ISA_HAS_LBUX): Likewise.
17473 (ISA_HAS_LHX): Likewise.
17474 (ISA_HAS_LHUX): Likewise.
17475 (ISA_HAS_LWX): Likewise.
17476 (ISA_HAS_LWUX): Likewise.
17477 (ISA_HAS_LDX): Likewise.
17478 * doc/extend.texi (__builtin_mips_ldx): Document.
17479
ceb6185f 174802012-01-04 Tristan Gingold <gingold@adacore.com>
17481
17482 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
17483 when long pointers are used.
17484 * config.build (*-*-*vms*): Handle all OpenVMS targets.
17485 (alpha64-dec-*vms*, alpha*-dec-*vms*)
17486 (ia64-hp-*vms*): Remove.
17487 * config/vms/xm-vms64.h: Delete.
17488
ea580cf7 174892012-01-04 Aldy Hernandez <aldyh@redhat.com>
17490
17491 PR middle-end/51472
17492 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
17493
cb8ce878 174942012-01-04 Aldy Hernandez <aldyh@redhat.com>
17495
d449d792 17496 * opts.c (finish_options): Remove duplicate sorry.
cb8ce878 17497
300eddba 174982012-01-04 Aldy Hernandez <aldyh@redhat.com>
17499
17500 PR middle-end/51696
17501 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
17502 correctly.
17503
a6c23958 175042012-01-04 Richard Guenther <rguenther@suse.de>
17505
17506 PR middle-end/51750
17507 * tree.c (size_low_cst): New function.
17508 * tree.h (size_low_cst): Declare.
17509 * fold-const.c (fold_comparison): Use it to extract the low
17510 part of the POINTER_PLUS_EXPR offset.
17511
f4806884 175122012-01-04 Georg-Johann Lay <avr@gjlay.de>
17513
17514 Fix clearing ZERO_REG
17515 * config/avr/avr.md (cc): Add alternative "ldi".
17516 (movqi_insn): Use it in cc attribute.
17517 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
17518 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
17519 (output_reload_insisf): Use ZERO_REG to pre-clear register.
17520
ce94380e 175212012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17522
17523 * configure: Regenerate.
17524
b4c39a37 175252012-01-04 Richard Guenther <rguenther@suse.de>
17526
17527 PR tree-optimization/49651
17528 * tree-ssa-structalias.c (type_can_have_subvars): New function.
17529 (var_can_have_subvars): Use it.
7208667b 17530 (get_constraint_for_1): Only consider subfields if there can be any.
b4c39a37 17531
cdfa22f4 175322012-01-03 Jakub Jelinek <jakub@redhat.com>
17533
89159e31 17534 PR bootstrap/51725
7208667b 17535 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
17536 to its new canonical_cselib_val and the cselib_val was in
17537 first_containing_mem chain, but the canonical_cselib_val was not,
17538 add the latter into the chain.
89159e31 17539 (cselib_invalidate_mem): Compare canonical_cselib_val of
17540 addr_list chain elt with v.
17541
cdfa22f4 17542 PR pch/51722
17543 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
17544 dwarf2out_undef): Allocate e.info using ggc_strdup instead
17545 of xstrdup.
17546 (output_macinfo_op): Don't ggc_strdup fd->filename.
17547 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
17548 then ggc_strdup it. Don't free inc->info or cur->info.
17549 (output_macinfo): Don't free ref->info or file->info.
17550
2f630015 175512012-01-03 Ira Rosen <irar@il.ibm.com>
17552
17553 PR tree-optimization/51269
17554 * tree-vect-loop-manip.c (set_prologue_iterations): Make
17555 first_niters a pointer.
17556 (slpeel_tree_peel_loop_to_edge): Likewise.
17557 (vect_do_peeling_for_loop_bound): Update call to
17558 slpeel_tree_peel_loop_to_edge.
17559 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
17560 here. Remove it from the parameters list.
17561 (vect_do_peeling_for_alignment): Update calls and compute
17562 wide_prolog_niters.
17563
958ea92a 175642012-01-03 Richard Guenther <rguenther@suse.de>
17565
17566 PR tree-optimization/51070
17567 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
17568 Properly handle calls.
17569
af988fbc 175702012-01-03 Richard Guenther <rguenther@suse.de>
17571
17572 PR tree-optimization/51692
17573 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
17574 the LHS of allocation stmts.
17575
131e69c7 175762012-01-03 Olivier Hainque <hainque@adacore.com>
17577
17578 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
17579
e4e4eb40 175802012-01-03 Olivier Hainque <hainque@adacore.com>
17581
17582 * collect2.c (main): In AIX specific computations for vector
17583 insertions, use CONST_CAST2 to cast from char ** to const char **.
17584
e94f8cec 175852012-01-03 Richard Guenther <rguenther@suse.de>
17586
17587 PR debug/51650
17588 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
17589 the context of a limbo DIE when it does not already exist.
17590
1cd188fc 175912012-01-03 Jakub Jelinek <jakub@redhat.com>
17592
17593 PR tree-optimization/51719
17594 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
17595 but direct call is, clear direct call's lhs and don't add fallthrough
17596 edge from dcall_bb to join_bb and PHIs.
17597
fbee501c 175982012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17599
17600 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
17601 the instructions emitted by the pattern.
17602 ("*TDC_insn_<mode>"): Add comment.
17603
c8d7e3b9 176042012-01-03 Richard Guenther <rguenther@suse.de>
17605
17606 PR middle-end/51730
17607 * fold-const.c (fold_comparison): Properly canonicalize
17608 tree offset and HOST_WIDE_INT bit position.
17609
87f78f87 176102012-01-02 Uros Bizjak <ubizjak@gmail.com>
17611
17612 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
17613 operands for extzv pattern.
17614
e2b97531 176152012-01-02 Jakub Jelinek <jakub@redhat.com>
17616
17617 PR bootstrap/51725
17618 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
17619 on mem_elt first.
17620
9d1f0198 176212012-01-02 Sandra Loosemore <sandra@codesourcery.com>
17622
17623 * doc/invoke.texi (-flto and related options): Copy-edit.
17624
606b7c1d 176252012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
17626
87f78f87 17627 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
606b7c1d 17628
2cded00a 176292012-01-02 Jakub Jelinek <jakub@redhat.com>
17630
17631 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
17632 New patterns.
17633
8136e769 176342012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
17635
17636 * expr.h (move_by_pieces_ninsns): Declare.
17637 * expr.c (move_by_pieces_ninsns): Make external.
17638 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
17639 (mips_store_by_pieces_p): Likewise.
17640 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
17641 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
17642 * config/mips/mips.c (mips_move_by_pieces_p): New function.
17643 (mips_store_by_pieces_p): Likewise.
17644
364360b8 176452012-01-02 Jakub Jelinek <jakub@redhat.com>
17646
17647 * passes.c (register_one_dump_file): Free full_name.
17648
87f78f87 17649 * reload1.c (reload): Don't allocate reg_max_ref_width here.
364360b8 17650 (calculate_elim_costs_all_insns): Free offsets_at and
17651 offsets_known_at at the end and clear the pointers.
17652
5a1d0410 176532012-01-02 Georg-Johann Lay <avr@gjlay.de>
17654
17655 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
17656 this option introduced in r180739.
17657
b32bc361 176582012-01-02 Georg-Johann Lay <avr@gjlay.de>
17659
17660 PR target/51345
17661 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
17662 (tmake_file target=avr): Add avr/t-multilib.
17663
17664 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
17665 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
17666 * config/avr/genmultilib.awk: New file.
17667 * config/avr/t-multilib: New auto-generated file.
17668 * config/avr/multilib.h: New auto-generated file.
17669 * config/avr/t-avr (AVR_MCUS): New variable.
17670 (genopt.sh): Use it.
17671 (s-mlib): Depend on t-multilib.
17672 (t-multilib, multilib.h): New dependencies.
17673 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
17674 (MULTILIB_OPTIONS): Remove.
17675 (MULTILIB_MATCHES): Remove.
17676 (MULTILIB_DIRNAMES): Remove.
17677 (MULTILIB_EXCEPTIONS): Remove:
17678 * config/avr/genopt.sh: Don't use hard coded file name;
17679 pass AVR_MCUS from t-avr instead.
17680
8e8ae8d4 176812012-01-02 Georg-Johann Lay <avr@gjlay.de>
17682
17683 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
17684
83921eda 176852012-01-02 Georg-Johann Lay <avr@gjlay.de>
17686
17687 Implement light-weight DImode support.
17688 * config/avr/avr-dimode.md: New file.
17689 * config/avr/avr.md: Include it.
17690 (adjust_len): Add plus64, compare64.
17691 (HIDI): Remove code iterator.
17692 (code_stdname): New code attribute.
17693 (rotx, rotsmode): Remove DI.
17694 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
17695 as code iterator.
17696 * config/avr/avr-protos.h (avr_have_dimode): New.
17697 (avr_out_plus64, avr_out_compare64): New.
17698 * config/avr/avr.c (avr_out_compare): Handle DImode.
17699 (avr_have_dimode): New variable definition and initialization.
17700 (avr_out_compare64, avr_out_plus64): New functions.
17701 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
17702 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
17703 (avr_compare_pattern): Skip DImode comparisons.
17704
238c43ff 177052012-01-02 Revital Eres <revital.eres@linaro.org>
17706
17707 * ddg.c (def_has_ccmode_p): New function.
17708 (add_cross_iteration_register_deps,
17709 create_ddg_dep_from_intra_loop_link): Call it.
17710
0c0cdd6f 177112012-01-02 Richard Guenther <rguenther@suse.de>
17712
17713 PR other/51679
17714 * invoke.texi (fassociative-math): Remove spurious paranthesis.
17715
ea87e586 177162012-01-01 Jakub Jelinek <jakub@redhat.com>
17717
17718 * gcc.c (process_command): Update copyright notice dates.
17719 * gcov.c (print_version): Likewise.
17720 * gcov-dump.c (print_version): Likewise.
17721 * mips-tfile.c (main): Likewise.
17722 * mips-tdump.c (main): Likewise.
17723
a1123047 177242012-01-01 Ira Rosen <irar@il.ibm.com>
17725
17726 PR tree-optimization/51704
17727 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
87f78f87 17728 a use is inside the basic block or loop before accessing its vect info.
a1123047 17729
4d50c498 177302012-01-01 Jan Hubicka <jhjh@suse.cz>
17731
17732 PR rtl-optimization/51069
17733 * cfgloopmanip.c (remove_path): Removing path making irreducible
17734 region unconditional makes BB part of the region.
17735
3064bb7b 177362012-01-01 Jakub Jelinek <jakub@redhat.com>
17737
17738 PR tree-optimization/51683
17739 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
17740 calls with side-effects.
17741 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
7dfbd804 17742\f
8dfa851a 17743Copyright (C) 2012 Free Software Foundation, Inc.
7dfbd804 17744
17745Copying and distribution of this file, with or without modification,
17746are permitted in any medium without royalty provided the copyright
17747notice and this notice are preserved.