73fdd1a5332434be9e0fe1dff2d1f305fed37391
[gcc.git] / gcc / ChangeLog
1 2013-12-05 Vladimir Makarov <vmakarov@redhat.com>
2
3 PR rtl-optimization/59317
4 * lra-constraints.c (in_class_p): Don't ignore insn with constant
5 as a source.
6
7 2013-12-05 Martin Jambor <mjambor@suse.cz>
8
9 PR ipa/58253
10 * ipa-prop.c (ipa_modify_formal_parameters): Create decls of
11 non-BLKmode in their naturally aligned type.
12
13 2013-12-05 Marek Polacek <polacek@redhat.com>
14
15 PR sanitizer/59333
16 PR sanitizer/59397
17 * ubsan.c: Include rtl.h and expr.h.
18 (ubsan_encode_value): Add new parameter. If expanding, assign
19 a stack slot for DECL_RTL of the temporary and call expand_assignment.
20 Handle BOOLEAN_TYPE and ENUMERAL_TYPE.
21 (ubsan_build_overflow_builtin): Adjust ubsan_encode_value call.
22 * ubsan.h (ubsan_encode_value): Adjust declaration.
23 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Move
24 ubsan_build_overflow_builtin above expand_normal call. Surround this call
25 with push_temp_slots and pop_temp_slots.
26 (ubsan_expand_si_overflow_neg_check): Likewise.
27 (ubsan_expand_si_overflow_mul_check): Likewise.
28
29 2013-12-05 Yufeng Zhang <yufeng.zhang@arm.com>
30
31 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Guard
32 the get_alternative_base call with flag_expensive_optimizations.
33 (alloc_cand_and_find_basis): Likewise.
34
35 2013-12-05 Tejas Belagod <tejas.belagod@arm.com>
36
37 * rtlanal.c (set_noop_p): Return nonzero in case of redundant vec_select
38 for overlapping register lanes.
39
40 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
41
42 * config/i386/i386.c (ix86_expand_builtin): Generate
43 reg for readflags built-in when optimizing.
44 * config/i386/i386.md (*pushfl<mode>): Rename to ...
45 (pushfl<mode>2): This. Fix iterator.
46 (*popfl<mode>): Rename to ...
47 (*popfl<mode>1): This. Fix iterator.
48
49 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
50
51 * config/i386/i386.c (IX86_BUILTIN_READ_FLAGS): New.
52 (IX86_BUILTIN_WRITE_FLAGS): Ditto.
53 (ix86_init_mmx_sse_builtins): Define
54 __builtin_ia32_writeeflags_u32, __builtin_ia32_writeeflags_u64,
55 __builtin_ia32_readeflags_u32, __builtin_ia32_readeflags_u64.
56 (ix86_expand_builtin): Expand them.
57 * config/i386/ia32intrin.h (__readeflags): New.
58 (__writeeflags): Ditto.
59 * gcc/config/i386/i386.md (*pushfl<mode>): Ditto.
60 (*popfl<mode>1): Ditto.
61
62 2013-12-05 Richard Biener <rguenther@suse.de>
63
64 PR tree-optimization/59374
65 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
66 Commonize known and unknown dependence case fixing the allowed
67 read-write dependence case and dropping code that should not
68 matter.
69
70 2013-12-05 Kirill Yukhin <kirill.yukhin@intel.com>
71
72 * config/ia64/ia64.md (prologue_allocate_stack): Block auto-
73 generation of predicated version.
74 (epilogue_deallocate_stack): Ditto.
75 (prologue_allocate_stack_pr): Add explicit predicated version.
76 (epilogue_deallocate_stack_pr): Ditto.
77 * config/ia64/ia64.c (ia64_single_set): Use explicit version.
78
79 2013-12-05 Alan Modra <amodra@gmail.com>
80
81 * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
82 build != host.
83 <recursive call for build != host>: Clear GMPINC. Don't bother
84 saving CFLAGS.
85
86 2013-12-04 Jakub Jelinek <jakub@redhat.com>
87 Marek Polacek <polacek@redhat.com>
88
89 * opts.c (common_handle_option): Handle
90 -fsanitize=signed-integer-overflow.
91 * config/i386/i386.md (addv<mode>4, subv<mode>4, mulv<mode>4,
92 negv<mode>3, negv<mode>3_1): Define expands.
93 (*addv<mode>4, *subv<mode>4, *mulv<mode>4, *negv<mode>3): Define
94 insns.
95 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW,
96 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW,
97 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW,
98 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW): Define.
99 * ubsan.h (PROB_VERY_UNLIKELY, PROB_EVEN, PROB_VERY_LIKELY,
100 PROB_ALWAYS): Define.
101 (ubsan_build_overflow_builtin): Declare.
102 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Add folding of
103 internal functions.
104 * ubsan.c (PROB_VERY_UNLIKELY): Don't define here.
105 (ubsan_build_overflow_builtin): New function.
106 (instrument_si_overflow): Likewise.
107 (ubsan_pass): Add signed integer overflow checking.
108 (gate_ubsan): Enable the pass also when SANITIZE_SI_OVERFLOW.
109 * flag-types.h (enum sanitize_code): Add SANITIZE_SI_OVERFLOW.
110 * internal-fn.c: Include ubsan.h and target.h.
111 (ubsan_expand_si_overflow_addsub_check): New function.
112 (ubsan_expand_si_overflow_neg_check): Likewise.
113 (ubsan_expand_si_overflow_mul_check): Likewise.
114 (expand_UBSAN_CHECK_ADD): Likewise.
115 (expand_UBSAN_CHECK_SUB): Likewise.
116 (expand_UBSAN_CHECK_MUL): Likewise.
117 * fold-const.c (fold_binary_loc): Don't fold A + (-B) -> A - B and
118 (-A) + B -> B - A when doing the signed integer overflow checking.
119 * internal-fn.def (UBSAN_CHECK_ADD, UBSAN_CHECK_SUB, UBSAN_CHECK_MUL):
120 Define.
121 * tree-vrp.c (extract_range_basic): Handle internal calls.
122 * optabs.def (addv4_optab, subv4_optab, mulv4_optab, negv4_optab): New
123 optabs.
124 * asan.c: Include predict.h.
125 (PROB_VERY_UNLIKELY, PROB_ALWAYS): Don't define here.
126 * predict.c: Move the PROB_* macros...
127 * predict.h (enum br_predictor): ...here.
128 (PROB_LIKELY, PROB_UNLIKELY): Define.
129 * trans-mem.c: Include predict.h.
130 (PROB_VERY_UNLIKELY, PROB_ALWAYS, PROB_VERY_LIKELY,
131 PROB_LIKELY, PROB_UNLIKELY): Don't define here.
132
133 2013-12-04 Jeff Law <law@redhat.com>
134
135 * common.opt: Split up -fisolate-erroneous-paths into
136 -fisolate-erroneous-paths-dereference and
137 -fisolate-erroneous-paths-attribute.
138 * invoke.texi: Corresponding changes.
139 * gimple.c (infer_nonnull_range): Add and use new arguments
140 to control what kind of statements can be used to infer a
141 non-null range.
142 * gimple.h (infer_nonnull_range): Update prototype.
143 * tree-vrp.c (infer_value_range): Corresponding changes.
144 * opts.c (default_options_table): Update due to option split.
145 * gimple-ssa-isolate-paths.c: Fix trailing whitespace.
146 (find_implicit_erroneous_behaviour): Pass additional arguments
147 to infer_nonnull_range.
148 (find_explicit_erroneous_behaviour): Similarly.
149 (gate_isolate_erroneous_paths): Check both of the new
150 options.
151
152 2013-12-04 Jeff Law <law@redhat.com>
153
154 * expr.c (expand_assignment): Update comments.
155
156 2013-12-04 Tobias Burnus <burnus@net-b.de>
157
158 PR debug/37132
159 * lto-streamer.h (LTO_tags): Add LTO_namelist_decl_ref.
160 * tree.def (NAMELIST_DECL): Add.
161 * tree.h (NAMELIST_DECL_ASSOCIATED_DECL): New macro.
162 * tree.c (initialize_tree_contains_struct): Add asserts for it.
163 * dwarf2out.c (gen_namelist_decl): New function.
164 (gen_decl_die, dwarf2out_decl): Call it.
165 (dwarf2out_imported_module_or_decl_1): Handle NAMELIST_DECL.
166 * lto-streamer-in.c (lto_input_tree_ref): Handle NAMELIST_DECL.
167 (lto_input_tree_ref, lto_input_tree_1): Update lto_tag_check_range
168 call.
169 * lto-streamer-out.c (lto_output_tree_ref): Handle NAMELIST_DECL.
170
171 2013-12-03 Xinliang David Li <davidxl@google.com>
172
173 * tree-ssa-structalias.c (constraint_set_union): Change return type
174 from void to bool.
175 (merge_node_constraints): Ditto.
176 (unify_nodes): Update changed set when constraints set changes.
177
178 2013-12-04 H.J. Lu <hongjiu.lu@intel.com>
179
180 * configure.ac: Append gdbasan.in to .gdbinit if CFLAGS contains
181 -fsanitize=address.
182 * configure: Regenerated.
183
184 * gdbasan.in: New file.
185
186 2013-12-04 Jakub Jelinek <jakub@redhat.com>
187
188 PR rtl-optimization/58726
189 * combine.c (force_to_mode): Fix comment typo. Don't destructively
190 modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
191
192 2013-12-04 Jakub Jelinek <jakub@redhat.com>
193 Uros Bizjak <ubizjak@gmail.com>
194
195 PR target/59163
196 * config/i386/i386.c (ix86_legitimate_combined_insn): If for
197 !TARGET_AVX there is misaligned MEM operand with vector mode
198 and get_attr_ssememalign is 0, return false.
199 (ix86_expand_special_args_builtin): Add get_pointer_alignment
200 computed alignment and for non-temporal loads/stores also
201 at least GET_MODE_ALIGNMENT as MEM_ALIGN.
202 * config/i386/sse.md
203 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
204 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
205 <sse2_avx_avx512f>_loaddqu<mode><mask_name>,
206 <sse2_avx_avx512f>_storedqu<mode>, <sse3>_lddqu<avxsizesuffix>,
207 sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
208 sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
209 *vec_interleave_highv2df, *vec_interleave_lowv2df,
210 *vec_extractv2df_1_sse, sse2_movsd, sse4_1_<code>v8qiv8hi2,
211 sse4_1_<code>v4qiv4si2, sse4_1_<code>v4hiv4si2,
212 sse4_1_<code>v2qiv2di2, sse4_1_<code>v2hiv2di2,
213 sse4_1_<code>v2siv2di2, sse4_2_pcmpestr, *sse4_2_pcmpestr_unaligned,
214 sse4_2_pcmpestri, sse4_2_pcmpestrm, sse4_2_pcmpestr_cconly,
215 sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned, sse4_2_pcmpistri,
216 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add ssememalign attribute.
217 * config/i386/i386.md (ssememalign): New define_attr.
218
219 2013-12-04 Jakub Jelinek <jakub@redhat.com>
220
221 PR tree-optimization/59355
222 * ipa-devirt.c (gate_ipa_devirt): Return false if !flag_devirtualize.
223 * opts.c (common_handle_option): Fix comment spelling.
224
225 2013-12-04 Yufeng Zhang <yufeng.zhang@arm.com>
226
227 * gimple-ssa-strength-reduction.c: Include tree-affine.h.
228 (name_expansions): New static variable.
229 (alt_base_map): Ditto.
230 (get_alternative_base): New function.
231 (find_basis_for_candidate): For CAND_REF, optionally call
232 find_basis_for_base_expr with the returned value from
233 get_alternative_base.
234 (record_potential_basis): Add new parameter 'base' of type 'tree';
235 add an assertion of non-NULL base; use base to set node->base_expr.
236 (alloc_cand_and_find_basis): Update; call record_potential_basis
237 for CAND_REF with the returned value from get_alternative_base.
238 (replace_refs): Dump details on the replacing.
239 (execute_strength_reduction): Call pointer_map_create for
240 alt_base_map; call free_affine_expand_cache with &name_expansions.
241
242 2013-12-03 Wei Mi <wmi@google.com>
243
244 PR rtl-optimization/59020
245 * sched-deps.c (try_group_insn): Move it from haifa-sched.c to here.
246 (sched_analyze_insn): Call try_group_insn.
247 (sched_analyze): Cleanup SCHED_GROUP_P before start the analysis.
248 * haifa-sched.c (try_group_insn): Moved to sched-deps.c.
249 (group_insns_for_macro_fusion): Removed.
250 (sched_init): Remove calling group_insns_for_macro_fusion.
251
252 2013-12-03 Peter Bergner <bergner@vnet.ibm.com>
253
254 * config/rs6000/htmintrin.h (_TEXASR_INSTRUCTION_FETCH_CONFLICT): Fix
255 typo in macro name.
256 (_TEXASRU_INSTRUCTION_FETCH_CONFLICT): Likewise.
257
258 2013-12-03 Vladimir Makarov <vmakarov@redhat.com>
259
260 * config/aarch64/aarch64.c (aarch64_frame_pointer_required): Check
261 LR_REGNUM.
262 (aarch64_can_eliminate): Don't check elimination source when
263 frame_pointer_required is false.
264
265 2013-12-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
266
267 * config/avr/avr.c (avr_option_override): Warn if asked to generate
268 position independent code.
269 * config/avr/avr.h: Modify LINK_SPEC to reject -shared.
270
271 2013-12-03 H.J. Lu <hongjiu.lu@intel.com>
272
273 PR target/59363
274 * config/i386/i386.c (emit_memset): Adjust destination address
275 after gen_strset.
276 (expand_setmem_epilogue): Likewise.
277
278 2013-12-03 Marek Polacek <polacek@redhat.com>
279
280 PR middle-end/56344
281 * calls.c (expand_call): Disallow passing huge arguments by value.
282
283 2013-12-03 Jakub Jelinek <jakub@redhat.com>
284
285 PR tree-optimization/59362
286 * tree-object-size.c (object_sizes): Change into array of
287 vec<unsigned HOST_WIDE_INT>.
288 (compute_builtin_object_size): Check computed bitmap for
289 non-NULL instead of object_sizes. Call safe_grow on object_sizes
290 vector if new SSA_NAMEs appeared.
291 (init_object_sizes): Check computed bitmap for non-NULL.
292 Call safe_grow on object_sizes elements instead of initializing
293 it with XNEWVEC.
294 (fini_object_sizes): Call release on object_sizes elements, don't
295 set it to NULL.
296
297 PR middle-end/59011
298 * gimplify.c (nonlocal_vla_vars): New variable.
299 (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
300 nonlocal_vla_vars chain.
301 (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
302 if outer_bind has DECL_INITIAL (current_function_decl) block.
303
304 PR target/58864
305 * dojump.c (save_pending_stack_adjust, restore_pending_stack_adjust):
306 New functions.
307 * expr.h (struct saved_pending_stack_adjust): New type.
308 (save_pending_stack_adjust, restore_pending_stack_adjust): New
309 prototypes.
310 * optabs.c (emit_conditional_move): Call save_pending_stack_adjust
311 and get_last_insn before do_pending_stack_adjust, call
312 restore_pending_stack_adjust after delete_insns_since.
313 * expr.c (expand_expr_real_2): Don't call do_pending_stack_adjust
314 before calling emit_conditional_move.
315 * expmed.c (expand_sdiv_pow2): Likewise.
316 * calls.c (expand_call): Use {save,restore}_pending_stack_adjust.
317
318 2013-12-02 Jeff Law <law@redhat.com>
319
320 PR tree-optimization/59322
321 * tree-ssa-threadedge.c (create_edge_and_update_destination_phis):
322 Remove code which copied jump threading paths.
323
324 2013-12-02 Sriraman Tallam <tmsriram@google.com>
325
326 PR target/58944
327 * config/i386/i386.opt (ix86_arch_string): Mark this variable
328 for saving in cl_target_option.
329 (ix86_tune_string): Ditto.
330 (ix86_cmodel): Ditto.
331 (ix86_abi): Ditto.
332 (ix86_asm_dialect): Ditto.
333 (ix86_branch_cost): Ditto.
334 (ix86_dump_tunes): Ditto.
335 (ix86_force_align_arg_pointer): Ditto.
336 (ix86_force_drap): Ditto.
337 (ix86_incoming_stack_boundary_arg): Ditto.
338 (ix86_pmode): Ditto.
339 (ix86_preferred_stack_boundary_arg): Ditto.
340 (ix86_recip_name): Ditto.
341 (ix86_regparm): Ditto.
342 (ix86_section_threshold): Ditto.
343 (ix86_sse2avx): Ditto.
344 (ix86_stack_protector_guard): Ditto.
345 (ix86_stringop_alg): Ditto.
346 (ix86_tls_dialect): Ditto.
347 (ix86_tune_ctrl_string): Ditto.
348 (ix86_tune_memcpy_strategy): Ditto.
349 (ix86_tune_memset_strategy): Ditto.
350 (ix86_tune_no_default): Ditto.
351 (ix86_veclibabi_type): Ditto.
352 * config/i386/i386.c (function_specific_save): Save the above
353 variables in gcc_options to cl_target_option.
354 (function_specific_restore): Do the reverse done in
355 function_specific_save.
356 (ix86_valid_target_attribute_tree): Change ix86_arch_string
357 and ix86_tune_string to use the opts structure.
358 (ix86_option_override_internal):Change
359 ix86_incoming_stack_boundary_arg to
360 opts->x_ix86_incoming_stack_boundary_arg
361
362 2013-12-02 Joern Rennecke <joern.rennecke@embecosm.com>
363
364 * config/epiphany/epiphany.h: Wrap rtl_opt_pass declarations
365 in #ifndef IN_LIBGCC2 / #endif.
366
367 2013-12-02 Jakub Jelinek <jakub@redhat.com>
368
369 PR tree-optimization/59358
370 * tree-vrp.c (union_ranges): To check for the partially overlapping
371 ranges or adjacent ranges, also compare *vr0max with vr1max.
372
373 2013-12-02 Sterling Augustine  <saugustine@google.com>
374
375 * dwarf2out.c (output_pubnames): Use comp_unit_die ()->die_offset
376 when there isn't a skeleton die.
377
378 2013-12-02 Marek Polacek <polacek@redhat.com>
379
380 PR sanitizer/59353
381 * doc/invoke.texi: Document -fsanitize=return.
382
383 2013-12-02 Tobias Burnus <burnus@net-b.de>
384 Manuel López-Ibáñez <manu@gcc.gnu.org>
385
386 PR middle-end/59257
387 * doc/invoke.texi: Add missing @opindex.
388 (-fsanitize=): Use @gcctabopt instead of @itemize.
389
390 2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
391
392 Fix C++0x memory model for unaligned fields in packed, aligned(4)
393 structures with -fno-strict-volatile-bitfields on STRICT_ALIGNMENT
394 targets like arm-none-eabi.
395 * expr.c (expand_assignment): Handle normal fields like bit regions.
396
397 2013-12-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
398
399 PR target/58115
400 * function.c (invoke_set_current_function_hook): Call
401 targetm.set_current_function after setting this_fn_optabs.
402
403 2013-12-02 Richard Biener <rguenther@suse.de>
404
405 PR tree-optimization/59139
406 * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
407 code in get_val_for.
408 (get_val_for): Use gcc_checking_asserts.
409
410 2013-12-02 Richard Biener <rguenther@suse.de>
411
412 PR middle-end/59199
413 * tree-ssa-operands.c (opf_implicit): Remove.
414 (opf_address_taken): New flag.
415 (get_expr_operands): Remove early out, pass down opf_address_taken for
416 ADDR_EXPRs, add a use operand only for non-opf_address_taken bases.
417 (get_indirect_ref_operands): Rename to ...
418 (get_mem_ref_operands): ... this.
419 (get_asm_expr_operands): Rename to ...
420 (get_asm_stmt_operands): ... this.
421
422 2013-12-02 Yuri Rumyantsev <ysrumyan@gmail.com>
423
424 * ipa-inline.c (check_callers): Add missed pointer de-reference.
425
426 2013-12-02 Eric Botcazou <ebotcazou@adacore.com>
427
428 PR tree-optimization/59356
429 * tree-dfa.h (get_addr_base_and_unit_offset_1) <case ARRAY_REF>: Do the
430 offset computation using the precision of the index type.
431
432 2013-12-02 Yvan Roux <yvan.roux@linaro.org>
433
434 PR target/58785
435 * config/arm/arm.c (arm_preferred_reload_class): Only return LO_REGS
436 when rclass is GENERAL_REGS.
437
438 2013-12-02 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
439
440 * loop-unroll.c (decide_unroll_constant_iterations): Check macro
441 TARGET_LOOP_UNROLL_ADJUST while deciding unroll factor.
442
443 2013-12-01 Eric Botcazou <ebotcazou@adacore.com>
444
445 * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
446 identifier node.
447
448 2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
449
450 * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
451
452 2013-11-30 Paulo Matos <pmatos@broadcom.com>
453 Eric Botcazou <ebotcazou@adacore.com>
454
455 * combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
456 as applied to nonzero_sign_valid when last_set_mode has less precision
457 than mode.
458
459 2013-11-30 Tobias Burnus <burnus@net-b.de>
460
461 PR sanitizer/59275
462 * doc/invoke.texi (-fsanitize=address,leak): Mention the associated
463 environment variable and link to a list with flags.
464 (-fsanitize=thread): Ditto and update link.
465
466 2013-11-29 Vladimir Makarov <vmakarov@redhat.com>
467
468 PR rtl-optimization/59340
469 * lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p.
470
471 Revert
472 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
473
474 * lra.c (lra): Set lra_in_progress before check_rtl call.
475 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
476 adding clobber regs when LRA is running.
477
478 2013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
479
480 PR target/59289
481 * config/arm/arm.c (cortexa15_extra_costs): Adjust costs.
482
483 2013-11-29 Richard Biener <rguenther@suse.de>
484
485 PR middle-end/59208
486 * tree-ssa-operands.h (fini_ssa_operands, verify_ssa_operands,
487 free_stmt_operands, update_stmt_operands): Add struct function
488 argument.
489 * tree-ssa-operands.c: Remove uses of cfun, propagate struct
490 function argument from fini_ssa_operands, verify_ssa_operands,
491 free_stmt_operands and update_stmt_operands everywhere.
492 * tree-ssanames.h (release_ssa_name_fn): New.
493 (release_ssa_name): Inline wrapper around release_ssa_name_fn.
494 * tree-ssanames.c (release_ssa_name): Rename to ...
495 (release_ssa_name_fn): ... this and add struct function argument.
496 * gimple-ssa.h (update_stmt, update_stmt_if_modified): Adjust.
497 (update_stmt_fn): New function.
498 * tree-cfg.c (move_block_to_fn): Adjust.
499 * tree-if-conv.c (free_bb_predicate): Likewise.
500 * tree-ssa.c (verify_ssa): Likewise.
501 (delete_tree_ssa): Likewise.
502 * gimple-pretty-print.c (dump_gimple_mem_ops): Remove guard.
503 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Call
504 update_stmt_fn instead of update_stmt.
505
506 2013-11-29 Yvan Roux <yvan.roux@linaro.org>
507
508 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS
509 for LRA.
510
511 2013-11-29 Yvan Roux <yvan.roux@linaro.org>
512
513 * config/arm/arm.md (store_minmaxsi): Use only when
514 optimize_function_for_size_p.
515
516 2013-11-29 Jakub Jelinek <jakub@redhat.com>
517 Yury Gribov <y.gribov@samsung.com>
518
519 PR sanitizer/59063
520 * config/gnu-user.h: Removed old code for setting up sanitizer libs.
521 * gcc.c: Using libsanitizer spec instead of explicit libs.
522
523 2013-11-29 Ilya Enkovich <ilya.enkovich@intel.com>
524
525 Reverted:
526 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
527 * cgraph.h (varpool_node): Add need_bounds_init field.
528 * lto-cgraph.c (lto_output_varpool_node): Output
529 need_bounds_init value.
530 (input_varpool_node): Read need_bounds_init value.
531 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
532
533 Reverted:
534 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
535 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
536 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
537 (gen_type_die_with_usage): Skip pointer bounds.
538 (dwarf2out_global_decl): Likewise.
539
540 Reverted:
541 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
542 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
543 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
544 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
545 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
546 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
547 (gimple_call_with_bounds_p): New.
548 (gimple_call_set_with_bounds): New.
549 (gimple_call_num_nobnd_args): Remove.
550 (gimple_call_nobnd_arg): Remove.
551 * tree.h (CALL_WITH_BOUNDS_P): New.
552 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
553
554 Reverted:
555 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
556 * common.opt (fcheck-pointer-bounds): Move to ...
557 * c-family/c.opt: ... here.
558 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
559 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
560 * langhooks.h (lang_hooks): Remove chkp_supported field.
561 * toplev.c (process_options): Remove chkp_supported check.
562
563 Reverted:
564 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
565 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
566 * tree.h (POINTER_BOUNDS_P): New.
567 (BOUNDED_TYPE_P): New.
568 (BOUNDED_P): New.
569 (pointer_bounds_type_node): New.
570 * tree.c (build_common_tree_nodes): Initialize
571 pointer_bounds_type_node.
572 * gimple.h (gimple_call_get_nobnd_arg_index): New.
573 (gimple_call_num_nobnd_args): New.
574 (gimple_call_nobnd_arg): New.
575 (gimple_return_retbnd): New.
576 (gimple_return_set_retbnd): New
577 * gimple.c (gimple_build_return): Increase number of ops
578 for return statement.
579 (gimple_call_get_nobnd_arg_index): New.
580 * gimple-pretty-print.c (dump_gimple_return): Print second op.
581
582 Reverted:
583 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
584 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
585 with "chkp ctor" and "bnd_legacy" attributes.
586 * gimplify.c (gimplify_init_constructor): Avoid infinite
587 loop during gimplification of bounds initializer.
588
589 Reverted:
590 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
591 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
592 (handle_bnd_legacy): New.
593 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
594 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
595 attributes.
596
597 Reverted:
598 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
599 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
600 (BT_FN_PTR_CONST_PTR): New.
601 (BT_FN_CONST_PTR_CONST_PTR): New.
602 (BT_FN_PTR_CONST_PTR_SIZE): New.
603 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
604 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
605 (BT_FN_VOID_CONST_PTR_SIZE): New.
606 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
607 * chkp-builtins.def: New.
608 * builtins.def: include chkp-builtins.def.
609 (DEF_CHKP_BUILTIN): New.
610 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
611 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
612 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
613 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
614 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
615 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
616 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
617 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
618 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
619 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
620 * common.opt (fcheck-pointer-bounds): New.
621 * toplev.c (process_options): Check Pointer Bounds Checker is
622 supported.
623 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
624
625 Reverted:
626 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
627 * target.def (builtin_chkp_function): New.
628 (chkp_bound_type): New.
629 (chkp_bound_mode): New.
630 (fn_abi_va_list_bounds_size): New.
631 (load_bounds_for_arg): New.
632 (store_bounds_for_arg): New.
633 * targhooks.h (default_load_bounds_for_arg): New.
634 (default_store_bounds_for_arg): New.
635 (default_fn_abi_va_list_bounds_size): New.
636 (default_chkp_bound_type): New.
637 (default_chkp_bound_mode): New.
638 (default_builtin_chkp_function): New.
639 * targhooks.c (default_load_bounds_for_arg): New.
640 (default_store_bounds_for_arg): New.
641 (default_fn_abi_va_list_bounds_size): New.
642 (default_chkp_bound_type): New.
643 (default_chkp_bound_mode); New.
644 (default_builtin_chkp_function): New.
645 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
646 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
647 (TARGET_STORE_BOUNDS_FOR_ARG): New.
648 (TARGET_BUILTIN_CHKP_FUNCTION): New.
649 (TARGET_CHKP_BOUND_TYPE): New.
650 (TARGET_CHKP_BOUND_MODE): New.
651 * doc/tm.texi: Regenerated.
652 * langhooks.h (lang_hooks): Add chkp_supported field.
653 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
654 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
655
656 Reverted:
657 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
658 * config/i386/constraints.md (B): New.
659 (Ti): New.
660 (Tb): New.
661 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
662 * config/i386/i386-modes.def (BND32): New.
663 (BND64): New.
664 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
665 * config/i386/i386.c (isa_opts): Add mmpx.
666 (regclass_map): Add bound registers.
667 (dbx_register_map): Likewise.
668 (dbx64_register_map): Likewise.
669 (svr4_dbx_register_map): Likewise.
670 (PTA_MPX): New.
671 (ix86_option_override_internal): Support MPX ISA.
672 (ix86_conditional_register_usage): Support bound registers.
673 (print_reg): Likewise.
674 (ix86_code_end): Add MPX bnd prefix.
675 (output_set_got): Likewise.
676 (ix86_output_call_insn): Likewise.
677 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
678 (ix86_print_operand_punct_valid_p): Likewise.
679 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
680 UNSPEC_BNDMK_ADDR.
681 (ix86_class_likely_spilled_p): Add bound regs support.
682 (ix86_hard_regno_mode_ok): Likewise.
683 (x86_order_regs_for_local_alloc): Likewise.
684 (ix86_bnd_prefixed_insn_p): New.
685 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
686 (FIXED_REGISTERS): Add bound registers.
687 (CALL_USED_REGISTERS): Likewise.
688 (REG_ALLOC_ORDER): Likewise.
689 (HARD_REGNO_NREGS): Likewise.
690 (TARGET_MPX): New.
691 (VALID_BND_REG_MODE): New.
692 (FIRST_BND_REG): New.
693 (LAST_BND_REG): New.
694 (reg_class): Add BND_REGS.
695 (REG_CLASS_NAMES): Likewise.
696 (REG_CLASS_CONTENTS): Likewise.
697 (BND_REGNO_P): New.
698 (ANY_BND_REG_P): New.
699 (BNDmode): New.
700 (HI_REGISTER_NAMES): Add bound registers.
701 * config/i386/i386.md (UNSPEC_BNDMK): New.
702 (UNSPEC_BNDMK_ADDR): New.
703 (UNSPEC_BNDSTX): New.
704 (UNSPEC_BNDLDX): New.
705 (UNSPEC_BNDLDX_ADDR): New.
706 (UNSPEC_BNDCL): New.
707 (UNSPEC_BNDCU): New.
708 (UNSPEC_BNDCN): New.
709 (UNSPEC_MPX_FENCE): New.
710 (BND0_REG): New.
711 (BND1_REG): New.
712 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
713 (length_immediate): Likewise.
714 (prefix_0f): Likewise.
715 (memory): Likewise.
716 (prefix_rep): Check for bnd prefix.
717 (length_nobnd): New.
718 (length): Use length_nobnd if specified.
719 (BND): New.
720 (bnd_ptr): New.
721 (BNDCHECK): New.
722 (bndcheck): New.
723 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
724 (*jcc_2): Likewise.
725 (jump): Likewise.
726 (simple_return_internal): Likewise.
727 (simple_return_pop_internal): Likewise.
728 (*indirect_jump): Add MPX bnd prefix.
729 (*tablejump_1): Likewise.
730 (simple_return_internal_long): Likewise.
731 (simple_return_indirect_internal): Likewise.
732 (<mode>_mk): New.
733 (*<mode>_mk): New.
734 (mov<mode>): New.
735 (*mov<mode>_internal_mpx): New.
736 (<mode>_<bndcheck>): New.
737 (*<mode>_<bndcheck>): New.
738 (<mode>_ldx): New.
739 (*<mode>_ldx): New.
740 (<mode>_stx): New.
741 (*<mode>_stx): New.
742 * config/i386/predicates.md (lea_address_operand): Rename to...
743 (address_no_seg_operand): ... this.
744 (address_mpx_no_base_operand): New.
745 (address_mpx_no_index_operand): New.
746 (bnd_mem_operator): New.
747 * config/i386/i386.opt (mmpx): New.
748 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
749 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
750
751 Reverted:
752 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
753 * mode-classes.def (MODE_POINTER_BOUNDS): New.
754 * tree.def (POINTER_BOUNDS_TYPE): New.
755 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
756 (POINTER_BOUNDS_MODE): New.
757 (make_pointer_bounds_mode): New.
758 * machmode.h (POINTER_BOUNDS_MODE_P): New.
759 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
760 (layout_type): Support POINTER_BOUNDS_TYPE.
761 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
762 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
763 (type_contains_placeholder_1): Likewise.
764 * tree.h (POINTER_BOUNDS_TYPE_P): New.
765 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
766 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
767
768 2013-11-29 Richard Biener <rguenther@suse.de>
769
770 PR middle-end/59338
771 * tree-cfg.c (verify_expr): Restrict bounds verification of
772 BIT_FIELD_REF arguments to non-aggregate typed base objects.
773
774 2013-11-29 Richard Biener <rguenther@suse.de>
775
776 PR tree-optimization/59334
777 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
778 in previous commit.
779
780 2013-11-29 Jakub Jelinek <jakub@redhat.com>
781 Richard Biener <rguenther@suse.de>
782
783 PR lto/59326
784 * omp-low.c (simd_clone_create): Return NULL if for definition
785 !cgraph_function_with_gimple_body_p (old_node). Call cgraph_get_body
786 before calling cgraph_function_versioning.
787 (expand_simd_clones): Look for "omp declare simd" attribute first.
788 Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
789 Punt if node->global.inlined_to.
790 (pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
791 Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
792 * lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
793
794 2013-11-29 Jakub Jelinek <jakub@redhat.com>
795
796 PR lto/59326
797 * tree-core.h (enum omp_clause_schedule_kind): Add
798 OMP_CLAUSE_SCHEDULE_LAST.
799 (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
800 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
801 (enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
802 (enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
803 * lto-streamer-out.c (lto_is_streamable): Allow streaming OMP_CLAUSE.
804 (DFS_write_tree_body): Handle OMP_CLAUSE.
805 * tree-streamer-out.c (pack_ts_omp_clause_value_fields): New function.
806 (streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
807 (write_ts_omp_clause_tree_pointers): New function.
808 (streamer_write_tree_body): Call it for OMP_CLAUSE.
809 (streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
810 * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New function.
811 (unpack_value_fields): Call it for OMP_CLAUSE.
812 (streamer_alloc_tree): Handle OMP_CLAUSE.
813 (lto_input_ts_omp_clause_tree_pointers): New function.
814 (streamer_read_tree_body): Call it for OMP_CLAUSE.
815
816 2013-11-29 Joseph Myers <joseph@codesourcery.com>
817
818 * doc/implement-c.texi: Document C11 implementation-defined
819 behavior. Refer to -ffp-contract=fast for contraction behavior.
820 * doc/invoke.texi (-std=c99, std=c11): Update description of
821 completeness.
822 (-std=gnu99): Don't mention as future default.
823 (-std=gnu11): Mention as intended future default.
824 * doc/standards.texi: Update descriptions of C99 and C11 support.
825 Limit statement about C99 facilities for freestanding
826 implementations to some platforms only.
827
828 2013-11-28 Jakub Jelinek <jakub@redhat.com>
829
830 PR middle-end/59327
831 * cfgexpand.c (expand_used_vars): Avoid warning on 32-bit HWI hosts.
832
833 2013-11-28 Vladimir Makarov <vmakarov@redhat.com>
834
835 PR target/57293
836 * ira.h (ira_setup_eliminable_regset): Remove parameter.
837 * ira.c (ira_setup_eliminable_regset): Ditto. Add
838 SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
839 Don't call lra_init_elimination.
840 (ira): Call ira_setup_eliminable_regset without arguments.
841 * loop-invariant.c (calculate_loop_reg_pressure): Remove argument
842 from ira_setup_eliminable_regset call.
843 * gcse.c (calculate_bb_reg_pressure): Ditto.
844 * haifa-sched.c (sched_init): Ditto.
845 * lra.h (lra_init_elimination): Remove the prototype.
846 * lra-int.h (lra_insn_recog_data): New member sp_offset. Move
847 used_insn_alternative upper.
848 (lra_eliminate_regs_1): Add one more parameter.
849 (lra-eliminate): Ditto.
850 * lra.c (lra_invalidate_insn_data): Set sp_offset.
851 (setup_sp_offset): New.
852 (lra_process_new_insns): Call setup_sp_offset.
853 (lra): Add argument to lra_eliminate calls.
854 * lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
855 (get_equiv_with_elimination): New.
856 (process_addr_reg): Call get_equiv_with_elimination instead of
857 get_equiv_substitution.
858 (equiv_address_substitution): Ditto.
859 (loc_equivalence_change_p): Ditto.
860 (loc_equivalence_callback, lra_constraints): Ditto.
861 (curr_insn_transform): Ditto. Print the sp offset
862 (process_alt_operands): Prevent stack pointer reloads.
863 (lra_constraints): Remove one argument from lra_eliminate call.
864 Move it up. Mark used hard regs bfore it. Use
865 get_equiv_with_elimination instead of get_equiv_substitution.
866 * lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
867 assert for param values combination. Use sp offset. Add argument
868 to lra_eliminate_regs_1 calls.
869 (lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
870 (curr_sp_change): New static var.
871 (mark_not_eliminable): Add parameter. Update curr_sp_change.
872 Don't prevent elimination to sp if we can calculate its change.
873 Pass the argument to mark_not_eliminable calls.
874 (eliminate_regs_in_insn): Add a parameter. Use sp offset. Add
875 argument to lra_eliminate_regs_1 call.
876 (update_reg_eliminate): Move calculation of hard regs for spill
877 lower. Switch off lra_in_progress temporarily to generate regs
878 involved into elimination.
879 (lra_init_elimination): Rename to init_elimination. Make it
880 static. Set up insn sp offset, check the offsets at the end of BBs.
881 (process_insn_for_elimination): Add parameter. Pass its value to
882 eliminate_regs_in_insn.
883 (lra_eliminate): : Add parameter. Pass its value to
884 process_insn_for_elimination. Add assert for param values
885 combination. Call init_elimination. Don't update offsets in
886 equivalence substitutions.
887 * lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
888 for created stack slot.
889 (remove_pseudos): Call lra_eliminate_regs_1 before changing memory
890 onto stack slot.
891
892 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
893
894 * config/arm/iterators.md (vrint_conds): New int attribute.
895 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
896 (smax<mode>3): Likewise.
897 (smin<mode>3): Likewise.
898
899 2013-11-28 Richard Sandiford <rdsandiford@googlemail.com>
900
901 * tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
902 * tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
903 * tree-ssanames.h (set_range_info): Add range_type argument.
904 (duplicate_ssa_name_range_info): Likewise.
905 * tree-ssanames.c (set_range_info): Take the range type as argument
906 and store it in SSA_NAME_ANTI_RANGE_P.
907 (duplicate_ssa_name_range_info): Likewise.
908 (get_range_info): Use SSA_NAME_ANTI_RANGE_P.
909 (set_nonzero_bits): Update call to set_range_info.
910 (duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
911 * tree-ssa-copy.c (fini_copy_prop): Likewise.
912 * tree-vrp.c (remove_range_assertions): Update call to set_range_info.
913 (vrp_finalize): Likewise, passing anti-ranges directly.
914
915 2013-11-28 Richard Biener <rguenther@suse.de>
916
917 PR tree-optimization/59330
918 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
919 and fix delayed marking of free calls not necessary.
920
921 2013-11-28 Andrew MacLeod <amacleod@redhat.com>
922
923 * tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
924 is_gimple_reg_type.
925 * ipa-prop.c (determine_known_aggregate_parts): Likewise.
926
927 2013-11-28 Terry Guo <terry.guo@arm.com>
928
929 * config/arm/arm.c (v7m_extra_costs): New table.
930 (arm_v7m_tune): Use it.
931
932 2013-11-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
933
934 * config/sol2.h (TIME_LIBRARY): Define.
935
936 2013-11-28 Richard Biener <rguenther@suse.de>
937
938 PR lto/59323
939 * lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
940 CONST_DECLs in function context are not indexable.
941
942 2013-11-28 Chung-Ju Wu <jasonwucj@gmail.com>
943
944 * config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
945 not optimized for size.
946
947 2013-11-28 Jakub Jelinek <jakub@redhat.com>
948
949 * cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
950 fields.
951 (expand_stack_vars): For -fsanitize=address, use (and set initially)
952 data->asan_base as base for vars and update asan_alignb.
953 (expand_used_vars): Initialize data.asan_base and data.asan_alignb.
954 Pass them to asan_emit_stack_protection.
955 * asan.c (asan_detect_stack_use_after_return): New variable.
956 (asan_emit_stack_protection): Add pbase and alignb arguments.
957 Implement use after return sanitization.
958 * asan.h (asan_emit_stack_protection): Adjust prototype.
959 (ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.
960
961 2013-11-28 Sergey Ostanevich <sergos.gnu@gmail.com>
962
963 * common.opt: Introduced a new option -fsimd-cost-model.
964 * doc/invoke.texi: Introduced a new openmp-simd warning and
965 a new -fsimd-cost-model option.
966 * tree-vectorizer.h (unlimited_cost_model): Interface updated
967 to rely on the particular loop info.
968 * tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
969 (vect_peeling_hash_choose_best_peeling): Ditto.
970 (vect_enhance_data_refs_alignment): Ditto.
971 * tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
972 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
973 plus added openmp-simd warining.
974
975 2013-11-27 H.J. Lu <hongjiu.lu@intel.com>
976
977 PR rtl-optimization/59311
978 * dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
979 * lra-spills.c (spill_pseudos): Handle REG_XXX notes.
980
981 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
982
983 * var-tracking.c (track_expr_p): Do not track declarations for parts
984 of tracked parameters.
985 (add_stores): Do not track values for tracked parameters passed in
986 multiple locations.
987 (vt_get_decl_and_offset): Handle PARALLEL.
988 (vt_add_function_parameter): Handle parameters with incoming PARALLEL.
989
990 2013-11-27 Jeff Law <law@redhat.com>
991
992 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
993 clobber the loop structure thread_block was unsuccessful. If
994 thread_block was unsuccessful, cleanup appropriately.
995
996 2013-11-27 Chen Liqin <liqin.gcc@gmail.com>
997
998 * config/score/score.h (REG_CLASS_FROM_LETTER): Delete.
999 (score_char_to_class): Likewise.
1000
1001 2013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com>
1002
1003 * fold-const.c (int_const_binop_1): Make INT_MIN % -1 return 0 with
1004 the overflow bit set.
1005
1006 2013-11-27 Richard Biener <rguenther@suse.de>
1007
1008 PR middle-end/58723
1009 * cgraphbuild.c (build_cgraph_edges): Do not build edges
1010 for internal calls.
1011 (rebuild_cgraph_edges): Likewise.
1012 * ipa-inline-analysis.c (estimate_function_body_sizes):
1013 Skip internal calls.
1014 * tree-inline.c (estimate_num_insns): Estimate size of internal
1015 calls as 0.
1016 (gimple_expand_calls_inline): Do not try inline-expanding
1017 internal calls.
1018 * lto-streamer-in.c (input_cfg): Stream loop safelen,
1019 force_vect and simduid.
1020 (input_struct_function_base): Stream has_force_vect_loops
1021 and has_simduid_loops.
1022 (input_function): Adjust.
1023 * lto-streamer-out.c (output_cfg): Stream loop safelen,
1024 force_vect and simduid.
1025 (output_struct_function_base): Stream has_force_vect_loops
1026 and has_simduid_loops.
1027
1028 2013-11-27 Kai Tietz <ktietz@redhat.com>
1029
1030 * config/i386/winnt.c (i386_pe_section_type_flags): Use const
1031 pointer cast.
1032
1033 2013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org>
1034
1035 * doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
1036 * doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate.
1037
1038 2013-11-27 Marek Polacek <polacek@redhat.com>
1039
1040 PR sanitizer/59306
1041 * ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
1042 instead of walk_gimple_op.
1043 (ubsan_pass): Adjust. Call instrument_null only if SANITIZE_NULL.
1044
1045 2013-11-27 Aldy Hernandez <aldyh@redhat.com>
1046 Jakub Jelinek <jakub@redhat.com>
1047
1048 * cgraph.h (enum cgraph_simd_clone_arg_type): New.
1049 (struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
1050 (struct cgraph_node): Add simdclone and simd_clones fields.
1051 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
1052 ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
1053 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
1054 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
1055 * doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
1056 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
1057 * doc/tm.texi: Regenerated.
1058 * ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
1059 * ipa-cp.c (determine_versionability): Fail if "omp declare simd"
1060 attribute is present.
1061 * omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
1062 (simd_clone_vector_of_formal_parm_types): New function.
1063 (simd_clone_struct_alloc, simd_clone_struct_copy,
1064 simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
1065 simd_clone_compute_base_data_type, simd_clone_mangle,
1066 simd_clone_create, simd_clone_adjust_return_type,
1067 create_tmp_simd_array, simd_clone_adjust_argument_types,
1068 simd_clone_init_simd_arrays): New functions.
1069 (struct modify_stmt_info): New type.
1070 (ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
1071 simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
1072 functions.
1073 (pass_data_omp_simd_clone): New variable.
1074 (pass_omp_simd_clone): New class.
1075 (make_pass_omp_simd_clone): New function.
1076 * passes.def (pass_omp_simd_clone): New.
1077 * target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
1078 TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target hooks.
1079 * target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
1080 * tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
1081 * tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
1082 * tree-pass.h (make_pass_omp_simd_clone): New prototype.
1083 * tree-vect-data-refs.c: Include cgraph.h.
1084 (vect_analyze_data_refs): Inline by hand find_data_references_in_loop
1085 and find_data_references_in_bb, if find_data_references_in_stmt
1086 fails, still allow calls to #pragma omp declare simd functions
1087 in #pragma omp simd loops unless they contain data references among
1088 the call arguments or in lhs.
1089 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1090 calls with no lhs.
1091 (vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls
1092 without lhs.
1093 * tree-vectorizer.h (enum stmt_vec_info_type): Add
1094 call_simd_clone_vec_info_type.
1095 (struct _stmt_vec_info): Add simd_clone_fndecl field.
1096 (STMT_VINFO_SIMD_CLONE_FNDECL): Define.
1097 * tree-vect-stmts.c: Include tree-ssa-loop.h,
1098 tree-scalar-evolution.h and cgraph.h.
1099 (vectorizable_call): Handle calls without lhs. Assert
1100 !stmt_can_throw_internal instead of failing for it. Don't update
1101 EH stuff.
1102 (struct simd_call_arg_info): New.
1103 (vectorizable_simd_clone_call): New function.
1104 (vect_transform_stmt): Call it.
1105 (vect_analyze_stmt): Likewise. Allow NULL STMT_VINFO_VECTYPE for
1106 calls without lhs.
1107 * ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
1108 if cgraph_function_with_gimple_body_p is true.
1109
1110 2013-11-27 Tom de Vries <tom@codesourcery.com>
1111 Marc Glisse <marc.glisse@inria.fr>
1112
1113 PR middle-end/59037
1114 * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
1115 BIT_FIELD_REF.
1116 * gimple-fold.c (gimple_fold_indirect_ref): Same.
1117 * tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is
1118 out-of-bounds.
1119
1120 2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
1121
1122 PR middle-end/59138
1123 * expr.c (emit_group_store): Don't write past the end of the structure.
1124 (store_bit_field): Fix formatting.
1125
1126 2013-11-27 Richard Biener <rguenther@suse.de>
1127
1128 PR tree-optimization/59288
1129 * tree-vect-loop.c (get_initial_def_for_induction): Do not
1130 re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
1131
1132 2013-11-27 Marek Polacek <polacek@redhat.com>
1133
1134 * ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL
1135 for a decl, recreate that decl. Save into the hash table VAR_DECLs
1136 rather than ADDR_EXPRs.
1137
1138 2013-11-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
1139
1140 * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
1141
1142 2013-11-26 David Malcolm <dmalcolm@redhat.com>
1143
1144 * gengtype.c (struct seen_tag): New.
1145 (already_seen_tag): New.
1146 (mark_tag_as_seen): New.
1147 (walk_subclasses): Support having multiple subclasses using the
1148 same tag by tracking which tags have already been seen, and using
1149 this to avoid adding duplicate cases to the "switch" statement.
1150 The call to already_seen_tag introduces an O(N^2) when running
1151 gengtype on N, the number of tags, due to the repeated linear
1152 search, but currently max(N) is relatively small (the number of
1153 GSS codes, which is 26).
1154 (walk_type): Pass in a seen_tag for use by the walk_subclasses
1155 recursion.
1156
1157 * gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename
1158 underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to
1159 GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although
1160 GIMPLE_OMP_RETURN happens to share the data layout of
1161 GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related.
1162 (GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename
1163 underlying GSS value from GSS_OMP_PARALLEL to
1164 GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are
1165 not directly related; they merely share in-memory layout.
1166 (GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values
1167 for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT.
1168
1169 * gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel):
1170 Rename to...
1171 (GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout):
1172 ...these.
1173 (GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to...
1174 (GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout): ...these.
1175 (GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename to...
1176 (GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store):
1177 ...these.
1178
1179 * gimple.h (gimple_statement_resx): New subclass of
1180 gimple_statement_eh_ctrl, with the invariant that
1181 stmt->code == GIMPLE_RESX.
1182 (gimple_statement_eh_dispatch): New subclass of
1183 gimple_statement_eh_ctrl, with the invariant that
1184 stmt->code == GIMPLE_EH_DISPATH.
1185
1186 (gimple_statement_omp_parallel): The existing class expressed
1187 a layout (GSS_OMP_PARALLEL), but the codes with that layout
1188 are not all related, so it makes more sense for this class to
1189 express a *code* (GIMPLE_OMP_PARALLEL). GSS_OMP_PARALLEL has
1190 been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so
1191 rename the existing gimple_statement_omp_parallel class to...
1192 (gimple_statement_omp_parallel_layout): ...this, expressing
1193 a statement of structure layout GSS_OMP_PARALLEL_LAYOUT.
1194 (gimple_statement_omp_taskreg): New subclass of
1195 gimple_statement_omp_parallel_layout, expressing the invariant
1196 that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK,
1197 as used by the various gimple_omp_taskreg_ accessors.
1198 (gimple_statement_omp_parallel): Reintroduce this class, this time
1199 as a subclass of gimple_statement_omp_taskreg to express the
1200 invariant stmt->code == GIMPLE_OMP_PARALLEL.
1201 (gimple_statement_omp_target) New class, subclassing
1202 gimple_statement_omp_parallel_layout, to express the invariant
1203 stmt->code == GIMPLE_OMP_TARGET.
1204 (gimple_statement_omp_task): Update to inherit from
1205 gimple_statement_omp_taskreg rather than
1206 gimple_statement_omp_parallel.
1207
1208 (gimple_statement_omp_single): Rename to...
1209 (gimple_statement_omp_single_layout): ...this, expressing the
1210 invariant that the layout is GSS_OMP_SINGLE_LAYOUT.
1211 (gimple_statement_omp_single): ...and reintroduce this name as
1212 a subclass of gimple_statement_omp_single_layout, expressing
1213 the invariant that code == GIMPLE_OMP_SINGLE.
1214 (gimple_statement_omp_teams): New class, subclassing
1215 gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS.
1216
1217 (gimple_statement_omp_atomic_store): Rename to...
1218 (gimple_statement_omp_atomic_store_layout): ...this, expressing
1219 the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT.
1220 (gimple_statement_omp_atomic_store): ...and reintroduce this
1221 name as a subclass of gimple_statement_omp_atomic_store_layout
1222 with code == GIMPLE_OMP_ATOMIC_STORE.
1223 (gimple_statement_omp_return): New class, subclassing
1224 gimple_statement_omp_atomic_store_layout for the code
1225 GIMPLE_OMP_RETURN.
1226
1227 (is_a_helper <gimple_statement_eh_ctrl>::test): Delete.
1228 (is_a_helper <gimple_statement_resx>::test): New.
1229 (is_a_helper <gimple_statement_eh_dispatch>::test): New.
1230 (is_a_helper <gimple_statement_omp_atomic_store>::test): Only
1231 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
1232 (is_a_helper <gimple_statement_omp_return>::test): New.
1233 (is_a_helper <gimple_statement_omp_taskreg>::test): New.
1234 (is_a_helper <gimple_statement_omp_parallel>::test): Only check
1235 for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
1236 GIMPLE_OMP_TARGET.
1237 (is_a_helper <gimple_statement_omp_target>::test): New.
1238 (is_a_helper <gimple_statement_omp_single>::test): Only check
1239 for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
1240 (is_a_helper <gimple_statement_omp_teams>::test): New.
1241
1242 (is_a_helper <const gimple_statement_eh_ctrl>::test): Delete.
1243 (is_a_helper <const gimple_statement_resx>::test): New.
1244 (is_a_helper <const gimple_statement_eh_dispatch>::test): New.
1245 (is_a_helper <const gimple_statement_omp_atomic_store>::test): Only
1246 check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
1247 (is_a_helper <const gimple_statement_omp_return>::test): New.
1248 (is_a_helper <const gimple_statement_omp_taskreg>::test): New.
1249 (is_a_helper <const gimple_statement_omp_parallel>::test): Only
1250 check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
1251 GIMPLE_OMP_TARGET.
1252 (is_a_helper <const gimple_statement_omp_target>::test): New.
1253 (is_a_helper <const gimple_statement_omp_single>::test): Only
1254 check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
1255 (is_a_helper <const gimple_statement_omp_teams>::test): New.
1256
1257 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
1258 gimple_omp_return_lhs_ptr): Replace bogus downcasts to
1259 gimple_statement_omp_atomic_store with downcasts to
1260 gimple_statement_omp_return, thus requiring that the code be
1261 GIMPLE_OMP_RETURN.
1262 (gimple_resx_region, gimple_resx_set_region): Replace bogus
1263 downcasts to gimple_statement_eh_ctrl with downcasts to
1264 gimple_statement_resx, thus requiring that the code be GIMPLE_RESX.
1265 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region):
1266 Replace bogus downcasts to const gimple_statement_eh_ctrl with
1267 downcasts to gimple_statement_eh_dispatch, thus requiring that
1268 the code be GIMPLE_EH_DISPATCH.
1269 (gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr)
1270 gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn,
1271 gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn,
1272 gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr,
1273 gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to
1274 gimple_statement_omp_parallel with downcasts to
1275 gimple_statement_omp_taskreg, thus requiring that the code be
1276 either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK.
1277 (gimple_omp_target_clauses, gimple_omp_target_clauses_ptr
1278 gimple_omp_target_set_clauses, gimple_omp_target_child_fn
1279 gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn
1280 gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr
1281 gimple_omp_target_set_data_arg): Replace bogus downcasts to
1282 gimple_statement_omp_parallel with downcasts to
1283 gimple_statement_omp_target, thus requiring that the code be
1284 GIMPLE_OMP_TARGET.
1285 (gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr
1286 gimple_omp_teams_set_clauses): Replace bogus downcasts to
1287 gimple_statement_omp_single with downcasts to
1288 gimple_statement_omp_teams, thus requiring that the code be
1289 GIMPLE_OMP_TEAMS.
1290
1291 * gimple.c (gimple_build_resx): Fix bogus as_a<> to use
1292 gimple_statement_resx.
1293 (gimple_build_eh_dispatch): Fix bogus as_a<> to use
1294 gimple_statement_eh_dispatch.
1295
1296 2013-11-26 Jakub Jelinek <jakub@redhat.com>
1297
1298 PR tree-optimization/59014
1299 * tree-vrp.c (register_edge_assert_for_1): Don't look
1300 through conversions from non-integral types or through
1301 narrowing conversions.
1302
1303 PR target/59229
1304 * config/i386/i386.c (device_alg): Fix up formatting.
1305 (ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed
1306 similarly to count && count < epilogue_size_needed. Fix up
1307 comment typo.
1308 * builtins.c (determine_block_size): Fix comment typo.
1309
1310 PR sanitizer/59258
1311 * ubsan.c (ubsan_source_location): Don't add any location
1312 to ADDR_EXPR in the ctor. Revert 2013-11-22 change.
1313 (ubsan_create_data): Strip block info from LOC.
1314
1315 PR middle-end/59273
1316 * tree-vect-generic.c (optimize_vector_constructor): Don't optimize
1317 if there isn't optab handler for the corresponding vector PLUS_EXPR.
1318
1319 PR rtl-optimization/59166
1320 * ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of
1321 DF_REF_LOC in validate_change call.
1322 (split_live_ranges_for_shrink_wrap): Likewise.
1323
1324 PR middle-end/59150
1325 * omp-low.c (lower_rec_input_clause): For reduction with placeholder
1326 of references to constant size types in simd loops, defer emitting
1327 initializer for the new_var, emit it later on only if not using
1328 SIMD arrays for it.
1329
1330 PR middle-end/59152
1331 * omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch
1332 for the inner loop if collapse_bb is non-NULL.
1333 (expand_omp_simd): Use cont_bb rather than e->dest as latch.
1334
1335 2013-11-26 Yufeng Zhang <yufeng.zhang@arm.com>
1336
1337 * config/arm/arm.c (arm_legitimize_address): Check xop1 is not
1338 a constant immediate before force_reg.
1339
1340 2013-11-26 Richard Biener <rguenther@suse.de>
1341
1342 PR tree-optimization/59245
1343 * tree-vrp.c (set_value_range): Assert that we don't have
1344 overflowed constants (but our infinities).
1345 (set_value_range_to_value): Drop all overflow flags.
1346 (vrp_visit_phi_node): Likewise.
1347 (vrp_visit_assignment_or_call): Use set_value_range_to_value
1348 to set a constant range.
1349
1350 2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1351
1352 PR target/59290
1353 * config/arm/arm.md (*zextendsidi_negsi): New pattern.
1354 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly
1355 for zero_extend case.
1356
1357 2013-11-26 H.J. Lu <hongjiu.lu@intel.com>
1358
1359 PR bootstrap/55552
1360 * configure.ac (install_gold_as_default): New. Set to yes for
1361 --disable-ld or --enable-gold=default.
1362 (gcc_cv_ld_gold_srcdir): New.
1363 (gcc_cv_ld): Also check in-tree gold if install_gold_as_default is yes.
1364 (ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST.
1365 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
1366 * configure: Regenerated.
1367
1368 * exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable.
1369 (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
1370 (original) [collect-ld && -fuse-ld=bfd]: Set to
1371 $ORIGINAL_LD_BFD_FOR_TARGET.
1372 (original) [collect-ld && -fuse-ld=gold]: Set to
1373 $ORIGINAL_LD_GOLD_FOR_TARGET.
1374 (dir) [collect-ld && ../gold/ld-new]: Set to gold.
1375 (fast_install) [collect-ld && ../gold/ld-new]: Set to yes.
1376
1377 2013-11-26 Terry Guo <terry.guo@arm.com>
1378
1379 * config/arm/arm.c (require_pic_register): Handle high pic base
1380 register for thumb-1.
1381 (arm_load_pic_register): Also initialize high pic base register.
1382 * doc/invoke.texi: Update documentation for option -mpic-register.
1383
1384 2013-11-26 Oleg Endo <olegendo@gcc.gnu.org>
1385
1386 PR target/58314
1387 PR target/50751
1388 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
1389 Prefix function names with 'sh_'. Make them non-static.
1390 * config/sh/sh-protos.h (sh_disp_addr_displacement,
1391 sh_max_mov_insn_displacement): Add declarations.
1392 * config/sh/constraints.md (Q): Reject QImode.
1393 (Sdd): Use match_code "mem".
1394 (Snd): Fix erroneous matching of non-memory operands.
1395 * config/sh/predicates.md (short_displacement_mem_operand): New
1396 predicate.
1397 (general_movsrc_operand): Disallow PC relative QImode loads.
1398 * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
1399 (*movqi, *movhi): Merge both insns into...
1400 (*mov<mode>): ... this new insn. Replace generic 'm' constraints with
1401 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based
1402 on the operand types.
1403
1404 2013-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
1405
1406 * config/epiphany/epiphany.c (epiphany_expand_prologue):
1407 Remove unused variable save_config.
1408 (epiphany_compute_frame_size): Avoid signed/unsigned comparison in
1409 assert.
1410
1411 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
1412
1413 * config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour
1414 using other intrinsics.
1415 (vtbx3_<psu>8): Likewise.
1416
1417 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
1418
1419 * config/aarch64/aarch64-builtins.c
1420 (aarch64_types_bsl_p_qualifiers): New.
1421 (aarch64_types_bsl_s_qualifiers): Likewise.
1422 (aarch64_types_bsl_u_qualifiers): Likewise.
1423 (TYPES_BSL_P): Likewise.
1424 (TYPES_BSL_S): Likewise.
1425 (TYPES_BSL_U): Likewise.
1426 (BUILTIN_VALLDIF): Likewise.
1427 (BUILTIN_VDQQH): Likewise.
1428 * config/aarch64/aarch64-simd-builtins.def (simd_bsl): New.
1429 * config/aarch64/aarch64-simd.md
1430 (aarch64_simd_bsl<mode>_internal): Handle more modes.
1431 (aarch64_simd_bsl<mode>): Likewise.
1432 * config/aarch64/arm_neon.h
1433 (vbsl<q>_<fpsu><8,16,32,64): Implement using builtins.
1434 * config/aarch64/iterators.md (VALLDIF): New.
1435 (Vbtype): Handle more modes.
1436
1437 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
1438
1439 * config/aarch64/aarch64-builtins.c
1440 (aarch64_type_qualifiers): Add qualifier_poly.
1441 (aarch64_build_scalar_type): Also build Poly types.
1442 (aarch64_build_vector_type): Likewise.
1443 (aarch64_build_type): Likewise.
1444 (aarch64_build_signed_type): New.
1445 (aarch64_build_unsigned_type): Likewise.
1446 (aarch64_build_poly_type): Likewise.
1447 (aarch64_init_simd_builtins): Also handle Poly types.
1448
1449 2013-11-26 James Greenhalgh <james.greenhalgh@arm.com>
1450
1451 * config/aarch64/aarch64-builtins.c
1452 (VAR1): Use new naming scheme for aarch64_builtins.
1453 (aarch64_builtin_vectorized_function): Use new aarch64_builtins names.
1454
1455 2013-11-26 Richard Biener <rguenther@suse.de>
1456
1457 PR tree-optimization/59287
1458 * tree-ssa-structalias.c (get_constraint_for_component_ref):
1459 Remove no longer necessary special-casing of union accesses.
1460
1461 2013-11-26 Richard Biener <rguenther@suse.de>
1462
1463 * pretty-print.c (output_buffer::~output_buffer): Really
1464 free the obstacks.
1465
1466 2013-11-25 Jeff Law <law@redhat.com>
1467
1468 * tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively
1469 invalidate loop information.
1470
1471 2013-11-25 Oleg Endo <olegendo@gcc.gnu.org>
1472
1473 * config/sh/sh.md (doloop_end_split): Add missing SI mode.
1474
1475 2013-11-25 Oleg Endo <olegendo@gcc.gnu.org>
1476
1477 PR target/53976
1478 PR target/59243
1479 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
1480 comments.
1481 (sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
1482 previously visited basic blocks before recursing instead of only one
1483 basic block.
1484
1485 2013-11-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1486
1487 * config/aarch64/aarch64.c (cortexa53_tuning): New struct.
1488 * config/aarch64/aarch64-cores.def (cortex-a53):
1489 Use cortexa53 tuning struct.
1490
1491 2013-11-25 Andrew Macleod <amacleod@redhat.com>
1492
1493 PR bootstrap/59260
1494 * fold-const.c: Include hash-table.h.
1495
1496 2013-11-25 Marek Polacek <polacek@redhat.com>
1497
1498 PR sanitizer/59258
1499 * ubsan.c (ubsan_create_data): Increase the size of the fields array.
1500
1501 2013-11-25 Richard Biener <rguenther@suse.de>
1502
1503 * tree-dfa.c: Remove unused convert.h include.
1504
1505 2013-11-25 Terry Guo <terry.guo@arm.com>
1506
1507 * doc/invoke.texi (-mslow-flash-data): Document new option.
1508 * config/arm/arm.opt (mslow-flash-data): New option.
1509 * config/arm/arm-protos.h (arm_max_const_double_inline_cost):
1510 Declare it.
1511 * config/arm/arm.h (TARGET_USE_MOVT): Always true when literal pools
1512 are disabled.
1513 (arm_disable_literal_pool): Declare it.
1514 * config/arm/arm.c (arm_disable_literal_pool): New variable.
1515 (arm_option_override): Handle new option.
1516 (thumb2_legitimate_address_p): Don't allow symbol references when
1517 literal pools are disabled.
1518 (arm_max_const_double_inline_cost): New function.
1519 * config/arm/arm.md (types.md): Include it before ...
1520 (use_literal_pool): New attribute.
1521 (enabled): Use new attribute.
1522 (split pattern): Replace symbol+offset with MOVW/MOVT.
1523
1524 2013-11-24 Steven Bosscher <steven@gcc.gnu.org>
1525
1526 PR bootstrap/59279
1527 Revert previous commit.
1528
1529 2013-11-24 Steven Bosscher <steven@gcc.gnu.org>
1530
1531 * jump.c (reset_insn_reg_label_operand_notes): New function,
1532 split out from ...
1533 (init_label_info): ... here. Reset LABEL_NUSES in cfglayout mode.
1534 * cfgcleanup.c (delete_dead_jump_tables_between): New function,
1535 split out from ...
1536 (delete_dead_jumptables): ... here. Handle cfglayout mode.
1537 (cleanup_cfg): Delete dead jump tables in cfglayout mode if an
1538 expensive CFG cleanup is called for.
1539 * cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths.
1540 (cfg_layout_finalize): Delete dead jump tables before re-building
1541 the insns chain.
1542 * ira.c (ira): Rebuild jump labels *after* deleting unreachable
1543 basic blocks, not before.
1544 * loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup.
1545
1546 * modulo-sched.c (sms_schedule): Do not look for BARRIERs in the
1547 insns chain of a scheduling extended basic block, they cannot appear
1548 there in cfglayout mode.
1549
1550 2013-11-24 Tobias Burnus <burnus@net-b.de>
1551
1552 * doc/invoke.texi (-fsanitize=leak): Add link to the wiki page.
1553
1554 2013-11-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1555
1556 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
1557 for little endian.
1558
1559 2013-11-24 H.J. Lu <hongjiu.lu@intel.com>
1560
1561 * graphite-sese-to-poly.c: Don't include extra "expr.h".
1562
1563 2013-11-23 Eric Botcazou <ebotcazou@adacore.com>
1564
1565 * cilk-common.c (expand_builtin_cilk_detach): Dereference worker.
1566
1567 2013-11-23 David Edelson <dje.gcc@gmail.com>
1568 Andrew Dixie <andrewd@gentrack.com>
1569
1570 PR target/33704
1571 * config/rs6000/aix.h (COLLECT_SHARED_INIT_FUNC): Define.
1572 (COLLECT_SHARED_FINI_FUNC): Define.
1573
1574 * collect2.c (aix_shared_initname): Declare.
1575 (aix_shared_fininame): Declare.
1576 (symkind): Add SYM_AIXI and SYM_AIXD.
1577 (scanfilter_masks): Add SCAN_AIXI and SCAN_AIXD.
1578 (struct names special): Add GLOBAL__AIXI_ and GLOBAL__AIXD_.
1579 (aixlazy_flag): Parse.
1580 (extract_init_priority): SYM_AIXI and SYM_AIXD have highest priority.
1581 (scan_prog_file, COFF): Handle SYM_AIXI and SYM_AIXD.
1582
1583 2013-11-23 David Edelsohn <dje.gcc@gmail.com>
1584
1585 * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
1586 (rs6000_xcoff_select_section): Place decls with stricter alignment
1587 into named sections.
1588 (rs6000_xcoff_unique_section): Allow unique sections for
1589 uninitialized data with strict alignment.
1590
1591 2013-11-23 Jakub Jelinek <jakub@redhat.com>
1592
1593 PR tree-optimization/59154
1594 * tree-ssa-reassoc.c (maybe_optimize_range_tests): When changing
1595 rhs1 of a cast and new_op is invariant, fold_convert it.
1596 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Only call
1597 simplify_conversion_from_bitmask if rhs1 is a SSA_NAME.
1598
1599 2013-11-23 Uros Bizjak <ubizjak@gmail.com>
1600
1601 PR target/56788
1602 * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
1603 Declare as MULTI_ARG_1_SF instruction.
1604 <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
1605 * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
1606 from *xop_vmfrcz_<mode>.
1607 * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
1608 to merge scalar result with __A.
1609 (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
1610 result with __A.
1611
1612 2013-11-23 Eric Botcazou <ebotcazou@adacore.com>
1613
1614 * gimplify.h (recalculate_side_effects): Delete.
1615 * gimplify.c (recalculate_side_effects): Make static and add comment.
1616
1617 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
1618
1619 * config/sh/sh.md: Use nonimmediate_operand rather than general_operand
1620 for the destination of a define_peephole2. Likewise register_operand
1621 rather than arith_reg_operand. Remove constraints from
1622 define_peephole2s.
1623
1624 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
1625
1626 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
1627 Delete.
1628 (mn10300_store_multiple_operation_p): Declare.
1629 * config/mn10300/mn10300.c (mn10300_store_multiple_operation):
1630 Rename to...
1631 (mn10300_store_multiple_operation_p): ...this and remove mode
1632 argument.
1633 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
1634 Define.
1635
1636 2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
1637
1638 * config/bfin/bfin-protos.h (push_multiple_operation): Delete.
1639 (pop_multiple_operation): Delete.
1640 (analyze_push_multiple_operation): Declare.
1641 (analyze_pop_multiple_operation): Declare.
1642 * config/bfin/bfin.c (push_multiple_operation): Rename to...
1643 (analyze_push_multiple_operation): ...this and remove mode argument.
1644 (pop_multiple_operation): Rename to...
1645 (analyze_pop_multiple_operation): ...this and remove mode argument.
1646 * config/bfin/predicates.md (push_multiple_operation): Define.
1647 (pop_multiple_operation): Likewise.
1648
1649 2013-11-23 Alan Modra <amodra@gmail.com>
1650
1651 * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
1652
1653 2013-11-22 Jakub Jelinek <jakub@redhat.com>
1654
1655 PR sanitizer/59061
1656 * common.opt (static-liblsan): Add.
1657 * config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS):
1658 Define.
1659 * flag-types.h (enum sanitize_code): Add SANITIZE_LEAK. Renumber
1660 SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA,
1661 SANITIZE_RETURN.
1662 * opts.c (common_handle_option): Handle -fsanitize=leak.
1663 * gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define.
1664 (LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC.
1665 (LIBUBSAN_EARLY_SPEC): Remove.
1666 (SANITIZER_EARLY_SPEC): Don't do anything for libubsan.
1667 (SANITIZER_SPEC): Add -fsanitize=leak handling.
1668 (sanitize_spec_function): Handle %sanitize(leak).
1669 * doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document.
1670
1671 2013-11-22 Aldy Hernandez <aldyh@redhat.com>
1672 Jakub Jelinek <jakub@redhat.com>
1673
1674 * ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
1675 * ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ...
1676 (ipa_get_vector_of_formal_parm_types): ... this. No longer static.
1677 (ipa_modify_formal_parameters): Adjust caller. Remove
1678 synth_parm_prefix argument. Use operator enum instead of bit fields.
1679 Add assert for properly handling vector of references. Handle
1680 creating brand new parameters.
1681 (ipa_modify_call_arguments): Use operator enum instead of bit
1682 fields.
1683 (ipa_combine_adjustments): Same. Assert that IPA_PARM_OP_NEW is not
1684 used.
1685 (ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate):
1686 New functions.
1687 (ipa_dump_param_adjustments): Rename reduction to new_decl.
1688 Use operator enum instead of bit fields.
1689 * ipa-prop.h (enum ipa_parm_op): New.
1690 (struct ipa_parm_adjustment): New field op. Rename reduction
1691 to new_decl, new_arg_prefix to arg_prefix and remove remove_param
1692 and copy_param.
1693 (ipa_modify_formal_parameters): Remove last argument.
1694 (ipa_get_vector_of_formal_parm_types, ipa_modify_expr,
1695 ipa_get_adjustment_candidate): New prototypes.
1696 * tree-sra.c (turn_representatives_into_adjustments): Use operator
1697 enum. Set arg_prefix.
1698 (get_adjustment_for_base): Use operator enum.
1699 (sra_ipa_modify_expr): Rename to ipa_modify_expr and move to
1700 ipa-prop.c.
1701 (sra_ipa_modify_assign): Rename sra_ipa_modify_expr to ipa_modify_expr.
1702 (ipa_sra_modify_function_body): Same. No longer static.
1703 (sra_ipa_reset_debug_stmts): Use operator enum.
1704 (modify_function): Do not pass prefix argument.
1705
1706 2013-11-22 Jakub Jelinek <jakub@redhat.com>
1707
1708 * ubsan.c (ubsan_source_location): Don't crash on unknown locations.
1709 (ubsan_pass): Ignore clobber stmts.
1710
1711 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
1712 * opts.c (common_handle_option): Add -fsanitize=return.
1713 * flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
1714 or it into SANITIZE_UNDEFINED.
1715
1716 * sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT,
1717 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New.
1718 * asan.c (instrument_derefs): Handle also VAR_DECL loads/stores.
1719 Don't instrument accesses to VAR_DECLs which are known to fit
1720 into their bounds and the vars are known to have shadow bytes
1721 indicating allowed access.
1722 (asan_dynamic_init_call): New function.
1723 (asan_add_global): If vnode->dynamically_initialized,
1724 set __has_dynamic_init to 1 instead of 0.
1725 (initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var.
1726 * asan.h (asan_dynamic_init_call): New prototype.
1727 * cgraph.h (varpool_node): Add dynamically_initialized bitfield.
1728
1729 2013-11-22 Martin Jambor <mjambor@suse.cz>
1730
1731 PR rtl-optimization/10474
1732 * ira.c (interesting_dest_for_shprep_1): New function.
1733 (interesting_dest_for_shprep): Use interesting_dest_for_shprep_1,
1734 also check parallels.
1735
1736 2013-11-22 Jeff Law <law@redhat.com>
1737
1738 * tree-ssa-threadedge.c (record_temporary_equivalence): Handle
1739 NULL for RHS, which we used to invalidate equivalences.
1740 (record_temporary_equivalences_from_phis): New bitmap arguments
1741 and a boolean indicating if we have passed a backedge. If we
1742 have passed a backedge, then set the appropriate bit in the
1743 bitmaps for the SRC & DEST of PHIs creating equivalences.
1744 (invalidate_equivalences, dummy_simplify): New functions.
1745 (cond_arg_set_in_b): Remove.
1746 (record_temporary_equivalences_from_stmts_at_dest): New bitmap
1747 arguments and a boolean indicating if we have passed a backedge.
1748 If we have passed a backedge, then perform invalidations as needed.
1749 (thread_around_empty_blocks): If we have seen a backedge, then
1750 use the dummy simplify routine.
1751 (thread_through_normal_block): Likewise. Pass bitmaps and
1752 backedge status to children. Do not pessimize so much when
1753 traversing backedges in the CFG.
1754 (thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps.
1755 If we have seen a backedge, then use the dummy simplify routine.
1756 Do not pessimize so much when traversing backedges.
1757
1758 2013-11-22 Hans-Peter Nilsson <hp@axis.com>
1759
1760 * config/cris/cris.c (cris_atomic_align_for_mode): New function.
1761 (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
1762
1763 2013-11-22 Yuri Rumyantsev <ysrumyan@gmail.com>
1764
1765 * config/i386/i386.c (processor_alias_table): Enable PTA_AES,
1766 PTA_PCLMUL and PTA_RDRND for Silvermont.
1767 * config/i386/driver-i386.c (host_detect_local_cpu): Set up cpu
1768 for Silvermont.
1769
1770 * doc/invoke.texi: Mention AES, PCLMUL and RDRND for Silvermont.
1771
1772 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
1773
1774 * hooks.h (hook_uint_mode_0): Add Prototype.
1775 * hooks.c (hook_uint_mode_0): New default function.
1776 * target.def (atomic_align_for_mode): New target hook.
1777 * tree.c (build_atomic_base): Add alignment override parameter.
1778 (build_common_tree_nodes): Use atomic alignment override.
1779 * doc/tm.texi.in (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
1780 * doc/tm.texi (TARGET_ATOMIC_ALIGN_FOR_MODE): Add description.
1781
1782 2013-11-22 Andrew MacLeod <amacleod@redhat.com>
1783
1784 * gimple.h: Remove all includes.
1785 (recalculate_side_effects): Move prototype to gimplify.h.
1786 * Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
1787 * gengtype.c (open_base_files): Add gimple.h include list.
1788 * gimplify.h (recalculate_side_effects): Relocate prototype here.
1789 * gimple.c: Adjust include list.
1790 (recalculate_side_effects): Move to gimplify.c.
1791 * gimplify.c: Adjust include list.
1792 (recalculate_side_effects): Relocate from gimple.c.
1793 * alias.c: Add required include files removed from gimple.h.
1794 * asan.c: Likewise.
1795 * builtins.c: Likewise.
1796 * calls.c: Likewise.
1797 * cfgexpand.c: Likewise.
1798 * cfgloop.c: Likewise.
1799 * cfgloopmanip.c: Likewise.
1800 * cgraphbuild.c: Likewise.
1801 * cgraph.c: Likewise.
1802 * cgraphclones.c: Likewise.
1803 * cgraphunit.c: Likewise.
1804 * cilk-common.c: Likewise.
1805 * data-streamer.c: Likewise.
1806 * data-streamer-in.c: Likewise.
1807 * data-streamer-out.c: Likewise.
1808 * dse.c: Likewise.
1809 * dwarf2out.c: Likewise.
1810 * emit-rtl.c: Likewise.
1811 * except.c: Likewise.
1812 * expr.c: Likewise.
1813 * fold-const.c: Likewise.
1814 * function.c: Likewise.
1815 * gimple-builder.c: Likewise.
1816 * gimple-expr.c: Likewise.
1817 * gimple-fold.c: Likewise.
1818 * gimple-iterator.c: Likewise.
1819 * gimple-low.c: Likewise.
1820 * gimple-pretty-print.c: Likewise.
1821 * gimple-ssa-isolate-paths.c: Likewise.
1822 * gimple-ssa-strength-reduction.c: Likewise.
1823 * gimple-streamer-in.c: Likewise.
1824 * gimple-streamer-out.c: Likewise.
1825 * gimple-walk.c: Likewise.
1826 * gimplify-me.c: Likewise.
1827 * graphite-blocking.c: Likewise.
1828 * graphite.c: Likewise.
1829 * graphite-clast-to-gimple.c: Likewise.
1830 * graphite-dependences.c: Likewise.
1831 * graphite-interchange.c: Likewise.
1832 * graphite-optimize-isl.c: Likewise.
1833 * graphite-poly.c: Likewise.
1834 * graphite-scop-detection.c: Likewise.
1835 * graphite-sese-to-poly.c: Likewise.
1836 * internal-fn.c: Likewise.
1837 * ipa.c: Likewise.
1838 * ipa-cp.c: Likewise.
1839 * ipa-devirt.c: Likewise.
1840 * ipa-inline-analysis.c: Likewise.
1841 * ipa-inline.c: Likewise.
1842 * ipa-profile.c: Likewise.
1843 * ipa-prop.c: Likewise.
1844 * ipa-pure-const.c: Likewise.
1845 * ipa-reference.c: Likewise.
1846 * ipa-split.c: Likewise.
1847 * ipa-utils.c: Likewise.
1848 * langhooks.c: Likewise.
1849 * lto-cgraph.c: Likewise.
1850 * lto-compress.c: Likewise.
1851 * lto-opts.c: Likewise.
1852 * lto-section-in.c: Likewise.
1853 * lto-section-out.c: Likewise.
1854 * lto-streamer.c: Likewise.
1855 * lto-streamer-in.c: Likewise.
1856 * lto-streamer-out.c: Likewise.
1857 * omp-low.c: Likewise.
1858 * opts-global.c: Likewise.
1859 * passes.c: Likewise.
1860 * predict.c: Likewise.
1861 * profile.c: Likewise.
1862 * sese.c: Likewise.
1863 * stmt.c: Likewise.
1864 * stor-layout.c: Likewise.
1865 * symtab.c: Likewise.
1866 * targhooks.c: Likewise.
1867 * toplev.c: Likewise.
1868 * tracer.c: Likewise.
1869 * trans-mem.c: Likewise.
1870 * tree-affine.c: Likewise.
1871 * tree.c: Likewise.
1872 * tree-call-cdce.c: Likewise.
1873 * tree-cfg.c: Likewise.
1874 * tree-cfgcleanup.c: Likewise.
1875 * tree-chrec.c: Likewise.
1876 * tree-complex.c: Likewise.
1877 * tree-data-ref.c: Likewise.
1878 * tree-dfa.c: Likewise.
1879 * tree-eh.c: Likewise.
1880 * tree-emutls.c: Likewise.
1881 * tree-if-conv.c: Likewise.
1882 * tree-inline.c: Likewise.
1883 * tree-into-ssa.c: Likewise.
1884 * tree-loop-distribution.c: Likewise.
1885 * tree-nested.c: Likewise.
1886 * tree-nrv.c: Likewise.
1887 * tree-object-size.c: Likewise.
1888 * tree-outof-ssa.c: Likewise.
1889 * tree-parloops.c: Likewise.
1890 * tree-phinodes.c: Likewise.
1891 * tree-predcom.c: Likewise.
1892 * tree-pretty-print.c: Likewise.
1893 * tree-profile.c: Likewise.
1894 * tree-scalar-evolution.c: Likewise.
1895 * tree-sra.c: Likewise.
1896 * tree-ssa-address.c: Likewise.
1897 * tree-ssa-alias.c: Likewise.
1898 * tree-ssa.c: Likewise.
1899 * tree-ssa-ccp.c: Likewise.
1900 * tree-ssa-coalesce.c: Likewise.
1901 * tree-ssa-copy.c: Likewise.
1902 * tree-ssa-copyrename.c: Likewise.
1903 * tree-ssa-dce.c: Likewise.
1904 * tree-ssa-dom.c: Likewise.
1905 * tree-ssa-dse.c: Likewise.
1906 * tree-ssa-forwprop.c: Likewise.
1907 * tree-ssa-ifcombine.c: Likewise.
1908 * tree-ssa-live.c: Likewise.
1909 * tree-ssa-loop.c: Likewise.
1910 * tree-ssa-loop-ch.c: Likewise.
1911 * tree-ssa-loop-im.c: Likewise.
1912 * tree-ssa-loop-ivcanon.c: Likewise.
1913 * tree-ssa-loop-ivopts.c: Likewise.
1914 * tree-ssa-loop-manip.c: Likewise.
1915 * tree-ssa-loop-niter.c: Likewise.
1916 * tree-ssa-loop-prefetch.c: Likewise.
1917 * tree-ssa-loop-unswitch.c: Likewise.
1918 * tree-ssa-math-opts.c: Likewise.
1919 * tree-ssanames.c: Likewise.
1920 * tree-ssa-operands.c: Likewise.
1921 * tree-ssa-phiopt.c: Likewise.
1922 * tree-ssa-phiprop.c: Likewise.
1923 * tree-ssa-pre.c: Likewise.
1924 * tree-ssa-propagate.c: Likewise.
1925 * tree-ssa-reassoc.c: Likewise.
1926 * tree-ssa-sccvn.c: Likewise.
1927 * tree-ssa-sink.c: Likewise.
1928 * tree-ssa-strlen.c: Likewise.
1929 * tree-ssa-structalias.c: Likewise.
1930 * tree-ssa-tail-merge.c: Likewise.
1931 * tree-ssa-ter.c: Likewise.
1932 * tree-ssa-threadedge.c: Likewise.
1933 * tree-ssa-threadupdate.c: Likewise.
1934 * tree-ssa-uncprop.c: Likewise.
1935 * tree-ssa-uninit.c: Likewise.
1936 * tree-stdarg.c: Likewise.
1937 * tree-streamer.c: Likewise.
1938 * tree-streamer-in.c: Likewise.
1939 * tree-streamer-out.c: Likewise.
1940 * tree-switch-conversion.c: Likewise.
1941 * tree-tailcall.c: Likewise.
1942 * tree-vect-data-refs.c: Likewise.
1943 * tree-vect-generic.c: Likewise.
1944 * tree-vect-loop.c: Likewise.
1945 * tree-vect-loop-manip.c: Likewise.
1946 * tree-vectorizer.c: Likewise.
1947 * tree-vect-patterns.c: Likewise.
1948 * tree-vect-slp.c: Likewise.
1949 * tree-vect-stmts.c: Likewise.
1950 * tree-vrp.c: Likewise.
1951 * tsan.c: Likewise.
1952 * ubsan.c: Likewise.
1953 * value-prof.c: Likewise.
1954 * varpool.c: Likewise.
1955 * var-tracking.c: Likewise.
1956 * vtable-verify.c: Likewise.
1957 * config/darwin.c: Likewise.
1958 * config/aarch64/aarch64-builtins.c: Likewise.
1959 * config/aarch64/aarch64.c: Likewise.
1960 * config/alpha/alpha.c: Likewise.
1961 * config/i386/i386.c: Likewise.
1962 * config/i386/winnt.c: Likewise.
1963 * config/ia64/ia64.c: Likewise.
1964 * config/m32c/m32c.c: Likewise.
1965 * config/mep/mep.c: Likewise.
1966 * config/mips/mips.c: Likewise.
1967 * config/rs6000/rs6000.c: Likewise.
1968 * config/s390/s390.c: Likewise.
1969 * config/sh/sh.c: Likewise.
1970 * config/sparc/sparc.c: Likewise.
1971 * config/spu/spu.c: Likewise.
1972 * config/stormy16/stormy16.c: Likewise.
1973 * config/tilegx/tilegx.c: Likewise.
1974 * config/tilepro/tilepro.c: Likewise.
1975 * config/xtensa/xtensa.c: Likewise.
1976
1977 2013-11-22 Richard Earnshaw <rearnsha@arm.com>
1978
1979 PR target/59216
1980 * arm.md (negdi_extendsidi): Fix invalid split.
1981
1982 2013-11-22 Alex Velenko <Alex.Velenko@arm.com>
1983
1984 * config/aarch64/arm_neon.h (vmov_n_f32): Implemented in C.
1985 (vmov_n_f64): Likewise.
1986 (vmov_n_p8): Likewise.
1987 (vmov_n_p16): Likewise.
1988 (vmov_n_s8): Likewise.
1989 (vmov_n_s16): Likewise.
1990 (vmov_n_s32): Likewise.
1991 (vmov_n_s64): Likewise.
1992 (vmov_n_u8): Likewise.
1993 (vmov_n_u16): Likewise.
1994 (vmov_n_u32): Likewise.
1995 (vmov_n_u64): Likewise.
1996 (vmovq_n_f32): Likewise.
1997 (vmovq_n_f64): Likewise.
1998 (vmovq_n_p8): Likewise.
1999 (vmovq_n_p16): Likewise.
2000 (vmovq_n_s8): Likewise.
2001 (vmovq_n_s16): Likewise.
2002 (vmovq_n_s32): Likewise.
2003 (vmovq_n_s64): Likewise.
2004 (vmovq_n_u8): Likewise.
2005 (vmovq_n_u16): Likewise.
2006 (vmovq_n_u32): Likewise.
2007 (vmovq_n_u64): Likewise.
2008
2009 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
2010
2011 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
2012 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap for big-endian.
2013 (reduc_<sur>plus_<mode>): Factorize V2DI into this.
2014 (reduc_<sur>plus_<mode>): Change this to reduc_splus_<mode> for floats
2015 and also change to float UNSPEC.
2016 (reduc_maxmin_uns>_<mode>): Remove V2DI.
2017 * config/aarch64/arm_neon.h (vaddv<q>_<suf><8,16,32,64>,
2018 vmaxv<q>_<suf><8,16,32,64>, vminv<q>_<suf><8,16,32,64>): Fix up scalar
2019 result access for big-endian.
2020 (__LANE0): New macro used to fix up lane access of 'across-lanes'
2021 intrinsics for big-endian.
2022 * config/aarch64/iterators.md (VDQV): Add V2DI.
2023 (VDQV_S): New.
2024 (vp): New mode attribute.
2025
2026 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
2027
2028 * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
2029 vec_pack_trunc_v2df, vec_pack_trunc_df): Swap source ops for
2030 big-endian.
2031
2032 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
2033
2034 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Adjust
2035 for big-endian element order.
2036 (aarch64_simd_vec_setv2di): Likewise.
2037 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>,
2038 *aarch64_get_lane_zero_extendsi<mode>, aarch64_get_lane): Likewise.
2039 (vec_extract): Expand using aarch64_get_lane.
2040 * config/aarch64/aarch64.h (ENDIAN_LANE_N): New.
2041
2042 2013-11-22 Tejas Belagod <tejas.belagod@arm.com>
2043
2044 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Fix loads
2045 and stores to be ABI compliant.
2046
2047 2013-11-22 David Malcolm <dmalcolm@redhat.com>
2048
2049 * input.h (input_line): Remove.
2050 (input_filename): Likewise.
2051 (in_system_header): Likewise.
2052 * tree.h (EXPR_LOC_OR_HERE): Remove.
2053 * config/bfin/bfin.c (output_file_start): Remove use of
2054 input_filename macro.
2055 * builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro.
2056 * gimplify.c (internal_get_tmp_var): Likewise.
2057 EXPR_LOC_OR_HERE macro.
2058 (shortcut_cond_expr): Likewise.
2059 * tree-diagnostic.c (diagnostic_report_current_function): Remove
2060 use of input_filename macro.
2061 * tree.c (get_file_function_name): Likewise.
2062
2063 2013-11-22 Kenneth Zadeck <zadeck@naturalbridge.com>
2064
2065 * store-layout.c (place-field): Fix hwi test and accessor mismatch.
2066
2067 2013-11-22 Jakub Jelinek <jakub@redhat.com>
2068
2069 * expr.c (store_constructor): Allow CONSTRUCTOR with VECTOR_TYPE
2070 (same sized) elements even if the type of the CONSTRUCTOR has
2071 vector mode and target is a REG.
2072
2073 2013-11-22 Richard Biener <rguenther@suse.de>
2074
2075 Revert
2076 2013-11-21 Richard Biener <rguenther@suse.de>
2077
2078 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
2079 nb_iterations_upper_bound by one.
2080
2081 2013-11-22 H.J. Lu <hongjiu.lu@intel.com>
2082
2083 * config/i386/i386.c (processor_alias_table): Enable PTA_POPCNT
2084 for Silvermont.
2085
2086 * doc/invoke.texi: Mention POPCNT for corei7, corei7-avx,
2087 core-avx-i, core-avx2 and slm.
2088
2089 2013-11-22 Eric Botcazou <ebotcazou@adacore.com>
2090
2091 * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
2092
2093 2013-11-22 Richard Sandiford <rdsandiford@googlemail.com>
2094
2095 * config/m32c/cond.md (stzx_16): Use register_operand for operand 0.
2096 (stzx_24_<mode>): Likewise mra_operand.
2097
2098 2013-11-22 Jeff Law <law@redhat.com>
2099
2100 * tree-ssa-threadupdate.c: Include tree-cfg.h and tree-pass.h
2101 (thread_block_1): Do not cancel jump threads which go from
2102 inside a loop, through the header, then back inside the loop.
2103 (bb_ends_with_multiway_branch): New function.
2104 (thread_through_all_blocks): Handle threading cases which start
2105 in a loop through the loop header to a point in the loop.
2106
2107 * tree-ssa-threadedge.c (thread_across_edge): Mark the start of the
2108 jump thread path properly.
2109
2110 2013-11-22 Trevor Saunders <tsaunders@mozilla.com>
2111
2112 * vec.h (auto_vec): New class.
2113 * cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c,
2114 function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c,
2115 ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c,
2116 tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c,
2117 tree-loop-distribution.c, tree-predcom.c, tree-sra.c,
2118 tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
2119 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
2120 tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as
2121 appropriate instead of vec for local variables.
2122
2123 2013-11-21 Teresa Johnson <tejohnson@google.com>
2124
2125 PR target/59233
2126 * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions
2127 not understood by old_insns_match_p.
2128
2129 2013-11-21 Bill Schmidt <wschmidt@vnet.ibm.com>
2130
2131 * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
2132 little endian change.
2133 (vec_pack_sfix_trunc_v2df): Likewise.
2134 (vec_pack_ufix_trunc_v2df): Likewise.
2135 * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
2136 double checking of endianness.
2137
2138 2013-11-22 Jakub Jelinek <jakub@redhat.com>
2139
2140 * tree-vect-generic.c (optimize_vector_constructor): New function.
2141 (expand_vector_operations_1): Call it.
2142
2143 2013-11-21 Uros Bizjak <ubizjak@gmail.com>
2144
2145 * config/i386/i386.c (ix86_expand_special_args_builtin): Use
2146 ix86_zero_extend_to_Pmode where appropriate.
2147 (ix86_expand_builtin): Ditto.
2148
2149 2013-11-21 Cary Coutant <ccoutant@google.com>
2150
2151 * dwarf2out.c (want_pubnames): Don't do pubnames for -g1.
2152 (add_linkage_name): Don't add linkage name for -g1.
2153 (decls_for_scope): Process subblocks for -g1.
2154 (dwarf2out_source_line): Output line tables for -g1.
2155 (dwarf2out_finish): Likewise.
2156 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2157 unused scopes for -g1.
2158 * opts.c (common_handle_option): Handle -g same as -g2.
2159 * doc/invoke.texi: Update description for -g1.
2160
2161 2013-11-21 Peter Bergner <bergner@vnet.ibm.com>
2162
2163 * doc/extend.texi: Document htm builtins.
2164
2165 2013-11-21 Jeff Law <law@redhat.com>
2166
2167 PR tree-optimization/59221
2168 * tree-ssa-threadedge.c (thread_across_edge): Properly manage
2169 temporary equivalences when threading through joiner blocks.
2170
2171 2013-11-21 Joseph Myers <joseph@codesourcery.com>
2172
2173 PR rtl-optimization/55950
2174 * real.c (real_sqrt): Remove function.
2175 * real.h (real_sqrt): Remove prototype.
2176 * simplify-rtx.c (simplify_const_unary_operation): Do not fold
2177 SQRT using real_sqrt.
2178
2179 2013-11-21 Richard Biener <rguenther@suse.de>
2180
2181 PR tree-optimization/59058
2182 * tree-scalar-evolution.h (number_of_exit_cond_executions): Remove.
2183 * tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise.
2184 * tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ...
2185 (LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this.
2186 (NITERS_KNOWN_P): Fold into ...
2187 (LOOP_VINFO_NITERS_KNOWN_P): ... this.
2188 (LOOP_VINFO_PEELING_FOR_NITER): Add.
2189 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
2190 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
2191 (vect_do_peeling_for_alignment): Re-use precomputed niter
2192 instead of re-emitting it.
2193 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2194 Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
2195 * tree-vect-loop.c (vect_get_loop_niters): Use
2196 number_of_latch_executions.
2197 (new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER.
2198 (vect_analyze_loop_form): Simplify.
2199 (vect_analyze_loop_operations): Move epilogue peeling code ...
2200 (vect_analyze_loop_2): ... here and adjust it to compute
2201 LOOP_VINFO_PEELING_FOR_NITER.
2202 (vect_estimate_min_profitable_iters): Use
2203 LOOP_VINFO_PEELING_FOR_ALIGNMENT.
2204 (vect_build_loop_niters): Emit on the preheader.
2205 (vect_generate_tmps_on_preheader): Likewise.
2206 (vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead
2207 of recomputing it. Adjust.
2208
2209 2013-11-21 Richard Biener <rguenther@suse.de>
2210
2211 * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
2212 LOC_LINE): Remove wrappers and fix all users.
2213 (struct _loop_vec_info): Remove loop_line_number member.
2214 (LOOP_VINFO_LOC): Remove.
2215 * tree-parloops.c, tree-vect-loop-manip.c, tree-vect-slp.c,
2216 tree-vectorizer.c: Fix users of LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE
2217 and LOC_LINE.
2218
2219 2013-11-21 Richard Biener <rguenther@suse.de>
2220
2221 * tree-ssa-forwprop.c (simplify_vce): New function.
2222 (ssa_forward_propagate_and_combine): Call it.
2223
2224 2013-11-21 Richard Biener <rguenther@suse.de>
2225
2226 * tree-vect-loop-manip.c (vect_build_loop_niters,
2227 vect_generate_tmps_on_preheader): Move ...
2228 * tree-vect-loop.c (vect_build_loop_niters,
2229 vect_generate_tmps_on_preheader): ... here and simplify.
2230 (vect_transform_loop): Call them here and pass down results
2231 to consumers.
2232 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound):
2233 Get niter variables from caller.
2234 (vect_do_peeling_for_alignment): Likewise.
2235 * tree-vectorizer.h (vect_generate_tmps_on_preheader): Remove.
2236 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
2237 Adjust prototypes.
2238
2239 2013-11-21 Richard Biener <rguenther@suse.de>
2240
2241 * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
2242 nb_iterations_upper_bound by one.
2243
2244 2013-11-21 Richard Biener <rguenther@suse.de>
2245
2246 PR tree-optimization/59058
2247 * tree-loop-distribution.c (struct partition_s): Add plus_one member.
2248 (build_size_arg_loc): Apply niter adjustment here.
2249 (generate_memset_builtin): Adjust.
2250 (generate_memcpy_builtin): Likewise.
2251 (classify_partition): Do not use number_of_exit_cond_executions
2252 but record whether niter needs to be adjusted.
2253
2254 2013-11-21 Eric Botcazou <ebotcazou@adacore.com>
2255
2256 * tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement
2257 could throw.
2258
2259 2013-11-21 Oleg Endo <olegendo@gcc.gnu.org>
2260
2261 PR target/53976
2262 * config/sh/sh_optimize_sett_clrt.cc: New SH specific RTL pass.
2263 * config/sh/sh.c (register_sh_passes): Add sh_optimize_sett_clrt pass.
2264 * config/sh/sh/t-sh (sh_optimize_sett_clrt pass.o): New entry.
2265 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add
2266 sh_optimize_sett_clrt pass.o to extra_objs.
2267
2268 2013-11-20 David Malcolm <dmalcolm@redhat.com>
2269
2270 * cfg.c (dump_edge_info): Remove redundant comment.
2271 * cfgcleanup.c (outgoing_edges_match): Reword reference to
2272 EXIT_BLOCK_PTR in comment.
2273 (try_optimize_cfg): Likewise.
2274 * cfgrtl.c (last_bb_in_partition): Likewise.
2275 * cgraph.c (cgraph_node_cannot_return): Likewise.
2276 * function.c (thread_prologue_and_epilogue_insns): Likewise.
2277 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
2278 * ipa-split.c (consider_split): Likewise.
2279 * profile.c (find_spanning_tree): Likewise.
2280 * sched-int.h (common_sched_info_def.add_block): Likewise.
2281 * dominance.c (calc_dfs_tree_nonrec): Reword references in
2282 comments to now removed ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros.
2283 * tree-cfgcleanup.c (cleanup_control_flow_bb): Reword references
2284 in comments to now removed ENTRY_BLOCK_PTR macro.
2285 (tree_forwarder_block_p): Reword reference in comment to
2286 EXIT_BLOCK_PTR.
2287 * tree-inline.c (copy_cfg_body): Reword references in comments to
2288 now removed ENTRY_BLOCK_PTR macro.
2289 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
2290 * tree-scalar-evolution.h ( block_before_loop): Likewise. Add
2291 a comma to the comment to clarify the meaning.
2292
2293 2013-11-20 Andrew MacLeod <amacleod@redhat.com>
2294
2295 * gimplify.h (gimplify_hasher:typed_free_remove, struct gimplify_ctx):
2296 Move to gimplify.c.
2297 (free_gimplify_stack): Add prototype.
2298 * gimplify.c (gimplify_hasher:typed_free_remove): Relocate here.
2299 (struct gimplify_ctx): Relocate here.
2300 (gimplify_ctxp): Make static.
2301 (ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New. Manage a
2302 list of struct gimplify_ctx.
2303 (push_gimplify_context): Add default parameters and allocate a struct
2304 from the pool.
2305 (pop_gimplify_context): Free a struct back to the pool.
2306 (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
2307 gimplify_omp_workshare, gimplify_transaction, gimplify_body): Don't
2308 use a local 'struct gimplify_ctx'.
2309 * cgraphunit.c (expand_all_functions): call free_gimplify_stack.
2310 * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
2311 Likewise.
2312 * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
2313 lower_omp_ordered, lower_omp_critical, lower_omp_for,
2314 create_task_copyfn, lower_omp_taskreg, lower_omp_target,
2315 lower_omp_teams, execute_lower_omp): Likewise.
2316 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
2317 * tree-inline.c (optimize_inline_calls): Likewise.
2318
2319 2013-11-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2320
2321 * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
2322 (vsx_extract_<mode>): Likewise.
2323 (*vsx_extract_<mode>_one_le): New LE variant on
2324 *vsx_extract_<mode>_zero.
2325 (vsx_extract_v4sf): Adjust for little endian.
2326
2327 2013-11-20 Vladimir Makarov <vmakarov@redhat.com>
2328
2329 PR rtl-optimization/59133
2330 * lra.c (expand_reg_data): Add new argument. Set up ALL_REGS for
2331 new pseudos.
2332 (lra_create_new_reg_with_unique_value): Pass new argument value.
2333 (lra_emit_add, lra_emit_move): Ditto.
2334 * lra-constraints.c (in_class_p): Add check for move for a new insn.
2335 (change_class): Rename to lra_change_class. Move to lra-int.h.
2336 (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
2337 change_class.
2338 (process_addr_reg, process_addr): Ditto.
2339 (curr_insn_transform): Ditto. Add check on old pseudo for
2340 optional reload.
2341 * lra-int.h (lra_get_regno_hard_regno): Move below.
2342 (lra_change_class): Renamed change_class from lra.c.
2343
2344 2013-11-20 David Malcolm <dmalcolm@redhat.com>
2345
2346 * gdbhooks.py (VecPrinter.children): Don't attempt to iterate
2347 the children of a NULL pointer.
2348
2349 2013-11-20 Robert Suchanek <Robert.Suchanek@imgtec.com>
2350
2351 * lra.c (lra): Set lra_in_progress before check_rtl call.
2352 * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
2353 adding clobber regs when LRA is running.
2354
2355 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
2356
2357 * config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64
2358 restriction for ISA_MIPS32R2.
2359 (ISA_HAS_LXC1_SXC1): New macro.
2360 (ISA_HAS_FP_MADD4_MSUB4): Remove ISA_MIPS32R2 special-casing.
2361 (ISA_HAS_NMADD4_NMSUB4): Likewise.
2362 (ISA_HAS_FP_RECIP_RSQRT): Likewise.
2363 (ISA_HAS_PREFETCHX): Redefine in terms of ISA_HAS_FP4.
2364 * config/mips/mips.md (*<ANYF:loadx>_<P:mode>): Use
2365 ISA_HAS_LXC1_SXC1 rather than ISA_HAS_FP4.
2366 (*<ANYF:storex>_<P:mode>): Likewise.
2367
2368 2013-11-20 Maciej W. Rozycki <macro@codesourcery.com>
2369
2370 * config/mips/mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.
2371 * config/mips/mips.c (mips_rtx_costs) <DIV>: Check for
2372 ISA_HAS_FP_RECIP_RSQRT rather than ISA_HAS_FP4.
2373 * config/mips/mips.md (recip_condition): Remove mode attribute.
2374 (div<mode>3): Use ISA_HAS_FP_RECIP_RSQRT rather than
2375 <recip_condition>.
2376 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Likewise.
2377
2378 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
2379
2380 PR target/59207
2381 * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
2382 Make sure neg2_ovf is set before being used.
2383
2384 2013-11-20 Basile Starynkevitch <basile@starynkevitch.net>
2385
2386 * plugin.def: Add comment about register_callback and
2387 invoke_plugin_callbacks_full.
2388
2389 * plugin.c (register_callback, invoke_plugin_callbacks_full):
2390 Handle PLUGIN_INCLUDE_FILE event.
2391
2392 2013-11-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2393
2394 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
2395 allow subregs of TDmode in FPRs of smaller size in little-endian.
2396 (rs6000_split_multireg_move): When splitting an access to TDmode
2397 in FPRs, do not use simplify_gen_subreg.
2398
2399 2013-11-20 Joseph Myers <joseph@codesourcery.com>
2400
2401 PR middle-end/21718
2402 * real.c: Remove comment about decimal string conversion and
2403 rounding errors.
2404 (real_from_string): Use MPFR to convert nonzero decimal constant
2405 to REAL_VALUE_TYPE.
2406
2407 2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
2408
2409 * config/arm/arm.c (arm_dwarf_register_span): Take into account the
2410 endianness of the D registers for the legacy encodings.
2411
2412 2013-11-20 Richard Earnshaw <rearnsha@arm.com>
2413
2414 PR rtl-optimization/54300
2415 * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
2416 outputs in a single-set are killed from the value chains.
2417
2418 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
2419
2420 * cgraph.h (varpool_node): Add need_bounds_init field.
2421 * lto-cgraph.c (lto_output_varpool_node): Output
2422 need_bounds_init value.
2423 (input_varpool_node): Read need_bounds_init value.
2424 * varpool.c (dump_varpool_node): Dump need_bounds_init field.
2425
2426 2013-11-20 Jan Hubicka <jh@suse.cz>
2427
2428 * opts.c (finish_options): Imply -ffat-lto-objects with
2429 -fno-use-linker-plugin.
2430 * common.opt (fuse-linker-plugin): Add var.
2431
2432 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
2433
2434 * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
2435 * dwarf2out.c (gen_subprogram_die): Ignore bound args.
2436 (gen_type_die_with_usage): Skip pointer bounds.
2437 (dwarf2out_global_decl): Likewise.
2438
2439 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
2440
2441 * config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes
2442 from all insns.
2443
2444 2013-11-20 Yuri Rumyantsev <ysrumyan@gmail.com>
2445
2446 PR target/57756
2447 * config/i386/i386.c (ix86_option_override_internal): Add missed
2448 argument prefix for 'ix86_fpmath'.
2449 * config/i386/ssemath.h: Add missed definition of
2450 TARGET_FPMATH_DEFAULT_P macros.
2451
2452 2013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
2453 Mike Stump <mikestump@comcast.net>
2454 Richard Sandiford <rdsandiford@googlemail.com>
2455
2456 * alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi
2457 instead of TREE_INT_CST_LOW, in cases where there is a protecting
2458 tree_fits_shwi_p or tree_fits_uhwi_p.
2459 * builtins.c (fold_builtin_powi): Likewise.
2460 * config/epiphany/epiphany.c (epiphany_special_round_type_align):
2461 Likewise.
2462 * dbxout.c (dbxout_symbol): Likewise.
2463 * expr.c (expand_expr_real_1): Likewise.
2464 * fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr)
2465 (fold_binary_loc): Likewise.
2466 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
2467 * gimple-ssa-strength-reduction.c (stmt_cost): Likewise.
2468 * omp-low.c (lower_omp_for_lastprivate): Likewise.
2469 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2470 * stor-layout.c (compute_record_mode): Likewise.
2471 * tree-cfg.c (verify_expr): Likewise.
2472 * tree-dfa.c (get_ref_base_and_extent): Likewise.
2473 * tree-pretty-print.c (dump_array_domain): Likewise.
2474 * tree-sra.c (build_user_friendly_ref_for_offset): Likewise.
2475 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2476 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise.
2477 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
2478 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
2479 * tree-ssa-reassoc.c (acceptable_pow_call): Likewise.
2480 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2481 (ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise.
2482 (vn_reference_lookup_3, simplify_binary_expression): Likewise.
2483 * tree-ssa-structalias.c (bitpos_of_field): Likewise.
2484 (get_constraint_for_1, push_fields_onto_fieldstack): Likewise.
2485 (create_variable_info_for_1): Likewise.
2486 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2487 (vect_verify_datarefs_alignment): Likewise.
2488 (vect_analyze_data_ref_accesses): Likewise.
2489 (vect_prune_runtime_alias_test_list): Likewise.
2490 * tree-vectorizer.h (NITERS_KNOWN_P): Likewise.
2491
2492 2013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
2493
2494 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed
2495 overflow. Use tree_to_shwi.
2496
2497 2013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
2498
2499 * fold-const.c (fold_binary_loc): Use unsigned rather than signed
2500 HOST_WIDE_INTs when folding (x >> c) << c.
2501
2502 2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2503 Dominik Vogt <vogt@linux.vnet.ibm.com>
2504
2505 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
2506 int comparisons with an out of range condition code.
2507 (s390_optimize_nonescaping_tx): Skip empty BBs.
2508 Generate the new tbegin RTX when removing the FPR clobbers (with
2509 two SETs).
2510 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
2511 result before doing the retry calculations.
2512 (s390_init_builtins): Make tbegin "returns_twice" and tabort
2513 "noreturn".
2514 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
2515 the TDB setting part of an tbegin.
2516 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
2517 ("tx_assist"): Set unused argument to an immediate zero instead of
2518 loading zero into a GPR and pass it as argument.
2519 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
2520 Remove inline and related attributes.
2521 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
2522 (__TM_is_illegal, __TM_is_footprint_exceeded)
2523 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check.
2524
2525 2013-11-20 Richard Biener <rguenther@suse.de>
2526
2527 PR lto/59035
2528 * lto-opts.c (lto_write_options): Write defaults only if
2529 they were not explicitely specified. Also write
2530 -ffp-contract default.
2531 * lto-wrapper.c (merge_and_complain): Merge -ffp-contract
2532 conservatively.
2533 (run_gcc): Pass through -ffp-contract.
2534
2535 2013-11-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2536
2537 * config/mips/mips.c (r10k_simplify_address): Eliminate macro usage.
2538
2539 2013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
2540
2541 * gcc/config/aarch64/aarch64-builtins.c
2542 (aarch64_simd_itype): Remove.
2543 (aarch64_simd_builtin_datum): Remove itype, add qualifiers pointer.
2544 (VAR1): Use qualifiers.
2545 (aarch64_build_scalar_type): New.
2546 (aarch64_build_vector_type): Likewise.
2547 (aarch64_build_type): Likewise.
2548 (aarch64_init_simd_builtins): Refactor, remove special cases,
2549 consolidate main loop.
2550 (aarch64_simd_expand_args): Likewise.
2551
2552 2013-11-19 Joshua J Cogliati <jrincayc@yahoo.com>
2553
2554 PR c/53001
2555 * doc/invoke.texi: Adding documentation about -Wfloat-conversion.
2556
2557 2013-11-19 Miro Kropacek <miro.kropacek@gmail.com>
2558
2559 * config/m68k/m68k.c (m68k_option_overrides): Fix typo.
2560
2561 2013-11-19 David Malcolm <dmalcolm@redhat.com>
2562
2563 * gdbhooks.py (VecPrinter): New class, for prettyprinting pointers
2564 to "vec<>" instances.
2565 (build_pretty_printer): Register the vec<>* prettyprinter.
2566
2567 2013-11-19 David Malcolm <dmalcolm@redhat.com>
2568
2569 * gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field.
2570 (GdbSubprinter.handles_type): New.
2571 (GdbSubprinterTypeList): New subclass of GdbSubprinter.
2572 (GdbSubprinterRegex): New subclass of GdbSubprinter.
2573 (GdbPrettyPrinters.add_printer): Remove in favor of...
2574 (GdbPrettyPrinters.add_printer_for_types): ...this new method and...
2575 (GdbPrettyPrinters.add_printer_for_regex): ...this other new method.
2576 (GdbPrettyPrinters.__call__): Update search for subprinter
2577 to use handles_type method.
2578 (build_pretty_printer): Update registration of subprinters to
2579 use the new API above, supporting multiple spelling of each type,
2580 and allowing for future regex-based subprinters.
2581
2582 2013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2583
2584 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
2585 V16QI vector splat case for little endian.
2586
2587 2013-11-19 Jeff Law <law@redhat.com>
2588
2589 * tree-ssa-threadedge.c (thread_across_edge): After threading
2590 through a joiner, allow threading a normal block requiring duplication.
2591
2592 * tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
2593 jump threading requests that would muck up the loop structures.
2594
2595 * tree-ssa-threadupdate.c: Fix trailing whitespace.
2596 * tree-ssa-threadupdate.h: Likewise.
2597
2598 2013-11-19 Mike Stump <mikestump@comcast.net>
2599
2600 * gdbinit.in: Add pmz to print out mpz values.
2601
2602 2013-11-20 Jan Hubicka <jh@suse.cz>
2603
2604 * common.opt (ffat-lto-objects): Disable by default.
2605 * doc/invoke.texi (fat-lto-objects): Update documentation.
2606 * opts.c: Enable fat-lto-objects on lto plugin disable setups.
2607
2608 2013-11-19 Martin Jambor <mjambor@suse.cz>
2609
2610 PR rtl-optimization/59099
2611 * ira.c (find_moveable_pseudos): Put back various analyses from ira()
2612 here.
2613 (ira): Move init_reg_equiv and call to
2614 split_live_ranges_for_shrink_wrap up, remove analyses around call
2615 to find_moveable_pseudos.
2616
2617 2013-11-20 Alan Modra <amodra@gmail.com>
2618
2619 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
2620 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
2621 to strict alignment on older processors when little-endian.
2622 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
2623 for ELFv2.
2624
2625 2013-11-19 Teresa Johnson <tejohnson@google.com>
2626
2627 * common/config/i386/i386-common.c: Enable
2628 -freorder-blocks-and-partition at -O2 and up for x86.
2629 * doc/invoke.texi: Update -freorder-blocks-and-partition default.
2630 * opts.c (finish_options): Only warn if
2631 -freorder-blocks-and-partition was set on command line.
2632
2633 2013-11-19 Sriraman Tallam <tmsriram@google.com>
2634
2635 * final.c (final_scan_insn): Emit a label for the split
2636 cold function part. Label name is formed by suffixing
2637 the original function name with "cold".
2638
2639 2013-11-19 David Malcolm <dmalcolm@redhat.com>
2640
2641 * basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
2642 (EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
2643 (ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
2644 (EXIT_BLOCK_PTR_FOR_FN): ...this.
2645 (ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
2646 cfun be explicit.
2647 (EXIT_BLOCK_PTR): Likewise.
2648 (FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
2649 (FOR_ALL_BB_FN): Update for renaming of
2650 "ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
2651
2652 * cfg.c (init_flow): Likewise.
2653 (check_bb_profile): Likewise.
2654 * cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
2655 * cfgcleanup.c (walk_to_nondebug_insn): Likewise.
2656 * cfghooks.c (account_profile_record): Likewise.
2657 * cfgloop.c (init_loops_structure): Likewise.
2658 * cgraphbuild.c (record_eh_tables): Likewise.
2659 (compute_call_stmt_bb_frequency): Likewise.
2660 * ipa-inline-analysis.c (compute_bb_predicates): Likewise.
2661 * lto-streamer-in.c (input_cfg): Likewise.
2662 * predict.c (maybe_hot_frequency_p): Likewise.
2663 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
2664 * tree-inline.c (initialize_cfun): Likewise.
2665 (copy_cfg_body): Likewise.
2666 (copy_body): Likewise.
2667 (tree_function_versioning): Likewise.
2668
2669 * bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
2670 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2671 (duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
2672 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
2673 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2674 (connect_traces): Likewise.
2675 (rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
2676 (bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
2677 (fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
2678 macro.
2679 (find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
2680 EXIT_BLOCK_PTR.
2681 (fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
2682 (find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
2683 (fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
2684 (rotate_loop): Likewise.
2685 * bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
2686 * cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
2687 EXIT_BLOCK_PTR.
2688 (alloc_aux_for_edges): Likewise.
2689 (clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
2690 (cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
2691 EXIT_BLOCK_PTR.
2692 (compact_blocks): Likewise.
2693 (clear_edges): Likewise.
2694 * cfganal.c (single_pred_before_succ_order): Remove usage of
2695 ENTRY_BLOCK_PTR macro.
2696 (bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
2697 (bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
2698 (bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
2699 (bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
2700 (inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
2701 EXIT_BLOCK_PTR.
2702 (compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR macro.
2703 (post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
2704 EXIT_BLOCK_PTR.
2705 (connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR macro.
2706 (remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
2707 (add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
2708 (find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2709 (remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
2710 (verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
2711 EXIT_BLOCK_PTR.
2712 (print_edge_list): Likewise.
2713 (create_edge_list): Likewise.
2714 (find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
2715 (mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
2716 EXIT_BLOCK_PTR.
2717 * cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
2718 macro.
2719 (find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
2720 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2721 * cfgcleanup.c (delete_unreachable_blocks): Likewise.
2722 (try_optimize_cfg): Likewise.
2723 (try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
2724 (try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
2725 (try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
2726 (merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
2727 (outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
2728 (try_forward_edges): Likewise.
2729 (try_simplify_condjump): Likewise.
2730 * cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
2731 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2732 (construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
2733 (construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
2734 EXIT_BLOCK_PTR.
2735 (expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
2736 (expand_gimple_tailcall): Likewise.
2737 * cfghooks.c (can_duplicate_block_p): Remove uses of macros:
2738 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2739 (tidy_fallthru_edges): Likewise.
2740 (verify_flow_info): Likewise.
2741 * cfgloop.c (flow_bb_inside_loop_p): Likewise.
2742 (num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
2743 (disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR macro.
2744 (get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
2745 (bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
2746 (get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
2747 (get_loop_body_in_dom_order): Likewise.
2748 (get_loop_body): Likewise.
2749 * cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
2750 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2751 * cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
2752 macro.
2753 (remove_path): Remove usage of EXIT_BLOCK_PTR macro.
2754 (fix_bb_placement): Likewise.
2755 * cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
2756 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2757 (rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
2758 (cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
2759 EXIT_BLOCK_PTR.
2760 (rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
2761 (cfg_layout_can_merge_blocks_p): Remove uses of macros:
2762 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2763 (cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
2764 macro.
2765 (fixup_fallthru_exit_predecessor): Remove uses of macros:
2766 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2767 (fixup_reorder_chain): Likewise.
2768 (relink_block_chain): Likewise.
2769 (cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
2770 (rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
2771 (cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
2772 (force_one_exit_fallthru): Likewise.
2773 (rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
2774 EXIT_BLOCK_PTR.
2775 (rtl_verify_edges): Likewise.
2776 (commit_edge_insertions): Likewise.
2777 (commit_one_edge_insertion): Likewise.
2778 (rtl_split_edge): Likewise.
2779 (force_nonfallthru_and_redirect): Likewise.
2780 (outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
2781 (skip_insns_after_block): Likewise.
2782 (fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
2783 EXIT_BLOCK_PTR.
2784 (purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
2785 (rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
2786 EXIT_BLOCK_PTR.
2787 (contains_no_active_insn_p): Likewise.
2788 (emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
2789 (entry_of_function): Likewise.
2790 (last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
2791 (fixup_new_cold_bb): Likewise.
2792 (patch_jump_insn): Likewise.
2793 (try_redirect_by_replacing_jump): Likewise.
2794 (block_label): Likewise.
2795 (could_fall_through): Likewise.
2796 (can_fallthru): Likewise.
2797 * cgraphbuild.c (cgraph_rebuild_references): Remove usage of
2798 ENTRY_BLOCK_PTR macro.
2799 (rebuild_cgraph_edges): Likewise.
2800 * cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
2801 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2802 (expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
2803 * combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
2804 (distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
2805 (get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
2806 (try_combine): Remove usage of EXIT_BLOCK_PTR macro.
2807 (reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
2808 macro.
2809 (reg_nonzero_bits_for_combine): Likewise.
2810 (set_nonzero_bits_and_sign_copies): Likewise.
2811 (combine_instructions): Likewise.
2812 * cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
2813 EXIT_BLOCK_PTR.
2814 (bypass_conditional_jumps): Likewise.
2815 (bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
2816 (find_implicit_sets): Likewise.
2817 (cprop_jump): Likewise.
2818 * cse.c (cse_cc_succs): Likewise.
2819 (cse_find_path): Likewise.
2820 * df-problems.c (df_lr_confluence_0): Likewise.
2821 * df-scan.c (df_entry_block_defs_collect): Remove usage of
2822 ENTRY_BLOCK_PTR macro.
2823 (df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
2824 * dominance.c (iterate_fix_dominators): Remove usage of
2825 ENTRY_BLOCK_PTR macro.
2826 (calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2827 (determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR macro.
2828 (calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
2829 EXIT_BLOCK_PTR.
2830 (prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
2831 macro.
2832 (calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
2833 EXIT_BLOCK_PTR.
2834 * domwalk.c (cmp_bb_postorder): Likewise.
2835 * dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
2836 * except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
2837 macro.
2838 (sjlj_emit_function_enter): Likewise.
2839 * final.c (compute_alignments): Likewise.
2840 * function.c (thread_prologue_and_epilogue_insns): Remove uses of
2841 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2842 (reposition_prologue_and_epilogue_notes): Remove usage of
2843 EXIT_BLOCK_PTR macro.
2844 (convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
2845 EXIT_BLOCK_PTR.
2846 (regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
2847 (next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
2848 * gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
2849 (update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
2850 (compute_code_hoist_vbeinout): Likewise.
2851 (should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
2852 (pre_expr_reaches_here_p_work): Likewise.
2853 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
2854 (gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
2855 EXIT_BLOCK_PTR.
2856 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
2857 ENTRY_BLOCK_PTR macro.
2858 * graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
2859 macro.
2860 * graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
2861 ENTRY_BLOCK_PTR macro.
2862 * graphite-scop-detection.c (build_scops): Likewise.
2863 (create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
2864 (scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
2865 * haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
2866 macro.
2867 (unlink_bb_notes): Likewise.
2868 (create_check_block_twin): Likewise.
2869 (init_before_recovery): Likewise.
2870 (sched_extend_bb): Likewise.
2871 (priority): Likewise.
2872 * hw-doloop.c (reorder_loops): Likewise.
2873 (discover_loop): Likewise.
2874 * ifcvt.c (dead_or_predicable): Remove uses of macros:
2875 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2876 (find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
2877 (block_has_only_trap): Likewise.
2878 (cond_exec_find_if_block): Likewise.
2879 (merge_if_block): Likewise.
2880 * ipa-inline-analysis.c (param_change_prob): Remove usage of
2881 ENTRY_BLOCK_PTR macro.
2882 (record_modified): Likewise.
2883 * ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
2884 EXIT_BLOCK_PTR macro.
2885 (local_pure_const): Likewise.
2886 * ipa-split.c (split_function): Remove uses of macros:
2887 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2888 (find_split_points): Likewise.
2889 (consider_split): Likewise.
2890 (find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
2891 (verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
2892 * ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
2893 * ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR macro.
2894 * ira-emit.c (entered_from_non_parent_p): Remove usage of
2895 ENTRY_BLOCK_PTR macro.
2896 (ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
2897 * ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
2898 * ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
2899 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2900 * lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
2901 macro.
2902 (compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
2903 EXIT_BLOCK_PTR.
2904 (compute_farthest): Likewise.
2905 (compute_available): Likewise.
2906 (compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
2907 (compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
2908 EXIT_BLOCK_PTR.
2909 (compute_earliest): Likewise.
2910 (compute_antinout_edge): Likewise.
2911 * loop-iv.c (simplify_using_initial_values): Remove usage of
2912 ENTRY_BLOCK_PTR macro.
2913 * loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
2914 macro.
2915 * lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
2916 macro.
2917 * lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
2918 macro.
2919 * lra-lives.c (lra_create_live_ranges): Remove uses of macros:
2920 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2921 * lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
2922 macro.
2923 * lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
2924 macro.
2925 * lto-streamer-out.c (output_cfg): Likewise.
2926 * mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
2927 EXIT_BLOCK_PTR.
2928 (create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
2929 * mode-switching.c (optimize_mode_switching): Likewise.
2930 (create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
2931 * modulo-sched.c (rest_of_handle_sms): Likewise.
2932 (canon_loop): Likewise.
2933 * omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR macro.
2934 * postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
2935 of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2936 * predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
2937 macro.
2938 (propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
2939 (estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
2940 (tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
2941 (expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
2942 (tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
2943 (counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
2944 (apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
2945 (estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
2946 (gimple_predict_edge): Likewise.
2947 (probably_never_executed): Likewise.
2948 * profile.c (find_spanning_tree): Remove uses of macros:
2949 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
2950 (branch_prob): Likewise.
2951 (compute_branch_probabilities): Likewise.
2952 (compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
2953 (is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
2954 (read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
2955 (set_bb_counts): Likewise.
2956 (correct_negative_edge_counts): Likewise.
2957 (get_exec_counts): Likewise.
2958 (instrument_values): Likewise.
2959 (instrument_edges): Likewise.
2960 * reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
2961 EXIT_BLOCK_PTR.
2962 (compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
2963 (convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
2964 (convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
2965 (reg_to_stack): Likewise.
2966 * regs.h (REG_N_SETS): Likewise.
2967 * reload.c (find_dummy_reload): Likewise.
2968 (combine_reloads): Likewise.
2969 (push_reload): Likewise.
2970 * reload1.c (has_nonexceptional_receiver): Remove usage of
2971 EXIT_BLOCK_PTR macro.
2972 * resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
2973 macro.
2974 (find_basic_block): Likewise.
2975 * sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
2976 (schedule_ebbs): Likewise.
2977 * sched-int.h (sel_sched_p): Likewise.
2978 * sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
2979 macro.
2980 (rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
2981 (haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
2982 EXIT_BLOCK_PTR.
2983 (propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
2984 (extend_rgns): Likewise.
2985 (find_single_block_region): Likewise.
2986 * sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
2987 ENTRY_BLOCK_PTR macro.
2988 (setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
2989 (sel_create_recovery_block): Likewise.
2990 (bb_ends_ebb_p): Likewise.
2991 (sel_bb_end): Likewise.
2992 (sel_bb_head): Likewise.
2993 (free_lv_sets): Likewise.
2994 (init_lv_sets): Likewise.
2995 (tidy_control_flow): Likewise.
2996 (maybe_tidy_empty_bb): Likewise.
2997 * sel-sched-ir.h (_succ_iter_cond): Likewise.
2998 (_succ_iter_start): Likewise.
2999 (sel_bb_empty_or_nop_p): Likewise.
3000 (get_loop_exit_edges_unique_dests): Likewise.
3001 (inner_loop_header_p): Likewise.
3002 * sel-sched.c (create_block_for_bookkeeping): Likewise.
3003 (find_block_for_bookkeeping): Likewise.
3004 * store-motion.c (remove_reachable_equiv_notes): Likewise.
3005 (insert_store): Likewise.
3006 * trans-mem.c (ipa_tm_transform_clone): Remove usage of
3007 ENTRY_BLOCK_PTR macro.
3008 (tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
3009 (ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
3010 (gate_tm_init): Likewise.
3011 (tm_region_init): Likewise.
3012 * tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
3013 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3014 (execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
3015 (split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
3016 EXIT_BLOCK_PTR.
3017 (print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
3018 (move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
3019 EXIT_BLOCK_PTR.
3020 (gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
3021 macro.
3022 (gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
3023 EXIT_BLOCK_PTR.
3024 (remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
3025 macro.
3026 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3027 (gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
3028 (make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
3029 (build_gimple_cfg): Likewise.
3030 (gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
3031 (gimple_can_merge_blocks_p): Likewise.
3032 * tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
3033 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3034 * tree-complex.c (update_parameter_components): Remove usage of
3035 ENTRY_BLOCK_PTR macro.
3036 * tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
3037 EXIT_BLOCK_PTR macro.
3038 * tree-inline.c (tree_function_versioning): Remove uses of macros:
3039 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3040 (delete_unreachable_blocks_update_callgraph): Likewise.
3041 (initialize_cfun): Likewise.
3042 (copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
3043 (copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
3044 (remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
3045 * tree-into-ssa.c (update_ssa): Likewise.
3046 (maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
3047 (insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
3048 (rewrite_into_ssa): Likewise.
3049 (rewrite_debug_stmt_uses): Likewise.
3050 * tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
3051 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3052 * tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
3053 ENTRY_BLOCK_PTR macro.
3054 * tree-scalar-evolution.h (block_before_loop): Likewise.
3055 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
3056 (dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
3057 EXIT_BLOCK_PTR.
3058 (analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
3059 macro.
3060 (propagate_dereference_distances): Remove uses of macros:
3061 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3062 (initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
3063 macro.
3064 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
3065 (optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
3066 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3067 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
3068 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3069 (remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
3070 (propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
3071 (mark_control_dependent_edges_necessary): Remove uses of macros:
3072 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3073 * tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
3074 ENTRY_BLOCK_PTR macro.
3075 (tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
3076 * tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
3077 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3078 (calculate_live_on_exit): Likewise.
3079 (set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
3080 (loe_visit_block): Likewise.
3081 * tree-ssa-live.h (live_on_exit): Remove uses of macros:
3082 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3083 (live_on_entry): Likewise.
3084 * tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
3085 EXIT_BLOCK_PTR macro.
3086 * tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
3087 ENTRY_BLOCK_PTR macro.
3088 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
3089 (bound_difference): Likewise.
3090 * tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
3091 of EXIT_BLOCK_PTR macro.
3092 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
3093 of ENTRY_BLOCK_PTR macro.
3094 * tree-ssa-math-opts.c (register_division_in): Likewise.
3095 * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
3096 * tree-ssa-pre.c (compute_avail): Likewise.
3097 (compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
3098 (insert): Remove usage of ENTRY_BLOCK_PTR macro.
3099 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
3100 (simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
3101 (cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
3102 EXIT_BLOCK_PTR.
3103 (add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
3104 * tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
3105 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3106 (build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
3107 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
3108 (execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
3109 * tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
3110 (compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
3111 (find_pdom): Likewise.
3112 (warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
3113 * tree-stdarg.c (reachable_at_most_once): Likewise.
3114 * tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
3115 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3116 (eliminate_tail_call): Likewise.
3117 * tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
3118 macro.
3119 (instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
3120 * var-tracking.c (vt_initialize): Remove uses of macros:
3121 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
3122 (vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
3123 (vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
3124 (vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
3125 EXIT_BLOCK_PTR.
3126 * varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
3127 macro.
3128 * config/bfin/bfin.c (hwloop_optimize): Likewise.
3129 * config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
3130 of EXIT_BLOCK_PTR macro.
3131 * config/arm/arm.c (require_pic_register): Remove usage of
3132 ENTRY_BLOCK_PTR macro.
3133 (arm_r3_live_at_start_p): Likewise.
3134 (any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
3135 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3136 * config/frv/frv.c (frv_optimize_membar_global): Likewise.
3137 * config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
3138 ENTRY_BLOCK_PTR macro.
3139 * config/i386/i386.c (ix86_count_insn): Likewise.
3140 (ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
3141 (ix86_pad_short_function): Likewise.
3142 (ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
3143 (ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
3144 (ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
3145 (add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
3146 (ix86_expand_epilogue): Likewise.
3147 * config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
3148 (ia64_expand_prologue): Likewise.
3149
3150 2013-11-19 Catherine Moore <clm@codesourcery.com>
3151
3152 * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
3153 * config/mips/mips.opt (mfix-rm7000): New option.
3154 * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
3155 * config/mips/mips.c (mips_reorg_process_insns): Disable
3156 noreorder for TARGET_FIX_RM7000.
3157
3158 2013-11-19 Oleg Endo <olegendo@gcc.gnu.org>
3159
3160 * config/sh/sh-c.c: Fix typo in include of file attribs.h.
3161
3162 2013-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3163
3164 * config/arm/arm.c (arm_new_rtx_costs):
3165 Handle narrow mode add-shifts properly.
3166 * config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
3167 * config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
3168 Declare extern.
3169
3170 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
3171
3172 * config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
3173
3174 2013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3175
3176 * config/rs6000/vector.md ("mov<mode>"): Do not call
3177 rs6000_emit_le_vsx_move to move into or out of GPRs.
3178 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
3179 source and destination are not GPR hard regs.
3180
3181 2013-11-19 David Malcolm <dmalcolm@redhat.com>
3182
3183 * basic-block.h (n_edges_for_function): Rename macro to...
3184 (n_edges_for_fn): ...this.
3185 (n_edges): Eliminate macro as work towards making uses of
3186 cfun be explicit.
3187
3188 * cfg.c (init_flow): Update for renaming of "n_edges_for_function"
3189 to "n_edges_for_fn".
3190
3191 * cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
3192 (clear_edges): Likewise.
3193 (free_edge): Likewise.
3194 * cfghooks.c (dump_flow_info): Likewise.
3195 * cprop.c (is_too_expensive): Likewise.
3196 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
3197 * gcse.c (is_too_expensive): Likewise.
3198 (prune_insertions_deletions): Likewise.
3199 * mcf.c (create_fixup_graph): Likewise.
3200 * sched-rgn.c (haifa_find_rgns): Likewise.
3201 * tree-cfg.c (gimple_dump_cfg): Likewise.
3202 * var-tracking.c (variable_tracking_main_1): Likewise.
3203
3204 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
3205
3206 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix over
3207 length lines.
3208
3209 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
3210
3211 * config/aarch64/aarch64.md
3212 (aarch64_movdi_<mode>low, *add_<shift>_si_uxtw): Adjust whitespace.
3213
3214 2013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
3215
3216 * config/aarch64/aarch64.h (PROFILE_HOOK): Fix whitespace.
3217
3218 2013-11-19 Joseph Myers <joseph@codesourcery.com>
3219
3220 * varasm.c (align_variable): Give error instead of warning for
3221 unsupported alignment.
3222 (assemble_noswitch_variable): Likewise.
3223
3224 2013-11-19 Basile Starynkevitch <basile@starynkevitch.net>
3225
3226 * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in
3227 cb_file_change.
3228
3229 2013-11-19 Peter Bergner <bergner@vnet.ibm.com>
3230
3231 * loop-doloop.c (doloop_optimize_loops): Remove unused
3232 loop iterator argument from FOR_EACH_LOOP.
3233
3234 2013-11-19 David Malcolm <dmalcolm@redhat.com>
3235
3236 Convert gimple types from a union to C++ inheritance.
3237 * Makefile.in (GIMPLE_H): Add dep on is-a.h.
3238 * coretypes.h (union gimple_statement_d): Remove declaration.
3239 (gimple): Convert from being a "union gimple_statement_d *"
3240 to a "struct gimple_statement_base *".
3241 (const_gimple): Likewise (with "const").
3242 * ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace with...
3243 (ggc_alloc_cleared_gimple_statement_stat): ...this.
3244 * gimple-pretty-print.c (debug): Change parameter from a
3245 "gimple_statement_d &" to a "gimple_statement_base &".
3246 (debug): Change parameter from a "gimple_statement_d *" to
3247 a "gimple_statement_base *".
3248 * gimple-pretty-print.h (debug): Update declarations as above.
3249 * gimple.c (gimple_alloc_stat): Update for renaming of
3250 ggc_alloc_cleared_gimple_statement_d_stat to
3251 ggc_alloc_cleared_gimple_statement_stat.
3252 * gimple.h: Include "is-a.h" for use by is_a_helper
3253 specializations in followup autogenerated patch.
3254 (struct gimple statement_base): Make this type usable as a base
3255 class by adding "desc", "tag" and "variable_size" to GTY, thus
3256 using opting-in to gengtype's support for simple inheritance.
3257 (gimple_statement_with_ops_base): Convert to a subclass of
3258 gimple_statement_base, dropping initial "gsbase" field. Note that
3259 this type is abstract, with no GSS_ value, and thus no GTY tag value.
3260 (gimple_statement_with_ops): Convert to a subclass of
3261 gimple_statement_with_ops_base, dropping initial "opbase" field.
3262 Add tag value to GTY marking. Update marking of op field to
3263 reflect how num_ops field is accessed via inheritance.
3264 (gimple_statement_with_memory_ops_base): Convert to a subclass of
3265 gimple_statement_with_ops_base, dropping initial "opbase" field.
3266 Add tag value to GTY marking.
3267 (gimple_statement_with_memory_ops): Convert to a subclass of
3268 public gimple_statement_with_memory_ops_base, dropping initial
3269 "membase" field. Add tag value to GTY marking. Update marking
3270 of op field to reflect how num_ops field is accessed via inheritance.
3271 (gimple_statement_call): Analogous changes that also update the
3272 marking of the "u" union.
3273 (gimple_statement_omp): Convert to a subclass of
3274 gimple_statement_base, dropping initial "gsbase" field, adding
3275 tag value to GTY marking.
3276 (gimple_statement_bind): Likewise.
3277 (gimple_statement_catch): Likewise.
3278 (gimple_statement_eh_filter): Likewise.
3279 (gimple_statement_eh_else): Likewise.
3280 (gimple_statement_eh_mnt): Likewise.
3281 (gimple_statement_phi): Likewise.
3282 (gimple_statement_eh_ctrl): Likewise.
3283 (gimple_statement_try): Likewise.
3284 (gimple_statement_wce): Likewise.
3285 (gimple_statement_asm): Convert to a subclass of
3286 gimple_statement_with_memory_ops_base, dropping initial
3287 "membase" field, adding tag value to GTY marking, and updating
3288 marking of op field.
3289 (gimple_statement_omp_critical): Convert to a subclass of
3290 gimple_statement_omp, dropping initial "omp" field, adding tag
3291 value to GTY marking.
3292 (gimple_statement_omp_for): Likewise.
3293 (gimple_statement_omp_parallel): Likewise.
3294 (gimple_statement_omp_task): Convert to a subclass of
3295 gimple_statement_omp_parallel, dropping initial "par" field,
3296 adding tag value to GTY marking.
3297 (gimple_statement_omp_sections): Convert to a subclass of
3298 gimple_statement_omp, dropping initial "omp" field, adding
3299 tag value to GTY marking.
3300 (gimple_statement_omp_continue): Convert to a subclass of
3301 gimple_statement_base, dropping initial "gsbase" field, adding
3302 tag value to GTY marking.
3303 (gimple_statement_omp_single): Convert to a subclass of
3304 gimple_statement_omp, dropping initial "omp" field, adding
3305 tag value to GTY marking.
3306 (gimple_statement_omp_atomic_load): Convert to a subclass of
3307 gimple_statement_base, dropping initial "gsbase" field, adding
3308 tag value to GTY marking.
3309 (gimple_statement_omp_atomic_store): Convert to a subclass of
3310 gimple_statement_base, dropping initial "gsbase" field, adding
3311 tag value to GTY marking.
3312 (gimple_statement_transaction): Convert to a subclass of
3313 gimple_statement_with_memory_ops_base, dropping initial "gsbase"
3314 field, adding tag value to GTY marking.
3315 (union gimple_statement_d): Remove.
3316 * system.h (CONST_CAST_GIMPLE): Update to use
3317 "struct gimple_statement_base *" rather than
3318 "union gimple_statement_d *".
3319 * tree-ssa-ccp.c (gimple_htab): Convert underlying type from
3320 gimple_statement_d to gimple_statement_base.
3321
3322 * gimple.h (gimple_use_ops): Port from union to usage of dyn_cast.
3323 (gimple_set_use_ops): Port from union to usage of as_a.
3324 (gimple_set_vuse): Likewise.
3325 (gimple_set_vdef): Likewise.
3326 (gimple_call_internal_fn): Port from union to a static_cast,
3327 given that the type has already been asserted.
3328 (gimple_omp_body_ptr): Port from unchecked union usage to
3329 a static_cast.
3330 (gimple_omp_set_body): Likewise.
3331
3332 * gimple-iterator.c (update_bb_for_stmts): Update for conversion of
3333 gimple types to a true class hierarchy.
3334 (update_call_edge_frequencies): Likewise.
3335 (gsi_insert_seq_nodes_before): Likewise.
3336 (gsi_insert_seq_nodes_after): Likewise.
3337 (gsi_split_seq_after): Likewise.
3338 (gsi_set_stmt): Likewise.
3339 (gsi_split_seq_before): Likewise.
3340 (gsi_remove): Likewise.
3341 * gimple-iterator.h (gsi_one_before_end_p): Likewise.
3342 (gsi_next): Likewise.
3343 (gsi_prev): Likewise.
3344 * gimple-pretty-print.c (dump_gimple_debug): Likewise.
3345 * gimple-ssa.h (gimple_vuse_op): Likewise.
3346 (gimple_vdef_op): Likewise.
3347 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
3348 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3349 * gimple.c (gimple_set_code): Likewise.
3350 (gimple_alloc_stat): Likewise.
3351 (gimple_set_subcode): Likewise.
3352 (gimple_build_call_internal_1): Likewise.
3353 (gimple_check_failed): Likewise.
3354 (gimple_call_flags): Likewise.
3355 (gimple_set_bb): Likewise.
3356 * gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
3357 (is_a_helper <gimple_statement_bind> (gimple)): Likewise.
3358 (is_a_helper <gimple_statement_call> (gimple)): Likewise.
3359 (is_a_helper <gimple_statement_catch> (gimple)): Likewise.
3360 (is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
3361 (is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
3362 (is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
3363 (is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
3364 (is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
3365 (is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
3366 (is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
3367 (is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
3368 (is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
3369 (is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
3370 (is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
3371 (is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
3372 (is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
3373 (is_a_helper <gimple_statement_phi> (gimple)): Likewise.
3374 (is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
3375 (is_a_helper <gimple_statement_try> (gimple)): Likewise.
3376 (is_a_helper <gimple_statement_wce> (gimple)): Likewise.
3377 (is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
3378 (is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
3379 (is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
3380 (is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
3381 (is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
3382 Likewise.
3383 (is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
3384 Likewise.
3385 (is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
3386 Likewise.
3387 (is_a_helper <const gimple_statement_omp_atomic_store>
3388 (const_gimple)): Likewise.
3389 (is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
3390 Likewise.
3391 (is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
3392 Likewise.
3393 (is_a_helper <const gimple_statement_omp_for> (const_gimple)):
3394 Likewise.
3395 (is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
3396 Likewise.
3397 (is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
3398 Likewise.
3399 (is_a_helper <const gimple_statement_omp_single> (const_gimple)):
3400 Likewise.
3401 (is_a_helper <const gimple_statement_omp_task> (const_gimple)):
3402 Likewise.
3403 (is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
3404 (is_a_helper <const gimple_statement_transaction> (const_gimple)):
3405 Likewise.
3406 (gimple_seq_last): Update for conversion of gimple types to a true
3407 class hierarchy.
3408 (gimple_seq_set_last): Likewise.
3409 (gimple_code): Likewise.
3410 (gimple_bb): Likewise.
3411 (gimple_block): Likewise.
3412 (gimple_set_block): Likewise.
3413 (gimple_location): Likewise.
3414 (gimple_location_ptr): Likewise.
3415 (gimple_set_location): Likewise.
3416 (gimple_no_warning_p): Likewise.
3417 (gimple_set_no_warning): Likewise.
3418 (gimple_set_visited): Likewise.
3419 (gimple_visited_p): Likewise.
3420 (gimple_set_plf): Likewise.
3421 (gimple_plf): Likewise.
3422 (gimple_set_uid): Likewise.
3423 (gimple_uid): Likewise.
3424 (gimple_init_singleton): Likewise.
3425 (gimple_modified_p): Likewise.
3426 (gimple_set_modified): Likewise.
3427 (gimple_expr_code): Likewise.
3428 (gimple_has_volatile_ops): Likewise.
3429 (gimple_set_has_volatile_ops): Likewise.
3430 (gimple_omp_subcode): Likewise.
3431 (gimple_omp_set_subcode): Likewise.
3432 (gimple_omp_return_set_nowait): Likewise.
3433 (gimple_omp_section_set_last): Likewise.
3434 (gimple_omp_parallel_set_combined_p): Likewise.
3435 (gimple_omp_atomic_set_need_value): Likewise.
3436 (gimple_omp_atomic_set_seq_cst): Likewise.
3437 (gimple_num_ops): Likewise.
3438 (gimple_set_num_ops): Likewise.
3439 (gimple_assign_nontemporal_move_p): Likewise.
3440 (gimple_assign_set_nontemporal_move): Likewise.
3441 (gimple_assign_rhs_code): Likewise.
3442 (gimple_assign_set_rhs_code): Likewise.
3443 (gimple_call_internal_p): Likewise.
3444 (gimple_call_with_bounds_p): Likewise.
3445 (gimple_call_set_with_bounds): Likewise.
3446 (gimple_call_set_tail): Likewise.
3447 (gimple_call_tail_p): Likewise.
3448 (gimple_call_set_return_slot_opt): Likewise.
3449 (gimple_call_return_slot_opt_p): Likewise.
3450 (gimple_call_set_from_thunk): Likewise.
3451 (gimple_call_from_thunk_p): Likewise.
3452 (gimple_call_set_va_arg_pack): Likewise.
3453 (gimple_call_va_arg_pack_p): Likewise.
3454 (gimple_call_set_nothrow): Likewise.
3455 (gimple_call_set_alloca_for_var): Likewise.
3456 (gimple_call_alloca_for_var_p): Likewise.
3457 (gimple_call_copy_flags): Likewise.
3458 (gimple_cond_code): Likewise.
3459 (gimple_cond_set_code): Likewise.
3460 (gimple_cond_make_false): Likewise.
3461 (gimple_cond_make_true): Likewise.
3462 (gimple_asm_volatile_p): Likewise.
3463 (gimple_asm_set_volatile): Likewise.
3464 (gimple_asm_set_input): Likewise.
3465 (gimple_asm_input_p): Likewise.
3466 (gimple_try_kind): Likewise.
3467 (gimple_try_set_kind): Likewise.
3468 (gimple_try_catch_is_cleanup): Likewise.
3469 (gimple_try_set_catch_is_cleanup): Likewise.
3470 (gimple_wce_cleanup_eh_only): Likewise.
3471 (gimple_wce_set_cleanup_eh_only): Likewise.
3472 (gimple_debug_bind_p): Likewise.
3473 (gimple_debug_source_bind_p): Likewise.
3474 (gimple_omp_for_set_kind): Likewise.
3475 (gimple_omp_for_set_combined_p): Likewise.
3476 (gimple_omp_for_set_combined_into_p): Likewise.
3477 (gimple_omp_target_set_kind): Likewise.
3478 (gimple_transaction_subcode): Likewise.
3479 (gimple_transaction_set_subcode): Likewise.
3480 (gimple_predict_predictor): Likewise.
3481 (gimple_predict_set_predictor): Likewise.
3482 (gimple_predict_outcome): Likewise.
3483 (gimple_predict_set_outcome): Likewise.
3484 (gimple_transaction_set_label): Likewise.
3485 (gimple_transaction_set_body): Likewise.
3486 (gimple_transaction_label_ptr): Likewise.
3487 (gimple_transaction_label): Likewise.
3488 (gimple_transaction_body_ptr): Likewise.
3489 (gimple_omp_continue_set_control_use): Likewise.
3490 (gimple_omp_continue_control_use_ptr): Likewise.
3491 (gimple_omp_continue_control_use): Likewise.
3492 (gimple_omp_continue_set_control_def): Likewise.
3493 (gimple_omp_continue_control_def_ptr): Likewise.
3494 (gimple_omp_continue_control_def): Likewise.
3495 (gimple_omp_atomic_load_rhs_ptr): Likewise.
3496 (gimple_omp_atomic_load_rhs): Likewise.
3497 (gimple_omp_atomic_load_set_rhs): Likewise.
3498 (gimple_omp_atomic_load_lhs_ptr): Likewise.
3499 (gimple_omp_atomic_load_lhs): Likewise.
3500 (gimple_omp_atomic_load_set_lhs): Likewise.
3501 (gimple_omp_atomic_store_val_ptr): Likewise.
3502 (gimple_omp_atomic_store_val): Likewise.
3503 (gimple_omp_atomic_store_set_val): Likewise.
3504 (gimple_omp_for_cond): Likewise.
3505 (gimple_omp_for_set_cond): Likewise.
3506 (gimple_omp_sections_set_control): Likewise.
3507 (gimple_omp_sections_control_ptr): Likewise.
3508 (gimple_omp_sections_control): Likewise.
3509 (gimple_omp_sections_set_clauses): Likewise.
3510 (gimple_omp_sections_clauses_ptr): Likewise.
3511 (gimple_omp_sections_clauses): Likewise.
3512 (gimple_omp_teams_set_clauses): Likewise.
3513 (gimple_omp_teams_clauses_ptr): Likewise.
3514 (gimple_omp_teams_clauses): Likewise.
3515 (gimple_omp_target_set_data_arg): Likewise.
3516 (gimple_omp_target_data_arg_ptr): Likewise.
3517 (gimple_omp_target_data_arg): Likewise.
3518 (gimple_omp_target_set_child_fn): Likewise.
3519 (gimple_omp_target_child_fn_ptr): Likewise.
3520 (gimple_omp_target_child_fn): Likewise.
3521 (gimple_omp_target_set_clauses): Likewise.
3522 (gimple_omp_target_clauses_ptr): Likewise.
3523 (gimple_omp_target_clauses): Likewise.
3524 (gimple_omp_single_set_clauses): Likewise.
3525 (gimple_omp_single_clauses_ptr): Likewise.
3526 (gimple_omp_single_clauses): Likewise.
3527 (gimple_omp_task_set_arg_align): Likewise.
3528 (gimple_omp_task_arg_align_ptr): Likewise.
3529 (gimple_omp_task_arg_align): Likewise.
3530 (gimple_omp_task_set_arg_size): Likewise.
3531 (gimple_omp_task_arg_size_ptr): Likewise.
3532 (gimple_omp_task_arg_size): Likewise.
3533 (gimple_omp_task_set_copy_fn): Likewise.
3534 (gimple_omp_task_copy_fn_ptr): Likewise.
3535 (gimple_omp_task_copy_fn): Likewise.
3536 (gimple_omp_task_set_data_arg): Likewise.
3537 (gimple_omp_task_data_arg_ptr): Likewise.
3538 (gimple_omp_task_data_arg): Likewise.
3539 (gimple_omp_task_set_child_fn): Likewise.
3540 (gimple_omp_task_child_fn_ptr): Likewise.
3541 (gimple_omp_task_child_fn): Likewise.
3542 (gimple_omp_task_set_clauses): Likewise.
3543 (gimple_omp_task_clauses_ptr): Likewise.
3544 (gimple_omp_task_clauses): Likewise.
3545 (gimple_omp_parallel_set_data_arg): Likewise.
3546 (gimple_omp_parallel_data_arg_ptr): Likewise.
3547 (gimple_omp_parallel_data_arg): Likewise.
3548 (gimple_omp_parallel_set_child_fn): Likewise.
3549 (gimple_omp_parallel_child_fn_ptr): Likewise.
3550 (gimple_omp_parallel_child_fn): Likewise.
3551 (gimple_omp_parallel_set_clauses): Likewise.
3552 (gimple_omp_parallel_clauses_ptr): Likewise.
3553 (gimple_omp_parallel_clauses): Likewise.
3554 (gimple_omp_for_set_pre_body): Likewise.
3555 (gimple_omp_for_pre_body_ptr): Likewise.
3556 (gimple_omp_for_set_incr): Likewise.
3557 (gimple_omp_for_incr_ptr): Likewise.
3558 (gimple_omp_for_incr): Likewise.
3559 (gimple_omp_for_set_final): Likewise.
3560 (gimple_omp_for_final_ptr): Likewise.
3561 (gimple_omp_for_final): Likewise.
3562 (gimple_omp_for_set_initial): Likewise.
3563 (gimple_omp_for_initial_ptr): Likewise.
3564 (gimple_omp_for_initial): Likewise.
3565 (gimple_omp_for_set_index): Likewise.
3566 (gimple_omp_for_index_ptr): Likewise.
3567 (gimple_omp_for_index): Likewise.
3568 (gimple_omp_for_collapse): Likewise.
3569 (gimple_omp_for_set_clauses): Likewise.
3570 (gimple_omp_for_clauses_ptr): Likewise.
3571 (gimple_omp_for_clauses): Likewise.
3572 (gimple_omp_critical_set_name): Likewise.
3573 (gimple_omp_critical_name_ptr): Likewise.
3574 (gimple_omp_critical_name): Likewise.
3575 (gimple_eh_dispatch_set_region): Likewise.
3576 (gimple_eh_dispatch_region): Likewise.
3577 (gimple_resx_set_region): Likewise.
3578 (gimple_resx_region): Likewise.
3579 (gimple_phi_set_arg): Likewise.
3580 (gimple_phi_arg): Likewise.
3581 (gimple_phi_set_result): Likewise.
3582 (gimple_phi_result_ptr): Likewise.
3583 (gimple_phi_result): Likewise.
3584 (gimple_phi_num_args): Likewise.
3585 (gimple_phi_capacity): Likewise.
3586 (gimple_wce_set_cleanup): Likewise.
3587 (gimple_wce_cleanup_ptr): Likewise.
3588 (gimple_try_set_cleanup): Likewise.
3589 (gimple_try_set_eval): Likewise.
3590 (gimple_try_cleanup_ptr): Likewise.
3591 (gimple_try_eval_ptr): Likewise.
3592 (gimple_eh_else_set_e_body): Likewise.
3593 (gimple_eh_else_set_n_body): Likewise.
3594 (gimple_eh_else_e_body_ptr): Likewise.
3595 (gimple_eh_else_n_body_ptr): Likewise.
3596 (gimple_eh_must_not_throw_set_fndecl): Likewise.
3597 (gimple_eh_must_not_throw_fndecl): Likewise.
3598 (gimple_eh_filter_set_failure): Likewise.
3599 (gimple_eh_filter_set_types): Likewise.
3600 (gimple_eh_filter_failure_ptr): Likewise.
3601 (gimple_eh_filter_types_ptr): Likewise.
3602 (gimple_eh_filter_types): Likewise.
3603 (gimple_catch_set_handler): Likewise.
3604 (gimple_catch_set_types): Likewise.
3605 (gimple_catch_handler_ptr): Likewise.
3606 (gimple_catch_types_ptr): Likewise.
3607 (gimple_catch_types): Likewise.
3608 (gimple_asm_string): Likewise.
3609 (gimple_asm_set_label_op): Likewise.
3610 (gimple_asm_label_op): Likewise.
3611 (gimple_asm_set_clobber_op): Likewise.
3612 (gimple_asm_clobber_op): Likewise.
3613 (gimple_asm_set_output_op): Likewise.
3614 (gimple_asm_output_op_ptr): Likewise.
3615 (gimple_asm_output_op): Likewise.
3616 (gimple_asm_set_input_op): Likewise.
3617 (gimple_asm_input_op_ptr): Likewise.
3618 (gimple_asm_input_op): Likewise.
3619 (gimple_asm_nlabels): Likewise.
3620 (gimple_asm_nclobbers): Likewise.
3621 (gimple_asm_noutputs): Likewise.
3622 (gimple_asm_ninputs): Likewise.
3623 (gimple_bind_set_block): Likewise.
3624 (gimple_bind_block): Likewise.
3625 (gimple_bind_add_seq): Likewise.
3626 (gimple_bind_add_stmt): Likewise.
3627 (gimple_bind_set_body): Likewise.
3628 (gimple_bind_body_ptr): Likewise.
3629 (gimple_bind_append_vars): Likewise.
3630 (gimple_bind_set_vars): Likewise.
3631 (gimple_bind_vars): Likewise.
3632 (gimple_call_clobber_set): Likewise.
3633 (gimple_call_use_set): Likewise.
3634 (gimple_call_set_internal_fn): Likewise.
3635 (gimple_call_set_fntype): Likewise.
3636 (gimple_call_fntype): Likewise.
3637 (gimple_omp_return_lhs_ptr): Likewise.
3638 (gimple_omp_return_lhs): Likewise.
3639 (gimple_omp_return_set_lhs): Likewise.
3640 (gimple_omp_taskreg_set_data_arg): Likewise.
3641 (gimple_omp_taskreg_data_arg_ptr): Likewise.
3642 (gimple_omp_taskreg_data_arg): Likewise.
3643 (gimple_omp_taskreg_set_child_fn): Likewise.
3644 (gimple_omp_taskreg_child_fn_ptr): Likewise.
3645 (gimple_omp_taskreg_child_fn): Likewise.
3646 (gimple_omp_taskreg_set_clauses): Likewise.
3647 (gimple_omp_taskreg_clauses_ptr): Likewise.
3648 (gimple_omp_taskreg_clauses): Likewise.
3649 (gimple_vuse): Likewise.
3650 (gimple_vdef): Likewise.
3651 (gimple_vuse_ptr): Likewise.
3652 (gimple_vdef_ptr): Likewise.
3653 * tree-inline.c (copy_debug_stmt): Likewise.
3654 * tree-phinodes.c (make_phi_node): Likewise.
3655
3656 * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
3657 (is_a_helper <gimple_statement_with_ops>::test): New.
3658 (is_a_helper <const gimple_statement_with_memory_ops>::test): New.
3659 (is_a_helper <gimple_statement_with_memory_ops>::test): New.
3660
3661 * gimple-streamer-in.c (input_gimple_stmt): Port from union
3662 access to use of as_a.
3663 * gimple.c (gimple_build_asm_1): Likewise.
3664 (gimple_build_try): Likewise. Also, return a specific subclass
3665 rather than just gimple.
3666 (gimple_build_resx): Port from union access to use of as_a.
3667 (gimple_build_eh_dispatch): Likewise.
3668 (gimple_build_omp_for): Likewise. Also, convert allocation of iter
3669 now that gengtype no longer provides a typed allocator function.
3670 (gimple_copy): Likewise.
3671 * gimple.h (gimple_build_try): Return a specific subclass rather
3672 than just gimple.
3673 * gimplify.c (gimplify_cleanup_point_expr): Replace union access
3674 with subclass access by making use of new return type of
3675 gimple_build_try.
3676 * tree-phinodes.c: (allocate_phi_node): Return a
3677 "gimple_statement_phi *" rather than just a gimple.
3678 (resize_phi_node): Likewise.
3679 (make_phi_node): Replace union access with subclass access by
3680 making use of new return type of allocate_phi_node.
3681 (reserve_phi_args_for_new_edge): Replace union access with as_a.
3682 (remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
3683 than just a gimple.
3684 (remove_phi_args): Update for change to remove_phi_arg_num.
3685
3686 * gdbhooks.py (GimplePrinter.to_string): Update lookup of
3687 code field to reflect inheritance, rather than embedding of
3688 the base gimple type.
3689
3690 2013-11-19 Richard Biener <rguenther@suse.de>
3691
3692 * cfgloop.h (struct loop_iterator): C++-ify, add constructor
3693 and destructor and make fel_next a member function.
3694 (fel_next): Transform into ...
3695 (loop_iterator::next): ... this.
3696 (fel_init): Transform into ...
3697 (loop_iterator::loop_iterator): ... this.
3698 (loop_iterator::~loop_iterator): New.
3699 (FOR_EACH_LOOP): Remove loop-iterator argument.
3700 (FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
3701 * cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
3702 graphite-clast-to-gimple.c, graphite-scop-detection.c,
3703 graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
3704 loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
3705 modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
3706 tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
3707 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
3708 tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3709 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
3710 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
3711 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
3712 uses of FOR_EACH_LOOP and remove loop_iterator variables. Replace
3713 FOR_EACH_LOOP_BREAK with break.
3714
3715 2013-11-19 Richard Biener <rguenther@suse.de>
3716
3717 PR tree-optimization/59164
3718 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3719 Uncomment assert.
3720 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check
3721 whether we can create an epilogue loop to reflect thecases where
3722 we create one.
3723
3724 2013-11-19 Andrew MacLeod <amacleod@redhat.com>
3725
3726 * graphite-sese-to-poly.c: Include expr.h.
3727
3728 2013-11-19 Richard Biener <rguenther@suse.de>
3729
3730 PR middle-end/58956
3731 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
3732 loads into stmts that may clobber it.
3733
3734 2013-11-19 Bernd Schmidt <bernds@codesourcery.com>
3735
3736 * cgraphunit.c (symtab_terminator): New variable.
3737 (queued_nodes): Renamed from first. Use symtab_terminator as
3738 initializer.
3739 (analyze_functions): Adjust accordingly.
3740 (cgraph_process_new_functions): Return void.
3741 * cgraph.h (cgraph_process_new_functions): Adjust declaration.
3742
3743 2013-11-19 Marek Polacek <polacek@redhat.com>
3744
3745 * opts.c (common_handle_option): Add -fsanitize=null option.
3746 Turn off -fdelete-null-pointer-checks option when doing the
3747 NULL pointer checking.
3748 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
3749 * tree-pass.h (make_pass_ubsan): Declare.
3750 (make_pass_sanopt): Declare.
3751 * timevar.def (TV_TREE_UBSAN): New timevar.
3752 * passes.def: Add pass_sanopt and pass_ubsan.
3753 * ubsan.h (ubsan_null_ckind): New enum.
3754 (ubsan_mismatch_data): New struct.
3755 (ubsan_expand_null_ifn): Declare.
3756 (ubsan_create_data): Adjust declaration.
3757 (ubsan_type_descriptor): Likewise.
3758 * asan.c: Include "ubsan.h".
3759 (pass_data_sanopt): New pass.
3760 (execute_sanopt): New function.
3761 (gate_sanopt): Likewise.
3762 (make_pass_sanopt): Likewise.
3763 (class pass_sanopt): New class.
3764 * ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
3765 gimple-iterator.h and cfgloop.h.
3766 (PROB_VERY_UNLIKELY): Define.
3767 (tree_type_map_hash): New function.
3768 (ubsan_type_descriptor): Add new parameter.
3769 Improve type name generation.
3770 (ubsan_create_data): Add new parameter. Add pointer data into
3771 ubsan structure.
3772 (ubsan_expand_null_ifn): New function.
3773 (instrument_member_call): Likewise.
3774 (instrument_mem_ref): Likewise.
3775 (instrument_null): Likewise.
3776 (ubsan_pass): Likewise.
3777 (gate_ubsan): Likewise.
3778 (make_pass_ubsan): Likewise.
3779 (ubsan_instrument_unreachable): Adjust ubsan_create_data call.
3780 (class pass_ubsan): New class.
3781 (pass_data_ubsan): New pass.
3782 * flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
3783 * internal-fn.c (expand_UBSAN_NULL): New function.
3784 * cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
3785 even when !flag_toplevel_reorder.
3786 * internal-fn.def (UBSAN_NULL): New.
3787
3788 2013-11-19 Jan Hubicka <jh@suse.cz>
3789
3790 * cgraph.c (cgraph_create_indirect_edge): Use
3791 get_polymorphic_call_info.
3792 * cgraph.h (cgraph_indirect_call_info): Add outer_type,
3793 maybe_in_construction and maybe_derived_type.
3794 * ipa-utils.h (ipa_polymorphic_call_context): New structure.
3795 (ipa_dummy_polymorphic_call_context): New global var.
3796 (possible_polymorphic_call_targets): Add context paramter.
3797 (dump_possible_polymorphic_call_targets): Likewise; update wrappers.
3798 (possible_polymorphic_call_target_p): Likewise.
3799 (get_polymorphic_call_info): New function.
3800 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
3801 (add_type_duplicate): Remove forgotten debug output.
3802 (method_class_type): Add sanity check.
3803 (maybe_record_node): Add FINALP parameter.
3804 (record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
3805 by info by get_binfo_at_offset.
3806 (possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
3807 parameters; pass them to record-binfo.
3808 (polymorphic_call_target_d): Add context and FINAL.
3809 (polymorphic_call_target_hasher::hash): Hash context.
3810 (polymorphic_call_target_hasher::equal): Compare context.
3811 (free_polymorphic_call_targets_hash):
3812 (get_class_context): New function.
3813 (contains_type_p): New function.
3814 (get_polymorphic_call_info): New function.
3815 (walk_bases): New function.
3816 (possible_polymorphic_call_targets): Add context parameter; honnor it.
3817 (dump_possible_polymorphic_call_targets): Dump context.
3818 (possible_polymorphic_call_target_p): Add context.
3819 (update_type_inheritance_graph): Update comment.s
3820 (ipa_set_jf_known_type): Assert that compoentn type is known.
3821 (ipa_note_param_call): Do not tamper with offsets.
3822 (ipa_analyze_indirect_call_uses): When offset is being changed; clear
3823 outer type.
3824 (update_indirect_edges_after_inlining): Likewise.
3825 (ipa_write_indirect_edge_info): Stream new fields.
3826 (ipa_read_indirect_edge_info): Stream in new fields.
3827
3828 2013-11-19 Jan Hubicka <jh@suse.cz>
3829
3830 * tree-pretty-print.c (dump_generic_node): Print class type of
3831 OBJ_TYPE_REF.
3832
3833 2013-11-19 Joey Ye <joey.ye@arm.com>
3834
3835 * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
3836 * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
3837 for new option.
3838 * config/arm/arm.c (arm_option_override): By default disable
3839 -marm-pic-data-is-text-relative.
3840 (legitimize_pic_address): Use arm_pic_data_is_text_relative.
3841 (arm_assemble_integer): Likewise.
3842 * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
3843 New macro to initialize -marm-pic-data-is-text-relative.
3844
3845 2013-11-19 Bin Cheng <bin.cheng@arm.com>
3846
3847 * tree-ssa-loop-ivopts.c (enum ainc_type): New.
3848 (address_cost_data): New field.
3849 (get_address_cost): Compute auto-increment rtx cost in ainc_costs.
3850 Use ainc_costs for auto-increment rtx patterns. Cleanup TWS.
3851
3852 2013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
3853
3854 * config/aarch64/aarch64.md: Remove v8type from all insns.
3855
3856 2013-11-19 Richard Biener <rguenther@suse.de>
3857
3858 PR tree-optimization/57517
3859 * tree-predcom.c (combinable_refs_p): Verify the combination
3860 is always executed when the refs are.
3861
3862 2013-11-19 Jeff Law <law@redhat.com>
3863
3864 * tree-ssa-threadupdate.c: Include ssa-iterators.h
3865 (copy_phi_arg_into_existing_phi): New function.
3866 (any_remaining_duplicated_blocks): Likewise.
3867 (ssa_fix_duplicate_block_edges): Handle multiple duplicated
3868 blocks on a jump threading path.
3869
3870 * tree-ssa-threadupdate.c (thread_through_loop_header): Do not
3871 thread through a joiner which has the latch edge.
3872
3873 2013-11-19 Jan Hubicka <jh@suse.cz>
3874
3875 * md.texi (setmem): Document new parameter.
3876 * optabs.c (maybe_gen_insn): Support 9 operands.
3877 * builtins.c (determine_block_size): Add probable_max_size;
3878 support anti-ranges.
3879 (expand_builtin_memcpy. expand_builtin_memset_args): Pass around
3880 probable_max_size.
3881 * expr.c (emit_block_move_via_movmem, emit_block_move_hints,
3882 emit_block_move, clear_storage_hints, set_storage_via_setmem):
3883 Likewise.
3884 * expr.h (emit_block_move_hints, clear_storage_hints,
3885 set_storage_via_setmem): Update prototype.
3886 * i386.md (setmem, movmem patterns): Add 9th operand.
3887 * i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
3888 * i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
3889 argument; pass it to decide_alg.
3890
3891 2013-11-19 David Malcolm <dmalcolm@redhat.com>
3892
3893 * basic-block.h (n_basic_blocks_for_function): Rename macro to...
3894 (n_basic_blocks_for_fn): ...this.
3895
3896 (n_basic_blocks): Eliminate macro as work towards making uses of
3897 cfun be explicit.
3898
3899 * cfgloop.c (init_loops_structure): Update for renaming of
3900 "n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
3901 * graph.c (draw_cfg_nodes_no_loops): Likewise.
3902 * ipa-utils.c (ipa_merge_profiles): Likewise.
3903 * lto-streamer-in.c (make_new_block): Likewise.
3904 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
3905 (dump_function_to_file): Likewise.
3906
3907 * alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
3908 macro with "n_basic_blocks_for_fn (cfun)".
3909 * bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
3910 (duplicate_computed_gotos): Likewise.
3911 (reorder_basic_blocks): Likewise.
3912 * bt-load.c (augment_live_range): Likewise.
3913 * cfg.c (expunge_block): Likewise.
3914 (compact_blocks): Likewise.
3915 * cfganal.c (single_pred_before_succ_order): Likewise.
3916 (compute_idf): Likewise.
3917 (flow_dfs_compute_reverse_init): Likewise.
3918 (pre_and_rev_post_order_compute): Likewise.
3919 (pre_and_rev_post_order_compute_fn): Likewise.
3920 (inverted_post_order_compute): Likewise.
3921 (post_order_compute): Likewise.
3922 (print_edge_list): Likewise.
3923 (find_unreachable_blocks): Likewise.
3924 (mark_dfs_back_edges): Likewise.
3925 * cfgcleanup.c (try_optimize_cfg): Likewise.
3926 (try_forward_edges): Likewise.
3927 * cfghooks.c (dump_flow_info): Likewise.
3928 * cfgloop.c (verify_loop_structure): Likewise.
3929 (get_loop_body): Likewise.
3930 (flow_loops_find): Likewise.
3931 * cfgloopmanip.c (add_loop): Likewise.
3932 (remove_path): Likewise.
3933 (find_path): Likewise.
3934 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
3935 (rtl_verify_bb_layout): Likewise.
3936 (entry_of_function): Likewise.
3937 (rtl_create_basic_block): Likewise.
3938 * coverage.c (coverage_compute_cfg_checksum): Likewise.
3939 * cprop.c (one_cprop_pass): Likewise.
3940 (is_too_expensive): Likewise.
3941 * df-core.c (df_compute_cfg_image): Likewise.
3942 (df_compact_blocks): Likewise.
3943 (df_worklist_dataflow_doublequeue): Likewise.
3944 * dominance.c (calculate_dominance_info): Likewise.
3945 (calc_dfs_tree): Likewise.
3946 (calc_dfs_tree_nonrec): Likewise.
3947 (init_dom_info): Likewise.
3948 * domwalk.c (cmp_bb_postorder): Likewise.
3949 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3950 (generate_setjmp_warnings): Likewise.
3951 * fwprop.c (build_single_def_use_links): Likewise.
3952 * gcse.c (is_too_expensive): Likewise.
3953 (one_code_hoisting_pass): Likewise.
3954 (one_pre_gcse_pass): Likewise.
3955 * graphite.c (graphite_initialize): Likewise.
3956 * haifa-sched.c (haifa_sched_init): Likewise.
3957 * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
3958 * ira.c (split_live_ranges_for_shrink_wrap): Likewise.
3959 * ira-build.c (ira_build): Likewise.
3960 * lcm.c (compute_nearerout): Likewise.
3961 (compute_available): Likewise.
3962 (compute_laterin): Likewise.
3963 (compute_antinout_edge): Likewise.
3964 * lra-lives.c (lra_create_live_ranges): Likewise.
3965 * lra.c (has_nonexceptional_receiver): Likewise.
3966 * mcf.c (create_fixup_graph): Likewise.
3967 * profile.c (branch_prob): Likewise.
3968 * reg-stack.c (convert_regs_2): Likewise.
3969 * regrename.c (regrename_analyze): Likewise.
3970 * reload1.c (has_nonexceptional_receiver): Likewise.
3971 * reorg.c (dbr_schedule): Likewise.
3972 * sched-deps.c (sched_deps_init): Likewise.
3973 * sched-ebb.c (schedule_ebbs): Likewise.
3974 * sched-rgn.c (extend_regions): Likewise.
3975 (schedule_insns): Likewise.
3976 (sched_rgn_init): Likewise.
3977 (extend_rgns): Likewise.
3978 (haifa_find_rgns): Likewise.
3979 * sel-sched-ir.c (recompute_rev_top_order): Likewise.
3980 (sel_recompute_toporder): Likewise.
3981 * sel-sched.c (run_selective_scheduling): Likewise.
3982 * store-motion.c (one_store_motion_pass): Likewise.
3983 (remove_reachable_equiv_notes): Likewise.
3984 * tracer.c (tracer): Likewise.
3985 (tail_duplicate): Likewise.
3986 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
3987 (dump_cfg_stats): Likewise.
3988 (gimple_dump_cfg): Likewise.
3989 (create_bb): Likewise.
3990 (build_gimple_cfg): Likewise.
3991 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
3992 * tree-inline.c (optimize_inline_calls): Likewise.
3993 (fold_marked_statements): Likewise.
3994 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
3995 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
3996 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
3997 * tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
3998 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
3999 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
4000 * tree-ssa-pre.c (do_pre): Likewise.
4001 (init_pre): Likewise.
4002 (compute_avail): Likewise.
4003 * tree-ssa-reassoc.c (init_reassoc): Likewise.
4004 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
4005 * tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
4006 (init_worklist): Likewise.
4007 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
4008 * var-tracking.c (variable_tracking_main_1): Likewise.
4009 (vt_find_locations): Likewise.
4010 (vt_stack_adjustments): Likewise.
4011 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
4012 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
4013
4014 2013-11-18 Jan Hubicka <jh@suse.cz>
4015
4016 * profile.c (compute_branch_probabilities): Do not sanity check
4017 run_max.
4018
4019 2013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com>
4020
4021 * tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to
4022 GET_MODE_PRECISION.
4023 * fold-const.c (fold_single_bit_test_into_sign_test)
4024 (fold_binary_loc): Change GET_MODE_BITSIZE to GET_MODE_PRECISION.
4025
4026 2013-11-18 Teresa Johnson <tejohnson@google.com>
4027
4028 * cfgrtl.c (cfg_layout_initialize): Assert if we try to go into
4029 cfglayout after bb reordering.
4030 * passes.def: Move compgotos before bb reordering since it goes into
4031 cfglayout.
4032
4033 2013-11-18 Bernd Schmidt <bernds@codesourcery.com>
4034
4035 * cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes.
4036 * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer
4037 static.
4038 (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out,
4039 make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out,
4040 pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove.
4041 * lto-streamer.h (lto_output, produce_asm_for_decls): Declare.
4042 * pass-manager.h (GCC_PASS_LISTS, class pass_manager):
4043 Remove all_lto_gen_passes.
4044 * passes.c (pass_manager::dump_passes): Remove its use.
4045 (pass_manager::register_pass): Likewise.
4046 (ipa_read_summaries, ipa_read_optimization_summaries): Likewise.
4047 (pass_manager::pass_manager): Don't initialize or use it.
4048 (write_lto): New static function.
4049 (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it
4050 instead of using all_lto_gen_passes.
4051 * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out,
4052 pass_ipa_lto_finish_out): Delete.
4053 * tree-pass.h (make_pass_ipa_lto_gimple_out,
4054 make_pass_ipa_lto_finish_out): Don't declare.
4055
4056 2013-11-18 Jeff Law <law@redhat.com>
4057
4058 * tree-ssa-threadupdate.c (redirection_data): Record two
4059 duplicated blocks instead of just one.
4060 (local_info): Explain why we don't create a template for the
4061 second duplicated block in a thread path.
4062 (create_block_for_threading): Accept argument indicating array
4063 index into redirection_data to store its result.
4064 (lookup_redirection_data): Initialize both duplicate blocks.
4065 (ssa_create_duplicates): If a jump threading path needs multiple
4066 blocks duplicated, then duplicate them.
4067 (ssa_fix_duplicate_block_edges): Corresponding changes.
4068 (ssa_fixup_template_block, thread_single_edge): Likewise.
4069
4070 2013-11-18 Marek Polacek <polacek@redhat.com>
4071
4072 * doc/invoke.texi: Extend -fsanitize=undefined documentation.
4073
4074 2013-11-18 Andrew Pinski <apinski@cavium.com>
4075 Steve Ellcey <sellcey@mips.com>
4076
4077 PR target/56552
4078 * config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove
4079 type restriction from equality_operator on conditonal move.
4080 (*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto.
4081 (*mov<GPR:mode>_on_<GPR2:mode>_ne): New.
4082
4083 2013-11-18 Jeff Law <law@redhat.com>
4084
4085 * tree-ssa-threadupdate.c: Fix file block comment.
4086 Fix minor indention issue.
4087
4088 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
4089
4090 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
4091 ix86_address_subreg_operand. Move subreg checks to
4092 ix86_validate_address_register. Move address override check to
4093 ix86_legitimate_address_p.
4094 (ix86_validate_address_register): New function.
4095 (ix86_legitimate_address_p): Call ix86_validate_address_register
4096 to validate base and index registers. Add address override check
4097 from ix86_decompose_address.
4098 (ix86_decompose_address): Remove.
4099
4100 2013-11-18 Richard Biener <rguenther@suse.de>
4101
4102 PR tree-optimization/59125
4103 PR tree-optimization/54570
4104 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
4105 is not complete do not treat component-references with offset zero
4106 but different fields as equal.
4107 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
4108 (compute_object_sizes): Apply TLC. Propagate the constant
4109 results into all uses and fold their stmts.
4110 * passes.def (pass_all_optimizations): Move pass_object_sizes
4111 after the first pass_forwprop and before pass_fre.
4112
4113 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4114
4115 * tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
4116 * tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
4117 (tree_ctz): Remove cast to unsigned type.
4118 * builtins.c (fold_builtin_memory_op): Likewise.
4119 * dwarf2out.c (descr_info_loc): Likewise.
4120 * godump.c (go_output_typedef): Likewise.
4121 * omp-low.c (expand_omp_simd): Likewise.
4122 * stor-layout.c (excess_unit_span): Likewise.
4123 * tree-object-size.c (addr_object_size): Likewise.
4124 * tree-sra.c (analyze_all_variable_accesses): Likewise.
4125 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
4126 (simplify_rotate): Likewise.
4127 * tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy)
4128 (handle_pointer_plus): Likewise.
4129 * tree-switch-conversion.c (check_range): Likewise.
4130 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
4131 * tsan.c (instrument_builtin_call): Likewise.
4132 * cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT.
4133 * trans-mem.c (tm_log_add): Likewise.
4134 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
4135 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
4136 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
4137 * config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned.
4138
4139 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4140
4141 * tree.h (host_integerp, tree_low_cst): Delete.
4142 * tree.c (host_integerp, tree_low_cst): Delete.
4143
4144 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4145
4146 * expr.h: Update comments to refer to tree_to_[su]hwi rather
4147 than tree_low_cst.
4148 * fold-const.c (fold_binary_loc): Likewise.
4149 * expr.c (store_constructor): Use tree_to_uhwi rather than
4150 tree_low_cst.
4151 * ipa-utils.h (possible_polymorphic_call_target_p): Likewise.
4152 * stmt.c (emit_case_dispatch_table): Likewise.
4153 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
4154
4155 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4156
4157 * alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c,
4158 config/aarch64/aarch64.c, config/alpha/predicates.md,
4159 config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c,
4160 config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c,
4161 config/mep/mep-pragma.c, config/mips/mips.c,
4162 config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c,
4163 dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c,
4164 function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c,
4165 predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c,
4166 tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c,
4167 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c,
4168 tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c,
4169 tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c,
4170 tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c:
4171 Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.
4172
4173 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4174
4175 * builtins.c, cilk-common.c, config/aarch64/aarch64.c,
4176 config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md,
4177 config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c,
4178 coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h,
4179 fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c,
4180 predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c,
4181 tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c,
4182 tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c,
4183 tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c,
4184 tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c:
4185 Replace tree_low_cst (..., 0) with tree_to_shwi throughout.
4186
4187 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4188
4189 * tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
4190 * tree.c (tree_to_shwi, tree_to_uhwi): New functions.
4191
4192 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4193
4194 * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather
4195 than host_integerp.
4196
4197 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4198
4199 * builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c,
4200 config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c,
4201 gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c,
4202 tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c,
4203 tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
4204 tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c,
4205 tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c,
4206 config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c,
4207 config/m32c/m32c-pragma.c, config/mep/mep-pragma.c,
4208 config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c,
4209 gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c,
4210 tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c,
4211 tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c,
4212 tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with
4213 tree_fits_uhwi_p throughout.
4214
4215 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4216
4217 * builtins.c, config/alpha/alpha.c, config/c6x/predicates.md,
4218 config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c,
4219 config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c,
4220 expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c,
4221 gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c,
4222 omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c,
4223 stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c,
4224 tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c,
4225 tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c,
4226 tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
4227 tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c,
4228 tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c,
4229 varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
4230 throughout.
4231
4232 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
4233
4234 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
4235 * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.
4236
4237 2013-11-18 Kirill Yukhin <kirill.yukhin@intel.com>
4238
4239 * config/ia64/ia64.c (ia64_split_tmode_move): Mark load with `dead'
4240 flag if it kills its address, not its post-increment.
4241
4242 2013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
4243
4244 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
4245 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
4246 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
4247 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
4248 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
4249 (gimple_call_with_bounds_p): New.
4250 (gimple_call_set_with_bounds): New.
4251 (gimple_call_num_nobnd_args): Remove.
4252 (gimple_call_nobnd_arg): Remove.
4253 * tree.h (CALL_WITH_BOUNDS_P): New.
4254 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
4255
4256 2013-11-18 Trevor Saunders <tsaunders@mozilla.com>
4257
4258 * cgraph.h (symtab_node_asm_name): Rename to symtab_node::asm_name.
4259 (symtab_node_name): Rename to symtab_node::name.
4260 (cgraph_node_asm_name): Remove.
4261 (varpool_node_asm_name): Remove.
4262 * cgraph.c cgraphclones.c cgraphunit.c ipa-cp.c ipa-devirt.c
4263 ipa-inline-analysis.c ipa-inline-transform.c ipa-inline.c
4264 ipa-profile.c ipa-prop.c ipa-pure-const.c ipa-ref.c ipa-reference.c
4265 ipa-utils.c ipa.c symtab.c tree-inline.c tree-sra.c
4266 tree-ssa-structalias.c value-prof.c varpool.c Adjust.
4267
4268 2013-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4269
4270 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): New table.
4271 * config/arm/arm.c (arm_cortex_a53_tune): New.
4272 * config/arm/arm-cores.def (cortex-a53): Use cortex_a53 tuning struct.
4273
4274 2013-11-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
4275
4276 * config.gcc (i[34567]86-*-linux* | ...): Add bdver4.
4277 (case ${target}): Add bdver4.
4278 * config/i386/bdver3.md: Add bdver4.
4279 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
4280 -march=native recognize bdver4 processors.
4281 * config/i386/i386-c.c (ix86_target_macros_internal): Add
4282 bdver4 def_and_undef
4283 * config/i386/i386.c (struct processor_costs bdver4_cost): New.
4284 (m_BDVER4): New definition.
4285 (m_AMD_MULTIPLE): Includes m_BDVER4.
4286 (processor_target_table): Add bdver4 entry.
4287 (static const char *const cpu_names): Add bdver4 entry.
4288 (software_prefetching_beneficial_p): Add bdver3.
4289 (ix86_option_override_internal): Add bdver4 instruction sets.
4290 (ix86_issue_rate): Add bdver4.
4291 (ix86_adjust_cost): Add bdver4.
4292 (ia32_multipass_dfa_lookahead): Add bdver4.
4293 (enum processor_model): Add M_AMDFAM15H_BDVER4.
4294 (struct _arch_names_table): Add M_AMDFAM15H_BDVER4.
4295 (has_dispatch): Add bdver4.
4296 * config/i386/i386.h (TARGET_BDVER4): New definition.
4297 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver4.
4298 (enum processor_type): Add PROCESSOR_BDVER4.
4299 * config/i386/i386.md (define_attr "cpu"): Add bdver4.
4300 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver4.
4301 * doc/extend.texi: Add details about bdver4.
4302 * doc/invoke.texi: Add details about bdver4. Add
4303 fma4 and fsgsbase for bdver3. Add fma4 for bdver2.
4304
4305 2013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4306
4307 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
4308 sdmode_stack_slot also in little-endian mode.
4309
4310 2013-11-17 Jan Hubicka <jh@suse.cz>
4311
4312 * doc/md.texi (setmem, movstr): Update documentation.
4313 * builtins.c (determine_block_size): New function.
4314 (expand_builtin_memcpy): Use it and pass it to emit_block_move_hints.
4315 (expand_builtin_memset_args): Use it and pass it to
4316 set_storage_via_setmem.
4317 * expr.c (emit_block_move_via_movmem): Add min_size/max_size
4318 parameters; update call to expander.
4319 (emit_block_move_hints): Add min_size/max_size parameters.
4320 (clear_storage_hints): Likewise.
4321 (set_storage_via_setmem): Likewise.
4322 (clear_storage): Update.
4323 * expr.h (emit_block_move_hints, clear_storage_hints,
4324 set_storage_via_setmem): Update prototypes.
4325 * i386.c (ix86_expand_set_or_movmem): Add bounds; export.
4326 (ix86_expand_movmem, ix86_expand_setmem): Remove.
4327 (ix86_expand_movmem, ix86_expand_setmem): Remove.
4328 * i386.md (movmem, setmem): Pass parameters.
4329
4330 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
4331
4332 PR target/59153
4333 * config/i386/i386.c (ix86_address_subreg_operand): Do not
4334 reject non-integer subregs.
4335 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
4336 Move check for invalid x32 constant addresses ...
4337 (ix86_legitimate_address_p): ... here.
4338
4339 2011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4340
4341 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
4342 parameter and use it in REG_FRAME_RELATED_EXPR note.
4343 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
4344 parameter.
4345 (rs6000_emit_prologue): Likewise, but for little endian VSX
4346 stores, pass the source register of the store instead.
4347
4348 2013-11-17 Andrew MacLeod <amacleod@redhat.com>
4349
4350 * gimple.h: Reorder prototypes to match .c declaration order, and
4351 remove protyotypes for functions not in gimple.c.
4352 (LABEL): Move to tree-into-ssa.c.
4353 * gimple.c: Remove unused prototypes.
4354 (get_base_address): Move to tree.c.
4355 * tree.c (get_base_address): Relocate from gimple.c.
4356 * builtins.h (validate_gimple_arglist): Add prototype.
4357 * trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype.
4358 * cfgexpand.h: New File.
4359 (gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype.
4360 * tree.h (build_addr): Move to tree-nested.h.
4361 * tree-nested.h: New File.
4362 (build_addr, lower_nested_functions, insert_field_into_struct): Add
4363 prototypes.
4364 * tree-inline.h (estimated_stack_frame_size): Remove prototype.
4365 * ipa-inline-analysis.c: Include cfgexpand.h.
4366 * cgraphunit.c: Include tree-nested.h.
4367 * omp-low.c: Likewise.
4368 * tree-parloops.c: Likewise.
4369 * gimple-low.h: Likewise.
4370 * tree-profile.h: Likewise.
4371 * expr.c: Include cfgexpand.h.
4372 * tree-affine.c: Likewise.
4373 * tree-ssa.c: Likewise.
4374 * tree-ssa-loop-im.c: Include trans-mem.h.
4375 * tree-ssa-tail-merge.c: Likewise.
4376 * value-prof.c: Include builtins.h and tree-nested.h.
4377 * tree-into-ssa.c (LABEL): Define here.
4378
4379 2013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
4380
4381 * config/arc/arc.c (arc_predicate_delay_insns): New function.
4382 (pass_data_arc_predicate_delay_insns): New pass_data instance.
4383 (pass_arc_predicate_delay_insns): New subclass of rtl_opt_class.
4384 (make_pass_arc_predicate_delay_insns): New function.
4385 (arc_init): Register pass_arc_predicate_delay_insns if
4386 flag_delayed_branch is active.
4387
4388 2013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
4389
4390 * config/arc/constraints.md (Rcq): Simplify register number test.
4391
4392 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
4393
4394 * gimple.h (enum gf_mask): Change the ordering of GF_OMP_* bits.
4395
4396 2013-11-15 Kaz Kojima <kkojima@gcc.gnu.org>
4397
4398 * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label
4399 is null.
4400
4401 2013-11-15 Aldy Hernandez <aldyh@redhat.com>
4402
4403 * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o.
4404 * gimple-pretty-print.c (dump_omp_for): Add case for
4405 GF_OMP_FOR_KIND_CILKSIMD.
4406 * gimple.h (enum gf_mask): Restructure entries to add
4407 GF_OMP_FOR_KIND_CILKSIMD.
4408 * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD.
4409 (gimplify_omp_for): Handle CILK_SIMD.
4410 (gimplify_expr): Add ccase for CILK_SIMD.
4411 * omp-low.c (extract_omp_for_data): Handle CILK_SIMD.
4412 (build_outer_var_ref): Same.
4413 (check_omp_nesting_restrictions): Same.
4414 (lower_rec_input_clauses): Same.
4415 (lower_lastprivate_clauses): Same.
4416 (expand_omp_for): Same.
4417 (execute_expand_omp): Check flag_enable_cilkplus.
4418 (execute_lower_omp): Same.
4419 (diagnose_sb_0): Handle CILK_SIMD.
4420 (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus.
4421 (setjmp_or_longjmp_p): New.
4422 (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct.
4423 * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD.
4424 * tree.def: Add tree code for CILK_SIMD.
4425
4426 2013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4427
4428 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
4429 Remove.
4430 (altivec_vperm_<mode>): Revert earlier little endian change.
4431 (*altivec_vperm_<mode>_internal): Remove.
4432 (altivec_vperm_<mode>_uns): Revert earlier little endian change.
4433 (*altivec_vperm_<mode>_uns_internal): Remove.
4434 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise commentary.
4435
4436 2013-11-15 Jeff Law <law@redhat.com>
4437
4438 * basic-block.h (has_abnormal_or_eh_outgoing_edge): Renamed from
4439 has_abnormal_or_outgoing_edge. Check for EH edges as well.
4440 * gimple-ssa-isolate-paths.c
4441 (find_implicit_erroneous_behaviour): Corresponding changes.
4442 Do not check stmt_ends_bb_p or GIMPLE_RETURN anymore.
4443 (find_explicit_erroneous_behaviour): Likewise.
4444
4445 2013-11-15 Jeff Law <law@redhat.com>
4446
4447 * ifcvt.c (find_cond_trap): Properly handle case where
4448 trap_bb == else_bb.
4449
4450 2013-11-15 Andreas Schwab <schwab@linux-m68k.org>
4451
4452 * configure: Regenerate.
4453
4454 2013-11-15 James Greenhalgh <james.greenhalgh@arm.com>
4455
4456 * config/aarch64/aarch64-simd.md: Remove simd_type from all patterns.
4457 * config/aarch64/aarch64.md: Likewise, correct "type" attribute
4458 where it is incorrect or missing.
4459
4460 2013-11-15 Richard Sandiford <rdsandiford@googlemail.com>
4461
4462 * dwarf2out.c (gen_enumeration_type_die): Remove unnecessary
4463 host_integerp test.
4464 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
4465 Use TREE_INT_CST_LOW rather than tree_low_cst when reading the
4466 constant.
4467 * fold-const.c (fold_binary_loc): Replace a host_integerp/tree_low_cst
4468 pair with a TREE_CODE test and TREE_INT_CST_LOW.
4469 * tree-vect-generic.c (expand_vector_divmod): Likewise.
4470
4471 2013-11-15 Richard Biener <rguenther@suse.de>
4472
4473 PR tree-optimization/50262
4474 * tree-ssa-alias.h (struct pt_solution): Split
4475 vars_contains_global into vars_contains_nonlocal,
4476 vars_contains_escaped and vars_contains_escaped_heap.
4477 * tree-ssa-structalias.c (label_visit): Expand comment.
4478 (handle_lhs_call): Adjust comment.
4479 (set_uids_in_ptset): Set the new flags appropriately.
4480 (pt_solution_set): Adjust.
4481 (pt_solution_set_var): Likewise.
4482 (pt_solution_ior_into): Likewise.
4483 (pt_solution_includes_global): Likewise.
4484 (pt_solutions_intersect_1): Optimize escaped handling.
4485 (compute_points_to_sets): Remove heap variable globalization.
4486 (ipa_escaped_pt): Adjust initializer.
4487 (pass_data_ipa_pta): Do not run TODO_update_ssa.
4488 * gimple-pretty-print.c (pp_points_to_solution): Print split flags.
4489 * tree-ssa-alias.c (dump_points_to_solution): Likewise.
4490
4491 2013-11-15 Richard Biener <rguenther@suse.de>
4492
4493 * tree-loop-distribution.c (tree_loop_distribution): Make sure
4494 to distribute all stores.
4495
4496 2013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4497
4498 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
4499
4500 2013-11-15 Joseph Myers <joseph@codesourcery.com>
4501
4502 * acinclude.m4 (GCC_GLIBC_VERSION_GTE_IFELSE): New configure macro.
4503 * configure.ac: Determine target_header_dir earlier.
4504 (--with-glibc-version): New configure option.
4505 Use GCC_GLIBC_VERSION_GTE_IFELSE in enable_gnu_unique_object,
4506 gcc_cv_libc_provides_ssp and gcc_cv_target_ldbl128 tests.
4507 * configure: Regenerate.
4508 * doc/install.texi (--enable-gnu-unique-object): Don't refer to
4509 native toolchains for default.
4510 (--with-glibc-version): Document.
4511
4512 2013-11-15 Eric Botcazou <ebotcazou@adacore.com>
4513
4514 * fold-const.c (fold_binary_loc) <comparisons>: Reuse local variable.
4515
4516 2013-11-15 Uros Bizjak <ubizjak@gmail.com>
4517
4518 * lto-streamer-in.c (input function): Call cgraph_create_node if
4519 cgraph_get_node failed.
4520
4521 2013-11-14 Olivier Hainque <hainque@adacore.com>
4522
4523 * cfgexpand.c (defer_stack_allocation): When optimization is enabled,
4524 defer allocation of DECL_IGNORED_P variables at toplevel unless really
4525 small. Factorize size threshold computation from the existing one.
4526 (expand_used_vars): Refine comment.
4527
4528 2013-11-14 Cong Hou <congh@google.com>
4529
4530 * tree-vectorizer.h (struct dr_with_seg_len): Remove the base
4531 address field as it can be obtained from dr. Rename the struct.
4532 * tree-vect-data-refs.c (comp_dr_with_seg_len_pair): Consider
4533 steps of data references during sort.
4534 (vect_prune_runtime_alias_test_list): Adjust with the change to
4535 struct dr_with_seg_len.
4536 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4537 Adjust with the change to struct dr_with_seg_len.
4538
4539 2013-11-14 Jeff Law <law@redhat.com>
4540
4541 PR middle-end/59127
4542 * basic-block.h (has_abnormal_outgoing_edge_p): Moved here from...
4543 * tree-inline.c (has_abnormal_outgoing_edge_p): Remove.
4544 * gimple-ssa-isolate-paths.c: Include tree-cfg.h.
4545 (find_implicit_erroneous_behaviour): If a block has abnormal outgoing
4546 edges, then ignore it. If the statement exhibiting erroneous
4547 behaviour ends basic blocks, with the exception of GIMPLE_RETURNs,
4548 then we can not optimize.
4549 (find_explicit_erroneous_behaviour): Likewise.
4550
4551 2013-11-14 Andrew MacLeod <amacleod@redhat.com>
4552
4553 * gimplify-me.h: New file. Add prototypes.
4554 * gimplify.h: Don't include gimple.h.
4555 (struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos):
4556 Relocate from gimple.h.
4557 * gimple.h (struct gimplify_hasher, struct gimplify_ctx,
4558 is_gimple_sizepos): Move to gimplify.h.
4559 (gimplify_hasher::hash, gimplify_hasher::equal): Move to gimplify.c.
4560 (enum gsi_iterator_update): Move to gimple-iterator.h.
4561 * gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h.
4562 * gimplify-me.c: New File.
4563 (force_gimple_operand_1, force_gimple_operand,
4564 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
4565 gimple_regimplify_operands): Relocate from gimplify.c.
4566 * gimplify.c (force_gimple_operand_1, force_gimple_operand,
4567 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
4568 gimple_regimplify_operands): Move to gimplify-me.c.
4569 (gimplify_hasher::hash, gimplify_hasher::equal): Relocate
4570 from gimple.h.
4571 * Makefile.in (OBJS): Add gimplify-me.o
4572 * asan.c: Include only gimplify.h, gimplify-me.h, and/or gimple.h as
4573 required.
4574 * cfgloopmanip.c: Likewise.
4575 * cgraphunit.c: Likewise.
4576 * cilk-common.c: Likewise.
4577 * fold-const.c: Likewise.
4578 * function.c: Likewise.
4579 * gimple-expr.c: Likewise.
4580 * gimple-fold.c: Likewise.
4581 * gimple-ssa-strength-reduction.c: Likewise.
4582 * gimple.c: Likewise.
4583 * graphite-clast-to-gimple.c: Likewise.
4584 * graphite-sese-to-poly.c: Likewise.
4585 * ipa-prop.c: Likewise.
4586 * ipa-split.c: Likewise.
4587 * ipa.c: Likewise.
4588 * langhooks.c: Likewise.
4589 * omp-low.c: Likewise.
4590 * sese.c: Likewise.
4591 * stor-layout.c: Likewise.
4592 * targhooks.c: Likewise.
4593 * trans-mem.c: Likewise.
4594 * tree-affine.c: Likewise.
4595 * tree-cfg.c: Likewise.
4596 * tree-cfgcleanup.c: Likewise.
4597 * tree-complex.c: Likewise.
4598 * tree-if-conv.c: Likewise.
4599 * tree-inline.c: Likewise.
4600 * tree-loop-distribution.c: Likewise.
4601 * tree-nested.c: Likewise.
4602 * tree-parloops.c: Likewise.
4603 * tree-predcom.c: Likewise.
4604 * tree-profile.c: Likewise.
4605 * tree-scalar-evolution.c: Likewise.
4606 * tree-sra.c: Likewise.
4607 * tree-ssa-address.c: Likewise.
4608 * tree-ssa-ccp.c: Likewise.
4609 * tree-ssa-dce.c: Likewise.
4610 * tree-ssa-forwprop.c: Likewise.
4611 * tree-ssa-ifcombine.c: Likewise.
4612 * tree-ssa-loop-im.c: Likewise.
4613 * tree-ssa-loop-ivopts.c: Likewise.
4614 * tree-ssa-loop-manip.c: Likewise.
4615 * tree-ssa-loop-niter.c: Likewise.
4616 * tree-ssa-loop-prefetch.c: Likewise.
4617 * tree-ssa-loop-unswitch.c: Likewise.
4618 * tree-ssa-math-opts.c: Likewise.
4619 * tree-ssa-phiopt.c: Likewise.
4620 * tree-ssa-phiprop.c: Likewise.
4621 * tree-ssa-pre.c: Likewise.
4622 * tree-ssa-propagate.c: Likewise.
4623 * tree-ssa-reassoc.c: Likewise.
4624 * tree-ssa-sccvn.c: Likewise.
4625 * tree-ssa-strlen.c: Likewise.
4626 * tree-ssa.c: Likewise.
4627 * tree-switch-conversion.c: Likewise.
4628 * tree-tailcall.c: Likewise.
4629 * tree-vect-data-refs.c: Likewise.
4630 * tree-vect-generic.c: Likewise.
4631 * tree-vect-loop-manip.c: Likewise.
4632 * tree-vect-loop.c: Likewise.
4633 * tree-vect-patterns.c: Likewise.
4634 * tree-vect-stmts.c: Likewise.
4635 * tree.c: Likewise.
4636 * tsan.c: Likewise.
4637 * value-prof.c: Likewise.
4638 * config/aarch64/aarch64.c: Likewise.
4639 * config/alpha/alpha.c: Likewise.
4640 * config/darwin.c: Likewise.
4641 * config/i386/i386.c: Likewise.
4642 * config/ia64/ia64.c: Likewise.
4643 * config/mep/mep.c: Likewise.
4644 * config/mips/mips.c: Likewise.
4645 * config/rs6000/rs6000.c: Likewise.
4646 * config/s390/s390.c: Likewise.
4647 * config/sh/sh.c: Likewise.
4648 * config/sparc/sparc.c: Likewise.
4649 * config/spu/spu.c: Likewise.
4650 * config/stormy16/stormy16.c: Likewise.
4651 * config/tilegx/tilegx.c: Likewise.
4652 * config/tilepro/tilepro.c: Likewise.
4653 * config/xtensa/xtensa.c: Likewise.
4654
4655 2013-11-14 Diego Novillo <dnovillo@google.com>
4656
4657 * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
4658
4659 2013-11-14 Diego Novillo <dnovillo@google.com>
4660
4661 * tree.h: Include fold-const.h.
4662 (aggregate_value_p): Moved to function.h.
4663 (alloca_call_p): Moved to calls.h.
4664 (allocate_struct_function): Moved to function.h.
4665 (apply_tm_attr): Moved to attribs.h.
4666 (array_at_struct_end_p): Moved to expr.h.
4667 (array_ref_element_size): Moved to tree-dfa.h.
4668 (array_ref_low_bound): Moved to tree-dfa.h.
4669 (array_ref_up_bound): Moved to tree.h.
4670 (assemble_alias): Moved to cgraph.h.
4671 (bit_from_pos): Moved to stor-layout.h.
4672 (build_addr): Moved to tree-nested.h.
4673 (build_duplicate_type): Moved to tree-inline.h.
4674 (build_fold_addr_expr): Moved to fold-const.h.
4675 (build_fold_addr_expr_with_type): Moved to fold-const.h.
4676 (build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
4677 (build_fold_indirect_ref): Moved to fold-const.h.
4678 (build_fold_indirect_ref_loc): Moved to fold-const.h.
4679 (build_personality_function): Moved to tree.h.
4680 (build_range_check): Moved to fold-const.h.
4681 (build_simple_mem_ref): Moved to fold-const.h.
4682 (build_simple_mem_ref_loc): Moved to fold-const.h.
4683 (build_tm_abort_call): Moved to trans-mem.h.
4684 (byte_from_pos): Moved to stor-layout.h.
4685 (call_expr_flags): Moved to calls.h.
4686 (can_move_by_pieces): Moved to expr.h.
4687 (categorize_ctor_elements): Moved to expr.h.
4688 (change_decl_assembler_name): Moved to gcc-symtab.h.
4689 (combine_comparisons): Moved to fold-const.h.
4690 (complete_ctor_at_level_p): Moved to tree.h.
4691 (component_ref_field_offset): Moved to tree-dfa.h.
4692 (compute_builtin_object_size): Moved to tree-object-size.h.
4693 (compute_record_mode): Moved to stor-layout.h.
4694 (constant_boolean_node): Moved to fold-const.h.
4695 (constructor_static_from_elts_p): Moved to varasm.h.
4696 (cxx11_attribute_p): Moved to attribs.h.
4697 (debug_body): Moved to print-tree.h.
4698 (debug_find_tree): Moved to tree-inline.h.
4699 (debug_fold_checksum): Moved to fold-const.h.
4700 (debug_head): Moved to print-tree.h.
4701 (debug_head): Moved to print-tree.h.
4702 (debug_raw): Moved to print-tree.h.
4703 (debug_tree): Moved to print-tree.h.
4704 (debug_vec_tree): Moved to print-tree.h.
4705 (debug_verbose): Moved to print-tree.h.
4706 (debug_verbose): Moved to print-tree.h.
4707 (decl_attributes): Moved to attribs.h.
4708 (decl_binds_to_current_def_p): Moved to varasm.h.
4709 (decl_default_tls_model): Moved to varasm.h.
4710 (decl_replaceable_p): Moved to varasm.h.
4711 (div_if_zero_remainder): Moved to fold-const.h.
4712 (double_int mem_ref_offset): Moved to fold-const.h.
4713 (dump_addr): Moved to print-tree.h.
4714 (element_precision): Moved to machmode.h.
4715 (expand_dummy_function_end): Moved to function.h.
4716 (expand_function_end): Moved to function.h.
4717 (expand_function_start): Moved to function.h.
4718 (expand_label): Moved to stmt.h.
4719 (expr_first): Moved to tree-iterator.h.
4720 (expr_last): Moved to tree-iterator.h.
4721 (finalize_size_functions): Moved to stor-layout.h.
4722 (finish_builtin_struct): Moved to stor-layout.h.
4723 (finish_record_layout): Moved to stor-layout.h.
4724 (fixup_signed_type): Moved to stor-layout.h.
4725 (fixup_unsigned_type): Moved to stor-layout.h.
4726 (flags_from_decl_or_type): Moved to calls.h.
4727 (fold): Moved to fold-const.h.
4728 (fold_abs_const): Moved to fold-const.h.
4729 (fold_binary): Moved to fold-const.h.
4730 (fold_binary_loc): Moved to fold-const.h.
4731 (fold_binary_to_constant): Moved to fold-const.h.
4732 (fold_build1): Moved to fold-const.h.
4733 (fold_build1_initializer_loc): Moved to fold-const.h.
4734 (fold_build1_loc): Moved to fold-const.h.
4735 (fold_build1_stat_loc): Moved to fold-const.h.
4736 (fold_build2): Moved to fold-const.h.
4737 (fold_build2_initializer_loc): Moved to fold-const.h.
4738 (fold_build2_loc): Moved to fold-const.h.
4739 (fold_build2_stat_loc): Moved to fold-const.h.
4740 (fold_build3): Moved to fold-const.h.
4741 (fold_build3_loc): Moved to fold-const.h.
4742 (fold_build3_stat_loc): Moved to fold-const.h.
4743 (fold_build_call_array): Moved to fold-const.h.
4744 (fold_build_call_array_initializer): Moved to fold-const.h.
4745 (fold_build_call_array_initializer_loc): Moved to fold-const.h.
4746 (fold_build_call_array_loc): Moved to fold-const.h.
4747 (fold_build_cleanup_point_expr): Moved to fold-const.h.
4748 (fold_convert): Moved to fold-const.h.
4749 (fold_convert_loc): Moved to fold-const.h.
4750 (fold_convertible_p): Moved to fold-const.h.
4751 (fold_defer_overflow_warnings): Moved to fold-const.h.
4752 (fold_deferring_overflow_warnings_p): Moved to fold-const.h.
4753 (fold_fma): Moved to fold-const.h.
4754 (fold_ignored_result): Moved to fold-const.h.
4755 (fold_indirect_ref): Moved to fold-const.h.
4756 (fold_indirect_ref_1): Moved to fold-const.h.
4757 (fold_indirect_ref_loc): Moved to fold-const.h.
4758 (fold_read_from_constant_string): Moved to fold-const.h.
4759 (fold_real_zero_addition_p): Moved to fold-const.h.
4760 (fold_single_bit_test): Moved to fold-const.h.
4761 (fold_strip_sign_ops): Moved to fold-const.h.
4762 (fold_ternary): Moved to fold-const.h.
4763 (fold_ternary_loc): Moved to fold-const.h.
4764 (fold_unary): Moved to tree-data-ref.h.
4765 (fold_unary_ignore_overflow): Moved to fold-const.h.
4766 (fold_unary_ignore_overflow_loc): Moved to fold-const.h.
4767 (fold_unary_loc): Moved to fold-const.h.
4768 (fold_unary_to_constant): Moved to fold-const.h.
4769 (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
4770 (fold_undefer_overflow_warnings): Moved to fold-const.h.
4771 (folding_initializer): Moved to fold-const.h.
4772 (free_temp_slots): Moved to function.h.
4773 (generate_setjmp_warnings): Moved to function.h.
4774 (get_attribute_name): Moved to attribs.h.
4775 (get_identifier): Moved to stringpool.h.
4776 (get_identifier_with_length): Moved to stringpool.h.
4777 (get_inner_reference): Moved to tree.h.
4778 (gimple_alloca_call_p): Moved to calls.h.
4779 (gimplify_parameters): Moved to function.h.
4780 (highest_pow2_factor): Moved to expr.h.
4781 (indent_to): Moved to print-tree.h.
4782 (init_attributes): Moved to attribs.h.
4783 (init_dummy_function_start): Moved to function.h.
4784 (init_function_start): Moved to function.h.
4785 (init_inline_once): Moved to tree-inline.h.
4786 (init_object_sizes): Moved to tree-object-size.h.
4787 (init_temp_slots): Moved to function.h.
4788 (init_tree_optimization_optabs): Moved to optabs.h.
4789 (initialize_sizetypes): Moved to stor-layout.h.
4790 (initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
4791 (initializer_constant_valid_p): Moved to varasm.h.
4792 (int_const_binop): Moved to fold-const.h.
4793 (internal_reference_types): Moved to stor-layout.h.
4794 (invert_tree_comparison): Moved to fold-const.h.
4795 (invert_truthvalue): Moved to fold-const.h.
4796 (invert_truthvalue_loc): Moved to fold-const.h.
4797 (is_tm_ending_fndecl): Moved to trans-mem.h.
4798 (is_tm_may_cancel_outer): Moved to trans-mem.h.
4799 (is_tm_pure): Moved to trans-mem.h.
4800 (is_tm_safe): Moved to trans-mem.h.
4801 (layout_decl): Moved to stor-layout.h.
4802 (layout_type): Moved to stor-layout.h.
4803 (lookup_attribute_spec): Moved to attribs.h.
4804 (make_accum_type): Moved to stor-layout.h.
4805 (make_decl_one_only): Moved to varasm.h.
4806 (make_decl_rtl): Moved to tree.h.
4807 (make_decl_rtl_for_debug): Moved to varasm.h.
4808 (make_fract_type): Moved to stor-layout.h.
4809 (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
4810 (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
4811 (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
4812 (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
4813 (make_or_reuse_signed_accum_type): Moved to stor-layout.h.
4814 (make_or_reuse_signed_fract_type): Moved to stor-layout.h.
4815 (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
4816 (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
4817 (make_range): Moved to fold-const.h.
4818 (make_range_step): Moved to fold-const.h.
4819 (make_sat_signed_accum_type): Moved to stor-layout.h.
4820 (make_sat_signed_fract_type): Moved to stor-layout.h.
4821 (make_sat_unsigned_accum_type): Moved to stor-layout.h.
4822 (make_sat_unsigned_fract_type): Moved to stor-layout.h.
4823 (make_signed_accum_type): Moved to stor-layout.h.
4824 (make_signed_fract_type): Moved to stor-layout.h.
4825 (make_signed_type): Moved to stor-layout.h.
4826 (make_unsigned_accum_type): Moved to stor-layout.h.
4827 (make_unsigned_fract_type): Moved to stor-layout.h.
4828 (make_unsigned_type): Moved to stor-layout.h.
4829 (mark_decl_referenced): Moved to varasm.h.
4830 (mark_referenced): Moved to varasm.h.
4831 (may_negate_without_overflow_p): Moved to fold-const.h.
4832 (maybe_get_identifier): Moved to stringpool.h.
4833 (merge_ranges): Moved to fold-const.h.
4834 (merge_weak): Moved to varasm.h.
4835 (mode_for_size_tree): Moved to stor-layout.h.
4836 (multiple_of_p): Moved to fold-const.h.
4837 (must_pass_in_stack_var_size): Moved to calls.h.
4838 (must_pass_in_stack_var_size_or_pad): Moved to calls.h.
4839 (native_encode_expr): Moved to fold-const.h.
4840 (native_interpret_expr): Moved to fold-const.h.
4841 (non_lvalue): Moved to fold-const.h.
4842 (non_lvalue_loc): Moved to fold-const.h.
4843 (normalize_offset): Moved to stor-layout.h.
4844 (normalize_rli): Moved to stor-layout.h.
4845 (notice_global_symbol): Moved to varasm.h.
4846 (omit_one_operand): Moved to fold-const.h.
4847 (omit_one_operand_loc): Moved to fold-const.h.
4848 (omit_two_operands): Moved to fold-const.h.
4849 (omit_two_operands_loc): Moved to fold-const.h.
4850 (operand_equal_p): Moved to tree-data-ref.h.
4851 (parse_input_constraint): Moved to stmt.h.
4852 (parse_output_constraint): Moved to stmt.h.
4853 (place_field): Moved to stor-layout.h.
4854 (pop_function_context): Moved to function.h.
4855 (pop_temp_slots): Moved to function.h.
4856 (pos_from_bit): Moved to stor-layout.h.
4857 (preserve_temp_slots): Moved to function.h.
4858 (print_node): Moved to print-tree.h.
4859 (print_node_brief): Moved to print-tree.h.
4860 (print_rtl): Moved to rtl.h.
4861 (process_pending_assemble_externals): Moved to varasm.h.
4862 (ptr_difference_const): Moved to fold-const.h.
4863 (push_function_context): Moved to function.h.
4864 (push_struct_function): Moved to function.h.
4865 (push_temp_slots): Moved to function.h.
4866 (record_tm_replacement): Moved to trans-mem.h.
4867 (relayout_decl): Moved to stor-layout.h.
4868 (resolve_asm_operand_names): Moved to stmt.h.
4869 (resolve_unique_section): Moved to varasm.h.
4870 (rli_size_so_far): Moved to stor-layout.h.
4871 (rli_size_unit_so_far): Moved to stor-layout.h.
4872 (round_down): Moved to fold-const.h.
4873 (round_down_loc): Moved to fold-const.h.
4874 (round_up): Moved to fold-const.h.
4875 (round_up_loc): Moved to fold-const.h.
4876 (set_decl_incoming_rtl): Moved to emit-rtl.h.
4877 (set_decl_rtl): Moved to tree.h.
4878 (set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
4879 (set_user_assembler_name): Moved to varasm.h.
4880 (setjmp_call_p): Moved to calls.h.
4881 (size_binop): Moved to fold-const.h.
4882 (size_binop_loc): Moved to fold-const.h.
4883 (size_diffop): Moved to fold-const.h.
4884 (size_diffop_loc): Moved to fold-const.h.
4885 (size_int_kind): Moved to fold-const.h.
4886 (stack_protect_epilogue): Moved to function.h.
4887 (start_record_layout): Moved to stor-layout.h.
4888 (supports_one_only): Moved to varasm.h.
4889 (swap_tree_comparison): Moved to fold-const.h.
4890 (tm_malloc_replacement): Moved to trans-mem.h.
4891 (tree build_fold_addr_expr_loc): Moved to fold-const.h.
4892 (tree build_invariant_address): Moved to fold-const.h.
4893 (tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
4894 (tree_binary_nonzero_warnv_p): Moved to fold-const.h.
4895 (tree_call_nonnegative_warnv_p): Moved to fold-const.h.
4896 (tree_expr_nonnegative_p): Moved to fold-const.h.
4897 (tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
4898 (tree_output_constant_def): Moved to varasm.h.
4899 (tree_overlaps_hard_reg_set): Moved to stmt.h.
4900 (tree_single_nonnegative_warnv_p): Moved to fold-const.h.
4901 (tree_single_nonzero_warnv_p): Moved to fold-const.h.
4902 (tree_swap_operands_p): Moved to fold-const.h.
4903 (tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
4904 (tree_unary_nonzero_warnv_p): Moved to fold-const.h.
4905 (update_alignment_for_field): Moved to stor-layout.h.
4906 (use_register_for_decl): Moved to function.h.
4907 (variable_size): Moved to rtl.h.
4908 (vector_type_mode): Moved to stor-layout.h.
4909 * cgraph.h: Corresponding changes.
4910 * emit-rtl.h: Corresponding changes.
4911 * expr.h: Corresponding changes.
4912 * function.h: Corresponding changes.
4913 * optabs.h: Corresponding changes.
4914 * trans-mem.h: Corresponding changes.
4915 Protect against multiple inclusion.
4916 * tree-inline.h: Corresponding changes.
4917 * tree-iterator.h: Corresponding changes.
4918 * tree-dfa.h: Include expr.h.
4919 * tree-ssanames.h: Include stringpool.h.
4920 * attribs.h: New file.
4921 * calls.h: New file.
4922 * fold-const.h: New file.
4923 * gcc-symtab.h: New file.
4924 * print-rtl.h: New file.
4925 * print-tree.h: New file.
4926 * stmt.h: New file.
4927 * stor-layout.h: New file.
4928 * strinpool.h: New file.
4929 * tree-nested.h: New file
4930 * tree-object-size.h: New file.
4931 * varasm.h: New file.
4932
4933 2013-11-14 Diego Novillo <dnovillo@google.com>
4934
4935 * alias.c: Include varasm.h.
4936 Include expr.h.
4937 * asan.c: Include calls.h.
4938 Include stor-layout.h.
4939 Include varasm.h.
4940 * attribs.c: Include stringpool.h.
4941 Include attribs.h.
4942 Include stor-layout.h.
4943 * builtins.c: Include stringpool.h.
4944 Include stor-layout.h.
4945 Include calls.h.
4946 Include varasm.h.
4947 Include tree-object-size.h.
4948 * calls.c: Include stor-layout.h.
4949 Include varasm.h.
4950 Include stringpool.h.
4951 Include attribs.h.
4952 * cfgexpand.c: Include stringpool.h.
4953 Include varasm.h.
4954 Include stor-layout.h.
4955 Include stmt.h.
4956 Include print-tree.h.
4957 * cgraph.c: Include varasm.h.
4958 Include calls.h.
4959 Include print-tree.h.
4960 * cgraphclones.c: Include stringpool.h.
4961 Include function.h.
4962 Include emit-rtl.h.
4963 Move inclusion of rtl.h earlier in the file.
4964 * cgraphunit.c: Include varasm.h.
4965 Include stor-layout.h.
4966 Include stringpool.h.
4967 * cilk-common.c: Include stringpool.h.
4968 Include stor-layout.h.
4969 * combine.c: Include stor-layout.h.
4970 * config/aarch64/aarch64-builtins.c: Include stor-layout.h.
4971 Include stringpool.h.
4972 Include calls.h.
4973 * config/aarch64/aarch64.c: Include stringpool.h.
4974 Include stor-layout.h.
4975 Include calls.h.
4976 Include varasm.h.
4977 * config/alpha/alpha.c: Include stor-layout.h.
4978 Include calls.h.
4979 Include varasm.h.
4980 * config/arc/arc.c: Include varasm.h.
4981 Include stor-layout.h.
4982 Include stringpool.h.
4983 Include calls.h.
4984 * config/arm/arm.c: Include stringpool.h.
4985 Include stor-layout.h.
4986 Include calls.h.
4987 Include varasm.h.
4988 * config/avr/avr-c.c: Include stor-layout.h.
4989 * config/avr/avr-log.c: Include print-tree.h.
4990 * config/avr/avr.c: Include print-tree.h.
4991 Include calls.h.
4992 Include stor-layout.h.
4993 Include stringpool.h.
4994 * config/bfin/bfin.c: Include varasm.h.
4995 Include calls.h.
4996 * config/c6x/c6x.c: Include stor-layout.h.
4997 Include varasm.h.
4998 Include calls.h.
4999 Include stringpool.h.
5000 * config/cr16/cr16.c: Include stor-layout.h.
5001 Include calls.h.
5002 * config/cris/cris.c: Include varasm.h.
5003 Include stor-layout.h.
5004 Include calls.h.
5005 Include stmt.h.
5006 * config/darwin.c: Include stringpool.h.
5007 Include varasm.h.
5008 Include stor-layout.h.
5009 * config/epiphany/epiphany.c: Include stor-layout.h.
5010 Include varasm.h.
5011 Include calls.h.
5012 Include stringpool.h.
5013 * config/fr30/fr30.c: Include stor-layout.h.
5014 Include varasm.h.
5015 * config/frv/frv.c: Include varasm.h.
5016 Include stor-layout.h.
5017 Include stringpool.h.
5018 * config/h8300/h8300.c: Include stor-layout.h.
5019 Include varasm.h.
5020 Include calls.h.
5021 Include stringpool.h.
5022 * config/i386/i386.c: Include stringpool.h.
5023 Include attribs.h.
5024 Include calls.h.
5025 Include stor-layout.h.
5026 Include varasm.h.
5027 * config/i386/winnt-cxx.c: Include stringpool.h.
5028 Include attribs.h.
5029 * config/i386/winnt.c: Include stringpool.h.
5030 Include varasm.h.
5031 * config/ia64/ia64-c.c: Include stringpool.h.
5032 * config/ia64/ia64.c: Include stringpool.h.
5033 Include stor-layout.h.
5034 Include calls.h.
5035 Include varasm.h.
5036 * config/iq2000/iq2000.c: Include stor-layout.h.
5037 Include calls.h.
5038 Include varasm.h.
5039 * config/lm32/lm32.c: Include calls.h.
5040 * config/m32c/m32c.c: Include stor-layout.h.
5041 Include varasm.h.
5042 Include calls.h.
5043 * config/m32r/m32r.c: Include stor-layout.h.
5044 Include varasm.h.
5045 Include stringpool.h.
5046 Include calls.h.
5047 * config/m68k/m68k.c: Include calls.h.
5048 Include stor-layout.h.
5049 Include varasm.h.
5050 * config/mcore/mcore.c: Include stor-layout.h.
5051 Include varasm.h.
5052 Include stringpool.h.
5053 Include calls.h.
5054 * config/mep/mep.c: Include varasm.h.
5055 Include calls.h.
5056 Include stringpool.h.
5057 Include stor-layout.h.
5058 * config/microblaze/microblaze.c: Include varasm.h.
5059 Include stor-layout.h.
5060 Include calls.h.
5061 * config/mips/mips.c: Include varasm.h.
5062 Include stringpool.h.
5063 Include stor-layout.h.
5064 Include calls.h.
5065 * config/mmix/mmix.c: Include varasm.h.
5066 Include stor-layout.h.
5067 Include calls.h.
5068 * config/mn10300/mn10300.c: Include stor-layout.h.
5069 Include varasm.h.
5070 Include calls.h.
5071 * config/moxie/moxie.c: Include stor-layout.h.
5072 Include varasm.h.
5073 Include calls.h.
5074 * config/msp430/msp430.c: Include stor-layout.h.
5075 Include calls.h.
5076 * config/nds32/nds32.c: Include stor-layout.h.
5077 Include varasm.h.
5078 Include calls.h.
5079 * config/pa/pa.c: Include stor-layout.h.
5080 Include stringpool.h.
5081 Include varasm.h.
5082 Include calls.h.
5083 * config/pdp11/pdp11.c: Include stor-layout.h.
5084 Include varasm.h.
5085 Include calls.h.
5086 * config/picochip/picochip.c: Include calls.h.
5087 Include stor-layout.h.
5088 Include stringpool.h.
5089 Include varasm.h.
5090 * config/rl78/rl78.c: Include varasm.h.
5091 Include stor-layout.h.
5092 Include calls.h.
5093 * config/rs6000/rs6000-c.c: Include stor-layout.h.
5094 Include stringpool.h.
5095 * config/rs6000/rs6000.c: Include stringpool.h.
5096 Include stor-layout.h.
5097 Include calls.h.
5098 Include print-tree.h.
5099 Include varasm.h.
5100 * config/rx/rx.c: Include varasm.h.
5101 Include stor-layout.h.
5102 Include calls.h.
5103 * config/s390/s390.c: Include print-tree.h.
5104 Include stringpool.h.
5105 Include stor-layout.h.
5106 Include varasm.h.
5107 Include calls.h.
5108 * config/score/score.c: Include stringpool.h.
5109 Include calls.h.
5110 Include varasm.h.
5111 Include stor-layout.h.
5112 * config/sh/sh-c.c: Include stringpool.h.
5113 Include attribs.h.h.
5114 * config/sh/sh.c: Include stringpool.h.
5115 Include stor-layout.h.
5116 Include calls.h.
5117 Include varasm.h.
5118 * config/sol2-c.c: Include stringpool.h.
5119 Include attribs.h.
5120 * config/sol2-cxx.c: Include stringpool.h.
5121 * config/sol2.c: Include stringpool.h.
5122 Include varasm.h.
5123 * config/sparc/sparc.c: Include stringpool.h.
5124 Include stor-layout.h.
5125 Include calls.h.
5126 Include varasm.h.
5127 * config/spu/spu-c.c: Include stringpool.h.
5128 * config/spu/spu.c: Include stringpool.h.
5129 Include stor-layout.h.
5130 Include calls.h.
5131 Include varasm.h.
5132 * config/stormy16/stormy16.c: Include stringpool.h.
5133 Include stor-layout.h.
5134 Include varasm.h.
5135 Include calls.h.
5136 * config/tilegx/tilegx.c: Include stringpool.h.
5137 Include stor-layout.h.
5138 Include varasm.h.
5139 Include calls.h.
5140 * config/tilepro/tilepro.c: Include stringpool.h.
5141 Include stor-layout.h.
5142 Include varasm.h.
5143 Include calls.h.
5144 * config/v850/v850-c.c: Include stringpool.h.
5145 Include attribs.h.
5146 * config/v850/v850.c: Include stringpool.h.
5147 Include stor-layout.h.
5148 Include varasm.h.
5149 Include calls.h.
5150 * config/vax/vax.c: Include calls.h.
5151 Include varasm.h.
5152 * config/vms/vms.c: Include stringpool.h.
5153 * config/vxworks.c: Include stringpool.h.
5154 * config/xtensa/xtensa.c: Include stringpool.h.
5155 Include stor-layout.h.
5156 Include calls.h.
5157 Include varasm.h.
5158 * convert.c: Include stor-layout.h.
5159 * coverage.c: Include stringpool.h.
5160 Include stor-layout.h.
5161 * dbxout.c: Include varasm.h.
5162 Include stor-layout.h.
5163 * dojump.c: Include stor-layout.h.
5164 * dse.c: Include stor-layout.h.
5165 * dwarf2asm.c: Include stringpool.h.
5166 Include varasm.h.
5167 * dwarf2cfi.c: Include stor-layout.h.
5168 * dwarf2out.c: Include rtl.h.
5169 Include stringpool.h.
5170 Include stor-layout.h.
5171 Include varasm.h.
5172 Include function.h.
5173 Include emit-rtl.h.
5174 Move inclusion of rtl.h earlier in the file.
5175 * emit-rtl.c: Include varasm.h.
5176 * except.c: Include stringpool.h.
5177 Include stor-layout.h.
5178 * explow.c: Include stor-layout.h.
5179 * expmed.c: Include stor-layout.h.
5180 * expr.c: Include stringpool.h.
5181 Include stor-layout.h.
5182 Include attribs.h.
5183 Include varasm.h.
5184 * final.c: Include varasm.h.
5185 * fold-const.c: Include stor-layout.h.
5186 Include calls.h.
5187 Include tree-iterator.h.
5188 * function.c: Include stor-layout.h.
5189 Include varasm.h.
5190 Include stringpool.h.
5191 * genattrtab.c (write_header): Emit includes for varasm.h,
5192 stor-layout.h and calls.h.
5193 * genautomata.c (main): Likewise.
5194 * genemit.c: Likewise.
5195 * genopinit.c: Likewise.
5196 * genoutput.c (output_prologue): Likewise.
5197 * genpeep.c: Likewise.
5198 * genpreds.c (write_insn_preds_c): Likewise.
5199 * gengtype.c (open_base_files): Add stringpool.h.
5200 * gimple-expr.c: Include stringpool.h.
5201 Include stor-layout.h.
5202 * gimple-fold.c: Include stringpool.h.
5203 Include expr.h.
5204 Include stmt.h.
5205 Include stor-layout.h.
5206 * gimple-low.c: Include tree-nested.h.
5207 Include calls.h.
5208 * gimple-pretty-print.c: Include stringpool.h.
5209 * gimple-ssa-strength-reduction.c: Include stor-layout.h.
5210 Include expr.h.
5211 * gimple-walk.c: Include stmt.h.
5212 * gimple.c: Include calls.h.
5213 Include stmt.h.
5214 Include stor-layout.h.
5215 * gimplify.c: Include stringpool.h.
5216 Include calls.h.
5217 Include varasm.h.
5218 Include stor-layout.h.
5219 Include stmt.h.
5220 Include print-tree.h.
5221 Include expr.h.
5222 * gimplify-me.c: Include stmt.h
5223 Include stor-layout.h
5224 * internal-fn.c: Include stor-layout.h.
5225 * ipa-devirt.c: Include print-tree.h.
5226 Include calls.h.
5227 * ipa-inline-analysis.c: Include stor-layout.h.
5228 Include stringpool.h.
5229 Include print-tree.h.
5230 * ipa-inline.c: Include trans-mem.h.
5231 Include calls.h.
5232 * ipa-prop.c: Include expr.h.
5233 Include stor-layout.h.
5234 Include print-tree.h.
5235 * ipa-pure-const.c: Include print-tree.h.
5236 Include calls.h.
5237 * ipa-reference.c: Include calls.h.
5238 * ipa-split.c: Include stringpool.h.
5239 Include expr.h.
5240 Include calls.h.
5241 * ipa.c: Include calls.h.
5242 Include stringpool.h.
5243 * langhooks.c: Include stringpool.h.
5244 Include attribs.h.
5245 * lto-cgraph.c: Include stringpool.h.
5246 * lto-streamer-in.c: Include stringpool.h.
5247 * lto-streamer-out.c: Include stor-layout.h.
5248 Include stringpool.h.
5249 * omp-low.c: Include stringpool.h.
5250 Include stor-layout.h.
5251 Include expr.h.
5252 * optabs.c: Include stor-layout.h.
5253 Include stringpool.h.
5254 Include varasm.h.
5255 * passes.c: Include varasm.h.
5256 * predict.c: Include calls.h.
5257 * print-rtl.c: Include print-tree.h.
5258 * print-tree.c: Include varasm.h.
5259 Include print-rtl.h.
5260 Include stor-layout.h.
5261 * realmpfr.c: Include stor-layout.h.
5262 * reg-stack.c: Include varasm.h.
5263 * sdbout.c: Include varasm.h.
5264 Include stor-layout.h.
5265 * simplify-rtx.c: Include varasm.h.
5266 * stmt.c: Include varasm.h.
5267 Include stor-layout.h.
5268 * stor-layout.c: Include stor-layout.h.
5269 Include stringpool.h.
5270 Include varasm.h.
5271 Include print-tree.h.
5272 * symtab.c: Include rtl.h.
5273 Include print-tree.h.
5274 Include varasm.h.
5275 Include function.h.
5276 Include emit-rtl.h.
5277 * targhooks.c: Include stor-layout.h.
5278 Include varasm.h.
5279 * toplev.c: Include varasm.h.
5280 Include tree-inline.h.
5281 * trans-mem.c: Include calls.h.
5282 Include function.h.
5283 Include rtl.h.
5284 Include emit-rtl.h.
5285 * tree-affine.c: Include expr.h.
5286 * tree-browser.c: Include print-tree.h.
5287 * tree-call-cdce.c: Include stor-layout.h.
5288 * tree-cfg.c: Include trans-mem.h.
5289 Include stor-layout.h.
5290 Include print-tree.h.
5291 * tree-complex.c: Include stor-layout.h.
5292 * tree-data-ref.c: Include expr.h.
5293 * tree-dfa.c: Include stor-layout.h.
5294 * tree-eh.c: Include expr.h.
5295 Include calls.h.
5296 * tree-emutls.c: Include stor-layout.h.
5297 Include varasm.h.
5298 * tree-if-conv.c: Include stor-layout.h.
5299 * tree-inline.c: Include stor-layout.h.
5300 Include calls.h.
5301 * tree-loop-distribution.c: Include stor-layout.h.
5302 * tree-nested.c: Include stringpool.h.
5303 Include stor-layout.h.
5304 * tree-object-size.c: Include tree-object-size.h.
5305 * tree-outof-ssa.c: Include stor-layout.h.
5306 * tree-parloops.c: Include stor-layout.h.
5307 Include tree-nested.h.
5308 * tree-pretty-print.c: Include stor-layout.h.
5309 Include expr.h.
5310 * tree-profile.c: Include varasm.h.
5311 Include tree-nested.h.
5312 * tree-scalar-evolution.c: Include expr.h.
5313 * tree-sra.c: Include stor-layout.h.
5314 * tree-ssa-address.c: Include stor-layout.h.
5315 * tree-ssa-ccp.c: Include stor-layout.h.
5316 * tree-ssa-dce.c: Include calls.h.
5317 * tree-ssa-dom.c: Include stor-layout.h.
5318 * tree-ssa-forwprop.c: Include stor-layout.h.
5319 * tree-ssa-ifcombine.c: Include stor-layout.h.
5320 * tree-ssa-loop-ivopts.c: Include stor-layout.h.
5321 * tree-ssa-loop-niter.c: Include calls.h.
5322 Include expr.h.
5323 * tree-ssa-loop-prefetch.c: Include stor-layout.h.
5324 * tree-ssa-math-opts.c: Include stor-layout.h.
5325 * tree-ssa-operands.c: Include stmt.h.
5326 Include print-tree.h.
5327 * tree-ssa-phiopt.c: Include stor-layout.h.
5328 * tree-ssa-reassoc.c: Include stor-layout.h.
5329 * tree-ssa-sccvn.c: Include stor-layout.h.
5330 * tree-ssa-sink.c: Include stor-layout.h.
5331 * tree-ssa-strlen.c: Include stor-layout.h.
5332 * tree-ssa-structalias.c: Include stor-layout.h.
5333 Include stmt.h.
5334 * tree-ssa-tail-merge.c: Include stor-layout.h.
5335 Include trans-mem.h.
5336 * tree-ssa-uncprop.c: Include stor-layout.h.
5337 * tree-ssa.c: Include stor-layout.h.
5338 * tree-ssanames.c: Include stor-layout.h.
5339 * tree-streamer-in.c: Include stringpool.h.
5340 * tree-streamer-out.c: Include stor-layout.h.
5341 * tree-switch-conversion.c: Include varasm.h.
5342 Include stor-layout.h.
5343 * tree-tailcall.c: Include stor-layout.h.
5344 * tree-vect-data-refs.c: Include stor-layout.h.
5345 * tree-vect-generic.c: Include stor-layout.h.
5346 * tree-vect-loop.c: Include stor-layout.h.
5347 * tree-vect-patterns.c: Include stor-layout.h.
5348 * tree-vect-slp.c: Include stor-layout.h.
5349 * tree-vect-stmts.c: Include stor-layout.h.
5350 * tree-vectorizer.c: Include stor-layout.h.
5351 * tree-vrp.c: Include stor-layout.h.
5352 Include calls.h.
5353 * tree.c: Include stor-layout.h.
5354 Include calls.h.
5355 Include attribs.h.
5356 Include varasm.h.
5357 * tsan.c: Include expr.h.
5358 * ubsan.c: Include stor-layout.h.
5359 Include stringpool.h.
5360 * value-prof.c: Include tree-nested.h.
5361 Include calls.h.
5362 * var-tracking.c: Include varasm.h.
5363 Include stor-layout.h.
5364 * varasm.c: Include stor-layout.h.
5365 Include stringpool.h.
5366 Include gcc-symtab.h.
5367 Include varasm.h.
5368 * varpool.c: Include varasm.h.
5369 * vmsdbgout.c: Include varasm.h.
5370 * xcoffout.c: Include varasm.h.
5371
5372 2013-11-14 Joern Rennecke <joern.rennecke@embecosm.com>
5373
5374 * config/arc/arc.md (doloop_begin_i): Remove extra alignment;
5375 use (.&-4) idiom.
5376
5377 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5378
5379 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
5380
5381 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5382 Alan Modra <amodra@gmail.com>
5383
5384 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
5385 (RS6000_SAVE_TOC): Remove.
5386 (RS6000_TOC_SAVE_SLOT): New macro.
5387 * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
5388 (rs6000_parm_start): Use it.
5389 (rs6000_function_arg_advance_1): Likewise.
5390 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
5391 (rs6000_emit_epilogue): Likewise.
5392 (rs6000_call_aix): Likewise.
5393 (rs6000_output_function_prologue): Do not save/restore r11
5394 around calling _mcount for ABI_ELFv2.
5395
5396 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5397 Alan Modra <amodra@gmail.com>
5398
5399 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
5400 Add prototype.
5401 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
5402 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
5403 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
5404 (rs6000_function_parms_need_stack): Likewise.
5405 (rs6000_reg_parm_stack_space): Likewise.
5406 (rs6000_function_arg): Do not replace BLKmode by Pmode when
5407 returning a register argument.
5408
5409 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5410 Michael Gschwind <mkg@us.ibm.com>
5411
5412 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
5413 (ALTIVEC_ARG_MAX_RETURN): Likewise.
5414 (FUNCTION_VALUE_REGNO_P): Use them.
5415 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
5416 (rs6000_return_in_msb): New function.
5417 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
5418 Handle aggregates of up to 16 bytes for ELFv2.
5419 (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
5420
5421 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5422 Michael Gschwind <mkg@us.ibm.com>
5423
5424 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
5425 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
5426 (rs6000_discover_homogeneous_aggregate): Likewise.
5427 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
5428 (rs6000_function_arg_advance_1): Likewise.
5429 (rs6000_function_arg): Likewise.
5430 (rs6000_arg_partial_bytes): Likewise.
5431 (rs6000_psave_function_arg): Handle BLKmode arguments.
5432
5433 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5434 Michael Gschwind <mkg@us.ibm.com>
5435
5436 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
5437 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
5438 (rs6000_discover_homogeneous_aggregate): Likewise.
5439 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
5440 (rs6000_function_arg_advance_1): Likewise.
5441 (rs6000_function_arg): Likewise.
5442 (rs6000_arg_partial_bytes): Likewise.
5443 (rs6000_psave_function_arg): Handle BLKmode arguments.
5444
5445 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5446
5447 * config/rs6000/rs6000.c (machine_function): New member
5448 r2_setup_needed.
5449 (rs6000_emit_prologue): Set r2_setup_needed if necessary.
5450 (rs6000_output_mi_thunk): Set r2_setup_needed.
5451 (rs6000_output_function_prologue): Output global entry point
5452 prologue and local entry point marker if needed for ABI_ELFv2.
5453 Output -mprofile-kernel code here.
5454 (output_function_profiler): Do not output -mprofile-kernel
5455 code here; moved to rs6000_output_function_prologue.
5456 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
5457
5458 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
5459 (rs6000_output_function_entry): Likewise.
5460 (rs6000_assemble_integer): Likewise.
5461 (rs6000_elf_encode_section_info): Likewise.
5462 (rs6000_elf_declare_function_name): Do not create dot symbols
5463 or .opd section for ABI_ELFv2.
5464
5465 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
5466 (rs6000_trampoline_init): Likewise.
5467 (rs6000_elf_file_end): Call file_end_indicate_exec_stack for ABI_ELFv2.
5468
5469 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check
5470 for function descriptors in ABI_ELFv2.
5471
5472 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
5473 on ABI_AIX only, not ABI_ELFv2.
5474 ("*call_value_indirect_aix<mode>"): Likewise.
5475 ("*call_indirect_elfv2<mode>"): New pattern.
5476 ("*call_value_indirect_elfv2<mode>"): Likewise.
5477
5478 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
5479 check for function descriptors in ABI_ELFv2.
5480 ("current_file_function_operand"): Likewise.
5481
5482 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
5483 (toc): Undefine.
5484 (FUNC_NAME): Define ELFv2 variant.
5485 (JUMP_TARGET): Likewise.
5486 (FUNC_START): Likewise.
5487 (HIDDEN_FUNC): Likewise.
5488 (FUNC_END): Likeiwse.
5489
5490 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5491
5492 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
5493 and --with-abi=elfv2.
5494 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
5495 * config/rs6000/rs6000.opt (mabi=elfv1): New option.
5496 (mabi=elfv2): Likewise.
5497 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
5498 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
5499 if !RS6000_BI_ARCH.
5500 (ELFv2_ABI_CHECK): New macro.
5501 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
5502 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
5503 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
5504 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
5505 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
5506
5507 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
5508 (debug_stack_info): Likewise.
5509 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
5510 (rs6000_legitimize_tls_address): Likewise.
5511 (rs6000_conditional_register_usage): Likewise.
5512 (rs6000_emit_move): Likewise.
5513 (init_cumulative_args): Likewise.
5514 (rs6000_function_arg_advance_1): Likewise.
5515 (rs6000_function_arg): Likewise.
5516 (rs6000_arg_partial_bytes): Likewise.
5517 (rs6000_output_function_entry): Likewise.
5518 (rs6000_assemble_integer): Likewise.
5519 (rs6000_savres_strategy): Likewise.
5520 (rs6000_stack_info): Likewise.
5521 (rs6000_function_ok_for_sibcall): Likewise.
5522 (rs6000_emit_load_toc_table): Likewise.
5523 (rs6000_savres_routine_name): Likewise.
5524 (ptr_regno_for_savres): Likewise.
5525 (rs6000_emit_prologue): Likewise.
5526 (rs6000_emit_epilogue): Likewise.
5527 (rs6000_output_function_epilogue): Likewise.
5528 (output_profile_hook): Likewise.
5529 (output_function_profiler): Likewise.
5530 (rs6000_trampoline_size): Likewise.
5531 (rs6000_trampoline_init): Likewise.
5532 (rs6000_elf_output_toc_section_asm_op): Likewise.
5533 (rs6000_elf_encode_section_info): Likewise.
5534 (rs6000_elf_reloc_rw_mask): Likewise.
5535 (rs6000_elf_declare_function_name): Likewise.
5536 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
5537 except that rs6000_compat_align_parm is always assumed false.
5538 (rs6000_gimplify_va_arg): Likewise.
5539 (rs6000_call_aix): Update comment.
5540 (rs6000_sibcall_aix): Likewise.
5541 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
5542 Treat ABI_ELFv2 the same as ABI_AIX.
5543 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
5544 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
5545 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
5546 ("load_toc_aix_si"): Likewise.
5547 ("load_toc_aix_di"): Likewise.
5548 ("call"): Likewise.
5549 ("call_value"): Likewise.
5550 ("*call_local_aix<mode>"): Likewise.
5551 ("*call_value_local_aix<mode>"): Likewise.
5552 ("*call_nonlocal_aix<mode>"): Likewise.
5553 ("*call_value_nonlocal_aix<mode>"): Likewise.
5554 ("*call_indirect_aix<mode>"): Likewise.
5555 ("*call_value_indirect_aix<mode>"): Likewise.
5556 ("sibcall"): Likewise.
5557 ("sibcall_value"): Likewise.
5558 ("*sibcall_aix<mode>"): Likewise.
5559 ("*sibcall_value_aix<mode>"): Likewise.
5560 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
5561 ("current_file_function_operand"): Likewise.
5562
5563 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5564
5565 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
5566 by making use of the fact that for vector / floating point arguments
5567 passed both in VRs/FPRs and in the fixed parameter area, the partial
5568 bytes mechanism is in fact not used.
5569
5570 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5571
5572 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
5573 (rs6000_finish_function_arg): Likewise.
5574 (rs6000_function_arg): Use rs6000_psave_function_arg and
5575 rs6000_finish_function_arg to handle both vector and floating
5576 point arguments that are also passed in GPRs / the stack.
5577
5578 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5579
5580 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
5581 (USE_ALTIVEC_FOR_ARG_P): Likewise.
5582 (rs6000_darwin64_record_arg_advance_recurse): Update uses.
5583 (rs6000_function_arg_advance_1):Likewise.
5584 (rs6000_darwin64_record_arg_recurse): Likewise.
5585 (rs6000_function_arg): Likewise.
5586 (rs6000_arg_partial_bytes): Likewise.
5587
5588 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5589
5590 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
5591 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
5592 (rs6000_savres_strategy): Likewise.
5593 (rs6000_return_addr): Likewise.
5594 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
5595 testing for ABI_V4 (since ABI_DARWIN is impossible here).
5596 (rs6000_emit_prologue): Likewise.
5597 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
5598 (rs6000_elf_declare_function_name): Remove duplicated test.
5599 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
5600 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
5601 ("load_toc_v4_PIC_1_normal"): Likewise.
5602 ("load_toc_v4_PIC_1_476"): Likewise.
5603 ("load_toc_v4_PIC_1b"): Likewise.
5604 ("load_toc_v4_PIC_1b_normal"): Likewise.
5605 ("load_toc_v4_PIC_1b_476"): Likewise.
5606 ("load_toc_v4_PIC_2"): Likewise.
5607 ("load_toc_v4_PIC_3b"): Likewise.
5608 ("load_toc_v4_PIC_3c"): Likewise.
5609 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
5610 (RS6000_SAVE_AREA): Likewise.
5611 (FP_ARG_MAX_REG): Likewise.
5612 (RETURN_ADDRESS_OFFSET): Likewise.
5613 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
5614 of ABI_AIX.
5615 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
5616 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5617
5618 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5619
5620 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
5621 (rs6000_call_aix): ... this. Handle both direct and indirect calls.
5622 Create call insn directly instead of via various gen_... routines.
5623 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
5624 (rs6000_sibcall_aix): New function.
5625 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
5626 (TOC_SAVE_OFFSET_64BIT): Likewise.
5627 (AIX_FUNC_DESC_TOC_32BIT): Likewise.
5628 (AIX_FUNC_DESC_TOC_64BIT): Likewise.
5629 (AIX_FUNC_DESC_SC_32BIT): Likewise.
5630 (AIX_FUNC_DESC_SC_64BIT): Likewise.
5631 ("call" expander): Call rs6000_call_aix.
5632 ("call_value" expander): Likewise.
5633 ("call_indirect_aix<ptrsize>"): Replace this pattern ...
5634 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
5635 ("*call_indirect_aix<mode>"): ... by this insn pattern.
5636 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
5637 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
5638 ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
5639 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
5640 ("*call_nonlocal_aix<mode>"): ... this pattern.
5641 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
5642 ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
5643 ("*call_local_aix<mode>"): New insn pattern.
5644 ("*call_value_local_aix<mode>"): Likewise.
5645 ("sibcall" expander): Call rs6000_sibcall_aix.
5646 ("sibcall_value" expander): Likewise. Move earlier in file.
5647 ("*sibcall_nonlocal_aix<mode>"): Replace by ...
5648 ("*sibcall_aix<mode>"): ... this pattern.
5649 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
5650 ("*sibcall_value_aix<mode>"): ... this pattern.
5651 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
5652 (rs6000_call_aix): Add prototype.
5653 (rs6000_sibcall_aix): Likewise.
5654
5655 2013-11-14 Jakub Jelinek <jakub@redhat.com>
5656
5657 PR sanitizer/59122
5658 * asan.c (asan_emit_stack_protection): Ensure -fsection-anchors
5659 isn't confused by the artificial decl.
5660
5661 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5662
5663 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
5664 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
5665 Instead, add USEs of all modified call-saved CR fields to the
5666 insn storing the result to the stack slot, and provide an
5667 appropriate REG_FRAME_RELATED_EXPR for that insn.
5668 * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
5669 * config/rs6000/predicates.md ("crsave_operation"): New predicate.
5670
5671 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5672 Alan Modra <amodra@gmail.com>
5673
5674 * function.c (assign_parms): Use all.reg_parm_stack_space instead
5675 of re-evaluating REG_PARM_STACK_SPACE target macro.
5676 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it
5677 instead of evaluating target macro REG_PARM_STACK_SPACE every time.
5678 (assign_parm_find_entry_rtl): Update call.
5679 * calls.c (initialize_argument_information): Update call.
5680 (emit_library_call_value_1): Likewise.
5681 * expr.h (locate_and_pad_parm): Update prototype.
5682
5683 2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5684
5685 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
5686 arguments.
5687
5688 2013-11-14 DJ Delorie <dj@redhat.com>
5689
5690 * config/rx/rx.c (rx_mode_dependent_address_p): Allow offsets up
5691 to 16 bits.
5692
5693 2013-11-14 Jeff Law <law@redhat.com>
5694
5695 * tree-ssa-threadedge.c (thread_through_normal_block): Only push the
5696 EDGE_START_JUMP_THREAD marker if the jump threading path is empty.
5697
5698 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
5699
5700 * doc/invoke.texi: Update documentation for AArch64's -mcpu
5701 and -mtune options.
5702
5703 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
5704
5705 * config/aarch64/aarch64-cores.def (example-1): Remove.
5706 (example-2): Likewise.
5707 * config/aarch64/aarch64-tune.md: Regenerate.
5708 * config/aarch64/aarch64.md: Do not include "large.md" or "small.md".
5709 (generic_sched): Remove "large", "small".
5710 * config/aarch64/large.md: Delete.
5711 * config/aarch64/small.md: Delete.
5712
5713 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
5714
5715 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15.
5716 * config/aarch64/aarch64-tune.md: Regenerate.
5717 * config/aarch64/aarch64.md: Include cortex-a15 pipeline model.
5718 (generic_sched): "no" if we are tuning for cortexa15.
5719 * config/arm/cortex-a15.md: Include cortex-a15-neon.md by
5720 relative path.
5721
5722 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
5723
5724 * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53.
5725 * config/aarch64/aarch64.md: Do not include aarch64-generic.md.
5726 * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53.
5727 (all_cores): Use cortexa53 when tuning for "generic".
5728 (aarch64_override_options): Fix comment.
5729 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53.
5730 * config/aarch64/aarch64-generic.md: Delete.
5731
5732 2013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
5733
5734 * config/aarch64/aarch64.c (all_architectures): Remove "generic".
5735
5736 2013-11-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5737
5738 * config/aarch64/aarch64.c: Include aarch-cost-tables.h.
5739 (generic_rtx_cost_table): Remove.
5740 (aarch64_rtx_costs): Use fields from cpu_cost_table.
5741 * config/aarch64/aarch64-protos.h (tune_params): Use cpu_cost_table for
5742 insn_extra_cost.
5743 (cpu_rtx_cost_table): Remove.
5744
5745 2013-11-14 Julian Brown <julian@codesourcery.com>
5746 Joey Ye <joey.ye@arm.com>
5747
5748 * config/arm/arm.c (arm_cortex_m_branch_cost): New.
5749 (arm_v7m_tune): New.
5750 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_9e_tune,
5751 arm_v6t2_tune, arm_cortex_tune, arm_cortex_a15_tune,
5752 arm_cortex_a5_tune, arm_v6m_tune): Add comments for Sched adj cost.
5753 * config/arm/arm-cores.def (cortex-m4, cortex-m3): Use arm_v7m_tune.
5754
5755 2013-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
5756
5757 PR target/57491
5758 * config/ia64/ia64.c (ia64_split_tmode_move): Relax `dead'
5759 flag setting.
5760
5761 2013-11-14 Jakub Jelinek <jakub@redhat.com>
5762 Uros Bizjak <ubizjak@gmail.com>
5763
5764 PR target/59101
5765 * config/i386/i386.md (*anddi_2): Only allow CCZmode if
5766 operands[2] satisfies_constraint_Z that might have bit 31 set.
5767
5768 2013-11-13 Jeff Law <law@redhat.com>
5769
5770 PR tree-optimization/59102
5771 * gimple-ssa-isolate-paths.c
5772 (insert_trap_and_remove_trailing_statments): Ensure STMT is a
5773 gimple assignment before looking at gimple_assign_lhs.
5774
5775 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
5776
5777 * ira.c: Add comment about threads at the top of file.
5778
5779 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
5780
5781 * ira-color.c (coalesce_allocnos): Don't allocate and free
5782 sorted_copies.
5783
5784 2013-11-14 Tom de Vries <tom@codesourcery.com>
5785
5786 * tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
5787 equality for GIMPLE_ASSIGN.
5788
5789 2013-11-14 Tom de Vries <tom@codesourcery.com>
5790
5791 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
5792 function out of ...
5793 (gimple_equal_p): ... here.
5794
5795 2013-11-14 Tom de Vries <tom@codesourcery.com>
5796
5797 * trans-mem.c (is_tm_ending): New function.
5798 * gimple.h (is_tm_ending): Declare.
5799 * tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
5800 BUILT_IN_TM_COMMIT.
5801 (find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
5802
5803 2013-11-14 Tom de Vries <tom@codesourcery.com>
5804
5805 * tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
5806
5807 2013-11-13 Andrew MacLeod <amacleod@redhat.com>
5808
5809 * gimple-walk.h: New File. Relocate prototypes from gimple.h.
5810 (struct walk_stmt_info): Relocate here from gimple.h.
5811 * gimple-iterator.h: New File. Relocate prototypes from gimple.h.
5812 (struct gimple_stmt_iterator_d): Relocate here from gimple.h.
5813 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
5814 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
5815 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
5816 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
5817 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
5818 * gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
5819 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
5820 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
5821 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
5822 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
5823 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
5824 (struct walk_stmt_info): Move to gimple-walk.h.
5825 (gimple_seq_set_location): Move to gimple.c
5826 * gimple-walk.c: New File.
5827 (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
5828 walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
5829 walk_stmt_load_store_ops): Relocate here from gimple.c.
5830 * gimple-iterator.c: Include gimple-iterator.h.
5831 * gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
5832 walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
5833 walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
5834 gimple-walk.c.
5835 (gimple_seq_set_location): Relocate from gimple.h.
5836 * tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
5837 * tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
5838 * gengtype.c (open_base_files): Add gimple-iterator.h to include list.
5839 * Makefile.in (OBJS): Add gimple-walk.o
5840 * asan.c: Update Include list as required for gimple-iterator.h and
5841 gimple-walk.h.
5842 * cfgexpand.c: Likewise.
5843 * cfgloop.c: Likewise.
5844 * cfgloopmanip.c: Likewise.
5845 * cgraph.c: Likewise.
5846 * cgraphbuild.c: Likewise.
5847 * cgraphunit.c: Likewise.
5848 * gimple-fold.c: Likewise.
5849 * gimple-low.c: Likewise.
5850 * gimple-pretty-print.c: Likewise.
5851 * gimple-ssa-isolate-paths.c: Likewise.
5852 * gimple-ssa-strength-reduction.c: Likewise.
5853 * gimple-streamer-in.c: Likewise.
5854 * gimple-streamer-out.c: Likewise.
5855 * gimplify.c: Likewise.
5856 * graphite-blocking.c: Likewise.
5857 * graphite-clast-to-gimple.c: Likewise.
5858 * graphite-dependences.c: Likewise.
5859 * graphite-interchange.c: Likewise.
5860 * graphite-optimize-isl.c: Likewise.
5861 * graphite-poly.c: Likewise.
5862 * graphite-scop-detection.c: Likewise.
5863 * graphite-sese-to-poly.c: Likewise.
5864 * graphite.c: Likewise.
5865 * ipa-inline-analysis.c: Likewise.
5866 * ipa-profile.c: Likewise.
5867 * ipa-prop.c: Likewise.
5868 * ipa-pure-const.c: Likewise.
5869 * ipa-split.c: Likewise.
5870 * lto-streamer-in.c: Likewise.
5871 * lto-streamer-out.c: Likewise.
5872 * omp-low.c: Likewise.
5873 * predict.c: Likewise.
5874 * profile.c: Likewise.
5875 * sese.c: Likewise.
5876 * tracer.c: Likewise.
5877 * trans-mem.c: Likewise.
5878 * tree-call-cdce.c: Likewise.
5879 * tree-cfg.c: Likewise.
5880 * tree-cfgcleanup.c: Likewise.
5881 * tree-complex.c: Likewise.
5882 * tree-data-ref.c: Likewise.
5883 * tree-dfa.c: Likewise.
5884 * tree-eh.c: Likewise.
5885 * tree-emutls.c: Likewise.
5886 * tree-if-conv.c: Likewise.
5887 * tree-inline.c: Likewise.
5888 * tree-into-ssa.c: Likewise.
5889 * tree-loop-distribution.c: Likewise.
5890 * tree-nested.c: Likewise.
5891 * tree-nrv.c: Likewise.
5892 * tree-object-size.c: Likewise.
5893 * tree-outof-ssa.c: Likewise.
5894 * tree-parloops.c: Likewise.
5895 * tree-predcom.c: Likewise.
5896 * tree-profile.c: Likewise.
5897 * tree-scalar-evolution.c: Likewise.
5898 * tree-sra.c: Likewise.
5899 * tree-ssa-ccp.c: Likewise.
5900 * tree-ssa-coalesce.c: Likewise.
5901 * tree-ssa-copy.c: Likewise.
5902 * tree-ssa-copyrename.c: Likewise.
5903 * tree-ssa-dce.c: Likewise.
5904 * tree-ssa-dom.c: Likewise.
5905 * tree-ssa-dse.c: Likewise.
5906 * tree-ssa-forwprop.c: Likewise.
5907 * tree-ssa-ifcombine.c: Likewise.
5908 * tree-ssa-live.c: Likewise.
5909 * tree-ssa-loop-ch.c: Likewise.
5910 * tree-ssa-loop-im.c: Likewise.
5911 * tree-ssa-loop-ivcanon.c: Likewise.
5912 * tree-ssa-loop-ivopts.c: Likewise.
5913 * tree-ssa-loop-manip.c: Likewise.
5914 * tree-ssa-loop-niter.c: Likewise.
5915 * tree-ssa-loop-prefetch.c: Likewise.
5916 * tree-ssa-loop.c: Likewise.
5917 * tree-ssa-math-opts.c: Likewise.
5918 * tree-ssa-phiopt.c: Likewise.
5919 * tree-ssa-phiprop.c: Likewise.
5920 * tree-ssa-pre.c: Likewise.
5921 * tree-ssa-propagate.c: Likewise.
5922 * tree-ssa-reassoc.c: Likewise.
5923 * tree-ssa-sink.c: Likewise.
5924 * tree-ssa-strlen.c: Likewise.
5925 * tree-ssa-structalias.c: Likewise.
5926 * tree-ssa-tail-merge.c: Likewise.
5927 * tree-ssa-ter.c: Likewise.
5928 * tree-ssa-threadedge.c: Likewise.
5929 * tree-ssa-threadupdate.c: Likewise.
5930 * tree-ssa-uncprop.c: Likewise.
5931 * tree-ssa-uninit.c: Likewise.
5932 * tree-ssa.c: Likewise.
5933 * tree-stdarg.c: Likewise.
5934 * tree-switch-conversion.c: Likewise.
5935 * tree-tailcall.c: Likewise.
5936 * tree-vect-data-refs.c: Likewise.
5937 * tree-vect-generic.c: Likewise.
5938 * tree-vect-loop-manip.c: Likewise.
5939 * tree-vect-loop.c: Likewise.
5940 * tree-vect-patterns.c: Likewise.
5941 * tree-vect-slp.c: Likewise.
5942 * tree-vect-stmts.c: Likewise.
5943 * tree-vectorizer.c: Likewise.
5944 * tree-vrp.c: Likewise.
5945 * tree.c: Likewise.
5946 * tsan.c: Likewise.
5947 * value-prof.c: Likewise.
5948 * vtable-verify.c: Likewise.
5949
5950 2013-11-13 Steven Bosscher <steven@gcc.gnu.org>
5951
5952 * gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment
5953 fix.
5954
5955 2013-11-13 Jeff Law <law@redhat.com>
5956
5957 * PR middle-end/59119
5958 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New
5959 function, extracted from gimple_ssa_isolate_erroneous_paths.
5960 (find_explicit_erroneous_behaviour): Similarly.
5961 (insert_trap_and_remove_trailing_statements): Remove statements
5962 in reverse order.
5963
5964 2013-11-13 Steven Bosscher <steven@gcc.gnu.org>
5965
5966 * cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
5967 Make that check explicit. BB_HEAD cannot be NULL, remove check for it.
5968 * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before
5969 looking at INSN_CODE.
5970 * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an
5971 active_insn_p object, respect basic block boundaries.
5972 * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always
5973 follows immediately after the jump table data label.
5974 * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise.
5975 * config/sh/sh.c (barrier_align): Likewise. Rearrange code such
5976 that JUMP_TABLE_DATA is not expected to be an active_insn_p object.
5977
5978 2013-11-13 Teresa Johnson <tejohnson@google.com>
5979
5980 PR ipa/58862
5981 * predict.c (drop_profile): Error is currently too strict.
5982 (handle_missing_profiles): Pass call_count to drop_profile.
5983
5984 2013-11-13 Teresa Johnson <tejohnson@google.com>
5985
5986 PR ipa/58862
5987 * ipa-inline.c (edge_badness): Fix overflow.
5988
5989 2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
5990
5991 PR rtl-optimization/59036
5992 * ira-color.c (struct allocno_color_data): Add new members
5993 first_thread_allocno, next_thread_allocno, thread_freq.
5994 (sorted_copies): New static var.
5995 (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up.
5996 (allocno_thread_conflict_p, merge_threads)
5997 (form_threads_from_copies, form_threads_from_bucket)
5998 (form_threads_from_colorable_allocno, init_allocno_threads): New
5999 functions.
6000 (bucket_allocno_compare_func): Add comparison by thread frequency
6001 and threads.
6002 (add_allocno_to_ordered_bucket): Rename to
6003 add_allocno_to_ordered_colorable_bucket. Remove parameter.
6004 (push_only_colorable): Call form_threads_from_bucket.
6005 (color_pass): Call init_allocno_threads. Use
6006 consideration_allocno_bitmap instead of coloring_allocno_bitmap
6007 for nuillify allocno color data.
6008 (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies.
6009 (coalesce_allocnos): Use static sorted copies.
6010
6011 2013-11-13 Jakub Jelinek <jakub@redhat.com>
6012
6013 * passes.c (execute_todo): Don't call do_per_function if
6014 flags are zero.
6015 (execute_one_ipa_transform_pass, execute_one_pass): Don't call
6016 execute_function_dump if dump_file is NULL.
6017
6018 2013-11-13 Martin Jambor <mjambor@suse.cz>
6019
6020 * cgraph.c (cgraph_get_create_node): Do what
6021 cgraph_get_create_real_symbol_node used to do.
6022 (cgraph_get_create_real_symbol_node): Removed. Changed all users to
6023 call cgraph_get_create_node.
6024 * cgraph.h (cgraph_get_create_real_symbol_node): Removed.
6025 * lto-streamer-in.c (input_function): Call cgraph_get_node instead of
6026 cgraph_get_create_node. Assert we get a node.
6027
6028 2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
6029
6030 * config/aarch64/aarch64-simd.md (vec_extract): New.
6031
6032 2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
6033
6034 * config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to
6035 the constraint.
6036
6037 2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
6038
6039 * cfgexpand.c (expand_used_vars): Allocate space for partitions based
6040 on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info
6041 or if optimization is enabled.
6042 * tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled,
6043 require that all the names based on a PARM_DECL or a RESULT_DECL that
6044 isn't ignored for debug info be coalesced.
6045
6046 2013-11-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6047
6048 * config/c6x/c6x.c: Include "gimple-expr.h".
6049
6050 2013-11-13 Richard Biener <rguenther@suse.de>
6051
6052 * gimple-streamer-out.c (output_gimple_stmt): Also wrap
6053 decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
6054 * gimple-streamer-in.c (input_gimple_stmt): Remove now dead code
6055 dealing with type mismatches inside component reference chains.
6056
6057 2013-11-13 Marc Glisse <marc.glisse@inria.fr>
6058
6059 PR tree-optimization/59077
6060 * ipa-pure-const.c (better_state): Update *state.
6061
6062 2013-11-13 Christophe Lyon <christophe.lyon@linaro.org>
6063
6064 * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
6065 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
6066 Update offset calculations.
6067
6068 2013-11-13 Eric Botcazou <ebotcazou@adacore.com>
6069
6070 PR ada/35998
6071 * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
6072 for fields. Do not add the attribute if the size is negative.
6073
6074 2013-11-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6075
6076 * config/arm/arm.c: Include aarch-cost-tables.h.
6077 (generic_extra_costs): Move from here...
6078 * config/arm/aarch-cost-tables.h: ... To here. New file.
6079
6080 2013-11-13 Alexander Ivchenko <alexander.ivchenko@intel.com>
6081 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6082 Sergey Lega <sergey.s.lega@intel.com>
6083 Anna Tikhonova <anna.tikhonova@intel.com>
6084 Ilya Tocar <ilya.tocar@intel.com>
6085 Andrey Turetskiy <andrey.turetskiy@intel.com>
6086 Ilya Verbin <ilya.verbin@intel.com>
6087 Kirill Yukhin <kirill.yukhin@intel.com>
6088 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6089
6090 * config/i386/i386.c (ix86_print_operand): Support z-masking.
6091 * config/i386/predicate.md (const_0_to_4_operand): New.
6092 (const_0_to_5_operand): Ditto.
6093 * config/i386/sse.md (UNSPEC_COMPRESS): New.
6094 (UNSPEC_COMPRESS_STORE): Ditto.
6095 (UNSPEC_EXPAND): Ditto.
6096 (UNSPEC_EMBEDDED_ROUNDING): Ditto.
6097 (define_mode_attr ssescalarsize): Ditto.
6098 (avx512f_load<mode>_mask): Ditto.
6099 (avx512f_store<mode>_mask): Ditto.
6100 (avx512f_storedqu<mode>_mask): Ditto.
6101 (avx512f_vmcmp<mode>3_mask): Ditto.
6102 (avx512f_fmadd_<mode>_mask): Ditto.
6103 (avx512f_fmadd_<mode>_mask3): Ditto.
6104 (avx512f_fmsub_<mode>_mask): Ditto.
6105 (avx512f_fmsub_<mode>_mask3): Ditto.
6106 (avx512f_fnmadd_<mode>_mask): Ditto.
6107 (avx512f_fnmadd_<mode>_mask3): Ditto.
6108 (avx512f_fnmsub_<mode>_mask): Ditto.
6109 (avx512f_fnmsub_<mode>_mask3): Ditto.
6110 (avx512f_fmaddsub_<mode>_mask): Ditto.
6111 (avx512f_fmaddsub_<mode>_mask3): Ditto.
6112 (avx512f_fmsubadd_<mode>_mask): Ditto.
6113 (avx512f_fmsubadd_<mode>_mask3): Ditto.
6114 (vec_unpacku_float_lo_v16si): Ditto.
6115 (avx512f_vextract<shuffletype>32x4_mask): Ditto.
6116 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
6117 (avx512f_vextract<shuffletype>64x4_mask): Ditto.
6118 (vec_extract_lo_<mode>_maskm): Ditto.
6119 (vec_extract_hi_<mode>_maskm): Ditto.
6120 (avx512f_vternlog<mode>_mask): Ditto.
6121 (avx512f_shufps512_mask): Ditto.
6122 (avx512f_fixupimm<mode>_mask): Ditto.
6123 (avx512f_shufpd512_mask): Ditto.
6124 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
6125 (avx512f_<code>v8div16qi2_mask/trunc): Ditto.
6126 (*avx512f_<code>v8div16qi2_store_mask): Ditto.
6127 (ashr<mode>3<mask_name>): Ditto.
6128 (avx512f_vinsert<shuffletype>32x4_mask): Ditto.
6129 (avx512f_vinsert<shuffletype>64x4_mask): Ditto.
6130 (avx512f_shuf_<shuffletype>64x2_mask): Ditto.
6131 (avx512f_shuf_<shuffletype>32x4_mask): Ditto.
6132 (avx512f_pshufdv3_mask): Ditto.
6133 (avx512f_perm<mode>_mask): Ditto.
6134 (avx512f_vpermi2var<mode>3_mask): Ditto.
6135 (avx512f_vpermt2var<mode>3_mask): Ditto.
6136 (avx512f_compress<mode>_mask): Ditto.
6137 (avx512f_compressstore<mode>_mask): Ditto.
6138 (avx512f_expand<mode>_mask): Ditto.
6139 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend
6140 to support masking.
6141 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
6142 (<plusminus_insn><mode>3<mask_name>): Ditto.
6143 (*<plusminus_insn><mode>3<mask_name>): Ditto.
6144 (mul<mode>3<mask_name>): Ditto.
6145 (*mul<mode>3<mask_name>): Ditto.
6146 (<sse>_div<mode>3<mask_name>): Ditto.
6147 (<mask_codefor>rcp14<mode><mask_name>): Ditto.
6148 (<sse>_sqrt<mode>2<mask_name>): Ditto.
6149 (<mask_codefor>rsqrt14<mode><mask_name>): Ditto.
6150 (<code><mode>3<mask_name>/smaxmin): Ditto.
6151 (*<code><mode>3_finite<mask_name>/smaxmin): Ditto.
6152 (*<code><mode>3<mask_name>/smaxmin): Ditto.
6153 (float<sseintvecmodelower><mode>2<mask_name>): Ditto.
6154 (ufloatv16siv16sf2<mask_name>): Ditto.
6155 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
6156 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
6157 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
6158 (float<si2dfmodelower><mode>2<mask_name>): Ditto.
6159 (ufloatv8siv8df<mask_name>): Ditto.
6160 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
6161 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
6162 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
6163 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
6164 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
6165 (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
6166 (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
6167 (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
6168 (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
6169 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
6170 (vec_extract_lo_<mode><mask_name>): Ditto.
6171 (vec_extract_hi_<mode><mask_name>): Ditto.
6172 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
6173 (avx512f_movddup512<mask_name>): Ditto.
6174 (avx512f_unpcklpd512<mask_name>): Ditto.
6175 (*avx512f_unpcklpd512<mask_name>): Ditto.
6176 (*avx512f_vmscalef<mode>): Ditto.
6177 (avx512f_scalef<mode><mask_name>): Ditto.
6178 (avx512f_getexp<mode><mask_name>): Ditto.
6179 (<mask_codefor>avx512f_align<mode><mask_name>): Ditto.
6180 (avx512f_rndscale<mode><mask_name>): Ditto.
6181 (avx512f_shufps512_1<mask_name>): Ditto.
6182 (avx512f_shufpd512_1<mask_name>): Ditto.
6183 (<plusminus_insn><mode>3<mask_name>): Ditto.
6184 (*<plusminus_insn><mode>3<mask_name>): Ditto.
6185 (vec_widen_umult_even_v16si<mask_name>): Ditto.
6186 (*vec_widen_umult_even_v16si<mask_name>): Ditto.
6187 (vec_widen_smult_even_v16si<mask_name>): Ditto.
6188 (*vec_widen_smult_even_v16si<mask_name>): Ditto.
6189 (mul<mode>3<mask_name>): Ditto.
6190 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
6191 (<shift_insn><mode>3<mask_name>): Ditto.
6192 (avx512f_<rotate>v<mode><mask_name>/rotate): Ditto.
6193 (avx512f_<rotate><mode><mask_name>): Ditto.
6194 (<code><mode>3<mask_name>/maxmin): Ditto.
6195 (*avx2_<code><mode>3<mask_name>/maxmin): Ditto.
6196 (<sse2_avx2>_andnot<mode>3<mask_name>): Ditto.
6197 (*andnot<mode>3<mask_name>): Ditto.
6198 (<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto.
6199 (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
6200 (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
6201 (<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto.
6202 (vec_set_lo_<mode><mask_name>): Ditto.
6203 (vec_set_hi_<mode><mask_name>): Ditto.
6204 (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
6205 (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
6206 (avx512f_pshufd_1<mask_name>): Ditto.
6207 (<mask_codefor>abs<mode>2<mask_name>): Ditto.
6208 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
6209 (avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto.
6210 (avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto.
6211 (avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto.
6212 (avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto.
6213 (avx512er_exp2<mode><mask_name>): Ditto.
6214 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
6215 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
6216 (<avx2_avx512f>_permvar<mode><mask_name>): Ditto.
6217 (<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto.
6218 (<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto.
6219 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto.
6220 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto.
6221 (<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto.
6222 (<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto.
6223 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto.
6224 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto.
6225 (*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
6226 (<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto.
6227 (<avx2_avx512f>_ashrv<mode><mask_name>): Ditto.
6228 (<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto.
6229 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
6230 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
6231 (avx512f_getmant<mode><mask_name>): Ditto.
6232 (clz<mode>2<mask_name>): Ditto.
6233 (<mask_codefor>conflict<mode><mask_name>): Ditto.
6234 (*srcp14<mode>): Remove visibility.
6235 (*rsqrt14<mode>): Ditto.
6236 (*fma_fmsub_<mode>): Ditto.
6237 (*fma_fnmadd_<mode>): Ditto.
6238 (*avx512f_rndscale<mode>): Ditto.
6239 * config/i386/subst.md: New file.
6240
6241 2013-11-13 Joseph Myers <joseph@codesourcery.com>
6242
6243 * doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
6244 * ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
6245 (atomic_load_explicit, atomic_exchange_explicit)
6246 (atomic_compare_exchange_strong_explicit)
6247 (atomic_compare_exchange_weak_explicit): Use __auto_type to
6248 declare variable initialized with PTR argument.
6249
6250 2013-11-12 Jeff Law <law@redhat.com>
6251
6252 * tree-ssa-threadedge.c (thread_around_empty_blocks): New argument
6253 backedge_seen_p. Set, use and pass it to children appropriately.
6254 (thread_through_normal_block): Similarly.
6255 (thread_across_edge): Similarly.
6256
6257 * gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
6258 memory references as volatile.
6259 (insert_trap_and_remove_trailing_statements): Fix comment.
6260
6261 2013-11-12 Vladimir Makarov <vmakarov@redhat.com>
6262
6263 PR other/58712
6264 * ira-costs.c (record_operand_costs): Check operands number for
6265 the single set.
6266
6267 2013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6268
6269 PR target/59054
6270 * config/rs6000/rs6000.md (movdi_internal32): Eliminate
6271 constraints that would allow DImode into the traditional Altivec
6272 registers, but cause undesirable code generation when loading 0 as
6273 a constant.
6274 (movdi_internal64): Likewise.
6275 (cmp<mode>_fpr): Do not use %x for CR register output.
6276 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
6277 -mallow-upper-sf debug switches are used.
6278
6279 2013-11-12 Andrew MacLeod <amacleod@redhat.com>
6280
6281 * gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
6282 create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
6283 Relocate prototypes from gimple.h.
6284 * gimplify.h: New File. Relocate some prototypes from gimple.h here.
6285 (gimple_predicate, enum fallback, enum gimplify_status): Relocate
6286 from gimple.h.
6287 * gimple.h: Move some prototypes to gimplify.h.
6288 (gimple_predicate, enum fallback, enum gimplify_status): Move to
6289 gimplify.h.
6290 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
6291 Relocate from gimpify.c.
6292 * gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
6293 create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
6294 is_gimple_reg_rhs) Relocate from gimplify.c.
6295 * gimplify.c (mark_addressable): Move to gimple-expr.c.
6296 (gimple_seq_add_stmt_without_update): Move to gimple.c.
6297 (remove_suffix, tmp_var_id_num, create_tmp_var_name,
6298 create_tmp_var_raw, create_tmp_var, create_tmp_reg,
6299 is_gimple_reg_rhs): Move to gimple-expr.c.
6300 (should_carry_location_p): Move to gimple.c.
6301 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
6302 to gimple.h.
6303 (annotate_one_with_location, annotate_all_with_location_after,
6304 annotate_all_with_location): Move to gimple.c.
6305 (compare_case_labels, sort_case_labels,
6306 preprocess_case_label_vec_for_gimple): Move to gimple.c.
6307 (rhs_predicate_for): Make static.
6308 (gimplify_assign): Relocate from gimple.c.
6309 * gimple.c (gimplify_assign): Move to gimplify.c.
6310 (gimple_seq_add_stmt_without_update, should_carry_location_p,
6311 annotate_one_with_location, annotate_all_with_location_after,
6312 annotate_all_with_location, compare_case_labels, sort_case_labels,
6313 preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
6314 * tree.h (unshare_expr, unshare_expr_without_location,
6315 mark_addressable): Move prototypes to gimplify.h.
6316 * Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
6317 tmp_var_id_num
6318 * asan.c: Include gimplify.h rather than gimple.h.
6319 * cfgloopmanip.c: Likewise.
6320 * cgraphunit.c: Likewise.
6321 * cilk-common.c: Likewise.
6322 * dwarf2out.c: Dont include gimple.h.
6323 * fold-const.c: Include gimplify.h rather than gimple.h.
6324 * function.c: Likewise.
6325 * gimple-fold.c: Likewise.
6326 * gimple-ssa-strength-reduction.c: Likewise.
6327 * graphite-clast-to-gimple.c: Likewise.
6328 * graphite-sese-to-poly.c: Likewise.
6329 * ipa-prop.c: Likewise.
6330 * ipa-split.c: Likewise.
6331 * ipa.c: Likewise.
6332 * langhooks.c: Dont include gimple.h.
6333 * loop-init.c: Include gimplify.h rather than gimple.h.
6334 * omp-low.c: Likewise.
6335 * sese.c: Likewise.
6336 * stor-layout.c: Likewise.
6337 * targhooks.c: Likewise.
6338 * trans-mem.c: Likewise.
6339 * tree-affine.c: Likewise.
6340 * tree-cfg.c: Likewise.
6341 * tree-cfgcleanup.c: Likewise.
6342 * tree-complex.c: Likewise.
6343 * tree-if-conv.c: Likewise.
6344 * tree-inline.c: Likewise.
6345 * tree-iterator.c: Likewise.
6346 * tree-loop-distribution.c: Likewise.
6347 * tree-nested.c: Likewise.
6348 * tree-parloops.c: Likewise.
6349 * tree-predcom.c: Likewise.
6350 * tree-profile.c: Likewise.
6351 * tree-scalar-evolution.c: Likewise.
6352 * tree-sra.c: Likewise.
6353 * tree-ssa-address.c: Likewise.
6354 * tree-ssa-ccp.c: Likewise.
6355 * tree-ssa-dce.c: Likewise.
6356 * tree-ssa-forwprop.c: Likewise.
6357 * tree-ssa-ifcombine.c: Likewise.
6358 * tree-ssa-loop-im.c: Likewise.
6359 * tree-ssa-loop-ivopts.c: Likewise.
6360 * tree-ssa-loop-manip.c: Likewise.
6361 * tree-ssa-loop-niter.c: Likewise.
6362 * tree-ssa-loop-prefetch.c: Likewise.
6363 * tree-ssa-loop-unswitch.c: Likewise.
6364 * tree-ssa-math-opts.c: Likewise.
6365 * tree-ssa-phiopt.c: Likewise.
6366 * tree-ssa-phiprop.c: Likewise.
6367 * tree-ssa-pre.c: Likewise.
6368 * tree-ssa-propagate.c: Likewise.
6369 * tree-ssa-reassoc.c: Likewise.
6370 * tree-ssa-sccvn.c: Likewise.
6371 * tree-ssa-strlen.c: Likewise.
6372 * tree-ssa.c: Likewise.
6373 * tree-switch-conversio: Likewise.n.c
6374 * tree-tailcall.c: Likewise.
6375 * tree-vect-data-refs.c: Likewise.
6376 * tree-vect-generic.c: Likewise.
6377 * tree-vect-loop-manip.c: Likewise.
6378 * tree-vect-loop.c: Likewise.
6379 * tree-vect-patterns.c: Likewise.
6380 * tree-vect-stmts.c: Likewise.
6381 * tsan.c: Likewise.
6382 * value-prof.c: Likewise.
6383 * config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
6384 * config/alpha/alpha.c: Likewise.
6385 * config/darwin.c: Likewise.
6386 * config/i386/i386.c: Likewise.
6387 * config/ia64/ia64.c: Likewise.
6388 * config/mep/mep.c: Likewise.
6389 * config/mips/mips.c: Likewise.
6390 * config/rs6000/rs6000.c: Likewise.
6391 * config/s390/s390.c: Likewise.
6392 * config/sh/sh.c: Likewise.
6393 * config/sparc/sparc.c: Likewise.
6394 * config/spu/spu.c: Likewise.
6395 * config/stormy16/stormy16.c: Likewise.
6396 * config/tilegx/tilegx.c: Likewise.
6397 * config/tilepro/tilepro.c: Likewise.
6398 * config/xtensa/xtensa.c: Likewise.
6399
6400 2013-11-12 Adam Butcher <adam@jessamine.co.uk>
6401
6402 * tree.c (grow_tree_vec_stat): New function ...
6403 * tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration
6404 and macro front-end.
6405
6406 2013-11-12 Marek Polacek <polacek@redhat.com>
6407
6408 * final.c (update_alignments): Initialize label to NULL_RTX.
6409
6410 2013-11-12 Jeff Law <law@redhat.com>
6411
6412 * gimple-ssa-isolate-paths.c (check_loadstore): New function.
6413 (insert_trap_and_remove_trailing_statements): New argument OP which
6414 is the NULL pointer. Emit the trap after the load/store through
6415 the NULL pointer. Simplify the RHS of a store through a NULL pointer
6416 when trivial to do so.
6417 (isolate_path): Corresponding changes.
6418 (gimple_ssa_isolate_erroneous_path): Likewise.
6419
6420 2013-11-12 Teresa Johnson <tejohnson@google.com>
6421 Jan Hubicka <jh@suse.cz>
6422
6423 * predict.c (drop_profile): New function.
6424 (handle_missing_profiles): Ditto.
6425 (counts_to_freqs): Don't overwrite estimated frequencies
6426 when function has no profile counts.
6427 * predict.h (handle_missing_profiles): Declare.
6428 * tree-inline.c (freqs_to_counts): New function.
6429 (copy_cfg_body): Invoke freqs_to_counts as needed.
6430 * tree-profile.c (tree_profiling): Invoke handle_missing_profiles.
6431
6432 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
6433
6434 PR target/59088
6435 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL):
6436 Set for m_HASWELL.
6437 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL.
6438
6439 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
6440
6441 PR target/59084
6442 * config/i386/i386.c (ix86_option_override_internal): Check
6443 X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and
6444 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for
6445 MASK_AVX256_SPLIT_UNALIGNED_LOAD and
6446 MASK_AVX256_SPLIT_UNALIGNED_STORE.
6447
6448 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
6449 Clear m_COREI7_AVX and update comments.
6450 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise.
6451
6452 2013-11-12 Martin Jambor <mjambor@suse.cz>
6453
6454 PR rtl-optimization/10474
6455 * ira.c (interesting_dest_for_shprep): New function.
6456 (split_live_ranges_for_shrink_wrap): Likewise.
6457 (find_moveable_pseudos): Move calculation of dominance info,
6458 df_analysios and the final anlyses to...
6459 (ira): ...here, call split_live_ranges_for_shrink_wrap.
6460
6461 2013-11-12 Bin Cheng <bin.cheng@arm.com>
6462
6463 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
6464 Handle type conversion.
6465
6466 2013-11-11 Martin Liska <marxin.liska@gmail.com>
6467 Jan Hubicka <jh@suse.cz>
6468
6469 * cgraph.c (dump_cgraph_node): Profile dump added.
6470 * cgraph.h (struct cgraph_node): New time profile variable added.
6471 * cgraphclones.c (cgraph_clone_node): Time profile is cloned.
6472 * gcov-io.h (gcov_type): New profiler type introduced.
6473 * ipa-profile.c (lto_output_node): Streaming for time profile added.
6474 (input_node): Time profiler is read from LTO stream.
6475 * predict.c (maybe_hot_count_p): Hot prediction changed.
6476 * profile.c (instrument_values): New case for time profiler added.
6477 (compute_value_histograms): Read of time profile.
6478 * tree-pretty-print.c (dump_function_header): Time profiler is dumped.
6479 * tree-profile.c (init_ic_make_global_vars): Time profiler
6480 function added.
6481 (gimple_init_edge_profiler): TP function instrumentation.
6482 (gimple_gen_time_profiler): New.
6483 * value-prof.c (gimple_add_histogram_value): Support for time profiler
6484 added.
6485 (dump_histogram_value): TP type added to dumps.
6486 (visit_hist): More sensitive check that takes TP into account.
6487 (gimple_find_values_to_profile): TP instrumentation.
6488 * value-prof.h (hist_type): New histogram type added.
6489 (struct histogram_value_t): Pointer to struct function added.
6490 * libgcc/Makefile.in: New GCOV merge function for TP added.
6491 * libgcov.c: function_counter variable introduced.
6492 (_gcov_merge_time_profile): New.
6493 (_gcov_time_profiler): New.
6494
6495 2013-11-11 Marc Glisse <marc.glisse@inria.fr>
6496 Jeff Law <law@redhat.com>
6497
6498 * tree-ssa-alias.c (stmt_kills_ref_p_1): Use
6499 ao_ref_init_from_ptr_and_size for builtins.
6500
6501 2013-11-11 Uros Bizjak <ubizjak@gmail.com>
6502 H.J. Lu <hongjiu.lu@intel.com>
6503
6504 PR target/58853
6505 * config/i386/x86-tune.def
6506 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
6507 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES.
6508 * config/i386/i386.h
6509 (TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
6510 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES. Update for renamed
6511 X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES.
6512 * config/i386/i386.c (ix86_expand_set_or_movmem): Use
6513 TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate
6514 misaligned_prologue_used. Check that
6515 desired_aling <= epilogue_size_needed.
6516
6517 2013-11-11 Cong Hou <congh@google.com>
6518
6519 PR tree-optimization/59050
6520 * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix.
6521
6522 2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
6523
6524 PR middle-end/59049
6525 * expmed.c (emit_store_flag): Fail for const-const comparison.
6526
6527 2013-11-11 Tristan Gingold <gingold@adacore.com>
6528 Eric Botcazou <ebotcazou@adacore.com>
6529
6530 * tree.h (CONSTRUCTOR_NO_CLEARING): Define.
6531 * tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it.
6532 * tree.def (CONSTRUCTOR): Likewise.
6533 * doc/generic.texi (CONSTRUCTOR): Likewise. Update description.
6534 * gimplify.c (gimplify_init_constructor): Do not clear the object when
6535 the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.
6536
6537 2013-11-11 Basile Starynkevitch <basile@starynkevitch.net>
6538
6539 * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before
6540 diagnostic_finish.
6541
6542 2013-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6543
6544 * config/arm/arm.c (arm_new_rtx_costs): Return after handling
6545 comparisons.
6546
6547 2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
6548
6549 * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
6550
6551 2013-11-08 Jeff Law <law@redhat.com>
6552
6553 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
6554 threading paths first, then perform PHI node checks if applicable.
6555
6556 2013-11-10 Karlson2k <k2k@narod.ru>
6557 Kai Tietz <ktietz@redhat.com>
6558
6559 PR plugin/52872
6560 * configure.ac: Adding for exported symbols check
6561 and for rdynamic-check executable-extension.
6562 * configure: Regenerated.
6563
6564 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
6565
6566 * mode-switching.c (optimize_mode_switching): Mark block as
6567 nontransparent, if last_mode at block exit is different from no_mode.
6568
6569 2013-11-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6570
6571 * function.c (NAME__MAIN): Move to...
6572 * cfgexpand.c (NAME__MAIN): ...here.
6573
6574 2013-11-09 Richard Sandiford <rdsandiford@googlemail.com>
6575
6576 * target.def (can_use_doloop_p): New hook.
6577 * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
6578 * doc/tm.texi: Regenerate.
6579 * doc/md.texi (doloop_begin, doloop_end): Update documentation.
6580 * hooks.h (hook_bool_dint_dint_uint_true): Declare.
6581 * hooks.c (hook_bool_dint_dint_uint_true): New function.
6582 * targhooks.h (can_use_doloop_if_innermost): Declare.
6583 * targhooks.c (can_use_doloop_if_innermost): New function.
6584 * target.h: Include double-int.h.
6585 * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
6586 Remove iteration count, maximum iteration count, loop depth and
6587 enter-at-top inputs from doloop_begin and doloop_end.
6588 * config/arc/arc.md (doloop_begin, doloop_end): Update for new
6589 interface.
6590 * config/arc/arc.c (arc_can_use_doloop_p): New function.
6591 (TARGET_CAN_USE_DOLOOP_P): Define.
6592 * config/arm/thumb2.md (doloop_end): Update for new interface.
6593 * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
6594 * config/bfin/bfin.md (doloop_end): Update for new interface.
6595 * config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
6596 (TARGET_CAN_USE_DOLOOP_P): Define.
6597 * config/c6x/c6x.md (doloop_end): Update for new interface.
6598 * config/ia64/ia64.md (doloop_end): Update for new interface.
6599 * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
6600 * config/mep/mep.md (doloop_begin, doloop_end): Update for new
6601 interface.
6602 * config/mep/mep.c (mep_emit_doloop): Likewise.
6603 (TARGET_CAN_USE_DOLOOP_P): Define.
6604 * config/rs6000/rs6000.md (doloop_end): Update for new interface.
6605 * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
6606 * config/s390/s390.md (doloop_end): Update for new interface.
6607 * config/sh/sh.md (doloop_end): Likewise.
6608 * config/spu/spu.md (doloop_end): Likewise.
6609 * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
6610 * config/tilegx/tilegx.md (doloop_end): Update for new interface.
6611 * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
6612 * config/tilepro/tilepro.md (doloop_end): Update for new interface.
6613 * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
6614 * config/v850/v850.md (doloop_begin, doloop_end): Update for new
6615 interface.
6616 * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.
6617
6618 2013-11-08 H.J. Lu <hongjiu.lu@intel.com>
6619
6620 PR other/59055
6621 * doc/extend.texi: Move Cilk Plus Builtins node before Other
6622 Builtins node.
6623
6624 2013-11-08 Andrew MacLeod <amacleod@redhat.com>
6625 Joseph Myers <joseph@codesourcery.com>
6626
6627 * ginclude/stdatomic.h: New file.
6628 * Makefile.in (USER_H): Add stdatomic.h.
6629
6630 2013-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6631
6632 * config/arm/arm.c (arm_new_rtx_costs): Break after handling
6633 comparisons.
6634
6635 2013-11-08 Jeff Law <law@redhat.com>
6636
6637 * tree-ssa-threadupdate.h (delete_thread_path): Declare.
6638 * tree-ssa-threadupdate.c (delete_thread_path): New function.
6639 (ssa_redirect_edges, thread_block_1): Use it.
6640 (thread_through_loop_header, mark_threaded_blocks): Likewise.
6641 (thread_through_all_blocks, register_jump_thread): Likewise.
6642 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
6643
6644 2013-11-08 James Greenhalgh <james.greenhalgh@arm.com>
6645
6646 * config/arm/aarch-common.c
6647 (search_term): New typedef.
6648 (shift_rtx_costs): New array.
6649 (arm_rtx_shift_left_p): New.
6650 (arm_find_sub_rtx_with_search_term): Likewise.
6651 (arm_find_sub_rtx_with_code): Likewise.
6652 (arm_early_load_addr_dep): Add sanity checking.
6653 (arm_no_early_alu_shift_dep): Likewise.
6654 (arm_no_early_alu_shift_value_dep): Likewise.
6655 (arm_no_early_mul_dep): Likewise.
6656 (arm_no_early_store_addr_dep): Likewise.
6657
6658 2013-11-08 Richard Biener <rguenther@suse.de>
6659
6660 PR tree-optimization/59047
6661 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses properly.
6662
6663 2013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
6664
6665 * common.opt (fcheck-pointer-bounds): Move to ...
6666 * c-family/c.opt: ... here.
6667 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
6668 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
6669 * langhooks.h (lang_hooks): Remove chkp_supported field.
6670 * toplev.c (process_options): Remove chkp_supported check.
6671
6672 2013-11-08 Richard Biener <rguenther@suse.de>
6673
6674 PR tree-optimization/59038
6675 PR tree-optimization/58955
6676 * tree-loop-distribution.c (pg_add_dependence_edges): Revert
6677 previous change. Handle known dependences correctly.
6678
6679 2013-11-08 Tom de Vries <tom@codesourcery.com>
6680
6681 * config/rs6000/t-xilinx: Remove duplicate contents.
6682
6683 2013-11-07 Andrew MacLeod <amacleod@redhat.com>
6684 Joseph Myers <joseph@codesourcery.com>
6685
6686 * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
6687 (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
6688 TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
6689 (struct tree_base): Add atomic_flag field.
6690 * tree.h (TYPE_ATOMIC): New accessor macro.
6691 (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
6692 (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
6693 (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
6694 (atomicDI_type_node, atomicTI_type_node): New macros for type nodes.
6695 * tree.c (set_type_quals): Set TYPE_ATOMIC.
6696 (find_atomic_core_type): New function.
6697 (build_qualified_type): Adjust alignment for qualified types.
6698 (build_atomic_base): New function
6699 (build_common_tree_nodes): Build atomicQI_type_node,
6700 atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
6701 atomicTI_type_node.
6702 * print-tree.c (print_node): Print atomic qualifier.
6703 * tree-pretty-print.c (dump_generic_node): Print atomic type attribute.
6704 * target.def (atomic_assign_expand_fenv): New hook.
6705 * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
6706 * doc/tm.texi: Regenerate.
6707 * targhooks.c (default_atomic_assign_expand_fenv): New function.
6708 * targhooks.h (default_atomic_assign_expand_fenv): Declare.
6709 * sync-builtins.def (__atomic_feraiseexcept): New built-in function.
6710 * config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
6711 function type.
6712 * config/i386/i386.c (enum ix86_builtins): Add
6713 IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
6714 IX86_BUILTIN_FNCLEX.
6715 (bdesc_special_args): Add __builtin_ia32_fnstenv,
6716 __builtin_ia32_fldenv, __builtin_ia32_fnstsw and __builtin_ia32_fnclex.
6717 (ix86_expand_builtin): Handle the new built-in functions.
6718 (ix86_atomic_assign_expand_fenv): New function.
6719 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
6720 * config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
6721 (UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
6722 (fnstenv, fldenv, fnstsw, fnclex): New insns.
6723
6724 2013-11-07 Steve Ellcey <sellcey@mips.com>
6725
6726 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
6727 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
6728 (MULTILIB_DIRNAMES): Add fp64 directory.
6729 (MULTILIB_EXCEPTIONS): Add new exclusions.
6730
6731 2013-11-07 Aldy Hernandez <aldyh@redhat.com>
6732
6733 * gimplify.c (gimple_regimplify_operands): Do not set
6734 SSA_NAME_DEF_STMT.
6735 * graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
6736 (rewrite_close_phi_out_of_ssa): Same.
6737 (rewrite_phi_out_of_ssa): Same.
6738 (rewrite_degenerate_phi): Same.
6739 (handle_scalar_deps_crossing_scop_limits): Same.
6740 * tree-if-conv.c (predicate_scalar_phi): Same.
6741 * tree-parloops.c (create_loads_for_reductions): Same.
6742 (create_final_loads_for_reduction): Same.
6743 (create_loads_and_stores_for_name): Same.
6744 (transform_to_exit_first_loop): Same.
6745 (create_parallel_loop): Same.
6746 * tree-ssa-loop-im.c
6747 (move_computations_dom_walker::before_dom_children): Same.
6748 * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
6749 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Same.
6750 * tree-ssa-propagate.c (substitute_and_fold): Same.
6751 * tree-vect-loop.c (vect_finalize_reduction): Same.
6752 * tree-vect-stmts.c (vectorizable_call): Same.
6753
6754 2013-11-07 Mike Stump <mikestump@comcast.net>
6755
6756 * config/pdp11/pdp11.c: Include dbxout.h.
6757 * config/picochip/picochip.c: Likewise.
6758
6759 2013-11-07 Cong Hou <congh@google.com>
6760
6761 PR tree-optimization/56764
6762 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6763 Combine alias checks if it is possible to amortize the runtime
6764 overhead. Return the number of alias checks after merging.
6765 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
6766 Use the function vect_create_cond_for_alias_checks () to check
6767 the number of alias checks.
6768
6769 2013-11-07 Jeff Law <law@redhat.com>
6770
6771 * varpool.c (ctor_for_folding): Fix typo in comment.
6772
6773 2013-11-07 Joern Rennecke <joern.rennecke@embecosm.com>
6774
6775 * config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.:
6776 reg_a := reg_b + reg_a ==> reg_a := reg_a + reg_b
6777
6778 2013-11-07 Jeff Law <law@redhat.com>
6779
6780 * doc/invoke.texi (-fisolate-erroneous-paths): Document.
6781
6782 * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
6783 No longer check if we have __builtin_trap, assume it's available.
6784
6785 2013-11-07 Diego Novillo <dnovillo@google.com>
6786
6787 * attribs.c (lookup_scoped_attribute_spec): Make static.
6788 (get_attribute_namespace): Likewise.
6789 * builtins.c (more_const_call_expr_args_p): Move from tree.h.
6790 (validate_arglist): Move earlier in the file. Make static.
6791 (expand_stack_restore): Move from stmt.c
6792 (expand_stack_save): Move from stmt.c
6793 (rewrite_call_expr_array): Move earlier in the file.
6794 (rewrite_call_expr_valist): Likewise.
6795 * cfgexpand.c: Include hard-reg-set.h before tree.h
6796 Include recog.h.
6797 Include output.h.
6798 (expand_asm_loc): Move from stmt.c.
6799 (n_occurrences): Move from stmt.c.
6800 (check_operand_nalternatives): Move from stmt.c.
6801 (tree_conflicts_with_clobbers_p): Move from stmt.c.
6802 (expand_asm_operands): Move from stmt.c
6803 (expand_asm_stmt): Move from stmt.c
6804 (expand_computed_goto): Move from stmt.c
6805 (expand_goto): Move from stmt.c
6806 (expand_null_return_1): Move from stmt.c
6807 (expand_null_return): Move from stmt.c
6808 (expand_value_return): Move from stmt.c
6809 (expand_return): Move from stmt.c
6810 (expand_main_function): Move from function.c
6811 (stack_protect_prologue): Move from function.c
6812 * cgraphclones.c (build_function_type_skip_args): Move from tree.c.
6813 (build_function_decl_skip_args): Move from tree.c.
6814 * explow.c (tree_expr_size): Move from tree.c.
6815 * expr.c (addr_expr_of_non_mem_decl_p): Remove.
6816 (fields_length): Move from tree.c.
6817 * fold-const.c (size_low_cst): Move from tree.c.
6818 (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
6819 (tree_expr_nonzero_p): Make static. Move earlier in the file.
6820 (fold_build3_initializer_loc): Remove.
6821 (tree_invalid_nonnegative_warnv_p): Make static.
6822 * function.c (expand_main_function): Move to cfgexpand.c.
6823 (stack_protect_prologue): Move to cfgexpand.c.
6824 (set_insn_locations): Move earlier in the file.
6825 * gimple-fold.c: Include langhooks.h.
6826 (truth_type_for): Move from tree.c.
6827 * print-tree.c (print_vec_tree): Remove.
6828 * stmt.c (expand_computed_goto): Move to cfgexpand.c.
6829 (expand_goto): Move to cfgexpand.c.
6830 (n_occurrences): Move to cfgexpand.c.
6831 (expand_asm_loc): Move to cfgexpand.c
6832 (tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
6833 (expand_asm_operands): Move to cfgexpand.c.
6834 (expand_asm_stmt): Move to cfgexpand.c.
6835 (check_operand_nalternatives): Move to cfgexpand.c
6836 (expand_null_return): Move to cfgexpand.c.
6837 (expand_value_return): Move to cfgexpand.c.
6838 (expand_null_return_1): Move to cfgexpand.c.
6839 (expand_return): Move to cfgexpand.c.
6840 (expand_stack_save): Move to builtins.c.
6841 (expand_stack_restore): Move to builtins.c
6842 * symtab.c: Include output.h.
6843 (decl_assembler_name_hash): Move from tree.c.
6844 (decl_assembler_name_equal): Move from tree.c.
6845 * trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
6846 * tree-eh.c (in_array_bounds_p): Move from tree.c.
6847 (range_in_array_bounds_p): Move from tree.c.
6848 * tree-object-size.c (fini_object_sizes): Make static.
6849 * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
6850 * tree-vrp.c (ssa_name_nonnegative_p): Remove.
6851 * tree.c (decl_assembler_name_equal): Move to symtab.c.
6852 (tree_expr_size): Move to explow.c.
6853 (decl_assembler_name_hash): Move to symtab.c.
6854 (real_twop): Remove.
6855 (tree_expr_size): Move to explow.c.
6856 (stabilize_reference_1): Move earlier in the file. Make static.
6857 (omp_remove_redundant_declare_simd_attrs): Remove.
6858 (simple_cst_list_equal): Move earlier in the file. Make static.
6859 (size_low_cst): Move to fold-const.c.
6860 (build_type_no_quals): Remove.
6861 (build_function_type_skip_args): Move to cgraphclones.c.
6862 (build_function_decl_skip_args): Move to cgraphclones.c.
6863 (in_array_bounds_p): Move to tree-eh.c.
6864 (range_in_array_bounds_p): Move to tree-eh.c.
6865 (truth_type_for): Move to gimple-fold.c.
6866 (list_equal_p): Remove.
6867 * tree.h (decl_assembler_name_equal): Remove.
6868 (decl_assembler_name_hash): Remove.
6869 (truth_type_for): Remove.
6870 (build_type_no_quals): Remove.
6871 (build_function_decl_skip_args): Remove.
6872 (in_array_bounds_p): Remove.
6873 (range_in_array_bounds_p): Remove.
6874 (size_low_cst): Remove.
6875 (omp_remove_redundant_declare_simd_attrs): Remove.
6876 (tree_expr_size): Remove.
6877 (fields_length): Remove.
6878 (stabilize_reference_1): Remove.
6879 (expand_goto): Remove.
6880 (expand_stack_save): Remove.
6881 (expand_stack_restore): Remove.
6882 (expand_return): Remove.
6883 (fold_build3_initializer_loc): Remove.
6884 (tree_expr_nonzero_p): Remove.
6885 (tree_invalid_nonnegative_warnv_p): Remove.
6886 (tree_expr_nonzero_warnv_p): Remove.
6887 (fold_builtin_snprintf_chk): Remove.
6888 (validate_arglist): Remove.
6889 (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
6890 (simple_cst_list_equal): Remove.
6891 (real_twop): Remove.
6892 (expand_main_function): Remove.
6893 (stack_protect_prologue): Remove.
6894 (print_vec_tree): Remove.
6895 (lookup_scoped_attribute_spec): Remove.
6896 (get_attribute_namespace): Remove.
6897 (expand_computed_goto): Remove.
6898 (expand_asm_stmt): Remove.
6899 (list_equal_p): Remove.
6900 (ssa_name_nonnegative_p): Remove.
6901 (fini_object_sizes): Remove.
6902 (addr_expr_of_non_mem_decl_p): Remove.
6903 (is_tm_safe_or_pure): Move to trans-mem.c.
6904 (more_const_call_expr_args_p): Remove.
6905 (save_vtable_map_decl): Remove.
6906
6907 2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
6908
6909 * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
6910 linker plugins, too.
6911
6912 * config/arc/arc.h (LINK_COMMAND_SPEC): For -ftree-parallelize-loops=*,
6913 link to libgomp and its dependencies.
6914 * config/ia64/hpux.h (LIB_SPEC): Likewise.
6915 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6916 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6917 * gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's dependencies.
6918
6919 2013-11-07 Jakub Jelinek <jakub@redhat.com>
6920
6921 * tree-ssa-loop-niter.c: Include tree-ssanames.h.
6922 (determine_value_range): Add loop argument. Use get_range_info to
6923 improve range.
6924 (bound_difference): Adjust caller.
6925
6926 2013-11-07 Richard Biener <rguenther@suse.de>
6927 Jakub Jelinek <jakub@redhat.com>
6928
6929 * tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop
6930 latches from header PHI arguments from the latch edge.
6931
6932 2013-11-07 Paolo Carlini <paolo.carlini@oracle.com>
6933
6934 PR c++/58176
6935 * varasm.c (output_constant): Handle NULLPTR_TYPE.
6936
6937 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
6938
6939 * config/i386/i386.c (ix86_expand_set_or_movmem): Don't set
6940 misaligned_prologue_used when it has been set.
6941
6942 2013-11-07 Yury Gribov <y.gribov@samsung.com>
6943 Jakub Jelinek <jakub@redhat.com>
6944
6945 PR sanitizer/59029
6946 * asan.c (get_mem_refs_of_builtin_call): Allow
6947 integer literals as addresses in instrumented builtins.
6948
6949 2013-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6950
6951 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
6952 Explain why plus_constant is not used.
6953
6954 2013-11-07 Richard Biener <rguenther@suse.de>
6955
6956 * tree-ssa-ccp.c (canonicalize_float_value): Rename to ...
6957 (canonicalize_value): ... this. Also handle stripping of
6958 TREE_OVERFLOW.
6959 (get_value, set_lattice_value, get_value_for_expr): Adjust.
6960 * gimple-fold.c (canonicalize_constructor_val): Strip TREE_OVERFLOW.
6961 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
6962
6963 2013-11-07 Richard Biener <rguenther@suse.de>
6964
6965 * tree-dfa.c (get_ref_base_and_extent): Fix casting.
6966
6967 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
6968
6969 PR target/59034
6970 * config/i386/i386.md (push peepholer/splitter): Use Pmode
6971 with stack_pointer_rtx.
6972
6973 2013-11-07 Bin Cheng <bin.cheng@arm.com>
6974
6975 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Check equality
6976 using operand_equal_p.
6977
6978 2013-11-07 Bin Cheng <bin.cheng@arm.com>
6979
6980 * tree-ssa-loop-ivopts.c (alloc_iv): Lower address expressions.
6981 * tree-affine.c (get_inner_reference_aff): Return base.
6982 * tree-affine.h (get_inner_reference_aff): Change prototype.
6983
6984 2013-11-06 Tobias Burnus <burnus@net-b.de>
6985
6986 * doc/invoke.texi (Wdate-time): Fix typo.
6987
6988 2013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
6989
6990 * config/sh/sh.md (addsf3, divsf3, divsf3_i, rsqrtsf2, cmpgtdf_t,
6991 cmpeqdf_t, *ieee_ccmpeqdf_t, negdf2, sqrtdf2, absdf2): Use
6992 fp_arith_reg_operand instead of arith_reg_operand.
6993
6994 2013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
6995
6996 * config/sh/sh.md (adddi3): Remove empty constraints.
6997 Remove can_create_pseudo_p and arith_reg_operand check.
6998 (adddi3_compact, subdi3_compact, *negdi2): Remove constraints.
6999 Split before reload.
7000
7001 2013-11-06 Jeff Law <law@redhat.com>
7002 Tom Tromey <tromey@redhat.com>
7003
7004 * gdbinit.in: Disable strict type checking.
7005
7006 2013-11-06 Vladimir Makarov <vmakarov@redhat.com>
7007
7008 * tree-pass.h (make_pass_live_range_shrinkage): New external.
7009 * timevar.def (TV_LIVE_RANGE_SHRINKAGE): New.
7010 * sched-rgn.c (gate_handle_live_range_shrinkage): New.
7011 (rest_of_handle_live_range_shrinkage): Ditto
7012 (class pass_live_range_shrinkage): Ditto.
7013 (pass_data_live_range_shrinkage): Ditto.
7014 (make_pass_live_range_shrinkage): Ditto.
7015 * sched-int.h (initialize_live_range_shrinkage): New prototype.
7016 (finish_live_range_shrinkage): Ditto.
7017 * sched-deps.c (create_insn_reg_set): Make void return value.
7018 * passes.def: Add pass_live_range_shrinkage.
7019 * ira.c (update_equiv_regs): Don't move if flag_live_range_shrinkage.
7020 * haifa-sched.c (live_range_shrinkage_p): New.
7021 (initialize_live_range_shrinkage, finish_live_range_shrinkage):
7022 New functions.
7023 (rank_for_schedule): Add code for pressure relief through live
7024 range shrinkage.
7025 (schedule_insn): Print more debug info.
7026 (sched_init): Setup SCHED_PRESSURE_WEIGHTED for pressure relief
7027 through live range shrinkage.
7028 * doc/invoke.texi (-flive-range-shrinkage): New.
7029 * common.opt (flive-range-shrinkage): New.
7030
7031 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
7032
7033 PR target/59021
7034 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
7035 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
7036 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
7037 RTXes that return in AVX256 register.
7038
7039 2013-11-06 Richard Biener <rguenther@suse.de>
7040
7041 PR tree-optimization/58653
7042 * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF.
7043 (prepare_initializers_chain): Adjust.
7044
7045 2013-11-06 Andrew MacLeod <amacleod@redhat.com>
7046
7047 * gimple.h (block_in_transaction): Move to basic-block.h and rename.
7048 (gimple_in_transaction): Use bb_in_transaction.
7049 * basic-block.h (bb_in_transaction): Relocate here and rename.
7050 * tree-ssa-loop-im.c (execute_sm): Use bb_in_transaction.
7051
7052 2013-11-06 Richard Biener <rguenther@suse.de>
7053
7054 * tree.c (drop_tree_overflow): New function.
7055 * tree.h (drop_tree_overflow): Declare.
7056 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW.
7057 * tree-vrp.c (range_int_cst_singleton_p): Use
7058 is_overflow_infinity instead of testing TREE_OVERFLOW.
7059 (extract_range_from_assert): Likewise.
7060 (zero_nonzero_bits_from_vr): Likewise.
7061 (extract_range_basic): Likewise.
7062 (register_new_assert_for): Use drop_tree_overflow.
7063 (vrp_visit_phi_node): Likewise.
7064
7065 2013-11-06 Eric Botcazou <ebotcazou@adacore.com>
7066
7067 * config/i386/i386.c (ix86_expand_prologue): Optimize stack
7068 checking for leaf functions without dynamic stack allocation.
7069 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
7070 (ia64_expand_prologue): Likewise.
7071 * config/mips/mips.c (mips_expand_prologue): Likewise.
7072 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
7073 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
7074 (sparc_flat_expand_prologue): Likewise.
7075
7076 2013-11-06 James Greenhalgh <james.greenhalgh@arm.com>
7077
7078 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Better model data size.
7079 (__ST3_LANE_FUNC): Likewise.
7080 (__ST4_LANE_FUNC): Likewise.
7081
7082 2013-11-06 Nick Clifton <nickc@redhat.com>
7083
7084 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define the
7085 name returned by msp430_mcu_name.
7086 (LIB_SPEC): If a -T option has not been specified then set a
7087 default, mcu-specific, linker script.
7088 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more mcu names.
7089 * config/msp430/msp430.c (msp430x_names): Likewise.
7090 Alpha sort the names for ease of comparison.
7091 (msp430_mcu_name): New function: Returns a string suitable for
7092 use as a C preprocessor symbol based upon the name of the MCU
7093 being targeted.
7094 (msp430_option_override): Accept msp430x and msp430xv2 as generic
7095 mcu names.
7096 * config/msp430/msp430-protos.h (msp430_mcu_name): Prototype.
7097
7098 * gcc.c (do_spec_1): Do not insert a space after a %* substitution
7099 unless it is the last part of a spec substring.
7100 * doc/invoke.texi (Spec Files): Document space insertion
7101 behaviour of %*.
7102
7103 2013-11-06 Christian Bruel <christian.bruel@st.com>
7104
7105 * config/sh/sh-mem.cc (sh_expand_cmpnstr, sh_expand_cmpstr):
7106 Factorize probabilities, Use adjust_address instead of
7107 adjust_automodify_address when possible. Enable for optimize.
7108 (sh_expand_strlen): New function.
7109 * config/sh/sh-protos.h (sh_expand_strlen): Declare.
7110 * config/sh/sh.md (strlensi): New pattern.
7111 (UNSPEC_BUILTIN_STRLEN): Define.
7112
7113 2013-11-06 Jakub Jelinek <jakub@redhat.com>
7114
7115 PR middle-end/58970
7116 * expr.c (get_bit_range): Handle *offset == NULL_TREE.
7117 (expand_assignment): If *bitpos is negative, set *offset
7118 and adjust *bitpos, so that it is not negative.
7119
7120 2013-11-06 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
7121
7122 * config/i386/bdver3.md : Added two additional decoder units
7123 to support issue rate of 4 and remodeled vector unit.
7124 * config/i386/i386.c (ix86_issue_rate): Issue rate for BD
7125 architectures is set to 4.
7126 * config/i386/i386.c (ia32_multipass_dfa_lookahead): DFA
7127 lookahead is set to 4 for BD architectures.
7128
7129 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7130
7131 * config/rs6000/rs6000.c (rs6000_option_override_internal):
7132 Remove restriction against use of VSX instructions when generating
7133 code for little endian mode.
7134
7135 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7136
7137 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
7138 for both big and little endian.
7139 (mulv8hi3): Swap input operands for merge high and merge low
7140 instructions for little endian.
7141
7142 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7143
7144 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
7145 define_insn to define_expand that uses even patterns for big
7146 endian and odd patterns for little endian.
7147 (vec_widen_smult_even_v16qi): Likewise.
7148 (vec_widen_umult_even_v8hi): Likewise.
7149 (vec_widen_smult_even_v8hi): Likewise.
7150 (vec_widen_umult_odd_v16qi): Likewise.
7151 (vec_widen_smult_odd_v16qi): Likewise.
7152 (vec_widen_umult_odd_v8hi): Likewise.
7153 (vec_widen_smult_odd_v8hi): Likewise.
7154 (altivec_vmuleub): New define_insn.
7155 (altivec_vmuloub): Likewise.
7156 (altivec_vmulesb): Likewise.
7157 (altivec_vmulosb): Likewise.
7158 (altivec_vmuleuh): Likewise.
7159 (altivec_vmulouh): Likewise.
7160 (altivec_vmulesh): Likewise.
7161 (altivec_vmulosh): Likewise.
7162
7163 2013-11-05 Mike Stump <mikestump@comcast.net>
7164
7165 * Makefile.in (mostlyclean): Remove c-family objects.
7166
7167 2013-11-05 Ian Lance Taylor <iant@google.com>
7168
7169 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
7170 If possible, add .cfi directives to record change to bx.
7171 * config/i386/i386.c (ix86_emit_cfi): New function.
7172 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
7173
7174 2013-11-05 Steven Bosscher <steven@gcc.gnu.org>
7175
7176 * rtlanal.c (tablejump_p): Expect a JUMP_TABLE_DATA to always follow
7177 immediately after a label for a tablejump pattern.
7178
7179 * config/arm/arm.c (is_jump_table): Remove.
7180 (create_fix_barrier): Use tablejump_p instead.
7181 (arm_reorg): Likewise.
7182 (thumb1_output_casesi): Expect JUMP_TABLE_DATA to always be NEXT_INSN.
7183 (thumb2_output_casesi): Likewise.
7184 * config/aarch64/aarch64.c (aarch64_output_casesi): Likewise.
7185 * config/sh/sh.md (casesi_worker_1, casesi_worker_2,
7186 casesi_shift_media, casesi_load_media): Likewise.
7187 * config/iq2000/iq2000.md: Likewise (in anonymous define_insn).
7188 * config/microblaze/microblaze.md: Likewise.
7189
7190 2013-11-05 Tobias Burnus <burnus@net-b.de>
7191
7192 * doc/invoke.texi (-Wdate-time): Document.
7193
7194 2013-11-05 Richard Sandiford <rdsandiford@googlemail.com>
7195
7196 * double-int.c (lshift_double, rshift_double): Remove
7197 SHIFT_COUNT_TRUNCATED handling.
7198
7199 2013-11-05 Jeff Law <law@redhat.com>
7200
7201 * Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
7202 * common.opt (-fisolate-erroneous-paths): Add option and documentation.
7203 * gimple-ssa-isolate-paths.c: New file.
7204 * gimple.c (check_loadstore): New function.
7205 (infer_nonnull_range): Moved into gimple.c from tree-vrp.c
7206 Verify OP is in the argument list and the argument corresponding
7207 to OP is a pointer type. Use operand_equal_p rather than
7208 pointer equality when testing if OP is on the nonnull list.
7209 Use check_loadstore rather than count_ptr_derefs. Handle
7210 GIMPLE_RETURN statements.
7211 * tree-vrp.c (infer_nonnull_range): Remove.
7212 * gimple.h (infer_nonnull_range): Declare.
7213 * opts.c (default_options_table): Add OPT_fisolate_erroneous_paths.
7214 * passes.def: Add pass_isolate_erroneous_paths.
7215 * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar.
7216 * tree-pass.h (make_pass_isolate_erroneous_paths): Declare.
7217 * tree-ssa.c (struct count_ptr_d): Remove.
7218 (count_ptr_derefs, count_uses_and_derefs): Remove.
7219 * tree-ssa.h (count_uses_and_derefs): Remove.
7220
7221 2013-11-05 Jakub Jelinek <jakub@redhat.com>
7222
7223 PR rtl-optimization/58997
7224 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
7225 get_iv_value to be in iv->mode rather than iv->extend_mode.
7226 (iv_extend): Likewise. Otherwise, if iv->extend != extend,
7227 use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
7228 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
7229 mode.
7230
7231 2013-11-05 Andrew MacLeod <amacleod@redhat.com>
7232
7233 * gimple.h: Move some prototypes to gimple-expr.h and add to include
7234 list.
7235 (extract_ops_from_tree, gimple_call_addr_fndecl, is_gimple_reg_type):
7236 Move to gimple-expr.h.
7237 * gimple-expr.h: New file. Relocate some prototypes from gimple.h.
7238 (types_compatible_p, is_gimple_reg_type, is_gimple_variable,
7239 is_gimple_id, virtual_operand_p, is_gimple_addressable,
7240 is_gimple_constant, extract_ops_from_tree, gimple_call_addr_fndecl):
7241 Relocate here.
7242 * gimple.c (extract_ops_from_tree_1, gimple_cond_get_ops_from_tree,
7243 gimple_set_body, gimple_body, gimple_has_body_p, is_gimple_lvalue,
7244 is_gimple_condexpr, is_gimple_addressable, is_gimple_constant,
7245 is_gimple_address, is_gimple_invariant_address,
7246 is_gimple_ip_invariant_address, is_gimple_min_invariant,
7247 is_gimple_ip_invariant, is_gimple_variable, is_gimple_id,
7248 virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val,
7249 is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr,
7250 gimple_decl_printable_name, useless_type_conversion_p,
7251 types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
7252 gimple-expr.[ch].
7253 * gimple-expr.c: New File.
7254 (useless_type_conversion_p, gimple_set_body, gimple_body,
7255 gimple_has_body_p, gimple_decl_printable_name, copy_var_decl,
7256 gimple_can_coalesce_p, extract_ops_from_tree_1,
7257 gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr,
7258 is_gimple_address, is_gimple_invariant_address,
7259 is_gimple_ip_invariant_address, is_gimple_min_invariant,
7260 is_gimple_ip_invariant, is_gimple_reg, is_gimple_val,
7261 is_gimple_asm_val, is_gimple_min_lval, is_gimple_call_addr,
7262 is_gimple_mem_ref_addr): Relocate here.
7263 * Makefile.in (OBJS): Add gimple-expr.o.
7264
7265 2013-11-05 David Malcolm <dmalcolm@redhat.com>
7266
7267 * gengtype-parse.c (struct_field_seq): Support empty structs.
7268
7269 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
7270
7271 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
7272
7273 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
7274
7275 * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
7276 for !TARGET_80387.
7277 * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
7278 _SOFT_FLOAT here.
7279 (LONG_DOUBLE_TYPE_SIZE): New define.
7280 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.
7281
7282 2013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
7283
7284 PR c++/58724
7285 * doc/extend.texi [visibility ("visibility_type")]: Add example
7286 about visibility attribute on namespace declaration.
7287
7288 2013-11-05 Richard Biener <rguenther@suse.de>
7289
7290 PR ipa/58492
7291 * passes.def (all_passes): Start with pass_fixup_cfg again.
7292
7293 2013-11-05 Richard Biener <rguenther@suse.de>
7294
7295 PR tree-optimization/58955
7296 * tree-loop-distribution.c (pg_add_dependence_edges): Fix
7297 edge direction.
7298
7299 2013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7300
7301 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
7302 little endian.
7303 (vec_pack_ufix_trunc_v2df): Likewise.
7304
7305 2013-11-05 H.J. Lu <hongjiu.lu@intel.com>
7306
7307 PR middle-end/58981
7308 * doc/md.texi (@code{movmem@var{m}}): Specify Pmode as mode of
7309 pattern, instead of word_mode.
7310
7311 * expr.c (emit_block_move_via_movmem): Don't use mode wider than
7312 Pmode for size.
7313 (set_storage_via_setmem): Likewise.
7314
7315 2013-11-05 Andrew MacLeod <amacleod@redhat.com>
7316
7317 * tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
7318 gimple.h and the rest of the condition in eliminate_build.
7319 (eliminate_build): Call new routine.
7320 * gimple.h (phi_ssa_name_p): Delete.
7321
7322 2013-11-05 Trevor Saunders <tsaunders@mozilla.com>
7323
7324 * vec.c (vec_prefix::calculate_allocation): Don't try to handle the
7325 case of no prefix and reserving zero slots, because when that's the
7326 case we'll never get here.
7327 * vec.h (va_heap::reserve): Don't try and handle
7328 vec_prefix::calculate_allocation returning zero because that should
7329 never happen.
7330
7331 2013-11-05 Richard Biener <rguenther@suse.de>
7332
7333 PR middle-end/58941
7334 * tree-dfa.c (get_ref_base_and_extent): Merge common code
7335 in MEM_REF and TARGET_MEM_REF handling. Make sure to
7336 process trailing array detection before diving into the
7337 view-converted object (and possibly apply some extra offset).
7338
7339 2013-11-05 Joseph Myers <joseph@codesourcery.com>
7340
7341 * config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
7342 New function.
7343 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.
7344
7345 2013-11-05 Marc Glisse <marc.glisse@inria.fr>
7346
7347 PR tree-optimization/58958
7348 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Use
7349 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
7350
7351 2013-11-05 Marc Glisse <marc.glisse@inria.fr>
7352
7353 * tree-ssa-alias.h (ranges_overlap_p): Handle negative offsets.
7354 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
7355
7356 2013-11-05 Jakub Jelinek <jakub@redhat.com>
7357
7358 PR tree-optimization/58984
7359 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
7360 set *SIZE_P if non-NULL on success.
7361 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
7362 callers.
7363 (ipcp_transform_function): Likewise. Punt if size of access
7364 is different from TYPE_SIZE on v->value's type.
7365
7366 2013-11-05 Tobias Burnus <burnus@net-b.de>
7367
7368 * doc/invoke.texi (-fopenmp-simd): Document new option.
7369 * gimplify.c (gimplify_body): Accept -fopenmp-simd.
7370 * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto.
7371 * tree.c (attribute_value_equal): Ditto.
7372
7373 2013-11-04 Wei Mi <wmi@google.com>
7374
7375 * sched-rgn.c (add_branch_dependences): Keep insns in
7376 a SCHED_GROUP at the end of BB to remain their location.
7377
7378 2013-11-04 Wei Mi <wmi@google.com>
7379
7380 * config/i386/i386.c (memory_address_length): Extract a part
7381 of code to rip_relative_addr_p.
7382 (rip_relative_addr_p): New Function.
7383 (ix86_macro_fusion_p): Ditto.
7384 (ix86_macro_fusion_pair_p): Ditto.
7385 * config/i386/i386.h: Add new tune features about macro-fusion.
7386 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
7387 * doc/tm.texi: Generated.
7388 * doc/tm.texi.in: Ditto.
7389 * haifa-sched.c (try_group_insn): New Function.
7390 (group_insns_for_macro_fusion): Ditto.
7391 (sched_init): Call group_insns_for_macro_fusion.
7392 * target.def: Add two hooks: macro_fusion_p and
7393 macro_fusion_pair_p.
7394
7395 2013-11-04 Kostya Serebryany <kcc@google.com>
7396
7397 Update to match the changed asan API.
7398 * asan.c (asan_function_start): New function.
7399 (asan_emit_stack_protection): Update the string stored in the
7400 stack red zone to match new API. Store the PC of the current
7401 function in the red zone.
7402 (asan_global_struct): Update the __asan_global definition to match
7403 the new API.
7404 (asan_add_global): Ditto.
7405 * asan.h (asan_function_start): New prototype.
7406 * final.c (final_start_function): Call asan_function_start.
7407 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1
7408 to __asan_init_v3.
7409
7410 2013-11-04 Wei Mi <wmi@google.com>
7411
7412 * config/i386/i386-c.c (ix86_target_macros_internal): Separate
7413 PROCESSOR_COREI7_AVX out from PROCESSOR_COREI7.
7414 * config/i386/i386.c (ix86_option_override_internal): Ditto.
7415 (ix86_issue_rate): Ditto.
7416 (ix86_adjust_cost): Ditto.
7417 (ia32_multipass_dfa_lookahead): Ditto.
7418 (ix86_sched_init_global): Ditto.
7419 (get_builtin_code_for_version): Ditto.
7420 * config/i386/i386.h (enum target_cpu_default): Ditto.
7421 (enum processor_type): Ditto.
7422 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
7423
7424 2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
7425
7426 PR rtl-optimization/58967
7427 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
7428 !lra_in_progress for mode sizes bigger word.
7429
7430 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7431
7432 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
7433 arguments to merge instruction for little endian.
7434 (vec_widen_umult_lo_v16qi): Likewise.
7435 (vec_widen_smult_hi_v16qi): Likewise.
7436 (vec_widen_smult_lo_v16qi): Likewise.
7437 (vec_widen_umult_hi_v8hi): Likewise.
7438 (vec_widen_umult_lo_v8hi): Likewise.
7439 (vec_widen_smult_hi_v8hi): Likewise.
7440 (vec_widen_smult_lo_v8hi): Likewise.
7441
7442 2013-11-04 Ian Lance Taylor <iant@google.com>
7443
7444 * builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
7445 * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync
7446 builtins that take pointers.
7447 * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set.
7448 * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions.
7449 (run_gcc): Pass -fnon-call-exceptions.
7450
7451 2013-11-04 Jakub Jelinek <jakub@redhat.com>
7452
7453 * optabs.c (expand_vec_perm): Revert one incorrect line from
7454 2013-10-31 change.
7455
7456 PR tree-optimization/58978
7457 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify
7458 use_stmt by single_imm_use directly. Only call single_imm_use
7459 on SSA_NAMEs.
7460
7461 2013-11-04 Vladimir Makarov <vmakarov@redhat.com>
7462
7463 PR rtl-optimization/58968
7464 * lra-spills.c (return_regno_p): New function.
7465 (lra_final_code_change): Use it.
7466
7467 2013-11-04 Joseph Myers <joseph@codesourcery.com>
7468
7469 * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros.
7470 * target.def (float_exceptions_rounding_supported_p): New hook.
7471 * targhooks.c (default_float_exceptions_rounding_supported_p): New
7472 function.
7473 * targhooks.h (default_float_exceptions_rounding_supported_p): Declare.
7474 * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P):
7475 New @hook.
7476 * doc/tm.texi: Regenerate.
7477 * config.gcc (powerpc*-*-linux*): Set extra_objs.
7478 * config/rs6000/rs6000-linux.c: New file.
7479 * config/rs6000/rs6000-protos.h
7480 (rs6000_linux_float_exceptions_rounding_supported_p): Declare.
7481 * config/rs6000/linux.h
7482 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro.
7483 * config/rs6000/linux64.h
7484 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise.
7485 * config/rs6000/t-linux (rs6000-linux.o): New rule.
7486 * config/rs6000/t-linux64 (rs6000-linux.o): Likewise.
7487
7488 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7489
7490 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
7491 Replace the define_insn_and_split with a define_insn and two
7492 define_splits, with the split after reload re-permuting the source
7493 register to its original value.
7494 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
7495 (*vsx_le_perm_store_v8hi): Likewise.
7496 (*vsx_le_perm_store_v16qi): Likewise.
7497
7498 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7499
7500 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for
7501 little endian.
7502
7503 2013-11-04 Jakub Jelinek <jakub@redhat.com>
7504
7505 PR tree-optimization/58946
7506 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all
7507 bbs with bbinfo[idx].op != NULL before all blocks with
7508 bbinfo[idx].op == NULL.
7509
7510 2013-11-04 Richard Sandiford <rdsandiford@googlemail.com>
7511
7512 * config/avr/avr-log.c (avr_double_int_pop_digit): Delete.
7513 (avr_dump_double_int_hex): Likewise.
7514 (avr_log_vadump): Remove %D and %X handling.
7515 * config/avr/avr.c (avr_double_int_push_digit): Delete.
7516 (avr_map_op_t): Change map from double_int to unsigned int.
7517 (avr_map_op): Update accordingly.
7518 (avr_map, avr_map_metric, avr_has_nibble_0xf, avr_map_decompose)
7519 (avr_move_bits, avr_out_insert_bits, avr_fold_builtin): Operate on
7520 unsigned ints rather than double_ints.
7521
7522 2013-11-03 Marek Polacek <polacek@redhat.com>
7523
7524 Implement -fsanitize=vla-bound.
7525 * opts.c (common_handle_option): Handle vla-bound.
7526 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define.
7527 * flag-types.h (enum sanitize_code): Add SANITIZE_VLA.
7528 * asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR.
7529
7530 2013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
7531
7532 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
7533 little endian.
7534
7535 2013-11-02 Uros Bizjak <ubizjak@gmail.com>
7536
7537 * config/i386/constraints.md (Ts, Tv): New address constrains.
7538 * config/i386/i386.md (*lea<mode>, *<mode>_<bndcheck>): Use Ts
7539 constraint for address_no_seg_operand.
7540 * config/i386/sse.md (*avx512pf_gatherpf<mode>_mask)
7541 (*avx512pf_gatherpf<mode>, *avx512pf_scatterpf<mode>_mask)
7542 (*avx512pf_scatterpf<mode>, *avx2_gathersi<mode>)
7543 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>_2)
7544 (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4)
7545 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2)
7546 (*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2)
7547 (*avx512f_scattersi<mode> *avx512f_scatterdi<mode>): Use Tv
7548 constraint for vsib_address_operand.
7549
7550 2013-11-02 Steven Bosscher <steven@gcc.gnu.org>
7551
7552 * gcse.c (pre_delete): Remove references to regmove from comments.
7553 * recog.c: (validate_replace_rtx_1): Likewise.
7554 * config/rl78/rl78.c: Likewise.
7555 * config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS.
7556 * common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove.
7557 * common/config/mmix/mmix-common.c: Likewise.
7558
7559 2013-11-01 Trevor Saunders <tsaunders@mozilla.com>
7560
7561 * function.c (reorder_blocks): Convert block_stack to a stack_vec.
7562 * gimplify.c (gimplify_compound_lval): Likewise.
7563 * graphite-clast-to-gimple.c (gloog): Likewise.
7564 * graphite-dependences.c (loop_is_parallel_p): Likewise.
7565 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
7566 (limit_scop); Likewise.
7567 (build_scops): Likewise.
7568 (dot_scop): Likewise.
7569 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
7570 (build_scop_drs): Likewise.
7571 (insert_stmts): Likewise.
7572 (insert_out_of_ssa_copy): Likewise.
7573 (remove_phi): Likewise.
7574 (rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise.
7575 * hw-doloop.c (discover_loop): Likewise.
7576 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise.
7577 * tree-dfa.c (dump_enumerated_decls): Likewise.
7578 * tree-if-conv.c (if_convertable_loop_p): Likewise.
7579 * tree-inline.c (tree_function_versioning): Likewise.
7580 * tree-loop-distribution.c (build_rdg): Likewise.
7581 (rdg_flag_vertex_and_dependent): Likewise.
7582 (distribute_loop): Likewise.
7583 * tree-parloops.c (loop_parallel_p): Likewise.
7584 (eliminate_local_variables): Likewise.
7585 (separate_decls_in_region): Likewise.
7586 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
7587 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
7588 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
7589 * tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise.
7590 * tree-vect-patterns.c (vect_pattern_recog): Likewise.
7591 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
7592 (vectorizable_condition): Likewise.
7593
7594 2013-11-01 Uros Bizjak <ubizjak@gmail.com>
7595
7596 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
7597 * configure: Regenerate.
7598 * config/i386/i386.md (*movdi_internal): Change
7599 HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
7600 (*movdf_internal): Ditto.
7601 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
7602 * config/i386/sse.md (vec_concatv2di): Output interunit movq
7603 for HAVE_AS_IX86_INTERUNIT_MOVQ targets.
7604
7605 2013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com>
7606
7607 * lra-spills.c (assign_spill_hard_regs): Remove statement terminator
7608 after comment.
7609
7610 2013-10-31 David Malcolm <dmalcolm@redhat.com>
7611
7612 Automated part of renaming of symtab_node_base to symtab_node.
7613
7614 Patch autogenerated by rename_symtab.py from
7615 https://github.com/davidmalcolm/gcc-refactoring-scripts
7616 revision 58bb219cc090b2f4516a9297d868c245495ee622
7617 with ChangeLog entry fixed up by hand.
7618
7619 * cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to
7620 symtab_node.
7621 (cgraph_node_for_asm): Likewise.
7622 * cgraph.h (symtab_node_base): Likewise.
7623 (cgraph_node): Likewise.
7624 (varpool_node): Likewise.
7625 (is_a_helper <cgraph_node>::test): Likewise.
7626 (is_a_helper <varpool_node>::test): Likewise.
7627 (symtab_nodes): Likewise.
7628 (symtab_register_node): Likewise.
7629 (symtab_unregister_node): Likewise.
7630 (symtab_remove_node): Likewise.
7631 (symtab_get_node): Likewise.
7632 (symtab_node_for_asm): Likewise.
7633 (symtab_node_asm_name): Likewise.
7634 (symtab_node_name): Likewise.
7635 (symtab_insert_node_to_hashtable): Likewise.
7636 (symtab_add_to_same_comdat_group): Likewise.
7637 (symtab_dissolve_same_comdat_group_list): Likewise.
7638 (dump_symtab_node): Likewise.
7639 (debug_symtab_node): Likewise.
7640 (dump_symtab_base): Likewise.
7641 (verify_symtab_node): Likewise.
7642 (verify_symtab_base): Likewise.
7643 (symtab_used_from_object_file_p): Likewise.
7644 (symtab_alias_ultimate_target): Likewise.
7645 (symtab_resolve_alias): Likewise.
7646 (fixup_same_cpp_alias_visibility): Likewise.
7647 (symtab_for_node_and_aliases): Likewise.
7648 (symtab_nonoverwritable_alias): Likewise.
7649 (availability symtab_node_availability): Likewise.
7650 (symtab_semantically_equivalent_p): Likewise.
7651 (fixup_same_cpp_alias_visibility): Likewise.
7652 (symtab_prevail_in_asm_name_hash): Likewise.
7653 (cgraph): Likewise.
7654 (varpool): Likewise.
7655 (varpool_first_variable): Likewise.
7656 (varpool_next_variable): Likewise.
7657 (varpool_first_static_initializer): Likewise.
7658 (varpool_next_static_initializer): Likewise.
7659 (varpool_first_defined_variable): Likewise.
7660 (varpool_next_defined_variable): Likewise.
7661 (cgraph_first_defined_function): Likewise.
7662 (cgraph_next_defined_function): Likewise.
7663 (cgraph_first_function): Likewise.
7664 (cgraph_next_function): Likewise.
7665 (cgraph_first_function_with_gimple_body): Likewise.
7666 (cgraph_next_function_with_gimple_body): Likewise.
7667 (symtab_alias_target): Likewise.
7668 (symtab_real_symbol_p): Likewise.
7669 (symtab_can_be_discarded): Likewise.
7670 * cgraphbuild.c (mark_address): Likewise.
7671 (mark_load): Likewise.
7672 (mark_store): Likewise.
7673 * cgraphunit.c (decide_is_symbol_needed): Likewise.
7674 (first): Likewise.
7675 (enqueue_node): Likewise.
7676 (referred_to_p): Likewise.
7677 (cgraph_process_same_body_aliases): Likewise.
7678 (analyze_functions): Likewise.
7679 (handle_alias_pairs): Likewise.
7680 (output_weakrefs): Likewise.
7681 (compile): Likewise.
7682 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
7683 * ipa-inline-analysis.c (inline_write_summary): Likewise.
7684 * ipa-prop.c (remove_described_reference): Likewise.
7685 (try_decrement_rdesc_refcount): Likewise.
7686 (ipa_edge_duplication_hook): Likewise.
7687 * ipa-ref.c (ipa_record_reference): Likewise.
7688 (ipa_maybe_record_reference): Likewise.
7689 (ipa_clone_ref): Likewise.
7690 (ipa_clone_references): Likewise.
7691 (ipa_clone_referring): Likewise.
7692 (ipa_find_reference): Likewise.
7693 (ipa_remove_stmt_references): Likewise.
7694 (ipa_clear_stmts_in_references): Likewise.
7695 * ipa-ref.h (symtab_node_base): Likewise.
7696 (ipa_ref): Likewise.
7697 (ipa_record_reference): Likewise.
7698 (ipa_maybe_record_reference): Likewise.
7699 (ipa_clone_references): Likewise.
7700 (ipa_clone_referring): Likewise.
7701 (ipa_clone_ref): Likewise.
7702 (ipa_find_reference): Likewise.
7703 (ipa_remove_stmt_references): Likewise.
7704 (ipa_clear_stmts_in_references): Likewise.
7705 * ipa-reference.c (ipa_reference_write_optimization_summary):
7706 Likewise.
7707 * ipa.c (enqueue_node): Likewise.
7708 (process_references): Likewise.
7709 (walk_polymorphic_call_targets): Likewise.
7710 (symtab_remove_unreachable_nodes): Likewise.
7711 (address_taken_from_non_vtable_p): Likewise.
7712 (comdat_can_be_unshared_p_1): Likewise.
7713 (comdat_can_be_unshared_p): Likewise.
7714 (can_replace_by_local_alias): Likewise.
7715 (function_and_variable_visibility): Likewise.
7716 * is-a.h: Likewise (within example in comment).
7717 * lto-cgraph.c (input_cgraph_opt_summary): Likewise.
7718 (lto_symtab_encoder_encode): Likewise.
7719 (lto_symtab_encoder_delete_node): Likewise.
7720 (lto_symtab_encoder_in_partition_p): Likewise.
7721 (lto_set_symtab_encoder_in_partition): Likewise.
7722 (output_refs): Likewise.
7723 (compute_ltrans_boundary): Likewise.
7724 (output_symtab): Likewise.
7725 (input_node): Likewise.
7726 (input_ref): Likewise.
7727 (input_edge): Likewise.
7728 (input_cgraph_1): Likewise.
7729 (input_refs): Likewise.
7730 (output_cgraph_opt_summary): Likewise.
7731 (input_node_opt_summary): Likewise.
7732 (input_cgraph_opt_section): Likewise.
7733 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
7734 Likewise.
7735 * lto-streamer-out.c (lto_output): Likewise.
7736 (output_symbol_p): Likewise.
7737 (produce_symtab): Likewise.
7738 * lto-streamer.h (lto_encoder_entry): Likewise.
7739 (lto_free_function_in_decl_state_for_node): Likewise.
7740 (lto_symtab_encoder_encode): Likewise.
7741 (lto_symtab_encoder_delete_node): Likewise.
7742 (lto_symtab_encoder_in_partition_p): Likewise.
7743 (lto_set_symtab_encoder_in_partition): Likewise.
7744 (lto_symtab_encoder_lookup): Likewise.
7745 (lsei_node): Likewise.
7746 (lto_symtab_encoder_deref): Likewise.
7747 * symtab.c (symtab_hash): Likewise.
7748 (assembler_name_hash): Likewise.
7749 (symtab_nodes): Likewise.
7750 (hash_node): Likewise.
7751 (eq_node): Likewise.
7752 (hash_node_by_assembler_name): Likewise.
7753 (eq_assembler_name): Likewise.
7754 (insert_to_assembler_name_hash): Likewise.
7755 (unlink_from_assembler_name_hash): Likewise.
7756 (symtab_prevail_in_asm_name_hash): Likewise.
7757 (symtab_register_node): Likewise.
7758 (symtab_insert_node_to_hashtable): Likewise.
7759 (symtab_unregister_node): Likewise.
7760 (symtab_get_node): Likewise.
7761 (symtab_remove_node): Likewise.
7762 (symtab_initialize_asm_name_hash): Likewise.
7763 (symtab_node_for_asm): Likewise.
7764 (symtab_add_to_same_comdat_group): Likewise.
7765 (symtab_dissolve_same_comdat_group_list): Likewise.
7766 (symtab_node_asm_name): Likewise.
7767 (symtab_node_name): Likewise.
7768 (dump_symtab_base): Likewise.
7769 (dump_symtab_node): Likewise.
7770 (dump_symtab): Likewise.
7771 (debug_symtab_node): Likewise.
7772 (verify_symtab_base): Likewise.
7773 (verify_symtab_node): Likewise.
7774 (verify_symtab): Likewise.
7775 (symtab_used_from_object_file_p): Likewise.
7776 (symtab_node_availability): Likewise.
7777 (symtab_alias_ultimate_target): Likewise.
7778 (fixup_same_cpp_alias_visibility): Likewise.
7779 (symtab_resolve_alias): Likewise.
7780 (symtab_for_node_and_aliases): Likewise.
7781 (symtab_for_node_and_aliases): Likewise.
7782 (symtab_nonoverwritable_alias_1): Likewise.
7783 (symtab_nonoverwritable_alias): Likewise.
7784 (symtab_semantically_equivalent_p): Likewise.
7785 * value-prof.c (init_node_map): Likewise.
7786 * varasm.c (find_decl): Likewise.
7787 * varpool.c (varpool_node_for_asm): Likewise.
7788 (varpool_remove_unreferenced_decls): Likewise.
7789
7790 2013-10-31 David Malcolm <dmalcolm@redhat.com>
7791
7792 Manual part of renaming of symtab_node_base to symtab_node.
7793
7794 * ipa-ref.h (symtab_node): Remove typedef to pointer type, as it
7795 clashes with the preferred name for the base class.
7796 (const_symtab_node): Remove redundant typedef.
7797
7798 2013-10-31 Jakub Jelinek <jakub@redhat.com>
7799
7800 * optabs.c (expand_vec_perm): Avoid vector mode punning
7801 SUBREGs in SET_DEST.
7802 * expmed.c (store_bit_field_1): Likewise.
7803 * config/i386/sse.md (movdi_to_sse, vec_pack_sfix_trunc_v2df,
7804 vec_pack_sfix_v2df, vec_shl_<mode>, vec_shr_<mode>,
7805 vec_interleave_high<mode>, vec_interleave_low<mode>): Likewise.
7806 * config/i386/i386.c (ix86_expand_vector_move_misalign,
7807 ix86_expand_sse_movcc, ix86_expand_int_vcond, ix86_expand_vec_perm,
7808 ix86_expand_sse_unpack, ix86_expand_args_builtin,
7809 ix86_expand_vector_init_duplicate, ix86_expand_vector_set,
7810 emit_reduc_half, expand_vec_perm_blend, expand_vec_perm_pshufb,
7811 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
7812 expand_vec_perm_vpshufb2_vpermq,
7813 expand_vec_perm_vpshufb2_vpermq_even_odd, expand_vec_perm_even_odd_1,
7814 expand_vec_perm_broadcast_1, expand_vec_perm_vpshufb4_vpermq2,
7815 ix86_expand_sse2_mulv4si3, ix86_expand_pinsr): Likewise.
7816 (expand_vec_perm_palignr): Likewise. Modify a copy of *d rather
7817 than *d itself.
7818
7819 2013-10-31 Uros Bizjak <ubizjak@gmail.com>
7820
7821 * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
7822 Use gcc_unreachable for unhandled modes. Do not check results of
7823 expand_simple_binop. If not expanded to target, move the result.
7824
7825 2013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
7826 Shiva Chen <shiva0217@gmail.com>
7827
7828 * config.gcc (nds32*-*-*): Add nds32 target.
7829 * config/nds32/nds32.c: New file.
7830 * config/nds32/nds32.h: New file.
7831 * config/nds32/nds32.md: New file.
7832 * config/nds32/constants.md: New file.
7833 * config/nds32/constraints.md: New file.
7834 * config/nds32/iterators.md: New file.
7835 * config/nds32/nds32-doubleword.md: New file.
7836 * config/nds32/nds32-intrinsic.md: New file.
7837 * config/nds32/nds32_intrinsic.h: New file.
7838 * config/nds32/nds32-modes.def: New file.
7839 * config/nds32/nds32-multiple.md: New file.
7840 * config/nds32/nds32.opt: New file.
7841 * config/nds32/nds32-opts.h: New file.
7842 * config/nds32/nds32-protos.h: New file.
7843 * config/nds32/nds32-peephole2.md: New file.
7844 * config/nds32/pipelines.md: New file.
7845 * config/nds32/predicates.md: New file.
7846 * config/nds32/t-mlibs: New file.
7847 * common/config/nds32: New directory and files.
7848
7849 * doc/invoke.texi (NDS32 options): Document nds32 specific options.
7850 * doc/md.texi (NDS32 family): Document nds32 specific constraints.
7851 * doc/install.texi (Cross-Compiler-Specific Options): Document
7852 --with-nds32-lib for nds32 target.
7853 * doc/extend.texi (Function Attributes, Target Builtins): Document
7854 nds32 specific attributes.
7855
7856 2013-10-31 Vladimir Makarov <vmakarov@redhat.com>
7857
7858 * lra-constraints (process_alt_operands): Use the result
7859 elimination register for operand when matching constraints.
7860
7861 2013-10-31 Jakub Jelinek <jakub@redhat.com>
7862
7863 * tree-vrp.c (maybe_set_nonzero_bits): New function.
7864 (remove_range_assertions): Call it.
7865
7866 * tree.c (tree_ctz): New function.
7867 * tree.h (tree_ctz): New prototype.
7868 * tree-ssanames.h (get_range_info, get_nonzero_bits): Change
7869 first argument from tree to const_tree.
7870 * tree-ssanames.c (get_range_info, get_nonzero_bits): Likewise.
7871 * tree-vectorizer.h (vect_generate_tmps_on_preheader): New prototype.
7872 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): No longer
7873 static.
7874 * expr.c (highest_pow2_factor): Reimplemented using tree_ctz.
7875 * tree-vect-loop.c (vect_analyze_loop_operations,
7876 vect_transform_loop): Don't force scalar loop for bound just because
7877 number of iterations is unknown, only do it if it is not known to be
7878 a multiple of vectorization_factor.
7879 * builtins.c (get_object_alignment_2): Use tree_ctz on offset.
7880
7881 * gimple-pretty-print.c (dump_ssaname_info): Print newline also
7882 in case of VR_VARYING. Print get_nonzero_bits if not all ones.
7883 * tree-ssanames.h (struct range_info_def): Add nonzero_bits field.
7884 (set_nonzero_bits, get_nonzero_bits): New prototypes.
7885 * tree-ssa-ccp.c (get_default_value): Use get_range_info to see if
7886 a default def isn't partially constant.
7887 (ccp_finalize): If after IPA, set_range_info if integral SSA_NAME
7888 is known to be partially zero.
7889 (evaluate_stmt): If we'd return otherwise VARYING, use get_range_info
7890 to see if a default def isn't partially constant.
7891 * tree-ssanames.c (set_range_info): Initialize nonzero_bits upon
7892 creation of a range, if VR_RANGE, try to improve nonzero_bits from
7893 the range.
7894 (set_nonzero_bits, get_nonzero_bits): New functions.
7895
7896 * tree-cfg.c (assert_unreachable_fallthru_edge_p): New function.
7897 * tree-cfg.h (assert_unreachable_fallthru_edge_p): New prototype.
7898 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): New function.
7899 (remove_range_assertions): If ASSERT_EXPR_VAR has no other immediate
7900 uses but in the condition and ASSERT_EXPR and the other successor of
7901 the predecessor bb is __builtin_unreachable (), set_range_info of the
7902 ASSERT_EXPR_VAR to the range info of the ASSERT_EXPR's lhs.
7903
7904 2013-10-31 Martin Jambor <mjambor@suse.cz>
7905
7906 PR rtl-optimization/58934
7907 Revert:
7908 2013-10-30 Martin Jambor <mjambor@suse.cz>
7909 PR rtl-optimization/10474
7910 * ira.c (find_moveable_pseudos): Do not calculate dominance info
7911 nor df analysis.
7912 (interesting_dest_for_shprep): New function.
7913 (split_live_ranges_for_shrink_wrap): Likewise.
7914 (ira): Calculate dominance info and df analysis. Call
7915 split_live_ranges_for_shrink_wrap.
7916
7917 2013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7918 Yury Gribov <y.gribov@samsung.com>
7919
7920 PR sanitizer/58543
7921 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary
7922 shadow pointer to avoid clobbering the main one.
7923
7924 2013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7925
7926 * lower-subreg.c (resolve_simple_move): Copy REG_INC note.
7927
7928 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
7929
7930 PR bootstrap/58933
7931 * ira-color.c (update_costs_from_copies): Add new parameter. Use
7932 it for calling update_costs_from_allocno.
7933 (assign_hard_reg): Call restore_costs_from_copies only for
7934 !retry_p. Pass new argument to update_costs_from_copies.
7935 (color_pass): Pass new argument to update_costs_from_copies.
7936 (ira_mark_allocation_change): Ditto.
7937
7938 2013-10-30 Sharad Singhai <singhai@google.com>
7939
7940 PR middle-end/58134
7941 * opts.c (common_handle_option): Remove deprecated option
7942 -ftree-vectorizer-verbose.
7943 * doc/invoke.texi (Debugging Options): Ditto.
7944 * opts-global.c (handle_common_deferred_options): Ditto.
7945 (dump_remap_tree_vectorizer_verbose): Delete.
7946 * common.opt: Set -ftree-vectorizer-verbose as an ignored option.
7947
7948 2013-10-30 DJ Delorie <dj@redhat.com>
7949
7950 * config/rx/rx.c (ADD_RX_BUILTIN0): New macro, used for builtins
7951 that take no arguments.
7952
7953 2013-10-30 Joern Rennecke <joern.rennecke@embecosm.com>
7954
7955 PR other/58545
7956 * reload1.c (update_eliminables_and_spill): New function, broken
7957 out of reload.
7958 (reload): Use it. Check for frame size change after frame size
7959 alignment, and call update_eliminables_and_spill first if continue-ing.
7960
7961 2013-10-30 Cong Hou <congh@google.com>
7962
7963 PR target/58762
7964 * config/i386/i386-protos.h (ix86_expand_sse2_abs): New function.
7965 * config/i386/i386.c (ix86_expand_sse2_abs): New function.
7966 * config/i386/sse.md: Add SSE2 support to abs (8/16/32-bit-int).
7967
7968 2013-10-18 Mikael Pettersson <mikpelinux@gmail.com>
7969
7970 PR rtl-optimization/58369
7971 * reload1.c (compute_reload_subreg_offset): New function.
7972 (choose_reload_regs): Use it to pass endian-correct
7973 offset to subreg_regno_offset.
7974
7975 2013-10-30 Tobias Burnus <burnus@net-b.de>
7976
7977 PR other/33426
7978 * tree-cfg.c (replace_loop_annotate): Replace warning by
7979 warning_at.
7980
7981 2013-10-30 Jason Merrill <jason@redhat.com>
7982
7983 * configure.ac (loose_warn): Add -Wno-format if
7984 --disable-build-format-warnings.
7985
7986 2013-10-30 David Malcolm <dmalcolm@redhat.com>
7987
7988 * cgraphunit.c (analyze_functions): Split symtab_node declarations
7989 onto multiple lines to make things easier for rename_symtab.py.
7990
7991 * symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
7992 (symtab_semantically_equivalent_p): Likewise.
7993
7994 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
7995
7996 PR target/58784
7997 * lra.c (check_rtl): Remove address check before LRA work.
7998
7999 2013-10-30 Marc Glisse <marc.glisse@inria.fr>
8000
8001 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for a
8002 POINTER_PLUS_EXPR in the defining statement.
8003
8004 2013-10-30 Vladimir Makarov <vmakarov@redhat.com>
8005
8006 * regmove.c: Remove.
8007 * tree-pass.h (make_pass_regmove): Remove.
8008 * timevar.def (TV_REGMOVE): Remove.
8009 * passes.def (pass_regmove): Remove.
8010 * opts.c (default_options_table): Remove entry for regmove.
8011 * doc/passes.texi: Remove regmove pass description.
8012 * doc/invoke.texi (-foptimize-register-move, -fregmove): Remove
8013 options.
8014 (-fdump-rtl-regmove): Ditto.
8015 * common.opt (foptimize-register-move, fregmove): Ignore.
8016 * Makefile.in (OBJS): Remove regmove.o.
8017 * regmove.c: Remove.
8018 * ira-int.h (struct ira_allocno_pref, ira_pref_t): New structure
8019 and type.
8020 (struct ira_allocno) New member allocno_prefs.
8021 (ALLOCNO_PREFS): New macro.
8022 (ira_prefs, ira_prefs_num): New external vars.
8023 (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
8024 (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
8025 (ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
8026 Ditto.
8027 (ira_add_allocno_copy_to_list): Remove prototype.
8028 (ira_swap_allocno_copy_ends_if_necessary): Ditto.
8029 (ira_pref_iterator): New type.
8030 (ira_pref_iter_init, ira_pref_iter_cond): New functions.
8031 (FOR_EACH_PREF): New macro.
8032 * ira.c (commutative_constraint_p): Move from ira-conflicts.c.
8033 (ira_get_dup_out_num): Ditto. Rename from get_dup_num. Modify the
8034 code.
8035 (ira_setup_alts): New function.
8036 (decrease_live_ranges_number): New function.
8037 (ira): Call the above function.
8038 * ira-build.c (ira_prefs, ira_prefs_num): New global vars.
8039 (ira_create_allocno): Initialize allocno prefs.
8040 (pref_pool, pref_vec): New static vars.
8041 (initiate_prefs, find_allocno_pref, ira_create_pref): New
8042 functions.
8043 (add_allocno_pref_to_list, ira_add_allocno_pref, print_pref): Ditto.
8044 (ira_debug_pref, print_prefs, ira_debug_prefs): Ditto.
8045 (print_allocno_prefs, ira_debug_allocno_prefs, finish_pref): Ditto.
8046 (ira_remove_pref, ira_remove_allocno_prefs, finish_prefs): Ditto.
8047 (ira_add_allocno_copy_to_list): Make static. Rename to
8048 add_allocno_copy_to_list.
8049 (ira_swap_allocno_copy_ends_if_necessary): Make static. Rename to
8050 swap_allocno_copy_ends_if_necessary.
8051 (remove_unnecessary_allocnos, remove_low_level_allocnos): Call
8052 ira_remove_allocno_prefs.
8053 (ira_flattening): Ditto.
8054 (ira_build): Call initiate_prefs, print_prefs.
8055 (ira_destroy): Call finish_prefs.
8056 * ira-color.c (struct update_cost_record): New.
8057 (struct allocno_color_data): Add new member update_cost_records.
8058 (update_cost_record_pool): New static var.
8059 (init_update_cost_records, get_update_cost_record): New functions.
8060 (free_update_cost_record_list, finish_update_cost_records): Ditto.
8061 (struct update_cost_queue_elem): Add member from.
8062 (initiate_cost_update): Call init_update_cost_records.
8063 (finish_cost_update): Call finish_update_cost_records.
8064 (queue_update_cost, get_next_update_cost): Add new param from.
8065 (Update_allocno_cost, update_costs_from_allocno): New functions.
8066 (update_costs_from_prefs): Ditto.
8067 (update_copy_costs): Rename to update_costs_from_copies.
8068 (restore_costs_from_copies): New function.
8069 (update_conflict_hard_regno_costs): Don't go back.
8070 (assign_hard_reg): Call restore_costs_from_copies. Add printing
8071 more debug info.
8072 (pop_allocnos): Add priniting more debug info.
8073 (color_allocnos): Remove prefs for conflicting hard regs.
8074 Call update_costs_from_prefs.
8075 * ira-conflicts.c (commutative_constraint_p): Move to ira.c
8076 (get_dup_num): Rename, modify, and move to ira.c
8077 (process_regs_for_copy): Add prefs.
8078 (add_insn_allocno_copies): Put src as first arg of
8079 process_regs_for_copy. Remove dead code. Call ira_setup_alts.
8080 * ira-costs.c (record_reg_classes): Modify and move code into
8081 record_operands_costs.
8082 (find_costs_and_classes): Create prefs for the hard reg of small
8083 reg class.
8084 (process_bb_node_for_hard_reg_moves): Add prefs.
8085
8086 2013-10-30 Richard Biener <rguenther@suse.de>
8087
8088 PR middle-end/57100
8089 * basic-block.h (pre_and_rev_post_order_compute_fn): New function.
8090 * cfganal.c (pre_and_rev_post_order_compute_fn): New function
8091 as worker for ...
8092 (pre_and_rev_post_order_compute): ... which now wraps it.
8093 * graph.c (draw_cfg_nodes_no_loops): Use
8094 pre_and_rev_post_order_compute_fn to avoid ICEing and dependence
8095 on cfun.
8096
8097 2013-10-30 Christian Bruel <christian.bruel@st.com>
8098
8099 * config/sh/sh-mem.cc (sh_expand_cmpnstr): New function.
8100 (sh_expand_cmpstr): Handle known align and schedule improvements.
8101 * config/sh/sh-protos.h (sh_expand_cmpstrn): Declare.
8102 * config/sh/sh.md (cmpstrnsi): New pattern.
8103
8104 2013-10-30 Martin Jambor <mjambor@suse.cz>
8105
8106 PR rtl-optimization/10474
8107 * ira.c (find_moveable_pseudos): Do not calculate dominance info
8108 nor df analysis.
8109 (interesting_dest_for_shprep): New function.
8110 (split_live_ranges_for_shrink_wrap): Likewise.
8111 (ira): Calculate dominance info and df analysis. Call
8112 split_live_ranges_for_shrink_wrap.
8113
8114 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8115
8116 PR target/58854
8117 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage.
8118
8119 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
8120
8121 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8122 * tree.h (POINTER_BOUNDS_P): New.
8123 (BOUNDED_TYPE_P): New.
8124 (BOUNDED_P): New.
8125 (pointer_bounds_type_node): New.
8126 * tree.c (build_common_tree_nodes): Initialize
8127 pointer_bounds_type_node.
8128 * gimple.h (gimple_call_get_nobnd_arg_index): New.
8129 (gimple_call_num_nobnd_args): New.
8130 (gimple_call_nobnd_arg): New.
8131 (gimple_return_retbnd): New.
8132 (gimple_return_set_retbnd): New
8133 * gimple.c (gimple_build_return): Increase number of ops
8134 for return statement.
8135 (gimple_call_get_nobnd_arg_index): New.
8136 * gimple-pretty-print.c (dump_gimple_return): Print second op.
8137
8138 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
8139
8140 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8141 with "chkp ctor" and "bnd_legacy" attributes.
8142 * gimplify.c (gimplify_init_constructor): Avoid infinite
8143 loop during gimplification of bounds initializer.
8144
8145 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
8146
8147 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8148 (handle_bnd_legacy): New.
8149 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
8150 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
8151 attributes.
8152
8153 2013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
8154
8155 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
8156 (BT_FN_PTR_CONST_PTR): New.
8157 (BT_FN_CONST_PTR_CONST_PTR): New.
8158 (BT_FN_PTR_CONST_PTR_SIZE): New.
8159 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8160 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8161 (BT_FN_VOID_CONST_PTR_SIZE): New.
8162 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8163 * chkp-builtins.def: New.
8164 * builtins.def: include chkp-builtins.def.
8165 (DEF_CHKP_BUILTIN): New.
8166 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8167 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8168 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8169 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8170 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8171 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8172 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8173 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8174 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
8175 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8176 * common.opt (fcheck-pointer-bounds): New.
8177 * toplev.c (process_options): Check Pointer Bounds Checker is
8178 supported.
8179 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
8180
8181 2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
8182
8183 * target.def (builtin_chkp_function): New.
8184 (chkp_bound_type): New.
8185 (chkp_bound_mode): New.
8186 (fn_abi_va_list_bounds_size): New.
8187 (load_bounds_for_arg): New.
8188 (store_bounds_for_arg): New.
8189 * targhooks.h (default_load_bounds_for_arg): New.
8190 (default_store_bounds_for_arg): New.
8191 (default_fn_abi_va_list_bounds_size): New.
8192 (default_chkp_bound_type): New.
8193 (default_chkp_bound_mode): New.
8194 (default_builtin_chkp_function): New.
8195 * targhooks.c (default_load_bounds_for_arg): New.
8196 (default_store_bounds_for_arg): New.
8197 (default_fn_abi_va_list_bounds_size): New.
8198 (default_chkp_bound_type): New.
8199 (default_chkp_bound_mode); New.
8200 (default_builtin_chkp_function): New.
8201 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
8202 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8203 (TARGET_STORE_BOUNDS_FOR_ARG): New.
8204 (TARGET_BUILTIN_CHKP_FUNCTION): New.
8205 (TARGET_CHKP_BOUND_TYPE): New.
8206 (TARGET_CHKP_BOUND_MODE): New.
8207 * doc/tm.texi: Regenerated.
8208 * langhooks.h (lang_hooks): Add chkp_supported field.
8209 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
8210 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
8211
8212 2013-10-29 Andrew Pinski <apinski@cavium.com>
8213
8214 * tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
8215 (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
8216 fails, combining the branches anyways.
8217 (tree_ssa_ifcombine): Inverse the order of the basic block walk,
8218 increases the number of combinings.
8219 * gimple.h (gsi_start_nondebug_after_labels_bb): New function.
8220
8221 2013-10-29 Mike Stump <mikestump@comcast.net>
8222
8223 * machmode.def (PARTIAL_INT_MODE): Add precision and name.
8224 * genmodes.c (PARTIAL_INT_MODE): Add precision and name.
8225 (make_vector_mode): Increase namebuf to 16.
8226 (emit_insn_modes_h): When processing BImode, don't
8227 also match partial int modes.
8228 (emit_class_narrowest_mode): Likewise.
8229
8230 * config/bfin/bfin-modes.def: Add precision to PDI.
8231 * config/m32c/m32c-modes.def: Add precision to PSI.
8232 * config/msp430/msp430-modes.def: Add precision to PSI.
8233 * config/rs6000/rs6000-modes.def: Add precision to PTI.
8234 * config/sh/sh-modes.def: Add precision to PSI and PDI.
8235
8236 2013-10-29 Oleg Endo <olegendo@gcc.gnu.org>
8237
8238 PR target/54236
8239 * config/sh/sh.md (*addc): Rename existing variations to ...
8240 (*addc_r_r_1, *addc_2r_1, *addc_r_1): ... these.
8241 (*addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_2r_lsb, *addc_r_msb,
8242 *addc_r_r_msb, *addc_2r_msb): New insn_and_split patterns.
8243 * config/sh/sh.c (addsubcosts): Handle some addc special cases.
8244
8245 2013-10-29 Teresa Johnson <tejohnson@google.com>
8246
8247 PR ipa/58862
8248 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile
8249 insanities when updating probabilities.
8250
8251 2013-10-29 David Malcolm <dmalcolm@redhat.com>
8252
8253 * gdbhooks.py (CGraphNodePrinter.to_string): Update gdb
8254 prettyprinter for cgraph_node to reflect the conversion of the
8255 symtable types to a C++ class hierarchy: it now *is* a
8256 symtab_node_base, rather than having one (named "symbol").
8257
8258 2013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
8259
8260 * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and
8261 __cilkrts_pop_frame. If matched, then return true for built-in
8262 function name.
8263 (expand_builtin): Added BUILT_IN_CILK_DETACH and
8264 BUILT_IN_CILK_POP_FRAME case.
8265 * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype.
8266 (lhs_cilk_detect_spawn): Likewise.
8267 (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS.
8268 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define.
8269 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
8270 (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
8271 (LANG_HOOKS_CILKPLUS): Likewise.
8272 * tree.h (CILK_SPAWN_FN): Likewise.
8273 * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise.
8274 * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o.
8275 (OBJS): Added cilk-common.o.
8276 (BUILTINS_DEF): Added cilk-builtins.def.
8277 * langhooks.c (lhd_install_body_with_frame_cleanup): New function.
8278 (lhd_cilk_detect_spawn): Likewise.
8279 * langhooks.h (lang_hooks_for_cilkplus): New struct.
8280 (struct lang_hooks): Added new field called "cilkplus."
8281 * cilk-common.c: New file.
8282 * cilk.h: Likewise.
8283 * cilk-builtins.def: Likewise.
8284 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added
8285 "__cilk" macro and set it to 200.
8286 * function.h (struct function::cilk_frame_decl): New field.
8287 (struct function::is_cilk_function): Likewise.
8288 (struct function::calls_cilk_spawn): Likewise.
8289 * gimplify.c (gimplify_call_expr): Added a check if the function call
8290 being gimplified is a spawn detach point. If so, then add pop_frame
8291 and detach function calls.
8292 (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case
8293 for gimplifying _Cilk_spawn and _Cilk_sync statements.
8294 (gimplify_return_expr): Added a check for _Cilk_spawn usage in
8295 function. If so, added a _Cilk_sync and gimplified it.
8296 (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and
8297 INIT_EXPRs. If so, then call gimplify_cilk_spawn.
8298 * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of
8299 spawner function.
8300 (can_inline_edge_p): Prevent inling of spawnee function.
8301 * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer
8302 for functions that use Cilk keywords.
8303 * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field.
8304 * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and
8305 CILK_SYNC_STMT cases.
8306 * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT
8307 trees.
8308 * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn.
8309 (CILK_SYNC_STMT): Added documentation for _Cilk_sync.
8310 * passes.texi (Cilk Keywords): New section that describes the compiler
8311 code changes for handling Cilk Keywords.
8312
8313 2013-10-29 David Malcolm <dmalcolm@redhat.com>
8314
8315 Patch autogenerated by refactor_symtab.py from
8316 https://github.com/davidmalcolm/gcc-refactoring-scripts
8317 revision 58bb219cc090b2f4516a9297d868c245495ee622
8318
8319 * asan.c (asan_finish_file): Update for conversion of symtab types to
8320 a true class hierarchy.
8321 * cfgexpand.c (estimated_stack_frame_size): Likewise.
8322 * cgraph.c (cgraph_get_body): Likewise.
8323 (cgraph_get_create_real_symbol_node): Likewise.
8324 (verify_cgraph_node): Likewise.
8325 (verify_edge_corresponds_to_fndecl): Likewise.
8326 (verify_edge_count_and_frequency): Likewise.
8327 (cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise.
8328 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
8329 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise.
8330 (cgraph_node_cannot_return): Likewise.
8331 (cgraph_set_pure_flag_1): Likewise.
8332 (cgraph_set_const_flag_1): Likewise.
8333 (cgraph_set_nothrow_flag_1): Likewise.
8334 (cgraph_make_node_local_1): Likewise.
8335 (cgraph_for_node_and_aliases): Likewise.
8336 (cgraph_for_node_thunks_and_aliases): Likewise.
8337 (cgraph_node_can_be_local_p): Likewise.
8338 (cgraph_node_cannot_be_local_p_1): Likewise.
8339 (cgraph_function_body_availability): Likewise.
8340 (dump_cgraph_node): Likewise.
8341 (cgraph_rtl_info): Likewise.
8342 (cgraph_mark_address_taken_node): Likewise.
8343 (cgraph_remove_node): Likewise.
8344 (cgraph_release_function_body): Likewise.
8345 (cgraph_update_edges_for_call_stmt_node): Likewise.
8346 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
8347 (cgraph_make_edge_direct): Likewise.
8348 (cgraph_resolve_speculation): Likewise.
8349 (cgraph_speculative_call_info): Likewise.
8350 (cgraph_turn_edge_to_speculative): Likewise.
8351 (cgraph_create_edge_1): Likewise.
8352 (cgraph_set_call_stmt): Likewise.
8353 (cgraph_node_for_asm): Likewise.
8354 (cgraph_add_thunk): Likewise.
8355 (cgraph_same_body_alias): Likewise.
8356 (cgraph_create_function_alias): Likewise.
8357 (cgraph_create_node): Likewise.
8358 (cgraph_create_empty_node): Likewise.
8359 (record_function_versions): Likewise.
8360 (used_from_object_file_p): Likewise.
8361 * cgraph.h (symtab_can_be_discarded): Likewise.
8362 (symtab_real_symbol_p): Likewise.
8363 (cgraph_mark_force_output_node): Likewise.
8364 (cgraph_edge_recursive_p): Likewise.
8365 (symtab_alias_target): Likewise.
8366 (varpool_all_refs_explicit_p): Likewise.
8367 (varpool_can_remove_if_no_refs): Likewise.
8368 (cgraph_only_called_directly_or_aliased_p): Likewise.
8369 (cgraph_next_function_with_gimple_body): Likewise.
8370 (cgraph_first_function_with_gimple_body): Likewise.
8371 (cgraph_function_with_gimple_body_p): Likewise.
8372 (cgraph_next_function): Likewise.
8373 (cgraph_first_function): Likewise.
8374 (cgraph_next_defined_function): Likewise.
8375 (cgraph_first_defined_function): Likewise.
8376 (varpool_next_defined_variable): Likewise.
8377 (varpool_first_defined_variable): Likewise.
8378 (varpool_next_static_initializer): Likewise.
8379 (varpool_first_static_initializer): Likewise.
8380 (varpool_next_variable): Likewise.
8381 (varpool_first_variable): Likewise.
8382 (varpool_node_name): Likewise.
8383 (varpool): Likewise.
8384 (cgraph): Likewise.
8385 (is_a_helper <varpool_node>::test): Likewise.
8386 (is_a_helper <cgraph_node>::test): Likewise.
8387 (varpool_variable_node): Likewise.
8388 (cgraph_function_or_thunk_node): Likewise.
8389 (varpool_alias_target): Likewise.
8390 (cgraph_alias_target): Likewise.
8391 (cgraph_node_name): Likewise.
8392 (varpool_node_asm_name): Likewise.
8393 (cgraph_node_asm_name): Likewise.
8394 * cgraphbuild.c (remove_cgraph_callee_edges): Likewise.
8395 (cgraph_rebuild_references): Likewise.
8396 (rebuild_cgraph_edges): Likewise.
8397 (record_eh_tables): Likewise.
8398 (build_cgraph_edges): Likewise.
8399 (mark_store): Likewise.
8400 (mark_load): Likewise.
8401 (mark_address): Likewise.
8402 (record_type_list): Likewise.
8403 (record_reference): Likewise.
8404 * cgraphclones.c (cgraph_materialize_all_clones): Likewise.
8405 (cgraph_materialize_clone): Likewise.
8406 (cgraph_function_versioning): Likewise.
8407 (cgraph_copy_node_for_versioning): Likewise.
8408 (update_call_expr): Likewise.
8409 (cgraph_find_replacement_node): Likewise.
8410 (cgraph_create_virtual_clone): Likewise.
8411 (cgraph_clone_node): Likewise.
8412 * cgraphunit.c (compile): Likewise.
8413 (output_weakrefs): Likewise.
8414 (output_in_order): Likewise.
8415 (expand_function): Likewise.
8416 (assemble_thunks_and_aliases): Likewise.
8417 (expand_thunk): Likewise.
8418 (mark_functions_to_output): Likewise.
8419 (handle_alias_pairs): Likewise.
8420 (analyze_functions): Likewise.
8421 (walk_polymorphic_call_targets): Likewise.
8422 (varpool_finalize_decl): Likewise.
8423 (process_function_and_variable_attributes): Likewise.
8424 (cgraph_process_same_body_aliases): Likewise.
8425 (analyze_function): Likewise.
8426 (cgraph_add_new_function): Likewise.
8427 (cgraph_finalize_function): Likewise.
8428 (referred_to_p): Likewise.
8429 (cgraph_reset_node): Likewise.
8430 (cgraph_process_new_functions): Likewise.
8431 (enqueue_node): Likewise.
8432 (decide_is_symbol_needed): Likewise.
8433 * coverage.c (coverage_compute_profile_id): Likewise.
8434 * dbxout.c (dbxout_expand_expr): Likewise.
8435 * dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise.
8436 (reference_to_unused): Likewise.
8437 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
8438 * gimplify.c (unvisit_body): Likewise.
8439 (unshare_body): Likewise.
8440 * ipa-cp.c (ipcp_generate_summary): Likewise.
8441 (ipcp_decision_stage): Likewise.
8442 (identify_dead_nodes): Likewise.
8443 (decide_whether_version_node): Likewise.
8444 (decide_about_value): Likewise.
8445 (perhaps_add_new_callers): Likewise.
8446 (create_specialized_node): Likewise.
8447 (update_profiling_info): Likewise.
8448 (ipcp_propagate_stage): Likewise.
8449 (estimate_local_effects): Likewise.
8450 (good_cloning_opportunity_p): Likewise.
8451 (devirtualization_time_bonus): Likewise.
8452 (propagate_constants_accross_call): Likewise.
8453 (initialize_node_lattices): Likewise.
8454 (ipcp_cloning_candidate_p): Likewise.
8455 (determine_versionability): Likewise.
8456 (print_all_lattices): Likewise.
8457 (print_lattice): Likewise.
8458 (ipcp_discover_new_direct_edges): Likewise.
8459 * ipa-devirt.c (ipa_devirt): Likewise.
8460 (likely_target_p): Likewise.
8461 (update_type_inheritance_graph): Likewise.
8462 (possible_polymorphic_call_target_p): Likewise.
8463 (dump_possible_polymorphic_call_targets): Likewise.
8464 (devirt_variable_node_removal_hook): Likewise.
8465 (record_binfo): Likewise.
8466 (maybe_record_node): Likewise.
8467 (build_type_inheritance_graph): Likewise.
8468 * ipa-inline-analysis.c (inline_write_summary): Likewise.
8469 (inline_generate_summary): Likewise.
8470 (inline_analyze_function): Likewise.
8471 (do_estimate_growth): Likewise.
8472 (simple_edge_hints): Likewise.
8473 (estimate_node_size_and_time): Likewise.
8474 (estimate_edge_devirt_benefit): Likewise.
8475 (compute_inline_parameters): Likewise.
8476 (estimate_function_body_sizes): Likewise.
8477 (compute_bb_predicates): Likewise.
8478 (initialize_inline_failed): Likewise.
8479 (dump_inline_summary): Likewise.
8480 (dump_inline_edge_summary): Likewise.
8481 * ipa-inline-transform.c (inline_transform): Likewise.
8482 (preserve_function_body_p): Likewise.
8483 (save_inline_function_body): Likewise.
8484 (inline_call): Likewise.
8485 (clone_inlined_nodes): Likewise.
8486 (can_remove_node_now_p): Likewise.
8487 (can_remove_node_now_p_1): Likewise.
8488 * ipa-inline.c (early_inliner): Likewise.
8489 (early_inline_small_functions): Likewise.
8490 (inline_always_inline_functions): Likewise.
8491 (ipa_inline): Likewise.
8492 (flatten_function): Likewise.
8493 (inline_small_functions): Likewise.
8494 (speculation_useful_p): Likewise.
8495 (recursive_inlining): Likewise.
8496 (update_caller_keys): Likewise.
8497 (reset_edge_caches): Likewise.
8498 (update_edge_key): Likewise.
8499 (edge_badness): Likewise.
8500 (relative_time_benefit): Likewise.
8501 (want_inline_self_recursive_call_p): Likewise.
8502 (want_inline_small_function_p): Likewise.
8503 (want_early_inline_function_p): Likewise.
8504 (num_calls): Likewise.
8505 (can_early_inline_edge_p): Likewise.
8506 (can_inline_edge_p): Likewise.
8507 (report_inline_failed_reason): Likewise.
8508 * ipa-profile.c (ipa_profile): Likewise.
8509 (ipa_propagate_frequency): Likewise.
8510 (ipa_propagate_frequency_1): Likewise.
8511 (ipa_profile_generate_summary): Likewise.
8512 * ipa-prop.c (ipcp_transform_function): Likewise.
8513 (read_replacements_section): Likewise.
8514 (ipa_prop_read_section): Likewise.
8515 (ipa_modify_call_arguments): Likewise.
8516 (ipa_print_node_params): Likewise.
8517 (propagate_controlled_uses): Likewise.
8518 (update_indirect_edges_after_inlining): Likewise.
8519 (remove_described_reference): Likewise.
8520 (ipa_make_edge_direct_to_target): Likewise.
8521 (ipa_analyze_node): Likewise.
8522 (ipa_analyze_params_uses): Likewise.
8523 (ipa_compute_jump_functions): Likewise.
8524 (ipa_get_callee_param_type): Likewise.
8525 (ipa_print_node_jump_functions): Likewise.
8526 (ipa_initialize_node_params): Likewise.
8527 (ipa_populate_param_decls): Likewise.
8528 (ipa_func_spec_opts_forbid_analysis_p): Likewise.
8529 (write_agg_replacement_chain): Likewise.
8530 (ipa_write_node_info): Likewise.
8531 (ipa_edge_duplication_hook): Likewise.
8532 (try_decrement_rdesc_refcount): Likewise.
8533 * ipa-pure-const.c (propagate_nothrow): Likewise.
8534 (propagate_pure_const): Likewise.
8535 (pure_const_read_summary): Likewise.
8536 (pure_const_write_summary): Likewise.
8537 (analyze_function): Likewise.
8538 * ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise.
8539 (ipa_ref_referring_ref_list): Likewise.
8540 * ipa-ref.c (ipa_clear_stmts_in_references): Likewise.
8541 (ipa_remove_stmt_references): Likewise.
8542 (ipa_find_reference): Likewise.
8543 (ipa_dump_referring): Likewise.
8544 (ipa_dump_references): Likewise.
8545 (ipa_record_reference): Likewise.
8546 * ipa-reference.c (ipa_reference_read_optimization_summary): Likewise.
8547 (ipa_reference_write_optimization_summary): Likewise.
8548 (write_node_summary_p): Likewise.
8549 (propagate): Likewise.
8550 (read_write_all_from_decl): Likewise.
8551 (generate_summary): Likewise.
8552 (analyze_function): Likewise.
8553 (propagate_bits): Likewise.
8554 (ipa_reference_get_not_written_global): Likewise.
8555 (ipa_reference_get_not_read_global): Likewise.
8556 * ipa-split.c (execute_split_functions): Likewise.
8557 (split_function): Likewise.
8558 * ipa-utils.c (ipa_merge_profiles): Likewise.
8559 (dump_cgraph_node_set): Likewise.
8560 (ipa_reverse_postorder): Likewise.
8561 (ipa_edge_within_scc): Likewise.
8562 (ipa_get_nodes_in_cycle): Likewise.
8563 (ipa_free_postorder_info): Likewise.
8564 (ipa_reduced_postorder): Likewise.
8565 (searchc): Likewise.
8566 (recursive_call_p): Likewise.
8567 * ipa.c (ipa_cdtor_merge): Likewise.
8568 (record_cdtor_fn): Likewise.
8569 (function_and_variable_visibility): Likewise.
8570 (varpool_externally_visible_p): Likewise.
8571 (cgraph_externally_visible_p): Likewise.
8572 (comdat_can_be_unshared_p): Likewise.
8573 (comdat_can_be_unshared_p_1): Likewise.
8574 (address_taken_from_non_vtable_p): Likewise.
8575 (ipa_discover_readonly_nonaddressable_vars): Likewise.
8576 (symtab_remove_unreachable_nodes): Likewise.
8577 (walk_polymorphic_call_targets): Likewise.
8578 (process_references): Likewise.
8579 (enqueue_node): Likewise.
8580 (has_addr_references_p): Likewise.
8581 (cgraph_non_local_node_p_1): Likewise.
8582 * is-a.h (varpool_analyze_node): Likewise.
8583 * lto-cgraph.c (input_symtab): Likewise.
8584 (merge_profile_summaries): Likewise.
8585 (input_cgraph_1): Likewise.
8586 (input_edge): Likewise.
8587 (input_varpool_node): Likewise.
8588 (input_node): Likewise.
8589 (input_overwrite_node): Likewise.
8590 (compute_ltrans_boundary): Likewise.
8591 (output_refs): Likewise.
8592 (lto_output_varpool_node): Likewise.
8593 (lto_output_node): Likewise.
8594 (reachable_from_other_partition_p): Likewise.
8595 (referenced_from_other_partition_p): Likewise.
8596 (lto_output_edge): Likewise.
8597 (output_node_opt_summary): Likewise.
8598 (add_node_to): Likewise.
8599 (reachable_from_this_partition_p): Likewise.
8600 (lto_set_symtab_encoder_in_partition): Likewise.
8601 (lto_symtab_encoder_in_partition_p): Likewise.
8602 (lto_set_symtab_encoder_encode_initializer): Likewise.
8603 (lto_symtab_encoder_encode_initializer_p): Likewise.
8604 (lto_set_symtab_encoder_encode_body): Likewise.
8605 (lto_symtab_encoder_encode_body_p): Likewise.
8606 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
8607 Likewise.
8608 * lto-streamer-in.c (lto_read_body): Likewise.
8609 (fixup_call_stmt_edges): Likewise.
8610 (fixup_call_stmt_edges_1): Likewise.
8611 * lto-streamer-out.c (produce_symtab): Likewise.
8612 (output_symbol_p): Likewise.
8613 (write_symbol): Likewise.
8614 (lto_output): Likewise.
8615 (copy_function): Likewise.
8616 (output_function): Likewise.
8617 * passes.c (function_called_by_processed_nodes_p): Likewise.
8618 (ipa_write_optimization_summaries): Likewise.
8619 (ipa_write_summaries): Likewise.
8620 (do_per_function_toporder): Likewise.
8621 (do_per_function): Likewise.
8622 (dump_passes): Likewise.
8623 * symtab.c (symtab_semantically_equivalent_p): Likewise.
8624 (symtab_nonoverwritable_alias): Likewise.
8625 (symtab_nonoverwritable_alias_1): Likewise.
8626 (symtab_for_node_and_aliases): Likewise.
8627 (symtab_resolve_alias): Likewise.
8628 (fixup_same_cpp_alias_visibility): Likewise.
8629 (symtab_alias_ultimate_target): Likewise.
8630 (symtab_used_from_object_file_p): Likewise.
8631 (verify_symtab_base): Likewise.
8632 (dump_symtab_base): Likewise.
8633 (symtab_node_name): Likewise.
8634 (symtab_node_asm_name): Likewise.
8635 (symtab_dissolve_same_comdat_group_list): Likewise.
8636 (symtab_add_to_same_comdat_group): Likewise.
8637 (symtab_unregister_node): Likewise.
8638 (symtab_insert_node_to_hashtable): Likewise.
8639 (symtab_register_node): Likewise.
8640 (unlink_from_assembler_name_hash): Likewise.
8641 (insert_to_assembler_name_hash): Likewise.
8642 (eq_assembler_name): Likewise.
8643 (hash_node_by_assembler_name): Likewise.
8644 (eq_node): Likewise.
8645 (hash_node): Likewise.
8646 * toplev.c (wrapup_global_declaration_2): Likewise.
8647 * trans-mem.c (ipa_tm_execute): Likewise.
8648 (ipa_tm_transform_clone): Likewise.
8649 (ipa_tm_transform_transaction): Likewise.
8650 (ipa_tm_transform_calls_redirect): Likewise.
8651 (ipa_tm_insert_gettmclone_call): Likewise.
8652 (ipa_tm_insert_irr_call): Likewise.
8653 (ipa_tm_create_version): Likewise.
8654 (ipa_tm_create_version_alias): Likewise.
8655 (ipa_tm_mark_forced_by_abi_node): Likewise.
8656 (ipa_tm_mark_force_output_node): Likewise.
8657 (ipa_tm_diagnose_tm_safe): Likewise.
8658 (ipa_tm_mayenterirr_function): Likewise.
8659 (ipa_tm_scan_irr_function): Likewise.
8660 (ipa_tm_note_irrevocable): Likewise.
8661 (ipa_tm_scan_calls_clone): Likewise.
8662 (get_cg_data): Likewise.
8663 * tree-eh.c (tree_could_trap_p): Likewise.
8664 * tree-emutls.c (ipa_lower_emutls): Likewise.
8665 (create_emultls_var): Likewise.
8666 (lower_emutls_function_body): Likewise.
8667 (gen_emutls_addr): Likewise.
8668 (emutls_decl): Likewise.
8669 (new_emutls_decl): Likewise.
8670 * tree-inline.c (tree_function_versioning): Likewise.
8671 (optimize_inline_calls): Likewise.
8672 (expand_call_inline): Likewise.
8673 (estimate_num_insns): Likewise.
8674 (copy_bb): Likewise.
8675 (delete_unreachable_blocks_update_callgraph): Likewise.
8676 * tree-nested.c (gimplify_all_functions): Likewise.
8677 (create_nesting_tree): Likewise.
8678 (check_for_nested_with_variably_modified): Likewise.
8679 * tree-pretty-print.c (dump_function_header): Likewise.
8680 * tree-profile.c (tree_profiling): Likewise.
8681 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
8682 (modify_function): Likewise.
8683 (convert_callers): Likewise.
8684 (convert_callers_for_node): Likewise.
8685 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8686 (associate_varinfo_to_alias): Likewise.
8687 (create_variable_info_for): Likewise.
8688 (get_constraint_for_ssa_var): Likewise.
8689 * tree-vectorizer.c (increase_alignment): Likewise.
8690 * tree.c (find_decls_types_in_var): Likewise.
8691 (find_decls_types_in_node): Likewise.
8692 (free_lang_data_in_decl): Likewise.
8693 * value-prof.c (gimple_ic_transform): Likewise.
8694 (gimple_ic): Likewise.
8695 (check_ic_target): Likewise.
8696 (init_node_map): Likewise.
8697 * varasm.c (decl_binds_to_current_def_p): Likewise.
8698 (default_binds_local_p_1): Likewise.
8699 (dump_tm_clone_pairs): Likewise.
8700 (assemble_alias): Likewise.
8701 (find_decl): Likewise.
8702 (mark_decl_referenced): Likewise.
8703 * varpool.c (varpool_for_node_and_aliases): Likewise.
8704 (varpool_extra_name_alias): Likewise.
8705 (varpool_create_variable_alias): Likewise.
8706 (add_new_static_var): Likewise.
8707 (varpool_finalize_named_section_flags): Likewise.
8708 (varpool_remove_unreferenced_decls): Likewise.
8709 (enqueue_node): Likewise.
8710 (varpool_assemble_decl): Likewise.
8711 (assemble_aliases): Likewise.
8712 (varpool_analyze_node): Likewise.
8713 (cgraph_variable_initializer_availability): Likewise.
8714 (varpool_add_new_variable): Likewise.
8715 (ctor_for_folding): Likewise.
8716 (dump_varpool_node): Likewise.
8717 (varpool_remove_initializer): Likewise.
8718 (varpool_remove_node): Likewise.
8719 (varpool_node_for_decl): Likewise.
8720 (varpool_create_empty_node): Likewise.
8721 * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
8722 (ix86_get_function_versions_dispatcher): Likewise.
8723
8724 2013-10-29 David Malcolm <dmalcolm@redhat.com>
8725
8726 * cgraph.h (symtab_node_base): Convert to a class;
8727 add GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"))), and take
8728 chain_next/prev from symtab_node_def.
8729 (cgraph_node): Inherit from symtab_node; add GTY option
8730 tag ("SYMTAB_FUNCTION").
8731 (varpool_node): Inherit from symtab_node; add GTY option
8732 tag ("SYMTAB_VARIABLE").
8733 (symtab_node_def): Remove.
8734 (is_a_helper <cgraph_node>::test (symtab_node_def *)): Convert to...
8735 (is_a_helper <cgraph_node>::test (symtab_node_base *)): ...this.
8736 (is_a_helper <varpool_node>::test (symtab_node_def *)): Convert to...
8737 (is_a_helper <varpool_node>::test (symtab_node_base *)): ...this.
8738
8739 * ipa-ref.h (symtab_node_def): Drop.
8740 (symtab_node): Change underlying type from symtab_node_def to
8741 symtab_node_base.
8742 (const_symtab_node): Likwise.
8743
8744 * is-a.h: Update examples in comment.
8745
8746 * symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
8747 (assembler_name_hash): Likewise.
8748
8749 2013-10-29 Martin Liska <marxin.liska@gmail.com>
8750
8751 * doc/tree-ssa.texi (gimple_phi_result): Document.
8752 (gimple_phi_num_args, gimple_phi_arg): Likewise.
8753 (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
8754 (PHI_RESULT, PHI_NUM_ARGS): Remove.
8755 (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
8756
8757 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
8758
8759 * expr.h: Revert change and include tree-core.h.
8760 * rtl.h: Revert change and don't include tree-core.h.
8761
8762 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
8763
8764 * config/darwin.c: Include gimple.h.
8765 * config/i386/winnt.c: Likewise.
8766
8767 2013-10-29 Marc Glisse <marc.glisse@inria.fr>
8768
8769 PR tree-optimization/19831
8770 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle BUILT_IN_FREE.
8771
8772 2013-10-29 Andrew MacLeod <amacleod@redhat.com>
8773
8774 * tree-outof-ssa.h: Remove include files.
8775 * tree-outof-ssa.c: Add required include files from tree-outof-ssa.h.
8776 * expr.c: Likewise.
8777 * tree-ssa-coalesce.c: Likewise.
8778 * cfgexpand.c: Likewise.
8779 * tree-ssa-ter.c: Likewise.
8780 * ipa-prop.h: Remove gimple.h and tree-core.h from include list.
8781 * lto-streamer.h: Likewise.
8782 * cgraphbuild.c: Add gimple.h to include list.
8783 * data-streamer-in.c: Likewise.
8784 * ipa-cp.c: Likewise.
8785 * tree-streamer.c: Likewise.
8786 * lto-compress.c: Likewise.
8787 * ipa-reference.c: Likewise.
8788 * data-streamer-out.c: Likewise.
8789 * lto-cgraph.c: Likewise.
8790 * cgraphclones.c: Likewise.
8791 * ipa-utils.c: Likewise.
8792 * data-streamer.c: Likewise.
8793 * ipa-split.c: Likewise.
8794 * lto-section-in.c: Likewise.
8795 * tree-streamer-out.c: Likewise.
8796 * ipa-prop.c: Likewise.
8797 * tree-streamer-in.c: Likewise.
8798 * symtab.c: Likewise.
8799 * opts-global.c: Likewise.
8800 * lto-opts.c: Likewise.
8801 * lto-section-out.c: Likewise.
8802 * lto-streamer.c: Likewise.
8803 * rtl.h: Add tree-core.h to include list.
8804 * expr.h: Remove tree-core.h from include list.
8805 * gimple.h: Likewise.
8806 * ipa-utils.h: Likewise.
8807 * streamer-hooks.h: Likewise.
8808 * streamer-hooks.c: Include input.h.
8809
8810 2013-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8811
8812 * config/arm/arm.c (cortexa7_extra_costs): New table.
8813 (arm_cortex_a7_tune): New.
8814 * config/arm/arm-cores.def: Use cortex_a7 tuning for cortex-a7.
8815
8816 2013-10-29 Eric Botcazou <ebotcazou@adacore.com>
8817
8818 * expr.c (expand_expr_real_1) <MEM_EXPR>: Eliminate small redundancy.
8819
8820 2013-10-29 David Malcolm <dmalcolm@redhat.com>
8821
8822 * doc/gty.texi ("Inheritance and GTY"): Make it clear that
8823 to use autogenerated markers for a class-hierarchy, every class
8824 must have a GTY marker.
8825 * gengtype.h (struct type): Add linked list of subclasses to
8826 the "s" member of the union.
8827 (add_subclass): New decl.
8828 * gengtype-state.c (read_state_struct_type): Set up subclass
8829 linked list.
8830 * gengtype.c (get_ultimate_base_class): New.
8831 (add_subclass): New.
8832 (new_structure): Set up subclass linked list.
8833 (set_gc_used_type): Propagate usage information to subclasses.
8834 (output_mangled_typename): Use get_ultimate_base_class.
8835 (walk_subclasses): Use the subclass linked list, avoiding an
8836 O(N^2) when writing out all types.
8837 (walk_type): Issue an error if the base class is missing a tag,
8838 rather than generating bogus C code. Add a gcc_unreachable
8839 default case, in case people omit tags from concrete subclasses,
8840 or get the values wrong.
8841 (write_func_for_structure): Issue an error for subclasses for
8842 which the base doesn't have a "desc", since otherwise the
8843 autogenerated routines for the base would silently fail to visit
8844 any subclass fields.
8845 (write_root): Use get_ultimate_base_class, tweaking constness of
8846 tp to match that function's signature.
8847
8848 2013-10-29 David Malcolm <dmalcolm@redhat.com>
8849
8850 * doc/gty.texi (GTY Options): Add note about inheritance to
8851 description of desc and tag.
8852 (Inheritance and GTY): New.
8853
8854 2013-10-29 David Malcolm <dmalcolm@redhat.com>
8855
8856 * gengtype-parse.c (opts_have): Drop "static" so that
8857 we can use this from gengtype.c.
8858 * gengtype.c (set_gc_used_type): Mark any base class as used;
8859 update field traversal to visit inherited fields.
8860 (output_mangled_typename): Convert references to classes within
8861 an inheritance hierarchy to reference the ultimate base class,
8862 since only it will have gt_ functions.
8863 (get_string_option): New.
8864 (walk_subclasses): New.
8865 (walk_type): Treat GTY structs that have a "desc" as being the
8866 root of an inheritance hierarchy. Generate a switch on it
8867 within the marking function which walks all subclasses, adding
8868 cases for them via walk_subclasses. For subclasses, visit all
8869 fields of the type (including inherited ones).
8870 (write_func_for_structure): Don't write fns for subclasses, only
8871 for the ultimate base class within an inheritance hierarchy.
8872 Subclasses-marking will be handled by the base class marking functions.
8873 (write_types): Likewise.
8874 (write_local_func_for_structure): Likewise.
8875 (USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
8876 a "tag" option (and are thus concrete subclasses).
8877 (write_root): Use the marker function for the ultimate base class.
8878 * gengtype.h (FOR_ALL_INHERITED_FIELDS): New.
8879 (opts_have): Add declaration.
8880
8881 2013-10-28 Vladimir Makarov <vmakarov@redhat.com>
8882
8883 * lra-spills.c (lra_final_code_change): Remove useless move insns
8884 originated from moves of pseudos.
8885
8886 2013-10-28 Jeff Law <law@redhat.com>
8887
8888 * lower-subreg.c (resolve_simple_move): Fix comment typo.
8889
8890 2013-10-28 Trevor Saunders <tsaunders@mozilla.com>
8891
8892 * df-scan.c (df_collection_rec): Adjust.
8893 (copy_defs): New constant.
8894 (copy_uses): Likewise.
8895 (copy_eq_uses): Likewise.
8896 (copy_mw): Likewise.
8897 (copy_all): Likewise.
8898 (df_insn_rescan): Adjust.
8899 (df_notes_rescan): Likewise.
8900 (df_swap_refs): Likewise.
8901 (df_sort_and_compress_refs): Likewise.
8902 (df_sort_and_compress_mws): Likewise.
8903 (df_install_refs): Likewise.
8904 (df_install_mws): Likewise.
8905 (df_refs_add_to_chains): Add flags parameter controlling which vectors
8906 are coppied.
8907 (df_bb_refs_record): Adjust.
8908 (df_record_entry_block_defs): Likewise.
8909 (df_record_exit_block_defs): Likewise.
8910 (df_refs_verify): Likewise.
8911 (df_mws_verify): Likewise.
8912 (df_insn_refs_verify): Likewise.
8913 (df_bb_verify): Likewise.
8914 * ipa-pure-const.c (finish_state): Remove.
8915 (propagate): Adjust.
8916 * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c
8917 tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c
8918 var-tracking.c: Adjust.
8919 * vec.c (stack_vecs): Remove.
8920 (register_stack_vec): Likewise.
8921 (stack_vec_register_index): Likewise.
8922 (unregister_stack_vec): Likewise.
8923 * vec.h (struct va_stack): Remove.
8924 (struct vec<T, A, vl_ptr>): Specialize as
8925 struct vec<T, va_heap, vl_ptr> instead since va_heap is the only
8926 allocation strategy compatable with the vl_ptr layout.
8927 (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty
8928 specialization anyway.
8929 (class stack_vec): New class.
8930 (vec_stack_alloc): Remove.
8931 (vec<T, va_heap, vl_ptr>::using_auto_storage): New method.
8932
8933 2013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8934 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8935 Sergey Lega <sergey.s.lega@intel.com>
8936 Anna Tikhonova <anna.tikhonova@intel.com>
8937 Ilya Tocar <ilya.tocar@intel.com>
8938 Andrey Turetskiy <andrey.turetskiy@intel.com>
8939 Ilya Verbin <ilya.verbin@intel.com>
8940 Kirill Yukhin <kirill.yukhin@intel.com>
8941 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8942
8943 * config/i386/i386.md (prefetch): Allow TARGET_AVX512PF.
8944 (*prefetch_avx512pf_<mode>): New.
8945 * config/i386/sse.md (avx512f_vmcmp<mode>3): Ditto.
8946 (avx512f_maskcmp<mode>3): Ditto.
8947 (vashrv16si3): Ditto.
8948
8949 2013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
8950 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8951 Sergey Lega <sergey.s.lega@intel.com>
8952 Anna Tikhonova <anna.tikhonova@intel.com>
8953 Ilya Tocar <ilya.tocar@intel.com>
8954 Andrey Turetskiy <andrey.turetskiy@intel.com>
8955 Ilya Verbin <ilya.verbin@intel.com>
8956 Kirill Yukhin <kirill.yukhin@intel.com>
8957 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8958
8959 * config/i386/i386.md (any_truncate): New.
8960 (trunsuffix): Ditto.
8961 * config/i386/predicates.md (const_8_to_9_operand): New.
8962 (const_10_to_11_operand): Ditto.
8963 (const_12_to_13_operand): Ditto.
8964 (const_14_to_15_operand): Ditto.
8965 (const_16_to_19_operand): Ditto.
8966 (const_20_to_23_operand): Ditto.
8967 (const_24_to_27_operand): Ditto.
8968 (const_28_to_31_operand): Ditto.
8969 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_FIX_NOTRUNC.
8970 (cvtusi2<ssescalarmodesuffix>32): New.
8971 (cvtusi2<ssescalarmodesuffix>64): Ditto.
8972 (ufloatv16siv16sf2): Ditto.
8973 (avx512f_fix_notruncv16sfv16si): Ditto.
8974 (avx512f_ufix_notruncv16sfv16si): Ditto.
8975 (avx512f_vcvtss2usi): Ditto.
8976 (avx512f_vcvtss2usiq): Ditto.
8977 (avx512f_vcvttss2usi): Ditto.
8978 (avx512f_vcvttss2usiq): Ditto.
8979 (avx512f_vcvtsd2usi): Ditto.
8980 (avx512f_vcvtsd2usiq): Ditto.
8981 (avx512f_vcvttsd2usi): Ditto.
8982 (avx512f_vcvttsd2usiq): Ditto.
8983 (ufloatv8siv8df): Ditto.
8984 (avx512f_cvtdq2pd512_2): Ditto.
8985 (avx512f_cvtpd2dq512): Ditto.
8986 (avx512f_ufix_notruncv8dfv8si): Ditto.
8987 (avx512f_cvtpd2ps512): Ditto.
8988 (vec_unpacks_lo_v16sf): Ditto.
8989 (vec_unpacks_hi_v16sf): Ditto.
8990 (vec_unpacks_float_hi_v16si): Ditto.
8991 (vec_unpacks_float_lo_v16si): Ditto.
8992 (avx512f_unpckhps512): Ditto.
8993 (avx512f_unpcklps512): Ditto.
8994 (avx512f_movshdup512): Ditto.
8995 (avx512f_movsldup512): Ditto.
8996 (vec_extract_lo_v32hi): Ditto.
8997 (vec_extract_hi_v32hi): Ditto.
8998 (vec_extract_lo_v64qi): Ditto.
8999 (vec_extract_hi_v64qi): Ditto.
9000 (avx512f_unpckhpd512): Ditto.
9001 (avx512f_movddup512): Ditto.
9002 (avx512f_unpcklpd512): Ditto.
9003 (*avx512f_unpcklpd512): Ditto.
9004 (avx512f_shufps512_1): Ditto.
9005 (avx512f_shufpd512_1): Ditto.
9006 (avx512f_interleave_highv8di): Ditto.
9007 (avx512f_interleave_lowv8di): Ditto.
9008 (PMOV_DST_MODE): Ditto.
9009 (pmov_src_mode): Ditto.
9010 (pmov_src_lower): Ditto.
9011 (pmov_suff): Ditto.
9012 (*avx512f_<code><pmov_src_lower><mode>2): Ditto.
9013 (*avx512f_<code>v8div16qi2): Ditto.
9014 (*avx512f_<code>v8div16qi2_store): Ditto.
9015 (vec_widen_umult_even_v16si): Ditto.
9016 (*vec_widen_umult_even_v16si): Ditto.
9017 (vec_widen_smult_even_v16si): Ditto.
9018 (*vec_widen_smult_even_v16si): Ditto.
9019 (avx512f_interleave_highv16si): Ditto.
9020 (avx512f_interleave_lowv16si): Ditto.
9021 (avx512f_<code>v16qiv16si2): Ditto.
9022 (avx512f_<code>v16hiv16si2): Ditto.
9023 (avx512f_<code>v8qiv8di2): Ditto.
9024 (avx512f_<code>v8hiv8di2): Ditto.
9025 (avx512f_<code>v8siv8di2): Ditto.
9026 (avx512cd_maskb_vec_dupv8di): Ditto.
9027 (avx512cd_maskw_vec_dupv16si): Ditto.
9028 (avx512f_vcvtph2ps512): Ditto.
9029 (avx512f_vcvtps2ph512): Ditto.
9030 (VEC_EXTRACT_MODE): Extened with wider modes.
9031 (VEC_PERM_AVX2): Ditto.
9032 (VEC_PERM_CONST): Ditto.
9033
9034 2013-10-28 Joern Rennecke <joern.rennecke@embecosm.com>
9035
9036 * config/arc/arc.c (arc_ccfsm_post_advance):
9037 Add comment about TYPE_RETURN.
9038
9039 2013-10-28 Bin Cheng <bin.cheng@arm.com>
9040
9041 * tree-ssa-loop-ivopts.c (strip_offset_1): Change parameter type.
9042 Count DECL_FIELD_BIT_OFFSET for COMPONENT_REF.
9043 (strip_offset): Convert offset to unsigned number.
9044
9045 2013-10-27 Tom de Vries <tom@codesourcery.com>
9046
9047 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
9048 Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
9049
9050 2013-10-27 Oleg Endo <olegendo@gcc.gnu.org>
9051
9052 * config/sh/sh.c (MSW, LSW): Move and rename macros to...
9053 * config/sh/sh.h (SH_REG_MSW_OFFSET, SH_REG_LSW_OFFSET): ... here.
9054 (TARGET_BIG_ENDIAN): New macro.
9055 * config/sh/sh.md: Use it instead of !TARGET_LITTLE_ENDIAN.
9056 Use SH_REG_MSW_OFFSET and SH_REG_LSW_OFFSET.
9057 * config/sh/sh.c: Likewise.
9058 * config/sh/sh.h: Likewise.
9059
9060 2013-10-27 Hans-Peter Nilsson <hp@axis.com>
9061
9062 * config/cris/cris.c (cris_emit_trap_for_misalignment): Replace the
9063 removed PRED_MUDFLAP with PRED_NORETURN. Correct file-path in comment.
9064
9065 2013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
9066
9067 * config/sh/sh.md (movmemsi): Remove empty constraints and predicates.
9068 Fix formatting.
9069 (cmpstr_t, cmpstrsi): Fix formatting.
9070
9071 2013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
9072
9073 PR target/52483
9074 * config/sh/predicates.md (general_movdst_operand): Allow reg+reg
9075 addressing, do not use general_operand for memory operands.
9076
9077 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
9078
9079 Revert:
9080 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
9081 * lra-spills.c (lra_final_code_change): Remove useless move insns.
9082
9083 2013-10-26 Jeff Law <law@redhat.com>
9084
9085 * predict.c (PRED_MUDFLAP): Remove.
9086 * targhooks.c (build_va_arg_indirect_ref): Remove mudflap support.
9087
9088 * Makefile.in (C_COMMON_OBJS): Remove tree-mudflap.
9089 (OBJS): Remove tree-nomudflap.o
9090 (GTFILES): Remove tree-mudflap.c
9091 * builtins.c (expand_builtin_alloc): Remove mudflap support.
9092 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
9093 (mfwrap_spec, mflib_spec): Likewise.
9094 (cpp_unique_options, cc1_options, static_specs): Likewise.
9095 * gimplify (gimplify_vla_decl, build_va_arg_indirect_ref): Likewise.
9096 * passes.def: Likewise.
9097 * toplev.c (compile_file, process_options): Likewise.
9098 * tree-inline.c (copy_tree_r): Likewise.
9099 * tree-pass.,h (make_pass_mudflap_1, make_pass_mudflap_2): Likewise.
9100 * varasm.c (make_decl_rtl, make_decl_rtl_for_debug): Likewise.
9101 (build_constant_desc, output_constant_def_contents): Likewise.
9102 (categorize_decl_for_section): Likewise.
9103 * tree-mudflap.c: Removed.
9104 * tree-mudflap.h: Removed.
9105 * tree-nomudflap.c: Removed.
9106 * bfin/uclinux.h (MFWRAP_SPEC): Remove.
9107 * moxie/uclinux.h (MFWRAP_SPEC): Likewise.
9108 * rs6000/aix.h (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
9109 * config/sol2.h (MFLIB_SPEC): Likewise.
9110 * doc/install.texi: Remove mudflap references.
9111 * doc/passes.texi: Similarly.
9112 * doc/sourcebuild.texi: Similarly.
9113 * doc/invoke.texi: Remove mudlfap related options.
9114
9115 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
9116
9117 PR rtl-optimization/58759
9118 * lra-constraints.c (lra_constraints): Remove wrong condition to
9119 remove insn setting up an equivalent pseudo.
9120
9121 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
9122
9123 * config/rs6000/rs6000-protos.h
9124 (rs6000_secondary_memory_needed_mode): New prototype.
9125 * config/rs6000/rs6000.c: Include ira.h.
9126 (TARGET_LRA_P): Redefine.
9127 (rs6000_legitimate_offset_address_p): Call
9128 legitimate_constant_pool_address_p in strict mode for LRA.
9129 (rs6000_legitimate_address_p): Ditto.
9130 (legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress.
9131 (rs6000_emit_move): Add LRA version of code to generate load/store
9132 of SDmode values.
9133 (rs6000_secondary_memory_needed_mode): New.
9134 (rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
9135 (rs6000_secondary_reload_class): Return NO_REGS for LRA for
9136 constants, memory, and FP registers.
9137 (rs6000_lra_p): New.
9138 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
9139 * config/rs6000/rs6000.opt (mlra): New option.
9140 * lra-spills.c (lra_final_code_change): Remove useless move insns.
9141
9142 2013-10-25 Yufeng Zhang <yufeng.zhang@arm.com>
9143
9144 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
9145 has_single_use () and not do the conversion if has_single_use ()
9146 returns false for the multiplication result.
9147
9148 2013-10-25 David Malcolm <dmalcolm@redhat.com>
9149
9150 * tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
9151 to "NODE", since this works on a "tree", not an
9152 "enum tree_code".
9153 (CONSTANT_CLASS_P): Likewise.
9154 (TYPE_P): Likewise.
9155 (DECL_P): Likewise.
9156 (INDIRECT_REF_P): Likewise.
9157 (REFERENCE_CLASS_P): Likewise.
9158 (COMPARISON_CLASS_P): Likewise.
9159 (UNARY_CLASS_P): Likewise.
9160 (BINARY_CLASS_P): Likewise.
9161 (STATEMENT_CLASS_P): Likewise.
9162 (VL_EXP_CLASS_P): Likewise.
9163 (EXPRESSION_CLASS_P): Likewise.
9164 (IS_TYPE_OR_DECL_P): Likewise.
9165
9166 2013-10-25 Marc Glisse <marc.glisse@inria.fr>
9167
9168 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
9169 ADDR_EXPR in the defining statement.
9170
9171 2013-10-25 Richard Biener <rguenther@suse.de>
9172
9173 PR tree-optimization/58626
9174 * tree-loop-distribution.c (enum rdg_dep_type): Remove
9175 anti_dd, output_dd and input_dd.
9176 (struct rdg_edge): Remove level and relation members.
9177 (RDGE_LEVEL, RDGE_RELATION): Remove.
9178 (dot_rdg_1): Adjust.
9179 (create_rdg_edge_for_ddr): Remove.
9180 (create_rdg_edges_for_scalar): Adjust.
9181 (create_edge_for_control_dependence): Likewise.
9182 (create_rdg_edges): Split into ...
9183 (create_rdg_flow_edges): ... this
9184 (create_rdg_cd_edges): ... and this.
9185 (free_rdg): Adjust.
9186 (build_rdg): Likewise, do not compute data dependences or
9187 add edges for them.
9188 (pg_add_dependence_edges): New function.
9189 (pgcmp): Likewise.
9190 (distribute_loop): First apply all non-dependence based
9191 partition mergings. Then compute dependences between partitions
9192 and merge and order partitions according to them.
9193
9194 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
9195
9196 PR rtl-optimization/58831
9197 * alias.c (init_alias_analysis): At the beginning of each iteration,
9198 set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
9199
9200 2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
9201
9202 * recog.c (search_ofs): New static variable moved from...
9203 (peep2_find_free_register): ...here.
9204 (peephole2_optimize): Initialize it.
9205
9206 2013-10-25 Tobias Burnus <burnus@net-b.de>
9207
9208 * doc/invoke.texi (fopenmp): Change supported OpenMP version to 4.0.
9209
9210 2013-10-25 Uros Bizjak <ubizjak@gmail.com>
9211
9212 * config/i386/i386.h (TARGET_MPX): New define.
9213 (TARGET_MPX_P): Ditto.
9214
9215 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
9216
9217 * config/i386/constraints.md (B): New.
9218 (Ti): New.
9219 (Tb): New.
9220 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
9221 * config/i386/i386-modes.def (BND32): New.
9222 (BND64): New.
9223 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
9224 * config/i386/i386.c (isa_opts): Add mmpx.
9225 (regclass_map): Add bound registers.
9226 (dbx_register_map): Likewise.
9227 (dbx64_register_map): Likewise.
9228 (svr4_dbx_register_map): Likewise.
9229 (PTA_MPX): New.
9230 (ix86_option_override_internal): Support MPX ISA.
9231 (ix86_conditional_register_usage): Support bound registers.
9232 (print_reg): Likewise.
9233 (ix86_code_end): Add MPX bnd prefix.
9234 (output_set_got): Likewise.
9235 (ix86_output_call_insn): Likewise.
9236 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
9237 (ix86_print_operand_punct_valid_p): Likewise.
9238 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
9239 UNSPEC_BNDMK_ADDR.
9240 (ix86_class_likely_spilled_p): Add bound regs support.
9241 (ix86_hard_regno_mode_ok): Likewise.
9242 (x86_order_regs_for_local_alloc): Likewise.
9243 (ix86_bnd_prefixed_insn_p): New.
9244 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
9245 (FIXED_REGISTERS): Add bound registers.
9246 (CALL_USED_REGISTERS): Likewise.
9247 (REG_ALLOC_ORDER): Likewise.
9248 (HARD_REGNO_NREGS): Likewise.
9249 (TARGET_MPX): New.
9250 (VALID_BND_REG_MODE): New.
9251 (FIRST_BND_REG): New.
9252 (LAST_BND_REG): New.
9253 (reg_class): Add BND_REGS.
9254 (REG_CLASS_NAMES): Likewise.
9255 (REG_CLASS_CONTENTS): Likewise.
9256 (BND_REGNO_P): New.
9257 (ANY_BND_REG_P): New.
9258 (BNDmode): New.
9259 (HI_REGISTER_NAMES): Add bound registers.
9260 * config/i386/i386.md (UNSPEC_BNDMK): New.
9261 (UNSPEC_BNDMK_ADDR): New.
9262 (UNSPEC_BNDSTX): New.
9263 (UNSPEC_BNDLDX): New.
9264 (UNSPEC_BNDLDX_ADDR): New.
9265 (UNSPEC_BNDCL): New.
9266 (UNSPEC_BNDCU): New.
9267 (UNSPEC_BNDCN): New.
9268 (UNSPEC_MPX_FENCE): New.
9269 (BND0_REG): New.
9270 (BND1_REG): New.
9271 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9272 (length_immediate): Likewise.
9273 (prefix_0f): Likewise.
9274 (memory): Likewise.
9275 (prefix_rep): Check for bnd prefix.
9276 (length_nobnd): New.
9277 (length): Use length_nobnd if specified.
9278 (BND): New.
9279 (bnd_ptr): New.
9280 (BNDCHECK): New.
9281 (bndcheck): New.
9282 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
9283 (*jcc_2): Likewise.
9284 (jump): Likewise.
9285 (simple_return_internal): Likewise.
9286 (simple_return_pop_internal): Likewise.
9287 (*indirect_jump): Add MPX bnd prefix.
9288 (*tablejump_1): Likewise.
9289 (simple_return_internal_long): Likewise.
9290 (simple_return_indirect_internal): Likewise.
9291 (<mode>_mk): New.
9292 (*<mode>_mk): New.
9293 (mov<mode>): New.
9294 (*mov<mode>_internal_mpx): New.
9295 (<mode>_<bndcheck>): New.
9296 (*<mode>_<bndcheck>): New.
9297 (<mode>_ldx): New.
9298 (*<mode>_ldx): New.
9299 (<mode>_stx): New.
9300 (*<mode>_stx): New.
9301 * config/i386/predicates.md (lea_address_operand): Rename to...
9302 (address_no_seg_operand): ... this.
9303 (address_mpx_no_base_operand): New.
9304 (address_mpx_no_index_operand): New.
9305 (bnd_mem_operator): New.
9306 * config/i386/i386.opt (mmpx): New.
9307 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
9308 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
9309
9310 2013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
9311
9312 * mode-classes.def (MODE_POINTER_BOUNDS): New.
9313 * tree.def (POINTER_BOUNDS_TYPE): New.
9314 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
9315 (POINTER_BOUNDS_MODE): New.
9316 (make_pointer_bounds_mode): New.
9317 * machmode.h (POINTER_BOUNDS_MODE_P): New.
9318 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
9319 (layout_type): Support POINTER_BOUNDS_TYPE.
9320 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
9321 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
9322 (type_contains_placeholder_1): Likewise.
9323 * tree.h (POINTER_BOUNDS_TYPE_P): New.
9324 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
9325 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
9326
9327 2013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
9328
9329 * expr.c (expand_expr_real_1): Use mode of memory reference rather than
9330 mode of address computation when calling memory_address_addr_space.
9331
9332 2013-08-24 Richard Henderson <rth@twiddle.net>
9333
9334 PR rtl/58542
9335 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
9336 instead of create_convert_operand_to.
9337 (maybe_emit_sync_lock_test_and_set): Likewise.
9338 (expand_atomic_compare_and_swap): Likewise.
9339 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
9340
9341 2013-08-24 Sriraman Tallam <tmsriram@google.com>
9342
9343 * cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
9344 Change param_is to use the struct and not the pointer to the struct.
9345
9346 2013-10-24 Andrew MacLeod <amacleod@redhat.com>
9347
9348 * builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c.
9349 * gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
9350 Move to targhooks.c.
9351 (dummy_object, gimplify_va_arg_expr): Relocate from builtins.c.
9352 * targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
9353 Relocate from gimplify.c.
9354 * targhooks.h: Add 2 prototypes.
9355 * tree.h: Delete 2 prototypes.
9356
9357 2013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
9358
9359 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
9360 [reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.
9361
9362 2013-10-24 Cong Hou <congh@google.com>
9363
9364 * convert.c (convert_to_real): Guard those unsafe math function
9365 convertions with flag_unsafe_math_optimizations. Handle sqrt()
9366 specially.
9367
9368 2013-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
9369
9370 PR ipa/58712
9371 * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
9372 as argument.
9373 (cgraph_create_edge): Use the new argument.
9374 (cgraph_create_indirect_edge): Likewise.
9375
9376 2013-10-24 Joern Rennecke <joern.rennecke@embecosm.com>
9377
9378 * config/arc/arc.c (arc_ccfsm_post_advance): Also handle
9379 TYPE_UNCOND_BRANCH.
9380 (arc_ifcvt) <case 1 and 2>: Check that arc_ccfsm_post_advance
9381 changes statep->state.
9382
9383 2013-10-24 Tobias Burnus <burnus@net-b.de>
9384
9385 PR other/33426
9386 * tree-cfg.c (replace_loop_annotate): New function.
9387 (execute_build_cfg): Call it.
9388 * gimplify.c (gimple_boolify, gimplify_expr): Handle ANNOTATE_EXPR.
9389 * internal-fn.c (expand_ANNOTATE): New function.
9390 * internal-fn.def (ANNOTATE): Define as new internal function.
9391 * tree-core.h (tree_node_kind): Add annot_expr_ivdep_kind.
9392 * tree-pretty-print.c (dump_generic_node): Handle ANNOTATE_EXPR.
9393 * tree.def (ANNOTATE_EXPR): New DEFTREECODE.
9394 * doc/extend.texi (Pragmas): Document #pragma ivdep.
9395 * doc/generic.texi (Expressions): Document ANNOTATE_EXPR.
9396
9397 2013-10-17 Ian Bolton <ian.bolton@arm.com>
9398 Marcus Shawcroft <marcus.shawcroft@arm.com>
9399
9400 * config/aarch64/aarch64.c (aarch64_preferred_reload_class):
9401 Special case reload SP+C into none GENERAL_REGS.
9402
9403 2013-10-24 Michael Matz <matz@suse.de>
9404
9405 * gengtype.c (is_file_equal): Check that files will be same length.
9406
9407 2013-10-25 Christian Bruel <christian.bruel@st.com>
9408
9409 * config.gcc (sh-*): Add sh-mem.o to extra_obj.
9410 * config/sh/t-sh (sh-mem.o): New rule.
9411 * config/sh/sh-mem.cc (expand_block_move): Moved here.
9412 (sh_expand_cmpstr): New function.
9413 * config/sh/sh.c (force_into, expand_block_move): Move to sh-mem.c.
9414 * config/sh/sh-protos.h (sh_expand_cmpstr): Declare.
9415 * config/sh/sh.md (cmpstrsi, cmpstr_t): New patterns.
9416 (rotlhi3_8): Rename.
9417
9418 2013-10-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9419
9420 * configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC.
9421 * Makefile.in (CXXDEPMODE): Assign and change users.
9422 (CCDEPMODE): Delete.
9423 * configure: Regenerate.
9424
9425 2013-10-23 David Malcolm <dmalcolm@redhat.com>
9426
9427 * gengtype-parse.c (require_without_advance): New.
9428 (type): For GTY-marked types that are not GTY((user)), parse any
9429 base classes, requiring them to be single-inheritance, and not
9430 be templates. For non-GTY-marked types and GTY((user)),
9431 continue to skip over any C++ inheritance specification.
9432 * gengtype-state.c (state_writer::write_state_struct_type):
9433 Write base class of type (if any).
9434 (read_state_struct_type): Read base class of type (if any).
9435 * gengtype.c (new_structure): Add a "base_class" parameter.
9436 (create_optional_field_): Update for new parameter to new_structure.
9437 (adjust_field_rtx_def): Likewise.
9438 (adjust_field_tree_exp): Likewise.
9439 * gengtype.h (struct type): Add "base_class" field to the s
9440 union field.
9441 (new_structure): Add "base" parameter.
9442
9443 2013-10-23 Sriraman Tallam <tmsriram@google.com>
9444
9445 PR target/57756
9446 * config/i386/i386.c (ix86_option_override_internal):
9447 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
9448 (ix86_valid_target_attribute_tree):
9449 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
9450 Change TARGET_SSE to TARGET_SSE_P (opts->...)
9451
9452 2013-10-23 Andrew MacLeod <amacleod@redhat.com>
9453
9454 * tree-ssa-loop.h: Remove include files.
9455 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
9456 * cfgloopmanip.c: Move required includes from tree-ssa-loop.h.
9457 * graphite-clast-to-gimple.c: Likewise.
9458 * graphite-scop-detection.c: Likewise.
9459 * graphite-sese-to-poly.c: Likewise.
9460 * ipa-inline-analysis.c: Likewise.
9461 * ipa-pure-const.c: Likewise.
9462 * loop-init.c: Likewise.
9463 * passes.c: Likewise.
9464 * predict.c: Likewise.
9465 * tree-cfg.c: Likewise.
9466 * tree-cfgcleanup.c: Likewise.
9467 * tree-chrec.c: Likewise.
9468 * tree-data-ref.c: Likewise.
9469 * tree-loop-distribution.c: Likewise.
9470 * tree-parloops.c: Likewise.
9471 * tree-predcom.c: Likewise.
9472 * tree-scalar-evolution.c: Likewise.
9473 * tree-ssa-address.c: Likewise.
9474 * tree-ssa.c: Likewise.
9475 * tree-ssa-dce.c: Likewise.
9476 * tree-ssa-loop.c: Likewise.
9477 * tree-ssa-loop-im.c: Likewise.
9478 * tree-ssa-loop-ivcanon.c: Likewise.
9479 * tree-ssa-loop-ivopts.c: Likewise.
9480 * tree-ssa-loop-manip.c: Likewise.
9481 * tree-ssa-loop-niter.c: Likewise.
9482 * tree-ssa-loop-prefetch.c: Likewise.
9483 * tree-ssa-loop-unswitch.c: Likewise.
9484 * tree-ssa-reassoc.c: Likewise.
9485 * tree-vect-data-refs.c: Likewise.
9486 * tree-vect-loop.c: Likewise.
9487 * tree-vect-loop-manip.c: Likewise.
9488 * tree-vectorizer.c: Likewise.
9489 * tree-vect-stmts.c: Likewise.
9490 * tree-vrp.c: Likewise.
9491
9492 2013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9493
9494 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
9495
9496 2013-10-23 Jakub Jelinek <jakub@redhat.com>
9497
9498 PR tree-optimization/58775
9499 PR tree-optimization/58791
9500 * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
9501 (insert_stmt_after): Rewritten, don't move the stmt, but really
9502 insert it.
9503 (get_stmt_uid_with_default): Remove.
9504 (build_and_add_sum): Use insert_stmt_after and
9505 reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only labels.
9506 (update_range_test): Set uid on stmts added by
9507 force_gimple_operand_gsi. Don't immediately modify statements
9508 in inter-bb optimization, just update oe->op values.
9509 (optimize_range_tests): Return bool whether any changed have been made.
9510 (update_ops): New function.
9511 (struct inter_bb_range_test_entry): New type.
9512 (maybe_optimize_range_tests): Perform statement changes here.
9513 (not_dominated_by, appears_later_in_bb, get_def_stmt,
9514 ensure_ops_are_available): Remove.
9515 (find_insert_point): Rewritten.
9516 (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
9517 return LHS of the (new resp. old) stmt. Don't call
9518 ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
9519 instead of last, move new stmt at the right place.
9520 (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
9521 (negate_value): Likewise. Set uids.
9522 (break_up_subtract_bb): Initialize uids.
9523 (reassociate_bb): Adjust rewrite_expr_tree caller.
9524 (do_reassoc): Don't call renumber_gimple_stmt_uids.
9525
9526 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
9527
9528 PR target/58838
9529 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
9530 TARGET_32BIT final condition.
9531 (mulsi3_internal2 and splitter): Same.
9532
9533 2013-10-23 Jeff Law <law@redhat.com>
9534
9535 * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading
9536 through joiner blocks with abnormal outgoing edges.
9537
9538 * tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block.
9539 Add parameter JOINERS, to allow/disallow threading through joiner
9540 blocks.
9541 (thread_block): New. Call thread_block_1.
9542 (mark_threaded_blocks): Remove code to filter out certain cases
9543 of threading through joiner blocks.
9544 (thread_through_all_blocks): Document how we can have a dangling
9545 edge AUX field and clear it.
9546
9547 2013-10-23 Ian Lance Taylor <iant@google.com>
9548
9549 * doc/invoke.texi (Option Summary): Remove -fno-default-inline.
9550 (C++ Dialect Options): Likewise.
9551 (Optimize Options): Likewise.
9552
9553 2013-10-23 Tom de Vries <tom@codesourcery.com>
9554
9555 PR tree-optimization/58805
9556 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
9557
9558 2013-10-23 Jakub Jelinek <jakub@redhat.com>
9559
9560 * tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize
9561 sequence based on get_range_info returned range.
9562
9563 2013-10-23 Andrew MacLeod <amacleod@redhat.com>
9564
9565 * tree-ssa.h: Remove all #include's
9566 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
9567 * alias.c: Move required includes from tree-ssa.h.
9568 * asan.c: Likewise.
9569 * builtins.c: Likewise.
9570 * calls.c: Likewise.
9571 * cfgexpand.c: Likewise.
9572 * cfghooks.c: Likewise.
9573 * cfgloop.c: Likewise.
9574 * cfgloopmanip.c: Likewise.
9575 * cgraph.c: Likewise.
9576 * cgraphbuild.c: Likewise.
9577 * cgraphclones.c: Likewise.
9578 * cgraphunit.c: Likewise.
9579 * dse.c: Likewise.
9580 * except.c: Likewise.
9581 * expr.c: Likewise.
9582 * final.c: Likewise.
9583 * fold-const.c: Likewise.
9584 * ggc-page.c: Likewise.
9585 * gimple-builder.c: Likewise.
9586 * gimple-fold.c: Likewise.
9587 * gimple-iterator.c: Likewise.
9588 * gimple-low.c: Likewise.
9589 * gimple-pretty-print.c: Likewise.
9590 * gimple-ssa-strength-reduction.c: Likewise.
9591 * gimple-streamer-in.c: Likewise.
9592 * gimple-streamer-out.c: Likewise.
9593 * gimplify.c: Likewise.
9594 * graphite-blocking.c: Likewise.
9595 * graphite-clast-to-gimple.c: Likewise.
9596 * graphite-dependences.c: Likewise.
9597 * graphite-interchange.c: Likewise.
9598 * graphite-optimize-isl.c: Likewise.
9599 * graphite-poly.c: Likewise.
9600 * graphite-scop-detection.c: Likewise.
9601 * graphite-sese-to-poly.c: Likewise.
9602 * graphite.c: Likewise.
9603 * ipa-cp.c: Likewise.
9604 * ipa-inline-analysis.c: Likewise.
9605 * ipa-inline-transform.c: Likewise.
9606 * ipa-inline.c: Likewise.
9607 * ipa-prop.c: Likewise.
9608 * ipa-pure-const.c: Likewise.
9609 * ipa-reference.c: Likewise.
9610 * ipa-split.c: Likewise.
9611 * ipa-utils.c: Likewise.
9612 * loop-init.c: Likewise.
9613 * lto-cgraph.c: Likewise.
9614 * lto-section-in.c: Likewise.
9615 * lto-section-out.c: Likewise.
9616 * lto-streamer-in.c: Likewise.
9617 * lto-streamer-out.c: Likewise.
9618 * lto-streamer.c: Likewise.
9619 * omp-low.c: Likewise.
9620 * passes.c: Likewise.
9621 * predict.c: Likewise.
9622 * print-tree.c: Likewise.
9623 * profile.c: Likewise.
9624 * sese.c: Likewise.
9625 * targhooks.c: Likewise.
9626 * tracer.c: Likewise.
9627 * trans-mem.c: Likewise.
9628 * tree-call-cdce.c: Likewise.
9629 * tree-cfg.c: Likewise.
9630 * tree-cfgcleanup.c: Likewise.
9631 * tree-chrec.c: Likewise.
9632 * tree-complex.c: Likewise.
9633 * tree-data-ref.c: Likewise.
9634 * tree-dfa.c: Likewise.
9635 * tree-eh.c: Likewise.
9636 * tree-emutls.c: Likewise.
9637 * tree-if-conv.c: Likewise.
9638 * tree-inline.c: Likewise.
9639 * tree-into-ssa.c: Likewise.
9640 * tree-loop-distribution.c: Likewise.
9641 * tree-mudflap.c: Likewise.
9642 * tree-nested.c: Likewise.
9643 * tree-nrv.c: Likewise.
9644 * tree-object-size.c: Likewise.
9645 * tree-outof-ssa.c: Likewise.
9646 * tree-parloops.c: Likewise.
9647 * tree-phinodes.c: Likewise.
9648 * tree-predcom.c: Likewise.
9649 * tree-pretty-print.c: Likewise.
9650 * tree-profile.c: Likewise.
9651 * tree-scalar-evolution.c: Likewise.
9652 * tree-sra.c: Likewise.
9653 * tree-ssa-address.c: Likewise.
9654 * tree-ssa-alias.c: Likewise.
9655 * tree-ssa-ccp.c: Likewise.
9656 * tree-ssa-coalesce.c: Likewise.
9657 * tree-ssa-copy.c: Likewise.
9658 * tree-ssa-copyrename.c: Likewise.
9659 * tree-ssa-dce.c: Likewise.
9660 * tree-ssa-dom.c: Likewise.
9661 * tree-ssa-dse.c: Likewise.
9662 * tree-ssa-forwprop.c: Likewise.
9663 * tree-ssa-ifcombine.c: Likewise.
9664 * tree-ssa-live.c: Likewise.
9665 * tree-ssa-loop-ch.c: Likewise.
9666 * tree-ssa-loop-im.c: Likewise.
9667 * tree-ssa-loop-ivcanon.c: Likewise.
9668 * tree-ssa-loop-ivopts.c: Likewise.
9669 * tree-ssa-loop-manip.c: Likewise.
9670 * tree-ssa-loop-niter.c: Likewise.
9671 * tree-ssa-loop-prefetch.c: Likewise.
9672 * tree-ssa-loop-unswitch.c: Likewise.
9673 * tree-ssa-loop.c: Likewise.
9674 * tree-ssa-math-opts.c: Likewise.
9675 * tree-ssa-operands.c: Likewise.
9676 * tree-ssa-phiopt.c: Likewise.
9677 * tree-ssa-phiprop.c: Likewise.
9678 * tree-ssa-pre.c: Likewise.
9679 * tree-ssa-propagate.c: Likewise.
9680 * tree-ssa-reassoc.c: Likewise.
9681 * tree-ssa-sccvn.c: Likewise.
9682 * tree-ssa-sink.c: Likewise.
9683 * tree-ssa-strlen.c: Likewise.
9684 * tree-ssa-structalias.c: Likewise.
9685 * tree-ssa-tail-merge.c: Likewise.
9686 * tree-ssa-ter.c: Likewise.
9687 * tree-ssa-threadedge.c: Likewise.
9688 * tree-ssa-threadupdate.c: Likewise.
9689 * tree-ssa-uncprop.c: Likewise.
9690 * tree-ssa-uninit.c: Likewise.
9691 * tree-ssa.c: Likewise.
9692 * tree-ssanames.c: Likewise.
9693 * tree-stdarg.c: Likewise.
9694 * tree-streamer-in.c: Likewise.
9695 * tree-switch-conversion.c: Likewise.
9696 * tree-tailcall.c: Likewise.
9697 * tree-vect-data-refs.c: Likewise.
9698 * tree-vect-generic.c: Likewise.
9699 * tree-vect-loop-manip.c: Likewise.
9700 * tree-vect-loop.c: Likewise.
9701 * tree-vect-patterns.c: Likewise.
9702 * tree-vect-slp.c: Likewise.
9703 * tree-vect-stmts.c: Likewise.
9704 * tree-vectorizer.c: Likewise.
9705 * tree-vrp.c: Likewise.
9706 * tree.c: Likewise.
9707 * tsan.c: Likewise.
9708 * value-prof.c: Likewise.
9709 * var-tracking.c: Likewise.
9710 * varpool.c: Likewise.
9711 * vtable-verify.c: Likewise.
9712
9713 2013-10-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9714
9715 * config/tilegx/tilegx.c: Include "tree.h".
9716
9717 2013-10-23 Jakub Jelinek <jakub@redhat.com>
9718
9719 * gimple-pretty-print.c (dump_ssaname_info): Always print "# " before
9720 the info, not after it.
9721 (gump_gimple_phi): Add COMMENT argument, if true, print "# " after
9722 dump_ssaname_info call.
9723 (pp_gimple_stmt_1): Adjust caller.
9724 (dump_phi_nodes): Likewise. Don't print "# " here.
9725
9726 2013-10-22 Jan Hubicka <jh@suse.cz>
9727
9728 * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New
9729 tuning flag.
9730 * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
9731 * i386.c (expand_small_movmem_or_setmem): New function.
9732 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New
9733 function.
9734 (alg_usable_p): Add support for value ranges; cleanup.
9735 (ix86_expand_set_or_movmem): Add support for misaligned moves.
9736
9737 2013-10-22 Sterling Augustine <saugustine@google.com>
9738
9739 * doc/invoke.texi: Document -ggnu-pubnames.
9740 * common.opt: Add new option -ggnu-pubnames and modify -gpubnames
9741 logic.
9742 * dwarf2out.c: Include gdb/gdb-index.h.
9743 (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle
9744 debug_generate_pub_sections.
9745 (is_java, output_pubtables, output_pubname): New functions.
9746 (include_pubname_in_output): Handle debug_generate_pub_sections at
9747 level 2.
9748 (size_of_pubnames): Use new local space_for_flags based on
9749 debug_generate_pub_sections.
9750 (output_pubnames): Unify pubnames and pubtypes output logic.
9751 Genericize comments. Call output_pubname.
9752 (dwarf2out_finish): Move logic to output_pubnames and call it.
9753
9754 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
9755
9756 PR target/58779
9757 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
9758 Remove CCCmode handling.
9759 <case LTU>: Return 'c' suffix for CCCmode.
9760 <case GEU>: Return 'nc' suffix for CCCmode.
9761 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
9762 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
9763 (*sub<mode>3_cc_overflow): Ditto.
9764 (*subsi3_zext_cc_overflow): Ditto.
9765
9766 2013-10-22 Steve Ellcey <sellcey@mips.com>
9767
9768 * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor
9769 (AND (NOT OP1) (NOT OP2)).
9770
9771 2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
9772
9773 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
9774 meaning of merge-high and merge-low masks for little endian; avoid
9775 use of vector-pack masks for little endian for mismatched modes.
9776
9777 2013-10-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9778
9779 * config/tilepro/tilepro.c: Include "tree.h".
9780
9781 2013-10-22 Andreas Schwab <schwab@suse.de>
9782
9783 * config/m68k/m68k.c (notice_update_cc): Handle register conflict
9784 with PRE_DEC.
9785
9786 2013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
9787
9788 * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
9789 [Ed Smith-Rowland]): New entries.
9790 ([Stephen M. Webb]): Update.
9791
9792 2013-10-22 Andrew MacLeod <amacleod@redhat.com>
9793
9794 * tree-ssa-ter.h: Remove duplicate copy of file contents.
9795
9796 2013-10-21 Marek Polacek <polacek@redhat.com>
9797
9798 PR middle-end/58809
9799 * fold-const.c (fold_range_test): Return 0 if the type is not
9800 an integral type.
9801
9802 2013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
9803
9804 * system.h: Move hwint.h include further down.
9805 * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add
9806 gcc_checking_asserts.
9807 * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
9808
9809 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
9810
9811 Fix volatile issues in optimize_bit_field_compare.
9812 * fold-const.c (optimize_bit_field_compare): Bail out if
9813 lvolatilep or rvolatilep.
9814
9815 2013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
9816
9817 Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields
9818 and get_inner_reference returning different pmode for non-volatile
9819 bit-field members dependent on flag_strict_volatile_bitfields.
9820 * stor-layout.c (layout_decl): Remove special handling of
9821 flag_strict_volatile_bitfields.
9822 * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD
9823 if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE.
9824
9825 2013-10-21 Paulo Matos <pmatos@broadcom.com>
9826
9827 * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
9828 calculations.
9829
9830 2013-10-21 Jeff Law <law@redhat.com>
9831
9832 * tree-ssa-threadedge.c (thread_through_normal_block): New
9833 argument VISITED. Remove VISISTED as a local variable. When we
9834 have a threadable jump, verify the destination of the jump has not
9835 been visised.
9836 (thread_across_edge): Allocate VISITED bitmap once at function
9837 scope and use it throughout. Make sure to set appropriate bits in
9838 VISITED for E (start of jump thread path).
9839 * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading
9840 through a joiner if any edge on the path has a recorded jump thread.
9841
9842 2013-10-21 Ian Lance Taylor <iant@google.com>
9843
9844 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
9845 don't imply that attributes can solve all problems.
9846 (Directory Options): Fix typo.
9847
9848 2013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9849
9850 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
9851 extend and extend_add.
9852
9853 2013-10-21 Richard Biener <rguenther@suse.de>
9854
9855 PR tree-optimization/58794
9856 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
9857 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
9858
9859 2013-10-21 Richard Biener <rguenther@suse.de>
9860
9861 PR middle-end/58742
9862 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
9863 to (T) X for sign-changing conversions (or no conversion).
9864
9865 2013-10-20 Uros Bizjak <ubizjak@gmail.com>
9866
9867 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
9868
9869 2013-10-20 Jan Hubicka <jh@suse.cz>
9870
9871 * config/i386/i386-tune.def: Add comment; organize into categories
9872
9873 2013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
9874
9875 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
9876 argument. Update function comment.
9877 (expand_set_or_movmem_via_rep): New function combining
9878 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
9879 (expand_movmem_via_rep_mov): Remove.
9880 expand_setmem_via_rep_stos): Remove.
9881 (expand_movmem_epilogue): Update calls correspondingly.
9882 (expand_setmem_epilogue_via_loop): Likewise.
9883 (emit_memset): New.
9884 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
9885 (expand_set_or_movmem_prologue): New function combining
9886 expand_movmem_prologue and expand_setmem_prologue.
9887 (expand_movmem_prologue): Remove.
9888 (expand_setmem_prologue): Remove.
9889 (expand_set_or_movmem_constant_prologue): New function combining
9890 expand_constant_movmem_prologue and expand_constant_setmem_prologue.
9891 (expand_constant_movmem_prologue): Remove.
9892 (expand_constant_setmem_prologue): Remove.
9893 (promote_duplicated_reg): Allow vector-const0 value.
9894 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
9895 and ix86_expand_setmem.
9896 (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
9897 (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
9898
9899 2013-10-21 Diego Novillo <dnovillo@google.com>
9900
9901 * asan.c: Include tree.h
9902 * bb-reorder.c: Likewise.
9903 * cfgcleanup.c: Likewise.
9904 * cfgloopmanip.c: Likewise.
9905 * data-streamer-in.c: Likewise.
9906 * data-streamer-out.c: Likewise.
9907 * data-streamer.c: Likewise.
9908 * dwarf2cfi.c: Likewise.
9909 * graphite-blocking.c: Likewise.
9910 * graphite-clast-to-gimple.c: Likewise.
9911 * graphite-dependences.c: Likewise.
9912 * graphite-interchange.c: Likewise.
9913 * graphite-optimize-isl.c: Likewise.
9914 * graphite-poly.c: Likewise.
9915 * graphite-scop-detection.c: Likewise.
9916 * graphite-sese-to-poly.c: Likewise.
9917 * graphite.c: Likewise.
9918 * ipa-devirt.c: Likewise.
9919 * ipa-profile.c: Likewise.
9920 * ipa.c: Likewise.
9921 * ira.c: Likewise.
9922 * loop-init.c: Likewise.
9923 * loop-unroll.c: Likewise.
9924 * lower-subreg.c: Likewise.
9925 * lto/lto-object.c: Likewise.
9926 * recog.c: Likewise.
9927 * reginfo.c: Likewise.
9928 * tree-loop-distribution.c: Likewise.
9929 * tree-parloops.c: Likewise.
9930 * tree-ssa-strlen.c: Likewise.
9931 * tree-streamer.c: Likewise.
9932 * value-prof.c: Likewise.
9933 * target-globals.c: Likewise.
9934 * expr.h: Include tree-core.h instead of tree.h.
9935 * gimple.h: Likewise.
9936 * ipa-prop.h: Likewise.
9937 * ipa-utils.h: Likewise.
9938 * lto-streamer.h: Likewise.
9939 * streamer-hooks.h: Likewise.
9940 * ipa-reference.h: Include cgraph.h instead of tree.h.
9941 * cgraph.h: Include basic-block.h instead of tree.h.
9942 * tree-streamer.h: Do not include tree.h.
9943 * genattrtab.c (write_header): Generate inclusion of tree.h.
9944 * genautomata.c (main): Likewise.
9945 * genemit.c: Likewise.
9946 * genopinit.c: Likewise.
9947 * genoutput.c (output_prologue): Likewise.
9948 * genpeep.c: Likewise.
9949
9950 2013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9951
9952 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
9953 little endian.
9954 (vec_unpacku_hi_v8hi): Likewise.
9955 (vec_unpacku_lo_v16qi): Likewise.
9956 (vec_unpacku_lo_v8hi): Likewise.
9957
9958 2013-10-20 Jan Hubicka <jh@suse.cz>
9959
9960 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
9961 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
9962 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
9963
9964 2013-10-20 Richard Sandiford <rdsandiford@googlemail.com>
9965
9966 * config/mips/mips.h (ISA_HAS_WSBH): Define.
9967 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
9968 constants.
9969 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
9970
9971 2013-10-19 John David Anglin <danglin@gcc.gnu.org>
9972
9973 PR target/58603
9974 * system.h: Undef m_slot.
9975
9976 2013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9977
9978 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
9979 all elements for both endian flavors.
9980
9981 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
9982
9983 PR target/58792
9984 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
9985 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
9986 and SI_REG for 64bit SYSV ABI targets.
9987
9988 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
9989
9990 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
9991 to multi_reg_return. Clarify that we are skipping USEs of multiple
9992 return registers. Use bool type where appropriate.
9993
9994 2013-10-18 Jan Hubicka <jh@suse.cz>
9995
9996 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
9997 for cold functions.
9998 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
9999 (X86_TUNE_PUSH_MEMORY): Likewise.
10000 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
10001 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
10002 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
10003 New.
10004 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
10005 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
10006 Remove.
10007 (ix86_option_override_internal): Update to use tune features instead
10008 of variables.
10009
10010 2013-10-18 Cong Hou <congh@google.com>
10011
10012 PR tree-optimization/58508
10013 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
10014 statement that contains data refs with zero-step.
10015
10016 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
10017
10018 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
10019 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
10020 * gimple-low.c (gimple_check_call_arg,
10021 gimple_check_call_matching_types): Move to cgraph.c.
10022 * gimple-low.h: Remove prototype.
10023 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
10024 Relocate from gimple-low.c.
10025 * cgraph.h: Add prototype. Don't include basic-block.h.
10026 * gimplify.c: Add gimple-low to include list.
10027 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
10028 * tree-eh.c: Add gimple-low to include list.
10029 * tree-nested.c: Likewise.
10030 * cfgexpand.c: Add tree-ssa-address.h to include list.
10031 * expr.c: Likewise.
10032 * gimple-fold.c: Likewise.
10033 * gimple-ssa-strength-reduction.c: Likewise.
10034 * trans-mem.c: Likewise.
10035 * tree-mudflap.c: Likewise.
10036 * tree-ssa-loop-ivopts.c: Likewise.
10037 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
10038 (degenerate_phi_result): Move to tree-phinodes.c.
10039 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
10040 * tree-ssa-threadedge.c: Likewise.
10041 * tree-vrp.c: Likewise.
10042 * tree-phinodes.c (degenerate_phi_result): Relocate here.
10043 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
10044 * tree-phinodes.h (degenerate_phi_result): Add prototype.
10045 * tree-ssa-copy.c: Include tree-ssa-dom.h.
10046 * tree-ssa-forwprop.c: Likewise.
10047 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
10048 pass_data_cleanup_cfg_post_optimizing,
10049 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
10050 * tree-optimize.c: Delete File.
10051 * graphite.c: Include tree-cfgcleanup.h.
10052 * passes.c: Likewise.
10053 * tree-cfg.c: Likewise.
10054 * tree-profile.c: Likewise.
10055 * tree-ssa-dse.c: Likewise.
10056 * tree-ssa-loop-ivcanon.c: Likewise.
10057 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
10058 * tree-outof-ssa.c: Include sbitmap.h.
10059 * tree-ssa-live.c: Likewise.
10060 * tree-ssa-propagate.c: Likewise.
10061 * tree-ssa-structalias.c: Likewise.
10062 * tree-stdarg.c: Likewise.
10063 * Makefile.in (OBJS): Delete tree-optimize.o.
10064 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
10065 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
10066 * varasm.c: Include basic-block.h.
10067 * cfgloop.h: Include function.h instead of basic-block.h
10068 (bb_loop_depth): Move to cfgloop.c.
10069 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
10070
10071 2013-10-18 Teresa Johnson <tejohnson@google.com>
10072
10073 * predict.c (probably_never_executed): Compare frequency-based
10074 count to number of training runs.
10075 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
10076
10077 2013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10078
10079 * config/arm/arm.c (cortexa9_extra_costs): New table.
10080 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
10081
10082 2013-10-18 Jeff Law <law@redhat.com>
10083
10084 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
10085
10086 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
10087 (register_jump_thread): Add "registered_jump_thread" debug
10088 counter support.
10089 * dbgcnt.def (registered_jump_thread): New debug counter.
10090
10091 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
10092
10093 * config/rs6000/rs6000.c: Include cgraph.h.
10094
10095 2013-10-18 Teresa Johnson <tejohnson@google.com>
10096
10097 * tree-ssa-tail-merge.c (replace_block_by): Update edge
10098 weights during merging.
10099
10100 2013-10-18 Andrew MacLeod <amacleod@redhat.com>
10101
10102 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
10103 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
10104 * tree-ssa-operands.h: Remove prototype.
10105 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
10106 * gimple.c (virtual_operand_p): Relocate from gimple.c.
10107 * gimple.h: Add prototype.
10108 * gimple-ssa.h: Include tree-ssa-operands.h.
10109 * tree-dump.c: Add tree-cfg.h to include list.
10110 * tree-ssa-alias.c: Add ipa-reference.h to include list.
10111 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
10112 * config/i386/i386.c: Don't include tree-flow.h.
10113 * config/rs6000/rs6000.c: Likewise.
10114
10115 2013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10116
10117 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
10118
10119 2013-10-18 Richard Biener <rguenther@suse.de>
10120
10121 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
10122 or TYPE_UNSIGNED of integral types.
10123 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
10124 NULL_TREE for zero-precision integral types.
10125
10126 2013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
10127
10128 * config/aarch64/arm_neon.h
10129 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
10130
10131 2013-10-17 Sriraman Tallam <tmsriram@google.com>
10132
10133 PR target/57756
10134 * opth-gen.awk: Define target_flags_explicit.
10135
10136 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
10137
10138 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
10139 fields to the reg_addr array that describes the valid addressing
10140 mode for any register, general purpose registers, floating point
10141 registers, and Altivec registers.
10142 (FIRST_RELOAD_REG_CLASS): Likewise.
10143 (LAST_RELOAD_REG_CLASS): Likewise.
10144 (struct reload_reg_map_type): Likewise.
10145 (reload_reg_map_type): Likewise.
10146 (RELOAD_REG_VALID): Likewise.
10147 (RELOAD_REG_MULTIPLE): Likewise.
10148 (RELOAD_REG_INDEXED): Likewise.
10149 (RELOAD_REG_OFFSET): Likewise.
10150 (RELOAD_REG_PRE_INCDEC): Likewise.
10151 (RELOAD_REG_PRE_MODIFY): Likewise.
10152 (reg_addr): Likewise.
10153 (mode_supports_pre_incdec_p): New helper functions to say whether
10154 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
10155 (mode_supports_pre_modify_p): Likewise.
10156 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
10157 print the valid address mode bits for each mode.
10158 (rs6000_debug_print_mode): Likewise.
10159 (rs6000_debug_reg_global): Likewise.
10160 (rs6000_setup_reg_addr_masks): New function to set up the address
10161 mask bits for each type.
10162 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
10163 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
10164 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
10165 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
10166 PRE_MODIFY are supported.
10167 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
10168 registers, instead of {src,dest}_av_p.
10169 (rs6000_print_options_internal): Tweak the debug output slightly.
10170
10171 2013-10-17 Uros Bizjak <ubizjak@gmail.com>
10172
10173 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
10174 isa attribute.
10175
10176 2013-10-17 Andrew MacLeod <amacleod@redhat.com>
10177
10178 * tree-flow.h (struct omp_region): Move to omp-low.c.
10179 Remove omp_ prototypes and variables.
10180 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
10181 (copy_var_decl): Relocate prototype from tree-flow.h.
10182 * gimple.c (copy_var_decl): Relocate from omp-low.c.
10183 * tree.h: Move prototype to omp-low.h.
10184 * omp-low.h: New File. Relocate prototypes here.
10185 * omp-low.c (struct omp_region): Make local here.
10186 (root_omp_region): Make static.
10187 (copy_var_decl) Move to gimple.c.
10188 (new_omp_region): Make static.
10189 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
10190 * tree-cfg.c: Include omp-low.h.
10191 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
10192 * gimplify.c: Include omp-low.h.
10193 * tree-parloops.c: Likewise.
10194
10195 2013-10-17 Uros Bizjak <ubizjak@gmail.com>
10196
10197 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
10198 operands are in memory, prefer to force non-matched operand 1 to
10199 the register.
10200
10201 2013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
10202
10203 PR target/58673
10204 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
10205 restrict TImode addresses to single indirect registers if both
10206 -mquad-memory and -mvsx-timode are used.
10207 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
10208 we should emit load/store quad. Remove using %y for quad memory
10209 addresses.
10210
10211 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
10212 constraints to allow load/store quad on machines where TImode is
10213 not allowed in VSX registers. Use 'n' instead of 'F' constraint
10214 for TImode to load integer constants.
10215
10216 2013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10217
10218 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
10219
10220 2013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
10221
10222 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
10223 handling of STACK_REG.
10224
10225 2013-10-17 Richard Biener <rguenther@suse.de>
10226
10227 PR tree-optimization/58143
10228 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
10229 New function.
10230 (rewrite_to_defined_overflow): Likewise.
10231 (move_computations_dom_walker::before_dom): Rewrite stmts
10232 with undefined signed overflow that are not always executed
10233 into unsigned arithmetic.
10234
10235 2013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10236
10237 PR target/57756
10238 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
10239 explicit isa flag to be an options variable, instead of using
10240 global_options_set. Remove define from rs6000.h.
10241 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
10242
10243 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10244 Initialize rs6000_isa_flags_explicit.
10245 (rs6000_function_specific_save): Add gcc_options* parameter, so
10246 that the powerpc builds after the 2013-10-15 changes.
10247 (rs6000_function_specific_restore): Likewise.
10248
10249 2013-10-16 DJ Delorie <dj@redhat.com>
10250
10251 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
10252 op is a REG before checking REGNO.
10253 (rl78_alloc_physical_registers): Verify pattern is a SET before
10254 checking SET_SRC.
10255
10256 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10257
10258 * config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
10259 endianness.
10260 (vec_unpacks_lo_v4sf): Likewise.
10261 (vec_unpacks_float_hi_v4si): Likewise.
10262 (vec_unpacks_float_lo_v4si): Likewise.
10263 (vec_unpacku_float_hi_v4si): Likewise.
10264 (vec_unpacku_float_lo_v4si): Likewise.
10265
10266 2013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10267
10268 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
10269 (vsx_concat_v2sf): Likewise.
10270
10271 2013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
10272
10273 * config/aarch64/aarch64.md
10274 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
10275
10276 2013-10-16 Andrew MacLeod <amacleod@redhat.com>
10277
10278 PR tree-optimization/58697
10279 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
10280 estimated_loop_iterations_int.
10281 (max_stmt_executions_int): Call get_max_loop_iterations_int.
10282 (get_max_loop_iterations_int): New. HWINT version of
10283 get_max_loop_iterations.
10284 * cfgloop.h: Add prototypes.
10285 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
10286 * loop-unroll.c (decide_peel_once_rolling): Call
10287 get_estimated_loop_iterations_int.
10288 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
10289 * tree-ssa-loop-niter.h: Tweak prototypes.
10290
10291 2013-10-16 David Malcolm <dmalcolm@redhat.com>
10292
10293 * gengtype-parse.c (struct_field_seq): Ignore access-control
10294 keywords ("public:" etc).
10295
10296 2013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
10297
10298 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
10299 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
10300
10301 2013-10-16 Yvan Roux <yvan.roux@linaro.org>
10302
10303 * config/arm/arm.opt (mlra): New option.
10304 * config/arm/arm.c (arm_lra_p): New function.
10305 (TARGET_LRA_P): Define.
10306
10307 2013-10-16 Paulo Matos <pmatos@broadcom.com>
10308
10309 * tree-core.h (tree_code_name): Remove.
10310 * tree.h (get_tree_code_name): New prototype.
10311 * tree.c (tree_code_name): Make static.
10312 (get_tree_code_name): New function.
10313 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
10314 tree_class_check_failed, tree_range_check_failed,
10315 tree_not_class_check_failed, omp_clause_check_failed,
10316 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
10317 wrapper get_tree_code_name instead of calling tree_code_name directly.
10318 * tree-vrp.c (dump_asserts_for): Likewise.
10319 * tree-dump.c (dequeue_and_dump): Likewise.
10320 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
10321 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
10322 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
10323 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
10324 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10325 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
10326 dump_gimple_omp_for): Likewise.
10327 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
10328 * tree-ssa-pre.c (print_pre_expr): Likewise.
10329 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
10330 * print-tree.c (print_node_brief, print_node): Likewise.
10331 * gimple.c (gimple_check_failed): Likewise.
10332 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
10333 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
10334 * config/mep/mep.c (mep_validate_vliw): Likewise.
10335 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
10336 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
10337
10338 2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
10339
10340 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
10341 for AMD bdver3.
10342
10343 2013-10-16 Hans-Peter Nilsson <hp@axis.com>
10344
10345 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
10346 (MULTILIB_MATCHES): Add multilib for -march=v8.
10347
10348 2013-10-15 Sriraman Tallam <tmsriram@google.com>
10349
10350 PR target/57756
10351 * optc-save-gen.awk: Add extra parameter to the save and restore
10352 target calls.
10353 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
10354 * tree.c (build_optimization_node): New parameter. Add extra parameter
10355 to call to cl_optimization_save.
10356 (build_target_option_node): New parameter. Add extra parameter
10357 to call to cl_target_option_save.
10358 * tree.h (build_optimization_node): New parameter.
10359 (build_target_option_node): New parameter.
10360 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
10361 build_optimization_node and build_target_option_node.
10362 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
10363 (handle_pragma_push_options): Ditto.
10364 * toplev.c (process_options): Ditto.
10365 * opts.c (init_options_struct): Check for opts_set non-null.
10366 * target.def (target_option.save): New parameter.
10367 (target_option.restore): New parameter.
10368 * tm.texi: Generate.
10369 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
10370 (ix86_pragma_target_parse): Ditto.
10371 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
10372 parameters.
10373 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
10374 to build_optimization_node and build_target_option_node.
10375 (rs6000_valid_attribute_p): Ditto.
10376 (rs6000_pragma_target_parse): Ditto.
10377 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
10378 data.
10379 * config/i386/i386.h:
10380 TARGET_64BIT_P: New Macro
10381 TARGET_MMX_P: New Macro.
10382 TARGET_3DNOW_P: New Macro.
10383 TARGET_3DNOW_A_P: New Macro.
10384 TARGET_SSE_P: New Macro.
10385 TARGET_SSE2_P: New Macro.
10386 TARGET_SSE3_P: New Macro.
10387 TARGET_SSSE3_P: New Macro.
10388 TARGET_SSE4_1_P: New Macro.
10389 TARGET_SSE4_2_P: New Macro.
10390 TARGET_AVX_P: New Macro.
10391 TARGET_AVX2_P: New Macro.
10392 TARGET_AVX512F_P: New Macro.
10393 TARGET_AVX512PF_P: New Macro.
10394 TARGET_AVX512ER_P: New Macro.
10395 TARGET_AVX512CD_P: New Macro.
10396 TARGET_FMA_P: New Macro.
10397 TARGET_SSE4A_P: New Macro.
10398 TARGET_FMA4_P: New Macro.
10399 TARGET_XOP_P: New Macro.
10400 TARGET_LWP_P: New Macro.
10401 TARGET_ABM_P: New Macro.
10402 TARGET_BMI_P: New Macro.
10403 TARGET_BMI2_P: New Macro.
10404 TARGET_LZCNT_P: New Macro.
10405 TARGET_TBM_P: New Macro.
10406 TARGET_POPCNT_P: New Macro.
10407 TARGET_SAHF_P: New Macro.
10408 TARGET_MOVBE_P: New Macro.
10409 TARGET_CRC32_P: New Macro.
10410 TARGET_AES_P: New Macro.
10411 TARGET_PCLMUL_P: New Macro.
10412 TARGET_CMPXCHG16B_P: New Macro.
10413 TARGET_FSGSBASE_P: New Macro.
10414 TARGET_RDRND_P: New Macro.
10415 TARGET_F16C_P: New Macro.
10416 TARGET_RTM_P: New Macro.
10417 TARGET_HLE_P: New Macro.
10418 TARGET_RDSEED_P: New Macro.
10419 TARGET_PRFCHW_P: New Macro.
10420 TARGET_ADX_P: New Macro.
10421 TARGET_FXSR_P: New Macro.
10422 TARGET_XSAVE_P: New Macro.
10423 TARGET_XSAVEOPT_P: New Macro.
10424 TARGET_LP64_P: New Macro.
10425 TARGET_X32_P: New Macro.
10426 TARGET_FPMATH_DEFAULT_P: New Macro.
10427 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
10428 * config/i386/i386.c (ix86_option_override_internal): New parameters.
10429 opts and opts_set.
10430 Change ix86_tune_string to access opts->x_ix86_tune_string.
10431 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
10432 Change ix86_arch_string to access opts->x_ix86_arch_string.
10433 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
10434 Change ix86_pmode to access opts->x_ix86_pmode.
10435 Change ix86_abi to access opts->x_ix86_abi.
10436 Change ix86_cmodel to access opts->x_ix86_cmodel.
10437 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
10438 Change ix86_isa_flags_explicit to access
10439 opts->x_ix86_isa_flags_explicit.
10440 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
10441 Change ix86_regparm to access opts->x_ix86_regparm.
10442 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
10443 Change ix86_preferred_stack_boundary_arg to access
10444 opts->x_ix86_preferred_stack_boundary_arg.
10445 Change ix86_force_align_arg_pointer to access
10446 opts->x_ix86_force_align_arg_pointer.
10447 Change ix86_incoming_stack_boundar_arg to access
10448 opts->x_ix86_incoming_stack_boundar_arg.
10449 Change ix86_fpmath to access opts->x_ix86_fpmath.
10450 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
10451 Change ix86_recip_name to access opts->x_ix86_recip_name.
10452 Change ix86_stack_protector_guard to access
10453 opts->x_ix86_stack_protector_guard.
10454 Change ix86_tune_memcpy_strategy to access
10455 opts->x_ix86_tune_memcpy_strategy.
10456 Change ix86_tune_memset_strategy to access
10457 opts->x_ix86_tune_memset_strategy.
10458 Change global_options to access opts.
10459 Change global_options_set to access opts_set.
10460 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
10461 Change TARGET_MMX to TARGET_MMX_P (opts->...).
10462 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
10463 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
10464 Change TARGET_SSE to TARGET_SSE_P (opts->...).
10465 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
10466 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
10467 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
10468 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
10469 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
10470 Change TARGET_AVX to TARGET_AVX_P (opts->...).
10471 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
10472 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
10473 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
10474 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
10475 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
10476 Change TARGET_FMA to TARGET_FMA_P (opts->...).
10477 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
10478 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
10479 Change TARGET_XOP to TARGET_XOP_P (opts->...).
10480 Change TARGET_LWP to TARGET_LWP_P (opts->...).
10481 Change TARGET_ABM to TARGET_ABM_P (opts->...).
10482 Change TARGET_BMI to TARGET_BMI_P (opts->...).
10483 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
10484 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
10485 Change TARGET_TBM to TARGET_TBM_P (opts->...).
10486 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
10487 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
10488 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
10489 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
10490 Change TARGET_AES to TARGET_AES_P (opts->...).
10491 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
10492 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
10493 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
10494 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
10495 Change TARGET_F16C to TARGET_F16C_P (opts->...).
10496 Change TARGET_RTM to TARGET_RTM_P (opts->...).
10497 Change TARGET_HLE to TARGET_HLE_P (opts->...).
10498 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
10499 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
10500 Change TARGET_ADX to TARGET_ADX_P (opts->...).
10501 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
10502 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
10503 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
10504 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
10505 Change TARGET_X32 to TARGET_X32_P (opts->...).
10506 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
10507 Change TARGET_FLOAT_RETURNS_IN_80387 to
10508 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
10509 (ix86_function_specific_save): New parameter. Use opts-> fields
10510 to replace global fields.
10511 (ix86_function_specific_restore): Ditto.
10512 (ix86_valid_target_attribute_inner_p): New parameters.
10513 Fix recursive call.
10514 Fix call to ix86_handle_option and set_option.
10515 (ix86_valid_target_attribute_tree): New parameters.
10516 Change global_options to access opts.
10517 Change global_options_set to access opts_set.
10518 Fix call to ix86_valid_target_attribute_inner_p.
10519 Change ix86_tune_string to access opts->x_ix86_tune_string.
10520 Change ix86_arch_string to access opts->x_ix86_arch_string.
10521 Change ix86_fpmath to access opts->x_ix86_fpmath
10522 Fix call to ix86_option_override_internal.
10523 Fix call to ix86_add_new_builtins.
10524 Fix calls to build_optimization_node and build_target_option_node.
10525 (ix86_valid_target_attribute_p): Remove access to global_options.
10526 Use new gcc_options structure func_options.
10527 Fix call to ix86_valid_target_attribute_tree.
10528 Fix call to build_optimization_node.
10529 (get_builtin_code_for_version): Fix call to
10530 ix86_valid_target_attribute_tree.
10531
10532 2013-10-15 David Malcolm <dmalcolm@redhat.com>
10533
10534 * Makefile.in (PICFLAG): New.
10535 (enable_host_shared): New.
10536 (INTERNAL_CFLAGS): Use PICFLAG.
10537 (LIBIBERTY): Use pic build of libiberty.a if configured with
10538 --enable-host-shared.
10539 * configure.ac: Add --enable-host-shared, setting up new
10540 PICFLAG variable.
10541 * configure: Regenerate.
10542 * doc/install.texi (--enable-shared): Add note contrasting it with ...
10543 (--enable-host-shared): New option.
10544
10545 2013-10-15 Richard Biener <rguenther@suse.de>
10546
10547 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
10548 for built-in functions.
10549
10550 2013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
10551
10552 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
10553 (optimize_range_tests_1): New function,
10554 extracted from optimize_range_tests.
10555 (optimize_range_tests_xor): Similarly.
10556 (optimize_range_tests_diff): New function.
10557 (optimize_range_tests): Use optimize_range_tests_1.
10558
10559 2013-10-15 Cong Hou <congh@google.com>
10560
10561 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
10562 requirement of the reduction pattern so that one operand of the
10563 reduction operation can come from outside of the loop.
10564
10565 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10566
10567 * config/arm/neon-schedgen.ml: Remove.
10568 * config/arm/cortex-a9-neon.md: Remove comment regarding
10569 neon-schedgen.ml.
10570
10571 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10572
10573 * config/arm/types: Remove old neon types.
10574
10575 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10576
10577 * config/arm/cortex-a7.md
10578 (cortex_a7_neon_type): New.
10579 (cortex_a7_neon_mul): Update for new types.
10580 (cortex_a7_neon_mla): Likewise.
10581 (cortex_a7_neon): Likewise.
10582
10583 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10584
10585 * config/arm/cortex-a15-neon.md
10586 (cortex_a15_neon_type): New,
10587
10588 (cortex_a15_neon_int_1): Remove.
10589 (cortex_a15_neon_int_2): Likewise.
10590 (cortex_a15_neon_int_3): Likewise.
10591 (cortex_a15_neon_int_4): Likewise.
10592 (cortex_a15_neon_int_5): Likewise.
10593 (cortex_a15_neon_vqneg_vqabs): Likewise.
10594 (cortex_a15_neon_vmov): Likewise.
10595 (cortex_a15_neon_vaba): Likewise.
10596 (cortex_a15_neon_vaba_qqq): Likewise.
10597 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
10598 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
10599 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
10600 Likewise.
10601 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
10602 (cortex_a15_neon_mla_qqq_8_16): Likewise.
10603 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
10604 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
10605 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
10606 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
10607 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
10608 (cortex_a15_neon_shift_1): Likewise.
10609 (cortex_a15_neon_shift_2): Likewise.
10610 (cortex_a15_neon_shift_3): Likewise.
10611 (cortex_a15_neon_vshl_ddd): Likewise.
10612 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
10613 (cortex_a15_neon_vsra_vrsra): Likewise.
10614 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
10615 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
10616 (cortex_a15_neon_bp_3cycle): Likewise.
10617 (cortex_a15_neon_ldm_2): Likewise.
10618 (cortex_a15_neon_stm_2): Likewise.
10619 (cortex_a15_neon_mcr): Likewise.
10620 (cortex_a15_neon_mrc): Likewise.
10621 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
10622 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
10623 (cortex_a15_neon_fp_vmul_ddd): Likewise.
10624 (cortex_a15_neon_fp_vmul_qqd): Likewise.
10625 (cortex_a15_neon_fp_vmla_ddd): Likewise.
10626 (cortex_a15_neon_fp_vmla_qqq): Likewise.
10627 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
10628 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
10629 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
10630 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
10631 (cortex_a15_neon_bp_simple): Likewise.
10632 (cortex_a15_neon_bp_2cycle): Likewise.
10633 (cortex_a15_neon_bp_3cycle): Likewise.
10634 (cortex_a15_neon_vld1_1_2_regs): Likewise.
10635 (cortex_a15_neon_vld1_3_4_regs): Likewise.
10636 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
10637 (cortex_a15_neon_vld2_4_regs): Likewise.
10638 (cortex_a15_neon_vld3_vld4): Likewise.
10639 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
10640 (cortex_a15_neon_vst1_3_4_regs): Likewise.
10641 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
10642 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
10643 (cortex_a15_neon_vst3_vst4): Rename to...
10644 (cortex_a15_neon_vst4): This, update for new attributes.
10645 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
10646 (cortex_a15_neon_vld3_vld4_lane): Likewise.
10647 (cortex_a15_neon_vst1_vst2_lane): Likewise.
10648 (cortex_a15_neon_vst3_vst4_lane): Likewise.
10649 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
10650 (cortex_a15_neon_ldm_2): Likewise.
10651 (cortex_a15_neon_stm_2): Likewise.
10652 (cortex_a15_neon_mcr): Likewise.
10653 (cortex_a15_neon_mcr_2_mcrr): Likewise.
10654 (cortex_a15_neon_mrc): Likewise.
10655 (cortex_a15_neon_mrrc): Likewise.
10656
10657 (cortex_a15_neon_abd): New.
10658 (cortex_a15_neon_abd_q): Likewise.
10659 (cortex_a15_neon_aba): Likewise.
10660 (cortex_a15_neon_aba_q): Likewise.
10661 (cortex_a15_neon_acc): Likewise.
10662 (cortex_a15_neon_acc_q): Likewise.
10663 (cortex_a15_neon_arith_basic): Likewise.
10664 (cortex_a15_neon_arith_complex): Likewise.
10665 (cortex_a15_neon_multiply): Likewise.
10666 (cortex_a15_neon_multiply_q): Likewise.
10667 (cortex_a15_neon_mla): Likewise.
10668 (cortex_a15_neon_mla_q): Likewise.
10669 (cortex_a15_neon_sat_mla_long): Likewise.
10670 (cortex_a15_neon_shift_acc): Likewise.
10671 (cortex_a15_neon_shift_imm_basic): Likewise.
10672 (cortex_a15_neon_shift_imm_complex): Likewise.
10673 (cortex_a15_neon_shift_reg_basic): Likewise.
10674 (cortex_a15_neon_shift_reg_basic_q): Likewise.
10675 (cortex_a15_neon_shift_reg_complex): Likewise.
10676 (cortex_a15_neon_shift_reg_complex_q): Likewise.
10677 (cortex_a15_neon_fp_negabs): Likewise
10678 (cortex_a15_neon_fp_arith): Likewise
10679 (cortex_a15_neon_fp_arith_q): Likewise
10680 (cortex_a15_neon_fp_cvt_int): Likewise
10681 (cortex_a15_neon_fp_cvt_int_q): Likewise
10682 (cortex_a15_neon_fp_cvt_16): Likewise
10683 (cortex_a15_neon_fp_mul): Likewise
10684 (cortex_a15_neon_fp_mul_q): Likewise
10685 (cortex_a15_neon_fp_mla): Likewise
10686 (cortex_a15_neon_fp_mla_q): Likewise
10687 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
10688 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
10689 (cortex_a15_neon_bitops): Likewise.
10690 (cortex_a15_neon_bitops_q): Likewise.
10691 (cortex_a15_neon_from_gp): Likewise.
10692 (cortex_a15_neon_from_gp_q): Likewise.
10693 (cortex_a15_neon_tbl3_tbl4): Likewise.
10694 (cortex_a15_neon_zip_q): Likewise.
10695 (cortex_a15_neon_to_gp): Likewise.
10696 (cortex_a15_neon_load_a): Likewise.
10697 (cortex_a15_neon_load_b): Likewise.
10698 (cortex_a15_neon_load_c): Likewise.
10699 (cortex_a15_neon_load_d): Likewise.
10700 (cortex_a15_neon_load_e): Likewise.
10701 (cortex_a15_neon_load_f): Likewise.
10702 (cortex_a15_neon_store_a): Likewise.
10703 (cortex_a15_neon_store_b): Likewise.
10704 (cortex_a15_neon_store_c): Likewise.
10705 (cortex_a15_neon_store_d): Likewise.
10706 (cortex_a15_neon_store_e): Likewise.
10707 (cortex_a15_neon_store_f): Likewise.
10708 (cortex_a15_neon_store_g): Likewise.
10709 (cortex_a15_neon_store_h): Likewise.
10710 (cortex_a15_vfp_to_from_gp): Likewise.
10711
10712 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10713
10714 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
10715
10716 (cortex_a9_neon_vshl_ddd): Remove.
10717 (cortex_a9_neon_vst3_vst4): Likewise.
10718 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
10719
10720 (cortex_a9_neon_bit_ops_q): New.
10721
10722 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
10723 (cortex_a9_neon_int_2): Likewise.
10724 (cortex_a9_neon_int_3): Likewise.
10725 (cortex_a9_neon_int_4): Likewise.
10726 (cortex_a9_neon_int_5): Likewise.
10727 (cortex_a9_neon_vqneg_vqabs): Likewise.
10728 (cortex_a9_neon_vmov): Likewise.
10729 (cortex_a9_neon_vaba): Likewise.
10730 (cortex_a9_neon_vaba_qqq): Likewise.
10731 (cortex_a9_neon_shift_1): Likewise.
10732 (cortex_a9_neon_shift_2): Likewise.
10733 (cortex_a9_neon_shift_3): Likewise.
10734 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
10735 (cortex_a9_neon_vsra_vrsra): Likewise.
10736 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
10737 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
10738 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
10739 Likewise.
10740 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
10741 (cortex_a9_neon_mla_qqq_8_16): Likewise.
10742 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
10743 Likewise.
10744 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
10745 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
10746 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
10747 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
10748 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
10749 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
10750 (cortex_a9_neon_fp_vsum): Likewise.
10751 (cortex_a9_neon_fp_vmul_ddd): Likewise.
10752 (cortex_a9_neon_fp_vmul_qqd): Likewise.
10753 (cortex_a9_neon_fp_vmla_ddd): Likewise.
10754 (cortex_a9_neon_fp_vmla_qqq): Likewise.
10755 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
10756 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
10757 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
10758 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
10759 (cortex_a9_neon_bp_simple): Likewise.
10760 (cortex_a9_neon_bp_2cycle): Likewise.
10761 (cortex_a9_neon_bp_3cycle): Likewise.
10762 (cortex_a9_neon_ldr): Likewise.
10763 (cortex_a9_neon_str): Likewise.
10764 (cortex_a9_neon_vld1_1_2_regs): Likewise.
10765 (cortex_a9_neon_vld1_3_4_regs): Likewise.
10766 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
10767 (cortex_a9_neon_vld2_4_regs): Likewise.
10768 (cortex_a9_neon_vld3_vld4): Likewise.
10769 (cortex_a9_neon_vld1_vld2_lane): Likewise.
10770 (cortex_a9_neon_vld3_vld4_lane): Likewise.
10771 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
10772 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
10773 (cortex_a9_neon_vst1_3_4_regs): Likewise.
10774 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
10775 (cortex_a9_neon_vst1_vst2_lane): Likewise.
10776 (cortex_a9_neon_vst3_vst4_lane): Likewise.
10777 (cortex_a9_neon_mcr): Likewise.
10778 (cortex_a9_neon_mcr_2_mcrr): Likewise.
10779 (cortex_a9_neon_mrc): Likewise.
10780 (cortex_a9_neon_mrrc): Likewise.
10781
10782 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10783
10784 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
10785
10786 (cortex_a8_neon_vshl_ddd): Remove.
10787 (cortex_a8_neon_vst3_vst4): Likewise.
10788 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
10789
10790 (cortex_a8_neon_bit_ops_q): New.
10791
10792 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
10793 (cortex_a8_neon_int_2): Likewise..
10794 (cortex_a8_neon_int_3): Likewise.
10795 (cortex_a8_neon_int_5): Likewise.
10796 (cortex_a8_neon_vqneg_vqabs): Likewise.
10797 (cortex_a8_neon_int_4): Likewise.
10798 (cortex_a8_neon_vaba): Likewise.
10799 (cortex_a8_neon_vaba_qqq): Likewise.
10800 (cortex_a8_neon_shift_1): Likewise.
10801 (cortex_a8_neon_shift_2): Likewise.
10802 (cortex_a8_neon_shift_3): Likewise.
10803 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
10804 (cortex_a8_neon_vsra_vrsra): Likewise.
10805 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
10806 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
10807 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
10808 Likewise.
10809 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
10810 (cortex_a8_neon_mla_qqq_8_16): Likewise.
10811 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
10812 Likewise.
10813 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
10814 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
10815 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
10816 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
10817 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
10818 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
10819 (cortex_a8_neon_fp_vsum): Likewise.
10820 (cortex_a8_neon_fp_vmul_ddd): Likewise.
10821 (cortex_a8_neon_fp_vmul_qqd): Likewise.
10822 (cortex_a8_neon_fp_vmla_ddd): Likewise.
10823 (cortex_a8_neon_fp_vmla_qqq): Likewise.
10824 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
10825 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
10826 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
10827 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
10828 (cortex_a8_neon_bp_simple): Likewise.
10829 (cortex_a8_neon_bp_2cycle): Likewise.
10830 (cortex_a8_neon_bp_3cycle): Likewise.
10831 (cortex_a8_neon_ldr): Likewise.
10832 (cortex_a8_neon_str): Likewise.
10833 (cortex_a8_neon_vld1_1_2_regs): Likewise.
10834 (cortex_a8_neon_vld1_3_4_regs): Likewise.
10835 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
10836 (cortex_a8_neon_vld2_4_regs): Likewise.
10837 (cortex_a8_neon_vld3_vld4): Likewise.
10838 (cortex_a8_neon_vld1_vld2_lane): Likewise.
10839 (cortex_a8_neon_vld3_vld4_lane): Likewise.
10840 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
10841 (cortex_a8_neon_vst1_3_4_regs): Likewise.
10842 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
10843 (cortex_a8_neon_vst1_vst2_lane): Likewise.
10844 (cortex_a8_neon_vst3_vst4_lane): Likewise.
10845 (cortex_a8_neon_mcr): Likewise.
10846 (cortex_a8_neon_mcr_2_mcrr): Likewise.
10847 (cortex_a8_neon_mrc): Likewise.
10848 (cortex_a8_neon_mrrc): Likewise.
10849
10850 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
10851
10852 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
10853 (fp): New.
10854 * config/aarch64/aarch64-simd.md (neon_type): Remove.
10855 (aarch64_simd_dup<mode>): Add "type" attribute.
10856 (aarch64_dup_lane<mode>): Likewise.
10857 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
10858 (*aarch64_simd_mov<mode>): Likewise.
10859 (aarch64_simd_mov_from_<mode>low): Likewise.
10860 (aarch64_simd_mov_from_<mode>high): Likewise.
10861 (orn<mode>3): Likewise.
10862 (bic<mode>3): Likewise.
10863 (add<mode>3): Likewise.
10864 (sub<mode>3): Likewise.
10865 (mul<mode>3): Likewise.
10866 (*aarch64_mul3_elt<mode>): Likewise.
10867 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
10868 (*aarch64_mul3_elt_to_128df): Likewise.
10869 (*aarch64_mul3_elt_to_64v2df): Likewise.
10870 (neg<mode>2): Likewise.
10871 (abs<mode>2): Likewise.
10872 (abd<mode>_3): Likewise.
10873 (aba<mode>_3): Likewise.
10874 (fabd<mode>_3): Likewise.
10875 (*fabd_scalar<mode>3): Likewise.
10876 (and<mode>3): Likewise.
10877 (ior<mode>3): Likewise.
10878 (xor<mode>3): Likewise.
10879 (one_cmpl<mode>2): Likewise.
10880 (aarch64_simd_vec_set<mode>): Likewise.
10881 (aarch64_simd_lshr<mode>): Likewise.
10882 (aarch64_simd_ashr<mode>): Likewise.
10883 (aarch64_simd_imm_shl<mode>): Likewise.
10884 (aarch64_simd_reg_sshl<mode): Likewise.
10885 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
10886 (aarch64_simd_reg_shl<mode>_signed): Likewise.
10887 (aarch64_simd_vec_setv2di): Likewise.
10888 (aarch64_simd_vec_set<mode>): Likewise.
10889 (aarch64_mla<mode>): Likewise.
10890 (*aarch64_mla_elt<mode>): Likewise.
10891 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
10892 (aarch64_mls<mode>): Likewise.
10893 (*aarch64_mls_elt<mode>): Likewise.
10894 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
10895 (<su><maxmin><mode>3): Likewise.
10896 (move_lo_quad_<mode>): Likewise.
10897 (aarch64_simd_move_hi_quad_<mode>): Likewise.
10898 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
10899 (vec_pack_trunc_<mode>): Likewise.
10900 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
10901 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
10902 (*aarch64_<su>mlal_lo<mode>): Likewise.
10903 (*aarch64_<su>mlal_hi<mode>): Likewise.
10904 (*aarch64_<su>mlsl_lo<mode>): Likewise.
10905 (*aarch64_<su>mlsl_hi<mode>): Likewise.
10906 (*aarch64_<su>mlal<mode>): Likewise.
10907 (*aarch64_<su>mlsl<mode>): Likewise.
10908 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
10909 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
10910 (add<mode>3): Likewise.
10911 (sub<mode>3): Likewise.
10912 (mul<mode>3): Likewise.
10913 (div<mode>3): Likewise.
10914 (neg<mode>2): Likewise.
10915 (abs<mode>2): Likewise.
10916 (fma<mode>4): Likewise.
10917 (*aarch64_fma4_elt<mode>): Likewise.
10918 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
10919 (*aarch64_fma4_elt_to_128df): Likewise.
10920 (*aarch64_fma4_elt_to_64v2df): Likewise.
10921 (fnma<mode>4): Likewise.
10922 (*aarch64_fnma4_elt<mode>): Likewise.
10923 (*aarch64_fnma4_elt_<vswap_width_name><mode>
10924 (*aarch64_fnma4_elt_to_128df): Likewise.
10925 (*aarch64_fnma4_elt_to_64v2df): Likewise.
10926 (<frint_pattern><mode>2): Likewise.
10927 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
10928 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
10929 (vec_unpacks_lo_v4sf): Likewise.
10930 (aarch64_float_extend_lo_v2df): Likewise.
10931 (vec_unpacks_hi_v4sf): Likewise.
10932 (aarch64_float_truncate_lo_v2sf): Likewise.
10933 (aarch64_float_truncate_hi_v4sf): Likewise.
10934 (aarch64_vmls<mode>): Likewise.
10935 (<su><maxmin><mode>3): Likewise.
10936 (<maxmin_uns><mode>3): Likewise.
10937 (reduc_<sur>plus_<mode>): Likewise.
10938 (reduc_<sur>plus_v2di): Likewise.
10939 (reduc_<sur>plus_v2si): Likewise.
10940 (reduc_<sur>plus_<mode>): Likewise.
10941 (aarch64_addpv4sf): Likewise.
10942 (clz<mode>2): Likewise.
10943 (reduc_<maxmin_uns>_<mode>): Likewise.
10944 (reduc_<maxmin_uns>_v2di): Likewise.
10945 (reduc_<maxmin_uns>_v2si): Likewise.
10946 (reduc_<maxmin_uns>_<mode>): Likewise.
10947 (reduc_<maxmin_uns>_v4sf): Likewise.
10948 (aarch64_simd_bsl<mode>_internal): Likewise.
10949 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
10950 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
10951 (aarch64_get_lane<mode>): Likewise.
10952 (*aarch64_combinez<mode>): Likewise.
10953 (aarch64_combine<mode>): Likewise.
10954 (aarch64_simd_combine<mode>): Likewise.
10955 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
10956 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
10957 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
10958 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
10959 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
10960 (aarch64_<sur>h<addsub><mode>): Likewise.
10961 (aarch64_<sur><addsub>hn<mode>): Likewise.
10962 (aarch64_<sur><addsub>hn2<mode>): Likewise.
10963 (aarch64_pmul<mode>): Likewise.
10964 (aarch64_<su_optab><optab><mode>): Likewise.
10965 (aarch64_<sur>qadd<mode>): Likewise.
10966 (aarch64_sqmovun<mode>): Likewise.
10967 (aarch64_<sur>qmovn<mode>): Likewise.
10968 (aarch64_s<optab><mode>): Likewise.
10969 (aarch64_sq<r>dmulh<mode>): Likewise.
10970 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
10971 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
10972 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
10973 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
10974 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10975 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
10976 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
10977 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
10978 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
10979 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
10980 (aarch64_sqdmull<mode>): Likewise.
10981 (aarch64_sqdmull_lane<mode>_internal): Likewise.
10982 (aarch64_sqdmull_n<mode>): Likewise.
10983 (aarch64_sqdmull2<mode>_internal): Likewise.
10984 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
10985 (aarch64_sqdmull2_n<mode>_internal): Likewise.
10986 (aarch64_<sur>shl<mode>): Likewise.
10987 (aarch64_<sur>q<r>shl<mode>
10988 (aarch64_<sur>shll_n<mode>): Likewise.
10989 (aarch64_<sur>shll2_n<mode>): Likewise.
10990 (aarch64_<sur>shr_n<mode>): Likewise.
10991 (aarch64_<sur>sra_n<mode>): Likewise.
10992 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
10993 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
10994 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
10995 (aarch64_cm<optab><mode>): Likewise.
10996 (aarch64_cm<optab>di): Likewise.
10997 (aarch64_cm<optab><mode>): Likewise.
10998 (aarch64_cm<optab>di): Likewise.
10999 (aarch64_cmtst<mode>): Likewise.
11000 (aarch64_cmtstdi): Likewise.
11001 (aarch64_cm<optab><mode>): Likewise.
11002 (*aarch64_fac<optab><mode>): Likewise.
11003 (aarch64_addp<mode>): Likewise.
11004 (aarch64_addpdi): Likewise.
11005 (sqrt<mode>2): Likewise.
11006 (vec_load_lanesoi<mode>): Likewise.
11007 (vec_store_lanesoi<mode>): Likewise.
11008 (vec_load_lanesci<mode>): Likewise.
11009 (vec_store_lanesci<mode>): Likewise.
11010 (vec_load_lanesxi<mode>): Likewise.
11011 (vec_store_lanesxi<mode>): Likewise.
11012 (*aarch64_mov<mode>): Likewise.
11013 (aarch64_ld2<mode>_dreg): Likewise.
11014 (aarch64_ld2<mode>_dreg): Likewise.
11015 (aarch64_ld3<mode>_dreg): Likewise.
11016 (aarch64_ld3<mode>_dreg): Likewise.
11017 (aarch64_ld4<mode>_dreg): Likewise.
11018 (aarch64_ld4<mode>_dreg): Likewise.
11019 (aarch64_tbl1<mode>): Likewise.
11020 (aarch64_tbl2v16qi): Likewise.
11021 (aarch64_combinev16qi): Likewise.
11022 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
11023 (aarch64_st2<mode>_dreg): Likewise.
11024 (aarch64_st2<mode>_dreg): Likewise.
11025 (aarch64_st3<mode>_dreg): Likewise.
11026 (aarch64_st3<mode>_dreg): Likewise.
11027 (aarch64_st4<mode>_dreg): Likewise.
11028 (aarch64_st4<mode>_dreg): Likewise.
11029 (*aarch64_simd_ld1r<mode>): Likewise.
11030 (aarch64_frecpe<mode>): Likewise.
11031 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
11032 (aarch64_frecps<mode>): Likewise.
11033
11034 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
11035
11036 * config/arm/iterators.md (V_elem_ch): New.
11037 (q): Likewise.
11038 (VQH_type): Likewise.
11039 * config/arm/arm.md (is_neon_type): New.
11040 (conds): Use is_neon_type.
11041 (anddi3_insn): Update type attribute.
11042 (xordi3_insn): Likewise.
11043 (one_cmpldi2): Likewise.
11044 * config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
11045 * config/arm/neon.md (neon_mov): Update type attribute.
11046 (*movmisalign<mode>_neon_store): Likewise.
11047 (*movmisalign<mode>_neon_load): Likewise.
11048 (vec_set<mode>_internal): Likewise.
11049 (vec_set<mode>_internal): Likewise.
11050 (vec_setv2di_internal): Likewise.
11051 (vec_extract<mode>): Likewise.
11052 (vec_extract<mode>): Likewise.
11053 (vec_extractv2di): Likewise.
11054 (*add<mode>3_neon): Likewise.
11055 (adddi3_neon): Likewise.
11056 (*sub<mode>3_neon): Likewise.
11057 (subdi3_neon): Likewise.
11058 (fma<VCVTF:mode>4): Likewise.
11059 (fma<VCVTF:mode>4_intrinsic): Likewise.
11060 (*fmsub<VCVTF:mode>4): Likewise.
11061 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
11062 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
11063 (ior<mode>3): Likewise.
11064 (and<mode>3): Likewise.
11065 (orn<mode>3_neon): Likewise.
11066 (orndi3_neon): Likewise.
11067 (bic<mode>3_neon): Likewise.
11068 (bicdi3_neon): Likewise.
11069 (xor<mode>3): Likewise.
11070 (one_cmpl<mode>2): Likewise.
11071 (abs<mode>2): Likewise.
11072 (neg<mode>2): Likewise.
11073 (negdi2_neon): Likewise.
11074 (*umin<mode>3_neon): Likewise.
11075 (*umax<mode>3_neon): Likewise.
11076 (*smin<mode>3_neon): Likewise.
11077 (*smax<mode>3_neon): Likewise.
11078 (vashl<mode>3): Likewise.
11079 (vashr<mode>3_imm): Likewise.
11080 (vlshr<mode>3_imm): Likewise.
11081 (ashl<mode>3_signed): Likewise.
11082 (ashl<mode>3_unsigned): Likewise.
11083 (neon_load_count): Likewise.
11084 (ashldi3_neon_noclobber): Likewise.
11085 (ashldi3_neon): Likewise.
11086 (signed_shift_di3_neon): Likewise.
11087 (unsigned_shift_di3_neon): Likewise.
11088 (ashrdi3_neon_imm_noclobber): Likewise.
11089 (lshrdi3_neon_imm_noclobber): Likewise.
11090 (<shift>di3_neon): Likewise.
11091 (widen_ssum<mode>3): Likewise.
11092 (widen_usum<mode>3): Likewise.
11093 (quad_halves_<code>v4si): Likewise.
11094 (quad_halves_<code>v4sf): Likewise.
11095 (quad_halves_<code>v8hi): Likewise.
11096 (quad_halves_<code>v16qi): Likewise.
11097 (reduc_splus_v2di): Likewise.
11098 (neon_vpadd_internal<mode>): Likewise.
11099 (neon_vpsmin<mode>): Likewise.
11100 (neon_vpsmax<mode>): Likewise.
11101 (neon_vpumin<mode>): Likewise.
11102 (neon_vpumax<mode>): Likewise.
11103 (*ss_add<mode>_neon): Likewise.
11104 (*us_add<mode>_neon): Likewise.
11105 (*ss_sub<mode>_neon): Likewise.
11106 (*us_sub<mode>_neon): Likewise.
11107 (neon_vadd<mode>_unspec): Likewise.
11108 (neon_vaddl<mode>): Likewise.
11109 (neon_vaddw<mode>): Likewise.
11110 (neon_vhadd<mode>): Likewise.
11111 (neon_vqadd<mode>): Likewise.
11112 (neon_vaddhn<mode>): Likewise.
11113 (neon_vmul<mode>): Likewise.
11114 (neon_vfms<VCVTF:mode>): Likewise.
11115 (neon_vmlal<mode>): Likewise.
11116 (neon_vmls<mode>): Likewise.
11117 (neon_vmlsl<mode>): Likewise.
11118 (neon_vqdmulh<mode>): Likewise.
11119 (neon_vqdmlal<mode>): Likewise.
11120 (neon_vqdmlsl<mode>): Likewise.
11121 (neon_vmull<mode>): Likewise.
11122 (neon_vqdmull<mode>): Likewise.
11123 (neon_vsub<mode>_unspec): Likewise.
11124 (neon_vsubl<mode>): Likewise.
11125 (neon_vsubw<mode>): Likewise.
11126 (neon_vqsub<mode>): Likewise.
11127 (neon_vhsub<mode>): Likewise.
11128 (neon_vsubhn<mode>): Likewise.
11129 (neon_vceq<mode>): Likewise.
11130 (neon_vcge<mode>): Likewise.
11131 (neon_vcgeu<mode>): Likewise.
11132 (neon_vcgt<mode>): Likewise.
11133 (neon_vcgtu<mode>): Likewise.
11134 (neon_vcle<mode>): Likewise.
11135 (neon_vclt<mode>): Likewise.
11136 (neon_vcage<mode>): Likewise.
11137 (neon_vcagt<mode>): Likewise.
11138 (neon_vtst<mode>): Likewise.
11139 (neon_vabd<mode>): Likewise.
11140 (neon_vabdl<mode>): Likewise.
11141 (neon_vaba<mode>): Likewise.
11142 (neon_vabal<mode>): Likewise.
11143 (neon_vmax<mode>): Likewise.
11144 (neon_vmin<mode>): Likewise.
11145 (neon_vpaddl<mode>): Likewise.
11146 (neon_vpadal<mode>): Likewise.
11147 (neon_vpmax<mode>): Likewise.
11148 (neon_vpmin<mode>): Likewise.
11149 (neon_vrecps<mode>): Likewise.
11150 (neon_vrsqrts<mode>): Likewise.
11151 (neon_vqabs<mode>): Likewise.
11152 (neon_vqneg<mode>): Likewise.
11153 (neon_vcls<mode>): Likewise.
11154 (clz<mode>2): Likewise.
11155 (popcount<mode>2): Likewise.
11156 (neon_vrecpe<mode>): Likewise.
11157 (neon_vrsqrte<mode>): Likewise.
11158 (neon_vget_lane<mode>_sext_internal): Likewise.
11159 (neon_vget_lane<mode>_zext_internal): Likewise.
11160 (neon_vdup_n<mode>): Likewise.
11161 (neon_vdup_n<mode>): Likewise.
11162 (neon_vdup_nv2di): Likewise.
11163 (neon_vdup_lane<mode>_interal): Likewise.
11164 (*neon_vswp<mode>): Likewise.
11165 (neon_vcombine<mode>): Likewise.
11166 (float<mode><V_cvtto>2): Likewise.
11167 (floatuns<mode><V_cvtto>2): Likewise.
11168 (fix_trunc<mode><V_cvtto>2): Likewise.
11169 (fixuns_trunc<mode><V_cvtto>2
11170 (neon_vcvt<mode>): Likewise.
11171 (neon_vcvt<mode>): Likewise.
11172 (neon_vcvtv4sfv4hf): Likewise.
11173 (neon_vcvtv4hfv4sf): Likewise.
11174 (neon_vcvt_n<mode>): Likewise.
11175 (neon_vcvt_n<mode>): Likewise.
11176 (neon_vmovn<mode>): Likewise.
11177 (neon_vqmovn<mode>): Likewise.
11178 (neon_vqmovun<mode>): Likewise.
11179 (neon_vmovl<mode>): Likewise.
11180 (neon_vmul_lane<mode>): Likewise.
11181 (neon_vmul_lane<mode>): Likewise.
11182 (neon_vmull_lane<mode>): Likewise.
11183 (neon_vqdmull_lane<mode>): Likewise.
11184 (neon_vqdmulh_lane<mode>): Likewise.
11185 (neon_vqdmulh_lane<mode>): Likewise.
11186 (neon_vmla_lane<mode>): Likewise.
11187 (neon_vmla_lane<mode>): Likewise.
11188 (neon_vmlal_lane<mode>): Likewise.
11189 (neon_vqdmlal_lane<mode>): Likewise.
11190 (neon_vmls_lane<mode>): Likewise.
11191 (neon_vmls_lane<mode>): Likewise.
11192 (neon_vmlsl_lane<mode>): Likewise.
11193 (neon_vqdmlsl_lane<mode>): Likewise.
11194 (neon_vext<mode>): Likewise.
11195 (neon_vrev64<mode>): Likewise.
11196 (neon_vrev32<mode>): Likewise.
11197 (neon_vrev16<mode>): Likewise.
11198 (neon_vbsl<mode>_internal): Likewise.
11199 (neon_vshl<mode>): Likewise.
11200 (neon_vqshl<mode>): Likewise.
11201 (neon_vshr_n<mode>): Likewise.
11202 (neon_vshrn_n<mode>): Likewise.
11203 (neon_vqshrn_n<mode>): Likewise.
11204 (neon_vqshrun_n<mode>): Likewise.
11205 (neon_vshl_n<mode>): Likewise.
11206 (neon_vqshl_n<mode>): Likewise.
11207 (neon_vqshlu_n<mode>): Likewise.
11208 (neon_vshll_n<mode>): Likewise.
11209 (neon_vsra_n<mode>): Likewise.
11210 (neon_vsri_n<mode>): Likewise.
11211 (neon_vsli_n<mode>): Likewise.
11212 (neon_vtbl1v8qi): Likewise.
11213 (neon_vtbl2v8qi): Likewise.
11214 (neon_vtbl3v8qi): Likewise.
11215 (neon_vtbl4v8qi): Likewise.
11216 (neon_vtbl1v16qi): Likewise.
11217 (neon_vtbl2v16qi): Likewise.
11218 (neon_vcombinev16qi): Likewise.
11219 (neon_vtbx1v8qi): Likewise.
11220 (neon_vtbx2v8qi): Likewise.
11221 (neon_vtbx3v8qi): Likewise.
11222 (neon_vtbx4v8qi): Likewise.
11223 (*neon_vtrn<mode>_insn): Likewise.
11224 (*neon_vzip<mode>_insn): Likewise.
11225 (*neon_vuzp<mode>_insn): Likewise.
11226 (neon_vld1<mode>): Likewise.
11227 (neon_vld1_lane<mode>): Likewise.
11228 (neon_vld1_lane<mode>): Likewise.
11229 (neon_vld1_dup<mode>): Likewise.
11230 (neon_vld1_dup<mode>): Likewise.
11231 (neon_vld1_dupv2di): Likewise.
11232 (neon_vst1<mode>): Likewise.
11233 (neon_vst1_lane<mode>): Likewise.
11234 (neon_vst1_lane<mode>): Likewise.
11235 (neon_vld2<mode>): Likewise.
11236 (neon_vld2<mode>): Likewise.
11237 (neon_vld2_lane<mode>): Likewise.
11238 (neon_vld2_lane<mode>): Likewise.
11239 (neon_vld2_dup<mode>): Likewise.
11240 (neon_vst2<mode>): Likewise.
11241 (neon_vst2<mode>): Likewise.
11242 (neon_vst2_lane<mode>): Likewise.
11243 (neon_vst2_lane<mode>): Likewise.
11244 (neon_vld3<mode>): Likewise.
11245 (neon_vld3qa<mode>): Likewise.
11246 (neon_vld3qb<mode>): Likewise.
11247 (neon_vld3_lane<mode>): Likewise.
11248 (neon_vld3_lane<mode>): Likewise.
11249 (neon_vld3_dup<mode>): Likewise.
11250 (neon_vst3<mode>): Likewise.
11251 (neon_vst3qa<mode>): Likewise.
11252 (neon_vst3qb<mode>): Likewise.
11253 (neon_vst3_lane<mode>): Likewise.
11254 (neon_vst3_lane<mode>): Likewise.
11255 (neon_vld4<mode>): Likewise.
11256 (neon_vld4qa<mode>): Likewise.
11257 (neon_vld4qb<mode>): Likewise.
11258 (neon_vld4_lane<mode>): Likewise.
11259 (neon_vld4_lane<mode>): Likewise.
11260 (neon_vld4_dup<mode>): Likewise.
11261 (neon_vst4<mode>): Likewise.
11262 (neon_vst4qa<mode>): Likewise.
11263 (neon_vst4qb<mode>): Likewise.
11264 (neon_vst4_lane<mode>): Likewise.
11265 (neon_vst4_lane<mode>): Likewise.
11266 (neon_vec_unpack<US>_lo_<mode>): Likewise.
11267 (neon_vec_unpack<US>_hi_<mode>): Likewise.
11268 (neon_vec_<US>mult_lo_<mode>): Likewise.
11269 (neon_vec_<US>mult_hi_<mode>): Likewise.
11270 (neon_vec_<US>shiftl_<mode>): Likewise.
11271 (neon_unpack<US>_<mode>): Likewise.
11272 (neon_vec_<US>mult_<mode>): Likewise.
11273 (vec_pack_trunc_<mode>): Likewise.
11274 (neon_vec_pack_trunc_<mode>): Likewise.
11275 (neon_vabd<mode>_2): Likewise.
11276 (neon_vabd<mode>_3): Likewise.
11277
11278 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
11279
11280 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
11281 (load_pair): Update type attribute.
11282 (store_pair): Update type attribute.
11283 * config/aarch64/iterators.md (q): New.
11284
11285 2013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
11286
11287 * config/arm/types.md: Add new types for Neon insns.
11288
11289 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
11290 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11291 Sergey Lega <sergey.s.lega@intel.com>
11292 Anna Tikhonova <anna.tikhonova@intel.com>
11293 Ilya Tocar <ilya.tocar@intel.com>
11294 Andrey Turetskiy <andrey.turetskiy@intel.com>
11295 Ilya Verbin <ilya.verbin@intel.com>
11296 Kirill Yukhin <kirill.yukhin@intel.com>
11297 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11298
11299 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
11300 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
11301 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
11302 (rcp14<mode>): New.
11303 (srcp14<mode>): Ditto.
11304 (rsqrt14<mode>): Ditto.
11305 (rsqrt14<mode>): Ditto.
11306 (avx512f_vmscalef<mode>): Ditto.
11307 (avx512f_scalef<mode>): Ditto.
11308 (avx512f_getexp<mode>): Ditto.
11309 (avx512f_sgetexp<mode>): Ditto.
11310 (avx512f_fixupimm<mode>): Ditto.
11311 (avx512f_sfixupimm<mode>): Ditto.
11312 (avx512f_rndscale<mode>): Ditto.
11313 (*avx512er_exp2<mode>): Ditto.
11314 (*avx512er_rcp28<mode>): Ditto.
11315 (avx512er_rsqrt28<mode>): Ditto.
11316 (avx512f_getmant<mode>): Ditto.
11317 (avx512f_getmant<mode>): Ditto.
11318 (avx512f_rndscale<mode>): Fix formatting.
11319
11320 2013-10-15 Martin Jambor <mjambor@suse.cz>
11321
11322 * ipa-utils.h (ipa_edge_within_scc): Declare.
11323 * ipa-cp.c (edge_within_scc): Moved...
11324 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
11325
11326 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
11327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11328 Sergey Lega <sergey.s.lega@intel.com>
11329 Anna Tikhonova <anna.tikhonova@intel.com>
11330 Ilya Tocar <ilya.tocar@intel.com>
11331 Andrey Turetskiy <andrey.turetskiy@intel.com>
11332 Ilya Verbin <ilya.verbin@intel.com>
11333 Kirill Yukhin <kirill.yukhin@intel.com>
11334 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11335
11336 * config/i386/predicates.md (const_8_to_15_operand): New.
11337 (const_16_to_31_operand): Ditto.
11338 * config/i386/sse.md (V8FI): New.
11339 (V16FI): Ditto.
11340 (reduc_splus_v8df): Ditto.
11341 (reduc_splus_v16sf): Ditto.
11342 (avx512f_vextract<shuffletype>32x4_1): Ditto.
11343 (vec_extract_hi_<mode>): Ditto.
11344 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
11345 (vec_set_lo_<mode>): Ditto.
11346 (vec_set_hi_<mode>): Ditto.
11347 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
11348 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
11349 (avx512f_pshufd_1): Ditto.
11350 (avx512f_broadcast<mode>): Ditto.
11351 (avx512f_broadcast<mode>): Ditto.
11352 (define_split): Split vec_extract_lo into move.
11353 (ssequartermode): Ditto.
11354 (ssedoublemode): Extened with wider modes.
11355 (vec_extract_lo_<mode>): Ditto.
11356
11357 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
11358 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11359 Sergey Lega <sergey.s.lega@intel.com>
11360 Anna Tikhonova <anna.tikhonova@intel.com>
11361 Ilya Tocar <ilya.tocar@intel.com>
11362 Andrey Turetskiy <andrey.turetskiy@intel.com>
11363 Ilya Verbin <ilya.verbin@intel.com>
11364 Kirill Yukhin <kirill.yukhin@intel.com>
11365 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11366
11367 * config/i386/predicates.md (register_or_constm1_operand): New.
11368 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
11369 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
11370 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
11371 UNSPEC_SCATTER_PREFETCH
11372 (VI48_512): New.
11373 (avx512f_ucmp<mode>3): Ditto.
11374 (avx512f_vternlog<mode>): Ditto.
11375 (avx512f_align<mode>): Ditto.
11376 (<shift_insn><mode>3): Ditto.
11377 (avx512f_<rotate>v<mode>): Ditto.
11378 (avx512f_<rotate><mode>): Ditto.
11379 (avx512f_eq<mode>3): Ditto.
11380 (avx512f_eq<mode>3_1): Ditto.
11381 (avx512f_gt<mode>3): Ditto.
11382 (avx512f_testm<mode>3): Ditto.
11383 (avx512f_testnm<mode>3): Ditto.
11384 (avx512pf_gatherpf<mode>): Ditto.
11385 (*avx512pf_gatherpf<mode>_mask): Ditto.
11386 (*avx512pf_gatherpf<mode>): Ditto.
11387 (avx512pf_scatterpf<mode>): Ditto.
11388 (*avx512pf_scatterpf<mode>_mask): Ditto.
11389 (*avx512pf_scatterpf<mode>): Ditto.
11390 (avx512f_vec_dup_gpr<mode>): Ditto.
11391 (clz<mode>2): Ditto.
11392 (conflict<mode>): Ditto.
11393 (REDUC_SMINMAX_MODE): Extened with wider modes.
11394 (reduc_<code>_<mode>): Ditto.
11395 (vlshr<mode>3): Ditto.
11396 (vashl<mode>3): Ditto.
11397
11398 2013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
11399 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11400 Sergey Lega <sergey.s.lega@intel.com>
11401 Anna Tikhonova <anna.tikhonova@intel.com>
11402 Ilya Tocar <ilya.tocar@intel.com>
11403 Andrey Turetskiy <andrey.turetskiy@intel.com>
11404 Ilya Verbin <ilya.verbin@intel.com>
11405 Kirill Yukhin <kirill.yukhin@intel.com>
11406 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11407
11408 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
11409 UNSPEC_SCATTER.
11410 (VI48F_512): New.
11411 (avx512fmaskmode): Ditto.
11412 (bcstscalarsuff): Ditto.
11413 (avx512f_blendm<mode>): Ditto.
11414 (cmp_imm_predicate): Ditto.
11415 (avx512f_cmp<mode>3): Ditto.
11416 (avx512f_vec_dup<mode>): Ditto.
11417 (avx512f_vec_dup_mem<mode>): Ditto.
11418 (avx512f_vpermi2var<mode>3): Ditto.
11419 (avx512f_vpermt2var<mode>3): Ditto.
11420 (vec_init<mode>): Ditto.
11421 (avx512f_gathersi<mode>): Ditto.
11422 (*avx512f_gathersi<mode>): Ditto.
11423 (*avx512f_gathersi<mode>_2): Ditto.
11424 (avx512f_gatherdi<mode>): Ditto.
11425 (*avx512f_gatherdi<mode>): Ditto.
11426 (*avx512f_gatherdi<mode>_2): Ditto.
11427 (avx512f_scattersi<mode>): Ditto.
11428 (*avx512f_scattersi<mode>): Ditto.
11429 (avx512f_scatterdi<mode>): Ditto.
11430 (*avx512f_scatterdi<mode>): Ditto.
11431 (sseintprefix): Extened with wider modes.
11432 (VEC_GATHER_IDXSI): Ditto.
11433 (VEC_GATHER_IDXDI): Ditto.
11434 (VEC_GATHER_SRCDI): Ditto.
11435
11436 2013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
11437 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11438
11439 * config/arm/t-aprofile: New file.
11440 * config.gcc: Handle --with-multilib-list option.
11441
11442 2013-10-15 Bernd Schmidt <bernds@codesourcery.com>
11443
11444 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
11445 the input for r2.
11446
11447 2013-10-15 Richard Biener <rguenther@suse.de>
11448
11449 * tree-loop-distribution.c (build_empty_rdg): Inline into
11450 single user.
11451 (rdg_flag_vertex): Inline into single user.
11452 (rdg_flag_vertex_and_dependent): Likewise.
11453 (build_rdg_partition_for_vertex): Remove processed bitmap.
11454 (rdg_build_partitions): Simplify.
11455
11456 2013-10-15 Richard Biener <rguenther@suse.de>
11457
11458 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
11459 Restructure forwarding through conversions and copies to
11460 avoid performing copy-propagation the wrong way. Adjust
11461 recursion invocations.
11462 (forward_propagate_addr_expr): Add argument stating if we
11463 are recursing from a single-use.
11464 (ssa_forward_propagate_and_combine): Adjust.
11465
11466 2013-10-14 David Malcolm <dmalcolm@redhat.com>
11467
11468 * dumpfile.h (gcc::dump_manager): New class, to hold state
11469 relating to dumpfile management.
11470 (get_dump_file_name): Remove in favor of method of dump_manager.
11471 (dump_initialized_p): Likewise.
11472 (dump_start): Likewise.
11473 (dump_finish): Likewise.
11474 (dump_switch_p): Likewise.
11475 (dump_register): Likewise.
11476 (get_dump_file_info): Likewise.
11477 * context.c (gcc::context::context): Construct the dump_manager
11478 instance.
11479 * context.h (gcc::context::get_dumps): New.
11480 (gcc::context::m_dumps): New.
11481 * coverage.c (coverage_init): Port to dump_manager API.
11482 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
11483 (extra_dump_files_in_use): Likewise.
11484 (extra_dump_files_alloced): Likewise.
11485 (gcc::dump_manager::dump_manager): New.
11486 (dump_register): Convert to...
11487 (gcc::dump_manager::dump_register): ...method, replacing
11488 function-static next_dump with m_next_dump field.
11489 (get_dump_file_info): Convert to...
11490 (gcc::dump_manager::get_dump_file_info): ...method.
11491 (get_dump_file_name): Convert to...
11492 (gcc::dump_manager::get_dump_file_name): ...method.
11493 (dump_start): Convert to...
11494 (gcc::dump_manager::dump_start): ...method.
11495 (dump_finish): Convert to...
11496 (gcc::dump_manager::dump_finish): ...method.
11497 (dump_begin): Replace body with...
11498 (gcc::dump_manager::dump_begin): ...new method.
11499 (dump_phase_enabled_p): Convert to...
11500 (gcc::dump_manager::dump_phase_enabled_p): ...method.
11501 (dump_phase_enabled_p): Convert to...
11502 (gcc::dump_manager::dump_phase_enabled_p): ...method.
11503 (dump_initialized_p): Convert to...
11504 (gcc::dump_manager::dump_initialized_p): ...method.
11505 (dump_flag_name): Replace body with...
11506 (gcc::dump_manager::dump_flag_name): ...new method.
11507 (dump_enable_all): Convert to...
11508 (gcc::dump_manager::dump_enable_all): ...new method.
11509 (opt_info_enable_passes): Convert to...
11510 (gcc::dump_manager::opt_info_enable_passes): ...new method.
11511 (dump_switch_p_1): Convert to...
11512 (gcc::dump_manager::dump_switch_p_1): ...new method.
11513 (dump_switch_p): Convert to...
11514 (gcc::dump_manager::dump_switch_p): ...new method.
11515 (opt_info_switch_p): Port to dump_manager API.
11516 (enable_rtl_dump_file): Likewise.
11517 * opts-global.c (handle_common_deferred_options): Port to new
11518 dump_manager API.
11519 * passes.c (pass_manager::finish_optimization_passes): Likewise.
11520 (pass_manager::register_one_dump_file): Likewise.
11521 (pass_manager::register_pass): Likewise.
11522 (pass_init_dump_file): Likewise.
11523 (pass_fini_dump_file): Likewise.
11524 * statistics.c (statistics_early_init): Likewise.
11525
11526 2013-10-14 Richard Biener <rguenther@suse.de>
11527
11528 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
11529 iterative_hash_canonical_type, gimple_canonical_type_hash,
11530 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
11531 gimple_register_canonical_type, print_gimple_types_stats,
11532 free_gimple_type_tables): Move to lto/lto.c
11533 (gt-gimple.h): Do not include.
11534 * gimple.h (gimple_register_canonical_type,
11535 print_gimple_types_stats, free_gimple_type_tables): Remove.
11536 * Makefile.in (GTFILES): Remove gimple.c.
11537
11538 2013-10-14 Travis Snoozy <quandary@remstate.com>
11539
11540 PR target/58716
11541 * config/msp430/msp430.c (msp430_option_override): Correct thinko
11542 scanning for msp430x targets.
11543
11544 2013-10-14 Eric Botcazou <ebotcazou@adacore.com>
11545
11546 PR bootstrap/58509
11547 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
11548 (registers_ok_for_ldd_peep): Move around.
11549 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
11550 * config/sparc/sparc.md (widening peepholes): Use it.
11551
11552 2013-10-14 Richard Biener <rguenther@suse.de>
11553
11554 PR middle-end/58712
11555 PR middle-end/55358
11556 * gimple.c (iterative_hash_canonical_type): Make sure to
11557 record the hash into the correct hashtable slot.
11558
11559 2013-10-13 Eric Botcazou <ebotcazou@adacore.com>
11560
11561 PR rtl-optimization/58662
11562 * combine.c (try_combine): Take into account death nodes on I2 when
11563 splitting a PARALLEL of two independent SETs. Fix dump message.
11564
11565 2013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
11566
11567 PR target/51244
11568 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
11569 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add sh_treg_combine.o to
11570 extra_objs.
11571 * config/sh/t-sh (sh_treg_combine.o): New entry.
11572 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
11573 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
11574 (register_sh_passes): New function. Register sh_treg_combine pass.
11575 (sh_option_override): Invoke it.
11576 (sh_canonicalize_comparison): Handle op0_preserve_value.
11577 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
11578 opportunities. Canonicalize branch condition.
11579 (nott): Allow only if pseudos can be created for non-SH2A.
11580
11581 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
11582
11583 PR target/58690
11584 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
11585 (ix86_expand_movmem): Replace copy_addr_to_reg with
11586 ix86_copy_addr_to_reg.
11587 (ix86_expand_setmem): Likewise.
11588
11589 2013-10-12 Alexander Monakov <amonakov@ispras.ru>
11590
11591 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
11592 provided by ix86_fp_compare_mode instead of CCFPUmode.
11593
11594 2013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
11595
11596 * config/aarch64/arm_neon.h
11597 (vtbx<1,3>_<psu>8): Fix register constriants.
11598
11599 2013-10-11 Jeff Law <law@redhat.com>
11600
11601 PR tree-optimization/58640
11602 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
11603 threading paths that cross over two loop entry points.
11604
11605 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11606
11607 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
11608 handle vector float as well.
11609 (*vsx_le_perm_load_v4si): Likewise.
11610 (*vsx_le_perm_store_v2di): Likewise.
11611 (*vsx_le_perm_store_v4si): Likewise.
11612
11613 2013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11614
11615 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
11616 directly to circumvent subtract from splat{31} workaround.
11617 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
11618 prototype.
11619 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
11620 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
11621 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
11622 (altivec_vperm_<mode>): Convert to define_insn_and_split to
11623 separate big and little endian logic.
11624 (*altivec_vperm_<mode>_internal): New define_insn.
11625 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
11626 separate big and little endian logic.
11627 (*altivec_vperm_<mode>_uns_internal): New define_insn.
11628 (vec_permv16qi): Add little endian logic.
11629
11630 2013-10-11 Marc Glisse <marc.glisse@inria.fr>
11631
11632 * doc/extend.texi (returns_nonnull): Remove arguments.
11633
11634 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11635 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11636 Sergey Lega <sergey.s.lega@intel.com>
11637 Anna Tikhonova <anna.tikhonova@intel.com>
11638 Ilya Tocar <ilya.tocar@intel.com>
11639 Andrey Turetskiy <andrey.turetskiy@intel.com>
11640 Ilya Verbin <ilya.verbin@intel.com>
11641 Kirill Yukhin <kirill.yukhin@intel.com>
11642 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11643
11644 * config/i386/sse.md (VI48F_256_512): New.
11645 (avx2_permvar<mode>): Change to ...
11646 (<avx2_avx512f>_permvar<mode>): This.
11647
11648 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11649 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11650 Sergey Lega <sergey.s.lega@intel.com>
11651 Anna Tikhonova <anna.tikhonova@intel.com>
11652 Ilya Tocar <ilya.tocar@intel.com>
11653 Andrey Turetskiy <andrey.turetskiy@intel.com>
11654 Ilya Verbin <ilya.verbin@intel.com>
11655 Kirill Yukhin <kirill.yukhin@intel.com>
11656 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11657
11658 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
11659 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
11660 * config/i386/sse.md (VI4_AVX): New.
11661 (sf2simodelower): Ditto.
11662 (sse2_cvtps2dq): Change to ...
11663 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
11664
11665 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11666 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11667 Sergey Lega <sergey.s.lega@intel.com>
11668 Anna Tikhonova <anna.tikhonova@intel.com>
11669 Ilya Tocar <ilya.tocar@intel.com>
11670 Andrey Turetskiy <andrey.turetskiy@intel.com>
11671 Ilya Verbin <ilya.verbin@intel.com>
11672 Kirill Yukhin <kirill.yukhin@intel.com>
11673 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11674
11675 * config/i386/sse.md (V_512): New.
11676 (VI_512): Ditto.
11677 (vcond<V_512:mode><VF_512:mode>): Ditto.
11678 (vcond<V_512:mode><VI_512:mode>): Ditto.
11679 (vcondu<V_512:mode><VI_512:mode>): Ditto.
11680
11681 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11682 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11683 Sergey Lega <sergey.s.lega@intel.com>
11684 Anna Tikhonova <anna.tikhonova@intel.com>
11685 Ilya Tocar <ilya.tocar@intel.com>
11686 Andrey Turetskiy <andrey.turetskiy@intel.com>
11687 Ilya Verbin <ilya.verbin@intel.com>
11688 Kirill Yukhin <kirill.yukhin@intel.com>
11689 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11690
11691 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
11692 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
11693 (FMAMODE): Ditto.
11694 (fma<mode>4): Removed condition.
11695 (fms<mode>4): Ditto.
11696 (fnma<mode>4): Ditto.
11697 (fnms<mode>4): Ditto.
11698 (fma4i_fmadd_<mode>): Ditto.
11699 (*fma_fmadd_<mode>): Ditto.
11700 (*fma_fmsub_<mode>): Ditto.
11701 (*fma_fnmadd_<mode>): Ditto.
11702 (*fma_fnmsub_<mode>): Ditto.
11703 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
11704 (*fma_fmaddsub_<mode>): Ditto.
11705 (*fma_fmsubadd_<mode>): Ditto.
11706 (*fmai_fmadd_<mode>): Ditto.
11707 (*fmai_fmsub_<mode>): Ditto.
11708 (*fmai_fnmadd_<mode>): Ditto.
11709 (*fmai_fnmsub_<mode>): Ditto.
11710
11711 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11712 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11713 Sergey Lega <sergey.s.lega@intel.com>
11714 Anna Tikhonova <anna.tikhonova@intel.com>
11715 Ilya Tocar <ilya.tocar@intel.com>
11716 Andrey Turetskiy <andrey.turetskiy@intel.com>
11717 Ilya Verbin <ilya.verbin@intel.com>
11718 Kirill Yukhin <kirill.yukhin@intel.com>
11719 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11720
11721 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
11722 (VI124_256): Changed to ...
11723 (VI124_256_48_512): This.
11724 (ssepackmode): Extended with wider modes.
11725 (<code><mode>3): Changed iterator.
11726 (*avx2_<code><mode>3): Ditto.
11727 (vec_pack_trunc_<mode>): Ditto.
11728
11729 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11730 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11731 Sergey Lega <sergey.s.lega@intel.com>
11732 Anna Tikhonova <anna.tikhonova@intel.com>
11733 Ilya Tocar <ilya.tocar@intel.com>
11734 Andrey Turetskiy <andrey.turetskiy@intel.com>
11735 Ilya Verbin <ilya.verbin@intel.com>
11736 Kirill Yukhin <kirill.yukhin@intel.com>
11737 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11738
11739 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
11740 (VI8F_256_512): Ditto.
11741 (abs<mode>2): Changed iterator.
11742 (avx2_perm<mode>): Changed to ...
11743 (<avx2_avx512f>_perm<mode>): This.
11744 (avx2_perm<mode>_1): Changed to ...
11745 (<avx2_avx512f>_perm<mode>_1): This.
11746
11747 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11748 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11749 Sergey Lega <sergey.s.lega@intel.com>
11750 Anna Tikhonova <anna.tikhonova@intel.com>
11751 Ilya Tocar <ilya.tocar@intel.com>
11752 Andrey Turetskiy <andrey.turetskiy@intel.com>
11753 Ilya Verbin <ilya.verbin@intel.com>
11754 Kirill Yukhin <kirill.yukhin@intel.com>
11755 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11756
11757 * config/i386/sse.md (VI48_AVX512F): New.
11758 (VI48_AVX2): Changed to ...
11759 (VI48_AVX2_48_AVX512F): This.
11760 (avx2_ashrv<mode>): Changed to ...
11761 (<avx2_avx512f>_ashrv<mode>): This.
11762 (avx2_<shift_insn>v<mode>): Changed to ...
11763 (<avx2_avx512f>_<shift_insn>v<mode>): This.
11764
11765 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11766 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11767 Sergey Lega <sergey.s.lega@intel.com>
11768 Anna Tikhonova <anna.tikhonova@intel.com>
11769 Ilya Tocar <ilya.tocar@intel.com>
11770 Andrey Turetskiy <andrey.turetskiy@intel.com>
11771 Ilya Verbin <ilya.verbin@intel.com>
11772 Kirill Yukhin <kirill.yukhin@intel.com>
11773 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11774
11775 * config/i386/sse.md (VI4_AVX512F): New.
11776 (VI8_AVX2_AVX512F): Ditto.
11777 (mul<mode>3): Extended with wider modes.
11778 (*<sse4_1_avx2>_mul<mode>3): Ditto.
11779 (mul<mode>3): Ditto.
11780 (vec_widen_<s>mult_odd_<mode>): Ditto.
11781
11782 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11783 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11784 Sergey Lega <sergey.s.lega@intel.com>
11785 Anna Tikhonova <anna.tikhonova@intel.com>
11786 Ilya Tocar <ilya.tocar@intel.com>
11787 Andrey Turetskiy <andrey.turetskiy@intel.com>
11788 Ilya Verbin <ilya.verbin@intel.com>
11789 Kirill Yukhin <kirill.yukhin@intel.com>
11790 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11791
11792 * config/i386/sse.md (VI2_AVX512F): New.
11793 (VI124_AVX512F): Ditto.
11794 (sseunpackmode): Extended with wider modes.
11795 (sseunpackfltmode): Ditto.
11796 (vec_unpacks_float_hi_<mode>): Ditto.
11797 (vec_unpacks_float_lo_<mode>): Ditto.
11798 (vec_unpacku_float_hi_<mode>): Ditto.
11799 (vec_unpacku_float_lo_<mode>): Ditto.
11800 (vec_unpacks_lo_<mode>): Ditto.
11801 (vec_unpacks_hi_<mode>): Ditto.
11802 (vec_unpacku_lo_<mode>): Ditto.
11803 (vec_unpacku_hi_<mode>): Ditto.
11804
11805 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11806 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11807 Sergey Lega <sergey.s.lega@intel.com>
11808 Anna Tikhonova <anna.tikhonova@intel.com>
11809 Ilya Tocar <ilya.tocar@intel.com>
11810 Andrey Turetskiy <andrey.turetskiy@intel.com>
11811 Ilya Verbin <ilya.verbin@intel.com>
11812 Kirill Yukhin <kirill.yukhin@intel.com>
11813 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11814
11815 * config/i386/i386.md (multdiv): New.
11816 (multdiv_mnemonic): Ditto.
11817 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
11818 (<sse>_vm<multdiv_mnemonic><mode>3): This.
11819 (<sse>_vmdiv<mode>3): Removed.
11820
11821 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11822 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11823 Sergey Lega <sergey.s.lega@intel.com>
11824 Anna Tikhonova <anna.tikhonova@intel.com>
11825 Ilya Tocar <ilya.tocar@intel.com>
11826 Andrey Turetskiy <andrey.turetskiy@intel.com>
11827 Ilya Verbin <ilya.verbin@intel.com>
11828 Kirill Yukhin <kirill.yukhin@intel.com>
11829 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11830
11831 * config/i386/sse.md (V): Extended with wider modes.
11832 (VF2): Ditto.
11833 (ssehalfvecmode): Ditto.
11834 (i128): Ditto.
11835 (ssepackfltmode): Ditto.
11836 (avx_vec_concat<mode>): Ditto.
11837 (V_256_512): New iterator.
11838 (VF2_512_256): Ditto.
11839 (si2dfmode): New attribute.
11840 (si2dfmodelower): Ditto.
11841 (sf2dfmode): Ditto.
11842 (concat_tg_mode): Ditto.
11843 (floatv4siv4df2): Changed to ...
11844 (float<si2dfmodelower><mode>2): This.
11845 (avx_cvtps2pd256): Changed to ...
11846 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
11847 (vec_pack_trunc_v4df): Changed to ...
11848 (vec_pack_trunc_<mode>): This.
11849 (avx_vpermil<mode>): Changed to ...
11850 (<sse2_avx_avx512f>_vpermil<mode>): This.
11851 (<fixsuffix>fix_truncv8dfv8si2): New.
11852 (vec_pack_sfix_trunc_v8df): Ditto.
11853 (avx512f_rndscale<mode>): Ditto.
11854 (avx512f_roundpd512): Ditto.
11855 (vec_pack_ufix_trunc_<mode>): Updated iterator.
11856
11857 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11858 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11859 Sergey Lega <sergey.s.lega@intel.com>
11860 Anna Tikhonova <anna.tikhonova@intel.com>
11861 Ilya Tocar <ilya.tocar@intel.com>
11862 Andrey Turetskiy <andrey.turetskiy@intel.com>
11863 Ilya Verbin <ilya.verbin@intel.com>
11864 Kirill Yukhin <kirill.yukhin@intel.com>
11865 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11866
11867 * config/i386/i386.md (any_fix): New iterator.
11868 (fixsuffix): New attribute.
11869 * config/i386/sse.md (VF1): Extened with wider modes.
11870 (VI): Ditto.
11871 (VI_AVX2): Ditto.
11872 (VI8): Ditto.
11873 (sseintvecmodelower): Ditto.
11874 (ssescalarmode): Ditto.
11875 (ssescalarnum): Ditto.
11876 (VF1_128_256): New.
11877 (ssexmmmode): Ditto.
11878 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
11879 (<sse>_rcp<mode>2): Change iterator.
11880 (rsqrt<mode>2): Ditto.
11881 (<sse>_rsqrt<mode>2): Ditto.
11882 (avx2_vec_dup<mode>): Ditto.
11883 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
11884 (round<mode>2_sfix): Ditto.
11885 (avx2_pbroadcast<mode>): Ditto.
11886 (*andnot<mode>3): Handle XI mode.
11887 (*<code><mode>3): Ditto.
11888 (AVXTOSSEMODE): Removed.
11889 (avx_vpermil<mode>): Changed to ...
11890 (<sse2_avx_avx512f>_vpermil<mode>): This.
11891
11892 2013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
11893 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11894 Sergey Lega <sergey.s.lega@intel.com>
11895 Anna Tikhonova <anna.tikhonova@intel.com>
11896 Ilya Tocar <ilya.tocar@intel.com>
11897 Andrey Turetskiy <andrey.turetskiy@intel.com>
11898 Ilya Verbin <ilya.verbin@intel.com>
11899 Kirill Yukhin <kirill.yukhin@intel.com>
11900 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11901
11902 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
11903 (<sse>_comi): Ditto.
11904 (<sse>_ucomi): Ditto.
11905 (sse_cvtss2siq_2): Ditto.
11906 (sse2_cvtsd2si): Ditto.
11907 (sse2_cvtsd2siq): Ditto.
11908 (sse2_cvttsd2si): Ditto.
11909 (sse2_cvttsd2siq): Ditto.
11910 (<shift_insn><mode>3): Ditto.
11911 (sse2_cvtsi2sdq): Update constraint and prefix.
11912 (sse_cvtsi2ss): Update prefix.
11913 (sse_cvtsi2ssq): Ditto.
11914
11915 2013-10-11 Jakub Jelinek <jakub@redhat.com>
11916
11917 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
11918 ignore internal calls.
11919
11920 2013-10-11 Richard Biener <rguenther@suse.de>
11921
11922 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
11923 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
11924 TREE_OVERFLOW is set.
11925
11926 2013-10-11 Thomas Schwinge <thomas@codesourcery.com>
11927
11928 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
11929
11930 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
11931 * gimple.h: Likewise.
11932
11933 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
11934
11935 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
11936 macros.
11937
11938 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
11939
11940 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
11941 * configure: Regenerate.
11942
11943 2013-10-11 Jakub Jelinek <jakub@redhat.com>
11944
11945 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
11946 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
11947 formatting fixes, use pp_colon instead of pp_character (..., ':'),
11948 similarly pp_right_paren.
11949 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
11950 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
11951 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
11952 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
11953 clauses.
11954 (omp_declare_simd_clauses_equal,
11955 omp_remove_redundant_declare_simd_attrs): New functions.
11956 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
11957 (walk_tree_1): Handle new OpenMP 4.0 clauses.
11958 * tree.h (OMP_LOOP_CHECK): Define.
11959 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
11960 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
11961 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
11962 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
11963 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
11964 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
11965 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
11966 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
11967 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
11968 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
11969 OMP_CLAUSE_SIMDLEN_EXPR): Define.
11970 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
11971 (omp_remove_redundant_declare_simd_attrs): New prototype.
11972 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
11973 GIMPLE_OMP_TEAMS): New codes.
11974 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
11975 * omp-low.c (struct omp_context): Add cancel_label and cancellable
11976 fields.
11977 (target_nesting_level): New variable.
11978 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
11979 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
11980 for collapse > 1 static schedule unless ordered.
11981 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
11982 (determine_parallel_type): Adjust get_ws_args_for caller.
11983 (install_var_field): Handle mask & 4 for double indirection.
11984 (scan_sharing_clauses): Ignore shared clause on teams construct.
11985 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
11986 (create_omp_child_function): If inside target or declare target
11987 constructs, set "omp declare target" attribute on the child function.
11988 (find_combined_for): New function.
11989 (scan_omp_parallel): Handle combined loops.
11990 (scan_omp_target, scan_omp_teams): New functions.
11991 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
11992 restrictions and set ctx->cancellable for cancellable constructs.
11993 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
11994 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
11995 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
11996 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
11997 (omp_clause_aligned_alignment): New function.
11998 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
11999 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
12000 on teams constructs. Handle user defined reductions and new
12001 OpenMP 4.0 clauses.
12002 (lower_reduction_clauses): Don't set placeholder to address of ref
12003 if it has already the right type.
12004 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
12005 (expand_parallel_call): Use the new non-_start suffixed builtins,
12006 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
12007 and GOMP_parallel_end after the call.
12008 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
12009 (expand_omp_for_init_counts): Handle combined loops.
12010 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
12011 loops.
12012 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
12013 end of cancellable loops.
12014 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12015 Likewise. Handle collapse > 1 loops.
12016 (expand_omp_simd): Handle combined loops.
12017 (expand_omp_for): Add inner_stmt argument, adjust callers of
12018 expand_omp_for* functions, use expand_omp_for_static*chunk even
12019 for collapse > 1 unless ordered.
12020 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
12021 of cancellable sections.
12022 (expand_omp_single): Remove need_barrier variable, just rely on
12023 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
12024 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
12025 (expand_omp_atomic_load, expand_omp_atomic_store,
12026 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
12027 (expand_omp_target): New function.
12028 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
12029 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
12030 (build_omp_regions_1): Immediately close region for
12031 GF_OMP_TARGET_KIND_UPDATE.
12032 (maybe_add_implicit_barrier_cancel): New function.
12033 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
12034 cancellation.
12035 (lower_omp_single): Likewise. Add clobber after the barrier.
12036 (lower_omp_taskgroup): New function.
12037 (lower_omp_for): Handle combined loops. Adjust
12038 lower_rec_input_clauses caller. Handle cancellation.
12039 (lower_depend_clauses): New function.
12040 (lower_omp_taskreg): Lower depend clauses. Adjust
12041 lower_rec_input_clauses caller. Add clobber after the call. Handle
12042 cancellation.
12043 (lower_omp_target, lower_omp_teams): New functions.
12044 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
12045 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
12046 and GOMP_cancellation_point calls.
12047 (lower_omp): Fold stmts inside of target region.
12048 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
12049 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
12050 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
12051 (BT_FN_VOID_OMPFN_PTR_UINT,
12052 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
12053 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
12054 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
12055 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
12056 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
12057 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
12058 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
12059 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
12060 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
12061 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
12062 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
12063 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
12064 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
12065 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
12066 BUILT_IN_GOMP_PARALLEL_END.
12067 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
12068 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
12069 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
12070 GF_OMP_FOR_KIND_DISTRIBUTE.
12071 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
12072 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
12073 (dump_gimple_omp_return): Print lhs if it has any.
12074 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
12075 gimple_omp_atomic_seq_cst_p.
12076 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
12077 and GIMPLE_OMP_TEAMS.
12078 * langhooks.c (lhd_omp_mappable_type): New function.
12079 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
12080 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
12081 hook.
12082 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
12083 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
12084 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
12085 (struct gimplify_omp_ctx): Add combined_loop field.
12086 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
12087 on stmts inside of target region.
12088 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
12089 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
12090 ORT_TARGET and ORT_TARGET_DATA.
12091 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
12092 Handle GOVD_MAP.
12093 (omp_notice_threadprivate_variable): Complain about threadprivate
12094 variables in target region.
12095 (omp_notice_variable): Complain about vars with non-mappable type
12096 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
12097 (omp_check_private): Ignore ORT_TARGET* regions.
12098 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
12099 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
12100 (find_combined_omp_for): New function.
12101 (gimplify_omp_for): Handle gimplification of combined loops.
12102 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
12103 OMP_TEAMS.
12104 (gimplify_omp_target_update): New function.
12105 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
12106 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
12107 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
12108 (gimplify_body): If fndecl has "omp declare target" attribute, add
12109 implicit ORT_TARGET context around it.
12110 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
12111 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
12112 * tree-nested.c (convert_nonlocal_reference_stmt,
12113 convert_local_reference_stmt, convert_gimple_call): Handle
12114 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
12115 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
12116 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
12117 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
12118 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
12119 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
12120 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
12121 BUILT_IN_GOMP_LOOP_END_CANCEL,
12122 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
12123 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
12124 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
12125 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
12126 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
12127 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
12128 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
12129 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
12130 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
12131 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
12132 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
12133 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
12134 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
12135 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
12136 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
12137 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
12138 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
12139 gimple_build_omp_teams): New functions.
12140 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
12141 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
12142 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
12143 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
12144 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
12145 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
12146 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
12147 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
12148 GF_OMP_ATOMIC_SEQ_CST): New.
12149 (gimple_build_omp_taskgroup, gimple_build_omp_target,
12150 gimple_build_omp_teams): New prototypes.
12151 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
12152 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
12153 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
12154 GIMPLE_OMP_SINGLE as end of range.
12155 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
12156 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
12157 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
12158 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
12159 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
12160 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
12161 gimple_omp_target_kind, gimple_omp_target_set_kind,
12162 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
12163 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
12164 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
12165 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
12166 gimple_omp_teams_set_clauses): New inlines.
12167 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
12168 and GIMPLE_OMP_TASKGROUP.
12169 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
12170 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
12171 enum omp_clause_proc_bind_kind): New.
12172 (union omp_clause_subcode): Add depend_kind, map_kind and
12173 proc_bind_kind fields.
12174 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
12175 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
12176 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
12177 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
12178 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
12179
12180 2013-10-10 Teresa Johnson <tejohnson@google.com>
12181
12182 * predict.c (tree_estimate_probability): Add new parameter
12183 for estimate_bb_frequencies.
12184 (estimate_bb_frequencies): Add new parameter to force estimation.
12185 (rebuild_frequencies): When max frequency in function is small,
12186 recompute counts from frequencies.
12187 * predict.h (estimate_bb_frequencies): New parameter.
12188
12189 2013-10-10 David Malcolm <dmalcolm@redhat.com>
12190
12191 * ipa-inline.c (ipa_inline): Fix leak of "order" when
12192 optimizations are disabled.
12193
12194 2013-10-10 David Malcolm <dmalcolm@redhat.com>
12195
12196 * coverage.c (coverage_finish): Fix leak of da_file_name.
12197
12198 2013-10-10 Jan Hubicka <jh@suse.cz>
12199
12200 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
12201 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
12202 Bobcat and generic.
12203
12204 2013-10-10 Jakub Jelinek <jakub@redhat.com>
12205
12206 PR middle-end/58670
12207 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
12208 if any labels are in FALLTHRU_BB, use a special label emitted
12209 immediately after the asm goto insn rather than label_rtx
12210 of the LABEL_DECL.
12211 (expand_asm_stmt): Adjust caller.
12212 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
12213 edge if the last insn in predecessor is a jump with single successor,
12214 but it isn't simplejump_p.
12215
12216 2013-10-10 Richard Biener <rguenther@suse.de>
12217
12218 PR tree-optimization/58656
12219 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
12220
12221 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
12222
12223 * gimplify.c: Include expr.h and tm_p.h for targets with special
12224 va-arg padding requirements.
12225
12226 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
12227
12228 * tree-flow.h: Move some prototypes to gimple.h.
12229 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
12230 * gimple.h: Relocate some prototypes from tree-flow.h
12231 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
12232 Move to gimplify.c.
12233 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
12234 (build_va_arg_indirect_ref): Relocate and make static.
12235 (std_gimplify_va_arg_expr): Relocate here.
12236 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
12237 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
12238
12239 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12240
12241 * doc/md.texi: Document the mnemonic attribute.
12242
12243 2013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12244
12245 PR target/57377
12246 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
12247 (set_attr_alternative x ...) when searching for user defined
12248 mnemonic attribute.
12249
12250 2013-10-10 Andrew MacLeod <amacleod@redhat.com>
12251
12252 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
12253
12254 2013-10-09 Easwaran Raman <eraman@google.com>
12255
12256 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
12257 * cfgexpand.c (defer_stack_allocation): ...use here
12258 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
12259
12260 2013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
12261
12262 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
12263 (operand_equal_for_value_replacement): New function, extracted from
12264 value_replacement and enhanced to catch more cases.
12265 (value_replacement): Use operand_equal_for_value_replacement.
12266
12267 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
12268
12269 * loop-doloop.c (doloop_modify, doloop_optimize): Use
12270 get_max_loop_iterations.
12271
12272 2013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12273
12274 * config/arm/aarch-common.c (arm_early_load_addr_dep):
12275 Place comment above function.
12276
12277 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
12278
12279 * tree-flow.h: Remove all remaining prototypes, enums and structs that
12280 are not related to tree-cfg.c.
12281 * tree-ssa-address.h: New file. Relocate prototypes.
12282 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
12283 (addr_for_mem_ref): New. Combine call to get_address_description and
12284 return addr_for_mem_ref.
12285 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
12286 * tree-ssa-live.h: Adjust prototypes.
12287 * passes.c: Include tree-ssa-live.h.
12288 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
12289 * graphite.c (graphite_transform_loops): Make static.
12290 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
12291 make_pass_graphite, pass_data_graphite_transforms,
12292 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
12293 * ipa-pure-const.c (warn_function_noreturn): Make static.
12294 (execute_warn_function_noreturn, gate_warn_function_noreturn,
12295 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
12296 Relocate from tree-cfg.c
12297 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
12298 static.
12299 (execute_warn_function_noreturn, gate_warn_function_noreturn,
12300 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
12301 Move to ipa-pure-const.c.
12302 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
12303 Relocate from tree-optimize.c.
12304 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
12305 make_pass_fixup_cfg): Move to tree-cfg.c.
12306 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
12307 Relocate some prototypes.
12308 * tree-data-ref.h (tree_check_data_deps) Add prototype.
12309 * tree-dump.c (dump_function_to_file): Remove prototype.
12310 Add tree-flow.h to the include file.
12311 * tree-dump.h: Remove prototype.
12312 * tree-parloops.h: New File. Add prototypes.
12313 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
12314 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
12315 from tree-ssa-loop.c.
12316 * tree-predcom.c (run_tree_predictive_commoning,
12317 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
12318 Relocate here from tree-ssa-loop.c.
12319 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
12320 ssa_name_values.release ().
12321 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
12322 (ssa_name_values): Relocate from tree-flow.h.
12323 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
12324 * tree-ssa-loop.c (run_tree_predictive_commoning,
12325 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
12326 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
12327 make_pass_graphite, pass_data_graphite_transforms,
12328 make_pass_graphite_transforms, gate_tree_parallelize_loops,
12329 tree_parallelize_loops, pass_data_parallelize_loops,
12330 make_pass_parallelize_loops): Move to other files.
12331 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
12332 moved here.
12333 * tree.h: Remove prototypes from tree-address.c.
12334
12335 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
12336
12337 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
12338 (struct int_tree_map): Move to tree-hasher.h
12339 (SCALE, LABEL, PERCENT): Move to gimple.h
12340 * tree-flow-inline.h: Delete. Move functions to other files.
12341 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
12342 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
12343 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
12344 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
12345 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
12346 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
12347 * tree-hasher.h: Don't include tree-flow.h.
12348 (struct int_tree_map): Relocate from tree-flow.h.
12349 * tree-sra.c (contains_view_convert_expr_p): Relocate from
12350 tree-flow-inline.h and make static.
12351 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
12352 tree-flow-inline.h.
12353 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
12354 tree-flow-inline.h and make static.
12355 * tree.h (is_global_var, may_be_aliased): Relocate from
12356 tree-flow-inline.h.
12357 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
12358 * value-prof.c: No longer include tree-flow-inline.h.
12359 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
12360
12361 2013-10-09 Andrew MacLeod <amacleod@redhat.com>
12362
12363 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
12364 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
12365 (enum move_pos): Move to tree-ssa-loop-im.h
12366 * cfgloop.h: Move some prototypes.
12367 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
12368 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
12369 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
12370 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
12371 (loop_containing_stmt): Relocate from tree-flow-inline.h.
12372 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
12373 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
12374 (enum move_pos): Relocate here.
12375 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
12376 tree-ssa-loop.c.
12377 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
12378 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
12379 make_pass_lim): Relocate here from tree-ssa-loop.c.
12380 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
12381 tree-ssa-loop.c.
12382 (loop_edge_to_cancel, unloop_loops): Make static.
12383 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
12384 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
12385 (tree_complete_unroll, gate_tree_complete_unroll,
12386 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
12387 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
12388 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
12389 * tree-ssa-loop-ivopts.c: Remove local prototypes.
12390 (stmt_invariant_in_loop_p): Remove unused function.
12391 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
12392 * tree-ssa-loop-manip.h: New file. Add prototypes.
12393 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
12394 (gcov_type_to_double_int): Move to cfgloop.h.
12395 (double_int_cmp, bound_index,
12396 estimate_numbers_of_iterations_loop): Make static.
12397 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
12398 (max_loop_iterations): Factor out get_max_loop_iterations.
12399 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
12400 cfgloop.c.
12401 * tree-ssa-loop-niter.h: New file. Add prototypes.
12402 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
12403 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
12404 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
12405 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
12406 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
12407 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
12408 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
12409 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
12410 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
12411 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
12412 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
12413 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
12414 pass_data_complete_unroll, make_pass_complete_unroll,
12415 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
12416 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
12417 tree-ssa-loop-ivcanon.c.
12418 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
12419 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
12420 tree-ssa-loop-prefetch.c.
12421 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
12422 tree-ssa-loop-im.c.
12423 (get_lsm_tmp_name): Relocate and add suffix parameter.
12424 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
12425 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
12426 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
12427 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
12428 (get_estimated_loop_iterations): Factor out accessor from
12429 estimated_loop_iterations in tree-ssa-loop-niter.c.
12430 (get_max_loop_iterations): Factor out accessor from
12431 _max_loop_iterations in tree-ssa-niter.c.
12432 * loop-unroll.c (decide_unroll_constant_iterations,
12433 decide_unroll_runtime_iterations, decide_peel_simple,
12434 decide_unroll_stupid): Use new get_* accessors.
12435
12436 2013-10-09 Marc Glisse <marc.glisse@inria.fr>
12437
12438 PR tree-optimization/20318
12439 * doc/extend.texi (returns_nonnull): New function attribute.
12440 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
12441 attribute.
12442 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
12443 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
12444
12445 2013-10-09 Eric Botcazou <ebotcazou@adacore.com>
12446
12447 PR middle-end/58570
12448 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
12449 false if both components are bitfields.
12450
12451 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
12452
12453 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
12454 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
12455 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
12456 * config/aarch64/aarch64.h
12457 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
12458 * config/aarch64/aarch64-simd-builtins.def
12459 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
12460
12461 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
12462
12463 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
12464
12465 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
12466
12467 * config/aarch64/arm_neon.h (vdiv_f64): Added.
12468
12469 2013-10-09 Alex Velenko <Alex.Velenko@arm.com>
12470
12471 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
12472 (vneg_f64): New intrinsic.
12473 (vneg_s8): Asm replaced with C.
12474 (vneg_s16): Likewise.
12475 (vneg_s32): Likewise.
12476 (vneg_s64): New intrinsic.
12477 (vnegq_f32): Asm replaced with C.
12478 (vnegq_f64): Likewise.
12479 (vnegq_s8): Likewise.
12480 (vnegq_s16): Likewise.
12481 (vnegq_s32): Likewise.
12482 (vnegq_s64): Likewise.
12483
12484 2013-10-09 Renlin Li <Renlin.Li@arm.com>
12485
12486 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
12487
12488 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12489
12490 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
12491 packed stack special handling.
12492 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
12493 back to fixed stack slots for FPRs saved due to stdarg.
12494
12495 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12496
12497 * config/s390/s390.c (s390_frame_info): Restructure function.
12498
12499 2013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12500
12501 * config/s390/s390.c (struct s390_frame_layout): New field
12502 gpr_save_slots.
12503 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
12504 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
12505 regs_ever_clobbered to char*.
12506 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
12507 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
12508 (s390_register_info): Enable FPR save slots. Move/Copy some
12509 functionality into ...
12510 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
12511 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
12512 function.
12513 (s390_frame_info): Do gpr slot allocation here now. stdarg does
12514 not imply a stack frame.
12515 (s390_init_frame_layout): Remove variable clobbered_regs.
12516 (s390_update_register_info): Remove function.
12517 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
12518 cannot be used for register renaming.
12519 (s390_hard_regno_scratch_ok): New function.
12520 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
12521 (s390_initial_elimination_offset): Change offset calculation of
12522 the return address pointer.
12523 (save_gprs): Deal with only r6 being saved from the call-saved regs.
12524 (restore_gprs): Set frame related flag.
12525 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
12526 (s390_emit_prologue): Call s390_register_info instead of
12527 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
12528 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
12529 (s390_optimize_prologue): Call s390_optimize_register_info.
12530 Try to remove also FPR slot save/restore INSNs. Remove frame
12531 related flags from restore INSNs.
12532
12533 2013-10-08 DJ Delorie <dj@redhat.com>
12534
12535 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
12536 (movhi): Likewise.
12537
12538 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
12539 avoid conflict with the MI use of %c.
12540 * config/rl78/rl78-real.md: change %c to %C throughout.
12541 * config/rl78/rl78-virt.md: Likewise.
12542
12543 2013-10-08 Jan Hubicka <jh@suse.cz>
12544
12545 * config/i386/i386.c (ix86_option_override_internal): Switch
12546 to SSE math for -ffast-math when target ISA supports SSE2.
12547
12548 2013-10-08 Andrew MacLeod <amacleod@redhat.com>
12549
12550 * tree-flow.h: Remove some prototypes.
12551 * tree.h: Remove some protypes, add a couple.
12552 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
12553 using_eh_for_cleanups_p): Add interface routines for front ends.
12554 * tree-eh.h: New file. Add protoptyes.
12555 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
12556 (add_stmt_to_eh_lp_fn): Make static.
12557 (lower_try_finally): Use new using_eh_for_cleanups_p.
12558 * emit-rtl.c: Include tree-eh.h.
12559 * gimple.h: Include tree-eh.h.
12560
12561 2013-10-08 Marc Glisse <marc.glisse@inria.fr>
12562
12563 PR tree-optimization/58480
12564 * tree-vrp.c (infer_nonnull_range): New function.
12565 (infer_value_range): Call infer_nonnull_range.
12566
12567 2013-10-08 Dehao Chen <dehao@google.com>
12568
12569 PR tree-optimization/58619
12570 * tree-inline.c (copy_phis_for_bb): Combine location data
12571 only if non-null.
12572
12573 2013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
12574
12575 PR target/58423
12576 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
12577 RTX_FRAME_RELATED_P on INSN.
12578
12579 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12580
12581 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
12582 (altivec_expand_vec_perm_const): Call it.
12583
12584 2013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12585
12586 * config/rs6000/vector.md (mov<mode>): Emit permuted move
12587 sequences for LE VSX loads and stores at expand time.
12588 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
12589 prototype.
12590 * config/rs6000/rs6000.c (rs6000_const_vec): New.
12591 (rs6000_gen_le_vsx_permute): New.
12592 (rs6000_gen_le_vsx_load): New.
12593 (rs6000_gen_le_vsx_store): New.
12594 (rs6000_gen_le_vsx_move): New.
12595 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
12596 (*vsx_le_perm_load_v4si): New.
12597 (*vsx_le_perm_load_v8hi): New.
12598 (*vsx_le_perm_load_v16qi): New.
12599 (*vsx_le_perm_store_v2di): New.
12600 (*vsx_le_perm_store_v4si): New.
12601 (*vsx_le_perm_store_v8hi): New.
12602 (*vsx_le_perm_store_v16qi): New.
12603 (*vsx_xxpermdi2_le_<mode>): New.
12604 (*vsx_xxpermdi4_le_<mode>): New.
12605 (*vsx_xxpermdi8_le_V8HI): New.
12606 (*vsx_xxpermdi16_le_V16QI): New.
12607 (*vsx_lxvd2x2_le_<mode>): New.
12608 (*vsx_lxvd2x4_le_<mode>): New.
12609 (*vsx_lxvd2x8_le_V8HI): New.
12610 (*vsx_lxvd2x16_le_V16QI): New.
12611 (*vsx_stxvd2x2_le_<mode>): New.
12612 (*vsx_stxvd2x4_le_<mode>): New.
12613 (*vsx_stxvd2x8_le_V8HI): New.
12614 (*vsx_stxvd2x16_le_V16QI): New.
12615
12616 2013-10-07 Renlin Li <Renlin.Li@arm.com>
12617
12618 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
12619
12620 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12621
12622 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
12623 loop to work also for 31bit ABI.
12624 Save the stack pointer for frame_size > 0.
12625
12626 2013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12627
12628 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
12629 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
12630 constraint letters from expanders.
12631 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
12632 retry count to general_operand.
12633 ("tabort"): Give operand 0 a mode.
12634 ("tabort_1"): Add mode and constraint letter for operand 0.
12635 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
12636
12637 2013-10-04 Jeff Law <law@redhat.com>
12638
12639 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
12640
12641 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
12642 out of ...
12643 (thread_across_edge): Here. Call it.
12644
12645 2013-10-04 Cary Coutant <ccoutant@google.com>
12646
12647 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
12648 discarding a location list expression (or a piece of one).
12649
12650 2013-10-03 Jan Hubicka <jh@suse.cz>
12651
12652 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
12653 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
12654 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
12655
12656 2013-10-03 Jan Hubicka <jh@suse.cz>
12657
12658 * config/i386/i386.c (ix86_option_override_internal): Do not enable
12659 accumulate-outgoing-args when producing unwind info.
12660
12661 2013-10-03 Wei Mi <wmi@google.com>
12662
12663 * lra-constraints.c (insert_move_for_subreg): New function
12664 extracted from simplify_operand_subreg.
12665 (simplify_operand_subreg): Add reload for paradoxical subreg.
12666
12667 2013-10-03 Rong Xu <xur@google.com>
12668
12669 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
12670 the candidate of builtin_expect such that we should fix the
12671 size/time estimation.
12672 (estimate_function_body_sizes): Do the acutally size/time fix-up
12673 for builtin_expect.
12674
12675 2013-10-03 Rong Xu <xur@google.com>
12676
12677 * predict.c (tree_predict_by_opcode): Get the probability
12678 for builtin_expect from param builtin_expect_probability.
12679 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
12680 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
12681 * doc/invoke.texi: Add documentation for builtin-expect-probability.
12682
12683 2013-10-03 Marc Glisse <marc.glisse@inria.fr>
12684
12685 PR c++/19476
12686 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
12687 * calls.c (alloca_call_p): Use get_callee_fndecl.
12688 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
12689 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
12690 Likewise.
12691 (vrp_visit_stmt): Remove duplicated code.
12692
12693 2013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
12694
12695 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
12696 ceildf2, btruncdf2, instead of vsx_* name.
12697
12698 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
12699 iterators to only do V2DF and V4SF here. Move the DF code to
12700 rs6000.md where it is combined with SF mode. Replace <VSv> with
12701 just 'v' since only vector operations are handled with these insns
12702 after moving the DF support to rs6000.md.
12703 (vsx_sub<mode>3): Likewise.
12704 (vsx_mul<mode>3): Likewise.
12705 (vsx_div<mode>3): Likewise.
12706 (vsx_fre<mode>2): Likewise.
12707 (vsx_neg<mode>2): Likewise.
12708 (vsx_abs<mode>2): Likewise.
12709 (vsx_nabs<mode>2): Likewise.
12710 (vsx_smax<mode>3): Likewise.
12711 (vsx_smin<mode>3): Likewise.
12712 (vsx_sqrt<mode>2): Likewise.
12713 (vsx_rsqrte<mode>2): Likewise.
12714 (vsx_fms<mode>4): Likewise.
12715 (vsx_nfma<mode>4): Likewise.
12716 (vsx_copysign<mode>3): Likewise.
12717 (vsx_btrunc<mode>2): Likewise.
12718 (vsx_floor<mode>2): Likewise.
12719 (vsx_ceil<mode>2): Likewise.
12720 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
12721 (vsx_sminsf3): Likewise.
12722 (vsx_fmadf4): Likewise.
12723 (vsx_fmsdf4): Likewise.
12724 (vsx_nfmadf4): Likewise.
12725 (vsx_nfmsdf4): Likewise.
12726 (vsx_cmpdf_internal1): Likewise.
12727
12728 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
12729 simpler to select whether a target has SPE or traditional floating
12730 point support in iterators.
12731 (TARGET_DF_SPE): Likewise.
12732 (TARGET_SF_FPR): Likewise.
12733 (TARGET_DF_FPR): Likewise.
12734 (TARGET_SF_INSN): Macros to say whether floating point support
12735 exists for a given operation for expanders.
12736 (TARGET_DF_INSN): Likewise.
12737
12738 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
12739 combining of SF/DF mode operations, using both traditional and VSX
12740 registers.
12741 (Fvsx): Likewise.
12742 (Ff): Likewise.
12743 (Fv): Likewise.
12744 (Fs): Likewise.
12745 (Ffre): Likewise.
12746 (FFRE): Likewise.
12747 (abs<mode>2): Combine SF/DF modes using traditional floating point
12748 instructions. Add support for using the upper DF registers with
12749 VSX support, and SF registers with power8-vector support. Update
12750 expanders for operations supported by both the SPE and traditional
12751 floating point units.
12752 (abs<mode>2_fpr): Likewise.
12753 (nabs<mode>2): Likewise.
12754 (nabs<mode>2_fpr): Likewise.
12755 (neg<mode>2): Likewise.
12756 (neg<mode>2_fpr): Likewise.
12757 (add<mode>3): Likewise.
12758 (add<mode>3_fpr): Likewise.
12759 (sub<mode>3): Likewise.
12760 (sub<mode>3_fpr): Likewise.
12761 (mul<mode>3): Likewise.
12762 (mul<mode>3_fpr): Likewise.
12763 (div<mode>3): Likewise.
12764 (div<mode>3_fpr): Likewise.
12765 (sqrt<mode>3): Likewise.
12766 (sqrt<mode>3_fpr): Likewise.
12767 (fre<Fs>): Likewise.
12768 (rsqrt<mode>2): Likewise.
12769 (cmp<mode>_fpr): Likewise.
12770 (smax<mode>3): Likewise.
12771 (smin<mode>3): Likewise.
12772 (smax<mode>3_vsx): Likewise.
12773 (smin<mode>3_vsx): Likewise.
12774 (negsf2): Delete SF operations that are merged with DF.
12775 (abssf2): Likewise.
12776 (addsf3): Likewise.
12777 (subsf3): Likewise.
12778 (mulsf3): Likewise.
12779 (divsf3): Likewise.
12780 (fres): Likewise.
12781 (fmasf4_fpr): Likewise.
12782 (fmssf4_fpr): Likewise.
12783 (nfmasf4_fpr): Likewise.
12784 (nfmssf4_fpr): Likewise.
12785 (sqrtsf2): Likewise.
12786 (rsqrtsf_internal1): Likewise.
12787 (smaxsf3): Likewise.
12788 (sminsf3): Likewise.
12789 (cmpsf_internal1): Likewise.
12790 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
12791 (negdf2): Delete DF operations that are merged with SF.
12792 (absdf2): Likewise.
12793 (nabsdf2): Likewise.
12794 (adddf3): Likewise.
12795 (subdf3): Likewise.
12796 (muldf3): Likewise.
12797 (divdf3): Likewise.
12798 (fred): Likewise.
12799 (rsqrtdf_internal1): Likewise.
12800 (fmadf4_fpr): Likewise.
12801 (fmsdf4_fpr): Likewise.
12802 (nfmadf4_fpr): Likewise.
12803 (nfmsdf4_fpr): Likewise.
12804 (sqrtdf2): Likewise.
12805 (smaxdf3): Likewise.
12806 (smindf3): Likewise.
12807 (cmpdf_internal1): Likewise.
12808 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
12809 (btrunc<mode>2): Delete separate expander, and combine with the
12810 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
12811 (btrunc<mode>2_fpr): Likewise.
12812 (ceil<mode>2): Likewise.
12813 (ceil<mode>2_fpr): Likewise.
12814 (floor<mode>2): Likewise.
12815 (floor<mode>2_fpr): Likewise.
12816 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
12817 Add support for using the upper registers with VSX and
12818 power8-vector. Move insns to be closer to the define_expands. On
12819 VSX systems, prefer the traditional form of FMA over the VSX
12820 version, since the traditional form allows the target not to
12821 overlap with the inputs.
12822 (fms<mode>4_fpr): Likewise.
12823 (nfma<mode>4_fpr): Likewise.
12824 (nfms<mode>4_fpr): Likewise.
12825
12826 2013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12827 Richard Earnshaw <richard.earnshaw@arm.com>
12828
12829 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
12830 (struct mult_cost_table): Likewise.
12831 (struct mem_cost_table): Likewise.
12832 (struct fp_cost_table): Likewise.
12833 (struct vector_cost_table): Likewise.
12834 (cpu_cost_table): Likewise.
12835 * config/arm/arm.opt (mold-rts-costs): New option.
12836 (mnew-generic-costs): Likewise.
12837 * config/arm/arm.c (generic_extra_costs): New table.
12838 (cortexa15_extra_costs): Likewise.
12839 (arm_slowmul_tune): Use NULL as new costs.
12840 (arm_fastmul_tune): Likewise.
12841 (arm_strongarm_tune): Likewise.
12842 (arm_xscale_tune): Likewise.
12843 (arm_9e_tune): Likewise.
12844 (arm_v6t2_tune): Likewise.
12845 (arm_cortex_a5_tune): Likewise.
12846 (arm_cortex_a9_tune): Likewise.
12847 (arm_v6m_tune): Likewise.
12848 (arm_fa726te_tune): Likewise.
12849 (arm_cortex_a15_tune): Use cortex15_extra_costs.
12850 (arm_cortex_tune): Use generict_extra_costs.
12851 (shifter_op_p): New function.
12852 (arm_unspec_cost): Likewise.
12853 (LIBCALL_COST): Define.
12854 (arm_new_rtx_costs): New function.
12855 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
12856 table is available. Use old costs otherwise unless mnew-generic-costs
12857 is specified.
12858 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
12859 (cpu_cost_table): Declare.
12860
12861 2013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
12862
12863 PR target/58460
12864 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
12865 (*subs_mul_imm_<mode>)
12866 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
12867 (*sub_<shift>_<mode>)
12868 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
12869 Remove k constraint.
12870
12871 2013-10-03 Ian Bolton <ian.bolton@arm.com>
12872
12873 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
12874 code.
12875 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
12876
12877 2013-10-02 Teresa Johnson <tejohnson@google.com>
12878
12879 * predict.c (probably_never_executed): New function.
12880 (probably_never_executed_bb_p): Invoke probably_never_executed.
12881 (probably_never_executed_edge_p): Ditto.
12882 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
12883 Treat profile insanities conservatively.
12884
12885 2013-10-02 John David Anglin <danglin@gcc.gnu.org>
12886
12887 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
12888
12889 2013-10-02 Vladimir Makarov <vmakarov@redhat.com>
12890
12891 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
12892 use it. Use smaller increase for scratch. Don't increase reject
12893 for early clobber scratch.
12894 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
12895 setting eliminated regs except setting fp from hfp.
12896 (lra_eliminate): Check lra_insn_recog_data on NULL.
12897
12898 2013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12899
12900 PR target/58587
12901 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
12902 setting -mvsx-timode by default until the underlying problem is fixed.
12903 (RS6000_CPU, power7 defaults): Likewise.
12904
12905 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
12906
12907 * config/x-linux (host-linux.o): Remove header dependencies.
12908 Use $(COMPILE) and $(POSTCOMPILE).
12909 * config/t-linux-android (linux-android.o): Ditto.
12910
12911 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
12912
12913 * Makefile.in (expmed.o-warn): Remove.
12914
12915 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
12916
12917 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
12918 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
12919
12920 2013-10-02 Teresa Johnson <tejohnson@google.com>
12921
12922 * dojump.c (do_jump_1): Divide probability between
12923 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
12924
12925 2013-10-02 Tom Tromey <tromey@redhat.com>
12926
12927 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
12928
12929 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
12930
12931 * tree-flow.h: Remove some prototypes.
12932 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
12933 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
12934 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
12935 mark_virtual_phi_result_for_renaming): Relocate here.
12936 * tree-into-ssa.h: Add prototypes.
12937 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
12938 single_pred_before_succ_order.
12939 (blocks_in_phiopt_order): Rename and move to cfganal.c.
12940 (nonfreeing_call_p) Move to gimple.c.
12941 * cfganal.c (single_pred_before_succ_order): Move and renamed from
12942 tree-ssa-phiopt.c.
12943 * basic-block.h (single_pred_before_succ_order): Add prototype.
12944 * gimple.c (nonfreeing_call_p): Relocate here.
12945 * gimple.h: Add prototype.
12946 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
12947 * tree-ssa-dom.h: New file. Relocate prototypes here.
12948 * tree-ssa.h: Include tree-ssa-dom.h.
12949
12950 2013-10-02 Uros Bizjak <ubizjak@gmail.com>
12951
12952 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
12953 Use $(COMPILE) and $(POSTCOMPILE).
12954
12955 * config/alpha/x-alpha (driver-alpha.o): Ditto.
12956
12957 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
12958
12959 * tree-flow.h: Remove some prototypes.
12960 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
12961 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
12962 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
12963 propagate_tree_value*): Move from here to...
12964 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
12965 propagate_tree_value*): Relocate here.
12966 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
12967 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
12968 * gimple-fold.c: Remove gimple-fold.h from include list.
12969 * tree-vrp.c: Remove gimple-fold.h from include list.
12970 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
12971 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
12972 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
12973 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
12974 * sese.c: Add tree-ssa-propagate.h to include list.
12975
12976 2013-10-02 Richard Biener <rguenther@suse.de>
12977
12978 * tree-loop-distribution.c: Include tree-vectorizer.h for
12979 find_loop_location.
12980 (enum partition_kind): Remove PKIND_REDUCTION.
12981 (struct partition_s): Remove has_writes member, add reduction_p member.
12982 (partition_alloc): Adjust.
12983 (partition_builtin_p): Likewise.
12984 (partition_has_writes): Remove.
12985 (partition_reduction_p): New function.
12986 (partition_merge_into): Likewise.
12987 (generate_code_for_partition): Commonize builtin partition
12988 handling tail.
12989 (rdg_cannot_recompute_vertex_p): Remove.
12990 (already_processed_vertex_p): Likewise.
12991 (rdg_flag_vertex): Do not set has_writes.
12992 (classify_partition): Adjust.
12993 (rdg_build_partitions): Do not set has_writes, treat all
12994 partitions as useful.
12995 (distribute_loop): Record number of library calls generated. Adjust.
12996 (tree_loop_distribution): Report number of loops and library
12997 calls generated as opt-info.
12998
12999 2013-10-02 Andrew MacLeod <amacleod@redhat.com>
13000
13001 * tree-flow.h: Include new .h files. Move prototypes.
13002 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
13003 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
13004 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
13005 * tree-pretty-print.h: Add prototypes from tree-flow.h.
13006 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
13007 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
13008 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
13009 * tree.h (get_ref_base_and_extent): Move prototype out.
13010 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
13011 tree-dfa.h.
13012 * gimple-low.h: New File. Add prototypes from tree-flow.h.
13013 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
13014 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
13015 * tree-scalar-evolution.c: Include tree.h.
13016 * sese.c: Include tree.h.
13017 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
13018 * dwarf2out.c: Include tree-dfa.h.
13019 * tree-chrec.c: Include tree.h.
13020 * tree-data-ref.c: Include tree.h.
13021
13022 2013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
13023
13024 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
13025 Fix whitespace.
13026
13027 2013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13028
13029 * config/t-sol2 (sol2-c.o): Remove header dependencies.
13030 Use $(COMPILE) and $(POSTCOMPILE).
13031 (sol2-cxx.o): Likewise.
13032 (sol2-stubs.o): Likewise.
13033 (sol2.o): Likewise.
13034 * config/x-solaris (host-solaris.o): Likewise.
13035
13036 * config/sparc/t-sparc (sparc.o): Remove.
13037 (sparc-c.o): Remove header dependencies.
13038 Use $(COMPILE) and $(POSTCOMPILE).
13039 * config/sparc/x-sparc: Likewise.
13040
13041 2013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
13042
13043 * config/arc/arc-opts.h: Add 2013 to Copyright years.
13044 * config/arc/arc700.md: Likewise.
13045 * config/arc/arc-modes.def: Likewise.
13046 * config/arc/arc-simd.h: Likewise.
13047 * config/arc/t-arc-uClibc: Likewise.
13048 * config/arc/t-arc-newlib: Likewise.
13049
13050 2013-10-02 Renlin Li <renlin.li@arm.com>
13051
13052 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
13053 plus_constant.
13054 (aarch64_expand_epilogue): Likewise.
13055
13056 2013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13057 Yufeng Zhang <yufeng.zhang@arm.com>
13058
13059 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
13060 declaration.
13061 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
13062 'base_in' represent a conversion and legal_cast_p_1 holds; set
13063 'base_in' with the returned value from get_unwidened.
13064
13065 2013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13066
13067 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
13068 plus_constant is not used.
13069
13070 2013-10-01 Wei Mi <wmi@google.com>
13071
13072 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
13073 * config/i386/i386.md: Add define_peephole2 to
13074 break partial reg stall for cvtss2sd/cvtsd2ss.
13075
13076 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
13077
13078 * config/arc/arc.c (pass_arc_ifcvt::clone):
13079 Update for ctxt_ -> m_ctxt change.
13080
13081 2013-10-01 Jeff Law <law@redhat.com>
13082
13083 * tree-ssa-threadupdate.c (struct redirection_data): Delete
13084 outgoing_edge and intermediate_edge fields. Instead store the path.
13085 (redirection_data::hash): Hash on the last edge's destination index.
13086 (redirection_data::equal): Check the entire thread path.
13087 (lookup_redirectio_data): Corresponding changes.
13088 (create_edge_and_update_destination_phis): Likewise.
13089 (thread_single_edge): Likewise.
13090
13091 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
13092 Diego Novillo <dnovillo@google.com>
13093
13094 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
13095 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
13096 (vld32wh_insn, vld32wl_insn): Delete commented-out old
13097 versions of these patterns.
13098
13099 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
13100 (__builtin_arc_aligned): Likewise.
13101
13102 * config/arc/arc.md: Expand adc_0 comment stating the intended
13103 purpose and why it isn't ready.
13104 Replace commented out call_value_via_label_mixed with a
13105 plain comment about bl_s.
13106
13107 * config/arc/arc.c (stdio.h): Don't include directly.
13108 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
13109 Remove if (1) condition.
13110 (arc_encode_section_info): Fix comment.
13111
13112 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
13113
13114 * config/arc/arc.c (arc_conditional_register_usage):
13115 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
13116 Also set reg_alloc_order for DMA config regs.
13117
13118 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
13119 Jeremy Bennett <jeremy.bennett@embecosm.com>
13120
13121 * doc/install.texi (--with-cpu): Mention ARC.
13122 (arc-*-elf32): New paragraph.
13123 (arc-linux-uclibc): Likewise.
13124 * doc/md.texi (Machine Constraints): Add ARC part.
13125 * doc/invoke.texi: (menu): Add ARC Options.
13126 (Machine Dependent Options) <ARC Options>: Add synopsis.
13127 (node ARC Options): Add.
13128 * doc/extend.texi (long_call / short_call attribute): Add ARC.
13129 (ARC Built-in Functions): New section defining
13130 generic ARC built-in functions.
13131 (ARC SIMD Built-in Functions): New section defining SIMD specific
13132 built-in functions.
13133 (Declaring Attributes of Functions): Extended
13134 description of short_call and long_call attributes for ARC and
13135 added index entries.
13136
13137 2013-10-01 Saurabh Verma <saurabh.verma@codito.com>
13138 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
13139 Joern Rennecke <joern.rennecke@embecosm.com>
13140 Muhammad Khurram Riaz <khurram.riaz@arc.com>
13141 Brendan Kehoe <brendan@zen.org>
13142 Michael Eager <eager@eagercon.com>
13143 Simon Cook <simon.cook@embecosm.com>
13144 Jeremy Bennett <jeremy.bennett@embecosm.com>
13145
13146 * config/arc, common/config/arc: New directories.
13147
13148 2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
13149 Brendan Kehoe <brendan@zen.org>
13150 Simon Cook <simon.cook@embecosm.com>
13151
13152 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
13153
13154 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
13155
13156 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
13157 * tree-ssa-coalesce.h: New. Move prototype to here.
13158 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
13159 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
13160 (gimple_can_coalesce_p): Move to...
13161 * gimple.c (gimple_can_coalesce_p): Here.
13162
13163 2013-10-01 Andrew MacLeod <amacleod@redhat.com>
13164
13165 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
13166 (dump_decl_set): Move to gimple.c.
13167 * gimple.h: Don't include tree-ssa-operands.h.
13168 (dump_decl_set): Add prototype.
13169 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
13170 Move to gimple-ssa.h.
13171 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
13172 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
13173 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
13174 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
13175 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
13176 than PHI_ARG_DEF.
13177 (dump_decl_set): Relocate here.
13178 * gimple-ssa.h: New file.
13179 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
13180 Relocate from gimple.h.
13181 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
13182 * tree-ssa-operands.c (swap_ssa_operands): Rename from
13183 swap_tree_operands and remove non-ssa path.
13184 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
13185 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
13186 swap_ssa_operands.
13187 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
13188 vect_is_simple_reduction_1): Use swap_ssa_operands.
13189 * tree-flow.h: Move various prototypes to tree-phinodes.h.
13190 (enum need_phi_state): Move to tree-into-ssa.c.
13191 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
13192 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
13193 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
13194 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
13195 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
13196 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
13197 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
13198 num_imm_uses): Move to ssa-iterators.h.
13199 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
13200 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
13201 tree-phinodes.h.
13202 (op_iter_done, op_iter_next_def, op_iter_next_tree,
13203 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
13204 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
13205 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
13206 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
13207 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
13208 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
13209 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
13210 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
13211 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
13212 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
13213 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
13214 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
13215 (set_phi_nodes): Move to tree-phinodes.h.
13216 * tree-ssa-operands.h (enum ssa_op_iter_type,
13217 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
13218 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
13219 (dump_decl_set): Remove prototype.
13220 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
13221 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
13222 (set_phi_nodes): Relocate from tree-flow-inline.h.
13223 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
13224 tree-flow-inline.h
13225 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
13226 include list. Temporarily add gimple.h to include list.
13227 * ssa-iterators.h: New file.
13228 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
13229 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
13230 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
13231 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
13232 Relocate from tree-ssa-operands.h.
13233 (delink_imm_use, link_imm_use_to_list, link_imm_use,
13234 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
13235 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
13236 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
13237 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
13238 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
13239 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
13240 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
13241 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
13242 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
13243 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
13244 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
13245 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
13246 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
13247 Relocate from tree-flow-inline.h.
13248 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
13249
13250 2013-10-01 Vidya Praveen <vidyapraveen@arm.com>
13251
13252 * aarch64-simd.md
13253 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
13254 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
13255 Insert '\t' to output template.
13256 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
13257 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
13258 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
13259 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
13260
13261 2013-10-01 Uros Bizjak <ubizjak@gmail.com>
13262
13263 * doc/install.texi (Host/target specific installation notes for GCC):
13264 Put @anchor before @heading.
13265 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
13266 Use @email for email addresses.
13267
13268 2013-10-01 Jeff Law <law@redhat.com>
13269
13270 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
13271 a vec. Only delete the path if we create one without successfully
13272 registering a jump thread.
13273 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
13274 as a pointer.
13275 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
13276 (paths): New vector of jump threading paths.
13277 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
13278 (THREAD_PATH): New accessor macro for the entire thread path.
13279 (lookup_redirection_data): Get intermediate and final outgoing edge
13280 from the thread path.
13281 (create_edge_and_update_destination_phis): Copy the threading path.
13282 (ssa_fix_duplicate_block_edges): Get edges and block types from the
13283 jump threading path.
13284 (ssa_redirect_edges): Get edges and block types from the jump threading
13285 path. Free the path vector.
13286 (thread_block): Get edges from the jump threading path. Look at the
13287 entire path to see if we thread to a loop exit. If we cancel a jump
13288 thread request, then free the path vector.
13289 (thread_single_edge): Get edges and block types from the jump threading
13290 path. Free the path vector.
13291 (thread_through_loop_header): Get edges and block types from the jump
13292 threading path. Free the path vector.
13293 (mark_threaded_blocks): Iterate over the vector of paths and store
13294 the path on the appropriate edge. Get edges and block types from the
13295 jump threading path.
13296 (mark_threaded_blocks): Get edges and block types from the jump
13297 threading path. Free the path vector.
13298 (thread_through_all_blocks): Use the vector of paths rather than
13299 a vector of 3-edge sets.
13300 (register_jump_thread): Accept pointer to a path vector rather
13301 than the path vector itself. Store the path vector for later use.
13302 Simplify.
13303
13304 2013-10-01 Jakub Jelinek <jakub@redhat.com>
13305 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13306
13307 PR target/58574
13308 * config/s390/s390.c (s390_split_branches): Modify check for table
13309 jump insns.
13310 (s390_chunkify_start): Rearrange table jump insn check in order to
13311 deal with compare and branch insns correctly.
13312
13313 2013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
13314
13315 PR target/58578
13316 Revert
13317 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
13318 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
13319 define_insn_and_split.
13320 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
13321 (shiftsi3_compare): New pattern.
13322 (rrx): New pattern.
13323 * config/arm/unspecs.md (UNSPEC_RRX): New.
13324
13325 2013-10-01 Alan Modra <amodra@gmail.com>
13326
13327 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
13328 casing inout operands.
13329
13330 2013-10-01 Richard Biener <rguenther@suse.de>
13331
13332 PR tree-optimization/58553
13333 * tree-loop-distribution.c (struct partition_s): Add niter member.
13334 (classify_partition): Populate niter member for the partition
13335 and properly identify whether the relevant store happens before
13336 or after the loop exit.
13337 (generate_memset_builtin): Use niter member from the partition.
13338 (generate_memcpy_builtin): Likewise.
13339
13340 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
13341
13342 * vec.h (vec_prefix, vec): Prefix member names with "m_".
13343 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
13344
13345 2013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
13346
13347 * basic-block.h (edge_list): Prefix member names with "m_".
13348 * context.h (context): Likewise.
13349 * domwalk.h (dom_walker): Likewise.
13350 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
13351 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
13352 * hash-table.h (hash_table): Likewise.
13353 * machmode.h (bit_field_mode_iterator): Likewise.
13354 * pass_manager.h (pass_list): Likewise.
13355 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
13356 * tree-pass.h (pass_data): Likewise.
13357 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
13358 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
13359 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
13360 * asan.c (pass_data_asan): Update accordingly.
13361 * cfganal.c (control_dependences::find_control_dependence): Likewise.
13362 (control_dependences::control_dependences): Likewise.
13363 (control_dependences::~control_dependences): Likewise.
13364 (control_dependences::~control_dependences): Likewise.
13365 (control_dependences::get_edges_dependent_on): Likewise.
13366 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
13367 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
13368 * context.c (gcc::context::context): Likewise.
13369 * cprop.c (pass_rtl_cprop::clone): Likewise.
13370 * domwalk.c (dom_walker::walk): Likewise.
13371 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
13372 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
13373 * mode-switching.c (pass_mode_switching::clone): Likewise.
13374 * passes.c (opt_pass::opt_pass): Likewise.
13375 (pass_manager::pass_manager): Likewise.
13376 * predict.c (pass_strip_predict_hints::clone): Likewise.
13377 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
13378 (pass_split_all_insns::clone): Likewise.
13379 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
13380 Likewise.
13381 (bit_field_mode_iterator::next_mode): Likewise.
13382 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
13383 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
13384 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
13385 * tree-complex.c (pass_lower_complex::clone): Likewise.
13386 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
13387 * tree-object-size.c (pass_object_sizes::clone): Likewise.
13388 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
13389 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
13390 (pass_fold_builtins::clone): Likewise.
13391 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
13392 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
13393 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
13394 (pass_cd_dce::clone): Likewise.
13395 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
13396 (pass_phi_only_cprop::clone): Likewise.
13397 * tree-ssa-dse.c (pass_dse::clone): Likewise.
13398 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
13399 * tree-ssa-loop.c (pass_lim::clone): Likewise.
13400 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
13401 * tree-ssa-pre.c (pass_fre::clone): Likewise.
13402 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
13403 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
13404 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
13405 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
13406 * tree-vrp.c (pass_vrp::clone): Likewise.
13407 * tsan.c (pass_tsan::clone): Likewise.
13408
13409 2013-09-30 Jakub Jelinek <jakub@redhat.com>
13410
13411 PR middle-end/58564
13412 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
13413 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
13414
13415 PR middle-end/58564
13416 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
13417 optimization, punt if sign_bit_p looked through any zero extension.
13418
13419 2013-09-30 Teresa Johnson <tejohnson@google.com>
13420
13421 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
13422 Update redirected out edge count in joiner case.
13423 (ssa_redirect_edges): Common the joiner and non-joiner cases
13424 so that joiner case gets profile updates.
13425
13426 2013-09-30 Richard Biener <rguenther@suse.de>
13427
13428 PR tree-optimization/58554
13429 * tree-loop-distribution.c (classify_partition): Require
13430 unconditionally executed stores for memcpy and memset recognition.
13431 (tree_loop_distribution): Calculate dominance info.
13432
13433 2013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
13434
13435 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
13436 (NO_PROFILE_COUNTERS): Likewise.
13437 (PROFILE_HOOK): Likewise.
13438 (FUNCTION_PROFILER): Likewise.
13439 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
13440
13441 2013-09-30 Iain Sandoe <iain@codesourcery.com>
13442
13443 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
13444 calls and defines in TARGET_MACHO conditional.
13445 (load_macho_picbase_di): Likewise.
13446 (reload_macho_picbase): Likewise.
13447 (reload_macho_picbase_si): Likewise.
13448 (reload_macho_picbase_di): Likewise.
13449 (nonlocal_goto_receiver): Likewise.
13450
13451 2013-09-30 Nick Clifton <nickc@redhat.com>
13452
13453 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
13454 that use the MSP430X ISA.
13455 (msp430_option_override): Scan -mmcu command line option for any
13456 MCU name that supports the MSP430X ISA.
13457 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
13458 -mmcu options which enable the MSP430X ISA.
13459
13460 2013-09-30 Richard Biener <rguenther@suse.de>
13461
13462 PR middle-end/58532
13463 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
13464 before looking for setjmp-like calls.
13465
13466 2013-09-29 Iain Sandoe <iain@codesourcery.com>
13467
13468 PR target/10901
13469 * config/darwin-protos.h (machopic_get_function_picbase): New.
13470 * config/darwin.c (machopic_get_function_picbase): New.
13471 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
13472 label for a new func. (load_macho_picbase_di): Likewise.
13473 (reload_macho_picbase): New expand.
13474 (reload_macho_picbase_si): New insn.
13475 (reload_macho_picbase_di): New insn.
13476 (nonlocal_goto_receiver): New define and split.
13477 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
13478 (unspecv enum): Add UNSPECV_NLGR.
13479
13480 2013-09-29 Iain Sandoe <iain@codesourcery.com>
13481
13482 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
13483 that altivec registers are correctly sized on Darwin.
13484
13485 2013-09-29 Iain Sandoe <iain@codesourcery.com>
13486
13487 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
13488 darwin-driver.o): Use COMPILE and POSTCOMPILE.
13489 * config/x-darwin (host-darwin.o): Likewise.
13490 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
13491 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
13492 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
13493
13494 2013-09-29 Uros Bizjak <ubizjak@gmail.com>
13495
13496 * doc/invoke.texi: Fix usage of @tie{} command.
13497
13498 2013-09-29 Eric Botcazou <ebotcazou@adacore.com>
13499
13500 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
13501
13502 2013-09-28 Jan Hubicka <jh@suse.cz>
13503
13504 * config/i386/x86-tune.def: Add documentation for each of the options;
13505 add whitespace.
13506
13507 2013-09-28 Jan Hubicka <jh@suse.cz>
13508
13509 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
13510 generic.
13511 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
13512 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
13513 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
13514 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
13515 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
13516
13517 2013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
13518
13519 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
13520 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
13521 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
13522 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
13523 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
13524 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
13525 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
13526 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
13527 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
13528 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
13529 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
13530 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
13531 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
13532 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
13533 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
13534 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
13535 gimple.h, godump.c, graphite-clast-to-gimple.c,
13536 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
13537 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
13538 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
13539 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
13540 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
13541 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
13542 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
13543 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
13544 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
13545 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
13546 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
13547 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
13548 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
13549 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
13550 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
13551 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
13552 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
13553 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
13554 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
13555 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
13556 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
13557 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
13558 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
13559 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
13560 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
13561 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
13562 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
13563 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
13564 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
13565 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
13566 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
13567 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
13568 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
13569 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
13570 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
13571 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
13572 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
13573 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
13574 whitespace before "(".
13575
13576 2013-09-28 Sandra Loosemore <sandra@codesourcery.com>
13577
13578 * expr.h (extract_bit_field): Remove packedp parameter.
13579 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
13580 from forward declaration.
13581 (store_split_bit_field): Remove packedp arg from calls to
13582 extract_fixed_bit_field.
13583 (extract_bit_field_1): Remove packedp parameter and packedp
13584 argument from recursive calls and calls to extract_fixed_bit_field.
13585 (extract_bit_field): Remove packedp parameter and corresponding
13586 arg to extract_bit_field_1.
13587 (extract_fixed_bit_field): Remove packedp parameter. Remove code
13588 to issue warnings.
13589 (extract_split_bit_field): Remove packedp arg from call to
13590 extract_fixed_bit_field.
13591 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
13592 (copy_blkmode_from_reg): Likewise.
13593 (copy_blkmode_to_reg): Likewise.
13594 (read_complex_part): Likewise.
13595 (store_field): Likewise.
13596 (expand_expr_real_1): Likewise.
13597 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
13598 to extract_bit_field.
13599 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
13600 call to extract_bit_field.
13601 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
13602 call to extract_bit_field.
13603 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
13604 and special packedp behavior from -fstrict-volatile-bitfields
13605 documentation.
13606
13607 2013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13608
13609 * lra-eliminations.c (init_elim_table): Guard value_p.
13610
13611 2013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
13612
13613 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
13614 DFmode, DImode, and SFmode in the upper VSX registers based on the
13615 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
13616 if -mpower8-vector. Combine -mvsx-timode handling with the rest
13617 of the VSX register handling.
13618
13619 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
13620 (f32_sv): Likewise.
13621 (zero_extendsidi2_lfiwzx): Add support for loading into the
13622 Altivec registers with -mpower8-vector. Use wu/wv constraints to
13623 only do VSX memory options on Altivec registers.
13624 (extendsidi2_lfiwax): Likewise.
13625 (extendsfdf2_fpr): Likewise.
13626 (mov<mode>_hardfloat, SF/SD modes): Likewise.
13627 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
13628 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
13629 (movdi_internal64): Likewise.
13630
13631 2013-09-27 Xinliang David Li <davidxl@google.com>
13632
13633 * opts.c (finish_options): Adjust parameters
13634 according to vect cost model.
13635 (common_handle_option): Set dynamic vect cost
13636 model for FDO.
13637 targhooks.c (default_add_stmt_cost): Compute stmt cost
13638 unconditionally.
13639 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
13640 Use helper function.
13641 * tree-vectorizer.h (unlimited_cost_model): New function.
13642 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
13643 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
13644 function.
13645 (vect_enhance_data_refs_alignment): Ditto.
13646 * flag-types.h: New enum.
13647 * common/config/i386/i386-common.c (ix86_option_init_struct):
13648 No need to initialize vect_cost_model flag.
13649 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
13650 unconditionally.
13651
13652 2013-09-27 Diego Novillo <dnovillo@google.com>
13653
13654 * gimple.h (enum ssa_mode): Remove.
13655
13656 2013-09-27 Paulo Matos <pmatos@broadcom.com>
13657
13658 * cfgloop.h (number_of_loops): Fix typo in check for null.
13659
13660 2013-09-27 Jakub Jelinek <jakub@redhat.com>
13661
13662 PR middle-end/58551
13663 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
13664 are children of outermost saved_cfun's loop, and set it up to
13665 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
13666 if loop != loop0 and SESE region contains bbs that belong to loop0.
13667
13668 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
13669
13670 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
13671 (binary_scale_code_p, get_base_term, get_index_term): New functions.
13672 (set_address_segment, set_address_base, set_address_index)
13673 (set_address_disp): Accept the argument unconditionally.
13674 (baseness): Remove must_be_base_p and must_be_index_p checks.
13675 (decompose_normal_address): Classify as much as possible in the
13676 main loop.
13677
13678 2013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
13679
13680 * cse.c (count_reg_usage): Handle INT_LIST.
13681 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
13682 * reginfo.c (reg_scan_mark_refs): Likewise.
13683 * reload1.c (eliminate_regs_1): Likewise.
13684
13685 2013-09-27 Iain Sandoe <iain@codesourcery.com>
13686
13687 PR middle-end/58547
13688 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
13689 signed.
13690
13691 2013-09-27 Richard Biener <rguenther@suse.de>
13692
13693 PR tree-optimization/58459
13694 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
13695 restriction not propagating into loops.
13696
13697 2013-09-26 Florian Weimer <fw@deneb.enyo.de>
13698
13699 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
13700 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
13701 * doc/tree-ssa.texi (Walking use-def chains): Delete.
13702
13703 2013-09-26 Richard Biener <rguenther@suse.de>
13704
13705 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
13706
13707 2013-09-26 Richard Biener <rguenther@suse.de>
13708
13709 * alias.h (component_uses_parent_alias_set): Rename to ...
13710 (component_uses_parent_alias_set_from): ... this.
13711 * alias.c (component_uses_parent_alias_set): Rename to ...
13712 (component_uses_parent_alias_set_from): ... this and return
13713 the desired parent.
13714 (reference_alias_ptr_type_1): Use the result from
13715 component_uses_parent_alias_set_from instead of stripping
13716 components one at a time.
13717 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
13718
13719 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
13720
13721 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
13722 Move prototypes to...
13723 * tree-ssa-ter.h: New File. Move prototypes here.
13724 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
13725 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
13726 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
13727 from is_replaceable_p.
13728 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
13729 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
13730 (process_replaceable): Use ter_is_replaceable_p.
13731 (find_replaceable_in_bb): Use ter_is_replaceable_p.
13732 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
13733 newly refactored ssa_is_replaceable_p.
13734 * cfgexpand.c: Include tree-outof-ssa.h.
13735 * ssaexpand.h: Delete.
13736
13737 2013-09-26 Andrew MacLeod <amacleod@redhat.com>
13738
13739 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
13740 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
13741 tree-ssa.c
13742 (create_gimple_tmp): Delete.
13743 (get_expr_type, build_assign, build_type_cast): Move to...
13744 * gimple-builder.c: New File.
13745 (get_expr_type): Relocate from gimple.c.
13746 (build_assign, build_type_cast): Change to only create ssanames.
13747 * gimple.h: Move prototypes to...
13748 * gimple-builder.h: New File. Here.
13749 * tree-ssa.h: And here.
13750 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
13751 count_uses_and_derefs): Relocate from gimple.c.
13752 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
13753 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
13754 * tree-ssa-math-opts (execute_cse_reciprocals): Use
13755 gimple_replace_ssa_lhs.
13756 * asan.c: Include gimple-builder.h.
13757 * Makefile.in: Add gimple-builder.o.
13758
13759 2013-09-26 Richard Biener <rguenther@suse.de>
13760
13761 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
13762 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
13763 (loe_visit_block): Use gcc_checking_assert.
13764 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
13765 gimple_assign_ssa_name_copy_p.
13766 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
13767 change.
13768
13769 2013-09-26 David Edelsohn <dje.gcc@gmail.com>
13770
13771 * config/rs6000/t-rs6000 (rs6000.o): Remove.
13772 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
13773
13774 2013-09-26 Richard Biener <rguenther@suse.de>
13775
13776 PR tree-optimization/58539
13777 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
13778 the fact that debug statements are not taking part in loop-closed
13779 SSA construction.
13780
13781 2013-09-26 Nick Clifton <nickc@redhat.com>
13782
13783 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
13784 time warning message.
13785 (msp430_print_operand_raw): Delete unused letter parameter.
13786 (TARGET_PRINT_OPERAND_ADDRESS): Define.
13787 (msp430_print_operand_address): New function.
13788 (msp430_print_operand): Move address printing code from here to
13789 new function.
13790 * config/msp430/msp430.md (movsipsi2): Add comment in generated
13791 assembler.
13792 (zero_extendpsisi2): Likewise.
13793 (extendpsisi2): New pattern.
13794 (andneghi3): New pattern.
13795
13796 2013-09-26 Yvan Roux <yvan.roux@linaro.org>
13797
13798 * config/aarch64/aarch64.opt (mlra): New option.
13799 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
13800 (TARGET_LRA_P): Define.
13801
13802 2013-09-26 Eric Botcazou <ebotcazou@adacore.com>
13803
13804 * expr.c (expand_assignment): Remove obsolete comment.
13805
13806 2013-09-25 Jeff Law <law@redhat.com>
13807
13808 * tree-flow.h (thread_through_all_blocks): Prototype moved into
13809 tree-ssa-threadupdate.h.
13810 (register_jump_thread): Similarly.
13811 * tree-ssa-threadupdate.h: New header file.
13812 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
13813 * tree-vrp.c: Likewise.
13814 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
13815 (thread_around_empty_blocks): Change type of path vector argument to
13816 an edge,type pair from just an edge. Initialize both elements when
13817 appending to a jump threading path. Tweak references to elements
13818 appropriately.
13819 (thread_across_edge): Similarly. Release memory for the elements
13820 as needed.
13821 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
13822 (dump_jump_thread_path): New function broken out from
13823 register_jump_thread.
13824 (register_jump_thread): Use dump_jump_thread_path. Change type of
13825 path vector entries. Search the path for NULL edges and dump
13826 the path if one is found. Tweak the conversion of path to 3-edge
13827 form to use the block copy type information embedded in the path.
13828
13829 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
13830
13831 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
13832
13833 2013-09-25 Yvan Roux <yvan.roux@linaro.org>
13834 Vladimir Makarov <vmakarov@redhat.com>
13835
13836 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
13837 from the least significant bit.
13838 (strip_address_mutations): Add bitfield operations handling.
13839 (must_be_index_p): Add shifting and rotate operations handling.
13840 (set_address_base): Use must_be_base_p predicate.
13841 (set_address_index): Use must_be_index_p predicate.
13842
13843 2013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
13844 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13845 Sergey Lega <sergey.s.lega@intel.com>
13846 Anna Tikhonova <anna.tikhonova@intel.com>
13847 Ilya Tocar <ilya.tocar@intel.com>
13848 Andrey Turetskiy <andrey.turetskiy@intel.com>
13849 Ilya Verbin <ilya.verbin@intel.com>
13850 Kirill Yukhin <kirill.yukhin@intel.com>
13851 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13852
13853 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
13854 Use new names.
13855 (ix86_expand_vector_move_misalign): Support new unaligned load and
13856 stores and use new names.
13857 (CODE_FOR_sse2_storedqu): Rename to ...
13858 (CODE_FOR_sse2_storedquv16qi): ... this.
13859 (CODE_FOR_sse2_loaddqu): Rename to ...
13860 (CODE_FOR_sse2_loaddquv16qi): ... this.
13861 (CODE_FOR_avx_loaddqu256): Rename to ...
13862 (CODE_FOR_avx_loaddquv32qi): ... this.
13863 (CODE_FOR_avx_storedqu256): Rename to ...
13864 (CODE_FOR_avx_storedquv32qi): ... this.
13865 * config/i386/i386.md (fpint_logic): New.
13866 * config/i386/sse.md (VMOVE): Extend for AVX512.
13867 (VF): Ditto.
13868 (VF_128_256): New.
13869 (VF_512): Ditto.
13870 (VI_UNALIGNED_LOADSTORE): Ditto.
13871 (sse2_avx_avx512f): Ditto.
13872 (sse2_avx2): Extend for AVX512.
13873 (sse4_1_avx2): Ditto.
13874 (avx2_avx512f): New.
13875 (sse): Extend for AVX512.
13876 (sse2): Ditto.
13877 (sse4_1): Ditto.
13878 (avxsizesuffix): Ditto.
13879 (sseintvecmode): Ditto.
13880 (ssePSmode): Ditto.
13881 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
13882 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
13883 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
13884 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
13885 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
13886 (<sse2_avx_avx512f>_storedqu<mode): ... this.
13887 (<sse>_movnt<mode>): Replace constraint "x" with "v".
13888 (STORENT_MODE): Extend for AVX512.
13889 (*absneg<mode>2): Replace constraint "x" with "v".
13890 (*mul<mode>3): Ditto.
13891 (*ieee_smin<mode>3): Ditto.
13892 (*ieee_smax<mode>3): Ditto.
13893 (avx_cmp<mode>3): Replace VF with VF_128_256.
13894 (*<sse>_maskcmp<mode>3_comm): Ditto.
13895 (<sse>_maskcmp<mode>3): Ditto.
13896 (<sse>_andnot<mode>3): Extend for AVX512.
13897 (<code><mode>3, anylogic): Replace VF with VF_128_256.
13898 (<code><mode>3, fpint_logic): New.
13899 (*<code><mode>3): Extend for AVX512.
13900 (avx512flogicsuff): New.
13901 (avx512f_<logic><mode>): Ditto.
13902 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
13903 VF_128_256.
13904 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
13905 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
13906 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
13907 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
13908 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
13909 (xop_vpermil2<mode>3): Ditto.
13910 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
13911 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
13912 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
13913 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
13914
13915 2013-09-25 Tom Tromey <tromey@redhat.com>
13916
13917 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
13918 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
13919 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
13920 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
13921 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
13922 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
13923 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
13924 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
13925 (GRAPHITE_HTAB_H): Remove.
13926
13927 2013-09-25 Tom Tromey <tromey@redhat.com>
13928
13929 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
13930
13931 2013-09-25 Tom Tromey <tromey@redhat.com>
13932
13933 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
13934
13935 2013-09-25 Tom Tromey <tromey@redhat.com>
13936
13937 * config/i386/t-i386 (i386.o): Remove.
13938 (i386-c.o): Use COMPILE and POSTCOMPILE.
13939
13940 2013-09-25 Tom Tromey <tromey@redhat.com>
13941
13942 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
13943
13944 2013-09-25 Tom Tromey <tromey@redhat.com>
13945
13946 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
13947 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
13948 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
13949 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
13950 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
13951 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
13952 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
13953 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
13954 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
13955 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
13956 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
13957 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
13958 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
13959 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
13960 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
13961 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
13962 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
13963 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
13964 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
13965 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
13966 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
13967 (tree-ssa-pre.o, tree-ssa-sccvn.o)
13968 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
13969 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
13970 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
13971 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
13972 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
13973 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
13974 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
13975 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
13976 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
13977 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
13978 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
13979 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
13980 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
13981 (graphite-clast-to-gimple.o, graphite-dependences.o)
13982 (graphite-interchange.o, graphite-poly.o)
13983 (graphite-scop-detection.o, graphite-sese-to-poly.o)
13984 (graphite-optimize-isl.o, tree-vect-loop.o)
13985 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
13986 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
13987 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
13988 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
13989 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
13990 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
13991 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
13992 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
13993 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
13994 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
13995 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
13996 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
13997 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
13998 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
13999 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
14000 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
14001 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
14002 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
14003 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
14004 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
14005 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
14006 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
14007 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
14008 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
14009 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
14010 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
14011 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
14012 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
14013 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
14014 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
14015 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
14016 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
14017 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
14018 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
14019 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
14020 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
14021 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
14022 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
14023 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
14024 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
14025 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
14026 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
14027 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
14028 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
14029 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
14030 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
14031 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
14032 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
14033 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
14034 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
14035 (gcov-dump.o): Remove.
14036 (default-c.o): Use COMPILE and POSTCOMPILE.
14037 (CFLAGS-gcc.o): New variable.
14038 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
14039
14040 2013-09-25 Tom Tromey <tromey@redhat.com>
14041
14042 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
14043 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
14044 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
14045 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
14046 (c-family/c-pragma.o, c-family/c-pretty-print.o)
14047 (c-family/c-semantics.o, c-family/c-ada-spec.o)
14048 (c-family/array-notation-common.o, c-family/stub-objc.o)
14049 (c-family/c-ubsan.o): Remove.
14050
14051 2013-09-25 Tom Tromey <tromey@redhat.com>
14052
14053 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
14054
14055 2013-09-25 Tom Tromey <tromey@redhat.com>
14056
14057 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
14058 to add -DENABLE_SHARED_LIBGCC.
14059 (gcc.o): Don't use subshell.
14060
14061 2013-09-25 Tom Tromey <tromey@redhat.com>
14062
14063 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
14064 * configure.ac: Don't invoke AM_PROG_CC_C_O.
14065 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
14066 * configure, config.in: Rebuild.
14067
14068 2013-09-25 Tom Tromey <tromey@redhat.com>
14069
14070 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
14071 (COMPILE, POSTCOMPILE): New variables.
14072 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
14073 (DEPFILES): New variable.
14074 Include ".Po" files.
14075 * configure.ac: Add checks for dependency checking.
14076 * configure, aclocal.m4: Regenerate.
14077
14078 2013-09-25 Tom Tromey <tromey@redhat.com>
14079
14080 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
14081 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
14082
14083 2013-09-25 Tom Tromey <tromey@redhat.com>
14084
14085 * Makefile.in (generated_files): Add options.h,
14086 target-hooks-def.h, insn-opinit.h,
14087 common/common-target-hooks-def.h, pass-instances.def,
14088 c-family/c-target-hooks-def.h.
14089
14090 2013-09-25 Jeff Law <law@redhat.com>
14091
14092 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
14093 than foo[foo.length () - 1] to access last member in a vec.
14094 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
14095
14096 2013-09-25 Richard Biener <rguenther@suse.de>
14097
14098 PR middle-end/58521
14099 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
14100
14101 2013-09-25 Jan Hubicka <jh@suse.cz>
14102
14103 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
14104 test.
14105
14106 2013-09-25 Marek Polacek <polacek@redhat.com>
14107
14108 PR sanitizer/58420
14109 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
14110 when determining the type name.
14111
14112 2013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
14113
14114 * config/sh/sh.md: Fix formatting.
14115
14116 2013-09-24 Xinliang David Li <davidxl@google.com>
14117
14118 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
14119 max peel iterations parameter.
14120 * param.def: New parameter.
14121 * doc/invoke.texi: Document New parameter.
14122
14123 2013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
14124
14125 * gimple-pretty-print.c: Various whitespace tweaks.
14126 * tree-core.h: Likewise.
14127 * tree-pretty-print.c: Likewise.
14128 * tree-ssa-alias.c: Likewise.
14129 * tree-ssa-copy.c: Likewise.
14130 * tree-ssanames.c: Likewise.
14131 * tree-ssanames.h: Likewise.
14132 * tree-vrp.c: Likewise.
14133
14134 2013-09-24 Alan Modra <amodra@gmail.com>
14135
14136 PR middle-end/57134
14137 PR middle-end/57586
14138 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
14139 for output operands that disallow regs. Don't use EXPAND_WRITE on
14140 inout operands.
14141
14142 2013-09-24 Richard Biener <rguenther@suse.de>
14143
14144 PR middle-end/58513
14145 * tree.c (reference_alias_ptr_type): Move ...
14146 * alias.c (reference_alias_ptr_type): ... here and implement
14147 in terms of the new reference_alias_ptr_type_1.
14148 (ref_all_alias_ptr_type_p): New helper.
14149 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
14150 use ref_all_alias_ptr_type_p.
14151 (get_deref_alias_set): Add flag_strict_aliasing check here.
14152 (reference_alias_ptr_type_1): New function, split out from ...
14153 (get_alias_set): ... here.
14154 (alias_ptr_types_compatible_p): New function.
14155 * alias.h (reference_alias_ptr_type): Declare.
14156 (alias_ptr_types_compatible_p): Likewise.
14157 * tree.h (reference_alias_ptr_type): Remove.
14158 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
14159 to compare MEM_REF alias types.
14160
14161 2013-09-24 Richard Biener <rguenther@suse.de>
14162
14163 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
14164
14165 2013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14166
14167 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
14168 reload helper function arrays into a single array reg_addr.
14169 (reload_fpr_gpr): Likewise.
14170 (reload_gpr_vsx): Likewise.
14171 (reload_vsx_gpr): Likewise.
14172 (struct rs6000_reg_addr): Likewise.
14173 (reg_addr): Likewise.
14174 (rs6000_debug_reg_global): Change rs6000_vector_reload,
14175 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
14176 (rs6000_init_hard_regno_mode_ok): Likewise.
14177 (rs6000_secondary_reload_direct_move): Likewise.
14178 (rs6000_secondary_reload): Likewise.
14179
14180 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
14181 constraints: wu, ww, and wy. Repurpose wv constraint added during
14182 power8 changes. Put wg constraint in alphabetical order.
14183
14184 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
14185 for future work to add ISA 2.07 VSX single precision support.
14186 (-mvsx-scalar-double): Change default from -1 to 1, update
14187 documentation comment.
14188 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
14189 (-mupper-regs-df): New debug switch to control whether DF values
14190 can go in the traditional Altivec registers.
14191 (-mupper-regs-sf): New debug switch to control whether SF values
14192 can go in the traditional Altivec registers.
14193
14194 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
14195 and wy constraints.
14196 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
14197 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
14198 Add new constraints, wu/ww/wy. Repurpose wv constraint.
14199 (rs6000_debug_legitimate_address_p): Print if we are running
14200 before, during, or after reload.
14201 (rs6000_secondary_reload): Add a comment.
14202 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
14203
14204 * config/rs6000/constraints.md (wa constraint): Sort w<x>
14205 constraints. Update documentation string.
14206 (wd constraint): Likewise.
14207 (wf constraint): Likewise.
14208 (wg constraint): Likewise.
14209 (wn constraint): Likewise.
14210 (ws constraint): Likewise.
14211 (wt constraint): Likewise.
14212 (wx constraint): Likewise.
14213 (wz constraint): Likewise.
14214 (wu constraint): New constraint for ISA 2.07 SFmode scalar
14215 instructions.
14216 (ww constraint): Likewise.
14217 (wy constraint): Likewise.
14218 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
14219 in the previous submissions.
14220 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
14221
14222 2013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
14223
14224 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
14225 (REG_BR_PROB): Say that the probability is stored in an int_list.
14226 * reg-notes.def: Update commentary to mention INT_LIST.
14227 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
14228 (INT_LIST): New rtx.
14229 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
14230 * rtlanal.c (int_reg_note_p): New function.
14231 (alloc_reg_note): Assert that the note does not have an int argument.
14232 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
14233 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
14234 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
14235 rather than an INSN_LIST. Handle INT_LIST.
14236 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
14237 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
14238 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
14239 Manipulate them as ints rather than rtxes.
14240 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
14241 * regmove.c (copy_src_to_dest): Likewise.
14242 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
14243
14244 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
14245 into the cases that need it.
14246 * config/arm/arm.c (arm_unwind_emit): Likewise.
14247
14248 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
14249 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
14250 * loop-doloop.c (add_test, doloop_modify): Likewise.
14251 * loop-unswitch.c (compare_and_jump_seq): Likewise.
14252 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
14253 * predict.c (combine_predictions_for_insn): Likewise.
14254 * print-rtl.c (print_rtx): Handle INT_LIST.
14255 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
14256 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
14257 * config/arm/arm.c (emit_unlikely_jump): Likewise.
14258 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
14259 (ix86_split_fp_branch, predict_jump): Likewise.
14260 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
14261 * config/sh/sh.c (expand_cbranchsi4): Likewise.
14262 * config/spu/spu.c (ea_load_store_inline): Likewise.
14263
14264 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
14265 value of a REG_BR_PROB note.
14266 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
14267 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
14268 * emit-rtl.c (try_split): Likewise.
14269 * predict.c (br_prob_note_reliable_p): Likewise.
14270 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
14271 * reorg.c (mostly_true_jump): Likewise.
14272 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
14273 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
14274 * config/i386/i386.c (ix86_print_operand): Likewise.
14275 * config/ia64/ia64.c (ia64_print_operand): Likewise.
14276 * config/mmix/mmix.c (mmix_print_operand): Likewise.
14277 * config/rs6000/rs6000.c (output_cbranch): Likewise.
14278 * config/s390/s390.c (s390_expand_tbegin): Likewise.
14279 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
14280 * config/sparc/sparc.c (output_cbranch): Likewise.
14281 * config/spu/spu.c (get_branch_target): Likewise.
14282 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
14283 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
14284
14285 2013-09-23 Jan Hubicka <jh@suse.cz>
14286
14287 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
14288 for ipa-devirt.
14289 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
14290 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
14291 of external calls
14292 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
14293 (gimple_fold_call): Dump inconsistent devirtualizations; add
14294 sanity check for type based devirtualizations.
14295 * ipa-prop.c: Include ipa-utils.h
14296 (ipa_intraprocedural_devirtualization): Add sanity check.
14297 (try_make_edge_direct_virtual_call): Likewise.
14298
14299 2013-09-23 Eric Botcazou <ebotcazou@adacore.com>
14300
14301 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
14302 assignment statements.
14303
14304 2013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
14305
14306 * gimple-pretty-print.c (dump_ssaname_info): New function.
14307 (dump_gimple_phi): Call it.
14308 (pp_gimple_stmt_1): Likewise.
14309 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
14310 (range_info_def): Declare.
14311 * tree-pretty-print.c (pp_double_int): New function.
14312 (dump_generic_node): Call it.
14313 * tree-pretty-print.h (pp_double_int): Declare.
14314 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
14315 * tree-ssanames.h (range_info_def): New structure.
14316 (value_range_type): Move definition here.
14317 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
14318 Declare.
14319 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
14320 initialization.
14321 (set_range_info): New function.
14322 (get_range_info): Likewise.
14323 (duplicate_ssa_name_range_info): Likewise.
14324 (duplicate_ssa_name_fn): Check pointer type and call
14325 duplicate_ssa_name_range_info.
14326 * tree-ssa-copy.c (fini_copy_prop): Likewise.
14327 * tree-vrp.c (value_range_type): Remove definition, now in
14328 tree-ssanames.h.
14329 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
14330 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
14331 (SSA_NAME_RANGE_INFO): New macro.
14332
14333 2013-09-23 Richard Biener <rguenther@suse.de>
14334
14335 PR tree-optimization/58464
14336 * tree-ssa-pre.c (phi_trans_lookup): Remove.
14337 (phi_trans_add): Change to add conditionally on being not present.
14338 (phi_translate_1): Remove recursion detection here.
14339 (phi_translate): Pre-seed the cache with NULL to catch
14340 recursion here in a more generic way.
14341 (bitmap_find_leader): Adjust comment.
14342 (get_representative_for): Dump value-numbers.
14343 (create_expression_by_pieces): Likewise.
14344 (insert_into_preds_of_block): Likewise.
14345
14346 2013-09-23 Christian Bruel <christian.bruel@st.com>
14347
14348 PR target/58475
14349 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
14350 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
14351
14352 2013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
14353
14354 Revert r202780:
14355 2013-09-20 Renlin Li <renlin.li@arm.com>
14356
14357 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
14358 plus_constant.
14359 (aarch64_expand_epilogue): Likewise.
14360 (aarch64_legitimize_reload_address): Likewise.
14361
14362 2013-09-22 Eric Botcazou <ebotcazou@adacore.com>
14363
14364 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
14365 NULL_TREE before pushing them onto the vector. Likewise for labels.
14366
14367 2013-09-21 Eric Botcazou <ebotcazou@adacore.com>
14368
14369 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
14370 comparison operators when -fno-trapping-math is in effect.
14371 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
14372 comparison operators in TFmode and assert that unsupported operators
14373 cannot reach here.
14374 (ia64_print_operand): Likewise.
14375
14376 2013-09-21 Jan Hubicka <jh@suse.cz>
14377
14378 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
14379 (sse_typeless_stores): Enable for core
14380 (sse_load0_by_pxor): Likewise.
14381 (four_jump_limit): Disable for core.
14382 (pad_returns): Likewise.
14383 (avoid_vector_decode): Likewise.
14384 (fuse_cmp_and_branch): Enable for cores.
14385 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
14386
14387 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
14388
14389 PR middle-end/56791
14390 * config/pa/pa.c (pa_option_override): Disable auto increment and
14391 decrement instructions until reload is completed.
14392
14393 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
14394 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
14395 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
14396
14397 2013-09-20 DJ Delorie <dj@redhat.com>
14398 Nick Clifton <nickc@redhat.com>
14399
14400 * config/rl78/rl78.c: Various whitespace and comment tweaks.
14401 (need_to_save): Save bank 0 on interrupts.
14402 (characterize_address): Strip far address wrappers.
14403 (rl78_as_legitimate_address): Likewise.
14404 (transcode_memory_rtx): Likewise.
14405 (rl78_peep_movhi_p): Disable this peephole after devirt.
14406 (rl78_propogate_register_origins): Forget all origins when a
14407 CLOBBER is seen.
14408 * config/rl78/rl78-virt.md: Various whitespace tweaks.
14409 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
14410 peephole2's.
14411 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
14412 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
14413 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
14414 relocating.
14415 * config/rl78/constraints.md: Various whitespace and paren tweaks.
14416
14417 2013-09-20 John David Anglin <danglin@gcc.gnu.org>
14418
14419 * config/pa/pa.md: In "scc" insn patterns, change output template to
14420 handle const0_rtx in reg_or_0_operand operands.
14421
14422 2013-09-20 Martin Husemann <martin@NetBSD.org>
14423
14424 PR target/56875
14425 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
14426 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
14427
14428 2013-09-20 Richard Biener <rguenther@suse.de>
14429
14430 PR middle-end/58484
14431 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
14432 remembering SSA name version and block index.
14433 (new_scev_info_str): Adjust.
14434 (hash_scev_info): Likewise. Also hash the block index.
14435 (eq_scev_info): Adjust.
14436 (find_var_scev_info): Likewise.
14437 (struct instantiate_cache_entry): Remove.
14438 (struct instantiate_cache_type): Use a htab to map name, block
14439 to chrec.
14440 (instantiate_cache_type::~instantiate_cache_type): Adjust.
14441 (get_instantiated_value_entry): Likewise.
14442 (hash_idx_scev_info, eq_idx_scev_info): New functions.
14443 (instantiate_scev_name): Adjust.
14444
14445 2013-09-20 Jeff Law <law@redhat.com>
14446
14447 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
14448
14449 2013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
14450
14451 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
14452 Call aarch64_simd_expand_args to update op[argc].
14453
14454 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
14455
14456 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
14457 plugin argument.
14458
14459 2013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
14460
14461 * gengtype.c (file_rules): Added rule for *.cc files.
14462 (get_output_file_with_visibility): Give fatal message when no
14463 rules found.
14464
14465 2013-09-20 Renlin Li <renlin.li@arm.com>
14466
14467 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
14468 (aarch64_expand_epilogue): Likewise.
14469 (aarch64_legitimize_reload_address): Likewise.
14470
14471 2013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
14472
14473 PR middle-end/57748
14474 * expr.c (expand_assignment): Remove misalignp code path.
14475
14476 2013-09-20 Marek Polacek <polacek@redhat.com>
14477
14478 PR sanitizer/58413
14479 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
14480 TYPE_PRECISION. Add asserts.
14481
14482 2013-09-20 Richard Biener <rguenther@suse.de>
14483
14484 PR tree-optimization/58453
14485 * tree-loop-distribution.c (distribute_loop): Apply the cost
14486 model for -ftree-loop-distribute-patterns, too.
14487
14488 2013-09-20 Richard Biener <rguenther@suse.de>
14489
14490 PR middle-end/58473
14491 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
14492 make type comparison less strict.
14493
14494 2013-09-20 Alan Modra <amodra@gmail.com>
14495
14496 * configure: Regenerate.
14497 * aclocal.m4: Regenerate.
14498
14499 2013-09-20 Marek Polacek <polacek@redhat.com>
14500
14501 PR other/58467
14502 * doc/extend.texi: Document that attribute used is meant to be used
14503 on variables with static storage duration.
14504
14505 2013-09-19 Jakub Jelinek <jakub@redhat.com>
14506
14507 PR tree-optimization/58472
14508 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
14509 simd_lane_access set inv_p = false.
14510 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
14511 the simduid magic VAR_DECL.
14512
14513 2013-09-19 Jan Hubicka <jh@suse.cz>
14514
14515 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
14516
14517 2013-09-17 Jeff Law <law@redhat.com>
14518
14519 * tree-ssa-dom.c (record_temporary_equivalences): New function
14520 split out of dom_opt_dom_walker::after_dom_children.
14521 (dom_opt_dom_walker::thread_across_edge): Move common code
14522 in here from dom_opt_dom_walker::after_dom_children.
14523 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
14524
14525 2013-09-19 Jan Hubicka <jh@suse.cz>
14526
14527 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
14528 (TARGET_GENERIC): Use PROCESOR_GENERIC
14529 (enum processor_type): Unify generic32 and 64.
14530 * i386.md (cpu): Likewise.
14531 * x86-tune.def (use_leave): Enable for generic32.
14532 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
14533 * athlon.md: Change generic64 to generic in all occurences.
14534 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
14535 (ix86_target_macros_internal): Likewise.
14536 * driver-i386.c (host_detect_local_cpu): Likewise.
14537 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
14538 to ..
14539 (generic_memcpy, generic_memset, generic_cost): This one.
14540 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
14541 (m_GENERIC32, m_GENERIC64): Remove.
14542 (m_GENERIC): Turn into one flag.
14543 (processor_target): Unify generic tunnings.
14544 (ix86_option_override_internal): Replace generic32/64 by generic.
14545 (ix86_issue_rate): Likewise.
14546 (ix86_adjust_cost): Likewise.
14547
14548 2013-09-19 Jan Hubicka <jh@suse.cz>
14549
14550 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
14551 of speculative flag.
14552
14553 2013-09-19 Jakub Jelinek <jakub@redhat.com>
14554
14555 * omp-low.c (expand_omp_sections): Always pass len - 1 to
14556 GOMP_sections_start, even if !exit_reachable.
14557
14558 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
14559
14560 * lra-constraints.c (need_for_all_save_p): Use macro
14561 HARD_REGNO_CALL_PART_CLOBBERED.
14562 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
14563 set up pseudo conflict hard regs.
14564
14565 2013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14566
14567 PR target/58452
14568 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
14569 operands.
14570
14571 2013-09-18 Vladimir Makarov <vmakarov@redhat.com>
14572
14573 PR rtl-optimization/58438
14574 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
14575 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
14576 from previous subpasses.
14577
14578 2013-09-18 Richard Earnshaw <rearnsha@arm.com>
14579
14580 * arm.c (arm_get_frame_offsets): Validate architecture supports
14581 LDRD/STRD before accepting the tuning preference.
14582 (arm_expand_prologue): Likewise.
14583 (arm_expand_epilogue): Likewise.
14584
14585 2013-09-18 Richard Biener <rguenther@suse.de>
14586
14587 PR tree-optimization/58417
14588 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
14589 have chrecs with symbols defined in the loop as operands.
14590 (chrec_fold_multiply): Likewise.
14591 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
14592 parameters before folding binary operations.
14593 (struct instantiate_cache_entry_hasher): Remove.
14594 (struct instantiate_cache_type): Use a pointer-map.
14595 (instantiate_cache_type::instantiate_cache_type): New function.
14596 (instantiate_cache_type::get): Likewise.
14597 (instantiate_cache_type::set): Likewise.
14598 (instantiate_cache_type::~instantiate_cache_type): Adjust.
14599 (get_instantiated_value_entry): Likewise.
14600 (global_cache): New global.
14601 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
14602 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
14603 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
14604 (instantiate_scev_name): Adjust.
14605 (instantiate_scev): Construct global instead of local cache.
14606 (resolve_mixers): Likewise.
14607
14608 2013-09-18 Daniel Morris <danielm@ecoscentric.com>
14609 Paolo Carlini <paolo.carlini@oracle.com>
14610
14611 PR c++/58458
14612 * doc/implement-cxx.texi: Fix references to the C++ standards.
14613
14614 2013-09-18 Jakub Jelinek <jakub@redhat.com>
14615
14616 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
14617 * tree-vect-data-refs.c (vect_analyze_data_refs): For
14618 simd_lane_access drs, update also DR_ALIGNED_TO.
14619
14620 2013-09-18 Marek Polacek <polacek@redhat.com>
14621
14622 PR sanitizer/58411
14623 * doc/extend.texi: Document no_sanitize_undefined attribute.
14624 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
14625 no_sanitize_undefined attribute.
14626
14627 2013-09-18 Nick Clifton <nickc@redhat.com>
14628
14629 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
14630 (ASM_DECLARE_FUNCTION_NAME): Define.
14631
14632 2013-09-17 Trevor Saunders <tsaunders@mozilla.com>
14633
14634 * compare-elim.c (find_comparison_dom_walker): New class
14635 (find_comparisons_in_bb): Rename to
14636 find_comparison_dom_walker::before_dom_children
14637 (find_comparisons): Adjust
14638 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
14639 adjust.
14640 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
14641 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
14642 (init_walk_dominator_tree): Remove declaration.
14643 (fini_walk_dominator_tree): Remove declaration.
14644 * fwprop.c (single_def_use_dom_walker): New class
14645 (single_def_use_enter_block): Convert to
14646 single_def_use_dom_walker::before_dom_children.
14647 (single_def_use_leave_block): Convert to
14648 single_def_use_dom_walker::after_dom_children.
14649 (build_single_def_use_links): Adjust.
14650 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
14651 class.
14652 (find_candidates_in_block): Convert to
14653 find_candidates_dom_walker::before_dom_children.
14654 (execute_strength_reduction): Adjust.
14655 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
14656 (sese_dom_walker): New class.
14657 (sese_dom_walker::sese_dom_walker): New constructor.
14658 (sese_dom_walker::~sese_dom_walker): New destructor.
14659 (build_sese_conditions_before): Convert to
14660 sese_dom_walker::before_dom_children.
14661 (build_sese_conditions_after): Convert to
14662 sese_dom_walker::after_dom_children.
14663 (build_poly_scop): Adjust
14664 * tree-into-ssa.c (rewrite_dom_walker): New class
14665 (rewrite_enter_block): Convert to
14666 rewrite_dom_walker::before_dom_children.
14667 (rewrite_leave_block): Convert to
14668 rewrite_dom_walker::after_dom_children.
14669 (rewrite_update_dom_walker): New class.
14670 (rewrite_update_enter_block): Convert to
14671 rewrite_update_dom_walker::before_dom_children.
14672 (rewrite_update_leave_block): Convert to
14673 rewrite_update_dom_walker::after_dom_children.
14674 (rewrite_blocks, rewrite_into_ssa): Adjust.
14675 (mark_def_dom_walker): New class.
14676 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
14677 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
14678 (mark_def_sites_blocks): Convert to
14679 mark_def_dom_walker::before_dom_children.
14680 (mark_def_site_blocks): Remove.
14681 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
14682 (tree_ssa_dominator_optimize): Adjust.
14683 (dom_thread_across_edge): Convert to method
14684 dom_opt_dom_walker::thread_across_edge.
14685 (dom_opt_enter_block): Convert to member function
14686 dom_opt_dom_walker::before_dom_children.
14687 (dom_opt_leave_block): Convert to member function
14688 dom_opt_dom_walker::after_dom_children.
14689 * tree-ssa-dse.c (dse_dom_walker): New class.
14690 (dse_enter_block): Convert to member function
14691 dse_dom_walker::before_dom_children.
14692 (tree_ssa_dse): Adjust.
14693 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
14694 (determine_invariantness_stmt): Convert to method
14695 invariantness_dom_walker::before_dom_children.
14696 (determine_invariantness): Remove
14697 (move_computations_dom_walker): New class.
14698 (move_computations_stmt): Convert to method
14699 move_computations_dom_walker::before_dom_children.
14700 (move_computations, tree_ssa_lim): Adjust.
14701 * tree-ssa-phiopt.c (nontrapping_dom_walker): New class.
14702 (nt_init_block): Convert to method
14703 notrappping_dom_walker::before_dom_children.
14704 (nt_fini_block): Convert to method
14705 method nontrapping_dom_walker::after_dom_children.
14706 (get_non_trapping): Adjust.
14707 * tree-ssa-pre.c (eliminate_dom_walker): New class.
14708 (eliminate_bb): Convert to method
14709 eliminate_dom_walker::before_dom_children.
14710 (eliminate_leave_block): Convert to method
14711 eliminate_dom_walker::after_dom_children.
14712 (eliminate): Adjust.
14713 * tree-ssa-strlen.c (strlen_dom_walker): New class.
14714 (strlen_enter_block): Convert to method
14715 strlen_dom_walker::before_dom_children.
14716 (strlen_leave_block): Convert to method
14717 method strlen_dom_walker::after_dom_children.
14718 (tree_ssa_strlen): Adjust.
14719 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
14720 (tree_ssa_uncprop): Adjust.
14721 (uncprop_leave_block): Convert to method
14722 uncprop_dom_walker::after_dom_children.
14723 (uncprop_leave_block): Convert to method
14724 uncprop_dom_walker::before_dom_children.
14725
14726 2013-09-18 Bin Cheng <bin.cheng@arm.com>
14727
14728 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
14729 branch in same basic block. Check both src and dest of the move insn.
14730
14731 2013-09-17 Nick Clifton <nickc@redhat.com>
14732
14733 * config/rl78/rl78-real.md (bf): New pattern.
14734 (bt): New pattern.
14735 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
14736 (rl78_print_operand): Do not put a # before a %B.
14737 * config/rl78/rl78.opt: Tweak doc strings.
14738
14739 2013-09-17 DJ Delorie <dj@redhat.com>
14740
14741 * config/rl78/constraints.md (Wcv): Allow up to $r31.
14742 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
14743 (rl78_option_override): Likewise, if -mallregs.
14744 (is_virtual_register): Likewise.
14745 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
14746 (REGNO_OK_FOR_BASE_P): Likewise.
14747 * config/rl78/rl78.opt (-mallregs): New.
14748
14749 2013-09-17 Nick Clifton <nickc@redhat.com>
14750
14751 * config/rl78/rl78.c (need_to_save): Change return type to bool.
14752 For interrupt functions: save all call clobbered registers if the
14753 interrupt handler is not a leaf function.
14754 (rl78_expand_prologue): Always recompute the frame information.
14755 For interrupt functions: only select bank 0 if one of the bank 0
14756 registers is going to be psuhed.
14757
14758 2013-09-17 DJ Delorie <dj@redhat.com>
14759
14760 * config/rl78/constraints.md: For each W* constraint, rename to C*
14761 and create a W* constraint that checks for an optional ES: prefix
14762 pattern also.
14763 * config/rl78/rl78.md (UNS_ES_ADDR): New.
14764 (es_addr): New. Used to wrap far addresses.
14765 * config/rl78/rl78-protos.h (rl78_es_addr): New.
14766 (rl78_es_base): New.
14767 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
14768 wrapped far addresses.
14769 (rl78_print_operand_1): Unwrap far addresses before processing.
14770 (rl78_lo16): Wrap far addresses in unspecs.
14771 (rl78_es_addr): New.
14772 (rl78_es_base): New.
14773 (insn_ok_now): Check for not-yet-wrapped far addresses.
14774 (transcode_memory_rtx): Properly re-wrap far addresses.
14775
14776 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
14777
14778 * config/sparc/t-rtems: Add leon3 multilibs.
14779
14780 2013-09-17 Cong Hou <congh@google.com>
14781
14782 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
14783 when checking the dot production pattern. The type of rhs operand
14784 of multiply is now checked correctly.
14785
14786 2013-09-17 Jeff Law <law@redhat.com>
14787
14788 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
14789 edge implied equivalences into successor phis.
14790 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
14791 here from tree-ssa-threadedge.c.
14792 (mark_threaded_blocks): When threading through a joiner, if both
14793 successors of the joiner's clone reach the same block, verify the
14794 PHI arguments are equal. If not, cancel the jump threading request.
14795 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
14796 tree-ssa-threadupdate.c
14797 (thread_across_edge): Don't check PHI argument equality when
14798 threading through joiner block here.
14799
14800 2013-09-17 Andrew MacLeod <amacleod@redhat.com>
14801
14802 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
14803 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
14804 (warn_uninit, warn_uninitialized_vars,
14805 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
14806 Move to tree-ssa-uninit.c.
14807 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
14808 (has_undefined_value_p): New. Pass dependant parts of
14809 ssa_undefined_value_p.
14810 (uninit_undefined_value_p): Use has_undefined_value_p.
14811 (warn_uninit, warn_uninitialized_vars,
14812 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
14813 Move from tree-ssa.c.
14814 * tree-ssa.h: Adjust prototypes.
14815
14816 2013-09-17 Jan Hubicka <jh@suse.cz>
14817
14818 PR middle-end/58332
14819 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
14820 * ipa-inline.c (can_inline_edge_p): Do not downgrade
14821 FUNCTION_NOT_OPTIMIZED.
14822 * ipa-inline-analysis.c (compute_inline_parameters): Function
14823 not optimized is not inlinable unless it is alwaysinline.
14824 (inline_analyze_function): Force calls in not optimized
14825 function not inlinable.
14826
14827 2013-09-17 Jan Hubicka <jh@suse.cz>
14828
14829 PR middle-end/58329
14830 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
14831 to return NULL.
14832 * ipa.c (function_and_variable_visibility): Likewise.
14833 * ipa-profile.c (ipa_profile): Likewise.
14834
14835 2013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
14836
14837 PR ipa/58398
14838 * cgraph.c (cgraph_function_body_availability): Check for ifunc
14839 attribute, and don't inline the resolver in this case.
14840
14841 2013-09-17 Teresa Johnson <tejohnson@google.com>
14842
14843 * coverage.c (get_coverage_counts): Add missing newline.
14844
14845 2013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14846
14847 PR tree-optimization/58088
14848 * fold-const.c (mask_with_trailing_zeros): New function.
14849 (fold_binary_loc): Make sure we don't recurse infinitely
14850 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
14851 Use mask_with_trailing_zeros where appropriate.
14852
14853 2013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
14854
14855 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
14856 of 'prev' var to get better distance estimation.
14857
14858 2013-09-17 Eric Botcazou <ebotcazou@adacore.com>
14859
14860 * tree-inline.h (struct copy_body_data): Add transform_parameter.
14861 * tree-inline.c (is_parameter_of): New predicate.
14862 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
14863 a parameter has been remapped.
14864 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
14865 (optimize_inline_calls): Initialize transform_parameter.
14866 (copy_gimple_seq_and_replace_locals): Likewise.
14867 (tree_function_versioning): Likewise.
14868 (maybe_inline_call_in_expr): Likewise.
14869
14870 2013-09-17 Nick Clifton <nickc@redhat.com>
14871
14872 * config/msp430/msp430-protos.h: Add prototypes for new functions.
14873 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
14874 interrupt handlers.
14875 (is_attr_func): New function.
14876 (msp430_is_interrupt_func): New function.
14877 (is_naked_func): New function.
14878 (is_reentrant_func): New function.
14879 (is_critical_func): New function.
14880 (msp430_start_function): Add annotations for function attributes.
14881 (msp430_attr): New function.
14882 (msp430_attribute_table): New.
14883 (msp430_function_section): New function.
14884 (TARGET_ASM_FUNCTION_SECTION): Define.
14885 (msp430_builtin): New enum.
14886 (msp430_init_builtins): New function.
14887 (msp430_builtin_devl): New function.
14888 (msp430_expand_builtin): New function.
14889 (TARGET_INIT_BUILTINS): Define.
14890 (TARGET_EXPAND_BUILTINS): Define.
14891 (TARGET_BUILTIN_DECL): Define.
14892 (msp430_expand_prologue): Add support for naked, interrupt,
14893 critical and reentrant functions.
14894 (msp430_expand_epilogue): Likewise.
14895 (msp430_print_operand): Handle 'O' character.
14896 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
14897 NO_TRAMPOLINES.
14898 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
14899 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
14900 (pushm): Use a 'n' rather than an 'i' constraint.
14901 (msp_return): Add generation of the interrupt return instruction.
14902 (disable_interrupts): New pattern.
14903 (enable_interrupts): New pattern.
14904 (push_intr_state): New pattern.
14905 (pop_intr_state): New pattern.
14906 (bic_SR): New pattern.
14907 (bis_SR): New pattern.
14908 * doc/extend.texi: Document MSP430 function attributes and builtin
14909 functions.
14910
14911 2013-09-17 Richard Biener <rguenther@suse.de>
14912
14913 PR tree-optimization/58432
14914 * tree-loop-distribution.c (tree_loop_distribution): Also
14915 scan PHIs for outside loop uses and seed a partition from them.
14916
14917 2013-09-17 Bin Cheng <bin.cheng@arm.com>
14918
14919 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
14920 (restructure_reference): Call backtrace_base_for_ref.
14921
14922 2013-09-17 Alan Modra <amodra@gmail.com>
14923
14924 PR target/57589
14925 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
14926 patch.
14927
14928 2013-09-16 DJ Delorie <dj@redhat.com>
14929
14930 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
14931 vregs location for RL78/G10.
14932 (rl78_expand_prologue): Avoid SEL on G10.
14933 (rl78_expand_epilogue): Likewise.
14934 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
14935 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
14936 __RL78_G10__ when appropriate.
14937 (ASM_SPEC): Pass -mg10 along to the assembler.
14938 * config/rl78/rl78.md (sel_rb): Disable for G10.
14939 * config/rl78/rl78.opt: Add -mg10 option.
14940 * config/rl78/t-rl78: Add -mg10 multilib.
14941
14942 2013-09-16 Xinliang David Li <davidxl@google.com>
14943
14944 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
14945 * omp-low.c (omp_max_vf): Ditto.
14946 (expand_omp_simd): Ditto.
14947 * tree-vectorizer.c (vectorize_loops): Ditto.
14948 (gate_vect_slp): Ditto.
14949 (gate_increase_alignment): Ditto.
14950 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
14951 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
14952 (gate_tree_vectorize): Name change.
14953 (tree_vectorize): Ditto.
14954 (pass_vectorize::gate): Call new function.
14955 (pass_vectorize::execute): Ditto.
14956 * opts.c: O3 default setting change.
14957 (finish_options): Check new flag.
14958 * doc/invoke.texi: Document new flags.
14959 * common.opt: New flags.
14960
14961 2013-09-16 Andreas Schwab <schwab@linux-m68k.org>
14962
14963 * doc/tm.texi.in (Cond Exec Macros): Remove node.
14964 (Condition Code): Don't reference it.
14965 * doc/tm.texi: Regenerate.
14966
14967 2013-09-16 Vladimir Makarov <vmakarov@redhat.com>
14968
14969 PR middle-end/58418
14970 * lra-constraints.c (undo_optional_reloads): Consider all optional
14971 reload even if it did not get a hard reg.
14972
14973 2013-09-16 Teresa Johnson <tejohnson@google.com>
14974
14975 * dumpfile.c (dump_loc): Remove newline emission.
14976 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
14977 emission to dump_printf_loc calls where missing.
14978 (vect_mark_for_runtime_alias_test): Ditto.
14979 (vect_analyze_data_ref_dependence): Ditto.
14980 (vect_analyze_data_ref_dependences): Ditto.
14981 (vect_slp_analyze_data_ref_dependence): Ditto.
14982 (vect_slp_analyze_data_ref_dependences): Ditto.
14983 (vect_compute_data_ref_alignment): Ditto.
14984 (vect_update_misalignment_for_peel): Ditto.
14985 (vect_verify_datarefs_alignment): Ditto.
14986 (vector_alignment_reachable_p): Ditto.
14987 (vect_get_data_access_cost): Ditto.
14988 (vect_enhance_data_refs_alignment): Ditto.
14989 (vect_find_same_alignment_drs): Ditto.
14990 (vect_analyze_data_refs_alignment): Ditto.
14991 (vect_analyze_group_access): Ditto.
14992 (vect_analyze_data_ref_access): Ditto.
14993 (vect_analyze_data_ref_accesses): Ditto.
14994 (vect_prune_runtime_alias_test_list): Ditto.
14995 (vect_analyze_data_refs): Ditto.
14996 (vect_create_addr_base_for_vector_ref): Ditto.
14997 (vect_create_data_ref_ptr): Ditto.
14998 (vect_grouped_store_supported): Ditto.
14999 (vect_grouped_load_supported): Ditto.
15000 * value-prof.c (check_counter): Ditto.
15001 (check_ic_target): Ditto.
15002 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
15003 (vect_recog_widen_mult_pattern): Ditto.
15004 (vect_recog_widen_sum_pattern): Ditto.
15005 (vect_recog_over_widening_pattern): Ditto.
15006 (vect_recog_widen_shift_pattern): Ditto.
15007 (vect_recog_rotate_pattern): Ditto.
15008 (vect_recog_vector_vector_shift_pattern): Ditto.
15009 (vect_recog_divmod_pattern): Ditto.
15010 (vect_recog_mixed_size_cond_pattern): Ditto.
15011 (vect_recog_bool_pattern): Ditto.
15012 (vect_pattern_recog_1): Ditto.
15013 (vect_pattern_recog): Ditto.
15014 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
15015 (vect_is_simple_iv_evolution): Ditto.
15016 (vect_analyze_scalar_cycles_1): Ditto.
15017 (vect_get_loop_niters): Ditto.
15018 (vect_analyze_loop_1): Ditto.
15019 (vect_analyze_loop_form): Ditto.
15020 (vect_analyze_loop_operations): Ditto.
15021 (vect_analyze_loop_2): Ditto.
15022 (vect_analyze_loop): Ditto.
15023 (report_vect_op): Ditto.
15024 (vect_is_slp_reduction): Ditto.
15025 (vect_is_simple_reduction_1): Ditto.
15026 (vect_get_known_peeling_cost): Ditto.
15027 (vect_estimate_min_profitable_iters): Ditto.
15028 (vect_model_reduction_cost): Ditto.
15029 (vect_model_induction_cost): Ditto.
15030 (get_initial_def_for_induction): Ditto.
15031 (vect_create_epilog_for_reduction): Ditto.
15032 (vectorizable_reduction): Ditto.
15033 (vectorizable_induction): Ditto.
15034 (vectorizable_live_operation): Ditto.
15035 (vect_loop_kill_debug_uses): Ditto.
15036 (vect_transform_loop): Ditto.
15037 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
15038 (vect_stmt_relevant_p): Ditto.
15039 (process_use): Ditto.
15040 (vect_mark_stmts_to_be_vectorized): Ditto.
15041 (vect_model_simple_cost): Ditto.
15042 (vect_model_promotion_demotion_cost): Ditto.
15043 (vect_model_store_cost): Ditto.
15044 (vect_get_store_cost): Ditto.
15045 (vect_model_load_cost): Ditto.
15046 (vect_get_load_cost): Ditto.
15047 (vect_init_vector_1): Ditto.
15048 (vect_get_vec_def_for_operand): Ditto.
15049 (vect_finish_stmt_generation): Ditto.
15050 (vectorizable_call): Ditto.
15051 (vectorizable_conversion): Ditto.
15052 (vectorizable_assignment): Ditto.
15053 (vectorizable_shift): Ditto.
15054 (vectorizable_operation): Ditto.
15055 (vectorizable_store): Ditto.
15056 (vectorizable_load): Ditto.
15057 (vectorizable_condition): Ditto.
15058 (vect_analyze_stmt): Ditto.
15059 (vect_transform_stmt): Ditto.
15060 (vect_is_simple_use): Ditto.
15061 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
15062 (vect_can_advance_ivs_p): Ditto.
15063 (vect_update_ivs_after_vectorizer): Ditto.
15064 (vect_do_peeling_for_loop_bound): Ditto.
15065 (vect_gen_niters_for_prolog_loop): Ditto.
15066 (vect_update_inits_of_drs): Ditto.
15067 (vect_create_cond_for_alias_checks): Ditto.
15068 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
15069 (vect_build_slp_tree_1): Ditto.
15070 (vect_supported_load_permutation_p): Ditto.
15071 (vect_analyze_slp_instance): Ditto.
15072 (vect_analyze_slp): Ditto.
15073 (vect_make_slp_decision): Ditto.
15074 (vect_detect_hybrid_slp): Ditto.
15075 (vect_bb_vectorization_profitable_p): Ditto.
15076 (vect_slp_analyze_bb_1): Ditto.
15077 (vect_update_slp_costs_according_to_vf): Ditto.
15078 (vect_get_mask_element): Ditto.
15079 (vect_transform_slp_perm_load): Ditto.
15080 (vect_schedule_slp_instance): Ditto.
15081 (vect_schedule_slp): Ditto.
15082 (vect_slp_transform_bb): Ditto.
15083 * profile.c (read_profile_edge_counts): Ditto.
15084 (compute_branch_probabilities): Ditto.
15085 * coverage.c (get_coverage_counts): Ditto.
15086
15087 2013-09-16 Diego Novillo <dnovillo@google.com>
15088
15089 * tree-core.h: Add missing comment lines from refactoring of tree.h.
15090
15091 2013-09-16 Jan Hubicka <jh@suse.cz>
15092
15093 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
15094 abstract functions; for static functions check the presence of body.
15095
15096 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
15097
15098 * config/aarch64/aarch64-simd-builtins.def (fma): New.
15099 * config/aarch64/aarch64-simd.md
15100 (aarch64_mla_elt<mode>): New.
15101 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
15102 (aarch64_mls_elt<mode>): Likewise.
15103 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
15104 (aarch64_fma4_elt<mode>): Likewise.
15105 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
15106 (aarch64_fma4_elt_to_128v2df): Likewise.
15107 (aarch64_fma4_elt_to_64df): Likewise.
15108 (fnma<mode>4): Likewise.
15109 (aarch64_fnma4_elt<mode>): Likewise.
15110 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
15111 (aarch64_fnma4_elt_to_128v2df): Likewise.
15112 (aarch64_fnma4_elt_to_64df): Likewise.
15113 * config/aarch64/iterators.md (VDQSF): New.
15114 * config/aarch64/arm_neon.h
15115 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
15116 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
15117
15118 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
15119
15120 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
15121 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
15122 (aarch64_mul3_elt_to_128df): Likewise.
15123 (aarch64_mul3_elt_to_64v2df): Likewise.
15124 * config/aarch64/iterators.md (VEL): Also handle DFmode.
15125 (VMUL): New.
15126 (VMUL_CHANGE_NLANES) Likewise.
15127 (h_con): Likewise.
15128 (f): Likewise.
15129 * config/aarch64/arm_neon.h
15130 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
15131
15132 2013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
15133
15134 * config/aarch64/arm_neon.h
15135 (vcvtx_high_f32_f64): Fix parameters.
15136
15137 2013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15138 Uros Bizjak <ubizjak@gmail.com>
15139
15140 * config/alpha.c: Include tree-ssanames.h.
15141
15142 2013-09-16 Richard Biener <rguenther@suse.de>
15143
15144 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
15145 (dot_rdg_1): Handle control_dd.
15146 (create_edge_for_control_dependence): New function.
15147 (create_rdg_edges): Add control dependences if asked for.
15148 (build_rdg): Likewise.
15149 (generate_loops_for_partition): If there are not necessary
15150 control stmts remove all their dependencies.
15151 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
15152 (distribute_loop): Pass on control dependences.
15153 (tree_loop_distribution): Compute control dependences and remove
15154 restriction on number of loop nodes.
15155
15156 2013-09-16 Jakub Jelinek <jakub@redhat.com>
15157
15158 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
15159 for internal calls.
15160
15161 2013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
15162
15163 * cse.c (try_const_anchors): Punt on CC modes.
15164
15165 2013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
15166
15167 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
15168
15169 2013-09-14 John David Anglin <danglin@gcc.gnu.org>
15170
15171 PR target/58382
15172 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
15173 calls to word_mode.
15174
15175 2013-09-14 Iain Sandoe <iain@codesourcery.com>
15176
15177 PR target/48094
15178 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
15179 seen.
15180 (darwin_objc1_section): Likewise.
15181 (darwin_file_end): Emit Image Info section when required.
15182
15183 2013-09-14 Jan Hubicka <jh@suse.cz>
15184
15185 * tree-into-ssa.c (gate_into_ssa): New.
15186 (pass_data_build_ssa): Use it.
15187 * cgraph.h (expand_thunk): Update prototype.
15188 * cgraphunit.c (analyze_function): Expand thunks early.
15189 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
15190 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
15191 set lowered flag; do not add new function.
15192 (assemble_thunks_and_aliases): Update.
15193 * tree-ssa.c (gate_init_datastructures): New gate.
15194 (pass_data_init_datastructures): Use it.
15195
15196 2013-09-14 Iain Sandoe <iain@codesourcery.com>
15197
15198 PR target/58269
15199 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
15200 xmm register set described in the psABI.
15201
15202 2013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
15203
15204 * dwarf2out.c (should_emit_struct_debug): Add check
15205 for type_decl variable is not NULL.
15206
15207 2013-09-13 Jacek Caban <jacek@codeweavers.com>
15208
15209 * config.gcc: Use new winnt-c.c target hooks
15210 * config/t-winnt: New file
15211 * config/winnt-c.c: New file
15212 * doc/tm.texi.in: Document new hook
15213 * doc/tm.texi: Regenerated
15214
15215 2013-09-13 Jan Hubicka <jh@suse.cz>
15216
15217 PR middle-end/58094
15218 * ipa-inline.c (check_callers): New function.
15219 (check_caller_edge): Remove.
15220 (want_inline_function_to_all_callers_p): Also permit alises that are
15221 called dirrectly.
15222 (inline_to_all_callers): Terminate the walk when devirtualization
15223 introduce new calls.
15224
15225 2013-09-13 Jan Hubicka <jh@suse.cz>
15226
15227 * ipa-inline-analysis.c (struct growth_data): Add node.
15228 (do_estimate_growth_1): Fix detection of recursion.
15229
15230 2013-09-13 Jakub Jelinek <jakub@redhat.com>
15231
15232 PR tree-optimization/58392
15233 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
15234 to avoid shadowing of outer loop variable. If
15235 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
15236 replace_by_duplicate_decl simduid of loops that have it set and
15237 set dest_cfun->has_simduid_loops and/or
15238 dest_cfun->has_force_vect_loops.
15239 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
15240 instead of maybe_lookup_decl.
15241 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
15242 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
15243 call. Copy over force_vect and copy and remap simduid. Set
15244 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
15245 (copy_cfg_body): Remove blocks_to_copy argument. Use
15246 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
15247 caller. Don't set cfun->has_simduid_loops and/or
15248 cfun->has_force_vect_loops here.
15249 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
15250 caller.
15251 (expand_call_inline, tree_function_versioning): Adjust copy_body
15252 callers.
15253
15254 2013-09-13 Martin Jambor <mjambor@suse.cz>
15255
15256 PR bootstrap/58388
15257 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
15258 the assert if the edge was a speculative one.
15259
15260 2013-09-13 Richard Biener <rguenther@suse.de>
15261
15262 * tree-data-ref.h (known_dependences_p): Move here ...
15263 * tree-loop-distribution.c (known_dependences_p): ... from here.
15264 (dump_rdg_component, debug_rdg_component): Remove.
15265 (dump_rdg): Adjust.
15266 (generate_loops_for_partition): Use gimple_uid instead of
15267 relying on matching stmt visit order.
15268 (rdg_build_partitions): Take starting stmt vector.
15269 (ldist_gen): Merge into ...
15270 (distribute_loop): ... this function. Do not compute starting
15271 vertices vector.
15272 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
15273
15274 2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15275
15276 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
15277 Set type attribute correctly. Set predicable_short_it attribute.
15278 (cmpsi_shiftsi): Remove %? from output template.
15279
15280 2013-09-13 Richard Biener <rguenther@suse.de>
15281
15282 * tree-loop-distribution.c (struct rdg_component,
15283 rdg_defs_used_in_other_loops_p, free_rdg_components,
15284 rdg_build_components): Remove.
15285 (stmts_from_loop): Do not record virtual PHIs.
15286 (generate_loops_for_partition): Skip virtual PHIs.
15287 (build_rdg_partition_for_component): Rename to ...
15288 (build_rdg_partition_for_vertex): ... this and adjust.
15289 (rdg_build_partitions): Take a vector of starting vertices
15290 instead of components. Remove unnecessary leftover handling.
15291 (ldist_gen): Do not build components or record other stores.
15292 (distribute_loop): Do not distribute loops containing stmts
15293 with side-effects.
15294
15295 2013-09-13 Christian Bruel <christian.bruel@st.com>
15296
15297 PR target/58314
15298 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
15299
15300 2013-09-13 Kai Tietz <ktietz@redhat.com>
15301
15302 * config.gcc: Separate cases for mingw and cygwin targets,
15303 and add 64-bit cygwin target case.
15304
15305 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
15306 dll-export inline-functions.
15307 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
15308
15309 2013-09-13 Jeff Law <law@redhat.com>
15310
15311 PR middle-end/58387
15312 Revert:
15313 2013-09-06 Jeff Law <law@redhat.com>
15314
15315 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
15316 edge implied equivalences into successor phis.
15317
15318 2013-09-12 DJ Delorie <dj@redhat.com>
15319
15320 * config/rl78/rl78-virt.md: Change from | to \; for asm line
15321 separators.
15322
15323 2013-09-12 Brooks Moses <bmoses@google.com>
15324
15325 PR driver/42955
15326 * Makefile.in: Do not install driver binaries in $(target)/bin.
15327
15328 2013-09-12 DJ Delorie <dj@redhat.com>
15329
15330 * config/rl78/rl78.opt (mrelax): New.
15331 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
15332 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
15333
15334 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
15335 between SP and FP.
15336 (rl78_expand_epilogue): Likewise.
15337
15338 2013-09-12 Vladimir Makarov <vmakarov@redhat.com>
15339
15340 PR middle-end/58335
15341 * lra-eliminations.c (remove_reg_equal_offset_note): New.
15342 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
15343 pointer elimination with using remove_reg_equal_offset_note.
15344
15345 2013-09-12 DJ Delorie <dj@redhat.com>
15346
15347 * config/msp430/: New port.
15348 * config.gcc (msp430): Added.
15349 * doc/invoke.texi: Document MSP430 options.
15350 * doc/install.texi: Document msp430-elf
15351 * doc/md.texi: Document msp430-elf
15352 * doc/contrib.texi: Document msp430-elf
15353
15354 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
15355 PSImode.
15356
15357 2013-09-12 Martin Jambor <mjambor@suse.cz>
15358
15359 PR ipa/58389
15360 * ipa-prop.c (remove_described_reference): Give up if the edge in the
15361 reference descriptor is NULL.
15362 (ipa_edge_removal_hook): If owning a reference descriptor, set its
15363 edge to NULL.
15364
15365 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
15366
15367 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
15368 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
15369 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
15370 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
15371 make_temp_ssa_name): move to tree-ssanames.h
15372 * tree-ssa-alias.h: Move prototype.
15373 * tree-ssa.h: Include tree-ssanames.h.
15374 * tree-ssanames.c (FREE_SSANAMES): Move to here.
15375 * tree-ssanames.h: New. Move items from tree-flow*.h
15376 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
15377
15378 2013-09-12 Richard Biener <rguenther@suse.de>
15379
15380 PR tree-optimization/58404
15381 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
15382 propagate non-invariant addresses into dereferences wrapped
15383 in component references.
15384
15385 2013-09-12 Richard Biener <rguenther@suse.de>
15386
15387 PR tree-optimization/58402
15388 * passes.def: Move pass_late_warn_uninitialized later.
15389
15390 2013-09-12 Andrew MacLeod <amacleod@redhat.com>
15391
15392 * tree-ssa.h: New. Move content from tree-flow.h and
15393 tree-flow-inline.h.
15394 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
15395 Move prototypes belonging to tree-ssa.c.
15396 * tree-flow-inline.h (redirect_edge_var_map_def,
15397 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
15398 tree-ssa.h.
15399 * gimple.h: Adjust prototypes.
15400 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
15401 to...
15402 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
15403 * tree.h: Move prototype to tree-ssa.h.
15404 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
15405 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
15406 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
15407 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
15408 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
15409 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
15410 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
15411 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
15412 graphite-blocking.c, graphite-clast-to-gimple.c,
15413 graphite-dependences.c, graphite-interchange.c,
15414 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
15415 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
15416 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
15417 ipa-reference.c, ipa-split.c, ipa-utils.c,
15418 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
15419 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
15420 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
15421 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
15422 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
15423 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
15424 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
15425 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
15426 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
15427 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
15428 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
15429 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
15430 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
15431 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
15432 value-prof.c, var-tracking.c,
15433 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
15434
15435 2013-09-12 Richard Biener <rguenther@suse.de>
15436
15437 PR tree-optimization/58396
15438 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
15439 (build_rdg): Take a loop-nest parameter, fix memleaks.
15440 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
15441
15442 2013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
15443
15444 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
15445 for SLM.
15446
15447 2013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
15448
15449 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
15450 The FMA instruction names should have a 'v' prefix.
15451
15452 2013-09-12 Richard Biener <rguenther@suse.de>
15453
15454 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
15455 (dot_rdg): Use popen instead of system in optional code.
15456 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
15457 (already_processed_vertex_p): Adjust.
15458 (has_anti_or_output_dependence, predecessor_has_mem_write,
15459 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
15460 rdg_flag_uses): Remove.
15461 (rdg_flag_vertex): Simplify.
15462 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
15463 remove recursion.
15464 (build_rdg_partition_for_component): Process the first vertex
15465 of a component only.
15466 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
15467
15468 2013-09-12 Alan Modra <amodra@gmail.com>
15469
15470 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
15471
15472 2013-09-11 DJ Delorie <dj@redhat.com>
15473 Nick Clifton <nickc@redhat.com>
15474
15475 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
15476 (rl78_stack_based_mem): New.
15477 * config/rl78/constraints.md (Iv08): New.
15478 (Iv16): New.
15479 (Iv24): New.
15480 (Is09): New.
15481 (Is17): New.
15482 (Is25): New.
15483 (ISsi): New.
15484 (IShi): New.
15485 (ISqi): New.
15486 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
15487 (movhi): Likewise.
15488 (movsi): Change from expand to insn-and-split.
15489 (ashrsi3): Clobber AX.
15490 (lshrsi3): New.
15491 (ashlsi3): New.
15492 (cbranchsi4): New.
15493 * config/rl78/rl78.md (CC_REG): Fix.
15494 (addsi3): Allow memory and immediate operands.
15495 (addsi3_internal): Split into...
15496 (addsi3_internal_virt): ...new, and ...
15497 (addsi3_internal_real): ...new.
15498 (subsi): New.
15499 (subsi3_internal_virt): New.
15500 (subsi3_internal_real): New.
15501 (mulsi3): Add memory operand.
15502 (mulsi3_rl78): Likewise.
15503 (mulsi3_g13): Likewise.
15504 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
15505 (cbranchqi4_real): Add more constraint options.
15506 (cbranchhi4_real): Expand pattern.
15507 (cbranchhi4_real_signed): New.
15508 (cbranchhi4_real_inverted): New.
15509 (cbranchsi4_real_lt): New.
15510 (cbranchsi4_real_ge): New.
15511 (cbranchsi4_real_signed): New.
15512 (cbranchsi4_real): New.
15513 (peephole2): New.
15514 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
15515 constant shifts.
15516 (lshrsi3_virt): Likewise.
15517 (ashlsi3_virt): Likewise.
15518 (cbranchqi4_virt_signed): New.
15519 (cbranchhi4_virt_signed): New.
15520 (cbranchsi4_virt): New.
15521 * config/rl78/rl78.c: Whitespace fixes throughout.
15522 (move_elim_pass): New.
15523 (pass_data_rl78_move_elim): New.
15524 (pass_rl78_move_elim): New.
15525 (make_pass_rl78_move_elim): New.
15526 (rl78_devirt_info): Run devirt earlier.
15527 (rl78_move_elim_info): New.
15528 (rl78_asm_file_start): Register it.
15529 (rl78_split_movsi): New.
15530 (rl78_as_legitimate_address): Allow virtual base registers when
15531 appropriate.
15532 (rl78_addr_space_convert): Remove spurious debug stuff.
15533 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
15534 (rl78_print_operand): More cases for not printing '#'.
15535 (rl78_expand_compare): Remove most of the logic.
15536 (content_memory): New.
15537 (clear_content_memory): New.
15538 (get_content_index): New.
15539 (get_content_name): New.
15540 (display_content_memory): New.
15541 (update_content): New.
15542 (record_content): New.
15543 (already_contains): New.
15544 (insn_ok_now): Re-recog insns with virtual registers.
15545 (add_postponed_content_update): New.
15546 (process_postponed_content_update): New.
15547 (gen_and_emit_move): New.
15548 (transcode_memory_rtx): Record new location content.
15549 Use gen_and_emit_move.
15550 (force_into_acc): New.
15551 (move_to_acc): Use gen_and_emit_move.
15552 (move_from_acc): Likewise.
15553 (move_acc_to_reg): Likewise.
15554 (move_to_x): Likewise.
15555 (move_to_hl): Likewise.
15556 (move_to_de): Likewise.
15557 (rl78_alloc_physical_registers_op1): Record location content.
15558 (has_constraint): New.
15559 (rl78_alloc_physical_registers_op2): Record location content.
15560 Optimize use of HL.
15561 (rl78_alloc_physical_registers_ro1): Likewise.
15562 (rl78_alloc_physical_registers_cmp): Likewise.
15563 (rl78_alloc_physical_registers_umul): Likewise.
15564 (rl78_alloc_address_registers_macax): New.
15565 (rl78_alloc_physical_registers): Initialize and set location
15566 content memory as needed.
15567 (rl78_reorg): Make sure split2 is called.
15568 (rl78_rtx_costs): New.
15569
15570 2013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
15571
15572 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
15573 for (not (neg ...)) and (neg (not ...)) cases.
15574
15575 2013-09-11 Richard Biener <rguenther@suse.de>
15576
15577 PR middle-end/58377
15578 * passes.def: Split critical edges before late uninit warning passes.
15579 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
15580
15581 2013-09-11 Jakub Jelinek <jakub@redhat.com>
15582
15583 PR tree-optimization/58385
15584 * fold-const.c (build_range_check): If both low and high are NULL,
15585 use omit_one_operand_loc to preserve exp side-effects.
15586
15587 2013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15588
15589 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
15590
15591 2013-09-11 Richard Biener <rguenther@suse.de>
15592
15593 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
15594 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
15595 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
15596 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
15597 stmts_from_loop, known_dependences_p, build_empty_rdg,
15598 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
15599 * tree-loop-distribution.c: ... here.
15600 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
15601 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
15602 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
15603 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
15604 * tree-loop-distribution.c: ... here.
15605 * tree-loop-distribution.c: Include gimple-pretty-print.h.
15606 (struct partition_s): Add loops member.
15607 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
15608 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
15609 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
15610
15611 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
15612 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15613 Sergey Lega <sergey.s.lega@intel.com>
15614 Anna Tikhonova <anna.tikhonova@intel.com>
15615 Ilya Tocar <ilya.tocar@intel.com>
15616 Andrey Turetskiy <andrey.turetskiy@intel.com>
15617 Ilya Verbin <ilya.verbin@intel.com>
15618 Kirill Yukhin <kirill.yukhin@intel.com>
15619 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15620
15621 * config/i386/constraints.md (k): New.
15622 (Yk): Ditto.
15623 * config/i386/i386.c (const regclass_map): Add new mask registers.
15624 (dbx_register_map): Ditto.
15625 (dbx64_register_map): Ditto.
15626 (svr4_dbx_register_map): Ditto.
15627 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
15628 disabled.
15629 (ix86_preferred_reload_class): Disable constants for mask registers.
15630 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
15631 (ix86_hard_regno_mode_ok): Support new mask registers.
15632 (x86_order_regs_for_local_alloc): Ditto.
15633 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
15634 (FIXED_REGISTERS): Add new mask registers.
15635 (CALL_USED_REGISTERS): Ditto.
15636 (REG_ALLOC_ORDER): Ditto.
15637 (VALID_MASK_REG_MODE): New.
15638 (FIRST_MASK_REG): Ditto.
15639 (LAST_MASK_REG): Ditto.
15640 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
15641 (MAYBE_MASK_CLASS_P): New.
15642 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
15643 (REG_CLASS_CONTENTS): Ditto.
15644 (MASK_REGNO_P): New.
15645 (ANY_MASK_REG_P): Ditto.
15646 (HI_REGISTER_NAMES): Add new mask registers.
15647 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
15648 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
15649 mask registers.
15650 (attribute "type"): Add mskmov, msklog.
15651 (attribute "length_immediate"): Support them.
15652 (attribute "memory"): Ditto.
15653 (attribute "prefix_0f"): Ditto.
15654 (*movhi_internal): Support new mask registers.
15655 (*movqi_internal): Ditto.
15656 (define_split): Split out clobber pattern is a logic
15657 insn on mask registers.
15658 (*k<logic><mode>): New.
15659 (*andhi_1): Extend to support mask regs.
15660 (*andqi_1): Extend to support mask regs.
15661 (kandn<mode>): New.
15662 (define_split): Split and-not to and and not if operands
15663 are not mask regs.
15664 (*<code><mode>_1): Separate HI mode to new pattern...
15665 (*<code>hi_1): This.
15666 (*<code>qi_1): Extend to support mask regs.
15667 (kxnor<mode>): New.
15668 (kortestzhi): Ditto.
15669 (kortestchi): Ditto.
15670 (kunpckhi): Ditto.
15671 (*one_cmpl<mode>2_1): Remove HImode and handle it...
15672 (*one_cmplhi2_1): ...Here, now with mask registers support.
15673 (*one_cmplqi2_1): Support new mask registers.
15674 (HI/QImode arithmetics splitter): Don't split if mask registers
15675 are used.
15676 (HI/QImode not splitter): Ditto.
15677 * config/i386/predicated.md (mask_reg_operand): New.
15678 (general_reg_operand): Ditto.
15679
15680 2013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
15681
15682 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
15683 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
15684
15685 2013-09-10 Jeff Law <law@redhat.com>
15686
15687 PR tree-optimization/58380
15688 * tree-ssa-threadupdate.c (thread_block): Recognize another case
15689 of threading through a buried loop header.
15690
15691 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
15692 return value for single successor case.
15693
15694 2013-09-10 Jan Hubicka <jh@suse.cz>
15695
15696 * ipa-devirt.c (ipa_devirt): Enable with LTO.
15697
15698 2013-09-10 Richard Earnshaw <rearnsha@arm.com>
15699
15700 PR target/58361
15701 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
15702 support conditional execution.
15703 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
15704
15705 2013-09-10 Vladimir Makarov <vmakarov@redhat.com>
15706
15707 * lra.c (lra): Clear lra_optional_reload_pseudos before every
15708 constraint pass.
15709 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
15710 Check destination too to check move insn.
15711 (undo_optional_reloads): Add check that the original peudo did not
15712 changed its allocation and the optional reload was inherited on last
15713 inheritance pass. Break loop after deciding to keep optional reload.
15714 (lra_undo_inheritance): Add check that inherited pseudo still in
15715 memory.
15716
15717 2013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
15718
15719 * config/aarch64/aarch64.md (generic_sched): New.
15720 * config/aarch64/aarch64-generic.md (load): Make conditional
15721 on generic_sched attribute.
15722 (nonload): Likewise.
15723
15724 2013-09-10 Jan Hubicka <jh@suse.cz>
15725
15726 * lto-cgraph.c: Include ipa-utils.h.
15727 (compute_ltrans_boundary): Also add possible targets into the boundary.
15728
15729 2013-09-10 Jan Hubicka <jh@suse.cz>
15730
15731 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
15732 VAR_DECL of vtable rather than full expression.
15733
15734 2013-09-10 Jan Hubicka <jh@suse.cz>
15735 Paolo Carlini <paolo.carlini@oracle.com>
15736
15737 * cgraphunit.c (analyze_functions): Save input_location, set it
15738 to UNKNOWN_LOCATION and restore it at the end.
15739
15740 2013-09-10 Martin Jambor <mjambor@suse.cz>
15741
15742 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
15743 represented by a thunk.
15744
15745 2013-09-10 Jeff Law <law@redhat.com>
15746
15747 PR tree-optimization/58343
15748 * tree-ssa-threadupdate.c (thread_block): Identify and disable
15749 jump threading requests through loop headers buried in the middle
15750 of a jump threading path.
15751
15752 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
15753 in return value/type.
15754
15755 2013-09-10 Jakub Jelinek <jakub@redhat.com>
15756
15757 PR rtl-optimization/58365
15758 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
15759 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
15760 it differs.
15761
15762 2013-09-10 Richard Biener <rguenther@suse.de>
15763
15764 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
15765 * tree-data-ref.c (create_rdg_vertices): Collect all data
15766 references, signal failure to the caller, use data-ref API.
15767 (build_rdg): Compute data references only once. Maintain lifetime
15768 of data references and data dependences from within RDG.
15769 (free_rdg): Free dependence relations.
15770 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
15771 inventing extra dependences.
15772 (distribute_loop): Update for RDG API changes.
15773
15774 2013-09-10 Kai Tietz <ktietz@redhat.com>
15775
15776 * doc/invoke.texi (fms-extensions): Document changed
15777 behavior for ms-abi targets.
15778 * config/i386/i386.c (ix86_option_override_internal):
15779 Set default value of option -fms-extension for ms-abi targets.
15780
15781 2013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
15782
15783 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
15784
15785 2013-09-10 Alan Modra <amodra@gmail.com>
15786
15787 PR target/58330
15788 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
15789
15790 2013-09-10 Alan Modra <amodra@gmail.com>
15791
15792 * config/rs6000/predicates.md (add_cint_operand): New.
15793 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
15794 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
15795 using add_cint_operand.
15796 (largetoc_high_plus_aix): Likewise.
15797
15798 2013-09-09 Jakub Jelinek <jakub@redhat.com>
15799
15800 PR tree-optimization/58364
15801 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
15802 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
15803 the current range can't be an unconditional true or false.
15804
15805 2013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
15806
15807 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
15808
15809 2013-09-09 Uros Bizjak <ubizjak@gmail.com>
15810
15811 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
15812
15813 2013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
15814
15815 PR c++/43452
15816 * doc/invoke.texi (-Wdelete-incomplete): Document it.
15817
15818 2013-09-09 Ian Bolton <ian.bolton@arm.com>
15819
15820 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
15821 NO_REGS for immediate that can't be moved directly into FP_REGS.
15822
15823 2013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15824
15825 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
15826 comparison with negated operand.
15827 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
15828 RTL form.
15829
15830 2013-09-09 Richard Biener <rguenther@suse.de>
15831
15832 PR middle-end/58326
15833 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
15834 of a subloop record all its block as affecting loop-closed SSA form.
15835
15836 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
15837
15838 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
15839 of an rtx/bitpos pair.
15840 (store_fixed_bit_field): Update accordingly.
15841
15842 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
15843
15844 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
15845 GEN_INT.
15846 * builtins.c (expand_errno_check): Likewise.
15847 * dwarf2cfi.c (init_return_column_size): Likewise.
15848 * except.c (sjlj_mark_call_sites): Likewise.
15849 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
15850 * lra-constraints.c (emit_inc): Likewise.
15851 * ree.c (combine_set_extension): Likewise.
15852 * regmove.c (fixup_match_2): Likewise.
15853 * reload1.c (inc_for_reload): Likewise.
15854
15855 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
15856
15857 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
15858 (force_to_mode, simplify_shift_const_1, simplify_comparison):
15859 Use gen_int_mode with the mode of the associated simplify_* call.
15860 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
15861 * expmed.c (expand_shift_1): Likewise.
15862 * function.c (instantiate_virtual_regs_in_insn): Likewise.
15863 * loop-iv.c (iv_number_of_iterations): Likewise.
15864 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
15865 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
15866
15867 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
15868
15869 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
15870 of the associated expand_* call.
15871 (asan_emit_stack_protection): Likewise.
15872 * builtins.c (round_trampoline_addr): Likewise.
15873 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
15874 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
15875 (emit_store_flag): Likewise.
15876 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
15877 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
15878 Likewise.
15879 * function.c (instantiate_virtual_regs_in_insn): Likewise.
15880 * ifcvt.c (noce_try_store_flag_constants): Likewise.
15881 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
15882 * modulo-sched.c (generate_prolog_epilog): Likewise.
15883 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
15884 (expand_ctz, expand_ffs, expand_unop): Likewise.
15885
15886 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
15887
15888 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
15889 of the associated gen_rtx_* call.
15890 * caller-save.c (init_caller_save): Likewise.
15891 * combine.c (find_split_point, make_extraction): Likewise.
15892 (make_compound_operation): Likewise.
15893 * dwarf2out.c (mem_loc_descriptor): Likewise.
15894 * explow.c (plus_constant, probe_stack_range): Likewise.
15895 * expmed.c (expand_mult_const): Likewise.
15896 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
15897 * reload1.c (init_reload): Likewise.
15898 * valtrack.c (cleanup_auto_inc_dec): Likewise.
15899 * var-tracking.c (adjust_mems): Likewise.
15900 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
15901 rather than gen_rtx_fmt_ee.
15902
15903 2013-09-09 Jan Hubicka <jh@suse.cz>
15904
15905 PR middle-end/58294
15906 * value-prof.c (gimple_ic): Copy also abnormal edges.
15907
15908 2013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
15909
15910 * asan.c (asan_shadow_cst): Use gen_int_mode.
15911
15912 2013-09-08 Jan Hubicka <jh@suse.cz>
15913
15914 * ipa-profile.c: Add toplevel comment.
15915 (ipa_propagate_frequency_1): Be more conservative when profile is read.
15916 (contains_hot_call_p): New function.
15917 (ipa_propagate_frequency): Set frequencies based on counts when
15918 profile is read.
15919 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
15920 profile; do not tamper with profile after inlining if it is read.
15921
15922 2013-09-08 Jan Hubicka <jh@suse.cz>
15923
15924 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
15925 speculative edges.
15926
15927 2013-09-08 Jan Hubicka <jh@suse.cz>
15928
15929 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
15930 summary generation.
15931
15932 2013-09-08 Jeff Law <law@redhat.com>
15933
15934 PR bootstrap/58340
15935 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
15936 of 'found'.
15937
15938 2013-09-08 Andi Kleen <ak@linux.intel.com>
15939
15940 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
15941
15942 2013-09-08 Jan Hubicka <jh@suse.cz>
15943
15944 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
15945
15946 2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
15947
15948 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
15949 for non-debug insns.
15950 * lra.c (new_insn_reg): Take the containing insn as a parameter.
15951 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
15952 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
15953 accordingly.
15954
15955 2013-09-08 Jan Hubicka <jh@suse.cz>
15956
15957 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
15958 targets and devirtualize to BUILT_IN_UNREACHABLE.
15959 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
15960 * ipa.c (walk_polymorphic_call_targets): New function.
15961 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
15962 functions; use the new timevar.
15963 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
15964 was removed from the program.
15965 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
15966 not consider it in the walk when its vtable is dead.
15967 (possible_polymorphic_call_targets_1): Pass anonymous flag to
15968 record_binfo.
15969 (devirt_variable_node_removal_hook): New function.
15970 (possible_polymorphic_call_targets): Also register
15971 devirt_variable_node_removal_hook.
15972 (ipa_devirt): Do not do non-speculative devirtualization.
15973 (gate_ipa_devirt): One execute if devirtualizing speculatively.
15974
15975 2013-09-08 Jan Hubicka <jh@suse.cz>
15976
15977 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
15978 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
15979 varpool_remove_variable_insertion_hook): Declare.
15980 * varpool.c (varpool_node_hook_list): New structure.
15981 (first_varpool_node_removal_hook,
15982 first_varpool_variable_insertion_hook): New variables.
15983 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
15984 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
15985 varpool_remove_variable_insertion_hook,
15986 varpool_call_variable_insertion_hooks): New functions.
15987 (varpool_remove_node): Use it.
15988
15989 2013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
15990
15991 PR c++/54941
15992 * diagnostic.c (diagnostic_build_prefix): When s.file is
15993 "<built-in>" don't output line and column numbers.
15994
15995 2013-09-06 Jan Hubicka <jh@suse.cz>
15996
15997 * cgraphunit.c (expand_thunk): Get body before touching arguments.
15998 * lto-streamer-out.c: Stream thunks, too.
15999 * lto-streamer-in.c (input_function): Pop cfun here
16000 (lto_read_body): Instead of here.
16001
16002 2013-09-06 Caroline Tice <cmtice@google.com>
16003
16004 * doc/install.texi: Add documentation for the --enable-vtable-verify
16005 and the --disable-libvtv configure options.
16006
16007 2013-09-06 Jeff Law <law@redhat.com>
16008
16009 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
16010 edge implied equivalences into successor phis.
16011
16012 2013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
16013
16014 * resource.c (mark_referenced_resources): Handle COND_EXEC.
16015
16016 2013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
16017
16018 * resource.c (mark_target_live_regs): Compute resources taking
16019 into account if a call is predicated or not.
16020
16021 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
16022
16023 * toplev.c (output_stack_usage): Be prepared for suffixes created by
16024 the compiler in the function names.
16025
16026 2013-09-06 Jan Hubicka <jh@suse.cz>
16027
16028 PR middle-end/58094
16029 * ipa-inline.c (has_caller_p): New function.
16030 (want_inline_function_to_all_callers_p): Use it.
16031 (sum_callers, inline_to_all_callers): Break out from ...
16032 (ipa_inline): ... here.
16033
16034 2013-09-06 Jan Hubicka <jh@suse.cz>
16035
16036 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
16037 only when AVX is enabled.
16038
16039 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16040
16041 * config/aarch64/aarch64.md
16042 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
16043 is fpsimd_<load/store>2.
16044 (load_pair<mode>): Likewise.
16045 (store_pair<mode>): Likewise.
16046
16047 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16048
16049 * config/arm/types.md (type): Add "mrs" type.
16050 * config/aarch64/aarch64.md
16051 (aarch64_load_tp_hard): Make type "mrs".
16052 * config/arm/arm.md
16053 (load_tp_hard): Make type "mrs".
16054 * config/arm/cortex-a15.md: Update with new attributes.
16055 * config/arm/cortex-a5.md: Update with new attributes.
16056 * config/arm/cortex-a53.md: Update with new attributes.
16057 * config/arm/cortex-a7.md: Update with new attributes.
16058 * config/arm/cortex-a8.md: Update with new attributes.
16059 * config/arm/cortex-a9.md: Update with new attributes.
16060 * config/arm/cortex-m4.md: Update with new attributes.
16061 * config/arm/cortex-r4.md: Update with new attributes.
16062 * config/arm/fa526.md: Update with new attributes.
16063 * config/arm/fa606te.md: Update with new attributes.
16064 * config/arm/fa626te.md: Update with new attributes.
16065 * config/arm/fa726te.md: Update with new attributes.
16066
16067 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16068
16069 * config/aarch64/aarch64.md
16070 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
16071 (*movtf_aarch64): Likewise.
16072 * config/arm/arm.md
16073 (thumb1_movdi_insn): Use "multiple" for type where more than one
16074 instruction is used for a move.
16075 (*arm32_movhf): Likewise.
16076 (*thumb_movdf_insn): Likewise.
16077
16078 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16079
16080 * config/arm/types.md (type): Rename fcpys to fmov.
16081 * config/arm/vfp.md
16082 (*arm_movsi_vfp): Rename type fcpys as fmov.
16083 (*thumb2_movsi_vfp): Likewise
16084 (*movhf_vfp_neon): Likewise
16085 (*movhf_vfp): Likewise
16086 (*movsf_vfp): Likewise
16087 (*thumb2_movsf_vfp): Likewise
16088 (*movsfcc_vfp): Likewise
16089 (*thumb2_movsfcc_vfp): Likewise
16090 * config/aarch64/aarch64-simd.md
16091 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
16092 * config/aarch64/aarch64.md
16093 (*movsi_aarch64): Replace type mov_reg with fmovs.
16094 (*movdi_aarch64): Likewise
16095 (*movsf_aarch64): Likewise
16096 (*movdf_aarch64): Likewise
16097 * config/arm/arm.c
16098 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
16099 * config/arm/iwmmxt.md
16100 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
16101 * config/arm/arm1020e.md: Update with new attributes.
16102 * config/arm/cortex-a15-neon.md: Update with new attributes.
16103 * config/arm/cortex-a5.md: Update with new attributes.
16104 * config/arm/cortex-a53.md: Update with new attributes.
16105 * config/arm/cortex-a7.md: Update with new attributes.
16106 * config/arm/cortex-a8-neon.md: Update with new attributes.
16107 * config/arm/cortex-a9.md: Update with new attributes.
16108 * config/arm/cortex-m4-fpu.md: Update with new attributes.
16109 * config/arm/cortex-r4f.md: Update with new attributes.
16110 * config/arm/marvell-pj4.md: Update with new attributes.
16111 * config/arm/vfp11.md: Update with new attributes.
16112
16113 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16114
16115 * config/aarch64/aarch64.md
16116 (*madd<mode>): Fix type attribute.
16117 (*maddsi_uxtw): Likewise.
16118 (*msub<mode>): Likewise.
16119 (*msubsi_uxtw): Likewise.
16120 (<su_optab>maddsidi4): Likewise.
16121 (<su_optab>msubsidi4): Likewise.
16122
16123 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16124
16125 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
16126 * config/arm/arm.md (core_cycles): Remove fdiv.
16127 * config/arm/vfp.md:
16128 (*sqrtsf2_vfp): Update for attribute changes.
16129 (*sqrtdf2_vfp): Likewise.
16130 * config/aarch64/aarch64.md:
16131 (sqrt<mode>2): Update for attribute changes.
16132 * config/arm/arm1020e.md: Update with new attributes.
16133 * config/arm/cortex-a15-neon.md: Update with new attributes.
16134 * config/arm/cortex-a5.md: Update with new attributes.
16135 * config/arm/cortex-a53.md: Update with new attributes.
16136 * config/arm/cortex-a7.md: Update with new attributes.
16137 * config/arm/cortex-a8-neon.md: Update with new attributes.
16138 * config/arm/cortex-a9.md: Update with new attributes.
16139 * config/arm/cortex-m4-fpu.md: Update with new attributes.
16140 * config/arm/cortex-r4f.md: Update with new attributes.
16141 * config/arm/marvell-pj4.md: Update with new attributes.
16142 * config/arm/vfp11.md: Update with new attributes.
16143
16144 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16145
16146 * config/arm/types.md
16147 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
16148 * config/aarch64/aarch64.md
16149 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
16150 new attributes.
16151 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
16152 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
16153 (float<GPI:mode><GPF:mode>2): Likewise.
16154 * config/arm/vfp.md
16155 (*truncsisf2_vfp): Update with new attributes.
16156 (*truncsidf2_vfp): Likewise.
16157 (fixuns_truncsfsi2): Likewise.
16158 (fixuns_truncdfsi2): Likewise.
16159 (*floatsisf2_vfp): Likewise.
16160 (*floatsidf2_vfp): Likewise.
16161 (floatunssisf2): Likewise.
16162 (floatunssidf2): Likewise.
16163 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
16164 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
16165 * config/arm/arm1020e.md: Update with new attributes.
16166 * config/arm/cortex-a15-neon.md: Update with new attributes.
16167 * config/arm/cortex-a5.md: Update with new attributes.
16168 * config/arm/cortex-a53.md: Update with new attributes.
16169 * config/arm/cortex-a7.md: Update with new attributes.
16170 * config/arm/cortex-a8-neon.md: Update with new attributes.
16171 * config/arm/cortex-a9.md: Update with new attributes.
16172 * config/arm/cortex-m4-fpu.md: Update with new attributes.
16173 * config/arm/cortex-r4f.md: Update with new attributes.
16174 * config/arm/marvell-pj4.md: Update with new attributes.
16175 * config/arm/vfp11.md: Update with new attributes.
16176
16177 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16178
16179 * config/aarch64/arm_neon.h
16180 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
16181 (vqtbx<1,2,3,4><q>_s8): Likewise.
16182
16183 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16184
16185 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
16186 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
16187 (add<mode>3): Add type attribute.
16188 (add<mode>3): Likewise.
16189 (usadd<mode>3): Likewise.
16190 (ssadd<mode>3): Likewise.
16191 (sub<mode>3): Likewise.
16192 (sub<mode>3): Likewise.
16193 (ussub<mode>3): Likewise.
16194 (sssub<mode>3): Likewise.
16195 (ssmulsa3): Likewise.
16196 (usmulusa3): Likewise.
16197 (arm_usatsihi): Likewise.
16198 * config/arm/vfp.md
16199 (*movdi_vfp): Add types for all instructions.
16200 (*movdi_vfp_cortexa8): Likewise.
16201 (*movhf_vfp_neon): Likewise.
16202 (*movhf_vfp): Likewise.
16203 (*movdf_vfp): Likewise.
16204 (*thumb2_movdf_vfp): Likewise.
16205 (*thumb2_movdfcc_vfp): Likewise.
16206 * config/arm/arm.md: Add type attribute to all insn patterns.
16207 (*thumb1_adddi3): Add type attribute.
16208 (*arm_adddi3): Likewise.
16209 (*adddi_sesidi_di): Likewise.
16210 (*adddi_zesidi_di): Likewise.
16211 (*thumb1_addsi3): Likewise.
16212 (addsi3_compare0): Likewise.
16213 (*addsi3_compare0_scratch): Likewise.
16214 (*compare_negsi_si): Likewise.
16215 (cmpsi2_addneg): Likewise.
16216 (*addsi3_carryin_<optab>): Likewise.
16217 (*addsi3_carryin_alt2_<optab>): Likewise.
16218 (*addsi3_carryin_clobercc_<optab>): Likewise.
16219 (*subsi3_carryin): Likewise.
16220 (*subsi3_carryin_const): Likewise.
16221 (*subsi3_carryin_compare): Likewise.
16222 (*subsi3_carryin_compare_const): Likewise.
16223 (*arm_subdi3): Likewise.
16224 (*thumb_subdi3): Likewise.
16225 (*subdi_di_zesidi): Likewise.
16226 (*subdi_di_sesidi): Likewise.
16227 (*subdi_zesidi_di): Likewise.
16228 (*subdi_sesidi_di): Likewise.
16229 (*subdi_zesidi_ze): Likewise.
16230 (thumb1_subsi3_insn): Likewise.
16231 (*arm_subsi3_insn): Likewise.
16232 (*anddi3_insn): Likewise.
16233 (*anddi_zesidi_di): Likewise.
16234 (*anddi_sesdi_di): Likewise.
16235 (*ne_zeroextracts): Likewise.
16236 (*ne_zeroextracts): Likewise.
16237 (*ite_ne_zeroextr): Likewise.
16238 (*ite_ne_zeroextr): Likewise.
16239 (*anddi_notdi_di): Likewise.
16240 (*anddi_notzesidi): Likewise.
16241 (*anddi_notsesidi): Likewise.
16242 (andsi_notsi_si): Likewise.
16243 (thumb1_bicsi3): Likewise.
16244 (*iordi3_insn): Likewise.
16245 (*iordi_zesidi_di): Likewise.
16246 (*iordi_sesidi_di): Likewise.
16247 (*thumb1_iorsi3_insn): Likewise.
16248 (*xordi3_insn): Likewise.
16249 (*xordi_zesidi_di): Likewise.
16250 (*xordi_sesidi_di): Likewise.
16251 (*arm_xorsi3): Likewise.
16252 (*andsi_iorsi3_no): Likewise.
16253 (*smax_0): Likewise.
16254 (*smax_m1): Likewise.
16255 (*arm_smax_insn): Likewise.
16256 (*smin_0): Likewise.
16257 (*arm_smin_insn): Likewise.
16258 (*arm_umaxsi3): Likewise.
16259 (*arm_uminsi3): Likewise.
16260 (*minmax_arithsi): Likewise.
16261 (*minmax_arithsi_): Likewise.
16262 (*satsi_<SAT:code>): Likewise.
16263 (arm_ashldi3_1bit): Likewise.
16264 (arm_ashrdi3_1bit): Likewise.
16265 (arm_lshrdi3_1bit): Likewise.
16266 (*arm_negdi2): Likewise.
16267 (*thumb1_negdi2): Likewise.
16268 (*arm_negsi2): Likewise.
16269 (*thumb1_negsi2): Likewise.
16270 (*negdi_extendsid): Likewise.
16271 (*negdi_zero_extend): Likewise.
16272 (*arm_abssi2): Likewise.
16273 (*thumb1_abssi2): Likewise.
16274 (*arm_neg_abssi2): Likewise.
16275 (*thumb1_neg_abss): Likewise.
16276 (one_cmpldi2): Likewise.
16277 (extend<mode>di2): Likewise.
16278 (*compareqi_eq0): Likewise.
16279 (*arm_extendhisi2addsi): Likewise.
16280 (*arm_movdi): Likewise.
16281 (*thumb1_movdi_insn): Likewise.
16282 (*arm_movt): Likewise.
16283 (*thumb1_movsi_insn): Likewise.
16284 (pic_add_dot_plus_four): Likewise.
16285 (pic_add_dot_plus_eight): Likewise.
16286 (tls_load_dot_plus_eight): Likewise.
16287 (*thumb1_movhi_insn): Likewise.
16288 (*thumb1_movsf_insn): Likewise.
16289 (*movdf_soft_insn): Likewise.
16290 (*thumb_movdf_insn): Likewise.
16291 (cbranchsi4_insn): Likewise.
16292 (cbranchsi4_scratch): Likewise.
16293 (*negated_cbranchsi4): Likewise.
16294 (*tbit_cbranch): Likewise.
16295 (*tlobits_cbranch): Likewise.
16296 (*tstsi3_cbranch): Likewise.
16297 (*cbranchne_decr1): Likewise.
16298 (*addsi3_cbranch): Likewise.
16299 (*addsi3_cbranch_scratch): Likewise.
16300 (*arm_cmpdi_insn): Likewise.
16301 (*arm_cmpdi_unsig): Likewise.
16302 (*arm_cmpdi_zero): Likewise.
16303 (*thumb_cmpdi_zero): Likewise.
16304 (*deleted_compare): Likewise.
16305 (*mov_scc): Likewise.
16306 (*mov_negscc): Likewise.
16307 (*mov_notscc): Likewise.
16308 (*cstoresi_eq0_thumb1_insn): Likewise.
16309 (cstoresi_nltu_thumb1): Likewise.
16310 (cstoresi_ltu_thu): Likewise.
16311 (thumb1_addsi3_addgeu): Likewise.
16312 (*arm_jump): Likewise.
16313 (*thumb_jump): Likewise.
16314 (*check_arch2): Likewise.
16315 (arm_casesi_internal): Likewise.
16316 (thumb1_casesi_dispatch): Likewise.
16317 (*arm_indirect_jump): Likewise.
16318 (*thumb1_indirect_jump): Likewise.
16319 (nop): Likewise.
16320 (*and_scc): Likewise.
16321 (*ior_scc): Likewise.
16322 (*compare_scc): Likewise.
16323 (*cond_move): Likewise.
16324 (*cond_arith): Likewise.
16325 (*cond_sub): Likewise.
16326 (*cmp_ite0): Likewise.
16327 (*cmp_ite1): Likewise.
16328 (*cmp_and): Likewise.
16329 (*cmp_ior): Likewise.
16330 (*ior_scc_scc): Likewise.
16331 (*ior_scc_scc_cmp): Likewise.
16332 (*and_scc_scc): Likewise.
16333 (*and_scc_scc_cmp): Likewise.
16334 (*and_scc_scc_nod): Likewise.
16335 (*negscc): Likewise.
16336 (movcond_addsi): Likewise.
16337 (movcond): Likewise.
16338 (*ifcompare_plus_move): Likewise.
16339 (*if_plus_move): Likewise.
16340 (*ifcompare_move_plus): Likewise.
16341 (*if_move_plus): Likewise.
16342 (*ifcompare_arith_arith): Likewise.
16343 (*if_arith_arith): Likewise.
16344 (*ifcompare_arith_move): Likewise.
16345 (*if_arith_move): Likewise.
16346 (*ifcompare_move_arith): Likewise.
16347 (*if_move_arith): Likewise.
16348 (*ifcompare_move_not): Likewise.
16349 (*if_move_not): Likewise.
16350 (*ifcompare_not_move): Likewise.
16351 (*if_not_move): Likewise.
16352 (*ifcompare_shift_move): Likewise.
16353 (*if_shift_move): Likewise.
16354 (*ifcompare_move_shift): Likewise.
16355 (*if_move_shift): Likewise.
16356 (*ifcompare_shift_shift): Likewise.
16357 (*ifcompare_not_arith): Likewise.
16358 (*ifcompare_arith_not): Likewise.
16359 (*if_arith_not): Likewise.
16360 (*ifcompare_neg_move): Likewise.
16361 (*if_neg_move): Likewise.
16362 (*ifcompare_move_neg): Likewise.
16363 (*if_move_neg): Likewise.
16364 (prologue_thumb1_interwork): Likewise.
16365 (*cond_move_not): Likewise.
16366 (*sign_extract_onebit): Likewise.
16367 (*not_signextract_onebit): Likewise.
16368 (stack_tie): Likewise.
16369 (align_4): Likewise.
16370 (align_8): Likewise.
16371 (consttable_end): Likewise.
16372 (consttable_1): Likewise.
16373 (consttable_2): Likewise.
16374 (consttable_4): Likewise.
16375 (consttable_8): Likewise.
16376 (consttable_16): Likewise.
16377 (*thumb1_tablejump): Likewise.
16378 (prefetch): Likewise.
16379 (force_register_use): Likewise.
16380 (thumb_eh_return): Likewise.
16381 (load_tp_hard): Likewise.
16382 (load_tp_soft): Likewise.
16383 (tlscall): Likewise.
16384 (*arm_movtas_ze): Likewise.
16385 (*arm_rev): Likewise.
16386 (*arm_revsh): Likewise.
16387 (*arm_rev16): Likewise.
16388 * config/arm/thumb2.md
16389 (*thumb2_smaxsi3): Likewise.
16390 (*thumb2_sminsi3): Likewise.
16391 (*thumb32_umaxsi3): Likewise.
16392 (*thumb2_uminsi3): Likewise.
16393 (*thumb2_negdi2): Likewise.
16394 (*thumb2_abssi2): Likewise.
16395 (*thumb2_neg_abss): Likewise.
16396 (*thumb2_movsi_insn): Likewise.
16397 (tls_load_dot_plus_four): Likewise.
16398 (*thumb2_movhi_insn): Likewise.
16399 (*thumb2_mov_scc): Likewise.
16400 (*thumb2_mov_negs): Likewise.
16401 (*thumb2_mov_negs): Likewise.
16402 (*thumb2_mov_nots): Likewise.
16403 (*thumb2_mov_nots): Likewise.
16404 (*thumb2_movsicc_): Likewise.
16405 (*thumb2_movsfcc_soft_insn): Likewise.
16406 (*thumb2_indirect_jump): Likewise.
16407 (*thumb2_and_scc): Likewise.
16408 (*thumb2_ior_scc): Likewise.
16409 (*thumb2_ior_scc_strict_it): Likewise.
16410 (*thumb2_cond_move): Likewise.
16411 (*thumb2_cond_arith): Likewise.
16412 (*thumb2_cond_ari): Likewise.
16413 (*thumb2_cond_sub): Likewise.
16414 (*thumb2_negscc): Likewise.
16415 (*thumb2_movcond): Likewise.
16416 (thumb2_casesi_internal): Likewise.
16417 (thumb2_casesi_internal_pic): Likewise.
16418 (*thumb2_alusi3_short): Likewise.
16419 (*thumb2_mov<mode>_shortim): Likewise.
16420 (*thumb2_addsi_short): Likewise.
16421 (*thumb2_subsi_short): Likewise.
16422 (thumb2_addsi3_compare0): Likewise.
16423 (*thumb2_cbz): Likewise.
16424 (*thumb2_cbnz): Likewise.
16425 (*thumb2_one_cmplsi2_short): Likewise.
16426 (*thumb2_negsi2_short): Likewise.
16427 (*orsi_notsi_si): Likewise.
16428 * config/arm/arm1020e.md: Update with new attributes.
16429 * config/arm/arm1026ejs.md: Update with new attributes.
16430 * config/arm/arm1136jfs.md: Update with new attributes.
16431 * config/arm/arm926ejs.md: Update with new attributes.
16432 * config/arm/cortex-a15.md: Update with new attributes.
16433 * config/arm/cortex-a5.md: Update with new attributes.
16434 * config/arm/cortex-a53.md: Update with new attributes.
16435 * config/arm/cortex-a7.md: Update with new attributes.
16436 * config/arm/cortex-a8.md: Update with new attributes.
16437 * config/arm/cortex-a9.md: Update with new attributes.
16438 * config/arm/cortex-m4.md: Update with new attributes.
16439 * config/arm/cortex-r4.md: Update with new attributes.
16440 * config/arm/fa526.md: Update with new attributes.
16441 * config/arm/fa606te.md: Update with new attributes.
16442 * config/arm/fa626te.md: Update with new attributes.
16443 * config/arm/fa726te.md: Update with new attributes.
16444
16445 2013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
16446
16447 * config/aarch64/aarch64-simd.md
16448 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
16449 <vwx> iterator to ensure correct register choice.
16450 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
16451 (aarch64_sqdmull_n<mode>): Likewise.
16452 (aarch64_sqdmull2_n<mode>_internal): Likewise.
16453 * config/aarch64/arm_neon.h
16454 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
16455 (vml<as><q>_n_<su>16): Likewise.
16456 (vml<as>l_high_lane<q>_<su>16): Likewise.
16457 (vml<as>l_high_n_<su>16): Likewise.
16458 (vml<as>l_lane<q>_<su>16): Likewise.
16459 (vml<as>l_n_<su>16): Likewise.
16460 (vmul<q>_lane<q>_<su>16): Likewise.
16461 (vmul<q>_n_<su>16): Likewise.
16462 (vmull_lane<q>_<su>16): Likewise.
16463 (vmull_n_<su>16): Likewise.
16464 (vmull_high_lane<q>_<su>16): Likewise.
16465 (vmull_high_n_<su>16): Likewise.
16466 (vqrdmulh<q>_n_s16): Likewise.
16467
16468 2013-09-06 Tejas Belagod <tejas.belagod@arm.com>
16469
16470 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
16471 have the correct lane parameter.
16472
16473 2013-09-06 Richard Biener <rguenther@suse.de>
16474
16475 * cfganal.c (control_dependences::~control_dependences):
16476 Properly free all of the vector.
16477
16478 2013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
16479
16480 PR target/58269
16481 * config/i386/i386.c (ix86_conditional_register_usage):
16482 Proper initialize extended SSE registers.
16483
16484 2013-09-06 Jan Hubicka <jh@suse.cz>
16485
16486 PR tree-optimization/58311
16487 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
16488
16489 2013-09-06 Jan Hubicka <jh@suse.cz>
16490
16491 * Makefile.in (tree-sra.o): Update dependencies.
16492 * tree-sra.c: Include ipa-utils.h
16493 (scan_function): Use recursive_call_p.
16494 (has_caller_p): New function.
16495 (cgraph_for_node_and_aliases): Count also callers of aliases.
16496
16497 2013-09-06 Jan Hubicka <jh@suse.cz>
16498
16499 PR middle-end/58094
16500 * cgraph.h (symtab_semantically_equivalent_p): Declare.
16501 * tree-tailcall.c: Include ipa-utils.h.
16502 (find_tail_calls): Use it.
16503 * ipa-pure-const.c (check_call): Likewise.
16504 * ipa-utils.c (recursive_call_p): New function.
16505 * ipa-utils.h (recursive_call_p): Dclare.
16506 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
16507 (symtab_semantically_equivalent_p): New function.
16508 * Makefile.in (tree-tailcall.o): Update dependencies.
16509
16510 2013-09-06 Eric Botcazou <ebotcazou@adacore.com>
16511
16512 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
16513 non-inlinable part.
16514
16515 2013-09-06 Richard Biener <rguenther@suse.de>
16516
16517 * lto-streamer.h (lto_global_var_decls): Remove.
16518 * Makefile.in (OBJS): Remove lto-symtab.o.
16519 (lto-symtab.o): Remove.
16520 (GTFILES): Remove lto-symtab.c
16521 * lto-symtab.c: Move to lto/
16522
16523 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16524
16525 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
16526 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
16527 (UNSPEC_FPINT_RINT): New constant definitions.
16528 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
16529 definition with 2 attributes.
16530 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
16531 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
16532 definitions.
16533
16534 2013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16535
16536 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
16537 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
16538 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
16539 attribute to "z196_alone".
16540 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
16541 "zEC12_simple".
16542
16543 2013-09-06 Richard Biener <rguenther@suse.de>
16544
16545 * basic-block.h (class control_dependences): New.
16546 * tree-ssa-dce.c (control_dependence_map): Remove.
16547 (cd): New global.
16548 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
16549 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
16550 find_pdom, find_control_dependence, find_all_control_dependences):
16551 Move to cfganal.c.
16552 (mark_control_dependent_edges_necessary,
16553 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
16554 tree_dce_done, perform_tree_ssa_dce): Adjust.
16555 * cfganal.c (set_control_dependence_map_bit,
16556 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
16557 find_all_control_dependences): Move from tree-ssa-dce.c and
16558 implement as methods of control_dependences class.
16559 (control_dependences::control_dependences): New.
16560 (control_dependences::~control_dependences): Likewise.
16561 (control_dependences::get_edges_dependent_on): Likewise.
16562 (control_dependences::get_edge): Likewise.
16563
16564 2013-09-04 Jan Hubicka <jh@suse.cz>
16565
16566 * tree.c (types_same_for_odr): Drop overactive check.
16567 * ipa-devirt.c (hash_type_name): Likewise.
16568
16569 2013-09-04 Jan Hubicka <jh@suse.cz>
16570
16571 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
16572 (analyze_functions): ... here.
16573
16574 2013-09-04 Jan Hubicka <jh@suse.cz>
16575
16576 PR middle-end/58201
16577 * cgraphunit.c (analyze_functions): Clear AUX fields
16578 after processing; initialize assembler name has.
16579
16580 2013-09-05 Jeff Law <law@redhat.com>
16581
16582 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
16583 from thread_around_empty_block. Record threading path into PATH.
16584 Recurse if threading through the initial block is successful.
16585 (thread_across_edge): Corresponding changes to slightly simplify.
16586
16587 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
16588
16589 * config/aarch64/aarch64.md
16590 (type): Remove frecpe, frecps, frecpx.
16591 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
16592 fix to be a TARGET_SIMD instruction.
16593 (aarch64_frecps): Remove.
16594 * config/aarch64/aarch64-simd.md
16595 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
16596 (aarch64_frecps<mode>): Handle all float/vector of float modes.
16597
16598 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
16599 Sofiane Naci <sofiane.naci@arm.com>
16600
16601 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
16602 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
16603 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
16604 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
16605 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
16606 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
16607 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
16608 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
16609 into "clz, "rbit". Rename "shift" to "shift_imm".
16610 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
16611 changes. Update for attribute changes all occurrences of arlo_* and
16612 shift* types.
16613 * config/arm/arm-fixed.md: Update for attribute changes
16614 all occurrences of arlo_* types.
16615 * config/arm/thumb2.md: Update for attribute changes all occurrences
16616 of arlo_* types.
16617 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
16618 (cortexa7_older_only): Likewise.
16619 (cortexa7_younger): Likewise.
16620 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
16621 (1020alu_shift_op): Likewise.
16622 (1020alu_shift_reg_op): Likewise.
16623 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
16624 (alu_shift_op): Likewise.
16625 (alu_shift_reg_op): Likewise.
16626 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
16627 (11_alu_shift_op): Likewise.
16628 (11_alu_shift_reg_op): Likewise.
16629 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
16630 (9_alu_shift_reg_op): Likewise.
16631 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
16632 attribute changes.
16633 (cortex_a15_alu_shift): Likewise.
16634 (cortex_a15_alu_shift_reg): Likewise.
16635 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
16636 attribute changes.
16637 (cortex_a5_alu_shift): Likewise.
16638 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
16639 attribute changes.
16640 (cortex_a53_alu_shift): Likewise.
16641 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
16642 attribute changes.
16643 (cortex_a7_alu_reg): Likewise.
16644 (cortex_a7_alu_shift): Likewise.
16645 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
16646 attribute changes.
16647 (cortex_a8_alu_shift): Likewise.
16648 (cortex_a8_alu_shift_reg): Likewise.
16649 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
16650 (cortex_a9_dp_shift): Likewise.
16651 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
16652 attribute changes.
16653 * config/arm/cortex-r4.md
16654 (cortex_r4_alu): Update for attribute changes.
16655 (cortex_r4_mov): Likewise.
16656 (cortex_r4_alu_shift_reg): Likewise.
16657 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
16658 (526_alu_shift_op): Likewise.
16659 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
16660 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
16661 (626te_alu_shift_op): Likewise.
16662 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
16663 (726te_alu_shift_op): Likewise.
16664 (726te_alu_shift_reg_op): Likewise.
16665 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
16666 (mp626_alu_shift_op): Likewise.
16667 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
16668 (pj4_alu_conds): Likewise.
16669 (pj4_shift): Likewise.
16670 (pj4_shift_conds): Likewise.
16671 (pj4_alu_shift): Likewise.
16672 (pj4_alu_shift_conds): Likewise.
16673 * config/aarch64/aarch64.md: Update for attribute change
16674 all occurrences of arlo_* and shift* types.
16675
16676 2013-09-05 Mike Stump <mikestump@comcast.net>
16677
16678 * tree.h: Move documentation for tree_function_decl to tree-core.h
16679 with the declaration.
16680
16681 2013-09-05 Peter Bergner <bergner@vnet.ibm.com>
16682
16683 PR target/58139
16684 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
16685 looking for widest mode.
16686
16687 2013-09-05 Eric Botcazou <ebotcazou@adacore.com>
16688
16689 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
16690
16691 2013-09-05 Richard Biener <rguenther@suse.de>
16692
16693 PR tree-optimization/58137
16694 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
16695 Do not create vectors of pointers.
16696 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
16697 types for the components of the vector initializer.
16698 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
16699 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
16700
16701 2013-09-05 Martin Jambor <mjambor@suse.cz>
16702
16703 * ipa-prop.c (remove_described_reference): Accept missing references,
16704 return false if that hppens, otherwise return true.
16705 (cgraph_node_for_jfunc): New function.
16706 (try_decrement_rdesc_refcount): Likewise.
16707 (try_make_edge_direct_simple_call): Use them.
16708 (ipa_edge_removal_hook): Remove references from rdescs.
16709 (ipa_edge_duplication_hook): Clone rdescs and their references
16710 when the new edge has the same caller as the old one.
16711 * cgraph.c (cgraph_resolve_speculation): Remove speculative
16712 reference before removing any edges.
16713
16714 2013-09-05 Richard Earnshaw <rearnsha@arm.com>
16715
16716 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
16717 initial store.
16718 * thumb2.md (thumb2_storewb_parisi): New pattern.
16719
16720 2013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
16721
16722 * config/aarch64/aarch64-option-extensions.def: Add
16723 AARCH64_OPT_EXTENSION of 'crc'.
16724 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
16725 (AARCH64_ISA_CRC): Ditto.
16726 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
16727 description of the CRC extension.
16728
16729 2013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
16730
16731 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
16732 * config/rs6000/linux.h: Ditto.
16733 * alpha/linux.h: Ditto.
16734 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
16735 no_c99_libc_has_function.
16736 * config/c6x/uclinux-elf.h: Ditto.
16737 * config/lm32/uclinux-elf.h: Ditto.
16738 * config/m68k/uclinux.h: Ditto.
16739 * config/moxie/uclinux.h: Ditto.
16740 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
16741 (crisv32-*-linux*, cris-*-linux*): Ditto.
16742 * config/bfin/bfin.c: Include "tm_p.h".
16743
16744 2013-09-05 Richard Biener <rguenther@suse.de>
16745
16746 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
16747 check for a definition without a basic-block.
16748
16749 2013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
16750 Sofiane Naci <sofiane.naci@arm.com>
16751
16752 * config/aarch64/aarch64.md
16753 (*movti_aarch64): Rename r_2_f and f_2_r.
16754 (*movsf_aarch64): Likewise.
16755 (*movdf_aarch64): Likewise.
16756 (*movtf_aarch64): Likewise.
16757 (aarch64_movdi_<mode>low): Likewise.
16758 (aarch64_movdi_<mode>high): Likewise.
16759 (aarch64_mov<mode>high_di): Likewise.
16760 (aarch64_mov<mode>low_di): Likewise.
16761 (aarch64_movtilow_tilow): Likewise.
16762 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
16763 values to config/arm/types.md
16764 (attribute "conds"): Update for attribute change.
16765 (anddi3_insn): Likewise.
16766 (iordi3_insn): Likewise.
16767 (xordi3_insn): Likewise.
16768 (one_cmpldi2): Likewise.
16769 * config/arm/types.md (type): Add Neon types.
16770 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
16771 use "type" attribute.
16772 (movmisalign<mode>_neon_store): Likewise.
16773 (movmisalign<mode>_neon_load): Likewise.
16774 (vec_set<mode>_internal): Likewise.
16775 (vec_setv2di_internal): Likewise.
16776 (vec_extract<mode>): Likewise.
16777 (vec_extractv2di): Likewise.
16778 (add<mode>3_neon): Likewise.
16779 (adddi3_neon): Likewise.
16780 (sub<mode>3_neon): Likewise.
16781 (subdi3_neon): Likewise.
16782 (mul<mode>3_neon): Likewise.
16783 (mul<mode>3add<mode>_neon): Likewise.
16784 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
16785 (fma<VCVTF:mode>4)): Likewise.
16786 (fma<VCVTF:mode>4_intrinsic): Likewise.
16787 (fmsub<VCVTF:mode>4)): Likewise.
16788 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
16789 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
16790 (ior<mode>3): Likewise.
16791 (and<mode>3): Likewise.
16792 (anddi3_neon): Likewise.
16793 (orn<mode>3_neon): Likewise.
16794 (orndi3_neon): Likewise.
16795 (bic<mode>3_neon): Likewise.
16796 (bicdi3_neon): Likewise.
16797 (xor<mode>3): Likewise.
16798 (one_cmpl<mode>2): Likewise.
16799 (abs<mode>2): Likewise.
16800 (neg<mode>2): Likewise.
16801 (umin<mode>3_neon): Likewise.
16802 (umax<mode>3_neon): Likewise.
16803 (smin<mode>3_neon): Likewise.
16804 (smax<mode>3_neon): Likewise.
16805 (vashl<mode>3): Likewise.
16806 (vashr<mode>3_imm): Likewise.
16807 (vlshr<mode>3_imm): Likewise.
16808 (ashl<mode>3_signed): Likewise.
16809 (ashl<mode>3_unsigned): Likewise.
16810 (neon_load_count): Likewise.
16811 (ashldi3_neon_noclobber): Likewise.
16812 (signed_shift_di3_neon): Likewise.
16813 (unsigned_shift_di3_neon): Likewise.
16814 (ashrdi3_neon_imm_noclobber): Likewise.
16815 (lshrdi3_neon_imm_noclobber): Likewise.
16816 (widen_ssum<mode>3): Likewise.
16817 (widen_usum<mode>3): Likewise.
16818 (quad_halves_<code>v4si): Likewise.
16819 (quad_halves_<code>v4sf): Likewise.
16820 (quad_halves_<code>v8hi): Likewise.
16821 (quad_halves_<code>v16qi): Likewise.
16822 (reduc_splus_v2di): Likewise.
16823 (neon_vpadd_internal<mode>): Likewise.
16824 (neon_vpsmin<mode>): Likewise.
16825 (neon_vpsmax<mode>): Likewise.
16826 (neon_vpumin<mode>): Likewise.
16827 (neon_vpumax<mode>): Likewise.
16828 (ss_add<mode>_neon): Likewise.
16829 (us_add<mode>_neon): Likewise.
16830 (ss_sub<mode>_neon): Likewise.
16831 (us_sub<mode>_neon): Likewise.
16832 (neon_vadd<mode>_unspec): Likewise.
16833 (neon_vaddl<mode>): Likewise.
16834 (neon_vaddw<mode>): Likewise.
16835 (neon_vhadd<mode>): Likewise.
16836 (neon_vqadd<mode>): Likewise.
16837 (neon_vaddhn<mode>): Likewise.
16838 (neon_vmul<mode>): Likewise.
16839 (neon_vmla<mode>): Likewise.
16840 (neon_vmlal<mode>): Likewise.
16841 (neon_vmls<mode>): Likewise.
16842 (neon_vmlsl<mode>): Likewise.
16843 (neon_vqdmulh<mode>): Likewise.
16844 (neon_vqdmlal<mode>): Likewise.
16845 (neon_vqdmlsl<mode>): Likewise.
16846 (neon_vmull<mode>): Likewise.
16847 (neon_vqdmull<mode>): Likewise.
16848 (neon_vsub<mode>_unspec): Likewise.
16849 (neon_vsubl<mode>): Likewise.
16850 (neon_vsubw<mode>): Likewise.
16851 (neon_vqsub<mode>): Likewise.
16852 (neon_vhsub<mode>): Likewise.
16853 (neon_vsubhn<mode>): Likewise.
16854 (neon_vceq<mode>): Likewise.
16855 (neon_vcge<mode>): Likewise.
16856 (neon_vcgeu<mode>): Likewise.
16857 (neon_vcgt<mode>): Likewise.
16858 (neon_vcgtu<mode>): Likewise.
16859 (neon_vcle<mode>): Likewise.
16860 (neon_vclt<mode>): Likewise.
16861 (neon_vcage<mode>): Likewise.
16862 (neon_vcagt<mode>): Likewise.
16863 (neon_vtst<mode>): Likewise.
16864 (neon_vabd<mode>): Likewise.
16865 (neon_vabdl<mode>): Likewise.
16866 (neon_vaba<mode>): Likewise.
16867 (neon_vabal<mode>): Likewise.
16868 (neon_vmax<mode>): Likewise.
16869 (neon_vmin<mode>): Likewise.
16870 (neon_vpaddl<mode>): Likewise.
16871 (neon_vpadal<mode>): Likewise.
16872 (neon_vpmax<mode>): Likewise.
16873 (neon_vpmin<mode>): Likewise.
16874 (neon_vrecps<mode>): Likewise.
16875 (neon_vrsqrts<mode>): Likewise.
16876 (neon_vqabs<mode>): Likewise.
16877 (neon_vqneg<mode>): Likewise.
16878 (neon_vcls<mode>): Likewise.
16879 (clz<mode>2): Likewise.
16880 (popcount<mode>2): Likewise.
16881 (neon_vrecpe): Likewise.
16882 (neon_vrsqrte): Likewise.
16883 (neon_vget_lane<mode>_sext_internal): Likewise.
16884 (neon_vget_lane<mode>_zext_internal): Likewise.
16885 (neon_vdup_n<mode>): Likewise.
16886 (neon_vdup_nv2di): Likewise.
16887 (neon_vdpu_lane<mode>_internal): Likewise.
16888 (neon_vswp<mode>): Likewise.
16889 (float<mode><V_cvtto>2): Likewise.
16890 (floatuns<mode><V_cvtto>2): Likewise.
16891 (fix_trunc<mode><V_cvtto>)2): Likewise
16892 (fixuns_trunc<mode><V_cvtto)2): Likewise.
16893 (neon_vcvt<mode>): Likewise.
16894 (neon_vcvtv4sfv4hf): Likewise.
16895 (neon_vcvtv4hfv4sf): Likewise.
16896 (neon_vcvt_n<mode>): Likewise.
16897 (neon_vmovn<mode>): Likewise.
16898 (neon_vqmovn<mode>): Likewise.
16899 (neon_vqmovun<mode>): Likewise.
16900 (neon_vmovl<mode>): Likewise.
16901 (neon_vmul_lane<mode>): Likewise.
16902 (neon_vmull_lane<mode>): Likewise.
16903 (neon_vqdmull_lane<mode>): Likewise.
16904 (neon_vqdmulh_lane<mode>): Likewise.
16905 (neon_vmla_lane<mode>): Likewise.
16906 (neon_vmlal_lane<mode>): Likewise.
16907 (neon_vqdmlal_lane<mode>): Likewise.
16908 (neon_vmls_lane<mode>): Likewise.
16909 (neon_vmlsl_lane<mode>): Likewise.
16910 (neon_vqdmlsl_lane<mode>): Likewise.
16911 (neon_vext<mode>): Likewise.
16912 (neon_vrev64<mode>): Likewise.
16913 (neon_vrev32<mode>): Likewise.
16914 (neon_vrev16<mode>): Likewise.
16915 (neon_vbsl<mode>_internal): Likewise.
16916 (neon_vshl<mode>): Likewise.
16917 (neon_vqshl<mode>): Likewise.
16918 (neon_vshr_n<mode>): Likewise.
16919 (neon_vshrn_n<mode>): Likewise.
16920 (neon_vqshrn_n<mode>): Likewise.
16921 (neon_vqshrun_n<mode>): Likewise.
16922 (neon_vshl_n<mode>): Likewise.
16923 (neon_vqshl_n<mode>): Likewise.
16924 (neon_vqshlu_n<mode>): Likewise.
16925 (neon_vshll_n<mode>): Likewise.
16926 (neon_vsra_n<mode>): Likewise.
16927 (neon_vsri_n<mode>): Likewise.
16928 (neon_vsli_n<mode>): Likewise.
16929 (neon_vtbl1v8qi): Likewise.
16930 (neon_vtbl2v8qi): Likewise.
16931 (neon_vtbl3v8qi): Likewise.
16932 (neon_vtbl4v8qi): Likewise.
16933 (neon_vtbx1v8qi): Likewise.
16934 (neon_vtbx2v8qi): Likewise.
16935 (neon_vtbx3v8qi): Likewise.
16936 (neon_vtbx4v8qi): Likewise.
16937 (neon_vtrn<mode>_internal): Likewise.
16938 (neon_vzip<mode>_internal): Likewise.
16939 (neon_vuzp<mode>_internal): Likewise.
16940 (neon_vld1<mode>): Likewise.
16941 (neon_vld1_lane<mode>): Likewise.
16942 (neon_vld1_dup<mode>): Likewise.
16943 (neon_vld1_dupv2di): Likewise.
16944 (neon_vst1<mode>): Likewise.
16945 (neon_vst1_lane<mode>): Likewise.
16946 (neon_vld2<mode>): Likewise.
16947 (neon_vld2_lane<mode>): Likewise.
16948 (neon_vld2_dup<mode>): Likewise.
16949 (neon_vst2<mode>): Likewise.
16950 (neon_vst2_lane<mode>): Likewise.
16951 (neon_vld3<mode>): Likewise.
16952 (neon_vld3qa<mode>): Likewise.
16953 (neon_vld3qb<mode>): Likewise.
16954 (neon_vld3_lane<mode>): Likewise.
16955 (neon_vld3_dup<mode>): Likewise.
16956 (neon_vst3<mode>): Likewise.
16957 (neon_vst3qa<mode>): Likewise.
16958 (neon_vst3qb<mode>): Likewise.
16959 (neon_vst3_lane<mode>): Likewise.
16960 (neon_vld4<mode>): Likewise.
16961 (neon_vld4qa<mode>): Likewise.
16962 (neon_vld4qb<mode>): Likewise.
16963 (neon_vld4_lane<mode>): Likewise.
16964 (neon_vld4_dup<mode>): Likewise.
16965 (neon_vst4<mode>): Likewise.
16966 (neon_vst4qa<mode>): Likewise.
16967 (neon_vst4qb<mode>): Likewise.
16968 (neon_vst4_lane<mode>): Likewise.
16969 (neon_vec_unpack<US>_lo_<mode>): Likewise.
16970 (neon_vec_unpack<US>_hi_<mode>): Likewise.
16971 (neon_vec_<US>mult_lo_<mode>): Likewise.
16972 (neon_vec_<US>mult_hi_<mode>): Likewise.
16973 (neon_vec_<US>shiftl_<mode>): Likewise.
16974 (neon_unpack<US>_<mode>): Likewise.
16975 (neon_vec_<US>mult_<mode>): Likewise.
16976 (vec_pack_trunc_<mode>): Likewise.
16977 (neon_vec_pack_trunk_<mode>): Likewise.
16978 (neon_vabd<mode>_2): Likewise.
16979 (neon_vabd<mode>_3): Likewise.
16980 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
16981 (thumb2_movsi_vfp): Likewise.
16982 (movdi_vfp): Likewise.
16983 (movdi_vfp_cortexa8): Likewise.
16984 (movhf_vfp_neon): Likewise.
16985 (movhf_vfp): Likewiwse.
16986 (movsf_vfp): Likewiwse.
16987 (thumb2_movsf_vfp): Likewiwse.
16988 (movdf_vfp): Likewise.
16989 (thumb2_movdf_vfp): Likewise.
16990 (movsfcc_vfp): Likewise.
16991 (thumb2_movsfcc_vfp): Likewise.
16992 (movdfcc_vfp): Likewise.
16993 (thumb2_movdfcc_vfp): Likewise.
16994 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
16995 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
16996 (v10_v2c): Likewise.
16997 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
16998 attribute change.
16999 (cortex_a15_neon_int_2): Likewise.
17000 (cortex_a15_neon_int_3): Likewise.
17001 (cortex_a15_neon_int_4): Likewise.
17002 (cortex_a15_neon_int_5): Likewise.
17003 (cortex_a15_neon_vqneg_vqabs): Likewise.
17004 (cortex_a15_neon_vmov): Likewise.
17005 (cortex_a15_neon_vaba): Likewise.
17006 (cortex_a15_neon_vaba_qqq): Likewise.
17007 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
17008 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
17009 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
17010 scalar_64_32_long_scalar): Likewise.
17011 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
17012 (cortex_a15_neon_mla_qqq_8_16): Likewise.
17013 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
17014 lotype_qdd_64_32_long): Likewise.
17015 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
17016 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
17017 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
17018 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
17019 (cortex_a15_neon_shift_1): Likewise.
17020 (cortex_a15_neon_shift_2): Likewise.
17021 (cortex_a15_neon_shift_3): Likewise.
17022 (cortex_a15_neon_vshl_ddd): Likewise.
17023 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
17024 (cortex_a15_neon_vsra_vrsra): Likewise.
17025 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
17026 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
17027 (cortex_a15_neon_fp_vmul_ddd): Likewise.
17028 (cortex_a15_neon_fp_vmul_qqd): Likewise.
17029 (cortex_a15_neon_fp_vmla_ddd): Likewise.
17030 (cortex_a15_neon_fp_vmla_qqq): Likewise.
17031 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
17032 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
17033 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
17034 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
17035 (cortex_a15_neon_bp_simple): Likewise.
17036 (cortex_a15_neon_bp_2cycle): Likewise.
17037 (cortex_a15_neon_bp_3cycle): Likewise.
17038 (cortex_a15_neon_vld1_1_2_regs): Likewise.
17039 (cortex_a15_neon_vld1_3_4_regs): Likewise.
17040 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
17041 (cortex_a15_neon_vld2_4_regs): Likewise.
17042 (cortex_a15_neon_vld3_vld4): Likewise.
17043 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
17044 (cortex_a15_neon_vst1_3_4_regs): Likewise.
17045 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
17046 (cortex_a15_neon_vst3_vst4): Likewise.
17047 (cortex_a15_neon_vld1_vld2_lane): Likewise.
17048 (cortex_a15_neon_vld3_vld4_lane" 10
17049 (cortex_a15_neon_vst1_vst2_lane): Likewise.
17050 (cortex_a15_neon_vst3_vst4_lane): Likewise.
17051 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
17052 (cortex_a15_neon_ldm_2): Likewise.0
17053 (cortex_a15_neon_stm_2): Likewise.
17054 (cortex_a15_neon_mcr): Likewise.
17055 (cortex_a15_neon_mcr_2_mcrr): Likewise.
17056 (cortex_a15_neon_mrc): Likewise.
17057 (cortex_a15_neon_mrrc): Likewise.
17058 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
17059 change.
17060 (cortex_a15_alu_shift): Likewise.
17061 (cortex_a15_alu_shift_reg): Likewise.
17062 (cortex_a15_mult32): Likewise.
17063 (cortex_a15_mult64): Likewise.
17064 (cortex_a15_block): Likewise.
17065 (cortex_a15_branch): Likewise.
17066 (cortex_a15_load1): Likewise.
17067 (cortex_a15_load3): Likewise.
17068 (cortex_a15_store1): Likewise.
17069 (cortex_a15_store3): Likewise.
17070 (cortex_a15_call): Likewise.
17071 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
17072 (cortex_a5_f2r): Likewise.
17073 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
17074 change.
17075 (cortex_a53_f2r): Likewise.
17076 * config/arm/cortex-a7.md
17077 (cortex_a7_branch): Update for attribute change.
17078 (cortex_a7_call): Likewise.
17079 (cortex_a7_alu_imm): Likewise.
17080 (cortex_a7_alu_reg): Likewise.
17081 (cortex_a7_alu_shift): Likewise.
17082 (cortex_a7_mul): Likewise.
17083 (cortex_a7_load1): Likewise.
17084 (cortex_a7_store1): Likewise.
17085 (cortex_a7_load2): Likewise.
17086 (cortex_a7_store2): Likewise.
17087 (cortex_a7_load3): Likewise.
17088 (cortex_a7_store3): Likewise.
17089 (cortex_a7_load4): Likewise.
17090 (cortex_a7_store4): Likewise.
17091 (cortex_a7_fpalu): Likewise.
17092 (cortex_a7_fconst): Likewise.
17093 (cortex_a7_fpmuls): Likewise.
17094 (cortex_a7_neon_mul): Likewise.
17095 (cortex_a7_fpmacs): Likewise.
17096 (cortex_a7_neon_mla: Likewise.
17097 (cortex_a7_fpmuld: Likewise.
17098 (cortex_a7_fpmacd: Likewise.
17099 (cortex_a7_fpfmad: Likewise.
17100 (cortex_a7_fdivs: Likewise.
17101 (cortex_a7_fdivd: Likewise.
17102 (cortex_a7_r2f: Likewise.
17103 (cortex_a7_f2r: Likewise.
17104 (cortex_a7_f_flags: Likewise.
17105 (cortex_a7_f_loads: Likewise.
17106 (cortex_a7_f_loadd: Likewise.
17107 (cortex_a7_f_stores: Likewise.
17108 (cortex_a7_f_stored: Likewise.
17109 (cortex_a7_neon): Likewise.
17110 * config/arm/cortex-a8-neon.md
17111 (cortex_a8_neon_mrc): Update for attribute change.
17112 (cortex_a8_neon_mrrc): Likewise.
17113 (cortex_a8_neon_int_1): Likewise.
17114 (cortex_a8_neon_int_2): Likewise.
17115 (cortex_a8_neon_int_3): Likewise.
17116 (cortex_a8_neon_int_4): Likewise.
17117 (cortex_a8_neon_int_5): Likewise.
17118 (cortex_a8_neon_vqneg_vqabs): Likewise.
17119 (cortex_a8_neon_vmov): Likewise.
17120 (cortex_a8_neon_vaba): Likewise.
17121 (cortex_a8_neon_vaba_qqq): Likewise.
17122 (cortex_a8_neon_vsma): Likewise.
17123 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
17124 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
17125 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
17126 long_scalar): Likewise.
17127 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
17128 (cortex_a8_neon_mla_qqq_8_16): Likewise.
17129 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
17130 long_scalar_qdd_64_32_long): Likewise.
17131 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
17132 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
17133 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
17134 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
17135 (cortex_a8_neon_shift_1): Likewise.
17136 (cortex_a8_neon_shift_2): Likewise.
17137 (cortex_a8_neon_shift_3): Likewise.
17138 (cortex_a8_neon_vshl_ddd): Likewise.
17139 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
17140 (cortex_a8_neon_vsra_vrsra): Likewise.
17141 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
17142 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
17143 (cortex_a8_neon_fp_vsum): Likewise.
17144 (cortex_a8_neon_fp_vmul_ddd): Likewise.
17145 (cortex_a8_neon_fp_vmul_qqd): Likewise.
17146 (cortex_a8_neon_fp_vmla_ddd): Likewise.
17147 (cortex_a8_neon_fp_vmla_qqq): Likewise.
17148 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
17149 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
17150 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
17151 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
17152 (cortex_a8_neon_bp_simple): Likewise.
17153 (cortex_a8_neon_bp_2cycle): Likewise.
17154 (cortex_a8_neon_bp_3cycle): Likewise.
17155 (cortex_a8_neon_ldr): Likewise.
17156 (cortex_a8_neon_str): Likewise.
17157 (cortex_a8_neon_vld1_1_2_regs): Likewise.
17158 (cortex_a8_neon_vld1_3_4_regs): Likewise.
17159 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
17160 (cortex_a8_neon_vld2_4_regs): Likewise.
17161 (cortex_a8_neon_vld3_vld4): Likewise.
17162 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
17163 (cortex_a8_neon_vst1_3_4_regs): Likewise.
17164 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
17165 (cortex_a8_neon_vst3_vst4): Likewise.
17166 (cortex_a8_neon_vld1_vld2_lane): Likewise.
17167 (cortex_a8_neon_vld3_vld4_lane): Likewise.
17168 (cortex_a8_neon_vst1_vst2_lane): Likewise.
17169 (cortex_a8_neon_vst3_vst4_lane): Likewise.
17170 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
17171 (cortex_a8_neon_mcr): Likewise.
17172 (cortex_a8_neon_mcr_2_mcrr): Likewise.
17173 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
17174 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
17175 change.
17176 (ca9_neon_mrrc): Likewise.
17177 (cortex_a9_neon_int_1): Likewise.
17178 (cortex_a9_neon_int_2): Likewise.
17179 (cortex_a9_neon_int_3): Likewise.
17180 (cortex_a9_neon_int_4): Likewise.
17181 (cortex_a9_neon_int_5): Likewise.
17182 (cortex_a9_neon_vqneg_vqabs): Likewise.
17183 (cortex_a9_neon_vmov): Likewise.
17184 (cortex_a9_neon_vaba): Likewise.
17185 (cortex_a9_neon_vaba_qqq): Likewise.
17186 (cortex_a9_neon_vsma): Likewise.
17187 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
17188 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
17189 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
17190 long_scalar): Likewise.
17191 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
17192 (cortex_a9_neon_mla_qqq_8_16): Likewise.
17193 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
17194 long_scalar_qdd_64_32_long): Likewise.
17195 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
17196 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
17197 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
17198 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
17199 (cortex_a9_neon_shift_1): Likewise.
17200 (cortex_a9_neon_shift_2): Likewise.
17201 (cortex_a9_neon_shift_3): Likewise.
17202 (cortex_a9_neon_vshl_ddd): Likewise.
17203 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
17204 (cortex_a9_neon_vsra_vrsra): Likewise.
17205 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
17206 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
17207 (cortex_a9_neon_fp_vsum): Likewise.
17208 (cortex_a9_neon_fp_vmul_ddd): Likewise.
17209 (cortex_a9_neon_fp_vmul_qqd): Likewise.
17210 (cortex_a9_neon_fp_vmla_ddd): Likewise.
17211 (cortex_a9_neon_fp_vmla_qqq): Likewise.
17212 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
17213 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
17214 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
17215 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
17216 (cortex_a9_neon_bp_simple): Likewise.
17217 (cortex_a9_neon_bp_2cycle): Likewise.
17218 (cortex_a9_neon_bp_3cycle): Likewise.
17219 (cortex_a9_neon_ldr): Likewise.
17220 (cortex_a9_neon_str): Likewise.
17221 (cortex_a9_neon_vld1_1_2_regs): Likewise.
17222 (cortex_a9_neon_vld1_3_4_regs): Likewise.
17223 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
17224 (cortex_a9_neon_vld2_4_regs): Likewise.
17225 (cortex_a9_neon_vld3_vld4): Likewise.
17226 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
17227 (cortex_a9_neon_vst1_3_4_regs): Likewise.
17228 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
17229 (cortex_a9_neon_vst3_vst4): Likewise.
17230 (cortex_a9_neon_vld1_vld2_lane): Likewise.
17231 (cortex_a9_neon_vld3_vld4_lane): Likewise.
17232 (cortex_a9_neon_vst1_vst2_lane): Likewise.
17233 (cortex_a9_neon_vst3_vst4_lane): Likewise.
17234 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
17235 (cortex_a9_neon_mcr): Likewise.
17236 (cortex_a9_neon_mcr_2_mcrr): Likewise.
17237 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
17238 (cortex_a9_fps): Likewise.
17239 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
17240 change.
17241 (cortex_m4_fmuls): Likewise.
17242 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
17243 change.
17244 (cortex_r4_mrc): Likewise.
17245 * config/arm/iterators.md: Update comment referring to neon_type.
17246 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
17247 (iwmmxt_movsi_insn): Likewise.
17248 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
17249 attribute change.
17250 (pj4_core_to_vfp): Likewise.
17251 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
17252 attribute change.
17253 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
17254 (vfp_fstore): Likewise.
17255 * doc/md.texi: Change references to neon_type to refer to type.
17256
17257 2013-09-04 Dodji Seketeli <dodji@redhat.com>
17258
17259 * tree.h (DECL_BUILT_IN): Fix typo in comment.
17260
17261 2013-09-04 David Edelsohn <dje.gcc@gmail.com>
17262
17263 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
17264 lglobl if not weak.
17265
17266 2013-09-04 Easwaran Raman <eraman@google.com>
17267
17268 PR middle-end/57370
17269 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
17270 (build_and_add_sum): Use it.
17271 (appears_later_in_bb): Simplify code.
17272
17273 2013-09-04 Teresa Johnson <tejohnson@google.com>
17274
17275 * dumpfile.c (dump_finish): Don't close stderr/stdout.
17276
17277 2013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
17278
17279 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
17280
17281 2013-09-04 Jan Hubicka <jh@suse.cz>
17282
17283 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
17284 * ipa-devirt.c: Include diganostic.h
17285 (odr_type_d): Add types and types_set.
17286 (hash_type_name): Work for types with vtables during LTO.
17287 (odr_hasher::remove): Fix comment; destroy types_set.
17288 (add_type_duplicate): New function,
17289 (get_odr_type): Use it.
17290 (dump_type_inheritance_graph): Dump type duplicates.
17291 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
17292 graph.
17293 * tree.c (types_same_for_odr): Give exact answers on types with
17294 virtual tables.
17295
17296 2013-09-04 Dodji Seketeli <dodji@redhat.com>
17297
17298 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
17299 explaining their differences.
17300
17301 2013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
17302
17303 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
17304
17305 2013-09-03 Jeff Law <law@redhat.com>
17306
17307 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
17308 when not threading through a joiner block. Pass joiner/no joiner
17309 state to register_jump_thread.
17310 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
17311 state from argument rather than implying on path length.
17312 Dump the entire jump thread path into debugging dump.
17313 * tree-flow.h (register_jump_thread): Update prototype.
17314
17315 2013-08-29 Xinliang David Li <davidxl@google.com>
17316
17317 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17318 Remove a trivial gcc_assert.
17319
17320 2013-08-29 Xinliang David Li <davidxl@google.com>
17321
17322 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
17323 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
17324 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17325 Delay base decl alignment adjustment.
17326 * tree-vectorizer.c (vect_destroy_datarefs): New function.
17327 * tree-vectorizer.h: New data structure.
17328 (set_dr_misalignment): New function.
17329 (dr_misalignment): Ditto.
17330 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
17331 (vectorizable_load): Ditto.
17332 (ensure_base_align): New function.
17333 (vectorize_loops): Add dbg_cnt support.
17334 (execute_vect_slp): Ditto.
17335 * dbgcnt.def: New debug counter.
17336 * Makefile: New dependency.
17337
17338 2013-09-03 Meador Inge <meadori@codesourcery.com>
17339
17340 Revert:
17341
17342 2013-08-30 Meador Inge <meadori@codesourcery.com>
17343
17344 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
17345
17346 2013-09-03 David Edelsohn <dje.gcc@gmail.com>
17347
17348 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
17349 function descriptor.
17350
17351 2013-09-03 Richard Biener <rguenther@suse.de>
17352
17353 * tree-affine.c (add_elt_to_tree): Fix association issue,
17354 avoid useless converts and make sure to always return a
17355 properly typed result.
17356
17357 2013-09-03 Richard Biener <rguenther@suse.de>
17358
17359 PR middle-end/57656
17360 * fold-const.c (negate_expr_p): Fix division case.
17361 (negate_expr): Likewise.
17362
17363 2013-09-03 Richard Biener <rguenther@suse.de>
17364
17365 PR lto/58285
17366 * tree-streamer-out.c: Include tm.h.
17367 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
17368
17369 2013-09-03 Jan Hubicka <jh@suse.cz>
17370
17371 * tree-profile.c (tree_profiling): Cleanup CFG when done.
17372
17373 2013-09-03 Alan Modra <amodra@gmail.com>
17374
17375 * config.gcc (powerpc*-*-linux*): Add support for little-endian
17376 multilibs to big-endian target and vice versa.
17377 * config/rs6000/t-linux64: Use := assignment on all vars.
17378 (MULTILIB_EXTRA_OPTS): Remove fPIC.
17379 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
17380 * config/rs6000/t-linux64le: New file.
17381 * config/rs6000/t-linux64bele: New file.
17382 * config/rs6000/t-linux64lebe: New file.
17383
17384 2013-09-02 Jan Hubicka <jh@suse.cz>
17385
17386 * ipa-inline-transform.c (inline_transform): Do not
17387 optimize_inline_calls when not optimizing.
17388
17389 2013-09-02 Jan Hubicka <jh@suse.cz>
17390
17391 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
17392 duplicated nodes for assembler names.
17393 * symtab.c (symtab_unregister_node): Do not attempt to unlink
17394 hard registers from assembler name hash.
17395
17396 2013-09-02 Jan Hubicka <jh@suse.cz>
17397
17398 * ipa-split.c (execute_split_functions): Split externally visible
17399 functions called once.
17400
17401 2013-09-02 Martin Jambor <mjambor@suse.cz>
17402
17403 PR ipa/58106
17404 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
17405 linked list. When finding the correct duplicate, also consider also
17406 the caller in additon to its inlined_to node.
17407
17408 2013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
17409
17410 * config/aarch64/aarch64-simd-builtins.def
17411 (dup_lane_scalar): Remove.
17412 * config/aarch64/aarch64-simd.md
17413 (aarch64_simd_dup): Add 'w->w' alternative.
17414 (aarch64_dup_lane<mode>): Allow for VALL.
17415 (aarch64_dup_lane_scalar<mode>): Remove.
17416 (aarch64_dup_lane_<vswap_width_name><mode>): New.
17417 (aarch64_get_lane_signed<mode>): Add w->w altenative.
17418 (aarch64_get_lane_unsigned<mode>): Likewise.
17419 (aarch64_get_lane<mode>): Likewise.
17420 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
17421 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
17422 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
17423 (VCON): Change container of V2SF.
17424 (vswap_width_name): Likewise.
17425 * config/aarch64/arm_neon.h
17426 (__aarch64_vdup_lane_any): New.
17427 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
17428 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
17429 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
17430
17431 2013-09-02 Eric Botcazou <ebotcazou@adacore.com>
17432
17433 PR middle-end/56382
17434 * expr.c (emit_move_complex): Do not move complex FP values as parts if
17435 the source or the destination is a single hard register.
17436
17437 2013-09-02 Richard Biener <rguenther@suse.de>
17438
17439 PR middle-end/57511
17440 * tree-scalar-evolution.c (instantiate_scev_name): Allow
17441 non-linear SCEVs.
17442
17443 2013-09-02 Richard Biener <rguenther@suse.de>
17444
17445 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
17446 arithmetic to sizetype.
17447
17448 2013-09-02 Bin Cheng <bin.cheng@arm.com>
17449
17450 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
17451 Find auto-increment use both before and after candidate.
17452
17453 2013-09-02 Marek Polacek <polacek@redhat.com>
17454
17455 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
17456
17457 2013-09-01 Jan Hubicka <jh@suse.cz>
17458
17459 * Makefile.in: Add ipa-profile.o
17460 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
17461 * cgraph.c (struct cgraph_propagate_frequency_data,
17462 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
17463 ipa-profile.c; replace cgraph_ by ipa_ prefix.
17464 * cgraph.h (cgraph_propagate_frequency): Remove.
17465 * ipa-inline-analysis.c: Include ipa-utils.h;
17466 drop duplicated cfgloop.h.
17467 (inline_update_callee_summaries): Update.
17468 * ipa-profile.c: New file.
17469 * ipa-utils.h (ipa_propagate_frequency): Declare.
17470 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
17471 data-streamer.h, value-prof.h.
17472 (symtab_remove_unreachable_nodes): Update profile.
17473 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
17474 account_time_size, cmp_counts, dump_histogram,
17475 ipa_profile_generate_summary, ipa_profile_write_summary,
17476 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
17477 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
17478 Move to ipa-profile.c.
17479
17480 2013-09-01 John David Anglin <danglin@gcc.gnu.org>
17481
17482 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
17483
17484 2013-09-01 Jan Hubicka <jh@suse.cz>
17485
17486 * common.opt (fdevirtualize-speculatively): New function.
17487 * invoke.texi (fdevirtualize-speculatively): Document.
17488 * ipa-devirt.c: Include ipa-inline.h
17489 (likely_target_p): New function.
17490 (ipa_devirt): New function.
17491 (gate_ipa_devirt): New function.
17492 (pass_data_ipa_devirt): New static var.
17493 (pass_ipa_devirt): Likewise.
17494 (make_pass_ipa_devirt): New function.
17495 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
17496 (common_handle_option): Disable devirtualization when
17497 value range profiling is available.
17498 * passes.def (pass_ipa_devirt): Add.
17499 * timever.def (TV_IPA_DEVIRT): New timevar.
17500 * tree-pass.h (make_pass_ipa_devirt):
17501
17502 2013-09-01 Iain Sandoe <iain@codesourcery.com>
17503
17504 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
17505 include sanitize(undefined).
17506
17507 2013-08-31 Diego Novillo <dnovillo@google.com>
17508
17509 * Makefile.in (TREE_CORE_H): Define.
17510 (TREE_H): Use.
17511 (GTFILES): Add tree-core.h.
17512 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
17513 size the array.
17514 * tree-core.h: New file.
17515 Move all data structures, enum, typedefs, global
17516 declarations and constants from ...
17517 * tree.h: ... here.
17518
17519 2013-08-31 Jan Hubicka <jh@suse.cz>
17520
17521 * bulitins.c (expand_builtin): Do not early exit for gcov
17522 instrumented functions.
17523
17524 2013-08-31 Marek Polacek <polacek@redhat.com>
17525
17526 * ubsan.c: Include tm_p.h.
17527
17528 2013-08-31 Jan Hubicka <jh@suse.cz>
17529
17530 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
17531 warning.
17532
17533 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
17534 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
17535 * tree-cfg.c (verify_gimple_label): ... here.
17536 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
17537 (ipa_merge_profiles): New function.
17538 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
17539 (lto_input_function_body): Likewise.
17540 * ipa-utils.h (ipa_merge_profiles): Declare.
17541 * lto-streamer.h (lto_input_function_body): Update prototype.
17542 (emit_label_in_global_context_p): Remove.
17543 * lto-symtab.c: Include ipa-utils.h
17544 (lto_cgraph_replace_node): Use ipa_merge_profiles.
17545
17546 2013-08-31 Jan Hubicka <jh@suse.cz>
17547
17548 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
17549
17550 2013-08-31 Jan Hubicka <jh@suse.cz>
17551
17552 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
17553
17554 2013-08-31 Uros Bizjak <ubizjak@gmail.com>
17555
17556 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
17557 "cmp" RTX before signed_comparison_operator check to account
17558 for "code" changes.
17559
17560 2013-08-30 Jan Hubicka <jh@suse.cz>
17561
17562 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
17563 (detect_type_change_1): Rename to ...
17564 (detect_type_change): ... this one; early return on non-polymorphic
17565 types.
17566 (detect_type_change_ssa): Add comp_type parameter; update
17567 use of detect_type_change.
17568 (compute_complex_assign_jump_func): Add param_type parameter;
17569 update use of detect_type_change_ssa.
17570 (compute_complex_ancestor_jump_func): Likewise.
17571 (ipa_get_callee_param_type): New function.
17572 (ipa_compute_jump_functions_for_edge): Compute parameter type;
17573 update calls to the jump function computation functions.
17574
17575 2013-08-30 Teresa Johnson <tejohnson@google.com>
17576 Steven Bosscher <steven@gcc.gnu.org>
17577
17578 * cfgrtl.c (fixup_new_cold_bb): New routine.
17579 (commit_edge_insertions): Invoke fixup_partitions.
17580 (find_partition_fixes): New routine.
17581 (fixup_partitions): Ditto.
17582 (verify_hot_cold_block_grouping): Update comments.
17583 (rtl_verify_edges): Invoke find_partition_fixes.
17584 (rtl_verify_bb_pointers): Update comments.
17585 (rtl_verify_bb_layout): Ditto.
17586 * basic-block.h (probably_never_executed_edge_p): Declare.
17587 (fixup_partitions): Ditto.
17588 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
17589 * bb-reorder.c (sanitize_hot_paths): New function.
17590 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
17591 sanitize_hot_paths.
17592 * predict.c (probably_never_executed_edge_p): New routine.
17593 * cfg.c (check_bb_profile): Add partition insanity warnings.
17594
17595 2013-08-30 Meador Inge <meadori@codesourcery.com>
17596
17597 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
17598
17599 2013-08-30 Marek Polacek <polacek@redhat.com>
17600
17601 * Makefile.in (ubsan.o): Add.
17602 (c-family/c-ubsan.o): Add.
17603 (builtins.o): Add ubsan.h dependency.
17604 * ubsan.h: New file.
17605 * ubsan.c: New file.
17606 * common.opt: Add -fsanitize=undefined option.
17607 (flag_sanitize): Add variable.
17608 (fsanitize=): Add option. Add Driver.
17609 (fsanitize=thread): Remove option.
17610 (fsanitize=address): Likewise.
17611 (static-libubsan): New option.
17612 * doc/invoke.texi: Document the new flag and -static-libubsan.
17613 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
17614 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
17615 * builtin-attrs.def (ATTR_COLD): Define.
17616 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
17617 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
17618 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
17619 * flag-types.h (sanitize_code): New enum.
17620 * opts.c (common_handle_option): Parse command line arguments
17621 of -fsanitize=. Add -fsanitize=unreachable option.
17622 * varasm.c (get_variable_section): Adjust.
17623 (assemble_noswitch_variable): Likewise.
17624 (assemble_variable): Likewise.
17625 (output_constant_def_contents): Likewise.
17626 (categorize_decl_for_section): Likewise.
17627 (place_block_symbol): Likewise.
17628 (output_object_block): Likewise.
17629 * builtins.def: Likewise.
17630 * toplev.c (compile_file): Likewise.
17631 (process_options): Likewise.
17632 * cppbuiltin.c: Likewise.
17633 * tsan.c (tsan_pass): Likewise.
17634 (tsan_gate): Likewise.
17635 (tsan_gate_O0): Likewise.
17636 * cfgexpand.c (partition_stack_vars): Likewise.
17637 (expand_stack_vars): Likewise.
17638 (defer_stack_allocation): Likewise.
17639 (expand_used_vars): Likewise.
17640 * cfgcleanup.c (old_insns_match_p): Likewise.
17641 * asan.c (asan_finish_file): Likewise.
17642 (asan_instrument): Likewise.
17643 (gate_asan): Likewise.
17644 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
17645 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
17646 (asan_global_struct): Use pointer_sized_int_node instead
17647 calling build_nonstandard_integer_type.
17648 (initialize_sanitizer_builtins): Likewise.
17649 (asan_finish_file): Likewise.
17650 * gcc.c: Document %{%:function(args):X}.
17651 (static_spec_functions): Add sanitize.
17652 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
17653 store funcval != NULL there.
17654 (do_spec_1): Adjust handle_spec_function caller.
17655 (handle_braces): Allow %:function(args) as condition.
17656 (sanitize_spec_function): New function.
17657 (ADD_STATIC_LIBUBSAN_LIBS): Define.
17658 (LIBUBSAN_SPEC): Likewise.
17659 (LIBUBSAN_EARLY_SPEC): Likewise.
17660 (SANITIZER_SPEC): Handle libubsan.
17661 (SANITIZER_EARLY_SPEC): Likewise.
17662 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
17663 instead of fsanitize=address.
17664 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
17665 instead of fsanitize=address*.
17666 * builtins.c: Include ubsan.h.
17667 (fold_builtin_0): Instrument __builtin_unreachable.
17668 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
17669 instead of flag_asan.
17670 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
17671 (pointer_sized_int_node): Define.
17672 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
17673
17674 2013-08-30 Mike Stump <mikestump@comcast.net>
17675
17676 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
17677 with RE patterns.
17678
17679 2013-08-29 Jan Hubicka <jh@suse.cz>
17680
17681 * cgraph.c (cgraph_function_body_availability): Handle weakref
17682 correctly.
17683 * passes.def: Remove pass_fixup_cfg.
17684 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
17685 track when we need to remove functions.
17686 (gate_ipa_inline): Execute inlining always; add comment why.
17687 (pass_data_ipa_inline): Remove TODO_remove_functions.
17688 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
17689 do not produce summaries.
17690 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
17691 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
17692 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
17693 constant pool and vtable.
17694
17695 2013-08-30 Tejas Belagod <tejas.belagod@arm.com>
17696
17697 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
17698 New arm_neon.h's internal macros to specify 64-bit constants.
17699 Avoid using stdint.h's macros.
17700
17701 2013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
17702
17703 * recog.c (verify_changes): Verify that changes[i].old is non-zero
17704 before applying REG_P.
17705
17706 2013-08-30 Jakub Jelinek <jakub@redhat.com>
17707
17708 PR tree-optimization/58277
17709 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
17710 after seeing too many stmts with vdef in between dombb and current
17711 bb, invalidate everything.
17712
17713 2013-08-30 Richard Biener <rguenther@suse.de>
17714
17715 * fold-const.c (fold_single_bit_test): Fix overflow test.
17716
17717 2013-08-30 Eric Botcazou <ebotcazou@adacore.com>
17718
17719 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
17720 and which can live in a register, always retrieve the value on entry.
17721 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
17722 passed by invisible reference specially.
17723 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
17724 (vt_add_function_parameter): Correctly deal with a parameter passed by
17725 invisible reference.
17726
17727 2013-08-30 Jan Hubicka <jh@suse.cz>
17728
17729 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
17730
17731 2013-08-30 Richard Biener <rguenther@suse.de>
17732
17733 PR tree-optimization/58228
17734 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
17735 allow invariant loads in nested loop vectorization.
17736
17737 2013-08-30 Richard Biener <rguenther@suse.de>
17738
17739 PR tree-optimization/58223
17740 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
17741 (has_anti_or_output_dependence): ... this and adjust to also
17742 look for output dependences.
17743 (mark_nodes_having_upstream_mem_writes): Adjust.
17744 (rdg_flag_uses): Likewise.
17745
17746 2013-08-30 Richard Biener <rguenther@suse.de>
17747
17748 PR tree-optimization/58010
17749 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
17750 assert that we have a loop-closed PHI.
17751
17752 2013-08-29 Jan Hubicka <jh@suse.cz>
17753
17754 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
17755 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
17756 * lto-section-in.c (lto_free_function_in_decl_state): New function.
17757 (lto_free_function_in_decl_state_for_node): New function.
17758
17759 2013-08-29 Xinliang David Li <davidxl@google.com>
17760
17761 * loop-unroll.c (report_unroll_peel): Minor message change.
17762 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
17763 Emit alignment peeling message with default -fopt-info.
17764 (vect_loop_versioning): Emit loop version info message.
17765 * tree-vectorizer.c (vectorize_loops): Minor message change.
17766 (execute_vect_slp): Ditto.
17767
17768 2013-08-29 Eric Botcazou <ebotcazou@adacore.com>
17769
17770 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
17771 of the clone from the DECL_NAME of the original function.
17772
17773 2013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
17774
17775 * passes.c (register_pass): Add overload.
17776 * tree-pass.h (register_pass): Forward declare it. Add comment.
17777
17778 2013-08-29 Jan Hubicka <jh@suse.cz>
17779
17780 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
17781 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
17782 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
17783 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
17784 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
17785 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
17786 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
17787 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
17788
17789 2013-08-29 Teresa Johnson <tejohnson@google.com>
17790
17791 * dumpfile.c (dump_loc): Output column number.
17792 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
17793 * doc/invoke.texi: Document optall -fopt-info flag.
17794 * profile.c (read_profile_edge_counts): Use new dump framework.
17795 (compute_branch_probabilities): Ditto.
17796 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
17797 when pass not in any opt group.
17798 * pass_manager.h (pass_manager::get_pass_profile): New method.
17799 * value-prof.c (check_counter): Use new dump framework.
17800 (check_ic_target): Ditto.
17801 * coverage.c (get_coverage_counts): Ditto.
17802 (coverage_init): Setup new dump framework.
17803
17804 2013-08-29 Richard Biener <rguenther@suse.de>
17805
17806 PR tree-optimization/58246
17807 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
17808 handle the dominance check inside a basic-block.
17809
17810 2013-08-29 Richard Biener <rguenther@suse.de>
17811
17812 PR middle-end/57287
17813 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
17814 of default defs that appear in abnormal PHI nodes.
17815
17816 2013-08-29 Richard Biener <rguenther@suse.de>
17817
17818 PR tree-optimization/57685
17819 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
17820 single-use operands to avoid exponential complexity.
17821
17822 2013-08-28 Dehao Chen <dehao@google.com>
17823
17824 * ipa-inline.c (edge_badness): Fix integer underflow.
17825
17826 2013-08-28 Uros Bizjak <ubizjak@gmail.com>
17827
17828 * gtm-builtins.def (_ITM_free): Declare leaf.
17829
17830 2013-08-28 Jakub Jelinek <jakub@redhat.com>
17831
17832 PR target/58067
17833 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
17834 (*tls_local_dynamic_base_64_largepic): Likewise.
17835 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
17836 Remove predicate from call operand.
17837 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
17838 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
17839
17840 2013-08-28 Jeff Law <law@redhat.com>
17841
17842 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
17843 checks for the number of predecessors and successors allowed.
17844 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
17845 which require copying a joiner block if there is a request which
17846 is a subpath that requires no joiner block copying.
17847
17848 2013-08-28 Jan Hubicka <jh@suse.cz>
17849
17850 * lto-streamer-out.c (DFS_write_tree_body): Drop
17851 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
17852 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
17853 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
17854 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
17855 Do not read DECL_ERROR_ISSUED.
17856 (unpack_ts_decl_with_vis_value_fields): Do not read
17857 DECL_DEFER_OUTPUT.
17858 (lto_input_ts_binfo_tree_pointers): Do not read
17859 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
17860 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
17861 write DECL_ERROR_ISSUED..
17862 (pack_ts_decl_with_vis_value_fields): Do not write
17863 DECL_DEFER_OUTPUT.
17864 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
17865 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
17866 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
17867 * tree.h (tree_decl_common): Update comment.
17868 (DECL_ERROR_ISSUED): Remove.
17869
17870 2013-08-28 Jakub Jelinek <jakub@redhat.com>
17871
17872 PR middle-end/58257
17873 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
17874
17875 2013-08-28 Jan Hubicka <jh@suse.cz>
17876
17877 * builtins.def (free): Declare leaf.
17878
17879 2013-08-27 David Malcolm <dmalcolm@redhat.com>
17880
17881 * gdbhooks.py: New.
17882 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
17883 * configure: Regenerate.
17884
17885 2013-08-27 Martin Jambor <mjambor@suse.cz>
17886
17887 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
17888 (ipa_ancestor_jf_data): Likewise.
17889 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
17890 (ipa_get_jf_pass_through_type_preserved): New function.
17891 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
17892 (ipa_get_jf_ancestor_type_preserved): New function.
17893 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
17894 (ipa_get_jf_ancestor_result): Likewise.
17895 (propagate_vals_accross_pass_through): Use
17896 ipa_get_jf_pass_through_result to do all the value mappings.
17897 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
17898 type_preserved flag.
17899 (ipa_set_jf_cst_copy): New function.
17900 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
17901 (ipa_set_jf_arith_pass_through): Likewise.
17902 (ipa_set_ancestor_jf): Likewise.
17903 (compute_complex_assign_jump_func): Set type_preserved instead of
17904 punting.
17905 (ipa_compute_jump_functions_for_edge): Likewise.
17906 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
17907 (update_jump_functions_after_inlining): Update type_preserved.
17908 Explicitely create jump functions when combining one with pass_through.
17909 (ipa_write_jump_function): Stream the type_preserved flags.
17910 (ipa_read_jump_function): Likewise.
17911
17912 2013-08-27 Jakub Jelinek <jakub@redhat.com>
17913 Aldy Hernandez <aldyh@redhat.com>
17914
17915 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
17916 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
17917 * function.h (struct function): Add has_force_vect_loops and
17918 has_simduid_loops.
17919 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
17920 * gimple.c (gimple_build_omp_critical): Add KIND argument and
17921 handle it.
17922 * gimple.def: Update CLAUSES comments.
17923 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
17924 (gimple_build_omp_for): Add argument to prototype.
17925 (gimple_omp_for_kind): New.
17926 (gimple_omp_for_set_kind): New.
17927 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
17928 GOVD_DATA_SHARE_CLASS.
17929 (enum omp_region_type): Add ORT_SIMD.
17930 (gimple_add_tmp_var): Handle ORT_SIMD.
17931 (gimplify_var_or_parm_decl): Same.
17932 (is_gimple_stmt): Same.
17933 (omp_firstprivatize_variable): Same.
17934 (omp_add_variable): Only use splay_tree_insert if lookup failed.
17935 (omp_notice_variable): Handle ORT_SIMD.
17936 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
17937 (omp_check_private): Handle ORT_SIMD.
17938 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
17939 OMP_CLAUSE_SAFELEN.
17940 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
17941 Handle OMP_CLAUSE_LASTPRIVATE.
17942 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
17943 OMP_CLAUSE_SAFELEN.
17944 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
17945 (gimplify_expr): Handle OMP_SIMD.
17946 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
17947 (expand_GOMP_SIMD_VF): New.
17948 (expand_GOMP_SIMD_LAST_LANE): New.
17949 * internal-fn.def (GOMP_SIMD_LANE): New.
17950 (GOMP_SIMD_VF): New.
17951 (GOMP_SIMD_LAST_LANE): New.
17952 * omp-low.c: Include target.h.
17953 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
17954 OMP_CLAUSE_SAFELEN.
17955 (check_omp_nesting_restrictions): Same.
17956 (omp_max_vf): New.
17957 (lower_rec_simd_input_clauses): New.
17958 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
17959 OMP_CLAUSE_LINEAR.
17960 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
17961 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
17962 (expand_omp_build_assign): New.
17963 (expand_omp_for_init_counts): New.
17964 (expand_omp_for_init_vars): New.
17965 (extract_omp_for_update_vars): New.
17966 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
17967 and rewrite accordingly.
17968 (expand_omp_simd): New.
17969 (expand_omp_for): Use expand_omp_simd.
17970 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
17971 (lower_omp_for): Do not lower the body.
17972 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
17973 in their own loops.
17974 * tree-flow.h (find_omp_clause): Remove prototype.
17975 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
17976 forcing vectorization of the loop, or if flag_tree_vectorize.
17977 (gate_tree_if_conversion): Similarly.
17978 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
17979 gimple_build_omp_for.
17980 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
17981 * tree-parloops (create_parallel_loop): Pass kind argument to
17982 gimple_build_omp_for.
17983 * tree-pretty-print.c (dump_omp_clause): Add cases for
17984 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
17985 OMP_CLAUSE__SIMDUID_.
17986 (dump_generic_node): Handle OMP_SIMD.
17987 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
17988 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
17989 unroll OMP_SIMD loops here.
17990 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
17991 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
17992 loop->safelen.
17993 (vect_analyze_data_refs): Handle simd loops.
17994 * tree-vect-loop.c (vectorizable_live_operation): Handle
17995 IFN_GOMP_SIMD*.
17996 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
17997 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
17998 (vectorizable_load): Same.
17999 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
18000 (struct simduid_to_vf): New.
18001 (simduid_to_vf::hash): New.
18002 (simduid_to-vf::equal): New.
18003 (struct simd_array_to_simduid): New.
18004 (simd_array_to_simduid::hash): New.
18005 (simd_array_to_simduid::equal): New.
18006 (adjust_simduid_builtins): New.
18007 (struct note_simd_array_uses_struct): New.
18008 (note_simd_array_uses_cb): New.
18009 (note_simd_array_uses): New.
18010 (vectorize_loops): Handle simd hints and adjust simd builtins
18011 accordingly.
18012 * tree-vectorizer.h (struct _stmt_vec_info): Add
18013 simd_lane_access_p field.
18014 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
18015 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
18016 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
18017 (omp_clause_code_name): Same.
18018 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
18019 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
18020 * tree.def (OMP_SIMD): New entry.
18021 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
18022 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
18023 (OMP_CLAUSE_DECL): Adjust range for new clauses.
18024 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
18025 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
18026 (OMP_CLAUSE_LINEAR_STEP): New.
18027 (OMP_CLAUSE_SAFELEN_EXPR): New.
18028 (OMP_CLAUSE__SIMDUID__DECL): New.
18029 (find_omp_clause): New prototype.
18030
18031 2013-08-27 H.J. Lu <hongjiu.lu@intel.com>
18032
18033 * config/i386/driver-i386.c (host_detect_local_cpu): Update
18034 Haswell processor detection.
18035
18036 2013-08-27 Christian Widmer <shadow@umbrox.de>
18037
18038 PR target/57927
18039 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
18040 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
18041 AVX2 capable processors.
18042
18043 2013-08-27 Tejas Belagod <tejas.belagod@arm.com>
18044
18045 * config/aarch64/arm_neon.h: Replace all inline asm implementations
18046 of vget_low_* with implementations in terms of other intrinsics.
18047
18048 2013-08-27 Marc Glisse <marc.glisse@inria.fr>
18049
18050 PR middle-end/57219
18051 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
18052 values to -1, 0 and 1.
18053
18054 2013-08-27 Vidya Praveen <vidyapraveen@arm.com>
18055
18056 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
18057 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
18058 (<optab><mode>3_insn): Remove.
18059 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
18060 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
18061 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
18062 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
18063 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
18064 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
18065 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
18066 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
18067 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
18068 (ror<mode>3_insn): Likewise.
18069 * config/aarch64/predicates.md (aarch64_simd_register): New.
18070
18071 2013-08-27 Richard Biener <rguenther@suse.de>
18072
18073 PR tree-optimization/57521
18074 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
18075 one edge is non-critical.
18076 (find_phi_replacement_condition): Make sure to use a non-critical
18077 edge. Cleanup and remove old bug workarounds.
18078 (bb_postdominates_preds): Remove.
18079 (if_convertible_loop_p_1): Do not compute post-dominators.
18080 (combine_blocks): Do not free post-dominators.
18081 (main_tree_if_conversion): Likewise.
18082 (pass_data_if_conversion): Add TODO_verify_ssa.
18083
18084 2013-08-27 DJ Delorie <dj@redhat.com>
18085
18086 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
18087
18088 2013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
18089
18090 * function.c (assign_parm_find_data_types): Set passed_mode and
18091 nominal_mode to the TYPE_MODE of nominal_type for the built
18092 pointer type in case of the struct-pass-by-reference.
18093
18094 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
18095
18096 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
18097 (UINT16_TYPE): Change default to "unsigned int".
18098
18099 * config/avr/avr.opt (mfract-convert-truncate): New option.
18100 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
18101 is set, round negative fractional integers according to n1169
18102 when converting to integer types.
18103
18104 2013-08-26 Jan Hubicka <jh@suse.cz>
18105
18106 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
18107 methods can not be called indirectly when their address is not taken.
18108
18109 2013-08-26 Jan Hubicka <jh@suse.cz>
18110
18111 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
18112 ctor_for_folding.
18113
18114 2013-08-26 Jan Hubicka <jh@suse.cz>
18115
18116 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
18117 can be unshared.
18118
18119 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
18120
18121 * reload.c (find_valid_class): Allow classes that do not include
18122 FIRST_PSEUDO_REGISTER - 1.
18123
18124 2013-08-26 Jan Hubicka <jh@suse.cz>
18125
18126 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
18127 fix edge count/frequency when speculation failed; fix type check
18128 for the direct call.
18129
18130 2013-08-26 Jan Hubicka <jh@suse.cz>
18131
18132 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
18133
18134 2013-08-26 Jan Hubicka <jh@suse.cz>
18135
18136 * ipa-inline-transform.c (inline_transform): Be ready for basic block
18137 to be changed by edge redirection.
18138
18139 2013-08-26 Jan Hubicka <jh@suse.cz>
18140
18141 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
18142 formating; add sanity check.
18143 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
18144 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
18145 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
18146 (resolve_noninline_speculation): Update callee keys, too.
18147
18148 2013-08-26 Jan Hubicka <jh@suse.cz>
18149
18150 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
18151 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
18152
18153 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
18154
18155 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
18156 into proper place.
18157
18158 2013-08-26 Uros Bizjak <ubizjak@gmail.com>
18159
18160 * config/i386/i386.c (ix86_debug_options): Remove prototype.
18161 (x86_64_elf_select_section): Ditto.
18162 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
18163 arguments.
18164 (ix86_pass_by_reference): Ditto.
18165 (output_set_got): Ditto.
18166 (ix86_unary_operator_ok): Ditto.
18167 (ix86_expand_builtin): Ditto.
18168
18169 2013-08-23 Jan Hubicka <jh@suse.cz>
18170
18171 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
18172
18173 2013-08-23 Jan Hubicka <jh@suse.cz>
18174
18175 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
18176 (tree_decl_with_vis): Add FINAL field.
18177
18178 2013-08-23 Jeff Law <law@redhat.com>
18179
18180 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
18181 the debugging dump when the expression is fully redundant.
18182
18183 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
18184
18185 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
18186 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
18187 * pretty-print.c (pp_formatted_text_data): Likewise.
18188 (pp_write_text_to_stream): Likewise.
18189 (pp_write_text_as_dot_label_to_stream): Likewise.
18190 (pp_append_r): Likewise.
18191 (pp_format): Likewise.
18192 (pp_flush): Likewise.
18193 (pp_clear_output_area): Likewise.
18194 (pp_append_text): Likewise.
18195 (pp_formatted_text): Likewise.
18196 (pp_remaining_character_count_for_line): Likewise.
18197 (pp_newline): Likewise.
18198 (pp_character): Likewise.
18199 (output_buffer::~output_buffer): Define.
18200 (pretty_printer::~pretty_printer): Destruct output buffer.
18201 * pretty-print.h (output_buffer::~output_buffer): Declare.
18202 (pretty_printer::~pretty_printer): Declare virtual.
18203
18204 2013-08-24 Marc Glisse <marc.glisse@inria.fr>
18205
18206 PR other/57324
18207 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
18208 HOST_WIDE_INT_M1U): New macros.
18209 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
18210 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
18211 unsigned -1 for lshift.
18212 * cse.c (cse_insn): Likewise.
18213 * double-int.c (rshift_double, lshift_double): Likewise.
18214 * builtins.c (fold_builtin_bitop): Likewise.
18215 * combine.c (force_to_mode): Likewise.
18216 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
18217 * simplify-rtx.c (simplify_const_unary_operation,
18218 simplify_const_binary_operation): Likewise.
18219 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
18220 check_va_list_escapes): Likewise.
18221 * rtlanal.c (nonzero_bits1): Likewise.
18222 * expmed.c (expand_smod_pow2): Likewise.
18223 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
18224
18225 2013-08-23 Jan Hubicka <jh@suse.cz>
18226
18227 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
18228 as having address taken.
18229
18230 2013-08-23 Jan Hubicka <jh@suse.cz>
18231
18232 * ipa-utils.h (method_class_type): Declare.
18233 * ipa-devirt.c (method_class_type): Export.
18234
18235 * cgraphunit.c (analyze_functions): Do basic devirtualization;
18236 do not walk base classes of anonymous types.
18237
18238 2013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
18239
18240 PR rtl-optimization/58220
18241 PR regression/58221
18242 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
18243 handle SEQUENCE insns properly.
18244
18245 2013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
18246
18247 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
18248 definition.
18249 (pp_newline_and_indent): Likewise.
18250 (pp_separate_with): Likewise.
18251 * pretty-print.c (pp_newline_and_flush): Define.
18252 (pp_newline_and_indent): Likewise.
18253 (pp_separate_with): Likewise.
18254
18255 2013-08-23 Jakub Jelinek <jakub@redhat.com>
18256
18257 PR target/58218
18258 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
18259 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
18260
18261 2013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
18262
18263 * config/i386/predicates.md (ext_sse_reg_operand): New.
18264 * config/i386/i386.md (*movti_internal): Use
18265 predicate to determine if EVEX is needed.
18266 (*movsi_internal): Ditto.
18267 (*movdf_internal): Ditto.
18268 (*movsf_internal): Ditto.
18269 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
18270
18271 2013-08-23 Jakub Jelinek <jakub@redhat.com>
18272
18273 PR tree-optimization/58209
18274 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
18275 (find_tail_calls): Give up for pointer result types if m is non-NULL.
18276 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
18277 emit POINTER_PLUS_EXPR.
18278 (create_tailcall_accumulator): For pointer result type accumulate in
18279 sizetype type.
18280
18281 2013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
18282
18283 * configure.ac: Add backslashes missing from the last change.
18284 * configure: Regenerate.
18285
18286 2013-08-22 Jan Hubicka <jh@susue.cz>
18287
18288 * ipa.c (function_and_variable_visibility): First remember function
18289 was global and then make it local.
18290
18291 2013-08-22 Julian Brown <julian@codesourcery.com>
18292
18293 * configure.ac: Add aarch64 to list of arches which use "nop" in
18294 debug_line test.
18295 * configure: Regenerate.
18296
18297 2013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18298
18299 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
18300 gnu_libc_has_function.
18301 * config/s390/tpf.h: Likewise.
18302
18303 2013-08-22 Jan Hubicka <jh@susue.cz>
18304
18305 * timevar.c (validate_phases): Add cast.
18306
18307 2013-08-22 Jan Hubicka <jh@susue.cz>
18308
18309 * timevar.c (validate_phases): Use size_t for memory.
18310 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
18311
18312 2013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
18313
18314 * pretty-print.h (output_buffer::output_buffer): Declare.
18315 (pretty_printer::pretty_printer): Likewise.
18316 (pp_construct): Remove.
18317 * pretty-print.c (output_buffer::output_buffer): Define.
18318 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
18319 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
18320 (print_gimple_expr): Likewise.
18321 (print_gimple_seq): Likewise.
18322 (gimple_dump_bb): Likewise.
18323 * sched-vis.c (dump_value_slim): Likewise.
18324 (dump_insn_slim): Likewise.
18325 (dump_rtl_slim): Likewise.
18326 (str_pattern_slim): Likewise.
18327 * tree-mudflap.c (mf_varname_tree): Likewise.
18328 * graph.c (print_graph_cfg): Likewise.
18329 (start_graph_dump): Likewise.
18330 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
18331 placement-new.
18332 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
18333 pretty printer initialization.
18334 * coretypes.h (diagnostic_context): Remove superflous type alias
18335 declaration.
18336 (pretty_printer): Likewise. Declare directly as a class.
18337 (pretty_print_info): Remove declaration as class.
18338 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
18339 and pp_clear_output_area.
18340 (asan_add_global): Likewise.
18341
18342 2013-08-22 Jan Hubicka <jh@suse.cz>
18343
18344 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
18345 * ipa-utils.h (update_type_inheritance_graph): Declare.
18346 (possible_polymorphic_call_target_p): Declare.
18347 (possible_polymorphic_call_target_p): New.
18348 * ipa-devirt.c: Update toplevel comments.
18349 (cached_polymorphic_call_targets): Move up.
18350 (odr_type_d): Move ID down.
18351 (polymorphic_type_binfo_p): Update comment.
18352 (odr_hasher::remove): Likewise;
18353 (get_odr_type): Set anonymous_namespace.
18354 (dump_odr_type): Dump it.
18355 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
18356 (maybe_record_node): Record node in cached_polymorphic_call_targets.
18357 (record_binfo): Add comment.
18358 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
18359 built.
18360 (devirt_node_removal_hook): Do not iCE when cache is freed.
18361 (possible_polymorphic_call_target_p): New predicate.
18362 (update_type_inheritance_graph): New function.
18363
18364 2013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
18365 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18366 Sergey Lega <sergey.s.lega@intel.com>
18367 Anna Tikhonova <anna.tikhonova@intel.com>
18368 Ilya Tocar <ilya.tocar@intel.com>
18369 Andrey Turetskiy <andrey.turetskiy@intel.com>
18370 Ilya Verbin <ilya.verbin@intel.com>
18371 Kirill Yukhin <kirill.yukhin@intel.com>
18372 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18373
18374 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
18375 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
18376 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
18377 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
18378 (OPTION_MASK_ISA_AVX2_UNSET): Update.
18379 (OPTION_MASK_ISA_AVX512F_UNSET): New.
18380 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
18381 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
18382 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
18383 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
18384 OPT_mavx512pf, OPT_mavx512er cases.
18385 * config/i386/constraints.md (v): New constraint.
18386 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
18387 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
18388 (bit_AVX512CD): New.
18389 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
18390 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
18391 * config/i386/i386-c.c (ix86_target_macros_internal):
18392 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
18393 __AVX512PF__.
18394 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
18395 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
18396 * config/i386/i386.c (regclass_map, dbx_register_map)
18397 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
18398 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
18399 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
18400 -mavx512pf options.
18401 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
18402 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
18403 -mavx512pf options. Fix formatting.
18404 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
18405 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
18406 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
18407 -mavx512cd, -mavx512pf options.
18408 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
18409 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
18410 (ix86_preferred_output_reload_class): Replace SSE_REGS with
18411 ALL_SSE_REGS.
18412 (ix86_hard_regno_mode_ok): Support 512-bit registers.
18413 (ix86_set_reg_reg_cost): Ditto.
18414 (x86_order_regs_for_local_alloc): Ditto.
18415 (MAX_VECT_LEN): Extend to 64-byte.
18416 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
18417 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
18418 (TARGET_AVX512ER, TARGET_AVX512CD): New.
18419 (BIGGEST_ALIGNMENT): Extend to 512-bits.
18420 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
18421 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
18422 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
18423 (SSE_REG_MODE_P): Support new modes.
18424 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
18425 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
18426 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
18427 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
18428 (REG_CLASS_CONTENTS): Add new registers.
18429 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
18430 (EXT_REX_SSE_REGNO_P): New.
18431 (HI_REGISTER_NAMES): Add new registers.
18432 * config/i386/i386.md: Define constants for new registers.
18433 (mode): Add new 512-bit modes.
18434 (prefix): Support evex prefix.
18435 (isa): Support avx512f, noavx512f, fma_avx512f.
18436 (ssemodesuffix): Add new 512-bit modes.
18437 (movxi): New.
18438 (*movxi_internal_avx512f): Ditto.
18439 (*movdi_internal): Replace constraint "x" with the new constraint "v".
18440 Support MODE_XI.
18441 (*movsi_internal): Likewise.
18442 (*movdf_internal): Likewise.
18443 (*movsf_internal): Likewise.
18444 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
18445 (<code><mode>3): Likewise.
18446 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
18447 New.
18448 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
18449 with the new constraint "v".
18450 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
18451 modes.
18452 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
18453 with the new constraint "v".
18454 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
18455 (<sse2>_storedqu<avxsizesuffix>): Likewise.
18456 (*<plusminus_insn><mode>3): Likewise.
18457 (<sse>_vm<plusminus_insn><mode>3): Likewise.
18458 (*mul<mode>3): Likewise.
18459 (<sse>_vmmul<mode>3): Likewise.
18460 (<sse>_div<mode>3): Likewise.
18461 (<sse>_vmdiv<mode>3): Likewise.
18462 (<sse>_sqrt<mode>2): Likewise.
18463 (<sse>_vmsqrt<mode>2): Likewise.
18464 (*<code><mode>3_finite): Likewise.
18465 (*<code><mode>3) <smaxmin>: Likewise.
18466 (<sse>_vm<code><mode>3): Likewise.
18467 (*<code><mode>3) <any_logic>: Likewise.
18468 (*fma_fmadd_<mode>): Likewise.
18469 (*fma_fmsub_<mode>): Likewise.
18470 (*fma_fnmadd_<mode>): Likewise.
18471 (*fma_fnmsub_<mode>): Likewise.
18472 (*fma_fmaddsub_<mode>): Likewise.
18473 (*fma_fmsubadd_<mode>): Likewise.
18474 (*fmai_fmadd_<mode>): Likewise.
18475 (*fmai_fmsub_<mode>): Likewise.
18476 (*fmai_fnmadd_<mode>): Likewise.
18477 (*fmai_fnmsub_<mode>): Likewise.
18478 (sse_cvtsi2ss): Likewise.
18479 (sse_cvtsi2ssq): Likewise.
18480 (sse_cvtss2si): Likewise.
18481 (sse_cvtss2si_2): Likewise.
18482 (sse_cvtss2siq): Likewise.
18483 (sse_cvtss2siq_2): Likewise.
18484 (sse_cvttss2si): Likewise.
18485 (sse_cvtss2siq_2): Likewise.
18486 (float<sseintvecmodelower><mode>2): Likewise.
18487 (sse2_cvtsd2si_2): Likewise.
18488 (sse2_cvtsd2siq_2): Likewise.
18489 (*<plusminus_insn><mode>3): Likewise.
18490 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
18491 (*<sse4_1_avx2>_mul<mode>3): Likewise.
18492 (ashr<mode>3): Likewise.
18493 (<shift_insn><mode>3): Likewise.
18494 (avx2_<code><mode>3): Likewise.
18495 (*avx2_<code><mode>3): Likewise.
18496 (*andnot<mode>3): Likewise.
18497 (*<code><mode>3) <any_logic>: Likewise.
18498 (abs<mode>2): Likewise.
18499 (avx2_permvar<mode>): Likewise.
18500 (avx2_perm<mode>_1): Likewise.
18501 (*avx_vpermilp<mode>): Likewise.
18502 (avx_vpermilvar<mode>3): Likewise.
18503 (avx2_ashrv<mode>): Likewise.
18504 (avx2_<shift_insn>v<mode>): Likewise.
18505 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
18506 -mavx512cd.
18507 * doc/rtl.texi: Document XImode.
18508
18509 2013-08-21 Jeff Law <law@redhat.com>
18510
18511 * tree-flow.h (register_jump_thread): Pass vector of edges
18512 instead of each important edge.
18513 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
18514 thread path into a vector and pass that to register_jump_thread.
18515 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
18516 passed in edge vector to the current 3-edge form.
18517
18518 Revert:
18519 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
18520
18521 * dce.c (fini_dce): Call df_analyze again just in case
18522 delete_unmarked_insns removed anything.
18523
18524 2013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
18525
18526 * reload.h (struct reg_equivs): Rename to ..
18527 (struct reg_equivs_s): .. this.
18528
18529 2013-08-20 Martin Liska <marxin.liska@gmail.com>
18530
18531 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
18532
18533 2013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18534
18535 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
18536
18537 2013-08-21 Jeff Law <law@redhat.com>
18538
18539 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
18540 simplify assignments too. If the RHS collapses to a singleton
18541 range, then return the value for the range.
18542
18543 2013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
18544
18545 * config/i386/sse.md (V16): Rename to...
18546 (VMOVE): this.
18547 (mov<mode>): Update iterator name.
18548 (*mov<mode>_internal): Ditto.
18549 (push<mode>1): Ditto.
18550 (movmisalign<mode>): Ditto.
18551
18552 2013-08-20 Jan Hubicka <jh@suse.cz>
18553
18554 PR bootstrap/58186
18555 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
18556 entry for direct edges.
18557 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
18558
18559 2013-08-20 David Malcolm <dmalcolm@redhat.com>
18560
18561 Revert my last two changes, r201865 and r201864:
18562
18563 Revert r201865:
18564 2013-08-20 David Malcolm <dmalcolm@redhat.com>
18565
18566 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
18567 instances can own GC refs.
18568
18569 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
18570 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
18571 (gcc::context::gt_pch_nx): Likewise.
18572 (gcc::context::gt_pch_nx): Likewise.
18573 * ggc.h (gt_ggc_mx <T>): New.
18574 (gt_pch_nx_with_op <T>): New.
18575 (gt_pch_nx <T>): New.
18576 * passes.c (opt_pass::gt_ggc_mx): New.
18577 (opt_pass::gt_pch_nx): New.
18578 (opt_pass::gt_pch_nx_with_op): New.
18579 (pass_manager::gt_ggc_mx): New.
18580 (pass_manager::gt_pch_nx): New.
18581 (pass_manager::gt_pch_nx_with_op): New.
18582 (pass_manager::operator new): Use
18583 ggc_internal_cleared_alloc_stat rather than xcalloc.
18584 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
18585 (pass_manager::gt_ggc_mx): New.
18586 (pass_manager::gt_pch_nx): New.
18587 (pass_manager::gt_pch_nx_with_op): New.
18588 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
18589 (opt_pass::operator new): New.
18590 (opt_pass::gt_ggc_mx): New.
18591 (opt_pass::gt_pch_nx): New.
18592 (opt_pass::gt_pch_nx_with_op): New.
18593
18594 Revert r201864:
18595 2013-08-20 David Malcolm <dmalcolm@redhat.com>
18596
18597 * Makefile.in (GTFILES): Add context.h.
18598 * context.c (gcc::context::operator new): New.
18599 (gcc::context::gt_ggc_mx): New.
18600 (gcc::context::gt_pch_nx): New.
18601 (gcc::context::gt_pch_nx): New.
18602 * context.h (gcc::context): Add GTY((user)) marking.
18603 (gcc::context::operator new): New.
18604 (gcc::context::gt_ggc_mx): New.
18605 (gcc::context::gt_pch_nx): New.
18606 (gcc::context::gt_pch_nx): New.
18607 (g): Add GTY marking.
18608 (gt_ggc_mx (gcc::context *)): New.
18609 (gt_pch_nx (gcc::context *)): New.
18610 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
18611 void *cookie)): New.
18612 * gengtype.c (open_base_files) <ifiles>: Add context.h.
18613
18614 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
18615
18616 * dce.c (fini_dce): Call df_analyze again just in case
18617 delete_unmarked_insns removed anything.
18618
18619 2013-08-20 Teresa Johnson <tejohnson@google.com>
18620
18621 PR rtl-optimizations/57451
18622 * final.c (reemit_insn_block_notes): Prevent lexical blocks
18623 from crossing split section boundaries.
18624
18625 2013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
18626
18627 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
18628 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
18629 with MULTLIB_DEFAULTS.
18630
18631 2013-08-20 Nick Clifton <nickc@redhat.com>
18632
18633 * target.def (narrow_volatile_bitfield): Note that the default
18634 value is false, not !TARGET_STRICT_ALIGN.
18635 * doc/tm.texi: Regenerate.
18636
18637 2013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
18638
18639 Fix LIB_SPEC for systems without libpthread.
18640
18641 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
18642 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
18643 for Android.
18644 * config/i386/linux-common.h: Likewise.
18645 * config/mips/linux-common.h: Likewise.
18646
18647 2013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
18648
18649 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
18650 checks.
18651
18652 2013-08-20 David Malcolm <dmalcolm@redhat.com>
18653
18654 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
18655 instances can own GC refs.
18656
18657 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
18658 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
18659 (gcc::context::gt_pch_nx): Likewise.
18660 (gcc::context::gt_pch_nx): Likewise.
18661 * ggc.h (gt_ggc_mx <T>): New.
18662 (gt_pch_nx_with_op <T>): New.
18663 (gt_pch_nx <T>): New.
18664 * passes.c (opt_pass::gt_ggc_mx): New.
18665 (opt_pass::gt_pch_nx): New.
18666 (opt_pass::gt_pch_nx_with_op): New.
18667 (pass_manager::gt_ggc_mx): New.
18668 (pass_manager::gt_pch_nx): New.
18669 (pass_manager::gt_pch_nx_with_op): New.
18670 (pass_manager::operator new): Use
18671 ggc_internal_cleared_alloc_stat rather than xcalloc.
18672 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
18673 (pass_manager::gt_ggc_mx): New.
18674 (pass_manager::gt_pch_nx): New.
18675 (pass_manager::gt_pch_nx_with_op): New.
18676 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
18677 (opt_pass::operator new): New.
18678 (opt_pass::gt_ggc_mx): New.
18679 (opt_pass::gt_pch_nx): New.
18680 (opt_pass::gt_pch_nx_with_op): New.
18681
18682 2013-08-20 David Malcolm <dmalcolm@redhat.com>
18683
18684 * Makefile.in (GTFILES): Add context.h.
18685 * context.c (gcc::context::operator new): New.
18686 (gcc::context::gt_ggc_mx): New.
18687 (gcc::context::gt_pch_nx): New.
18688 (gcc::context::gt_pch_nx): New.
18689 * context.h (gcc::context): Add GTY((user)) marking.
18690 (gcc::context::operator new): New.
18691 (gcc::context::gt_ggc_mx): New.
18692 (gcc::context::gt_pch_nx): New.
18693 (gcc::context::gt_pch_nx): New.
18694 (g): Add GTY marking.
18695 (gt_ggc_mx (gcc::context *)): New.
18696 (gt_pch_nx (gcc::context *)): New.
18697 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
18698 void *cookie)): New.
18699 * gengtype.c (open_base_files) <ifiles>: Add context.h.
18700
18701 2013-08-20 Alan Modra <amodra@gmail.com>
18702
18703 PR target/57865
18704 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
18705 (rs6000_emit_epilogue): Likewise.
18706
18707 2013-08-19 Dehao Chen <dehao@google.com>
18708
18709 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
18710
18711 2013-08-19 Peter Bergner <bergner@vnet.ibm.com>
18712 Jakub Jelinek <jakub@redhat.com>
18713
18714 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
18715 (BUILT_IN_FABSD64): Likewise.
18716 (BUILT_IN_FABSD128): Likewise.
18717 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
18718 (fold_builtin_1): Likewise.
18719 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
18720 destination and source operands.
18721 (*abstd2_fpr): Likewise.
18722 (*nabstd2_fpr): Likewise.
18723
18724 2013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
18725
18726 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
18727 JUMP_P and INSN_P.
18728
18729 2013-08-19 Aldy Hernandez <aldyh@redhat.com>
18730
18731 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
18732 incomplete.
18733
18734 2013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
18735
18736 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
18737 * builtins.c (default_libc_has_function): New.
18738 (gnu_libc_has_function): Ditto.
18739 (no_c99_libc_has_function): Ditto.
18740 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
18741 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
18742 (fold_builtin_sincos): Likewise.
18743 (fold_builtin_cexp): Likewise.
18744 * builtins.def (DEF_C94_BUILTIN): Likewise.
18745 (DEF_C99_BUILTIN): Likewise.
18746 (DEF_C99_C90RES_BUILTIN): Likewise.
18747 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
18748 definitions to using this define.
18749 * config/darwin-protos.h (darwin_libc_has_function): New.
18750 * config/darwin.c (darwin_libc_has_function): Ditto.
18751 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
18752 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
18753 * config/darwin.h: Ditto.
18754 * config/elfos.h: Ditto.
18755 * config/freebsd.h: Ditto.
18756 * config/i386/cygming.h: Ditto.
18757 * config/i386/djgpp.h: Ditto.
18758 * config/i386/i386-interix.h: Ditto.
18759 * config/microblaze/microblaze.h: Ditto.
18760 * config/mmix/mmix.h: Ditto.
18761 * config/gnu-user.h: Ditto.
18762 * config/ia64/hpux.h: Ditto.
18763 * config/pa/pa-hpux.h: Ditto.
18764 * config/pdp11/pdp11.h: Ditto.
18765 * config/picochip/picochip.h: Ditto.
18766 * config/linux.h: Ditto.
18767 * config/netbsd.h: Ditto.
18768 * config/openbsd.h: Ditto.
18769 * config/rs6000/aix43.h: Ditto.
18770 * config/rs6000/aix51.h: Ditto.
18771 * config/rs6000/aix52.h: Ditto.
18772 * config/rs6000/aix53.h: Ditto.
18773 * config/rs6000/aix61.h: Ditto.
18774 * config/rs6000/darwin.h: Ditto.
18775 * config/rs6000/linux.h: Ditto.
18776 * config/rs6000/linux64.h: Ditto.
18777 * config/s390/tpf.h: Ditto.
18778 * config/sol2-10.h: Ditto.
18779 * config/sol2.h: Ditto.
18780 * config/vms/vms.h: Ditto.
18781 * config/vxworks.h: Ditto.
18782 * config/linux-android.c (linux_android_libc_has_function):
18783 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
18784 * config/linux-protos.h (linux_android_libc_has_function):
18785 New declaration.
18786 * config/i386/i386.c (ix86_libc_has_function): New.
18787 * config/i386/i386-protos.h
18788 (ix86_libc_has_function): New declaration.
18789 * config/i386/i386.md
18790 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
18791 ("isinf<mode>2): Likewise.
18792 * convert.c (convert_to_integer): Using new target hook
18793 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
18794 TARGET_C99_FUNCTIONS.
18795 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
18796 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
18797 * coretypes.h (function_class): New enum for different
18798 classes of functions.
18799 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
18800 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
18801 (TARGET_HAS_SINCOS): Likewise.
18802 (TARGET_LIBC_HAS_FUNCTION): New.
18803 * doc/tm.texi: Regenerated.
18804 * targhooks.h (default_libc_has_function): New declaration.
18805 (no_c99_libc_has_function): Ditto.
18806 (gnu_libc_has_function): Ditto.
18807 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
18808 and TARGET_HAS_SINCOS.
18809
18810 2013-08-18 Jan Hubicka <jh@suse.cz>
18811
18812 * Makeifle-in (ipa-devirt.o): New.
18813 (GTFILES): Add ipa-utils.h and ipa-devirt.c
18814 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
18815 (analyze_functions): Look into possible targets of polymorphic call.
18816 * dumpfile.c (dump_files): Add type-inheritance dump.
18817 * dumpfile.h (TDI_inheritance): New.
18818 * ipa-devirt.c: New file.
18819 * ipa-utils.h (odr_type_d): Forward declare.
18820 (odr_type): New type.
18821 (build_type_inheritance_graph): Declare.
18822 (possible_polymorphic_call_targets): Declare and introduce inline
18823 variant when only edge is pased.
18824 (dump_possible_polymorphic_call_targets): Likewise.
18825 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
18826 * tree.c (type_in_anonymous_namespace_p): Break out from ...
18827 (types_same_for_odr): ... here.
18828 * tree.h (type_in_anonymous_namespace_p): Declare.
18829
18830 2013-08-18 Jakub Jelinek <jakub@redhat.com>
18831
18832 PR tree-optimization/58006
18833 * tree-parloops.c (take_address_of): Don't ICE if get_name
18834 returns NULL.
18835 (eliminate_local_variables_stmt): Remove clobber stmts.
18836
18837 2013-08-18 Eric Botcazou <ebotcazou@adacore.com>
18838
18839 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
18840 error message is issued for an alias to undefined symbol.
18841
18842 2013-08-18 Jan Hubicka <jh@suse.cz>
18843
18844 * cgraph.c (cgraph_create_indirect_edge): Discover
18845 polymorphic calls and record basic info into indirect_info.
18846 * gimple-fold.c (gimple_fold_call): When doing BINFO based
18847 devirtualization, ignore objc function calls.
18848 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
18849 call with no parm index info.
18850 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
18851 * tree.c (virtual_method_call_p): New function.
18852 * tree.h (virtual_method_call_p): Declare.
18853
18854 2013-08-16 Jan Hubicka <jh@suse.cz>
18855
18856 PR middle-end/58179
18857 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
18858
18859 2013-08-16 David Edelsohn <dje.gcc@gmail.com>
18860
18861 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
18862 attribute.
18863
18864 2013-08-16 David Malcolm <dmalcolm@redhat.com>
18865
18866 * gengtype.c (type_for_name): Add special-case support for
18867 locating types within the "gcc::" namespace.
18868 (open_base_files): Emit a "using namespace gcc" directive.
18869
18870 2013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
18871
18872 PR target/58160
18873 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
18874 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
18875
18876 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
18877 array instead of each individual operand as a separate argument.
18878 (emit_fusion_gpr_load): Likewise.
18879 (expand_fusion_gpr_load): Add new function declaration.
18880
18881 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
18882 signature to have the operands passed as an array, instead of as
18883 separate arguments. Allow ZERO_EXTEND to be in the memory
18884 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
18885 depend on the register live/dead flags when peepholes are run.
18886 (expand_fusion_gpr_load): New function to be called from the
18887 peephole2 pass, to change the register that addis sets to be the
18888 target register.
18889 (emit_fusion_gpr_load): Change the calling signature to have the
18890 operands passed as an array, instead of as separate arguments.
18891 Allow ZERO_EXTEND to be in the memory address, and also
18892 SIGN_EXTEND if -mpower8-fusion-sign.
18893
18894 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
18895 unspec enumeration.
18896 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
18897 adjust the register addis loads up in the peephole2 pass. Do not
18898 depend on the register live/dead state when the peephole pass is done.
18899
18900 2013-08-16 David Malcolm <dmalcolm@redhat.com>
18901
18902 * gengtype.c (create_user_defined_type): Ensure that the kind
18903 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
18904 declaration is seen before the GTY((user)) marking.
18905
18906 2013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
18907
18908 PR target/58105
18909 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
18910
18911 2013-08-16 Jan Hubicka <jh@suse.cz>
18912
18913 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
18914 arugment expected_type.
18915 (gimple_fold_call): Use it.
18916 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
18917 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
18918 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
18919 (try_make_edge_direct_virtual_call): Likewise.
18920 * tree.c (obj_type_ref_class): New.
18921 * tree.h (obj_type_ref_class): Use it.
18922
18923 2013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
18924
18925 * sched-vis.c (rtl_slim_pp_initialized): Remove.
18926 (rtl_slim_pp): Likewise.
18927 (init_rtl_slim_pretty_print): Likewise.
18928 (dump_value_slim): Don't call it. Use local pretty printer.
18929 (dump_insn_slim): Likewise.
18930 (dump_rtl_slim): Likewise.
18931 (str_pattern_slim): Likewise.
18932 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
18933 Simplify.
18934
18935 2013-08-16 Jakub Jelinek <jakub@redhat.com>
18936
18937 PR tree-optimization/58164
18938 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
18939 walk gimple_goto_dest of GIMPLE_GOTO.
18940
18941 PR tree-optimization/58165
18942 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
18943 bi_call must be the last stmt in a bb, don't split_block, instead
18944 use fallthru edge from it and give up if there is none.
18945 Release conds vector when returning early.
18946
18947 2013-08-14 Xinliang David Li <davidxl@google.com>
18948
18949 * config/i386/i386.c (ix86_option_override_internal):
18950 Remove unused variable and field.
18951
18952 2013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18953
18954 PR target/57949
18955 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
18956 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
18957 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
18958 and Linux, correct BLKmode alignment when 128-bit alignment is
18959 required and compatibility flag is not set.
18960 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
18961 for zero-size arguments when compatibility flag is not set.
18962
18963 2013-08-14 Jakub Jelinek <jakub@redhat.com>
18964
18965 PR tree-optimization/58145
18966 * tree-sra.c (build_ref_for_offset): If prev_base has
18967 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
18968
18969 2013-08-14 Xinliang David Li <davidxl@google.com>
18970
18971 * config/i386/i386.c (ix86_option_override_internal):
18972 Fix uninitialized variable error.
18973
18974 2013-08-14 Xinliang David Li <davidxl@google.com>
18975
18976 * config/i386/i386.opt: Define two new options.
18977 * config/i386/x86-tune.def: Add arch selector field in macros.
18978 * config/i386/i386.h: Adjust macro definition.
18979 * config/i386/i386.c (ix86_option_override_internal):
18980 Refactor the code.
18981 (parse_mtune_ctrl_str): New function.
18982 (set_ix86_tune_features): New function.
18983 (ix86_function_specific_restore): Call the new helper function.
18984
18985 2013-08-14 Andrey Belevantsev <abel@ispras.ru>
18986
18987 PR rtl-optimization/57662
18988 * sel-sched.c (code_motion_process_successors): When the current insn
18989 is removed after the recursive traversal, break from the loop.
18990 Add comments and debug printouts.
18991
18992 2013-08-14 Jakub Jelinek <jakub@redhat.com>
18993 Alexandre Oliva <aoliva@redhat.com>
18994
18995 PR target/58067
18996 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
18997 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
18998 there also UNSPEC_PLTOFF.
18999
19000 2013-08-14 Marek Polacek <polacek@redhat.com>
19001
19002 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
19003 NUM_CONDITIONS bit positions.
19004
19005 2013-08-13 Cary Coutant <ccoutant@google.com>
19006
19007 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
19008 (attr_checksum): Hash vector contents instead of pointer.
19009 (attr_checksum_ordered): Likewise.
19010
19011 2013-08-13 Uros Bizjak <ubizjak@gmail.com>
19012
19013 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
19014 when Pmode != word_mode. Add length_address attribute.
19015 (sse3_monitor_<mode>): Merge from sse3_monitor and
19016 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
19017 Pmode != word_mode. Update insn length attribute.
19018 * config/i386/i386.c (ix86_option_override_internal): Update
19019 ix86_gen_monitor selection for merged sse3_monitor insn.
19020
19021 2013-08-13 Julian Brown <julian@codesourcery.com>
19022
19023 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
19024 perform invalid legitimization on greater-than-word-size modes for
19025 TARGET_E500_DOUBLE.
19026
19027 2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
19028
19029 * ira.c (setup_class_translate_array): Use aclass instead of cl
19030 for classes not fully covered by allocno classes.
19031
19032 2013-08-13 Jakub Jelinek <jakub@redhat.com>
19033
19034 PR tree-optimization/57661
19035 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
19036 * tree-inline.c (tree_function_versioning): Initialize it.
19037 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
19038 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
19039 that is not being copied.
19040
19041 PR sanitizer/56417
19042 * asan.c (instrument_strlen_call): Fix typo in comment.
19043 Use char * type even for the lhs of POINTER_PLUS_EXPR.
19044
19045 2013-08-13 Steve Ellcey <sellcey@mips.com>
19046
19047 * config/mips/mips.md (prefetch): Use lw instead of ld on
19048 loongson in 32bit mode.
19049
19050 2013-08-13 Nick Clifton <nickc@redhat.com>
19051
19052 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
19053
19054 2013-08-13 Jan Hubicka <jh@suse.cz>
19055
19056 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
19057 introduced edge; fix typo in sanity check.
19058 (cgraph_resolve_speculation): Export; improve diagnostic.
19059 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
19060 speculation at type mismatch.
19061 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
19062 (cgraph_resolve_speculation): Declare.
19063 (symtab_can_be_discarded): New function.
19064 * value-prof.c (gimple_ic_transform): Remove actual transform code.
19065 * ipa-inline-transform.c (speculation_removed): New global var.
19066 (clone_inlined_nodes): See if speculation can be removed.
19067 (inline_call): If speculations was removed, we growths may not match.
19068 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
19069 (speculation_useful_p): New function.
19070 (resolve_noninline_speculation): New function.
19071 (inline_small_functions): Resolve useless speculations.
19072 * ipa-inline.h (speculation_useful_p): Declare
19073 * ipa.c (can_replace_by_local_alias): Simplify.
19074 (ipa_profile): Produce speculative calls in non-lto, too;
19075 add simple cost model; produce local aliases.
19076
19077 2013-08-13 David Malcolm <dmalcolm@redhat.com>
19078
19079 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
19080 PASS_MANAGER_H.
19081
19082 2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
19083
19084 * config/i386/i386.c (ix86_function_versions): Use error + inform.
19085
19086 2013-08-12 Uros Bizjak <ubizjak@gmail.com>
19087
19088 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
19089 iterator instead of X87MODEF.
19090
19091 2013-08-12 Perez Read <netfirewall@gmail.com>
19092
19093 PR target/58132
19094 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
19095 operand 0 for intel asm alternative.
19096 (*movabs<mode>_2): Ditto for operand 1.
19097
19098 2013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
19099
19100 * config/aarch64/arm_none.h
19101 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
19102
19103 2013-08-12 Nick Clifton <nickc@redhat.com>
19104
19105 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
19106
19107 2013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
19108
19109 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
19110 expand for QI/HImode operand to produce more effictive code for
19111 unsigned char(short) --> float(double) conversion.
19112
19113 2013-08-12 Alexander Monakov <amonakov@ispras.ru>
19114
19115 * doc/invoke.texi: Mention that -ftls-model does not force the final
19116 model.
19117
19118 2013-08-12 Marek Polacek <polacek@redhat.com>
19119 Marc Glisse <marc.glisse@inria.fr>
19120
19121 PR tree-optimization/57980
19122 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
19123 when creating -1 constant.
19124
19125 2013-08-10 Jan Hubicka <jh@suse.cz>
19126
19127 Workaround binutils PR14342.
19128 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
19129 (gimple_init_edge_profiler): Likewise.
19130 (gimple_gen_ic_func_profiler): Likewise.
19131
19132 2013-08-09 Jan Hubicka <jh@suse.cz>
19133
19134 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
19135
19136 2013-08-09 Xinliang David Li <davidxl@google.com>
19137
19138 * config/i386/stringop.def: New file.
19139 * config/i386/stringop.opt: New file.
19140 * config/i386/i386-opts.h: Include stringopt.def.
19141 * config/i386/i386.opt: Include stringopt.opt.
19142 * config/i386/i386.c (ix86_option_override_internal):
19143 Override default size based stringop inline strategies with options.
19144 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
19145 New function.
19146
19147 2013-08-09 Jan Hubicka <jh@suse.cz>
19148
19149 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
19150
19151 2013-08-09 Jan Hubicka <jh@suse.cz>
19152
19153 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
19154 CGRAPH_FREQ_MAX.
19155 (dump_cgraph_node): Dump profile-id.
19156 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
19157 and common_target_probability.
19158 * lto-cgraph.c (lto_output_edge): Stream common targets.
19159 (lto_output_node): Stream profile ids.
19160 (input_node): Stream profile ids.
19161 (input_edge): Stream common targets.
19162 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
19163 * ipa.c: Include value-prof.h
19164 (ipa_profile_generate_summary): Turn indirect call statement histograms
19165 into common targets.
19166 (ipa_profile): Turn common targets into speculative edges.
19167
19168 2013-08-09 Jan Hubicka <jh@suse.cz>
19169
19170 * cgraph.h (cgraph_node): Add profile_id.
19171 * value-prof.c (cgraph_node_map): Turn into pointer_map.
19172 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
19173 (del_node_map): Update.
19174 (find_func_by_funcdef_no): Replace by ...
19175 (find_func_by_profile_id): ... this one.
19176 (gimple_ic_transform): Do not remove useful histograms when
19177 speculation is not done; dump info when indirect call removal
19178 can happen at LTO.
19179 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
19180 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
19181 (__gcov_indirect_call_profiler_v2): .. this one.
19182 * profile.h (init_node_map): Update.
19183 * coverage.c (coverage_compute_profile_id): New function.
19184 * coverage.h (coverage_compute_profile_id): Declare.
19185 * tree-profile.c (init_ic_make_global_vars): Make
19186 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
19187 (gimple_init_edge_profiler): Update prototype of
19188 __gcov_indirect_call_profiler.
19189 (gimple_gen_ic_func_profiler): Simplify.
19190 (tree_profiling): Use init_node_map
19191
19192 2013-08-09 Jan Hubicka <jh@suse.cz>
19193
19194 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
19195 non-speculative refs.
19196 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
19197 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
19198 (cgraph_set_call_stmt): Likewise.
19199 (cgraph_create_edge_1): Fix release checking compilatoin;
19200 clear lto_stmt_uid.
19201 (cgraph_free_edge): Free indirect info.
19202 (cgraph_turn_edge_to_speculative): New function.
19203 (cgraph_speculative_call_info): New function.
19204 (cgraph_make_edge_direct): Return direct edge; handle speculation.
19205 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
19206 (dump_cgraph_node): Dump speculation.
19207 (verify_edge_count_and_frequency): Accept speculative edges.
19208 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
19209 (verify_cgraph_node): Handle speculation.
19210 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
19211 (cgraph_set_call_stmt): Update prototype.
19212 (cgraph_make_edge_direct): Update prototype.
19213 (cgraph_speculative_call_info): Declare.
19214 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
19215 to change; update call of ipa_find_references.
19216 * ipa-ref.c (ipa_record_reference): Fix return value; clear
19217 lto_stmt_uid and speculative flags.
19218 (ipa_dump_references): Dump speculation.
19219 (ipa_clone_references): Clone speculative flag.
19220 (ipa_clone_referring): Likewise.
19221 (ipa_clone_ref): New function.
19222 (ipa_find_reference): Look into lto_stmt_uids
19223 (ipa_clear_stmts_in_references): Do not clear speculative calls.
19224 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
19225 (ipa_find_reference): Update declaration.
19226 (ipa_clone_ref): Declare.
19227 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
19228 stream speculative flag.
19229 (lto_output_ref): Stream statements uids and speculation.
19230 (input_ref): Likewise.
19231 (input_edge): Stream speuclation.
19232 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
19233 (cgraph_set_call_stmt_including_clones): Handle speculation.
19234 * ipa-inline.c (heap_edge_removal_hook): New function.
19235 (inline_small_functions): Register it.
19236 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
19237 also initialize refs.
19238 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
19239 edge to change.
19240 (try_make_edge_direct_simple_call): Likewise.
19241 (try_make_edge_direct_simple_call): Likewise.
19242 (update_indirect_edges_after_inlining): Likewise.
19243 (remove_described_reference): Look proper lto_stmt_uid.
19244 (propagate_controlled_uses): Likewise.
19245 (propagate_controlled_uses): Liekwise.
19246 * tree-inline.c (copy_bb): Copy speculative edges.
19247 (redirect_all_calls): New function.
19248 (copy_cfg_body): Do redirection after loop info is updated.
19249 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
19250
19251 2013-08-09 Jan Hubicka <jh@suse.cz>
19252
19253 * lto-streamer-out.c (output_function): Renumber PHIs.
19254 * lto-streamer-in.c (input_function): Likewise.
19255
19256 2013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
19257
19258 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
19259 (get_lane_unsigned): Likewise.
19260 (dup_lane_scalar): Likewise.
19261 (get_lane): enable for VALL.
19262 * config/aarch64/aarch64-simd.md
19263 (aarch64_dup_lane_scalar<mode>): Remove.
19264 (aarch64_get_lane_signed<mode>): Likewise.
19265 (aarch64_get_lane_unsigned<mode>): Likewise.
19266 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
19267 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
19268 (aarch64_get_lane<mode>): Enable for all vector modes.
19269 (aarch64_get_lanedi): Remove misleading constraints.
19270 * config/aarch64/arm_neon.h
19271 (__aarch64_vget_lane_any): Define.
19272 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
19273 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
19274 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
19275 * config/aarch64/iterators.md (VDQQH): New.
19276 (VDQQHS): Likewise.
19277 (vwcore): Likewise.
19278
19279 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
19280
19281 * configure.ac: Add GAS check for LEON instructions on SPARC.
19282 * configure: Regenerate.
19283 * config.in: Likewise.
19284 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
19285 sparc*-*-* block.
19286 * config/sparc/sparc.opt (LEON, LEON3): New masks.
19287 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
19288 for LEON or LEON3.
19289 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
19290 (AS_LEON_FLAG): New macro.
19291 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
19292 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
19293 Deal with LEON and LEON3 for the memory model.
19294 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
19295 (atomic_compare_and_swap<mode>_1): Likewise.
19296 (*atomic_compare_and_swap<mode>_1): Likewise.
19297
19298 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19299
19300 * config/arm/neon.md (vcond): Fix floating-point vector
19301 comparisons against 0.
19302
19303 2013-08-08 Vladimir Makarov <vmakarov@redhat.com>
19304
19305 * lra-constraints.c (emit_spill_move): Remove assert.
19306 (process_alt_operands): Add more debugging
19307 output. Increase reject for spilling into memory. Decrease
19308 reject for reloading scratch.
19309 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
19310
19311 2013-08-08 Steve Ellcey <sellcey@mips.com>
19312
19313 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
19314 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
19315 micromips incompatible. Add nan2008.
19316 (MULTILIB_DIRNAMES): Add nan2008.
19317 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
19318 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
19319 and micromips incompatible. Add nan2008.
19320 (MULTILIB_DIRNAMES): Add nan2008.
19321 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
19322
19323 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
19324
19325 PR rtl-optimization/58079
19326 * combine.c (combine_simplify_rtx): Avoid using SUBST if
19327 simplify_comparison has widened a comparison with an integer.
19328
19329 2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19330
19331 * config/arm/neon.md (movmisalign<mode>): Disable when we
19332 don't allow unaligned accesses.
19333 (*movmisalign<mode>_neon_store): Likewise.
19334 (*movmisalign<mode>_neon_load): Likewise.
19335 (*movmisalign<mode>_neon_store): Likewise.
19336 (*movmisalign<mode>_neon_load): Likewise.
19337
19338 2013-08-08 Jan Hubicka <jh@suse.cz>
19339
19340 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
19341 (make_pass_rebuild_cgraph_edges): Also clear references.
19342 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
19343 * ipa-inline-transform.c (inline_transform): Remove all references
19344 after inlining.
19345 * cgraphunit.c (expand_function): Remove all references after
19346 expansion.
19347 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
19348 (ipa_find_reference): Rewrite to iterator.
19349 (remove_stmt_references): Likewise.
19350 (ipa_clear_stmts_in_references): New function.
19351 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
19352 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
19353 clear references.
19354 * ipa-split.c (split_function): Remove references in split function.
19355
19356 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
19357
19358 PR target/57431
19359 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
19360 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
19361
19362 2013-08-08 Richard Earnshaw <rearnsha@arm.com>
19363
19364 PR target/56979
19365 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
19366 suggested mode for the assignment isn't compatible with the
19367 registers required.
19368
19369 2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
19370
19371 PR target/58065
19372 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
19373
19374 2013-08-07 Xinliang David Li <davidxl@google.com>
19375
19376 * config/i386/i386.opt: New option -mtune-ctrl=.
19377 * config/i386/x86-tune.def: New file.
19378 * config/i386/i386.h: include x86-tune.def.
19379 * config/i386/i386.c (ix86_option_override_internal):
19380 Parsing -mtune-ctrl= option and set tune features.
19381
19382 2013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
19383
19384 PR other/12081
19385 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
19386 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
19387 to gen_2arg_fn_t.
19388
19389 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
19390
19391 * rtl.h (update_alignments): Declare.
19392 * final.c (grow_label_align): New function extracted from...
19393 (shorten_branches): ...here. Call it.
19394 (update_alignments): New function.
19395 * reorg.c (sibling_labels): New variable.
19396 (get_label_before): Add SIBLING parameter. If it is non-zero, push
19397 the new label along with it onto the sibling_labels vector.
19398 (fill_simple_delay_slots): Adjust call to get_label_before.
19399 (fill_slots_from_thread): Likewise.
19400 (relax_delay_slots): Likewise.
19401 (make_return_insns): Likewise.
19402 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
19403
19404 2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
19405
19406 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
19407 document its semantics.
19408 (diagnostic_report_diagnostic): Adjust accordingly.
19409
19410 2013-08-07 David Malcolm <dmalcolm@redhat.com>
19411
19412 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
19413 (sparc_option_override): ...and port to new C++ pass API.
19414 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
19415
19416 2013-08-07 Peter Bergner <bergner@vnet.ibm.com>
19417
19418 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
19419
19420 2013-08-06 Caroline Tice <cmtice@google.com>
19421
19422 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
19423 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
19424 * tree-pass.h: Add pass_vtable_verify.
19425 * varasm.c (assemble_variable): Add code to properly set the comdat
19426 section and name for the .vtable_map_vars section.
19427 (assemble_vtyv_preinit_initializer): New function.
19428 (default_sectin_type_flags): Make sure .vtable_map_vars section has
19429 LINK_ONCE flag.
19430 * output.h: Add function decl for assemble_vtv_preinit_initializer.
19431 * vtable-verify.c: New file.
19432 * vtable-verify.h: New file.
19433 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
19434 initialiation levels.
19435 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
19436 * passes.def: Insert pass_vtable_verify.
19437 * aclocal.m4: Reorder includes.
19438 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
19439 -fvtv-counts options.
19440 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
19441 as appropriate, if -fvtable-verify=... is used.
19442 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
19443 -fvtable-verify=... is used.
19444 * Makefile.in (OBJS): Add vtable-verify.o to list.
19445 (vtable-verify.o): Add new build rule.
19446 (GTFILES): Add vtable-verify.c to list.
19447 * common.opt (fvtable-verify=): New flag.
19448 (vtv_priority): Values for fvtable-verify= flag.
19449 (fvtv-counts): New flag.
19450 (fvtv-debug): New flag.
19451 * tree.h (save_vtable_map_decl): New extern function decl.
19452
19453 2013-08-07 David Malcolm <dmalcolm@redhat.com>
19454
19455 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
19456 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
19457 (pass_data_rl78_devirt): ...new pass_data instance and...
19458 (make_pass_rl78_devirt): ...new function.
19459 (rl78_asm_file_start): Port pass registration to new C++ API.
19460
19461 2013-08-07 David Malcolm <dmalcolm@redhat.com>
19462
19463 * coretypes.h (rtl_opt_pass): Add.
19464 (gcc::context): Add.
19465 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
19466 (epiphany_init): Port to new C++ pass API.
19467 (epiphany_optimize_mode_switching): Likewise.
19468 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
19469 (pass_manager::get_pass_mode_switching): New.
19470 (pass_manager::get_pass_peephole2): New.
19471 * mode-switching.c (pass_mode_switching): Add clone method.
19472 * recog.c (pass_peephole2): Add clone method.
19473 (pass_split_all_insns): Add clone method.
19474
19475 2013-08-06 David Malcolm <dmalcolm@redhat.com>
19476
19477 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
19478 (mips_option_override): ...here, porting to new C++ API for passes.
19479
19480 2013-08-06 Jan Hubicka <jh@suse.cz>
19481
19482 * cgraph.c (cgraph_get_body): New function based on lto.c
19483 implementation.
19484 * cgraph.h (cgraph_get_body): Declare.
19485 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
19486 LTO paths.
19487 * cgraphunit.c (expand_function): Get body prior expanding.
19488 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
19489 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
19490 really need.
19491 * passes.c (do_per_function_toporder): Get body.
19492 * tree-inline.c (expand_call_inline): Get body prior inlining it.
19493 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
19494
19495 2013-08-06 Martin Jambor <mjambor@suse.cz>
19496
19497 PR fortran/57987
19498 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
19499 is not re-finalized. Rename second parameter to no_collect.
19500
19501 2013-08-06 Martin Jambor <mjambor@suse.cz>
19502
19503 PR middle-end/58041
19504 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
19505 MEM_REF has proper alignment information.
19506
19507 2013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
19508
19509 PR other/12081
19510 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
19511 class insn_gen_fn.
19512 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
19513 rtx (*) (rtx, ...) with insn_gen_fn.
19514 * genoutput.c (output_insn_data): Cast gen_? function pointers to
19515 insn_gen_fn::stored_funcptr. Add initializer braces.
19516
19517 2013-08-05 David Malcolm <dmalcolm@redhat.com>
19518
19519 Rewrite how instances of passes are cloned to remove assumptions
19520 about their sizes (thus allowing pass subclasses to have
19521 additional data fields, albeit non-GC-managed ones at this point).
19522
19523 * passes.c (make_pass_instance): Now that passes have clone
19524 methods, rewrite this function to eliminate XNEW and memcpy
19525 calls that used hardcoded sizes. Since this function no longer
19526 creates pass instances, rename it to...
19527 (add_pass_instance): ...this. Document the old way that passes were
19528 numbered and flagged, and rework this function to continue using it.
19529 (next_pass_1): Add an initial_pass argument for use by
19530 add_pass_instance.
19531 (position_pass): When adding multiple instances of a pass, use
19532 the pass's clone method, rather than relying on the XNEW/memcpy
19533 within the former make_pass_instance (now add_pass_instance).
19534 (pass_manager::pass_manager): When invoking next_pass_1, also supply
19535 the initial instance of the current pass within the pass manager.
19536
19537 2013-08-05 David Malcolm <dmalcolm@redhat.com>
19538
19539 This is the automated part of the conversion of passes from C
19540 structs to C++ classes.
19541
19542 Patch autogenerated by refactor_passes.py from
19543 https://github.com/davidmalcolm/gcc-refactoring-scripts
19544 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
19545
19546 * asan.c (pass_asan): Convert from a global struct to a subclass of
19547 gimple_opt_pass along with...
19548 (pass_data_asan): ...new pass_data instance and...
19549 (make_pass_asan): ...new function.
19550 (pass_asan_O0): Convert from a global struct to a subclass of
19551 gimple_opt_pass along with...
19552 (pass_data_asan_O0): ...new pass_data instance and...
19553 (make_pass_asan_O0): ...new function.
19554 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
19555 subclass of rtl_opt_pass along with...
19556 (pass_data_inc_dec): ...new pass_data instance and...
19557 (make_pass_inc_dec): ...new function.
19558 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
19559 a subclass of rtl_opt_pass along with...
19560 (pass_data_reorder_blocks): ...new pass_data instance and...
19561 (make_pass_reorder_blocks): ...new function.
19562 (pass_duplicate_computed_gotos): Convert from a global struct to a
19563 subclass of rtl_opt_pass along with...
19564 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
19565 (make_pass_duplicate_computed_gotos): ...new function.
19566 (pass_partition_blocks): Convert from a global struct to a subclass of
19567 rtl_opt_pass along with...
19568 (pass_data_partition_blocks): ...new pass_data instance and...
19569 (make_pass_partition_blocks): ...new function.
19570 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
19571 struct to a subclass of rtl_opt_pass along with...
19572 (pass_data_branch_target_load_optimize1): ...new pass_data instance
19573 and...
19574 (make_pass_branch_target_load_optimize1): ...new function.
19575 (pass_branch_target_load_optimize2): Convert from a global struct to a
19576 subclass of rtl_opt_pass along with...
19577 (pass_data_branch_target_load_optimize2): ...new pass_data instance
19578 and...
19579 (make_pass_branch_target_load_optimize2): ...new function.
19580 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
19581 of rtl_opt_pass along with...
19582 (pass_data_jump): ...new pass_data instance and...
19583 (make_pass_jump): ...new function.
19584 (pass_jump2): Convert from a global struct to a subclass of
19585 rtl_opt_pass along with...
19586 (pass_data_jump2): ...new pass_data instance and...
19587 (make_pass_jump2): ...new function.
19588 * cfgexpand.c (pass_expand): Convert from a global struct to a
19589 subclass of rtl_opt_pass along with...
19590 (pass_data_expand): ...new pass_data instance and...
19591 (make_pass_expand): ...new function.
19592 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
19593 of rtl_opt_pass along with...
19594 (pass_data_free_cfg): ...new pass_data instance and...
19595 (make_pass_free_cfg): ...new function.
19596 (pass_into_cfg_layout_mode): Convert from a global struct to a
19597 subclass of rtl_opt_pass along with...
19598 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
19599 (make_pass_into_cfg_layout_mode): ...new function.
19600 (pass_outof_cfg_layout_mode): Convert from a global struct to a
19601 subclass of rtl_opt_pass along with...
19602 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
19603 (make_pass_outof_cfg_layout_mode): ...new function.
19604 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
19605 struct to a subclass of gimple_opt_pass along with...
19606 (pass_data_build_cgraph_edges): ...new pass_data instance and...
19607 (make_pass_build_cgraph_edges): ...new function.
19608 (pass_rebuild_cgraph_edges): Convert from a global struct to a
19609 subclass of gimple_opt_pass along with...
19610 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
19611 (make_pass_rebuild_cgraph_edges): ...new function.
19612 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
19613 subclass of gimple_opt_pass along with...
19614 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
19615 and...
19616 (make_pass_remove_cgraph_callee_edges): ...new function.
19617 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
19618 struct to a subclass of rtl_opt_pass along with...
19619 (pass_data_stack_adjustments): ...new pass_data instance and...
19620 (make_pass_stack_adjustments): ...new function.
19621 * combine.c (pass_combine): Convert from a global struct to a subclass
19622 of rtl_opt_pass along with...
19623 (pass_data_combine): ...new pass_data instance and...
19624 (make_pass_combine): ...new function.
19625 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
19626 global struct to a subclass of rtl_opt_pass along with...
19627 (pass_data_compare_elim_after_reload): ...new pass_data instance
19628 and...
19629 (make_pass_compare_elim_after_reload): ...new function.
19630 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
19631 of rtl_opt_pass along with...
19632 (pass_data_rtl_cprop): ...new pass_data instance and...
19633 (make_pass_rtl_cprop): ...new function.
19634 * cse.c (pass_cse): Convert from a global struct to a subclass of
19635 rtl_opt_pass along with...
19636 (pass_data_cse): ...new pass_data instance and...
19637 (make_pass_cse): ...new function.
19638 (pass_cse2): Convert from a global struct to a subclass of
19639 rtl_opt_pass along with...
19640 (pass_data_cse2): ...new pass_data instance and...
19641 (make_pass_cse2): ...new function.
19642 (pass_cse_after_global_opts): Convert from a global struct to a
19643 subclass of rtl_opt_pass along with...
19644 (pass_data_cse_after_global_opts): ...new pass_data instance and...
19645 (make_pass_cse_after_global_opts): ...new function.
19646 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
19647 of rtl_opt_pass along with...
19648 (pass_data_ud_rtl_dce): ...new pass_data instance and...
19649 (make_pass_ud_rtl_dce): ...new function.
19650 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
19651 rtl_opt_pass along with...
19652 (pass_data_fast_rtl_dce): ...new pass_data instance and...
19653 (make_pass_fast_rtl_dce): ...new function.
19654 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
19655 a subclass of rtl_opt_pass along with...
19656 (pass_data_df_initialize_opt): ...new pass_data instance and...
19657 (make_pass_df_initialize_opt): ...new function.
19658 (pass_df_initialize_no_opt): Convert from a global struct to a
19659 subclass of rtl_opt_pass along with...
19660 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
19661 (make_pass_df_initialize_no_opt): ...new function.
19662 (pass_df_finish): Convert from a global struct to a subclass of
19663 rtl_opt_pass along with...
19664 (pass_data_df_finish): ...new pass_data instance and...
19665 (make_pass_df_finish): ...new function.
19666 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
19667 rtl_opt_pass along with...
19668 (pass_data_rtl_dse1): ...new pass_data instance and...
19669 (make_pass_rtl_dse1): ...new function.
19670 (pass_rtl_dse2): Convert from a global struct to a subclass of
19671 rtl_opt_pass along with...
19672 (pass_data_rtl_dse2): ...new pass_data instance and...
19673 (make_pass_rtl_dse2): ...new function.
19674 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
19675 subclass of rtl_opt_pass along with...
19676 (pass_data_dwarf2_frame): ...new pass_data instance and...
19677 (make_pass_dwarf2_frame): ...new function.
19678 * except.c (pass_set_nothrow_function_flags): Convert from a global
19679 struct to a subclass of rtl_opt_pass along with...
19680 (pass_data_set_nothrow_function_flags): ...new pass_data instance
19681 and...
19682 (make_pass_set_nothrow_function_flags): ...new function.
19683 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
19684 subclass of rtl_opt_pass along with...
19685 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
19686 and...
19687 (make_pass_convert_to_eh_region_ranges): ...new function.
19688 * final.c (pass_compute_alignments): Convert from a global struct to a
19689 subclass of rtl_opt_pass along with...
19690 (pass_data_compute_alignments): ...new pass_data instance and...
19691 (make_pass_compute_alignments): ...new function.
19692 (pass_final): Convert from a global struct to a subclass of
19693 rtl_opt_pass along with...
19694 (pass_data_final): ...new pass_data instance and...
19695 (make_pass_final): ...new function.
19696 (pass_shorten_branches): Convert from a global struct to a subclass of
19697 rtl_opt_pass along with...
19698 (pass_data_shorten_branches): ...new pass_data instance and...
19699 (make_pass_shorten_branches): ...new function.
19700 (pass_clean_state): Convert from a global struct to a subclass of
19701 rtl_opt_pass along with...
19702 (pass_data_clean_state): ...new pass_data instance and...
19703 (make_pass_clean_state): ...new function.
19704 * function.c (pass_instantiate_virtual_regs): Convert from a global
19705 struct to a subclass of rtl_opt_pass along with...
19706 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
19707 (make_pass_instantiate_virtual_regs): ...new function.
19708 (pass_leaf_regs): Convert from a global struct to a subclass of
19709 rtl_opt_pass along with...
19710 (pass_data_leaf_regs): ...new pass_data instance and...
19711 (make_pass_leaf_regs): ...new function.
19712 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
19713 subclass of rtl_opt_pass along with...
19714 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
19715 and...
19716 (make_pass_thread_prologue_and_epilogue): ...new function.
19717 (pass_match_asm_constraints): Convert from a global struct to a
19718 subclass of rtl_opt_pass along with...
19719 (pass_data_match_asm_constraints): ...new pass_data instance and...
19720 (make_pass_match_asm_constraints): ...new function.
19721 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
19722 subclass of rtl_opt_pass along with...
19723 (pass_data_rtl_fwprop): ...new pass_data instance and...
19724 (make_pass_rtl_fwprop): ...new function.
19725 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
19726 rtl_opt_pass along with...
19727 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
19728 (make_pass_rtl_fwprop_addr): ...new function.
19729 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
19730 rtl_opt_pass along with...
19731 (pass_data_rtl_pre): ...new pass_data instance and...
19732 (make_pass_rtl_pre): ...new function.
19733 (pass_rtl_hoist): Convert from a global struct to a subclass of
19734 rtl_opt_pass along with...
19735 (pass_data_rtl_hoist): ...new pass_data instance and...
19736 (make_pass_rtl_hoist): ...new function.
19737 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
19738 subclass of gimple_opt_pass along with...
19739 (pass_data_lower_cf): ...new pass_data instance and...
19740 (make_pass_lower_cf): ...new function.
19741 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
19742 from a global struct to a subclass of gimple_opt_pass along with...
19743 (pass_data_strength_reduction): ...new pass_data instance and...
19744 (make_pass_strength_reduction): ...new function.
19745 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
19746 of rtl_opt_pass along with...
19747 (pass_data_rtl_ifcvt): ...new pass_data instance and...
19748 (make_pass_rtl_ifcvt): ...new function.
19749 (pass_if_after_combine): Convert from a global struct to a subclass of
19750 rtl_opt_pass along with...
19751 (pass_data_if_after_combine): ...new pass_data instance and...
19752 (make_pass_if_after_combine): ...new function.
19753 (pass_if_after_reload): Convert from a global struct to a subclass of
19754 rtl_opt_pass along with...
19755 (pass_data_if_after_reload): ...new pass_data instance and...
19756 (make_pass_if_after_reload): ...new function.
19757 * init-regs.c (pass_initialize_regs): Convert from a global struct to
19758 a subclass of rtl_opt_pass along with...
19759 (pass_data_initialize_regs): ...new pass_data instance and...
19760 (make_pass_initialize_regs): ...new function.
19761 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
19762 of ipa_opt_pass_d along with...
19763 (pass_data_ipa_cp): ...new pass_data instance and...
19764 (make_pass_ipa_cp): ...new function.
19765 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
19766 global struct to a subclass of gimple_opt_pass along with...
19767 (pass_data_inline_parameters): ...new pass_data instance and...
19768 (make_pass_inline_parameters): ...new function.
19769 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
19770 subclass of gimple_opt_pass along with...
19771 (pass_data_early_inline): ...new pass_data instance and...
19772 (make_pass_early_inline): ...new function.
19773 (pass_ipa_inline): Convert from a global struct to a subclass of
19774 ipa_opt_pass_d along with...
19775 (pass_data_ipa_inline): ...new pass_data instance and...
19776 (make_pass_ipa_inline): ...new function.
19777 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
19778 struct to a subclass of gimple_opt_pass along with...
19779 (pass_data_local_pure_const): ...new pass_data instance and...
19780 (make_pass_local_pure_const): ...new function.
19781 (pass_ipa_pure_const): Convert from a global struct to a subclass of
19782 ipa_opt_pass_d along with...
19783 (pass_data_ipa_pure_const): ...new pass_data instance and...
19784 (make_pass_ipa_pure_const): ...new function.
19785 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
19786 to a subclass of ipa_opt_pass_d along with...
19787 (pass_data_ipa_reference): ...new pass_data instance and...
19788 (make_pass_ipa_reference): ...new function.
19789 * ipa-split.c (pass_split_functions): Convert from a global struct to
19790 a subclass of gimple_opt_pass along with...
19791 (pass_data_split_functions): ...new pass_data instance and...
19792 (make_pass_split_functions): ...new function.
19793 (pass_feedback_split_functions): Convert from a global struct to a
19794 subclass of gimple_opt_pass along with...
19795 (pass_data_feedback_split_functions): ...new pass_data instance and...
19796 (make_pass_feedback_split_functions): ...new function.
19797 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
19798 global struct to a subclass of simple_ipa_opt_pass along with...
19799 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
19800 instance and...
19801 (make_pass_ipa_function_and_variable_visibility): ...new function.
19802 (pass_ipa_free_inline_summary): Convert from a global struct to a
19803 subclass of simple_ipa_opt_pass along with...
19804 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
19805 (make_pass_ipa_free_inline_summary): ...new function.
19806 (pass_ipa_whole_program_visibility): Convert from a global struct to a
19807 subclass of ipa_opt_pass_d along with...
19808 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
19809 and...
19810 (make_pass_ipa_whole_program_visibility): ...new function.
19811 (pass_ipa_profile): Convert from a global struct to a subclass of
19812 ipa_opt_pass_d along with...
19813 (pass_data_ipa_profile): ...new pass_data instance and...
19814 (make_pass_ipa_profile): ...new function.
19815 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
19816 ipa_opt_pass_d along with...
19817 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
19818 (make_pass_ipa_cdtor_merge): ...new function.
19819 * ira.c (pass_ira): Convert from a global struct to a subclass of
19820 rtl_opt_pass along with...
19821 (pass_data_ira): ...new pass_data instance and...
19822 (make_pass_ira): ...new function.
19823 (pass_reload): Convert from a global struct to a subclass of
19824 rtl_opt_pass along with...
19825 (pass_data_reload): ...new pass_data instance and...
19826 (make_pass_reload): ...new function.
19827 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
19828 subclass of rtl_opt_pass along with...
19829 (pass_data_cleanup_barriers): ...new pass_data instance and...
19830 (make_pass_cleanup_barriers): ...new function.
19831 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
19832 of rtl_opt_pass along with...
19833 (pass_data_loop2): ...new pass_data instance and...
19834 (make_pass_loop2): ...new function.
19835 (pass_rtl_loop_init): Convert from a global struct to a subclass of
19836 rtl_opt_pass along with...
19837 (pass_data_rtl_loop_init): ...new pass_data instance and...
19838 (make_pass_rtl_loop_init): ...new function.
19839 (pass_rtl_loop_done): Convert from a global struct to a subclass of
19840 rtl_opt_pass along with...
19841 (pass_data_rtl_loop_done): ...new pass_data instance and...
19842 (make_pass_rtl_loop_done): ...new function.
19843 (pass_rtl_move_loop_invariants): Convert from a global struct to a
19844 subclass of rtl_opt_pass along with...
19845 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
19846 (make_pass_rtl_move_loop_invariants): ...new function.
19847 (pass_rtl_unswitch): Convert from a global struct to a subclass of
19848 rtl_opt_pass along with...
19849 (pass_data_rtl_unswitch): ...new pass_data instance and...
19850 (make_pass_rtl_unswitch): ...new function.
19851 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
19852 subclass of rtl_opt_pass along with...
19853 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
19854 and...
19855 (make_pass_rtl_unroll_and_peel_loops): ...new function.
19856 (pass_rtl_doloop): Convert from a global struct to a subclass of
19857 rtl_opt_pass along with...
19858 (pass_data_rtl_doloop): ...new pass_data instance and...
19859 (make_pass_rtl_doloop): ...new function.
19860 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
19861 a subclass of rtl_opt_pass along with...
19862 (pass_data_lower_subreg): ...new pass_data instance and...
19863 (make_pass_lower_subreg): ...new function.
19864 (pass_lower_subreg2): Convert from a global struct to a subclass of
19865 rtl_opt_pass along with...
19866 (pass_data_lower_subreg2): ...new pass_data instance and...
19867 (make_pass_lower_subreg2): ...new function.
19868 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
19869 struct to a subclass of ipa_opt_pass_d along with...
19870 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
19871 (make_pass_ipa_lto_gimple_out): ...new function.
19872 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
19873 of ipa_opt_pass_d along with...
19874 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
19875 (make_pass_ipa_lto_finish_out): ...new function.
19876 * mode-switching.c (pass_mode_switching): Convert from a global struct
19877 to a subclass of rtl_opt_pass along with...
19878 (pass_data_mode_switching): ...new pass_data instance and...
19879 (make_pass_mode_switching): ...new function.
19880 * modulo-sched.c (pass_sms): Convert from a global struct to a
19881 subclass of rtl_opt_pass along with...
19882 (pass_data_sms): ...new pass_data instance and...
19883 (make_pass_sms): ...new function.
19884 * omp-low.c (pass_expand_omp): Convert from a global struct to a
19885 subclass of gimple_opt_pass along with...
19886 (pass_data_expand_omp): ...new pass_data instance and...
19887 (make_pass_expand_omp): ...new function.
19888 (pass_lower_omp): Convert from a global struct to a subclass of
19889 gimple_opt_pass along with...
19890 (pass_data_lower_omp): ...new pass_data instance and...
19891 (make_pass_lower_omp): ...new function.
19892 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
19893 of gimple_opt_pass along with...
19894 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
19895 (make_pass_diagnose_omp_blocks): ...new function.
19896 * passes.c (pass_early_local_passes): Convert from a global struct to
19897 a subclass of simple_ipa_opt_pass along with...
19898 (pass_data_early_local_passes): ...new pass_data instance and...
19899 (make_pass_early_local_passes): ...new function.
19900 (pass_all_early_optimizations): Convert from a global struct to a
19901 subclass of gimple_opt_pass along with...
19902 (pass_data_all_early_optimizations): ...new pass_data instance and...
19903 (make_pass_all_early_optimizations): ...new function.
19904 (pass_all_optimizations): Convert from a global struct to a subclass
19905 of gimple_opt_pass along with...
19906 (pass_data_all_optimizations): ...new pass_data instance and...
19907 (make_pass_all_optimizations): ...new function.
19908 (pass_all_optimizations_g): Convert from a global struct to a subclass
19909 of gimple_opt_pass along with...
19910 (pass_data_all_optimizations_g): ...new pass_data instance and...
19911 (make_pass_all_optimizations_g): ...new function.
19912 (pass_rest_of_compilation): Convert from a global struct to a subclass
19913 of rtl_opt_pass along with...
19914 (pass_data_rest_of_compilation): ...new pass_data instance and...
19915 (make_pass_rest_of_compilation): ...new function.
19916 (pass_postreload): Convert from a global struct to a subclass of
19917 rtl_opt_pass along with...
19918 (pass_data_postreload): ...new pass_data instance and...
19919 (make_pass_postreload): ...new function.
19920 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
19921 subclass of rtl_opt_pass along with...
19922 (pass_data_gcse2): ...new pass_data instance and...
19923 (make_pass_gcse2): ...new function.
19924 * postreload.c (pass_postreload_cse): Convert from a global struct to
19925 a subclass of rtl_opt_pass along with...
19926 (pass_data_postreload_cse): ...new pass_data instance and...
19927 (make_pass_postreload_cse): ...new function.
19928 * predict.c (pass_profile): Convert from a global struct to a subclass
19929 of gimple_opt_pass along with...
19930 (pass_data_profile): ...new pass_data instance and...
19931 (make_pass_profile): ...new function.
19932 (pass_strip_predict_hints): Convert from a global struct to a subclass
19933 of gimple_opt_pass along with...
19934 (pass_data_strip_predict_hints): ...new pass_data instance and...
19935 (make_pass_strip_predict_hints): ...new function.
19936 * recog.c (pass_peephole2): Convert from a global struct to a subclass
19937 of rtl_opt_pass along with...
19938 (pass_data_peephole2): ...new pass_data instance and...
19939 (make_pass_peephole2): ...new function.
19940 (pass_split_all_insns): Convert from a global struct to a subclass of
19941 rtl_opt_pass along with...
19942 (pass_data_split_all_insns): ...new pass_data instance and...
19943 (make_pass_split_all_insns): ...new function.
19944 (pass_split_after_reload): Convert from a global struct to a subclass
19945 of rtl_opt_pass along with...
19946 (pass_data_split_after_reload): ...new pass_data instance and...
19947 (make_pass_split_after_reload): ...new function.
19948 (pass_split_before_regstack): Convert from a global struct to a
19949 subclass of rtl_opt_pass along with...
19950 (pass_data_split_before_regstack): ...new pass_data instance and...
19951 (make_pass_split_before_regstack): ...new function.
19952 (pass_split_before_sched2): Convert from a global struct to a subclass
19953 of rtl_opt_pass along with...
19954 (pass_data_split_before_sched2): ...new pass_data instance and...
19955 (make_pass_split_before_sched2): ...new function.
19956 (pass_split_for_shorten_branches): Convert from a global struct to a
19957 subclass of rtl_opt_pass along with...
19958 (pass_data_split_for_shorten_branches): ...new pass_data instance
19959 and...
19960 (make_pass_split_for_shorten_branches): ...new function.
19961 * ree.c (pass_ree): Convert from a global struct to a subclass of
19962 rtl_opt_pass along with...
19963 (pass_data_ree): ...new pass_data instance and...
19964 (make_pass_ree): ...new function.
19965 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
19966 subclass of rtl_opt_pass along with...
19967 (pass_data_stack_regs): ...new pass_data instance and...
19968 (make_pass_stack_regs): ...new function.
19969 (pass_stack_regs_run): Convert from a global struct to a subclass of
19970 rtl_opt_pass along with...
19971 (pass_data_stack_regs_run): ...new pass_data instance and...
19972 (make_pass_stack_regs_run): ...new function.
19973 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
19974 subclass of rtl_opt_pass along with...
19975 (pass_data_cprop_hardreg): ...new pass_data instance and...
19976 (make_pass_cprop_hardreg): ...new function.
19977 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
19978 subclass of rtl_opt_pass along with...
19979 (pass_data_reginfo_init): ...new pass_data instance and...
19980 (make_pass_reginfo_init): ...new function.
19981 * regmove.c (pass_regmove): Convert from a global struct to a subclass
19982 of rtl_opt_pass along with...
19983 (pass_data_regmove): ...new pass_data instance and...
19984 (make_pass_regmove): ...new function.
19985 * regrename.c (pass_regrename): Convert from a global struct to a
19986 subclass of rtl_opt_pass along with...
19987 (pass_data_regrename): ...new pass_data instance and...
19988 (make_pass_regrename): ...new function.
19989 * reorg.c (pass_delay_slots): Convert from a global struct to a
19990 subclass of rtl_opt_pass along with...
19991 (pass_data_delay_slots): ...new pass_data instance and...
19992 (make_pass_delay_slots): ...new function.
19993 (pass_machine_reorg): Convert from a global struct to a subclass of
19994 rtl_opt_pass along with...
19995 (pass_data_machine_reorg): ...new pass_data instance and...
19996 (make_pass_machine_reorg): ...new function.
19997 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
19998 of rtl_opt_pass along with...
19999 (pass_data_sched): ...new pass_data instance and...
20000 (make_pass_sched): ...new function.
20001 (pass_sched2): Convert from a global struct to a subclass of
20002 rtl_opt_pass along with...
20003 (pass_data_sched2): ...new pass_data instance and...
20004 (make_pass_sched2): ...new function.
20005 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
20006 to a subclass of rtl_opt_pass along with...
20007 (pass_data_stack_ptr_mod): ...new pass_data instance and...
20008 (make_pass_stack_ptr_mod): ...new function.
20009 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
20010 to a subclass of rtl_opt_pass along with...
20011 (pass_data_rtl_store_motion): ...new pass_data instance and...
20012 (make_pass_rtl_store_motion): ...new function.
20013 * tracer.c (pass_tracer): Convert from a global struct to a subclass
20014 of gimple_opt_pass along with...
20015 (pass_data_tracer): ...new pass_data instance and...
20016 (make_pass_tracer): ...new function.
20017 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
20018 to a subclass of gimple_opt_pass along with...
20019 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
20020 (make_pass_diagnose_tm_blocks): ...new function.
20021 (pass_lower_tm): Convert from a global struct to a subclass of
20022 gimple_opt_pass along with...
20023 (pass_data_lower_tm): ...new pass_data instance and...
20024 (make_pass_lower_tm): ...new function.
20025 (pass_tm_init): Convert from a global struct to a subclass of
20026 gimple_opt_pass along with...
20027 (pass_data_tm_init): ...new pass_data instance and...
20028 (make_pass_tm_init): ...new function.
20029 (pass_tm_mark): Convert from a global struct to a subclass of
20030 gimple_opt_pass along with...
20031 (pass_data_tm_mark): ...new pass_data instance and...
20032 (make_pass_tm_mark): ...new function.
20033 (pass_tm_edges): Convert from a global struct to a subclass of
20034 gimple_opt_pass along with...
20035 (pass_data_tm_edges): ...new pass_data instance and...
20036 (make_pass_tm_edges): ...new function.
20037 (pass_tm_memopt): Convert from a global struct to a subclass of
20038 gimple_opt_pass along with...
20039 (pass_data_tm_memopt): ...new pass_data instance and...
20040 (make_pass_tm_memopt): ...new function.
20041 (pass_ipa_tm): Convert from a global struct to a subclass of
20042 simple_ipa_opt_pass along with...
20043 (pass_data_ipa_tm): ...new pass_data instance and...
20044 (make_pass_ipa_tm): ...new function.
20045 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
20046 subclass of gimple_opt_pass along with...
20047 (pass_data_call_cdce): ...new pass_data instance and...
20048 (make_pass_call_cdce): ...new function.
20049 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
20050 subclass of gimple_opt_pass along with...
20051 (pass_data_build_cfg): ...new pass_data instance and...
20052 (make_pass_build_cfg): ...new function.
20053 (pass_split_crit_edges): Convert from a global struct to a subclass of
20054 gimple_opt_pass along with...
20055 (pass_data_split_crit_edges): ...new pass_data instance and...
20056 (make_pass_split_crit_edges): ...new function.
20057 (pass_warn_function_return): Convert from a global struct to a
20058 subclass of gimple_opt_pass along with...
20059 (pass_data_warn_function_return): ...new pass_data instance and...
20060 (make_pass_warn_function_return): ...new function.
20061 (pass_warn_function_noreturn): Convert from a global struct to a
20062 subclass of gimple_opt_pass along with...
20063 (pass_data_warn_function_noreturn): ...new pass_data instance and...
20064 (make_pass_warn_function_noreturn): ...new function.
20065 (pass_warn_unused_result): Convert from a global struct to a subclass
20066 of gimple_opt_pass along with...
20067 (pass_data_warn_unused_result): ...new pass_data instance and...
20068 (make_pass_warn_unused_result): ...new function.
20069 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
20070 a subclass of gimple_opt_pass along with...
20071 (pass_data_merge_phi): ...new pass_data instance and...
20072 (make_pass_merge_phi): ...new function.
20073 * tree-complex.c (pass_lower_complex): Convert from a global struct to
20074 a subclass of gimple_opt_pass along with...
20075 (pass_data_lower_complex): ...new pass_data instance and...
20076 (make_pass_lower_complex): ...new function.
20077 (pass_lower_complex_O0): Convert from a global struct to a subclass of
20078 gimple_opt_pass along with...
20079 (pass_data_lower_complex_O0): ...new pass_data instance and...
20080 (make_pass_lower_complex_O0): ...new function.
20081 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
20082 subclass of gimple_opt_pass along with...
20083 (pass_data_lower_eh): ...new pass_data instance and...
20084 (make_pass_lower_eh): ...new function.
20085 (pass_refactor_eh): Convert from a global struct to a subclass of
20086 gimple_opt_pass along with...
20087 (pass_data_refactor_eh): ...new pass_data instance and...
20088 (make_pass_refactor_eh): ...new function.
20089 (pass_lower_resx): Convert from a global struct to a subclass of
20090 gimple_opt_pass along with...
20091 (pass_data_lower_resx): ...new pass_data instance and...
20092 (make_pass_lower_resx): ...new function.
20093 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
20094 of gimple_opt_pass along with...
20095 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
20096 (make_pass_lower_eh_dispatch): ...new function.
20097 (pass_cleanup_eh): Convert from a global struct to a subclass of
20098 gimple_opt_pass along with...
20099 (pass_data_cleanup_eh): ...new pass_data instance and...
20100 (make_pass_cleanup_eh): ...new function.
20101 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
20102 to a subclass of simple_ipa_opt_pass along with...
20103 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
20104 (make_pass_ipa_lower_emutls): ...new function.
20105 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
20106 a subclass of gimple_opt_pass along with...
20107 (pass_data_if_conversion): ...new pass_data instance and...
20108 (make_pass_if_conversion): ...new function.
20109 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
20110 subclass of gimple_opt_pass along with...
20111 (pass_data_build_ssa): ...new pass_data instance and...
20112 (make_pass_build_ssa): ...new function.
20113 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
20114 global struct to a subclass of gimple_opt_pass along with...
20115 (pass_data_loop_distribution): ...new pass_data instance and...
20116 (make_pass_loop_distribution): ...new function.
20117 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
20118 subclass of gimple_opt_pass along with...
20119 (pass_data_mudflap_1): ...new pass_data instance and...
20120 (make_pass_mudflap_1): ...new function.
20121 (pass_mudflap_2): Convert from a global struct to a subclass of
20122 gimple_opt_pass along with...
20123 (pass_data_mudflap_2): ...new pass_data instance and...
20124 (make_pass_mudflap_2): ...new function.
20125 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
20126 subclass of gimple_opt_pass along with...
20127 (pass_data_mudflap_1): ...new pass_data instance and...
20128 (make_pass_mudflap_1): ...new function.
20129 (pass_mudflap_2): Convert from a global struct to a subclass of
20130 gimple_opt_pass along with...
20131 (pass_data_mudflap_2): ...new pass_data instance and...
20132 (make_pass_mudflap_2): ...new function.
20133 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
20134 gimple_opt_pass along with...
20135 (pass_data_nrv): ...new pass_data instance and...
20136 (make_pass_nrv): ...new function.
20137 (pass_return_slot): Convert from a global struct to a subclass of
20138 gimple_opt_pass along with...
20139 (pass_data_return_slot): ...new pass_data instance and...
20140 (make_pass_return_slot): ...new function.
20141 * tree-object-size.c (pass_object_sizes): Convert from a global struct
20142 to a subclass of gimple_opt_pass along with...
20143 (pass_data_object_sizes): ...new pass_data instance and...
20144 (make_pass_object_sizes): ...new function.
20145 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
20146 global struct to a subclass of gimple_opt_pass along with...
20147 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
20148 and...
20149 (make_pass_cleanup_cfg_post_optimizing): ...new function.
20150 (pass_fixup_cfg): Convert from a global struct to a subclass of
20151 gimple_opt_pass along with...
20152 (pass_data_fixup_cfg): ...new pass_data instance and...
20153 (make_pass_fixup_cfg): ...new function.
20154 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
20155 (make_pass_mudflap_1): ...new function.
20156 (pass_mudflap_2): Replace declaration with that of...
20157 (make_pass_mudflap_2): ...new function.
20158 (pass_asan): Replace declaration with that of...
20159 (make_pass_asan): ...new function.
20160 (pass_asan_O0): Replace declaration with that of...
20161 (make_pass_asan_O0): ...new function.
20162 (pass_tsan): Replace declaration with that of...
20163 (make_pass_tsan): ...new function.
20164 (pass_tsan_O0): Replace declaration with that of...
20165 (make_pass_tsan_O0): ...new function.
20166 (pass_lower_cf): Replace declaration with that of...
20167 (make_pass_lower_cf): ...new function.
20168 (pass_refactor_eh): Replace declaration with that of...
20169 (make_pass_refactor_eh): ...new function.
20170 (pass_lower_eh): Replace declaration with that of...
20171 (make_pass_lower_eh): ...new function.
20172 (pass_lower_eh_dispatch): Replace declaration with that of...
20173 (make_pass_lower_eh_dispatch): ...new function.
20174 (pass_lower_resx): Replace declaration with that of...
20175 (make_pass_lower_resx): ...new function.
20176 (pass_build_cfg): Replace declaration with that of...
20177 (make_pass_build_cfg): ...new function.
20178 (pass_early_tree_profile): Replace declaration with that of...
20179 (make_pass_early_tree_profile): ...new function.
20180 (pass_cleanup_eh): Replace declaration with that of...
20181 (make_pass_cleanup_eh): ...new function.
20182 (pass_sra): Replace declaration with that of...
20183 (make_pass_sra): ...new function.
20184 (pass_sra_early): Replace declaration with that of...
20185 (make_pass_sra_early): ...new function.
20186 (pass_early_ipa_sra): Replace declaration with that of...
20187 (make_pass_early_ipa_sra): ...new function.
20188 (pass_tail_recursion): Replace declaration with that of...
20189 (make_pass_tail_recursion): ...new function.
20190 (pass_tail_calls): Replace declaration with that of...
20191 (make_pass_tail_calls): ...new function.
20192 (pass_tree_loop): Replace declaration with that of...
20193 (make_pass_tree_loop): ...new function.
20194 (pass_tree_loop_init): Replace declaration with that of...
20195 (make_pass_tree_loop_init): ...new function.
20196 (pass_lim): Replace declaration with that of...
20197 (make_pass_lim): ...new function.
20198 (pass_tree_unswitch): Replace declaration with that of...
20199 (make_pass_tree_unswitch): ...new function.
20200 (pass_predcom): Replace declaration with that of...
20201 (make_pass_predcom): ...new function.
20202 (pass_iv_canon): Replace declaration with that of...
20203 (make_pass_iv_canon): ...new function.
20204 (pass_scev_cprop): Replace declaration with that of...
20205 (make_pass_scev_cprop): ...new function.
20206 (pass_empty_loop): Replace declaration with that of...
20207 (make_pass_empty_loop): ...new function.
20208 (pass_record_bounds): Replace declaration with that of...
20209 (make_pass_record_bounds): ...new function.
20210 (pass_graphite): Replace declaration with that of...
20211 (make_pass_graphite): ...new function.
20212 (pass_graphite_transforms): Replace declaration with that of...
20213 (make_pass_graphite_transforms): ...new function.
20214 (pass_if_conversion): Replace declaration with that of...
20215 (make_pass_if_conversion): ...new function.
20216 (pass_loop_distribution): Replace declaration with that of...
20217 (make_pass_loop_distribution): ...new function.
20218 (pass_vectorize): Replace declaration with that of...
20219 (make_pass_vectorize): ...new function.
20220 (pass_slp_vectorize): Replace declaration with that of...
20221 (make_pass_slp_vectorize): ...new function.
20222 (pass_complete_unroll): Replace declaration with that of...
20223 (make_pass_complete_unroll): ...new function.
20224 (pass_complete_unrolli): Replace declaration with that of...
20225 (make_pass_complete_unrolli): ...new function.
20226 (pass_parallelize_loops): Replace declaration with that of...
20227 (make_pass_parallelize_loops): ...new function.
20228 (pass_loop_prefetch): Replace declaration with that of...
20229 (make_pass_loop_prefetch): ...new function.
20230 (pass_iv_optimize): Replace declaration with that of...
20231 (make_pass_iv_optimize): ...new function.
20232 (pass_tree_loop_done): Replace declaration with that of...
20233 (make_pass_tree_loop_done): ...new function.
20234 (pass_ch): Replace declaration with that of...
20235 (make_pass_ch): ...new function.
20236 (pass_ccp): Replace declaration with that of...
20237 (make_pass_ccp): ...new function.
20238 (pass_phi_only_cprop): Replace declaration with that of...
20239 (make_pass_phi_only_cprop): ...new function.
20240 (pass_build_ssa): Replace declaration with that of...
20241 (make_pass_build_ssa): ...new function.
20242 (pass_build_alias): Replace declaration with that of...
20243 (make_pass_build_alias): ...new function.
20244 (pass_build_ealias): Replace declaration with that of...
20245 (make_pass_build_ealias): ...new function.
20246 (pass_dominator): Replace declaration with that of...
20247 (make_pass_dominator): ...new function.
20248 (pass_dce): Replace declaration with that of...
20249 (make_pass_dce): ...new function.
20250 (pass_dce_loop): Replace declaration with that of...
20251 (make_pass_dce_loop): ...new function.
20252 (pass_cd_dce): Replace declaration with that of...
20253 (make_pass_cd_dce): ...new function.
20254 (pass_call_cdce): Replace declaration with that of...
20255 (make_pass_call_cdce): ...new function.
20256 (pass_merge_phi): Replace declaration with that of...
20257 (make_pass_merge_phi): ...new function.
20258 (pass_split_crit_edges): Replace declaration with that of...
20259 (make_pass_split_crit_edges): ...new function.
20260 (pass_pre): Replace declaration with that of...
20261 (make_pass_pre): ...new function.
20262 (pass_profile): Replace declaration with that of...
20263 (make_pass_profile): ...new function.
20264 (pass_strip_predict_hints): Replace declaration with that of...
20265 (make_pass_strip_predict_hints): ...new function.
20266 (pass_lower_complex_O0): Replace declaration with that of...
20267 (make_pass_lower_complex_O0): ...new function.
20268 (pass_lower_complex): Replace declaration with that of...
20269 (make_pass_lower_complex): ...new function.
20270 (pass_lower_vector): Replace declaration with that of...
20271 (make_pass_lower_vector): ...new function.
20272 (pass_lower_vector_ssa): Replace declaration with that of...
20273 (make_pass_lower_vector_ssa): ...new function.
20274 (pass_lower_omp): Replace declaration with that of...
20275 (make_pass_lower_omp): ...new function.
20276 (pass_diagnose_omp_blocks): Replace declaration with that of...
20277 (make_pass_diagnose_omp_blocks): ...new function.
20278 (pass_expand_omp): Replace declaration with that of...
20279 (make_pass_expand_omp): ...new function.
20280 (pass_expand_omp_ssa): Replace declaration with that of...
20281 (make_pass_expand_omp_ssa): ...new function.
20282 (pass_object_sizes): Replace declaration with that of...
20283 (make_pass_object_sizes): ...new function.
20284 (pass_strlen): Replace declaration with that of...
20285 (make_pass_strlen): ...new function.
20286 (pass_fold_builtins): Replace declaration with that of...
20287 (make_pass_fold_builtins): ...new function.
20288 (pass_stdarg): Replace declaration with that of...
20289 (make_pass_stdarg): ...new function.
20290 (pass_early_warn_uninitialized): Replace declaration with that of...
20291 (make_pass_early_warn_uninitialized): ...new function.
20292 (pass_late_warn_uninitialized): Replace declaration with that of...
20293 (make_pass_late_warn_uninitialized): ...new function.
20294 (pass_cse_reciprocals): Replace declaration with that of...
20295 (make_pass_cse_reciprocals): ...new function.
20296 (pass_cse_sincos): Replace declaration with that of...
20297 (make_pass_cse_sincos): ...new function.
20298 (pass_optimize_bswap): Replace declaration with that of...
20299 (make_pass_optimize_bswap): ...new function.
20300 (pass_optimize_widening_mul): Replace declaration with that of...
20301 (make_pass_optimize_widening_mul): ...new function.
20302 (pass_warn_function_return): Replace declaration with that of...
20303 (make_pass_warn_function_return): ...new function.
20304 (pass_warn_function_noreturn): Replace declaration with that of...
20305 (make_pass_warn_function_noreturn): ...new function.
20306 (pass_cselim): Replace declaration with that of...
20307 (make_pass_cselim): ...new function.
20308 (pass_phiopt): Replace declaration with that of...
20309 (make_pass_phiopt): ...new function.
20310 (pass_forwprop): Replace declaration with that of...
20311 (make_pass_forwprop): ...new function.
20312 (pass_phiprop): Replace declaration with that of...
20313 (make_pass_phiprop): ...new function.
20314 (pass_tree_ifcombine): Replace declaration with that of...
20315 (make_pass_tree_ifcombine): ...new function.
20316 (pass_dse): Replace declaration with that of...
20317 (make_pass_dse): ...new function.
20318 (pass_nrv): Replace declaration with that of...
20319 (make_pass_nrv): ...new function.
20320 (pass_rename_ssa_copies): Replace declaration with that of...
20321 (make_pass_rename_ssa_copies): ...new function.
20322 (pass_sink_code): Replace declaration with that of...
20323 (make_pass_sink_code): ...new function.
20324 (pass_fre): Replace declaration with that of...
20325 (make_pass_fre): ...new function.
20326 (pass_check_data_deps): Replace declaration with that of...
20327 (make_pass_check_data_deps): ...new function.
20328 (pass_copy_prop): Replace declaration with that of...
20329 (make_pass_copy_prop): ...new function.
20330 (pass_vrp): Replace declaration with that of...
20331 (make_pass_vrp): ...new function.
20332 (pass_uncprop): Replace declaration with that of...
20333 (make_pass_uncprop): ...new function.
20334 (pass_return_slot): Replace declaration with that of...
20335 (make_pass_return_slot): ...new function.
20336 (pass_reassoc): Replace declaration with that of...
20337 (make_pass_reassoc): ...new function.
20338 (pass_rebuild_cgraph_edges): Replace declaration with that of...
20339 (make_pass_rebuild_cgraph_edges): ...new function.
20340 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
20341 (make_pass_remove_cgraph_callee_edges): ...new function.
20342 (pass_build_cgraph_edges): Replace declaration with that of...
20343 (make_pass_build_cgraph_edges): ...new function.
20344 (pass_local_pure_const): Replace declaration with that of...
20345 (make_pass_local_pure_const): ...new function.
20346 (pass_tracer): Replace declaration with that of...
20347 (make_pass_tracer): ...new function.
20348 (pass_warn_unused_result): Replace declaration with that of...
20349 (make_pass_warn_unused_result): ...new function.
20350 (pass_diagnose_tm_blocks): Replace declaration with that of...
20351 (make_pass_diagnose_tm_blocks): ...new function.
20352 (pass_lower_tm): Replace declaration with that of...
20353 (make_pass_lower_tm): ...new function.
20354 (pass_tm_init): Replace declaration with that of...
20355 (make_pass_tm_init): ...new function.
20356 (pass_tm_mark): Replace declaration with that of...
20357 (make_pass_tm_mark): ...new function.
20358 (pass_tm_memopt): Replace declaration with that of...
20359 (make_pass_tm_memopt): ...new function.
20360 (pass_tm_edges): Replace declaration with that of...
20361 (make_pass_tm_edges): ...new function.
20362 (pass_split_functions): Replace declaration with that of...
20363 (make_pass_split_functions): ...new function.
20364 (pass_feedback_split_functions): Replace declaration with that of...
20365 (make_pass_feedback_split_functions): ...new function.
20366 (pass_strength_reduction): Replace declaration with that of...
20367 (make_pass_strength_reduction): ...new function.
20368 (pass_ipa_lower_emutls): Replace declaration with that of...
20369 (make_pass_ipa_lower_emutls): ...new function.
20370 (pass_ipa_function_and_variable_visibility): Replace declaration with
20371 that of...
20372 (make_pass_ipa_function_and_variable_visibility): ...new function.
20373 (pass_ipa_tree_profile): Replace declaration with that of...
20374 (make_pass_ipa_tree_profile): ...new function.
20375 (pass_early_local_passes): Replace declaration with that of...
20376 (make_pass_early_local_passes): ...new function.
20377 (pass_ipa_whole_program_visibility): Replace declaration with that
20378 of...
20379 (make_pass_ipa_whole_program_visibility): ...new function.
20380 (pass_ipa_lto_gimple_out): Replace declaration with that of...
20381 (make_pass_ipa_lto_gimple_out): ...new function.
20382 (pass_ipa_increase_alignment): Replace declaration with that of...
20383 (make_pass_ipa_increase_alignment): ...new function.
20384 (pass_ipa_inline): Replace declaration with that of...
20385 (make_pass_ipa_inline): ...new function.
20386 (pass_ipa_free_lang_data): Replace declaration with that of...
20387 (make_pass_ipa_free_lang_data): ...new function.
20388 (pass_ipa_free_inline_summary): Replace declaration with that of...
20389 (make_pass_ipa_free_inline_summary): ...new function.
20390 (pass_ipa_cp): Replace declaration with that of...
20391 (make_pass_ipa_cp): ...new function.
20392 (pass_ipa_reference): Replace declaration with that of...
20393 (make_pass_ipa_reference): ...new function.
20394 (pass_ipa_pure_const): Replace declaration with that of...
20395 (make_pass_ipa_pure_const): ...new function.
20396 (pass_ipa_pta): Replace declaration with that of...
20397 (make_pass_ipa_pta): ...new function.
20398 (pass_ipa_lto_finish_out): Replace declaration with that of...
20399 (make_pass_ipa_lto_finish_out): ...new function.
20400 (pass_ipa_tm): Replace declaration with that of...
20401 (make_pass_ipa_tm): ...new function.
20402 (pass_ipa_profile): Replace declaration with that of...
20403 (make_pass_ipa_profile): ...new function.
20404 (pass_ipa_cdtor_merge): Replace declaration with that of...
20405 (make_pass_ipa_cdtor_merge): ...new function.
20406 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
20407 of...
20408 (make_pass_cleanup_cfg_post_optimizing): ...new function.
20409 (pass_init_datastructures): Replace declaration with that of...
20410 (make_pass_init_datastructures): ...new function.
20411 (pass_fixup_cfg): Replace declaration with that of...
20412 (make_pass_fixup_cfg): ...new function.
20413 (pass_expand): Replace declaration with that of...
20414 (make_pass_expand): ...new function.
20415 (pass_instantiate_virtual_regs): Replace declaration with that of...
20416 (make_pass_instantiate_virtual_regs): ...new function.
20417 (pass_rtl_fwprop): Replace declaration with that of...
20418 (make_pass_rtl_fwprop): ...new function.
20419 (pass_rtl_fwprop_addr): Replace declaration with that of...
20420 (make_pass_rtl_fwprop_addr): ...new function.
20421 (pass_jump): Replace declaration with that of...
20422 (make_pass_jump): ...new function.
20423 (pass_jump2): Replace declaration with that of...
20424 (make_pass_jump2): ...new function.
20425 (pass_lower_subreg): Replace declaration with that of...
20426 (make_pass_lower_subreg): ...new function.
20427 (pass_cse): Replace declaration with that of...
20428 (make_pass_cse): ...new function.
20429 (pass_fast_rtl_dce): Replace declaration with that of...
20430 (make_pass_fast_rtl_dce): ...new function.
20431 (pass_ud_rtl_dce): Replace declaration with that of...
20432 (make_pass_ud_rtl_dce): ...new function.
20433 (pass_rtl_dce): Replace declaration with that of...
20434 (make_pass_rtl_dce): ...new function.
20435 (pass_rtl_dse1): Replace declaration with that of...
20436 (make_pass_rtl_dse1): ...new function.
20437 (pass_rtl_dse2): Replace declaration with that of...
20438 (make_pass_rtl_dse2): ...new function.
20439 (pass_rtl_dse3): Replace declaration with that of...
20440 (make_pass_rtl_dse3): ...new function.
20441 (pass_rtl_cprop): Replace declaration with that of...
20442 (make_pass_rtl_cprop): ...new function.
20443 (pass_rtl_pre): Replace declaration with that of...
20444 (make_pass_rtl_pre): ...new function.
20445 (pass_rtl_hoist): Replace declaration with that of...
20446 (make_pass_rtl_hoist): ...new function.
20447 (pass_rtl_store_motion): Replace declaration with that of...
20448 (make_pass_rtl_store_motion): ...new function.
20449 (pass_cse_after_global_opts): Replace declaration with that of...
20450 (make_pass_cse_after_global_opts): ...new function.
20451 (pass_rtl_ifcvt): Replace declaration with that of...
20452 (make_pass_rtl_ifcvt): ...new function.
20453 (pass_into_cfg_layout_mode): Replace declaration with that of...
20454 (make_pass_into_cfg_layout_mode): ...new function.
20455 (pass_outof_cfg_layout_mode): Replace declaration with that of...
20456 (make_pass_outof_cfg_layout_mode): ...new function.
20457 (pass_loop2): Replace declaration with that of...
20458 (make_pass_loop2): ...new function.
20459 (pass_rtl_loop_init): Replace declaration with that of...
20460 (make_pass_rtl_loop_init): ...new function.
20461 (pass_rtl_move_loop_invariants): Replace declaration with that of...
20462 (make_pass_rtl_move_loop_invariants): ...new function.
20463 (pass_rtl_unswitch): Replace declaration with that of...
20464 (make_pass_rtl_unswitch): ...new function.
20465 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
20466 (make_pass_rtl_unroll_and_peel_loops): ...new function.
20467 (pass_rtl_doloop): Replace declaration with that of...
20468 (make_pass_rtl_doloop): ...new function.
20469 (pass_rtl_loop_done): Replace declaration with that of...
20470 (make_pass_rtl_loop_done): ...new function.
20471 (pass_web): Replace declaration with that of...
20472 (make_pass_web): ...new function.
20473 (pass_cse2): Replace declaration with that of...
20474 (make_pass_cse2): ...new function.
20475 (pass_df_initialize_opt): Replace declaration with that of...
20476 (make_pass_df_initialize_opt): ...new function.
20477 (pass_df_initialize_no_opt): Replace declaration with that of...
20478 (make_pass_df_initialize_no_opt): ...new function.
20479 (pass_reginfo_init): Replace declaration with that of...
20480 (make_pass_reginfo_init): ...new function.
20481 (pass_inc_dec): Replace declaration with that of...
20482 (make_pass_inc_dec): ...new function.
20483 (pass_stack_ptr_mod): Replace declaration with that of...
20484 (make_pass_stack_ptr_mod): ...new function.
20485 (pass_initialize_regs): Replace declaration with that of...
20486 (make_pass_initialize_regs): ...new function.
20487 (pass_combine): Replace declaration with that of...
20488 (make_pass_combine): ...new function.
20489 (pass_if_after_combine): Replace declaration with that of...
20490 (make_pass_if_after_combine): ...new function.
20491 (pass_ree): Replace declaration with that of...
20492 (make_pass_ree): ...new function.
20493 (pass_partition_blocks): Replace declaration with that of...
20494 (make_pass_partition_blocks): ...new function.
20495 (pass_match_asm_constraints): Replace declaration with that of...
20496 (make_pass_match_asm_constraints): ...new function.
20497 (pass_regmove): Replace declaration with that of...
20498 (make_pass_regmove): ...new function.
20499 (pass_split_all_insns): Replace declaration with that of...
20500 (make_pass_split_all_insns): ...new function.
20501 (pass_fast_rtl_byte_dce): Replace declaration with that of...
20502 (make_pass_fast_rtl_byte_dce): ...new function.
20503 (pass_lower_subreg2): Replace declaration with that of...
20504 (make_pass_lower_subreg2): ...new function.
20505 (pass_mode_switching): Replace declaration with that of...
20506 (make_pass_mode_switching): ...new function.
20507 (pass_sms): Replace declaration with that of...
20508 (make_pass_sms): ...new function.
20509 (pass_sched): Replace declaration with that of...
20510 (make_pass_sched): ...new function.
20511 (pass_ira): Replace declaration with that of...
20512 (make_pass_ira): ...new function.
20513 (pass_reload): Replace declaration with that of...
20514 (make_pass_reload): ...new function.
20515 (pass_clean_state): Replace declaration with that of...
20516 (make_pass_clean_state): ...new function.
20517 (pass_branch_prob): Replace declaration with that of...
20518 (make_pass_branch_prob): ...new function.
20519 (pass_value_profile_transformations): Replace declaration with that
20520 of...
20521 (make_pass_value_profile_transformations): ...new function.
20522 (pass_postreload_cse): Replace declaration with that of...
20523 (make_pass_postreload_cse): ...new function.
20524 (pass_gcse2): Replace declaration with that of...
20525 (make_pass_gcse2): ...new function.
20526 (pass_split_after_reload): Replace declaration with that of...
20527 (make_pass_split_after_reload): ...new function.
20528 (pass_branch_target_load_optimize1): Replace declaration with that
20529 of...
20530 (make_pass_branch_target_load_optimize1): ...new function.
20531 (pass_thread_prologue_and_epilogue): Replace declaration with that
20532 of...
20533 (make_pass_thread_prologue_and_epilogue): ...new function.
20534 (pass_stack_adjustments): Replace declaration with that of...
20535 (make_pass_stack_adjustments): ...new function.
20536 (pass_peephole2): Replace declaration with that of...
20537 (make_pass_peephole2): ...new function.
20538 (pass_if_after_reload): Replace declaration with that of...
20539 (make_pass_if_after_reload): ...new function.
20540 (pass_regrename): Replace declaration with that of...
20541 (make_pass_regrename): ...new function.
20542 (pass_cprop_hardreg): Replace declaration with that of...
20543 (make_pass_cprop_hardreg): ...new function.
20544 (pass_reorder_blocks): Replace declaration with that of...
20545 (make_pass_reorder_blocks): ...new function.
20546 (pass_branch_target_load_optimize2): Replace declaration with that
20547 of...
20548 (make_pass_branch_target_load_optimize2): ...new function.
20549 (pass_leaf_regs): Replace declaration with that of...
20550 (make_pass_leaf_regs): ...new function.
20551 (pass_split_before_sched2): Replace declaration with that of...
20552 (make_pass_split_before_sched2): ...new function.
20553 (pass_compare_elim_after_reload): Replace declaration with that of...
20554 (make_pass_compare_elim_after_reload): ...new function.
20555 (pass_sched2): Replace declaration with that of...
20556 (make_pass_sched2): ...new function.
20557 (pass_stack_regs): Replace declaration with that of...
20558 (make_pass_stack_regs): ...new function.
20559 (pass_stack_regs_run): Replace declaration with that of...
20560 (make_pass_stack_regs_run): ...new function.
20561 (pass_df_finish): Replace declaration with that of...
20562 (make_pass_df_finish): ...new function.
20563 (pass_compute_alignments): Replace declaration with that of...
20564 (make_pass_compute_alignments): ...new function.
20565 (pass_duplicate_computed_gotos): Replace declaration with that of...
20566 (make_pass_duplicate_computed_gotos): ...new function.
20567 (pass_variable_tracking): Replace declaration with that of...
20568 (make_pass_variable_tracking): ...new function.
20569 (pass_free_cfg): Replace declaration with that of...
20570 (make_pass_free_cfg): ...new function.
20571 (pass_machine_reorg): Replace declaration with that of...
20572 (make_pass_machine_reorg): ...new function.
20573 (pass_cleanup_barriers): Replace declaration with that of...
20574 (make_pass_cleanup_barriers): ...new function.
20575 (pass_delay_slots): Replace declaration with that of...
20576 (make_pass_delay_slots): ...new function.
20577 (pass_split_for_shorten_branches): Replace declaration with that of...
20578 (make_pass_split_for_shorten_branches): ...new function.
20579 (pass_split_before_regstack): Replace declaration with that of...
20580 (make_pass_split_before_regstack): ...new function.
20581 (pass_convert_to_eh_region_ranges): Replace declaration with that
20582 of...
20583 (make_pass_convert_to_eh_region_ranges): ...new function.
20584 (pass_shorten_branches): Replace declaration with that of...
20585 (make_pass_shorten_branches): ...new function.
20586 (pass_set_nothrow_function_flags): Replace declaration with that of...
20587 (make_pass_set_nothrow_function_flags): ...new function.
20588 (pass_dwarf2_frame): Replace declaration with that of...
20589 (make_pass_dwarf2_frame): ...new function.
20590 (pass_final): Replace declaration with that of...
20591 (make_pass_final): ...new function.
20592 (pass_rtl_seqabstr): Replace declaration with that of...
20593 (make_pass_rtl_seqabstr): ...new function.
20594 (pass_release_ssa_names): Replace declaration with that of...
20595 (make_pass_release_ssa_names): ...new function.
20596 (pass_early_inline): Replace declaration with that of...
20597 (make_pass_early_inline): ...new function.
20598 (pass_inline_parameters): Replace declaration with that of...
20599 (make_pass_inline_parameters): ...new function.
20600 (pass_update_address_taken): Replace declaration with that of...
20601 (make_pass_update_address_taken): ...new function.
20602 (pass_convert_switch): Replace declaration with that of...
20603 (make_pass_convert_switch): ...new function.
20604 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
20605 to a subclass of simple_ipa_opt_pass along with...
20606 (pass_data_ipa_tree_profile): ...new pass_data instance and...
20607 (make_pass_ipa_tree_profile): ...new function.
20608 * tree-sra.c (pass_sra_early): Convert from a global struct to a
20609 subclass of gimple_opt_pass along with...
20610 (pass_data_sra_early): ...new pass_data instance and...
20611 (make_pass_sra_early): ...new function.
20612 (pass_sra): Convert from a global struct to a subclass of
20613 gimple_opt_pass along with...
20614 (pass_data_sra): ...new pass_data instance and...
20615 (make_pass_sra): ...new function.
20616 (pass_early_ipa_sra): Convert from a global struct to a subclass of
20617 gimple_opt_pass along with...
20618 (pass_data_early_ipa_sra): ...new pass_data instance and...
20619 (make_pass_early_ipa_sra): ...new function.
20620 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
20621 subclass of gimple_opt_pass along with...
20622 (pass_data_ccp): ...new pass_data instance and...
20623 (make_pass_ccp): ...new function.
20624 (pass_fold_builtins): Convert from a global struct to a subclass of
20625 gimple_opt_pass along with...
20626 (pass_data_fold_builtins): ...new pass_data instance and...
20627 (make_pass_fold_builtins): ...new function.
20628 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
20629 subclass of gimple_opt_pass along with...
20630 (pass_data_copy_prop): ...new pass_data instance and...
20631 (make_pass_copy_prop): ...new function.
20632 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
20633 global struct to a subclass of gimple_opt_pass along with...
20634 (pass_data_rename_ssa_copies): ...new pass_data instance and...
20635 (make_pass_rename_ssa_copies): ...new function.
20636 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
20637 subclass of gimple_opt_pass along with...
20638 (pass_data_dce): ...new pass_data instance and...
20639 (make_pass_dce): ...new function.
20640 (pass_dce_loop): Convert from a global struct to a subclass of
20641 gimple_opt_pass along with...
20642 (pass_data_dce_loop): ...new pass_data instance and...
20643 (make_pass_dce_loop): ...new function.
20644 (pass_cd_dce): Convert from a global struct to a subclass of
20645 gimple_opt_pass along with...
20646 (pass_data_cd_dce): ...new pass_data instance and...
20647 (make_pass_cd_dce): ...new function.
20648 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
20649 subclass of gimple_opt_pass along with...
20650 (pass_data_dominator): ...new pass_data instance and...
20651 (make_pass_dominator): ...new function.
20652 (pass_phi_only_cprop): Convert from a global struct to a subclass of
20653 gimple_opt_pass along with...
20654 (pass_data_phi_only_cprop): ...new pass_data instance and...
20655 (make_pass_phi_only_cprop): ...new function.
20656 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
20657 subclass of gimple_opt_pass along with...
20658 (pass_data_dse): ...new pass_data instance and...
20659 (make_pass_dse): ...new function.
20660 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
20661 a subclass of gimple_opt_pass along with...
20662 (pass_data_forwprop): ...new pass_data instance and...
20663 (make_pass_forwprop): ...new function.
20664 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
20665 struct to a subclass of gimple_opt_pass along with...
20666 (pass_data_tree_ifcombine): ...new pass_data instance and...
20667 (make_pass_tree_ifcombine): ...new function.
20668 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
20669 subclass of gimple_opt_pass along with...
20670 (pass_data_ch): ...new pass_data instance and...
20671 (make_pass_ch): ...new function.
20672 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
20673 subclass of gimple_opt_pass along with...
20674 (pass_data_tree_loop): ...new pass_data instance and...
20675 (make_pass_tree_loop): ...new function.
20676 (pass_tree_loop_init): Convert from a global struct to a subclass of
20677 gimple_opt_pass along with...
20678 (pass_data_tree_loop_init): ...new pass_data instance and...
20679 (make_pass_tree_loop_init): ...new function.
20680 (pass_lim): Convert from a global struct to a subclass of
20681 gimple_opt_pass along with...
20682 (pass_data_lim): ...new pass_data instance and...
20683 (make_pass_lim): ...new function.
20684 (pass_tree_unswitch): Convert from a global struct to a subclass of
20685 gimple_opt_pass along with...
20686 (pass_data_tree_unswitch): ...new pass_data instance and...
20687 (make_pass_tree_unswitch): ...new function.
20688 (pass_predcom): Convert from a global struct to a subclass of
20689 gimple_opt_pass along with...
20690 (pass_data_predcom): ...new pass_data instance and...
20691 (make_pass_predcom): ...new function.
20692 (pass_vectorize): Convert from a global struct to a subclass of
20693 gimple_opt_pass along with...
20694 (pass_data_vectorize): ...new pass_data instance and...
20695 (make_pass_vectorize): ...new function.
20696 (pass_graphite): Convert from a global struct to a subclass of
20697 gimple_opt_pass along with...
20698 (pass_data_graphite): ...new pass_data instance and...
20699 (make_pass_graphite): ...new function.
20700 (pass_graphite_transforms): Convert from a global struct to a subclass
20701 of gimple_opt_pass along with...
20702 (pass_data_graphite_transforms): ...new pass_data instance and...
20703 (make_pass_graphite_transforms): ...new function.
20704 (pass_check_data_deps): Convert from a global struct to a subclass of
20705 gimple_opt_pass along with...
20706 (pass_data_check_data_deps): ...new pass_data instance and...
20707 (make_pass_check_data_deps): ...new function.
20708 (pass_iv_canon): Convert from a global struct to a subclass of
20709 gimple_opt_pass along with...
20710 (pass_data_iv_canon): ...new pass_data instance and...
20711 (make_pass_iv_canon): ...new function.
20712 (pass_scev_cprop): Convert from a global struct to a subclass of
20713 gimple_opt_pass along with...
20714 (pass_data_scev_cprop): ...new pass_data instance and...
20715 (make_pass_scev_cprop): ...new function.
20716 (pass_record_bounds): Convert from a global struct to a subclass of
20717 gimple_opt_pass along with...
20718 (pass_data_record_bounds): ...new pass_data instance and...
20719 (make_pass_record_bounds): ...new function.
20720 (pass_complete_unroll): Convert from a global struct to a subclass of
20721 gimple_opt_pass along with...
20722 (pass_data_complete_unroll): ...new pass_data instance and...
20723 (make_pass_complete_unroll): ...new function.
20724 (pass_complete_unrolli): Convert from a global struct to a subclass of
20725 gimple_opt_pass along with...
20726 (pass_data_complete_unrolli): ...new pass_data instance and...
20727 (make_pass_complete_unrolli): ...new function.
20728 (pass_parallelize_loops): Convert from a global struct to a subclass
20729 of gimple_opt_pass along with...
20730 (pass_data_parallelize_loops): ...new pass_data instance and...
20731 (make_pass_parallelize_loops): ...new function.
20732 (pass_loop_prefetch): Convert from a global struct to a subclass of
20733 gimple_opt_pass along with...
20734 (pass_data_loop_prefetch): ...new pass_data instance and...
20735 (make_pass_loop_prefetch): ...new function.
20736 (pass_iv_optimize): Convert from a global struct to a subclass of
20737 gimple_opt_pass along with...
20738 (pass_data_iv_optimize): ...new pass_data instance and...
20739 (make_pass_iv_optimize): ...new function.
20740 (pass_tree_loop_done): Convert from a global struct to a subclass of
20741 gimple_opt_pass along with...
20742 (pass_data_tree_loop_done): ...new pass_data instance and...
20743 (make_pass_tree_loop_done): ...new function.
20744 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
20745 struct to a subclass of gimple_opt_pass along with...
20746 (pass_data_cse_reciprocals): ...new pass_data instance and...
20747 (make_pass_cse_reciprocals): ...new function.
20748 (pass_cse_sincos): Convert from a global struct to a subclass of
20749 gimple_opt_pass along with...
20750 (pass_data_cse_sincos): ...new pass_data instance and...
20751 (make_pass_cse_sincos): ...new function.
20752 (pass_optimize_bswap): Convert from a global struct to a subclass of
20753 gimple_opt_pass along with...
20754 (pass_data_optimize_bswap): ...new pass_data instance and...
20755 (make_pass_optimize_bswap): ...new function.
20756 (pass_optimize_widening_mul): Convert from a global struct to a
20757 subclass of gimple_opt_pass along with...
20758 (pass_data_optimize_widening_mul): ...new pass_data instance and...
20759 (make_pass_optimize_widening_mul): ...new function.
20760 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
20761 subclass of gimple_opt_pass along with...
20762 (pass_data_phiopt): ...new pass_data instance and...
20763 (make_pass_phiopt): ...new function.
20764 (pass_cselim): Convert from a global struct to a subclass of
20765 gimple_opt_pass along with...
20766 (pass_data_cselim): ...new pass_data instance and...
20767 (make_pass_cselim): ...new function.
20768 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
20769 subclass of gimple_opt_pass along with...
20770 (pass_data_phiprop): ...new pass_data instance and...
20771 (make_pass_phiprop): ...new function.
20772 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
20773 subclass of gimple_opt_pass along with...
20774 (pass_data_pre): ...new pass_data instance and...
20775 (make_pass_pre): ...new function.
20776 (pass_fre): Convert from a global struct to a subclass of
20777 gimple_opt_pass along with...
20778 (pass_data_fre): ...new pass_data instance and...
20779 (make_pass_fre): ...new function.
20780 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
20781 subclass of gimple_opt_pass along with...
20782 (pass_data_reassoc): ...new pass_data instance and...
20783 (make_pass_reassoc): ...new function.
20784 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
20785 subclass of gimple_opt_pass along with...
20786 (pass_data_sink_code): ...new pass_data instance and...
20787 (make_pass_sink_code): ...new function.
20788 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
20789 subclass of gimple_opt_pass along with...
20790 (pass_data_strlen): ...new pass_data instance and...
20791 (make_pass_strlen): ...new function.
20792 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
20793 struct to a subclass of gimple_opt_pass along with...
20794 (pass_data_build_alias): ...new pass_data instance and...
20795 (make_pass_build_alias): ...new function.
20796 (pass_build_ealias): Convert from a global struct to a subclass of
20797 gimple_opt_pass along with...
20798 (pass_data_build_ealias): ...new pass_data instance and...
20799 (make_pass_build_ealias): ...new function.
20800 (pass_ipa_pta): Convert from a global struct to a subclass of
20801 simple_ipa_opt_pass along with...
20802 (pass_data_ipa_pta): ...new pass_data instance and...
20803 (make_pass_ipa_pta): ...new function.
20804 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
20805 subclass of gimple_opt_pass along with...
20806 (pass_data_uncprop): ...new pass_data instance and...
20807 (make_pass_uncprop): ...new function.
20808 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
20809 global struct to a subclass of gimple_opt_pass along with...
20810 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
20811 (make_pass_late_warn_uninitialized): ...new function.
20812 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
20813 to a subclass of gimple_opt_pass along with...
20814 (pass_data_init_datastructures): ...new pass_data instance and...
20815 (make_pass_init_datastructures): ...new function.
20816 (pass_early_warn_uninitialized): Convert from a global struct to a
20817 subclass of gimple_opt_pass along with...
20818 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
20819 (make_pass_early_warn_uninitialized): ...new function.
20820 (pass_update_address_taken): Convert from a global struct to a
20821 subclass of gimple_opt_pass along with...
20822 (pass_data_update_address_taken): ...new pass_data instance and...
20823 (make_pass_update_address_taken): ...new function.
20824 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
20825 struct to a subclass of gimple_opt_pass along with...
20826 (pass_data_release_ssa_names): ...new pass_data instance and...
20827 (make_pass_release_ssa_names): ...new function.
20828 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
20829 subclass of gimple_opt_pass along with...
20830 (pass_data_stdarg): ...new pass_data instance and...
20831 (make_pass_stdarg): ...new function.
20832 * tree-switch-conversion.c (pass_convert_switch): Convert from a
20833 global struct to a subclass of gimple_opt_pass along with...
20834 (pass_data_convert_switch): ...new pass_data instance and...
20835 (make_pass_convert_switch): ...new function.
20836 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
20837 to a subclass of gimple_opt_pass along with...
20838 (pass_data_tail_recursion): ...new pass_data instance and...
20839 (make_pass_tail_recursion): ...new function.
20840 (pass_tail_calls): Convert from a global struct to a subclass of
20841 gimple_opt_pass along with...
20842 (pass_data_tail_calls): ...new pass_data instance and...
20843 (make_pass_tail_calls): ...new function.
20844 * tree-vect-generic.c (pass_lower_vector): Convert from a global
20845 struct to a subclass of gimple_opt_pass along with...
20846 (pass_data_lower_vector): ...new pass_data instance and...
20847 (make_pass_lower_vector): ...new function.
20848 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
20849 gimple_opt_pass along with...
20850 (pass_data_lower_vector_ssa): ...new pass_data instance and...
20851 (make_pass_lower_vector_ssa): ...new function.
20852 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
20853 to a subclass of gimple_opt_pass along with...
20854 (pass_data_slp_vectorize): ...new pass_data instance and...
20855 (make_pass_slp_vectorize): ...new function.
20856 (pass_ipa_increase_alignment): Convert from a global struct to a
20857 subclass of simple_ipa_opt_pass along with...
20858 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
20859 (make_pass_ipa_increase_alignment): ...new function.
20860 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
20861 gimple_opt_pass along with...
20862 (pass_data_vrp): ...new pass_data instance and...
20863 (make_pass_vrp): ...new function.
20864 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
20865 subclass of simple_ipa_opt_pass along with...
20866 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
20867 (make_pass_ipa_free_lang_data): ...new function.
20868 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
20869 gimple_opt_pass along with...
20870 (pass_data_tsan): ...new pass_data instance and...
20871 (make_pass_tsan): ...new function.
20872 (pass_tsan_O0): Convert from a global struct to a subclass of
20873 gimple_opt_pass along with...
20874 (pass_data_tsan_O0): ...new pass_data instance and...
20875 (make_pass_tsan_O0): ...new function.
20876 * var-tracking.c (pass_variable_tracking): Convert from a global
20877 struct to a subclass of rtl_opt_pass along with...
20878 (pass_data_variable_tracking): ...new pass_data instance and...
20879 (make_pass_variable_tracking): ...new function.
20880 * web.c (pass_web): Convert from a global struct to a subclass of
20881 rtl_opt_pass along with...
20882 (pass_data_web): ...new pass_data instance and...
20883 (make_pass_web): ...new function.
20884 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
20885 declaration with that of...
20886 (make_pass_mode_switch_use): ...new function.
20887 (pass_resolve_sw_modes): Replace declaration with that of...
20888 (make_pass_resolve_sw_modes): ...new function.
20889 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
20890 from a global struct to a subclass of rtl_opt_pass along with...
20891 (pass_data_mode_switch_use): ...new pass_data instance and...
20892 (make_pass_mode_switch_use): ...new function.
20893 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
20894 from a global struct to a subclass of rtl_opt_pass along with...
20895 (pass_data_resolve_sw_modes): ...new pass_data instance and...
20896 (make_pass_resolve_sw_modes): ...new function.
20897 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
20898 struct to a subclass of rtl_opt_pass along with...
20899 (pass_data_insert_vzeroupper): ...new pass_data instance and...
20900 (make_pass_insert_vzeroupper): ...new function.
20901 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
20902 global struct to a subclass of rtl_opt_pass along with...
20903 (pass_data_work_around_errata): ...new pass_data instance and...
20904 (make_pass_work_around_errata): ...new function.
20905 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
20906 struct to a subclass of rtl_opt_pass along with...
20907 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
20908 (make_pass_mips_machine_reorg2): ...new function.
20909
20910 2013-08-05 David Malcolm <dmalcolm@redhat.com>
20911
20912 * passes.c (pass_manager::operator new): New.
20913
20914 2013-08-05 David Malcolm <dmalcolm@redhat.com>
20915
20916 Handwritten part of conversion of passes to C++ classes.
20917
20918 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
20919 (toplev.o): Add dep on PASS_MANAGER_H.
20920 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
20921 of early local pases to reflect this moving from a global to a
20922 member of gcc::pass_manager.
20923 (cgraph_add_new_function): Likewise.
20924 * lto-cgraph.c (lto_output_node): Update for conversion of
20925 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
20926 * passes.c (opt_pass::clone): New.
20927 (opt_pass::gate): New.
20928 (opt_pass::execute): New.
20929 (opt_pass::opt_pass): New.
20930 (pass_manager::execute_early_local_passes): New.
20931 (pass_manager::execute_pass_mode_switching): new.
20932 (finish_optimization_passes): Convert to...
20933 (pass_manager::finish_optimization_passes): ...this.
20934 (finish_optimization_passes): Update for conversion of passes to
20935 C++ classes.
20936 (register_dump_files_1): Use has_gate since we cannot portably
20937 check a vtable entry against NULL.
20938 (dump_one_pass): Likewise.
20939 (ipa_write_summaries_2): Likewise.
20940 (ipa_write_optimization_summaries_1): Likewise.
20941 (ipa_read_summaries_1): Likewise.
20942 (ipa_read_optimization_summaries_1): Likewise.
20943 (execute_ipa_stmt_fixups): Likewise.
20944 (pass_manager::pass_manager): Rewrite pass-creation, invoking
20945 pass-creation functions rather than wiring up globals, and
20946 storing the results in fields of pass_manager generated using
20947 pass-instances.def.
20948 (pass_manager::dump_profile_report): Update for conversion of
20949 passes to C++ classes.
20950 (pass_manager::execute_ipa_summary_passes): Likewise.
20951 (execute_one_ipa_transform_pass): Likewise.
20952 (execute_one_pass): Use has_gate and has_execute since we cannot
20953 portably check a vtable entry against NULL.
20954 * pass_manager.h (pass_manager::finish_optimization_passes): New.
20955 (pass_manager): Use pass-instances.def to add fields for the
20956 various pass instances.
20957 * toplev.c (finalize): Update for move of
20958 finish_optimization_passes to a method of gcc::pass_manager.
20959 * toplev.h (finish_optimization_passes): Move to method of class
20960 pass_manager.
20961 * tree-pass.h (struct pass_data): New.
20962 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
20963 (opt_pass::gate): Convert to virtual function.
20964 (opt_pass::~opt_pass): New.
20965 (opt_pass::clone): New.
20966 (opt_pass::execute): Convert to virtual function.
20967 (opt_pass::opt_pass): New.
20968 (opt_pass::ctxt_): new.
20969 (gimple_opt_pass): Convert to subclass of opt_pass.
20970 (gimple_opt_pass::gimple_opt_pass): New.
20971 (rtl_opt_pass): Convert to subclass of opt_pass.
20972 (rtl_opt_pass::rtl_opt_pass): New.
20973 (ipa_opt_pass_d): Convert to subclass of opt_pass.
20974 (ipa_opt_pass_d::ipa_opt_pass_d): New.
20975 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
20976 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
20977 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
20978 invocation of pass_mode_switching to reflect this moving from a
20979 global to a member of gcc::pass_manager.
20980 (ix86_option_override): Rework how pass_insert_vzeroupper is
20981 added to the pass_manager to reflect autogenerated changes.
20982 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
20983
20984 2013-08-05 Richard Earnshaw <rearnsha@arm.com>
20985
20986 PR rtl-optimization/57708
20987 * recog.c (peep2_find_free_register): Validate all regs in a
20988 multi-reg mode.
20989
20990 2013-08-05 Jan Hubicka <jh@suse.cz>
20991
20992 PR lto/57602
20993 * cgraph.c (verify_cgraph_node): Accept local flags from other
20994 partitions.
20995 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
20996 (function_and_variable_visibility): Likewise.
20997 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
20998
20999 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
21000
21001 * graph.c (init_graph_slim_pretty_print): Remove.
21002 (print_graph_cfg): Do not call it. Use local pretty printer.
21003 (start_graph_dump): Likewise.
21004
21005 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
21006
21007 * gimple-pretty-print.c (buffer): Remove.
21008 (initialized): Likewise.
21009 (maybe_init_pretty_print): Likewise.
21010 (print_gimple_stmt): Do not call it. Use non-static local
21011 pretty_printer variable.
21012 (print_gimple_expr): Likewise.
21013 (print_gimple_seq): Likewise.
21014 (gimple_dump_bb): Likewise.
21015
21016 2013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
21017
21018 * asan.c (asan_pp): Remove.
21019 (asan_pp_initialized): Likewise.
21020 (asan_pp_initialize): Likewise.
21021 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
21022 (asan_emit_stack_protection): Tidy. Use local pretty printer.
21023 (asan_add_global): Likewise.
21024
21025 2013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
21026
21027 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
21028 * diagnostic.h (diagnostic_flush_buffer): Adjust.
21029 * pretty-print.c (pp_formatted_text_data): Likewise.
21030 (pp_indent): Rename from pp_base_indent.
21031 (pp_format): Rename from pp_base_format.
21032 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
21033 (pp_format_verbatim): Rename from pp_base_format_verbatim.
21034 (pp_flush): Rename from pp_base_flush.
21035 (pp_set_line_maximum_length): Rename from
21036 pp_base_set_line_maximum_length.
21037 (pp_clear_output_area): Rename from pp_base_clear_output_area.
21038 (pp_set_prefix): Rename from pp_base_set_prefix.
21039 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
21040 (pp_emit_prefix): Rename from pp_base_emit_prefix.
21041 (pp_append_text): Rename from pp_base_append_text.
21042 (pp_formatted_text): Rename from pp_base_formatted_text.
21043 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
21044 (pp_remaining_character_count_for_line): Rename from
21045 pp_base_remaining_character_count_for_line.
21046 (pp_newline): Rename from pp_base_newline.
21047 (pp_character): Rename from pp_base_character.
21048 (pp_string): Rename from pp_base_string.
21049 (pp_maybe_space): Rename from pp_base_maybe_space.
21050 * asan.c (asan_pp_string): Adjust.
21051 (asan_emit_stack_protection): Likewise.
21052 (asan_add_global): Likewise.
21053 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
21054 * tree-mudflap.c (mf_varname_tree): Likewise.
21055 * tree-pretty-print.c (pp_tree_identifier): Rename from
21056 pp_base_tree_identifier.
21057 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
21058 Declare as function.
21059
21060 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
21061
21062 * pretty-print.h (pp_bar_bar): New.
21063 (pp_ampersand_ampersand): Likewise.
21064 (pp_less_equal): Likewise.
21065 (pp_greater_equal): Likewise.
21066 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
21067 printer functions instead of pp_string or operators and punctuators.
21068 (dump_gimple_call): Likewise.
21069 (dump_gimple_omp_for): Likewise.
21070 (dump_gimple_transaction): Likewise.
21071 (dump_gimple_phi): Likewise.
21072 (pp_gimple_stmt_1): Likewise.
21073 * sched-vis.c (print_insn): Likewise.
21074 * tree-mudflap.c (mf_varname_tree): Likewise.
21075 * tree-pretty-print.c (dump_block_node): Likewise.
21076 (dump_generic_node): Likewise.
21077
21078 2013-08-02 Jan Hubicka <jh@suse.cz>
21079
21080 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
21081 boundaries.
21082 * lto-streamer-out.c (tree_is_indexable): Results decls and
21083 parm decls are not indexable.
21084 (DFS_write_tree_body): Do not follow args and results.
21085 (hash_tree): Likewise.
21086 (output_functions): Rearrange so struct function is needed
21087 only when real body is output; be able to also ouptut abstract
21088 functions; output DECL_ARGUMENTS and DECL_RESULT.
21089 (lto_output): When not in WPA, ale store abstract functions.
21090 (write_symbol): Do not care about RESULT_DECL.
21091 (output_symbol_p): Handle correctly sbtract decls.
21092 * lto-streamer-in.c (input_function): Rearrange so struct
21093 function can be NULL at entry; allow streaming of
21094 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
21095 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
21096 sanity check during LTO.
21097 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
21098 RESULT_DECl and DECL_ARGUMENTS.
21099 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
21100 Likewise.
21101
21102 2013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
21103
21104 * pretty-print.h (pp_underscore): New.
21105 (pp_comma): Tidy.
21106 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
21107 printer functions instead of pp_character.
21108 (dump_binary_rhs): Likewise.
21109 (dump_ternary_rhs): Likewise.
21110 (dump_gimple_call_args): Likewise.
21111 (pp_points_to_solution): Likewise.
21112 (dump_gimple_call): Likewise.
21113 (dump_gimple_switch): Likewise.
21114 (dump_gimple_cond): Likewise.
21115 (dump_gimple_bind): Likewise.
21116 (dump_gimple_try): Likewise.
21117 (dump_gimple_omp_for): Likewise.
21118 (dump_gimple_omp_continue): Likewise.
21119 (dump_gimple_omp_single): Likewise.
21120 (dump_gimple_omp_sections): Likewise.
21121 (dump_gimple_omp_block): Likewise.
21122 (dump_gimple_omp_critical): Likewise.
21123 (dump_gimple_transaction): Likewise.
21124 (dump_gimple_asm): Likewise.
21125 (dump_gimple_phi): Likewise.
21126 (dump_gimple_omp_parallel): Likewise.
21127 (dump_gimple_omp_task): Likewise.
21128 (dump_gimple_omp_atomic_load): Likewise.
21129 (dump_gimple_omp_atomic_store): Likewise.
21130 (dump_gimple_mem_ops): Likewise.
21131 (pp_gimple_stmt_1): Likewise.
21132 (pp_cfg_jump): Likewise.
21133 (dump_implicit_edges): Likewise.
21134 (gimple_dump_bb_for_graph): Likewise.
21135 * graph.c (draw_cfg_node): Likewise.
21136 * langhooks.c (lhd_print_error_function): Likewise.
21137 * sched-vis.c (print_exp): Likewise.
21138 (print_value): Likewise.
21139 (print_pattern): Likewise.
21140 (print_insn): Likewise.
21141 (rtl_dump_bb_for_graph): Likewise.
21142 * tree-pretty-print.c (dump_function_declaration): Likewise.
21143 (dump_array_domain): Likewise.
21144 (dump_omp_clause): Likewise.
21145 (dump_location): Likewise.
21146 (dump_generic_node): Likewise.
21147 (print_struct_decl): Likewise.
21148 * diagnostic.c (diagnostic_show_locus): Use pp_space.
21149
21150 2013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
21151
21152 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
21153 candidate table when replacing a candidate statement.
21154 (replace_rhs_if_not_dup): Likewise.
21155 (replace_one_candidate): Likewise.
21156
21157 2013-08-02 Jan Hubicka <jh@suse.cz>
21158 Martin Liska <marxin.liska@gmail.com>
21159
21160 * cgraphunit.c (add_new_function): Fix logic when adding from
21161 late IPA pass.
21162 (assemble_thunk): Rename to ...
21163 (expand_thunk); .. this one; export; get it working with
21164 general functions; make produced gimple valid.
21165 * cgraph.h (expand_thunk): Declare.
21166
21167 2013-08-02 Jan Hubicka <jh@suse.cz>
21168
21169 * ipa-cp.c (gather_context_independent_values): Use
21170 ipa_get_param_move_cost.
21171 (get_replacement_map): Remove PARAM; move parameter folding
21172 into tree-inline.c
21173 (create_specialized_node): Update.
21174 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
21175 assert that we have gimple body; update move_cost.
21176 (count_formal_params): Assert that we have gimple body.
21177 (ipa_dump_param): New function.
21178 (ipa_alloc_node_params): Break out from ...
21179 (ipa_initialize_node_params): ... here.
21180 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
21181 (ipa_write_node_info): Stream move costs.
21182 (ipa_read_node_info): Read move costs.
21183 (ipa_update_after_lto_read): Do not recompute node params.
21184 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
21185 (ipa_get_param): Check we are not in WPA.
21186 (ipa_get_param_move_cost): New.
21187 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
21188 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
21189 parm numbers to be present.
21190
21191 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
21192
21193 PR rtl-optimization/58048
21194 * lra-constraints.c (process_alt_operands): Don't check asm
21195 operand on register.
21196
21197 2013-08-02 Eric Botcazou <ebotcazou@adacore.com>
21198
21199 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
21200 the implied StoreLoad barrier for atomic operations if before.
21201
21202 2013-08-02 Jan Hubicka <jh@suse.cz>
21203 Martin Liska <marxin.liska@gmail.com>
21204
21205 * cgraph.c (cgraph_function_body_availability): Do not check
21206 cgraph flags.
21207 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
21208 symtab_node_availability): Declare.
21209 * ipa.c (can_replace_by_local_alias): New.
21210 (function_and_variable_visibility): Use it.
21211 * symtab.c (symtab_for_node_and_aliases,
21212 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
21213
21214 2013-08-02 Vladimir Makarov <vmakarov@redhat.com>
21215
21216 PR rtl-optimization/57963
21217 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
21218 (lra_constraints): Use them.
21219
21220 2013-08-02 Sofiane Naci <sofiane.naci@arm.com>
21221
21222 * config/arm/types.md (define_attr "type"): Add "load_acq"
21223 and "store_rel".
21224 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
21225 changes.
21226 (cortex_a53_store1): Likewise.
21227
21228 2013-08-01 Jan Hubicka <jh@suse.cz>
21229
21230 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
21231 partitions are not needed.
21232
21233 2013-08-01 Uros Bizjak <ubizjak@gmail.com>
21234
21235 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
21236 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
21237 MAYBE_NON_Q_CLASS_P where appropriate.
21238
21239 2013-08-01 Jan Hubicka <jh@suse.cz>
21240
21241 * cgraph.h (release_function_body): Declare.
21242 * tree.c (free_lang_data_in_decl): Free, parameters and return values
21243 of unused delcarations.
21244
21245 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21246
21247 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
21248 RTL form when subtracting a constant.
21249
21250 2013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21251
21252 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
21253 Generate canonical plus rtx with negated immediate instead of minus
21254 where appropriate.
21255 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
21256
21257 2013-08-01 Jan Hubicka <jh@suse.cz>
21258
21259 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
21260 (cgraph_release_function_body): Likewise.
21261 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
21262 * cgraph.h (cgrpah_node): Rename abstract_and_needed
21263 to used_as_abstract_origin.
21264 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
21265 symbols used as abstract origins.
21266 * cgraphunit.c (analyze_functions): Update.
21267 * ipa.c (symtab_remove_unreachable_nodes): Recompute
21268 used_as_abstract_origin.
21269 * tree-inline.c (tree_function_versioning): Update
21270 used_as_abstract_origin; be ready for DECL_RESULT and
21271 DECL_ARGUMENTS to be NULL.
21272
21273 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
21274 for abstract functions.
21275 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
21276 real symbols.
21277
21278 2013-08-01 Jan Hubicka <jh@suse.cz>
21279
21280 * profile.c (compute_value_histograms): Fix thinko.
21281
21282 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
21283
21284 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
21285 aarch-common-protos.h to extra_headers.
21286 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
21287 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
21288 * config/aarch64/t-aarch64 (aarch-common.o): Define.
21289
21290 2013-08-01 Sofiane Naci <sofiane.naci@arm.com>
21291
21292 * config/aarch64/aarch64.md (define_attr "type"): Delete.
21293 Include "../arm/types.md". Define "type" attribute for all patterns.
21294 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
21295 attribute changes.
21296
21297 2013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
21298
21299 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
21300 to support power8 load fusion.
21301 (fusion_gpr_mem_load): Likewise.
21302
21303 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
21304
21305 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
21306 declarations for power8 load fusion.
21307 (emit_fusion_gpr_load): Likewise.
21308
21309 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
21310 tuning for power8, turn on fusion mode by default. Turn on sign
21311 extending fusion mode if normal fusion mode is on, and we are at
21312 -O2 or -O3.
21313 (fusion_gpr_load_p): New function, return true if we can fuse an
21314 addis instruction with a dependent load to a GPR.
21315 (emit_fusion_gpr_load): Emit the instructions for power8 load
21316 fusion to GPRs.
21317
21318 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
21319 (VSX load fusion peepholes): New peepholes to fuse together an
21320 addi instruction with a VSX load instruction.
21321
21322 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
21323 peepholes to fuse an addis instruction with a load to a GPR base
21324 register. If we are supporting sign extending fusions, convert
21325 sign extending loads to zero extending loads and add an explicit
21326 sign extension.
21327
21328 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
21329
21330 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
21331 aarch-common-protos.h to extra_headers.
21332 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
21333 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
21334 (arm_early_store_addr_dep): Likewise.
21335 (arm_no_early_alu_shift_dep): Likewise.
21336 (arm_no_early_alu_shift_value_dep): Likewise.
21337 (arm_no_early_mul_dep): Likewise.
21338 (arm_no_early_store_addr_dep): Likewise.
21339 (arm_mac_accumulator_is_mul_result): Likewise.
21340 (arm_mac_accumulator_is_result): Likewise.
21341 * config/arm/aarch-common.c: ... here. New file.
21342 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
21343 here to ...
21344 (arm_early_store_addr_dep): Likewise.
21345 (arm_no_early_alu_shift_dep): Likewise.
21346 (arm_no_early_alu_shift_value_dep): Likewise.
21347 (arm_no_early_mul_dep): Likewise.
21348 (arm_no_early_store_addr_dep): Likewise.
21349 (arm_mac_accumulator_is_mul_result): Likewise.
21350 (arm_mac_accumulator_is_result): Likewise.
21351 * config/arm/aarch-common-protos.h: ... here. New file.
21352 * config/arm/t-arm (aarch-common.o): Define.
21353
21354 2013-07-31 Sofiane Naci <sofiane.naci@arm.com>
21355
21356 * config/arm/arm.md: Include new file "types.md".
21357 (define_attr "type"): Move from here to ...
21358 (define_attr "mul32"): Likewise.
21359 (define_attr "mul64"): Likewise.
21360 * config/arm/types.md: ... here. New file.
21361
21362 2013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
21363
21364 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
21365 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
21366
21367 2013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21368
21369 * gen-pass-instances.awk: Fix offset of substr().
21370
21371 2013-07-31 David Malcolm <dmalcolm@redhat.com>
21372
21373 * Makefile.in (pass-instances.def): New.
21374 (passes.o): Replace dependency on passes.def with one on
21375 pass-instances.def
21376
21377 * gen-pass-instances.awk: New.
21378
21379 * passes.c (pass_manager::pass_manager): Use pass-instances.def
21380 rather than passes.def, updating local definition of NEXT_PASS
21381 macro to add an extra NUM parameter (currently unused).
21382
21383 2013-07-30 David Malcolm <dmalcolm@redhat.com>
21384
21385 * Makefile.in (PASS_MANAGER_H): New.
21386 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
21387 (passes.o): Likewise.
21388 (statistics.o): Likewise.
21389 (cgraphunit.o): Likewise.
21390 (context.o): Depend on PASS_MANAGER_H.
21391
21392 * pass_manager.h: New.
21393
21394 * cgraphunit.c (cgraph_add_new_function): Update for moves
21395 of globals to fields of pass_manager.
21396 (analyze_function): Likewise.
21397 (expand_function): Likewise.
21398 (ipa_passes): Likewise.
21399 (compile): Likewise.
21400
21401 * context.c (context::context): New.
21402 * context.h (context::context): New.
21403 (context::get_passes): New.
21404 (context::passes_): New.
21405
21406 * lto-cgraph.c (input_node): Update for moves of globals to
21407 fields of pass_manager.
21408
21409 * passes.c (all_passes): Remove, in favor of a field of the
21410 same name within the new class pass_manager.
21411 (all_small_ipa_passes): Likewise.
21412 (all_lowering_passes): Likewise.
21413 (all_regular_ipa_passes): Likewise.
21414 (all_late_ipa_passes): Likewise.
21415 (all_lto_gen_passes): Likewise.
21416 (passes_by_id): Likewise.
21417 (passes_by_id_size): Likewise.
21418 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
21419 the new class pass_manager.
21420 (set_pass_for_id): Convert to...
21421 (pass_manager::set_pass_for_id): ...method.
21422 (get_pass_for_id): Convert to...
21423 (pass_manager::get_pass_for_id): ...method.
21424 (register_one_dump_file): Move body of implementation into...
21425 (pass_manager::register_one_dump_file): ...here.
21426 (register_dump_files_1): Convert to...
21427 (pass_manager::register_dump_files_1): ...method.
21428 (register_dump_files): Convert to...
21429 (pass_manager::register_dump_files): ...method.
21430 (create_pass_tab): Update for moves of globals to fields of
21431 pass_manager.
21432 (dump_passes): Move body of implementation into...
21433 (pass_manager::dump_passes): ...here.
21434 (register_pass): Move body of implementation into...
21435 (pass_manager::register_pass): ...here.
21436 (init_optimization_passes): Convert into...
21437 (pass_manager::pass_manager): ...constructor for new
21438 pass_manager class, and initialize the pass_lists array.
21439 (check_profile_consistency): Update for moves of globals to
21440 fields of pass_manager.
21441 (dump_profile_report): Move body of implementation into...
21442 (pass_manager::dump_profile_report): ...here.
21443 (ipa_write_summaries_1): Update for moves of pass lists from
21444 being globals to fields of pass_manager.
21445 (ipa_write_optimization_summaries): Likewise.
21446 (ipa_read_summaries): Likewise.
21447 (ipa_read_optimization_summaries): Likewise.
21448 (execute_all_ipa_stmt_fixups): Likewise.
21449
21450 * statistics.c (statistics_fini): Update for moves of globals to
21451 fields of pass_manager.
21452
21453 * toplev.c (general_init): Replace call to
21454 init_optimization_passes with construction of the pass_manager
21455 instance.
21456
21457 * tree-pass.h (all_passes): Remove, in favor of a field of the
21458 same name within the new class pass_manager.
21459 (all_small_ipa_passes): Likewise.
21460 (all_lowering_passes): Likewise.
21461 (all_regular_ipa_passes): Likewise.
21462 (all_lto_gen_passes): Likewise.
21463 (all_late_ipa_passes): Likewise.
21464 (passes_by_id): Likewise.
21465 (passes_by_id_size): Likewise.
21466 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
21467 the new class pass_manager.
21468 (get_pass_for_id): Remove.
21469
21470 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
21471
21472 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
21473 configs.
21474
21475 2013-07-30 Richard Earnshaw <rearnsha@arm.com>
21476
21477 * arm.md (mulhi3): New expand pattern.
21478
21479 2013-07-30 Jan Hubicka <jh@suse.cz>
21480 Martin Liska <marxin.liska@gmail.com>
21481
21482 * profile.c (compute_value_histograms): Do not ICE when
21483 there is mismatch only on some counters.
21484
21485 2013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21486
21487 PR rtl-optimization/57637
21488 * function.c (move_insn_for_shrink_wrap): Also check the
21489 GEN set of the LIVE problem for the liveness analysis
21490 if it exists, otherwise give up.
21491
21492 2013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
21493
21494 PR tree-optimization/57993
21495 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
21496 replaced statement in the candidate table.
21497 (phi_add_costs): Return infinite cost when the hidden basis does
21498 not dominate all phis on which the candidate is dependent.
21499 (replace_one_candidate): Record replaced statement in the
21500 candidate table.
21501
21502 2013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
21503
21504 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
21505 (ashlv2si3): New expander.
21506 (*ashlv2si3_i): New define_insn_and_split.
21507 * predicates.md (float_operation): Allow patterns with three
21508 basic sub-patterns.
21509
21510 PR rtl-optimization/58021
21511 * mode-switching.c (create_pre_exit): Always split off preceding
21512 insns if we are not at the basic block head.
21513
21514 2013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
21515
21516 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
21517 (UCLIBC_DYNAMIC_LINKER): New macro.
21518 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
21519 `-mnan=2008'.
21520 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
21521 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
21522 `-mnan=2008'.
21523 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
21524 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
21525 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
21526 for SF and DF modes. Use ieee_quad_format for TF mode.
21527 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
21528 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
21529 (mips_option_override): Handle `-mnan=legacy'.
21530 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
21531 `-mabs=2008' and `-mnan=2008'.
21532 (OPTION_DEFAULT_SPECS): Add "nan" default.
21533 (ASM_SPEC): Handle `-mnan='.
21534 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
21535 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
21536 comment accordingly.
21537 (neg<mode>2): Likewise.
21538 * config/mips/mips.opt (mabs, mnan): New options.
21539 * doc/install.texi (Configuration): Document `--with-nan=' option.
21540 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
21541 `-mnan=' options.
21542 (MIPS Options): Document them.
21543 * config.gcc <mips*-*-*>: Handle `--with-nan='.
21544 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
21545 * configure: Regenerate.
21546 * config.in: Regenerate.
21547
21548 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
21549
21550 * config/i386/i386.md (float post-reload splitters): Do not check
21551 for subregs of SSE registers.
21552
21553 2013-07-29 Uros Bizjak <ubizjak@gmail.com>
21554 H.J. Lu <hongjiu.lu@intel.com>
21555
21556 PR target/57954
21557 PR target/57988
21558 * config/i386/i386.md (post-reload splitter
21559 to avoid partial SSE reg dependency stalls): New pattern.
21560
21561 2013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
21562
21563 * config/s390/s390.md ("movcc"): Swap load and store instructions.
21564
21565 2013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
21566
21567 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
21568 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
21569
21570 2013-07-26 Cary Coutant <ccoutant@google.com>
21571
21572 * dwarf2out.c (die_checksum_ordered): Don't include template
21573 instantiations in signature.
21574 (is_template_parameter): New function.
21575 (is_template_instantiation): New function.
21576 (generate_skeleton_bottom_up): Don't include template instantiations
21577 in type unit DIE.
21578 (generate_skeleton): Likewise.
21579 (break_out_comdat_types): Move recursive call to break out nested
21580 types earlier.
21581 (prune_unused_types_mark_generic_parms_dies): Call
21582 is_template_parameter.
21583
21584 2013-07-26 Ian Bolton <ian.bolton@arm.com>
21585
21586 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
21587 uses vector registers.
21588 * config/aarch64/iterators.md: Add attributes rtn and vas.
21589
21590 2013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21591 Richard Earnshaw <richard.earnshaw@arm.com>
21592
21593 * combine.c (simplify_comparison): Re-canonicalize operands
21594 where appropriate.
21595 * config/arm/arm.md (movcond_addsi): New splitter.
21596
21597 2013-07-25 Sterling Augustine <saugustine@google.com>
21598
21599 * dwarf2out.c (size_of_pubnames): Move code to...
21600 (include_pubname_in_output): ...here. New.
21601 (want_pubnames): Rearrange.
21602 (output_pubnames): Call include_pubname_in_output. Move assertion.
21603
21604 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
21605
21606 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
21607
21608 2013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
21609
21610 PR target/38836
21611 * doc/extend.texi: Remove obsolete builtins. Fix
21612 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
21613
21614 2013-07-25 Jan Hubicka <jh@suse.cz>
21615
21616 * cgraph.c (release_function_body): Break out from ...
21617 (cgraph_release_function_body): ... this one; also release DECL_RESULT
21618 and DECL_ARGUMENTS.
21619 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
21620 old_tree in the map.
21621 (create_specialized_node): Update.
21622 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
21623 into index.
21624 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
21625 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
21626 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
21627 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
21628 DECL_RESULT.
21629
21630 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21631
21632 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
21633 addsi3_carryin_alt2_<optab>): Correct output template.
21634
21635 2013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21636
21637 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
21638 Adjust for arm_restrict_it.
21639 Remove trailing whitespace.
21640
21641 2013-07-25  Mark Kettenis  <kettenis@openbsd.org>
21642
21643 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
21644 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
21645
21646 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
21647
21648 2013-07-25 Vladimir Makarov <vmakarov@redhat.com>
21649
21650 PR rtl-optimization/57960
21651 * lra-constraints.c (process_alt_operands): Use the right mode
21652 when checking strict_low.
21653
21654 2013-07-25 Jan Hubicka <jh@suse.cz>
21655
21656 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
21657 * cgraph.c (cgraph_remove_node): Do not release function body
21658 when in cgraph streaming.
21659 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
21660 in other partitions are not considered reachable; fix handling of
21661 clones.
21662
21663 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21664
21665 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
21666
21667 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21668
21669 PR target/19599
21670 PR target/57731
21671 PR target/57837
21672 * config/arm/arm.md ("*sibcall_insn): Replace use of
21673 Ss with US. Adjust output for v5 and v4t.
21674 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
21675
21676 * config/arm/constraints.md ("Ss"): Rename to US.
21677
21678 2013-07-25 Terry Guo <terry.guo@arm.com>
21679
21680 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
21681 shift_add/shift_sub0/shift_sub1 RTXs.
21682
21683 2013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
21684 Anton Blanchard <anton@au1.ibm.com>
21685
21686 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
21687 (altivec_vpks<VI_char>ss): Likewise.
21688 (altivec_vpks<VI_char>us): Likewise.
21689 (altivec_vpku<VI_char>us): Likewise.
21690 (altivec_vpku<VI_char>um): Likewise.
21691
21692 2013-07-24 David Malcolm <dmalcolm@redhat.com>
21693
21694 Introduce context class.
21695
21696 * Makefile.in (CONTEXT_H): New.
21697 (OBJS): Add context.o.
21698 (toplev.o): Add CONTEXT_H to dependencies.
21699 (context.o): New.
21700
21701 * toplev.c (general_init): Create the singleton gcc::context instance.
21702
21703 * context.c: New.
21704
21705 * context.h: New.
21706
21707 2013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
21708
21709 PR rtl-optimization/57968
21710 * mode-switching.c (create_pre_exit): Allow instructions that
21711 don't set a return register to need a non-exit mode.
21712
21713 2013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
21714 Anton Blanchard <anton@au1.ibm.com>
21715
21716 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
21717 operands to vperm for little endian.
21718 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
21719 of lvsl to create the control mask for a vperm for little endian.
21720
21721 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21722 Anton Blanchard <anton@au1.ibm.com>
21723
21724 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
21725 two operands for little-endian.
21726
21727 2013-07-23 Steve Ellcey <sellcey@mips.com>
21728
21729 * config/mips/mips.c (mips_case_values_threshold): New.
21730 (TARGET_CASE_VALUES_THRESHOLD): Define.
21731
21732 2013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21733 Anton Blanchard <anton@au1.ibm.com>
21734
21735 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
21736 selection of field for vector splat in little endian mode.
21737
21738 2013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
21739
21740 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
21741 expanders to rs6000.md.
21742 (ior<mode>3): Likewise.
21743 (and<mode>3): Likewise.
21744 (one_cmpl<mode>2): Likewise.
21745 (nor<mode>3): Likewise.
21746 (andc<mode>3): Likewise.
21747 (eqv<mode>3): Likewise.
21748 (nand<mode>3): Likewise.
21749 (orc<mode>3): Likewise.
21750
21751 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
21752 declaration.
21753
21754 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
21755 to split multi-word logical operations.
21756 (rs6000_split_logical_di): Likewise.
21757 (rs6000_split_logical): Likewise.
21758
21759 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
21760 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
21761 and allow TImode operations in 32-bit.
21762 (vsx_and<mode>3_64bit): Likewise.
21763 (vsx_ior<mode>3_32bit): Likewise.
21764 (vsx_ior<mode>3_64bit): Likewise.
21765 (vsx_xor<mode>3_32bit): Likewise.
21766 (vsx_xor<mode>3_64bit): Likewise.
21767 (vsx_one_cmpl<mode>2_32bit): Likewise.
21768 (vsx_one_cmpl<mode>2_64bit): Likewise.
21769 (vsx_nor<mode>3_32bit): Likewise.
21770 (vsx_nor<mode>3_64bit): Likewise.
21771 (vsx_andc<mode>3_32bit): Likewise.
21772 (vsx_andc<mode>3_64bit): Likewise.
21773 (vsx_eqv<mode>3_32bit): Likewise.
21774 (vsx_eqv<mode>3_64bit): Likewise.
21775 (vsx_nand<mode>3_32bit): Likewise.
21776 (vsx_nand<mode>3_64bit): Likewise.
21777 (vsx_orc<mode>3_32bit): Likewise.
21778 (vsx_orc<mode>3_64bit): Likewise.
21779
21780 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
21781 logical types in GPRs.
21782
21783 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
21784 logical insns to rs6000.md, and allow TImode operations in
21785 32-bit.
21786 (altivec_ior<mode>3): Likewise.
21787 (altivec_xor<mode>3): Likewise.
21788 (altivec_one_cmpl<mode>2): Likewise.
21789 (altivec_nor<mode>3): Likewise.
21790 (altivec_andc<mode>3): Likewise.
21791
21792 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
21793 attributes for moving the 128-bit logical operations into
21794 rs6000.md.
21795 (BOOL_REGS_OUTPUT): Likewise.
21796 (BOOL_REGS_OP1): Likewise.
21797 (BOOL_REGS_OP2): Likewise.
21798 (BOOL_REGS_UNARY): Likewise.
21799 (BOOL_REGS_AND_CR0): Likewise.
21800 (one_cmpl<mode>2): Add support for DI logical operations on
21801 32-bit, splitting the operations to 32-bit.
21802 (anddi3): Likewise.
21803 (iordi3): Likewise.
21804 (xordi3): Likewise.
21805 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
21806 changes to combine the 32/64-bit code, allow logical operations on
21807 TI mode in 32-bit, and to use similar match_operator patterns like
21808 scalar mode uses. Combine the Altivec and VSX code for logical
21809 operations, and move it here.
21810 (ior<mode>3, 128-bit types): Likewise.
21811 (xor<mode>3, 128-bit types): Likewise.
21812 (one_cmpl<mode>3, 128-bit types): Likewise.
21813 (nor<mode>3, 128-bit types): Likewise.
21814 (andc<mode>3, 128-bit types): Likewise.
21815 (eqv<mode>3, 128-bit types): Likewise.
21816 (nand<mode>3, 128-bit types): Likewise.
21817 (orc<mode>3, 128-bit types): Likewise.
21818 (and<mode>3_internal): Likewise.
21819 (bool<mode>3_internal): Likewise.
21820 (boolc<mode>3_internal1): Likewise.
21821 (boolc<mode>3_internal2): Likewise.
21822 (boolcc<mode>3_internal1): Likewise.
21823 (boolcc<mode>3_internal2): Likewise.
21824 (eqv<mode>3_internal1): Likewise.
21825 (eqv<mode>3_internal2): Likewise.
21826 (one_cmpl1<mode>3_internal): Likewise.
21827
21828 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
21829
21830 * config/microblaze/microblaze.c (microblaze_expand_prologue):
21831 Rename flag_stack_usage to flag_stack_usage_info.
21832
21833 2013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
21834
21835 * config/microblaze/sync.md: New file.
21836 * config/microblaze/microblaze.md: Include sync.md
21837 * config/microblaze/microblaze.c: Add print_operand 'y'.
21838 * config/microblaze/constraints.md: Add memory_contraint
21839 'Q' which is a single register.
21840
21841 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
21842
21843 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
21844
21845 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
21846
21847 * reload.c (find_reloads): Exit loop once we find this operand
21848 cannot be reloaded somehow for this alternative.
21849
21850 * reload.c (find_reloads): Exit loop once we find a hard register.
21851
21852 * rtlanal.c (computed_jump_p): Exit loop once we find label
21853 reference is used.
21854
21855 * i386.c (ix86_pad_returns): Exit loop after setting replace.
21856
21857 * cfgloopmanip.c (remove_path): Exit loop after setting
21858 irred_invalidated.
21859
21860 * gensupport.c (subst_dup): Avoid loop if code is not
21861 MATCH_DUP nor MATCH_OP_DUP.
21862
21863 2013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
21864
21865 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
21866
21867 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
21868
21869 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
21870 true for SP_REGNUM if mode == ptr_mode.
21871 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
21872 with value R0_REGNUM + 31.
21873
21874 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
21875
21876 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
21877 pad pointer-typed argument downward.
21878
21879 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
21880
21881 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
21882 and __ILP32__ when the ILP32 model is in use.
21883
21884 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
21885
21886 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
21887 (aarch64_load_symref_appropriately): In the case of
21888 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
21889 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
21890 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
21891 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
21892 if 'mode' doesn't equal to 'ptr_mode'.
21893 (aarch64_output_mi_thunk): Add an assertion on the alignment of
21894 'vcall_offset'; change to call aarch64_emit_move differently depending
21895 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
21896 to calculate the upper bound of 'vcall_offset'.
21897 (aarch64_cannot_force_const_mem): Change to also return true if
21898 mode != ptr_mode.
21899 (aarch64_legitimize_reload_address): In the case of large
21900 displacements, add new local variable 'xmode' and an assertion
21901 based on it; change to use 'xmode' to generate the new rtx and
21902 reload.
21903 (aarch64_asm_trampoline_template): Change to generate the template
21904 differently depending on TARGET_ILP32 or not; change to use
21905 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
21906 (aarch64_trampoline_size): Removed.
21907 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
21908 and replace immediate literals with it. Change to use 'ptr_mode'
21909 instead of 'DImode' and call convert_memory_address if the mode
21910 of 'fnaddr' doesn't equal to 'ptr_mode'.
21911 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
21912 to output symbol.
21913 (aarch64_elf_asm_destructor): Likewise.
21914 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
21915 on TARGET_ILP32 instead of aarch64_trampoline_size.
21916 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
21917 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
21918 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
21919 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
21920 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
21921 (storewb_pair<GPI:mode>_<P:mode>): ... this.
21922 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
21923 depending on the value of 'mode'.
21924 (add_losym_<mode>): New.
21925 (ldr_got_small_<mode>): New, based on ldr_got_small.
21926 (ldr_got_small): Remove.
21927 (ldr_got_small_sidi): New.
21928 * config/aarch64/iterators.md (P): New.
21929 (PTR): Change to 'ptr_mode' in the condition.
21930
21931 2013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
21932
21933 * config.gcc (aarch64*-*-*): Support --with-abi.
21934 (aarch64*-*-elf): Support --with-multilib-list.
21935 (aarch64*-*-linux*): Likewise.
21936 (supported_defaults): Add abi to aarch64*-*-*.
21937 * configure.ac: Mention AArch64 for --with-multilib-list.
21938 * configure: Re-generated.
21939 * config/aarch64/biarchilp32.h: New file.
21940 * config/aarch64/biarchlp64.h: New file.
21941 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
21942 (ABI_SPEC): Ditto.
21943 (MULTILIB_DEFAULTS): Ditto.
21944 (DRIVER_SELF_SPECS): Ditto.
21945 (ASM_SPEC): Update to also substitute -mabi.
21946 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
21947 file whose name depends on -mabi= and -mbig-endian.
21948 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
21949 TARGET_ILP32.
21950 (POINTER_SIZE): New define.
21951 (POINTERS_EXTEND_UNSIGNED): Ditto.
21952 (enum aarch64_abi_type): New enumeration tag.
21953 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
21954 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
21955 (TARGET_ILP32): New define.
21956 * config/aarch64/aarch64.opt (mabi): New.
21957 (aarch64_abi): New.
21958 (ilp32, lp64): New values for -mabi.
21959 * config/aarch64/t-aarch64 (comma): New define.
21960 (MULTILIB_OPTIONS): Ditto.
21961 (MULTILIB_DIRNAMES): Ditto.
21962 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
21963 * doc/invoke.texi: Document -mabi for AArch64.
21964
21965 2013-07-23 Georg-Johann Lay <avr@gjlay.de>
21966
21967 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
21968
21969 2013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
21970 Anton Blanchard <anton@au1.ibm.com>
21971
21972 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
21973 endianness when selecting field to splat.
21974
21975 2013-07-22 Eric Christopher <echristo@gmail.com>
21976
21977 * dwarf2out.c (die_odr_checksum): New function to use
21978 CHECKSUM_ macros and ULEB128 for DIE tag.
21979 (generate_type_signature): Use.
21980
21981 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
21982
21983 * config.gcc (sparc*-*-*): Accept leon3 processor.
21984 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
21985 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
21986 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
21987 * config/sparc/sparc.opt (enum processor_type): Add leon3.
21988 (mfix-ut699): Adjust comment.
21989 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
21990 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
21991 (CPP_CPU_SPEC): Likewise.
21992 (ASM_CPU_SPEC): Likewise.
21993 * config/sparc/sparc.c (leon3_cost): New constant.
21994 (sparc_option_override): Add leon3 support.
21995 (mem_ref): New function.
21996 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
21997 (sparc_do_work_around_errata): Look into the instruction in the delay
21998 slot and adjust accordingly. Add fix for the data cache nullify issues
21999 of the UT699. Change insertion position for the NOP.
22000 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
22001 (leon3_load): New reservation.
22002 (leon_store): Bump latency to 2.
22003 (grfpu): New automaton.
22004 (grfpu_alu): New unit.
22005 (grfpu_ds): Likewise.
22006 (leon_fp_alu): Adjust.
22007 (leon_fp_mult): Delete.
22008 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
22009 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
22010 * config/sparc/sparc.md (cpu): Add leon3.
22011 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
22012 (swapsi): Likewise.
22013 (atomic_test_and_set): Likewise.
22014 (ldstub): Likewise.
22015
22016 2013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
22017
22018 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
22019 default for R5900 targets.
22020 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
22021 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
22022 * config/mips/mips.c (mips_option_override): Report an error for
22023 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
22024 for -march=r5900 -mhard-float.
22025
22026 2013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
22027
22028 * df-problems.c (can_move_insns_across): Exit loop once we
22029 find a non-fixed, non-global register.
22030
22031 * ipa-pure-const.c (propagate_nothrow): Exit loop after
22032 setting can_throw.
22033
22034 * omega.c (omega_eliminate_red): Break after setting red_found.
22035 (omega_problem_has_red_equations): Similarly after setting found.
22036 (omega_query_variable): Similarly after setting coupled.
22037
22038 2013-07-22 Marek Polacek <polacek@redhat.com>
22039
22040 * gimplify.c: Don't include gimple.h twice.
22041
22042 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22043
22044 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
22045 instead of TARGET_THUMB1.
22046 (Pz): New constraint.
22047 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
22048 encodings.
22049 (compare_negsi_si): Likewise.
22050 (compare_addsi2_op0): Likewise.
22051 (compare_addsi2_op1): Likewise.
22052 (addsi3_carryin_<optab>): Likewise.
22053 (addsi3_carryin_alt2_<optab>): Likewise.
22054 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
22055 for arm_restrict_it.
22056 (subsi3_carryin): Likewise.
22057 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
22058 (minmax_arithsi): Disable for arm_restrict_it.
22059 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
22060 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
22061 (satsi_<SAT:code>_shift): Likewise.
22062 (arm_shiftsi3): Add alternative for 16-bit encoding.
22063 (arm32_movhf): Disable for arm_restrict_it.
22064 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
22065 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
22066
22067 2013-07-22 Sofiane Naci <sofiane.naci@arm.com>
22068
22069 * config/arm/arm.md (attribute "insn"): Delete.
22070 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
22071 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
22072 (not_shiftsi): Update for attribute change.
22073 (not_shiftsi_compare0): Likewise.
22074 (not_shiftsi_compare0_scratch): Likewise.
22075 (arm_one_cmplsi2): Likewise.
22076 (thumb1_one_cmplsi2): Likewise.
22077 (notsi_compare0): Likewise.
22078 (notsi_compare0_scratch): Likewise.
22079 (thumb1_movdi_insn): Likewise.
22080 (arm_movsi_insn): Likewise.
22081 (movhi_insn_arch4): Likewise.
22082 (movhi_bytes): Likewise.
22083 (arm_movqi_insn): Likewise.
22084 (thumb1_movqi_insn): Likewise.
22085 (arm32_movhf): Likewise.
22086 (thumb1_movhf): Likewise.
22087 (arm_movsf_soft_insn): Likewise.
22088 (thumb1_movsf_insn): Likewise.
22089 (thumb_movdf_insn): Likewise.
22090 (movsicc_insn): Likewise.
22091 (movsfcc_soft_insn): Likewise.
22092 (and_scc): Likewise.
22093 (cond_move): Likewise.
22094 (if_move_not): Likewise.
22095 (if_not_move): Likewise.
22096 (if_shift_move): Likewise.
22097 (if_move_shift): Likewise.
22098 (if_shift_shift): Likewise.
22099 (if_not_arith): Likewise.
22100 (if_arith_not): Likewise.
22101 (cond_move_not): Likewise.
22102 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
22103 (neon_mov<mode>): Likewise.
22104 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
22105 (thumb2_movsi_vfp): Likewise.
22106 (movsf_vfp): Likewise.
22107 (thumb2_movsf_vfp): Likewise.
22108 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
22109 change.
22110 (cortexa7_older_only): Likewise.
22111 (cortexa7_younger): Likewise.
22112 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
22113 (1020alu_shift_op): Likewise.
22114 (1020alu_shift_reg_op): Likewise.
22115 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
22116 (alu_shift_op): Likewise.
22117 (alu_shift_reg_op): Likewise.
22118 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
22119 (11_alu_shift_op): Likewise.
22120 (11_alu_shift_reg_op): Likewise.
22121 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
22122 (9_alu_shift_reg_op): Likewise.
22123 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
22124 change.
22125 (cortex_a15_alu_shift): Likewise.
22126 (cortex_a15_alu_shift_reg): Likewise.
22127 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
22128 (cortex_a5_alu_shift): Likewise.
22129 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
22130 change.
22131 (cortex_a53_alu_shift): Likewise.
22132 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
22133 change.
22134 (cortex_a7_alu_reg): Likewise.
22135 (cortex_a7_alu_shift): Likewise.
22136 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
22137 (cortex_a8_alu_shift): Likewise.
22138 (cortex_a8_alu_shift_reg): Likewise.
22139 (cortex_a8_mov): Likewise.
22140 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
22141 (cortex_a9_dp_shift): Likewise.
22142 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
22143 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
22144 (cortex_r4_mov): Likewise.
22145 (cortex_r4_alu_shift): Likewise.
22146 (cortex_r4_alu_shift_reg): Likewise.
22147 * config/arm/fa526.md (526_alu_op): Update for attribute change.
22148 (526_alu_shift_op): Likewise.
22149 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
22150 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
22151 (626te_alu_shift_op): Likewise.
22152 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
22153 (726te_alu_op): Likewise.
22154 (726te_alu_shift_op): Likewise.
22155 (726te_alu_shift_reg_op): Likewise.
22156 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
22157 (mp626_alu_shift_op): Likewise.
22158 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
22159 (pj4_alu_e1_conds): Likewise.
22160 (pj4_alu): Likewise.
22161 (pj4_alu_conds): Likewise.
22162 (pj4_shift): Likewise.
22163 (pj4_shift_conds): Likewise.
22164 (pj4_alu_shift): Likewise.
22165 (pj4_alu_shift_conds): Likewise.
22166
22167 2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22168
22169 * config/arm/predicates.md (shiftable_operator_strict_it):
22170 New predicate.
22171 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
22172 Disable cond_exec version for arm_restrict_it.
22173 (thumb2_smaxsi3): Convert to generate cond_exec.
22174 (thumb2_sminsi3): Likewise.
22175 (thumb32_umaxsi3): Likewise.
22176 (thumb2_uminsi3): Likewise.
22177 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
22178 (thumb2_neg_abssi2): Likewise.
22179 (thumb2_mov_scc): Add alternative for 16-bit encoding.
22180 (thumb2_movsicc_insn): Adjust alternatives.
22181 (thumb2_mov_negscc): Disable for arm_restrict_it.
22182 (thumb2_mov_negscc_strict_it): New pattern.
22183 (thumb2_mov_notscc_strict_it): New pattern.
22184 (thumb2_mov_notscc): Disable for arm_restrict_it.
22185 (thumb2_ior_scc): Likewise.
22186 (thumb2_ior_scc_strict_it): New pattern.
22187 (thumb2_cond_move): Adjust for arm_restrict_it.
22188 (thumb2_cond_arith): Disable for arm_restrict_it.
22189 (thumb2_cond_arith_strict_it): New pattern.
22190 (thumb2_cond_sub): Adjust for arm_restrict_it.
22191 (thumb2_movcond): Likewise.
22192 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
22193 (thumb2_zero_extendhisi2_v6): Likewise.
22194 (thumb2_zero_extendqisi2_v6): Likewise.
22195 (orsi_notsi_si): Likewise.
22196 (orsi_not_shiftsi_si): Likewise.
22197
22198 2013-07-22 Georg-Johann Lay <avr@gjlay.de>
22199
22200 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
22201 instruction sequence is 1 byte shorter.
22202
22203 2013-07-22 Uros Bizjak <ubizjak@gmail.com>
22204
22205 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
22206 it is not needed after split.
22207
22208 2013-07-20 Iain Sandoe <iain@codesourcery.com>
22209
22210 PR target/51784
22211 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
22212 second label for nonlocal goto receivers. Don't output pic base labels
22213 unless we're producing PIC; mark that action unreachable().
22214 (ix86_save_reg): If the function contains a nonlocal label, save the
22215 PIC base reg.
22216 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
22217 * config/darwin.c (emitted_pic_label_num): New GTY.
22218 (update_pic_label_number_if_needed): New.
22219 (machopic_output_function_base_name): Adjust for nonlocal receiver
22220 case.
22221 (machopic_should_output_picbase_label): New.
22222 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
22223 (nonlocal_goto_receiver): New insn and split.
22224
22225 2013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
22226
22227 * config/aarch64/aarch64-builtins.c
22228 (aarch64_fold_builtin): Fold abs in all modes.
22229 * config/aarch64/aarch64-simd-builtins.def
22230 (abs): Enable for all modes.
22231 * config/aarch64/arm_neon.h
22232 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
22233 (vabs_f64): Add missing intrinsic.
22234
22235 2013-07-19 Ian Bolton <ian.bolton@arm.com>
22236
22237 * config/aarch64/arm_neon.h (vabs_s64): New function
22238
22239 2013-07-19 Georg-Johann Lay <avr@gjlay.de>
22240
22241 PR target/57516
22242 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
22243 * config/avr/avr.md (adjust_len): Add `round'.
22244 * config/avr/avr-protos.h (avr_out_round): New prototype.
22245 (avr_out_plus): Add `out_label' argument.
22246 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
22247 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
22248 Handle the case where `insn' is just a pattern.
22249 (avr_out_bitop): Handle the case where `insn' is just a pattern.
22250 (avr_out_round): New function.
22251 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
22252
22253 2013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
22254
22255 * config/microblaze/microblaze.c (microblaze_expand_prologue):
22256 Add check for flag_stack_usage to handle -fstack-usage support
22257
22258 2013-07-18 Pat Haugen <pthaugen@us.ibm.com>
22259
22260 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
22261 interaction for new Power8 flags and VSX.
22262
22263 2013-07-18 Sriraman Tallam <tmsriram@google.com>
22264
22265 PR middle-end/57698
22266 * tree-inline.c (expand_call_inline): Emit errors during
22267 early_inlining only if optimization is not turned on.
22268
22269 2013-07-18 David Malcolm <dmalcolm@redhat.com>
22270
22271 * passes.def: New.
22272
22273 * passes.c (init_optimization_passes): Move the construction of
22274 the pass hierarchy into a new passes.def file.
22275
22276 * Makefile.in (passes.o): Add dependency on passes.def.
22277
22278 2013-07-18 David Malcolm <dmalcolm@redhat.com>
22279
22280 * passes.c (init_optimization_passes): Introduce macros for
22281 constructing the tree of passes (INSERT_PASSES_AFTER,
22282 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
22283 TERMINATE_PASS_LIST).
22284
22285 2013-07-18 Vladimir Makarov <vmakarov@redhat.com>
22286 Wei Mi <wmi@google.com>
22287
22288 PR rtl-optimization/57878
22289 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
22290 top.
22291 (reload_pseudo_compare_func): Check nregs first for reload
22292 pseudos.
22293
22294 2013-07-18 David Malcolm <dmalcolm@redhat.com>
22295
22296 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
22297
22298 2013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
22299
22300 * read-rtl.c (validate_const_int): Once an invalid character is
22301 seen, quit the loop.
22302
22303 * gengtype.c (write_roots): Similarly once we find the "deletable"
22304 or "if_marked" option.
22305
22306 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
22307
22308 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
22309 "xtab" and "sat". Move value "clz" from here to ...
22310 (attriubte "type"): ... here.
22311 (satsi_<SAT:code>): Delete "insn" attribute.
22312 (satsi_<SAT:code>_shift): Likewise.
22313 (arm_zero_extendqisi2addsi): Likewise.
22314 (arm_extendqisi2addsi): Likewise.
22315 (clzsi2): Update for attribute changes.
22316 (rbitsi2): Likewise.
22317 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
22318 attribute.
22319 (arm_usatsihi): Likewise.
22320 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
22321
22322 2013-07-18 Sofiane Naci <sofiane.naci@arm.com>
22323
22324 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
22325 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
22326 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
22327 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
22328 in alphabetical order.
22329 (attribute "core_cycles"): Update for attribute changes.
22330 (arm_addsi3): Likewise.
22331 (addsi3_compare0): Likewise.
22332 (addsi3_compare0_scratch): Likewise.
22333 (addsi3_compare_op1): Likewise.
22334 (addsi3_compare_op2): Likewise.
22335 (compare_addsi2_op0): Likewise.
22336 (compare_addsi2_op1): Likewise.
22337 (addsi3_carryin_shift_<optab>): Likewise.
22338 (subsi3_carryin_shift): Likewise.
22339 (rsbsi3_carryin_shift): Likewise.
22340 (arm_subsi3_insn): Likewise.
22341 (subsi3_compare0): Likewise.
22342 (subsi3_compare): Likewise.
22343 (arm_andsi3_insn): Likewise.
22344 (thumb1_andsi3_insn): Likewise.
22345 (andsi3_compare0): Likewise.
22346 (andsi3_compare0_scratch): Likewise.
22347 (zeroextractsi_compare0_scratch
22348 (andsi_not_shiftsi_si): Likewise.
22349 (iorsi3_insn): Likewise.
22350 (iorsi3_compare0): Likewise.
22351 (iorsi3_compare0_scratch): Likewise.
22352 (arm_xorsi3): Likewise.
22353 (thumb1_xorsi3_insn): Likewise.
22354 (xorsi3_compare0): Likewise.
22355 (xorsi3_compare0_scratch): Likewise.
22356 (satsi_<SAT:code>_shift): Likewise.
22357 (rrx): Likewise.
22358 (arm_shiftsi3): Likewise.
22359 (shiftsi3_compare0): Likewise.
22360 (not_shiftsi): Likewise.
22361 (not_shiftsi_compare0): Likewise.
22362 (not_shiftsi_compare0_scratch): Likewise.
22363 (arm_one_cmplsi2): Likewise.
22364 (thumb_one_complsi2): Likewise.
22365 (notsi_compare0): Likewise.
22366 (notsi_compare0_scratch): Likewise.
22367 (thumb1_zero_extendhisi2): Likewise.
22368 (arm_zero_extendhisi2): Likewise.
22369 (arm_zero_extendhisi2_v6): Likewise.
22370 (arm_zero_extendhisi2addsi): Likewise.
22371 (thumb1_zero_extendqisi2): Likewise.
22372 (thumb1_zero_extendqisi2_v6): Likewise.
22373 (arm_zero_extendqisi2): Likewise.
22374 (arm_zero_extendqisi2_v6): Likewise.
22375 (arm_zero_extendqisi2addsi): Likewise.
22376 (thumb1_extendhisi2): Likewise.
22377 (arm_extendhisi2): Likewise.
22378 (arm_extendhisi2_v6): Likewise.
22379 (arm_extendqisi): Likewise.
22380 (arm_extendqisi_v6): Likewise.
22381 (arm_extendqisi2addsi): Likewise.
22382 (thumb1_extendqisi2): Likewise.
22383 (thumb1_movdi_insn): Likewise.
22384 (arm_movsi_insn): Likewise.
22385 (movsi_compare0): Likewise.
22386 (movhi_insn_arch4): Likewise.
22387 (movhi_bytes): Likewise.
22388 (arm_movqi_insn): Likewise.
22389 (thumb1_movqi_insn): Likewise.
22390 (arm32_movhf): Likewise.
22391 (thumb1_movhf): Likewise.
22392 (arm_movsf_soft_insn): Likewise.
22393 (thumb1_movsf_insn): Likewise.
22394 (movdf_soft_insn): Likewise.
22395 (thumb_movdf_insn): Likewise.
22396 (arm_cmpsi_insn): Likewise.
22397 (cmpsi_shiftsi): Likewise.
22398 (cmpsi_shiftsi_swp): Likewise.
22399 (arm_cmpsi_negshiftsi_si): Likewise.
22400 (movsicc_insn): Likewise.
22401 (movsfcc_soft_insn): Likewise.
22402 (arith_shiftsi): Likewise.
22403 (arith_shiftsi_compare0
22404 (arith_shiftsi_compare0_scratch
22405 (sub_shiftsi): Likewise.
22406 (sub_shiftsi_compare0
22407 (sub_shiftsi_compare0_scratch
22408 (and_scc): Likewise.
22409 (cond_move): Likewise.
22410 (if_plus_move): Likewise.
22411 (if_move_plus): Likewise.
22412 (if_move_not): Likewise.
22413 (if_not_move): Likewise.
22414 (if_shift_move): Likewise.
22415 (if_move_shift): Likewise.
22416 (if_shift_shift): Likewise.
22417 (if_not_arith): Likewise.
22418 (if_arith_not): Likewise.
22419 (cond_move_not): Likewise.
22420 (thumb1_ashlsi3): Set type attribute.
22421 (thumb1_ashrsi3): Likewise.
22422 (thumb1_lshrsi3): Likewise.
22423 (thumb1_rotrsi3): Likewise.
22424 (shiftsi3_compare0_scratch): Likewise.
22425 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
22426 (neon_mov<mode>): Likewise.
22427 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
22428 attribute changes.
22429 (thumb2_movsi_insn): Likewise.
22430 (thumb2_cmpsi_neg_shiftsi): Likewise.
22431 (thumb2_extendqisi_v6): Likewise.
22432 (thumb2_zero_extendhisi2_v6): Likewise.
22433 (thumb2_zero_extendqisi2_v6): Likewise.
22434 (thumb2_shiftsi3_short): Likewise.
22435 (thumb2_addsi3_compare0_scratch): Likewise.
22436 (orsi_not_shiftsi_si): Likewise.
22437 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
22438 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
22439 changes.
22440 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
22441 (1020alu_shift_op): Likewise.
22442 (1020alu_shift_reg_op): Likewise.
22443 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
22444 (alu_shift_op): Likewise.
22445 (alu_shift_reg_op): Likewise.
22446 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
22447 (11_alu_shift_op): Likewise.
22448 (11_alu_shift_reg_op): Likewise.
22449 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
22450 (9_alu_shift_reg_op): Likewise.
22451 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
22452 changes.
22453 (cortex_a15_alu_shift): Likewise.
22454 (cortex_a15_alu_shift_reg): Likewise.
22455 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
22456 changes.
22457 (cortex_a5_alu_shift): Likewise.
22458 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
22459 changes.
22460 (cortex_a53_alu_shift): Likewise.
22461 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
22462 changes.
22463 (cortex_a7_alu_reg): Likewise.
22464 (cortex_a7_alu_shift): Likewise.
22465 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
22466 changes.
22467 (cortex_a8_alu_shift): Likewise.
22468 (cortex_a8_alu_shift_reg): Likewise.
22469 (cortex_a8_mov): Likewise.
22470 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
22471 (cortex_a9_dp_shift): Likewise.
22472 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
22473 changes.
22474 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
22475 changes.
22476 (cortex_r4_mov): Likewise.
22477 (cortex_r4_alu_shift): Likewise.
22478 (cortex_r4_alu_shift_reg): Likewise.
22479 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
22480 (526_alu_shift_op): Likewise.
22481 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
22482 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
22483 (626te_alu_shift_op): Likewise.
22484 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
22485 (726te_alu_op): Likewise.
22486 (726te_alu_shift_op): Likewise.
22487 (726te_alu_shift_reg_op): Likewise.
22488 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
22489 (mp626_alu_shift_op): Likewise.
22490 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
22491 (pj4_alu_e1_conds): Likewise.
22492 (pj4_alu): Likewise.
22493 (pj4_alu_conds): Likewise.
22494 (pj4_shift): Likewise.
22495 (pj4_shift_conds): Likewise.
22496 (pj4_alu_shift): Likewise.
22497 (pj4_alu_shift_conds): Likewise.
22498 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
22499 changes.
22500 (cortexa7_older_only): Likewise.
22501 (cortexa7_younger): Likewise.
22502
22503 2013-07-18 David Malcolm <dmalcolm@redhat.com>
22504
22505 * ipa-pure-const.c (generate_summary): Rename to...
22506 (pure_const_generate_summary): ... this.
22507
22508 2013-07-17 Iain Sandoe <iain@codesourcery.com>
22509
22510 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
22511
22512 2013-07-17 Yvan Roux <yvan.roux@linaro.org>
22513
22514 PR target/57909
22515 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
22516 usage in HI mode.
22517
22518 2013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22519
22520 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
22521 enabled without -march=zEC12.
22522 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
22523 flags to be set.
22524
22525 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
22526
22527 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
22528 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
22529 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
22530 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
22531 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
22532 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
22533 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
22534 ISA_HAS_FP4.
22535 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
22536 and ISA_HAS_NMADD3_NMSUB3.
22537 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
22538 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
22539 (nmsub4<mode>, nmsub3<mode>): Likewise.
22540 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
22541
22542 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
22543
22544 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
22545 TARGET_MIPS5400 checking.
22546
22547 2013-07-16 Jakub Jelinek <jakub@redhat.com>
22548 Peter Bergner <bergner@vnet.ibm.com>
22549
22550 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
22551 registers in the comment.
22552 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
22553 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
22554 rather than FIRST_PSEUDO_REGISTERS.
22555
22556 2013-07-16 Peter Bergner <bergner@vnet.ibm.com>
22557
22558 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
22559 enable extra ISA flags with TARGET_HTM.
22560
22561 2013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
22562
22563 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
22564 Fix comment typos.
22565
22566 2013-07-15 Cong Hou <congh@google.com>
22567
22568 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
22569 in compare function for sorting.
22570
22571 2013-07-15 Peter Bergner <bergner@vnet.ibm.com>
22572
22573 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
22574 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
22575 * config/rs6000/rs6000.opt: Add -mhtm option.
22576 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
22577 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
22578 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
22579 __HTM__ if the HTM instructions are available.
22580 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
22581 htm_spr_reg_operand): New define_predicates.
22582 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
22583 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
22584 Include htm.md.
22585 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
22586 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
22587 HTM builtin functions.
22588 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
22589 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
22590 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
22591 (rs6000_builtin_mask_calculate): Likewise.
22592 (rs6000_option_override_internal): Likewise.
22593 (bdesc_htm): Add new HTM builtin support.
22594 (htm_spr_num): New function.
22595 (htm_spr_regno): Likewise.
22596 (rs6000_htm_spr_icode): Likewise.
22597 (htm_expand_builtin): Likewise.
22598 (htm_init_builtins): Likewise.
22599 (rs6000_expand_builtin): Add support for HTM builtin functions.
22600 (rs6000_init_builtins): Likewise.
22601 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
22602 option.
22603 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
22604 (TARGET_HTM, MASK_HTM): Define macros.
22605 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
22606 (FIXED_REGISTERS): Likewise.
22607 (CALL_USED_REGISTERS): Likewise.
22608 (CALL_REALLY_USED_REGISTERS): Likewise.
22609 (REG_ALLOC_ORDER): Likewise.
22610 (enum reg_class): Likewise.
22611 (REG_CLASS_NAMES): Likewise.
22612 (REG_CLASS_CONTENTS): Likewise.
22613 (REGISTER_NAMES): Likewise.
22614 (ADDITIONAL_REGISTER_NAMES): Likewise.
22615 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
22616 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
22617 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
22618 * config/rs6000/htm.md: New file.
22619 * config/rs6000/htmintrin.h: New file.
22620 * config/rs6000/htmxlintrin.h: New file.
22621
22622 2013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
22623
22624 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
22625 Define SYMBOL_TINY_GOT, update comment.
22626 * config/aarch64/aarch64.c
22627 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
22628 (aarch64_expand_mov_immediate): Likewise.
22629 (aarch64_print_operand): Likewise.
22630 (aarch64_classify_symbol): Likewise.
22631 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
22632 (ldr_got_tiny): Define.
22633
22634 2013-07-13 Tobias Grosser <tobias@grosser.es>
22635
22636 PR tree-optimization/54094
22637 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
22638 scheduling dimension for the parallelism check from the polyhedral
22639 information in the AST.
22640 * graphite-dependences.c (carries_deps): Do not assume the schedule is
22641 in 2D + 1 form.
22642
22643 2013-07-13 Jason Merrill <jason@redhat.com>
22644
22645 * print-tree.c (debug_vec_tree): Use debug_raw.
22646 (debug_raw (vec<tree, va_gc> &)): New.
22647 (debug_raw (vec<tree, va_gc> *)): New.
22648 * tree.h: Declare them.
22649
22650 2013-07-13 Bin Cheng <bin.cheng@arm.com>
22651
22652 * ifcvt.c (ifcvt_after_combine): New static variable.
22653 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
22654 for size.
22655 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
22656 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
22657 rest_of_handle_if_after_reload): Pass new argument for if_convert.
22658
22659 2013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
22660
22661 * config/mips/mips.c (mips_expand_call): Remove empty statement.
22662
22663 2013-07-12 Michael Matz <matz@suse.de>
22664
22665 PR middle-end/55771
22666 * convert.c (convert_to_real): Reject non-float inner types.
22667
22668 2013-07-12 Tejas Belagod <tejas.belagod@arm.com>
22669
22670 * config/aarch64/aarch64-protos.h
22671 (aarch64_simd_immediate_valid_for_move): Remove.
22672 * config/aarch64/aarch64.c (simd_immediate_info): New member.
22673 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
22674 cases.
22675 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
22676
22677 2013-07-11 Steve Ellcey <sellcey@mips.com>
22678
22679 * config/mips/mips.c (mips_conditional_register_usage): Do not
22680 use t[0-7] registers in MIPS16 mode when optimizing for size.
22681
22682 2013-07-11 Sriraman Tallam <tmsriram@google.com>
22683
22684 * config/i386/i386.c (dispatch_function_versions): Fix array
22685 indexing of function_version_info to match actual_versions.
22686
22687 2013-07-11 Teresa Johnson <tejohnson@google.com>
22688
22689 * vec.h (struct va_gc): Move release out-of-line.
22690 (va_gc::release): Call ggc_free on released vec.
22691
22692 2013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22693
22694 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
22695 Require GOT register as additional operand in UNSPEC.
22696 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
22697 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
22698 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
22699 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
22700 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
22701 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
22702 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
22703
22704 2013-07-11 Georg-Johann Lay <avr@gjlay.de>
22705
22706 PR target/57631
22707 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
22708 name seen by assembler/linker rather if available.
22709
22710 2013-07-11 Andreas Schwab <schwab@suse.de>
22711
22712 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
22713
22714 2013-07-10 Vladimir Makarov <vmakarov@redhat.com>
22715
22716 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
22717
22718 2013-07-10 Joseph Myers <joseph@codesourcery.com>
22719
22720 * doc/tm.texi.in: Move hook documentation to ....
22721 * target.def: ... here.
22722
22723 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
22724 text on @hook line.
22725 * doc/tm.texi: Regenerate.
22726
22727 2013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
22728
22729 PR c++/57869
22730 * doc/invoke.texi: Document -Wconditionally-supported.
22731
22732 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
22733
22734 PR target/57844
22735 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
22736 of my_fp.
22737
22738 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
22739
22740 PR target/57506
22741 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
22742 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
22743 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
22744 Remove duplicate devices.
22745 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
22746 * config/avr/t-multilib: Regenerate.
22747 * config/avr/avr-tables.opt: Regenerate.
22748 * doc/avr-mmcu.texi: Regenerate.
22749
22750 2013-07-10 Georg-Johann Lay <avr@gjlay.de>
22751
22752 PR target/56987
22753 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
22754
22755 2013-07-10 Graham Stott <graham.stott@btinternet.com>
22756
22757 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
22758 the cost of MULT when optimizing for size.
22759
22760 2013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
22761
22762 * config/cr16/cr16-protos.h: Don't include target.h.
22763
22764 2013-07-09 Joseph Myers <joseph@codesourcery.com>
22765
22766 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
22767 adjust register size for TDmode and TFmode for VSX registers.
22768
22769 2013-07-08 Kai Tietz <ktietz@redhat.com>
22770
22771 PR target/56892
22772 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
22773 hook_bool_const_tree_true.
22774
22775 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22776
22777 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
22778 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
22779 * config/s390/s390.md: Define FPR*_REGNUM constants.
22780 Fix FPR2_REGNUM constant (18 -> 17).
22781 ("*trunc<BFP:mode><DFP_ALL:mode>2")
22782 ("*trunc<DFP_ALL:mode><BFP:mode>2")
22783 ("trunc<BFP:mode><DFP_ALL:mode>2")
22784 ("trunc<DFP_ALL:mode><BFP:mode>2")
22785 ("*extend<BFP:mode><DFP_ALL:mode>2")
22786 ("*extend<DFP_ALL:mode><BFP:mode>2")
22787 ("extend<BFP:mode><DFP_ALL:mode>2")
22788 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
22789 FPR4_REGNUM.
22790
22791 2013-07-08 Graham Stott <graham.stott@btinternet.com>
22792
22793 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
22794
22795 2013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22796
22797 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
22798 and cfun_fpr_bit_p to cfun_fpr_save_p.
22799 (s390_frame_area, s390_register_info, s390_frame_info)
22800 (s390_emit_prologue, s390_emit_epilogue)
22801 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
22802 register numbers.
22803 * config/s390/s390.h: Define *_REGNUM macros for floating point
22804 register numbers.
22805
22806 2013-07-08 Eric Botcazou <ebotcazou@adacore.com>
22807
22808 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
22809
22810 2013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
22811
22812 PR rtl-optimization/57786
22813 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
22814 and break out of the loop when it is set to false.
22815
22816 2013-07-08 Jakub Jelinek <jakub@redhat.com>
22817
22818 PR target/57819
22819 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
22820 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
22821 (const_int 63)) 0)).
22822 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
22823 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
22824 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
22825
22826 PR rtl-optimization/57829
22827 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
22828 mask bits outside of mode are just sign-extension from mode to HWI.
22829
22830 2013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
22831
22832 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
22833 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
22834 adjust_address instead of change_address to keep info about alignment.
22835 (emit_strmov): Remove.
22836 (emit_memmov): New function.
22837 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
22838 (expand_movmem_epilogue): Likewise and return updated rtx for
22839 destination.
22840 (expand_constant_movmem_prologue): Likewise and return updated rtx for
22841 destination and source.
22842 (decide_alignment): Refactor, handle vector_loop.
22843 (ix86_expand_movmem): Likewise.
22844 (ix86_expand_setmem): Likewise.
22845 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
22846
22847 2013-07-07 Uros Bizjak <ubizjak@gmail.com>
22848
22849 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
22850 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
22851
22852 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
22853
22854 * config/i386/sse.md (sse_movlhps): Change alternative 3
22855 of operand 2 to "m".
22856
22857 2013-07-06 Uros Bizjak <ubizjak@gmail.com>
22858
22859 PR target/57807
22860 * config/i386/sse.md (iptr): New mode attribute.
22861 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
22862 (<sse>_vm<plusminus_insn><mode>3): Ditto.
22863 (<sse>_vmmul<mode>3): Ditto.
22864 (<sse>_vmdiv<mode>3): Ditto.
22865 (sse_vmrcpv4sf2): Ditto.
22866 (<sse>_vmsqrt<mode>2): Ditto.
22867 (sse_vmrsqrtv4sf2): Ditto.
22868 (<sse>_vm<code><mode>3): Ditto.
22869 (avx_vmcmp<mode>3): Ditto.
22870 (<sse>_vmmaskcmp<mode>3): Ditto.
22871 (<sse>_comi): Ditto.
22872 (<sse>_ucomi): Ditto.
22873 (*xop_vmfrcz_<mode>): Ditto.
22874 (*fmai_fmadd_<mode>): Ditto.
22875 (*fmai_fmsub_<mode>): Ditto.
22876 (*fmai_fnmadd_<mode>): Ditto.
22877 (*fmai_fnmsub_<mode>): Ditto.
22878 (*fma4i_vmfmadd_<mode>): Ditto.
22879 (*fma4i_vmfmsub_<mode>): Ditto.
22880 (*fma4i_vmfnmadd_<mode>): Ditto.
22881 (*fma4i_vmfnmsub_<mode>): Ditto.
22882 (*xop_vmfrcz_<mode>): Ditto.
22883 (sse_cvtps2pi): Ditto.
22884 (sse_cvttps2pi): Ditto.
22885 (sse_cvtss2si): Ditto.
22886 (sse_cvtss2si_2): Ditto.
22887 (sse_cvtss2siq_2): Ditto.
22888 (sse_cvttss2si): Ditto.
22889 (sse_cvttss2siq): Ditto.
22890 (sse_cvtsd2si): Ditto.
22891 (sse_cvtsd2si_2): Ditto.
22892 (sse_cvtsd2siq_2): Ditto.
22893 (sse_cvttsd2si): Ditto.
22894 (sse_cvttsd2siq): Ditto.
22895 (sse_cvtsd2ss): Ditto.
22896 (sse_cvtss2sd): Ditto.
22897 (avx2_pbroadcast<mode>): Ditto.
22898 (avx2_pbroadcast<mode>_1): Ditto.
22899 (*avx_vperm_broadcast_v4sf): Ditto.
22900
22901 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
22902 (sse_movlhps): Ditto.
22903 (sse_storehps): Ditto.
22904 (sse_loadhps): Ditto.
22905 (sse_storelps): Ditto.
22906 (sse_loadlps): Ditto.
22907 (*vec_concatv4sf): Ditto.
22908 (*vec_interleave_highv2df): Ditto.
22909 (*vec_interleave_lowv2df): Ditto.
22910 (*vec_extractv2df_1_sse): Ditto.
22911 (*vec_extractv2df_0_sse): Ditto.
22912 (sse2_storelpd): Ditto.
22913 (sse2_loadlpd): Ditto.
22914 (sse2_movsd): Ditto.
22915 (*vec_concatv4si): Ditto.
22916 (vec_concatv2di): Ditto.
22917
22918 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
22919 for Intel asm dialect.
22920 (mmx_punpcklwd): Ditto.
22921 (mmx_punpckldq): Ditto.
22922
22923 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
22924 for intel assembler dialect.
22925
22926 2013-07-06 Jakub Jelinek <jakub@redhat.com>
22927
22928 PR target/29776
22929 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
22930 for BUILT_IN_C{LZ,LRSB}*.
22931 * tree.h (CASE_INT_FN): Add FN##IMAX case.
22932 * tree-vrp.c (extract_range_basic): Handle
22933 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
22934 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
22935 fall thru to code calling set_value*.
22936 * builtins.c (expand_builtin): Remove *IMAX cases.
22937 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
22938 if width is bigger than 2*HWI.
22939
22940 2013-07-05 Vladimir Makarov <vmakarov@redhat.com>
22941
22942 PR rtl-optimization/55342
22943 * lra-int.h (lra_subreg_reload_pseudos): New.
22944 * lra.c: Add undoing optional reloads to the block diagram.
22945 (lra_subreg_reload_pseudos): New.
22946 (lra_optional_reload_pseudos): Change comments.
22947 (lra): Init and clear lra_subreg_reload_pseudos. Clear
22948 lra_optional_reload_pseudos after undo transformations.
22949 * lra-assigns.c (pseudo_prefix_title): New.
22950 (lra_setup_reg_renumber): Use it.
22951 (spill_for): Ditto. Check subreg reload pseudos too.
22952 (assign_by_spills): Consider subreg reload pseudos too.
22953 * lra-constraints.c (simplify_operand_subreg): Use
22954 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
22955 (curr_insn_transform): Recognize and do optional reloads.
22956 (undo_optional_reloads): New.
22957 (lra_undo_inheritance): Call undo_optional_reloads.
22958
22959 2013-07-05 Thomas Quinot <quinot@adacore.com>
22960
22961 * tree-complex.c (expand_complex_operations_1): Fix typo.
22962
22963 2013-07-04 Tejas Belagod <tejas.belagod@arm.com>
22964
22965 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
22966 (tune_params): New member 'const vec_costs'.
22967 * config/aarch64/aarch64.c (generic_vector_cost): New.
22968 (generic_tunings): New member 'generic_vector_cost'.
22969 (aarch64_builtin_vectorization_cost): New.
22970 (aarch64_add_stmt_cost): New.
22971 (TARGET_VECTORIZE_ADD_STMT_COST): New.
22972 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
22973
22974 2013-07-03 Jakub Jelinek <jakub@redhat.com>
22975
22976 PR target/57777
22977 * config/i386/predicates.md (vsib_address_operand): Disallow
22978 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
22979
22980 2013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
22981
22982 PR middle-end/55030
22983 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
22984 expand_builtin_setjmp_receiver.
22985 (expand_label): Adjust, call expand_builtin_setjmp_receiver
22986 with NULL for the label parameter.
22987 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
22988 the frame-pointer. Adjust comments.
22989 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
22990 only if LABEL is non-NULL.
22991
22992 2013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
22993
22994 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
22995 (ARM_ABI_AAPCS64): Ditto.
22996 (arm_abi): Ditto.
22997 (ARM_DEFAULT_ABI): Ditto.
22998
22999 2013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
23000
23001 * config/aarch64/aarch64-builtins.c
23002 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
23003 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
23004 (st1): Likewise.
23005 * config/aarch64/aarch64-simd.md
23006 (aarch64_ld1<VALL:mode>): New.
23007 (aarch64_st1<VALL:mode>): Likewise.
23008 * config/aarch64/arm_neon.h
23009 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
23010
23011 2013-07-02 Sriraman Tallam <tmsriram@google.com>
23012
23013 * config/i386/i386.c (gate_insert_vzeroupper): Check if
23014 target ISA is AVX.
23015 (ix86_option_override_internal):Turn on all -mavx target flags by
23016 default as they are dependent on AVX anyway.
23017
23018 2013-07-02 Cary Coutant <ccoutant@google.com>
23019
23020 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
23021 deterministic hash.
23022 (loc_checksum_ordered): Likewise.
23023 (hash_loc_operands): Remove inline keyword.
23024
23025 2013-07-02 Jakub Jelinek <jakub@redhat.com>
23026
23027 PR tree-optimization/57741
23028 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
23029 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
23030 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
23031 Allow REAL_CST step_exprs if flag_associative_math.
23032 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
23033
23034 2013-07-02 Ian Bolton <ian.bolton@arm.com>
23035
23036 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
23037
23038 2013-07-02 Ian Bolton <ian.bolton@arm.com>
23039
23040 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
23041
23042 2013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23043
23044 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
23045 encoding.
23046 (iorsi3_insn): Likewise.
23047 (arm_xorsi3): Likewise.
23048
23049 2013-07-01 Sofiane Naci <sofiane.naci@arm.com>
23050
23051 * arm.md (attribute "wtype"): Delete. Move attribute values from here
23052 to ...
23053 (attribute "type"): ... here, and prefix with "wmmx_".
23054 (attribute "core_cycles"): Update for attribute changes.
23055 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
23056 (tbcstv4hi): Likewise.
23057 (tbcstv2si): Likewise.
23058 (iwmmxt_iordi3): Likewise.
23059 (iwmmxt_xordi3): Likewise.
23060 (iwmmxt_anddi3): Likewise.
23061 (iwmmxt_nanddi3): Likewise.
23062 (iwmmxt_arm_movdi): Likewise.
23063 (iwmmxt_movsi_insn): Likewise.
23064 (mov<mode>_internal): Likewise.
23065 (and<mode>3_iwmmxt): Likewise.
23066 (ior<mode>3_iwmmxt): Likewise.
23067 (xor<mode>3_iwmmxt): Likewise.
23068 (add<mode>3_iwmmxt): Likewise.
23069 (ssaddv8qi3): Likewise.
23070 (ssaddv4hi3): Likewise.
23071 (ssaddv2si3): Likewise.
23072 (usaddv8qi3): Likewise.
23073 (usaddv4hi3): Likewise.
23074 (usaddv2si3): Likewise.
23075 (sub<mode>3_iwmmxt): Likewise.
23076 (sssubv8qi3): Likewise.
23077 (sssubv4hi3): Likewise.
23078 (sssubv2si3): Likewise.
23079 (ussubv8qi3): Likewise.
23080 (ussubv4hi3): Likewise.
23081 (ussubv2si3): Likewise.
23082 (mulv4hi3_iwmmxt): Likewise.
23083 (smulv4hi3_highpart): Likewise.
23084 (umulv4hi3_highpart): Likewise.
23085 (iwmmxt_wmacs): Likewise.
23086 (iwmmxt_wmacsz): Likewise.
23087 (iwmmxt_wmacu): Likewise.
23088 (iwmmxt_wmacuz): Likewise.
23089 (iwmmxt_clrdi): Likewise.
23090 (iwmmxt_clrv8qi): Likewise.
23091 (iwmmxt_clr4hi): Likewise.
23092 (iwmmxt_clr2si): Likewise.
23093 (iwmmxt_uavgrndv8qi3): Likewise.
23094 (iwmmxt_uavgrndv4hi3): Likewise.
23095 (iwmmxt_uavgv8qi3): Likewise.
23096 (iwmmxt_uavgv4hi3): Likewise.
23097 (iwmmxt_tinsrb): Likewise.
23098 (iwmmxt_tinsrh): Likewise.
23099 (iwmmxt_tinsrw): Likewise.
23100 (iwmmxt_textrmub): Likewise.
23101 (iwmmxt_textrmsb): Likewise.
23102 (iwmmxt_textrmuh): Likewise.
23103 (iwmmxt_textrmsh): Likewise.
23104 (iwmmxt_textrmw): Likewise.
23105 (iwmxxt_wshufh): Likewise.
23106 (eqv8qi3): Likewise.
23107 (eqv4hi3): Likewise.
23108 (eqv2si3): Likewise.
23109 (gtuv8qi3): Likewise.
23110 (gtuv4hi3): Likewise.
23111 (gtuv2si3): Likewise.
23112 (gtv8qi3): Likewise.
23113 (gtv4hi3): Likewise.
23114 (gtv2si3): Likewise.
23115 (smax<mode>3_iwmmxt): Likewise.
23116 (umax<mode>3_iwmmxt): Likewise.
23117 (smin<mode>3_iwmmxt): Likewise.
23118 (umin<mode>3_iwmmxt): Likewise.
23119 (iwmmxt_wpackhss): Likewise.
23120 (iwmmxt_wpackwss): Likewise.
23121 (iwmmxt_wpackdss): Likewise.
23122 (iwmmxt_wpackhus): Likewise.
23123 (iwmmxt_wpackwus): Likewise.
23124 (iwmmxt_wpackdus): Likewise.
23125 (iwmmxt_wunpckihb): Likewise.
23126 (iwmmxt_wunpckihh): Likewise.
23127 (iwmmxt_wunpckihw): Likewise.
23128 (iwmmxt_wunpckilb): Likewise.
23129 (iwmmxt_wunpckilh): Likewise.
23130 (iwmmxt_wunpckilw): Likewise.
23131 (iwmmxt_wunpckehub): Likewise.
23132 (iwmmxt_wunpckehuh): Likewise.
23133 (iwmmxt_wunpckehuw): Likewise.
23134 (iwmmxt_wunpckehsb): Likewise.
23135 (iwmmxt_wunpckehsh): Likewise.
23136 (iwmmxt_wunpckehsw): Likewise.
23137 (iwmmxt_wunpckelub): Likewise.
23138 (iwmmxt_wunpckeluh): Likewise.
23139 (iwmmxt_wunpckeluw): Likewise.
23140 (iwmmxt_wunpckelsb): Likewise.
23141 (iwmmxt_wunpckelsh): Likewise.
23142 (iwmmxt_wunpckelsw): Likewise.
23143 (ror<mode>3): Likewise.
23144 (ashr<mode>3_iwmmxt): Likewise.
23145 (lshr<mode>3_iwmmxt): Likewise.
23146 (ashl<mode>3_iwmmxt): Likewise.
23147 (ror<mode>3_di): Likewise.
23148 (ashr<mode>3_di): Likewise.
23149 (lshr<mode>3_di): Likewise.
23150 (ashl<mode>3_di): Likewise.
23151 (iwmmxt_wmadds): Likewise.
23152 (iwmmxt_wmaddu): Likewise.
23153 (iwmmxt_tmia): Likewise.
23154 (iwmmxt_tmiaph): Likewise.
23155 (iwmmxt_tmiabb): Likewise.
23156 (iwmmxt_tmiatb): Likewise.
23157 (iwmmxt_tmiabt): Likewise.
23158 (iwmmxt_tmiatt): Likewise.
23159 (iwmmxt_tmovmskb): Likewise.
23160 (iwmmxt_tmovmskh): Likewise.
23161 (iwmmxt_tmovmskw): Likewise.
23162 (iwmmxt_waccb): Likewise.
23163 (iwmmxt_wacch): Likewise.
23164 (iwmmxt_waccw): Likewise.
23165 (iwmmxt_waligni): Likewise.
23166 (iwmmxt_walignr): Likewise.
23167 (iwmmxt_walignr0): Likewise.
23168 (iwmmxt_walignr1): Likewise.
23169 (iwmmxt_walignr2): Likewise.
23170 (iwmmxt_walignr3): Likewise.
23171 (iwmmxt_wsadb): Likewise.
23172 (iwmmxt_wsadh): Likewise.
23173 (iwmmxt_wsadbz): Likewise.
23174 (iwmmxt_wsadhz): Likewise.
23175 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
23176 (iwmmxt_wabsdiffb): Likewise.
23177 (iwmmxt_wabsdiffh): Likewise.
23178 (iwmmxt_wabsdiffw): Likewise.
23179 (iwmmxt_waddsubhx): Likewise
23180 (iwmmxt_wsubaddhx): Likewise.
23181 (addc<mode>3): Likewise.
23182 (iwmmxt_avg4): Likewise.
23183 (iwmmxt_avg4r): Likewise.
23184 (iwmmxt_wmaddsx): Likewise.
23185 (iwmmxt_wmaddux): Likewise.
23186 (iwmmxt_wmaddsn): Likewise.
23187 (iwmmxt_wmaddun): Likewise.
23188 (iwmmxt_wmulwsm): Likewise.
23189 (iwmmxt_wmulwum): Likewise.
23190 (iwmmxt_wmulsmr): Likewise.
23191 (iwmmxt_wmulumr): Likewise.
23192 (iwmmxt_wmulwsmr): Likewise.
23193 (iwmmxt_wmulwumr): Likewise.
23194 (iwmmxt_wmulwl): Likewise.
23195 (iwmmxt_wqmulm): Likewise.
23196 (iwmmxt_wqmulwm): Likewise.
23197 (iwmmxt_wqmulmr): Likewise.
23198 (iwmmxt_wqmulwmr): Likewise.
23199 (iwmmxt_waddbhusm): Likewise.
23200 (iwmmxt_waddbhusl): Likewise.
23201 (iwmmxt_wqmiabb): Likewise.
23202 (iwmmxt_wqmiabt): Likewise.
23203 (iwmmxt_wqmiatb): Likewise.
23204 (iwmmxt_wqmiatt): Likewise.
23205 (iwmmxt_wqmiabbn): Likewise.
23206 (iwmmxt_wqmiabtn): Likewise.
23207 (iwmmxt_wqmiatbn): Likewise.
23208 (iwmmxt_wqmiattn): Likewise.
23209 (iwmmxt_wmiabb): Likewise.
23210 (iwmmxt_wmiabt): Likewise.
23211 (iwmmxt_wmiatb): Likewise.
23212 (iwmmxt_wmiatt): Likewise.
23213 (iwmmxt_wmiabbn): Likewise.
23214 (iwmmxt_wmiabtn): Likewise.
23215 (iwmmxt_wmiatbn): Likewise.
23216 (iwmmxt_wmiattn): Likewise.
23217 (iwmmxt_wmiawbb): Likewise.
23218 (iwmmxt_wmiawbt): Likewise.
23219 (iwmmxt_wmiawtb): Likewise.
23220 (iwmmxt_wmiawtt): Likewise.
23221 (iwmmxt_wmiawbbn): Likewise.
23222 (iwmmxt_wmiawbtn): Likewise.
23223 (iwmmxt_wmiawtbn): Likewise.
23224 (iwmmxt_wmiawttn): Likewise.
23225 (iwmmxt_wmerge): Likewise.
23226 (iwmmxt_tandc<mode>3): Likewise.
23227 (iwmmxt_torc<mode>3): Likewise.
23228 (iwmmxt_torvsc<mode>3): Likewise.
23229 (iwmmxt_textrc<mode>3): Likewise.
23230 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
23231 (wmmxt_pack): Likewise.
23232 (wmmxt_mult_c1): Likewise.
23233 (wmmxt_mult_c2): Likewise.
23234 (wmmxt_alu_c1): Likewise.
23235 (wmmxt_alu_c2): Likewise.
23236 (wmmxt_alu_c3): Likewise.
23237 (wmmxt_transfer_c1): Likewise.
23238 (wmmxt_transfer_c2): Likewise.
23239 (wmmxt_transfer_c3): Likewise.
23240 (marvell_f_iwmmxt_wstr): Likewise.
23241 (marvell_f_iwmmxt_wldr): Likewise.
23242
23243 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
23244
23245 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
23246
23247 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
23248
23249 Revert:
23250 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
23251 * lra-constraints.c (need_for_split_p): Check call used hard regs
23252 living through calls.
23253
23254 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
23255 call used regs for call insn.
23256
23257 2013-06-28 Jakub Jelinek <jakub@redhat.com>
23258
23259 PR target/57736
23260 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
23261 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
23262
23263 2013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
23264
23265 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
23266
23267 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
23268
23269 * lra-constraints.c (need_for_split_p): Check call used hard regs
23270 living through calls.
23271
23272 2013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
23273
23274 PR target/57744
23275 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
23276 to tie with any other modes. Eliminate Altivec vector mode tests,
23277 since these are a subset of ALTIVEC or VSX vector modes. Simplify
23278 code, to return 0 if testing MODE2 for a condition, if we've
23279 already tested MODE1 for the same condition.
23280
23281 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
23282
23283 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
23284 layout.
23285
23286 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
23287
23288 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
23289 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
23290
23291 2013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
23292
23293 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
23294 Define.
23295 (aarch64_symbolic_constant_p): Remove.
23296 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
23297 static. Fix line length and white space.
23298 (aarch64_symbolic_constant_p): Remove.
23299 * config/aarch64/predicates.md (aarch64_valid_symref):
23300 Use aarch64_classify_symbol_expression.
23301
23302 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23303
23304 * config/arm/constraints.md (Ts): New constraint.
23305 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
23306 16-bit encodings.
23307 (compare_scc): Use "Ts" constraint for operand 0.
23308 (ior_scc_scc): Likewise.
23309 (and_scc_scc): Likewise.
23310 (and_scc_scc_nodom): Likewise.
23311 (ior_scc_scc_cmp): Likewise for operand 7.
23312 (and_scc_scc_cmp): Likewise.
23313 * config/arm/thumb2.md (thumb2_movsi_insn):
23314 Add alternatives for 16-bit encodings.
23315 (thumb2_movhi_insn): Likewise.
23316 (thumb2_movsicc_insn): Likewise.
23317 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
23318 (thumb2_negscc): Use "Ts" constraint.
23319 Move mvn instruction outside cond_exec block.
23320 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
23321 for 16-bit encodings.
23322
23323 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23324
23325 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
23326 encoding.
23327 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
23328 (mulsi3subsi): Likewise.
23329 (mulsidi3adddi): Likewise.
23330 (mulsidi3_v6): Likewise.
23331 (umulsidi3_v6): Likewise.
23332 (umulsidi3adddi_v6): Likewise.
23333 (smulsi3_highpart_v6): Likewise.
23334 (umulsi3_highpart_v6): Likewise.
23335 (mulhisi3tb): Likewise.
23336 (mulhisi3bt): Likewise.
23337 (mulhisi3tt): Likewise.
23338 (maddhisi4): Likewise.
23339 (maddhisi4tb): Likewise.
23340 (maddhisi4tt): Likewise.
23341 (maddhidi4): Likewise.
23342 (maddhidi4tb): Likewise.
23343 (maddhidi4tt): Likewise.
23344 (zeroextractsi_compare0_scratch): Likewise.
23345 (insv_zero): Likewise.
23346 (insv_t2): Likewise.
23347 (anddi_notzesidi_di): Likewise.
23348 (anddi_notsesidi_di): Likewise.
23349 (andsi_notsi_si): Likewise.
23350 (iordi_zesidi_di): Likewise.
23351 (xordi_zesidi_di): Likewise.
23352 (andsi_iorsi3_notsi): Likewise.
23353 (smax_0): Likewise.
23354 (smax_m1): Likewise.
23355 (smin_0): Likewise.
23356 (not_shiftsi): Likewise.
23357 (unaligned_loadsi): Likewise.
23358 (unaligned_loadhis): Likewise.
23359 (unaligned_loadhiu): Likewise.
23360 (unaligned_storesi): Likewise.
23361 (unaligned_storehi): Likewise.
23362 (extv_reg): Likewise.
23363 (extzv_t2): Likewise.
23364 (divsi3): Likewise.
23365 (udivsi3): Likewise.
23366 (arm_zero_extendhisi2addsi): Likewise.
23367 (arm_zero_extendqisi2addsi): Likewise.
23368 (compareqi_eq0): Likewise.
23369 (arm_extendhisi2_v6): Likewise.
23370 (arm_extendqisi2addsi): Likewise.
23371 (arm_movt): Likewise.
23372 (thumb2_ldrd): Likewise.
23373 (thumb2_ldrd_base): Likewise.
23374 (thumb2_ldrd_base_neg): Likewise.
23375 (thumb2_strd): Likewise.
23376 (thumb2_strd_base): Likewise.
23377 (thumb2_strd_base_neg): Likewise.
23378 (arm_negsi2): Add alternative for 16-bit encoding.
23379 (arm_one_cmplsi2): Likewise.
23380
23381 2013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23382
23383 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
23384 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
23385 (movdfcc): Likewise.
23386 * config/arm/vfp.md (*thumb2_movsf_vfp):
23387 Disable predication for arm_restrict_it.
23388 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
23389 (*thumb2_movdfcc_vfp): Likewise.
23390 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
23391 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
23392 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
23393 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
23394 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
23395 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
23396 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
23397 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
23398 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
23399 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
23400 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
23401 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
23402 Disable predication for arm_restrict_it.
23403
23404 2013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
23405
23406 * config/i386/bmiintrin.h (_bextr_u32): New.
23407 (_bextr_u64): Ditto.
23408
23409 2013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
23410
23411 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
23412 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
23413 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
23414 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
23415 * config/mips/n32-elf.h: ...this new file.
23416
23417 2013-06-27 Marc Glisse <marc.glisse@inria.fr>
23418
23419 PR target/57224
23420 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
23421 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
23422
23423 2013-06-27 Catherine Moore <clm@codesourcery.com>
23424
23425 * config/mips/mips-tables.opt: Regenerate.
23426 * config/mips/mips-cpus.def: Add m14ke and m14kec.
23427 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
23428 * doc/invoke.texi: Add -m14kc.
23429
23430 2013-06-27 Jakub Jelinek <jakub@redhat.com>
23431
23432 PR target/57623
23433 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
23434 constraints of operand 1 and 2.
23435
23436 PR target/57623
23437 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
23438 to match RTL canonicalization. Swap predicates and
23439 constraints of operand 1 and 2.
23440
23441 2013-06-27 Vladimir Makarov <vmakarov@redhat.com>
23442
23443 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
23444 Process OP_INOUT regs for splitting too.
23445
23446 2013-06-27 Jakub Jelinek <jakub@redhat.com>
23447
23448 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
23449 decl before the loop, initialize to NULL.
23450 (vectorizable_load): Initialize ptr_incr to NULL.
23451
23452 2013-06-27 Martin Jambor <mjambor@suse.cz>
23453
23454 PR lto/57208
23455 * ipa-ref.h (ipa_maybe_record_reference): Declare.
23456 * ipa-ref.c (ipa_maybe_record_reference): New function.
23457 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
23458 * ipa-cp.c (create_specialized_node): Record potential references from
23459 aggvals.
23460 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
23461
23462 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
23463
23464 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
23465 parameter 'mode' of type 'enum machine_mode mode'; change to pass
23466 'mode' to force_reg.
23467 (aarch64_add_offset): Update calls to aarch64_force_temporary.
23468 (aarch64_expand_mov_immediate): Likewise.
23469
23470 2013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
23471
23472 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
23473 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
23474
23475 2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23476
23477 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
23478 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
23479 (struct machine_function): Add tbegin_p.
23480 (s390_canonicalize_comparison): Fold CC mode compares to
23481 conditional jump if possible.
23482 (s390_emit_jump): Return the emitted jump.
23483 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
23484 Handle CCRAWmode compares.
23485 (s390_option_override): Default to -mhtm if available.
23486 (s390_reg_clobbered_rtx): Handle floating point regs as well.
23487 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
23488 FPRs instead of df_regs_ever_live_p.
23489 (s390_optimize_nonescaping_tx): New function.
23490 (s390_init_frame_layout): Extend clobbered_regs array to cover
23491 FPRs as well.
23492 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
23493 (s390_expand_tbegin): New function.
23494 (enum s390_builtin): New enum definition.
23495 (code_for_builtin): New array definition.
23496 (s390_init_builtins): New function.
23497 (s390_expand_builtin): New function.
23498 (TARGET_INIT_BUILTINS): Define.
23499 (TARGET_EXPAND_BUILTIN): Define.
23500 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
23501 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
23502 (s390_alc_comparison): Likewise.
23503 * config/s390/s390-modes.def: Add CCRAWmode.
23504 * config/s390/s390.h (processor_flags): Add PF_TX.
23505 (TARGET_CPU_HTM): Define macro.
23506 (TARGET_HTM): Define macro.
23507 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
23508 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
23509 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
23510 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
23511 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
23512 (TBEGIN_MASK, TBEGINC_MASK): New constants.
23513 ("*cc_to_int"): Move up.
23514 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
23515 constants other than 0.
23516 ("*ccraw_to_int"): New insn and splitter definition.
23517 ("tbegin", "tbegin_nofloat", "tbegin_retry")
23518 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
23519 ("tx_assist"): New expander.
23520 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
23521 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
23522 * config/s390/s390.opt: Add -mhtm option.
23523 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
23524 * config/s390/htmxlintrin.h: New file.
23525 * config/s390/htmintrin.h: New file.
23526 * config/s390/s390intrin.h: New file.
23527 * doc/extend.texi: Document htm builtins.
23528 * config.gcc: Add the new header files to extra_headers.
23529
23530 2013-06-26 Thomas Schwinge <thomas@codesourcery.com>
23531
23532 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
23533 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
23534
23535 2013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
23536 Pat Haugen <pthaugen@us.ibm.com>
23537 Peter Bergner <bergner@vnet.ibm.com>
23538
23539 * config/rs6000/power8.md: New.
23540 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
23541 setting for power8 entry.
23542 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
23543 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
23544 test for Power4/Power5 only.
23545 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
23546 support.
23547 (force_new_group): Adjust comment.
23548 * config/rs6000/rs6000.md: Include power8.md.
23549
23550 2013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
23551
23552 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
23553 * config/arm/arm-protos.h (arm_max_conditional_execute): New
23554 declaration.
23555 (tune_params): Update comment.
23556 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
23557 (arm_max_conditional_execute): New function.
23558 (thumb2_final_prescan_insn): Use max_insn_skipped and
23559 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
23560
23561 2013-06-25 Jakub Jelinek <jakub@redhat.com>
23562
23563 PR tree-optimization/57705
23564 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
23565 SSA_NAME step, provided that it is not defined inside the loop.
23566 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
23567 (get_initial_def_for_induction): Handle SSA_NAME IV step.
23568
23569 2013-06-25 Martin Jambor <mjambor@suse.cz>
23570
23571 PR middle-end/57670
23572 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
23573 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
23574 calls in the dump.
23575 (ipa_note_param_call): Initialize member_ptr flag.
23576 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
23577 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
23578 (ipa_write_indirect_edge_info): Stream member_ptr flag.
23579 (ipa_read_indirect_edge_info): Likewise.
23580
23581 2013-06-25 Richard Biener <rguenther@suse.de>
23582
23583 PR middle-end/56977
23584 * passes.c (init_optimization_passes): Move pass_fold_builtins
23585 and pass_dce earlier with -Og.
23586
23587 2013-06-25 Eric Botcazou <ebotcazou@adacore.com>
23588
23589 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
23590 <BIT_FIELD_REF>: Remove trailing TAB.
23591 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
23592 remove blank line.
23593
23594 2013-06-24 Martin Jambor <mjambor@suse.cz>
23595
23596 PR tree-optimization/57358
23597 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
23598 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
23599 (ipa_analyze_params_uses): Generate pessimistic info when true.
23600
23601 2013-06-24 Martin Jambor <mjambor@suse.cz>
23602
23603 PR tree-optimization/57539
23604 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
23605 global.inlined_to of the new node to it. All callers changed.
23606 * ipa-inline-transform.c (clone_inlined_nodes): New variable
23607 inlining_into, pass it to cgraph_clone_node.
23608 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
23609 ipa_free_edge_args_substructures.
23610 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
23611 rdesc linked list. Do not assert rdesc edges have inlined caller.
23612 Assert we have found an rdesc in the rdesc list.
23613
23614 2013-06-24 Richard Biener <rguenther@suse.de>
23615
23616 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
23617 (pointer_set_lookup): Declare.
23618 (class pointer_map): New template class implementing a
23619 generic pointer to T map.
23620 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
23621 pointer_map<T>::contains, pointer_map<T>::insert,
23622 pointer_map<T>::traverse): New functions.
23623 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
23624 (pointer_set_lookup): New function.
23625 (pointer_set_contains): Use pointer_set_lookup.
23626 (pointer_set_insert): Likewise.
23627 (insert_aux): Remove.
23628 (struct pointer_map_t): Embed a pointer_set_t.
23629 (pointer_map_create): Adjust.
23630 (pointer_map_destroy): Likewise.
23631 (pointer_map_contains): Likewise.
23632 (pointer_map_insert): Likewise.
23633 (pointer_map_traverse): Likewise.
23634 * tree-streamer.h (struct streamer_tree_cache_d): Use a
23635 pointer_map<unsigned> instead of a pointer_map_t.
23636 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
23637 (streamer_tree_cache_lookup): Likewise.
23638 (streamer_tree_cache_create): Likewise.
23639 (streamer_tree_cache_delete): Likewise.
23640 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
23641 pointer_map<unsigned> instead of a pointer_map_t.
23642 (lto_init_tree_ref_encoder): Adjust.
23643 (lto_destroy_tree_ref_encoder): Likewise.
23644 * lto-section-out.c (lto_output_decl_index): Likewise.
23645 (lto_record_function_out_decl_state): Likewise.
23646 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
23647
23648 2013-06-24 Richard Biener <rguenther@suse.de>
23649
23650 PR tree-optimization/57488
23651 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
23652
23653 2013-06-24 Alan Modra <amodra@gmail.com>
23654
23655 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
23656 (gen_easy_altivec_constant): Likewise.
23657 * config/rs6000/predicates.md (easy_vector_constant_add_self,
23658 easy_vector_constant_msb): Likewise.
23659
23660 2013-06-23 Jakub Jelinek <jakub@redhat.com>
23661
23662 PR target/57688
23663 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
23664 add missing return true.
23665
23666 2013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
23667
23668 PR target/52483
23669 * config/sh/predicates.md (general_extend_operand): Invoke
23670 general_movsrc_operand for memory operands.
23671 (general_movsrc_operand): Allow reg+reg addressing, do not use
23672 general_operand for memory operands.
23673
23674 2013-06-23 Sriraman Tallam <tmsriram@google.com>
23675
23676 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
23677 when current target options does not apply.
23678 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
23679 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
23680 * config/i386/bmiintrin.h: Pass appropriate target
23681 attributes to header.
23682 * config/i386/mmintrin.h: Ditto.
23683 * config/i386/nmmintrin.h: Ditto.
23684 * config/i386/avx2intrin.h: Ditto.
23685 * config/i386/fxsrintrin.h: Ditto.
23686 * config/i386/tbmintrin.h: Ditto.
23687 * config/i386/xsaveintrin.h: Ditto.
23688 * config/i386/f16cintrin.h: Ditto.
23689 * config/i386/xtestintrin.h: Ditto.
23690 * config/i386/xsaveoptintrin.h: Ditto.
23691 * config/i386/bmi2intrin.h: Ditto.
23692 * config/i386/lzcntintrin.h: Ditto.
23693 * config/i386/smmintrin.h: Ditto.
23694 * config/i386/wmmintrin.h: Ditto.
23695 * config/i386/x86intrin.h: Remove all header include guards.
23696 * config/i386/prfchwintrin.h: Ditto.
23697 * config/i386/pmmintrin.h: Ditto.
23698 * config/i386/tmmintrin.h: Ditto.
23699 * config/i386/xmmintrin.h: Ditto.
23700 * config/i386/popcntintrin.h: Ditto.
23701 * config/i386/rdseedintrin.h: Ditto.
23702 * config/i386/ammintrin.h: Ditto.
23703 * config/i386/emmintrin.h: Ditto.
23704 * config/i386/immintrin.h: Remove all header include guards.
23705 * config/i386/fma4intrin.h: Ditto.
23706 * config/i386/lwpintrin.h: Ditto.
23707 * config/i386/xopintrin.h: Ditto.
23708 * config/i386/ia32intrin.h: Ditto.
23709 * config/i386/avxintrin.h: Ditto.
23710 * config/i386/rtmintrin.h: Ditto.
23711 * config/i386/fmaintrin.h: Ditto.
23712 * config/i386/mm3dnow.h: Ditto.
23713
23714 2013-06-22 Sriraman Tallam <tmsriram@google.com>
23715
23716 * common/config/i386/i386-common.c: Handle LZCNT.
23717
23718 2013-06-22 Andi Kleen <ak@linux.intel.com>
23719
23720 * doc/extend.texi: Use __atomic_store_n instead of
23721 __atomic_store in HLE example.
23722
23723 2013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
23724
23725 * config/sh/sh.c: Remove <cstdlib> workaround.
23726
23727 2013-06-21 Andi Kleen <ak@linux.intel.com>
23728
23729 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
23730
23731 2013-06-21 Andi Kleen <ak@linux.intel.com>
23732
23733 * doc/extend.texi: Document that __atomic_clear and
23734 __atomic_test_and_set should only be used with bool.
23735
23736 2013-06-20 Jan Hubicka <jh@suse.cz>
23737
23738 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
23739 types_same_for_odr.
23740 * tree.c (decls_same_for_odr): New function.
23741 (same_for_edr): New function.
23742 (types_same_for_odr): New function.
23743 (get_binfo_at_offset): Use it.
23744 * tree.h (types_same_for_odr): Declare.
23745
23746 2013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
23747 Jason Merrill <jason@redhat.com>
23748
23749 * system.h: Include <cstdlib> as well as <stdlib.h>.
23750
23751 2013-06-20 Uros Bizjak <ubizjak@gmail.com>
23752
23753 PR target/57655
23754 * config/i386/i386.c (construct_container): Report error if
23755 long double is used with disabled x87 float returns.
23756
23757 2013-06-20 Jan Hubicka <jh@suse.cz>
23758
23759 * lto-cgraph.c (input_symtab): Do not set cgraph state.
23760
23761 2013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
23762
23763 PR rtl-optimization/57425
23764 PR rtl-optimization/57569
23765 * alias.c (write_dependence_p): Remove parameters mem_mode and
23766 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
23767 Changed all callers.
23768 (canon_anti_dependence): Get comments and semantics in sync.
23769 Add parameter mem_canonicalized. Changed all callers.
23770 * rtl.h (canon_anti_dependence): Update prototype.
23771
23772 2013-06-20 Richard Biener <rguenther@suse.de>
23773
23774 * data-streamer-in.c (streamer_read_uhwi): Optimize single
23775 byte case, inline streamer_read_uchar and defer section
23776 overrun check.
23777
23778 2013-06-20 Richard Biener <rguenther@suse.de>
23779
23780 PR tree-optimization/57584
23781 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
23782 SSA names into the expanded expression that take part in
23783 abnormal coalescing.
23784
23785 2013-06-19 Sharad Singhai <singhai@google.com>
23786
23787 * gcov.c (print_usage): Handle new option.
23788 (process_args): Ditto.
23789 (get_gcov_intermediate_filename): New function.
23790 (output_intermediate_file): New function.
23791 (output_gcov_file): New function
23792 (generate_results): Handle new option.
23793 (release_function): Relase demangled name.
23794 (read_graph_file): Handle demangled name.
23795 (output_lines): Ditto.
23796 * doc/gcov.texi: Document gcov intermediate format.
23797
23798 2013-06-19 Vladimir Makarov <vmakarov@redhat.com>
23799
23800 PR bootstrap/57604
23801 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
23802 (lra_emit_add): Use the functions. Add comment about Y as an
23803 address segment.
23804
23805 2013-06-19 David Edelsohn <dje.gcc@gmail.com>
23806
23807 PR driver/57652
23808 * collect2.c (collect_atexit): New.
23809 (collect_exit): Delete.
23810 (main): Register collect_atexit with atexit.
23811 (collect_wait): Change collect_exit to exit.
23812 (do_wait): Same.
23813 * collect2.h (collect_exit): Delete.
23814 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
23815
23816 2013-06-19 Wei Mi <wmi@google.com>
23817
23818 PR rtl-optimization/57518
23819 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
23820 if regno is used in paradoxical subreg.
23821 (update_equiv_regs): Check pdx_subregs[regno] before
23822 set a reg to be equivalent with a mem.
23823
23824 2013-06-19 Matthias Klose <doko@ubuntu.com>
23825
23826 PR driver/57651
23827 * file-find.h (find_a_file): Add a mode parameter.
23828 * file-find.c (find_a_file): Likewise.
23829 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
23830 with X_OK for the executables.
23831 * collect2.c (main): Call find_a_file with X_OK.
23832
23833 2013-06-19 Steve Ellcey <sellcey@mips.com>
23834
23835 PR target/56942
23836 * config/mips/mips.md (casesi_internal_mips16_<mode>):
23837 Use NEXT_INSN instead of next_real_insn.
23838
23839 2013-06-19 Jan Hubicka <jh@suse.cz>
23840
23841 * cgraph.h (const_value_known_p): Replace by ...
23842 (ctor_for_folding): .. this one.
23843 * cgraphunit.c (process_function_and_variable_attributes): Use it.
23844 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
23845 * expr.c (expand_expr_real_1): Likewise.
23846 (string_constant): Likewise.
23847 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
23848 * ipa.c (process_references): Likewise.
23849 (symtab_remove_unreachable_nodes): Likewise.
23850 * ipa-inline-analysis.c (param_change_prob): Likewise.
23851 * gimple-fold.c (canonicalize_constructor_val): Likewise.
23852 (get_base_constructor): Likwise.
23853 * varpool.c (varpool_remove_node): Likewise.
23854 (varpool_remove_initializer): LIkewise.
23855 (dump_varpool_node): LIkwise.
23856 (const_value_known_p): Rewrite to ...
23857 (ctor_for_folding): ... this one.
23858
23859 2013-06-19 Jakub Jelinek <jakub@redhat.com>
23860
23861 PR driver/57651
23862 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
23863 PERSONALITY in $PATH derived prefixes.
23864
23865 2013-06-19 Jeff Law <law@redhat.com>
23866
23867 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
23868 in comment.
23869
23870 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
23871 (simplify_bitwise_binary): Use it to simpify certain binary ops on
23872 booleans.
23873
23874 2013-06-19 Sofiane Naci <sofiane.naci@arm.com>
23875
23876 * config/arm/vfp.md: Move VFP instruction classification documentation
23877 to ...
23878 * config/arm/arm.md: ... here. Update instruction classification
23879 documentation.
23880
23881 2013-06-19 Richard Earnshaw <rearnsha@arm.com>
23882
23883 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
23884 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
23885 pattern. Use more efficient sequences on ARMv5 and Thumb2.
23886
23887 2013-06-19 Steven Bosscher <steven@gcc.gnu.org>
23888
23889 PR target/57609
23890 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
23891 with NEXT_INSN. Use tablejump_p to check for jump table data
23892 insns.
23893
23894 2013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
23895
23896 PR c++/56544
23897 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
23898 that now in C++ the value is correct per the C++ standards.
23899
23900 2013-06-19 Richard Biener <rguenther@suse.de>
23901
23902 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
23903 for global context.
23904
23905 2013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23906
23907 Revert:
23908 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23909
23910 PR target/57609
23911 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
23912 with next_active_insn.
23913
23914 2013-06-18 Sriraman Tallam <tmsriram@google.com>
23915
23916 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
23917 functions are inlined during failures to flag an error.
23918 * tree-inline.c (expand_call_inline): Allow the error to be flagged
23919 in early inline pass.
23920
23921 2013-06-18 H.J. Lu <hongjiu.lu@intel.com>
23922
23923 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
23924 in comments.
23925
23926 2013-06-18 Julian Brown <julian@codesourcery.com>
23927
23928 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
23929 Permit virtual register pre-reload if !strict.
23930 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
23931 change.
23932 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
23933 prototype.
23934 * config/arm/neon.md (movmisalign<mode>): Use
23935 neon_perm_struct_or_reg_operand instead of
23936 neon_struct_or_register_operand.
23937 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
23938 neon_permissive_struct_operand instead of neon_struct_operand.
23939 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
23940 neon_vector_mem_operand.
23941 * config/arm/predicates.md (neon_struct_operand): Adjust call to
23942 neon_vector_mem_operand.
23943 (neon_permissive_struct_operand): New.
23944 (neon_struct_or_register_operand): Rename to...
23945 (neon_perm_struct_or_reg_operand): This. Adjust call to
23946 neon_vector_mem_operand.
23947
23948 2013-06-18 Richard Biener <rguenther@suse.de>
23949
23950 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
23951 * lto-streamer.h: Include pointer-set.h.
23952 (struct lto_decl_slot): Remove.
23953 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
23954 Remove next_index entry.
23955 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
23956 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
23957 (lto_init_tree_ref_encoder): Adjust.
23958 (lto_destroy_tree_ref_encoder): Likewise.
23959 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
23960 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
23961 (lto_output_decl_index): Adjust.
23962 (lto_new_out_decl_state): Likewise.
23963 (lto_record_function_out_decl_state): Likewise.
23964 * lto-streamer-out.c (copy_function): Likewise.
23965
23966 2013-06-18 Richard Biener <rguenther@suse.de>
23967
23968 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
23969 * cgraphunit.c: Include cfgloop.h.
23970 (init_lowered_empty_function): Initialize the loop tree.
23971 (assemble_thunk): Insert new BBs into loops.
23972
23973 2013-06-18 Richard Biener <rguenther@suse.de>
23974
23975 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
23976 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
23977 the map from cache entry to cache index optional.
23978 (streamer_tree_cache_replace_tree): Adjust accordingly.
23979 (streamer_tree_cache_append): Likewise.
23980 (streamer_tree_cache_delete): Likewise.
23981 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
23982 streamer cache map from cache entry to cache index.
23983 * lto-streamer-out.c (create_output_block): Adjust.
23984
23985 2013-06-18 Sofiane Naci <sofiane.naci@arm.com>
23986
23987 * config/arm/arm.md (attribute "insn"): Move multiplication and
23988 division attributes to...
23989 (attribute "type"): ... here. Remove mult.
23990 (attribute "mul32"): New attribute.
23991 (attribute "mul64"): Add umaal.
23992 (*arm_mulsi3): Update attributes.
23993 (*arm_mulsi3_v6): Likewise.
23994 (*thumb_mulsi3): Likewise.
23995 (*thumb_mulsi3_v6): Likewise.
23996 (*mulsi3_compare0): Likewise.
23997 (*mulsi3_compare0_v6): Likewise.
23998 (*mulsi_compare0_scratch): Likewise.
23999 (*mulsi_compare0_scratch_v6): Likewise.
24000 (*mulsi3addsi): Likewise.
24001 (*mulsi3addsi_v6): Likewise.
24002 (*mulsi3addsi_compare0): Likewise.
24003 (*mulsi3addsi_compare0_v6): Likewise.
24004 (*mulsi3addsi_compare0_scratch): Likewise.
24005 (*mulsi3addsi_compare0_scratch_v6): Likewise.
24006 (*mulsi3subsi): Likewise.
24007 (*mulsidi3adddi): Likewise.
24008 (*mulsi3addsi_v6): Likewise.
24009 (*mulsidi3adddi_v6): Likewise.
24010 (*mulsidi3_nov6): Likewise.
24011 (*mulsidi3_v6): Likewise.
24012 (*umulsidi3_nov6): Likewise.
24013 (*umulsidi3_v6): Likewise.
24014 (*umulsidi3adddi): Likewise.
24015 (*umulsidi3adddi_v6): Likewise.
24016 (*smulsi3_highpart_nov6): Likewise.
24017 (*smulsi3_highpart_v6): Likewise.
24018 (*umulsi3_highpart_nov6): Likewise.
24019 (*umulsi3_highpart_v6): Likewise.
24020 (mulhisi3): Likewise.
24021 (*mulhisi3tb): Likewise.
24022 (*mulhisi3bt): Likewise.
24023 (*mulhisi3tt): Likewise.
24024 (maddhisi4): Likewise.
24025 (*maddhisi4tb): Likewise.
24026 (*maddhisi4tt): Likewise.
24027 (maddhidi4): Likewise.
24028 (*maddhidi4tb): Likewise.
24029 (*maddhidi4tt): Likewise.
24030 (divsi3): Likewise.
24031 (udivsi3): Likewise.
24032 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
24033 (thumb2_mulsi_short_compare0): Likewise.
24034 (thumb2_mulsi_short_compare0_scratch): Likewise.
24035 * config/arm/arm1020e.md (1020mult1): Update attribute change.
24036 (1020mult2): Likewise.
24037 (1020mult3): Likewise.
24038 (1020mult4): Likewise.
24039 (1020mult5): Likewise.
24040 (1020mult6): Likewise.
24041 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
24042 change.
24043 (cortex_a15_mult64): Likewise.
24044 (cortex_a15_sdiv): Likewise.
24045 (cortex_a15_udiv): Likewise.
24046 * config/arm/arm1026ejs.md (mult1): Update attribute change.
24047 (mult2): Likewise.
24048 (mult3): Likewise.
24049 (mult4): Likewise.
24050 (mult5): Likewise.
24051 (mult6): Likewise.
24052 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
24053 (pj4_ir_div): Likewise.
24054 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
24055 (11_mult2): Likewise.
24056 (11_mult3): Likewise.
24057 (11_mult4): Likewise.
24058 (11_mult5): Likewise.
24059 (11_mult6): Likewise.
24060 (11_mult7): Likewise.
24061 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
24062 (cortex_a8_mla): Likewise.
24063 (cortex_a8_mull): Likewise.
24064 (cortex_a8_smulwy): Likewise.
24065 (cortex_a8_smlald): Likewise.
24066 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
24067 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
24068 (cortex_r4_mul_3): Likewise.
24069 (cortex_r4_mla_4): Likewise.
24070 (cortex_r4_mla_3): Likewise.
24071 (cortex_r4_smlald): Likewise.
24072 (cortex_r4_mull): Likewise.
24073 (cortex_r4_sdiv): Likewise.
24074 (cortex_r4_udiv): Likewise.
24075 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
24076 (cortex_a7_idiv): Likewise.
24077 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
24078 (9_mult2): Likewise.
24079 (9_mult3): Likewise.
24080 (9_mult4): Likewise.
24081 (9_mult5): Likewise.
24082 (9_mult6): Likewise.
24083 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
24084 (cortex_a53_sdiv): Likewise.
24085 (cortex_a53_udiv): Likewise.
24086 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
24087 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
24088 (mp626_mult2): Likewise.
24089 (mp626_mult3): Likewise.
24090 (mp626_mult4): Likewise.
24091 * config/arm/fa526.md (526_mult1): Update attribute change.
24092 (526_mult2): Likewise.
24093 * config/arm/arm-generic.md (mult): Update attribute change.
24094 (mult_ldsched_strongarm): Likewise.
24095 (mult_ldsched): Likewise.
24096 (multi_cycle): Likewise.
24097 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
24098 * config/arm/fa606te.md (606te_mult1): Update attribute change.
24099 (606te_mult2): Likewise.
24100 (606te_mult3): Likewise.
24101 (606te_mult4): Likewise.
24102 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
24103 (cortex_a9_mac16): Likewise.
24104 (cortex_a9_multiply): Likewise.
24105 (cortex_a9_mac): Likewise.
24106 (cortex_a9_multiply_long): Likewise.
24107 * config/arm/fa626te.md (626te_mult1): Update attribute change.
24108 (626te_mult2): Likewise.
24109 (626te_mult3): Likewise.
24110 (626te_mult4): Likewise.
24111
24112 2013-06-18 Richard Biener <rguenther@suse.de>
24113
24114 PR lto/57334
24115 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
24116
24117 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24118
24119 PR target/57609
24120 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
24121 with next_active_insn.
24122
24123 2013-06-18 Alan Modra <amodra@gmail.com>
24124
24125 * config/rs6000/rs6000.h (enum data_align): New.
24126 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
24127 (DATA_ABI_ALIGNMENT): Define.
24128 (CONSTANT_ALIGNMENT): Correct comment.
24129 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
24130 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
24131
24132 2013-06-17 David Malcolm <dmalcolm@redhat.com>
24133
24134 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
24135 ATTRIBUTE_UNUSED marking.
24136
24137 2013-06-17 Sofiane Naci <sofiane.naci@arm.com>
24138
24139 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
24140 alternative and update.
24141 (aarch64_dup_lanedi): Delete.
24142 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
24143 * config/aarch64/aarch64-simd-builtins.def: Update.
24144
24145 2013-06-17 Richard Biener <rguenther@suse.de>
24146
24147 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
24148 (lto_input_scc): Declare.
24149 (lto_input_tree_1): Likewise.
24150 (struct lto_stats_d): Add num_tree_bodies_output and
24151 num_pickle_refs_output.
24152 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
24153 (lto_read_tree_1): Split out from ...
24154 (lto_read_tree): ... this.
24155 (lto_input_scc): New function.
24156 (lto_input_tree_1): Split out from ...
24157 (lto_input_tree): ... this. Handle LTO_tree_scc.
24158 (lto_data_in_create): Create the streamer cache without hashes.
24159 * lto-streamer-out.c (create_output_block): Create the streamer
24160 cache with hashes when not doing WPA.
24161 (lto_write_tree_1): Split out from ...
24162 (lto_write_tree): ... this.
24163 (get_symbol_initial_value): New function.
24164 (lto_output_tree_1): Split out from ...
24165 (lto_output_tree): ... this. Write trees as series of SCCs
24166 using a DFS walk via DFS_write_tree.
24167 (struct sccs, struct scc_entry): New types.
24168 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
24169 (DFS_write_tree_body): New function.
24170 (DFS_write_tree): Likewise.
24171 (hash_tree): Likewise.
24172 (scc_entry_compare): Likewise.
24173 (hash_scc): Likewise.
24174 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
24175 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
24176 TREE_CHAIN as regular reference.
24177 (streamer_read_integer_cst): Remove.
24178 (streamer_get_pickled_tree): Adjust.
24179 * tree-streamer-out.c (streamer_write_chain): Disable streaming
24180 of DECL_EXTERNALs in BLOCK_VARS for now.
24181 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
24182 reference.
24183 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
24184 Add hash value argument and record that if hashes are recorded
24185 in the cache.
24186 (streamer_tree_cache_insert_1): Adjust.
24187 (streamer_tree_cache_insert): Likewise.
24188 (streamer_tree_cache_insert_at): Rename to ...
24189 (streamer_tree_cache_replace_tree): ... this and adjust.
24190 (streamer_tree_cache_append): Adjust.
24191 (record_common_node): Likewise.
24192 (streamer_tree_cache_create): Add argument whether to
24193 record hash values together with trees.
24194 (streamer_tree_cache_delete): Adjust.
24195 * tree-streamer.h (struct streamer_tree_cache_d): Add
24196 vector of hashes.
24197 (streamer_read_integer_cst): Remove.
24198 (streamer_tree_cache_insert): Adjust.
24199 (streamer_tree_cache_append): Likewise.
24200 (streamer_tree_cache_insert_at): Rename to ...
24201 (streamer_tree_cache_replace_tree): ... this and adjust.
24202 (streamer_tree_cache_create): Add argument whether to record hashes.
24203 (streamer_tree_cache_get): Rename to ...
24204 (streamer_tree_cache_get_tree): ... this.
24205 (streamer_tree_cache_get_hash): New function.
24206 * tree.c (cache_integer_cst): New function.
24207 * tree.h (cache_integer_cst): Declare.
24208 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
24209 * lto-symtab.c (lto_varpool_replace_node): Only release
24210 DECL_INITIAL of non-prevailing decls.
24211 * varpool.c (varpool_remove_initializer): Do not release
24212 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
24213
24214 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
24215
24216 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
24217 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
24218 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
24219 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
24220 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
24221 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
24222 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
24223 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
24224 instead of TARGET_64BIT.
24225 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
24226 Require ISA_HAS_<D>DIV.
24227
24228 2013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
24229
24230 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
24231 (mips*-*-linux*): Move default with_llsc setting to where other
24232 defaults are set.
24233 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
24234 with_arch block.
24235 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
24236 Likewise. Remove default with_tune setting. Move default float
24237 setting to its own block. Handle with_llsc in the same block as above.
24238
24239 2013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
24240
24241 PR rtl-optimization/57425
24242 PR rtl-optimization/57569
24243 * alias.c (write_dependence_p): Add new parameters mem_mode,
24244 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
24245 Changed all callers.
24246 (canon_anti_dependence): New function.
24247 * cse.c (check_dependence): Use canon_anti_dependence.
24248 * cselib.c (cselib_invalidate_mem): Likewise.
24249 * rtl.h (canon_anti_dependence): Declare.
24250
24251 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
24252
24253 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
24254 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
24255 ".set mips3" for 64-bit targets.
24256
24257 2013-06-15 Dehao Chen <dehao@google.com>
24258
24259 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
24260 * gimple-low.c (gimple_check_call_matching_types): Likewise.
24261 (gimple_check_call_args): Likewise.
24262 * value-prof.c (check_ic_target): Likewise.
24263 * ipa-inline.c (early_inliner): Likewise.
24264 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
24265 * cgraph.c (cgraph_create_edge_1): Likewise.
24266 (cgraph_make_edge_direct): Likewise.
24267
24268 2013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24269
24270 PR target/57615
24271 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
24272 rs6000_output_move_128bit to handle emitting quad memory
24273 operations. Set attribute length to 8 bytes.
24274
24275 2013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24276
24277 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
24278 New pattern.
24279 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
24280 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
24281 (aarch64_<su>mlsl<mode>): Likewise.
24282
24283 2013-06-14 Mike Stump <mikestump@comcast.net>
24284
24285 * Makefile.in (TARGET_H): Add insn-codes.h.
24286
24287 2013-06-14 Alan Modra <amodra@gmail.com>
24288
24289 PR middle-end/57134
24290 PR middle-end/57586
24291 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
24292 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
24293 bitfield expansion when EXPAND_MEMORY.
24294 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
24295
24296 2013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24297
24298 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
24299 test for clearing quad memory on 32-bit later.
24300
24301 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
24302
24303 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
24304 (fold_negate_expr): Likewise.
24305 (fold_real_zero_addition_p): Handle vectors.
24306 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
24307
24308 2013-06-14 Alan Modra <amodra@gmail.com>
24309
24310 * varasm.c (force_const_mem): Revert 2013-06-07 change.
24311
24312 2013-06-13 Jan Hubicka <jh@suse.cz>
24313
24314 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
24315 Local comdats are not externally visible.
24316 * symtab.c (dump_symtab_base): Dump externally visible.
24317 (verify_symtab_base): Verify back links in the symtab hash.
24318
24319 2013-06-13 Bin Cheng <bin.cheng@arm.com>
24320
24321 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
24322 CONVERT_EXPR as equal nodes.
24323
24324 2013-06-13 Bin Cheng <bin.cheng@arm.com>
24325
24326 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
24327
24328 2013-06-13 Marc Glisse <marc.glisse@inria.fr>
24329
24330 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
24331 Generalize to complex and vector.
24332 * tree.c (build_all_ones_cst): New function.
24333 * tree.h (build_all_ones_cst): Declare it.
24334
24335 2013-06-13 Alan Modra <amodra@gmail.com>
24336
24337 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
24338 * config/rs6000/rs6000.md (signbittf2): New insn.
24339 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
24340 (abstf2_internal, cmptf_internal2): Likewise.
24341 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
24342
24343 2013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
24344 Pat Haugen <pthaugen@us.ibm.com>
24345 Peter Bergner <bergner@vnet.ibm.com>
24346
24347 * config/rs6000/rs6000.c (emit_load_locked): Add support for
24348 power8 byte, half-word, and quad-word atomic instructions.
24349 (emit_store_conditional): Likewise.
24350 (rs6000_expand_atomic_compare_and_swap): Likewise.
24351 (rs6000_expand_atomic_op): Likewise.
24352
24353 * config/rs6000/sync.md (larx): Add new modes for power8.
24354 (stcx): Likewise.
24355 (AINT): New mode iterator to include TImode as well as normal
24356 integer modes on power8.
24357 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
24358 that VSX registers are not considered. Use AINT mode iterator
24359 instead of INT1 to allow inclusion of quad word atomic operations
24360 on power8.
24361 (load_locked<mode>): Likewise.
24362 (store_conditional<mode>): Likewise.
24363 (atomic_compare_and_swap<mode>): Likewise.
24364 (atomic_exchange<mode>): Likewise.
24365 (atomic_nand<mode>): Likewise.
24366 (atomic_fetch_<fetchop_name><mode>): Likewise.
24367 (atomic_nand_fetch<mode>): Likewise.
24368 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
24369 each type.
24370 (ATOMIC): On power8, add QImode, HImode modes.
24371 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
24372 modes that promote to SImode.
24373 (load_lockedti): Convert TImode arguments to PTImode, so that we
24374 get a guaranteed even/odd register pair.
24375 (load_lockedpti): Likewise.
24376 (store_conditionalti): Likewise.
24377 (store_conditionalpti): Likewise.
24378
24379 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
24380 atomic load/store instructions.
24381 (HSI): Likewise.
24382
24383 2013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
24384
24385 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
24386 loads.
24387 (insn_count): New attribute, with most cases extracted from...
24388 (length): ...here. Redefine most cases in terms of insn_count.
24389 (single_insn): Delete.
24390 (can_delay): Use insn_count to check for single instructions.
24391 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
24392 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
24393 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
24394 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
24395 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
24396 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
24397 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
24398 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
24399 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
24400 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
24401 rather than "length".
24402 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
24403 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
24404 Use "insn_count" rather than "length".
24405 * config/mips/mips-dsp.md
24406 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
24407 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
24408 length attributes.
24409
24410 2013-06-12 Marc Glisse <marc.glisse@inria.fr>
24411
24412 PR tree-optimization/57361
24413 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
24414
24415 2013-06-12 Sofiane Naci <sofiane.naci@arm.com>
24416
24417 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
24418 to split.
24419 (aarch64_simd_combine<mode>): New instruction expansion.
24420 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
24421 function prototype.
24422 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
24423 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
24424
24425 2013-06-12 Jan Hubicka <jh@suse.cz>
24426
24427 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
24428 decl has when in streaming stage.
24429 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
24430 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
24431
24432 2013-06-12 Roland Stigge <stigge@antcom.de>
24433
24434 PR target/57578
24435 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
24436
24437 2013-06-12 Jakub Jelinek <jakub@redhat.com>
24438
24439 PR tree-optimization/57537
24440 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
24441 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
24442
24443 2013-06-12 Richard Biener <rguenther@suse.de>
24444
24445 * data-streamer.h (streamer_write_char_stream): CSE
24446 obs->current_pointer.
24447 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
24448 streamer_write_char_stream manually and optimize the resulting loop.
24449 (streamer_write_hwi_stream): Likewise.
24450
24451 2013-06-12 Jan Hubicka <jh@suse.cz>
24452
24453 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
24454 * cgraph.h (varpool_create_empty_node): Declare.
24455 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
24456 duplicated nodes.
24457 * symtab.c (symtab_unregister_node): Be lax about missin entries
24458 in node hash.
24459 (symtab_get_node): Update comment.
24460 * varpool.c (varpool_create_empty_node): Break out from ...
24461 (varpool_node_for_decl): ... here.
24462 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
24463
24464 2013-06-12 Eric Botcazou <ebotcazou@adacore.com>
24465
24466 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
24467 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
24468 part. Use straight-line flow at the end.
24469 <COMPONENT_REF>: Remove superfluous else.
24470 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
24471
24472 2013-06-12 Jakub Jelinek <jakub@redhat.com>
24473
24474 PR target/56564
24475 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
24476 target hook even for !TREE_PUBLIC decls. If no resolution info
24477 is available, return false for common and external decls.
24478
24479 2013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
24480
24481 * config/rl78/constraints.md (U): New constraint.
24482 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
24483 valloc attribute.
24484
24485 2013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
24486
24487 PR target/57589
24488 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
24489 to allow returning address to AT_PLATFORM name.
24490
24491 2013-06-11 Jan Hubicka <jh@suse.cz>
24492
24493 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
24494 * cgraph.h (symtab_node_base): Add weakref flag.
24495 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
24496 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
24497 (output_weakrefs): Use weakref flag.
24498 * fold-const.c (simple_operand_p): Handle WEAK.
24499 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
24500 * ipa.c (varpool_externally_visible_p): Drop weakref.
24501 (function_and_variable_visibility): Update comment; fix weakref
24502 sanity checks; do not clear DECL_WEAK on them.
24503 * lto-cgraph.c (lto_output_node): update.
24504 (lto_output_varpool_node): Update.
24505 (input_overwrite_node): Update.
24506 (input_node): Update.
24507 (input_varpool_node): Update.
24508 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
24509 (lto_symtab_merge_symbols): Add sanity check.
24510 (lto_symtab_prevailing_decl): Do not special case weakrefs.
24511 * passes.c (rest_of_decl_compilation): Set static flag, too.
24512 * symtab.c (dump_symtab_base): Dump weakref.
24513 (verify_symtab_base): Sanity check weakrefs.
24514 (symtab_make_decl_local): Remove duplicated code.
24515 (symtab_alias_ultimate_target): Simplify.
24516 * varpool.c (varpool_create_variable_alias): Set weakref flag.
24517
24518 2013-06-11 Tom de Vries <tom@codesourcery.com>
24519
24520 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
24521 sequence_vect == NULL.
24522
24523 2013-06-11 DJ Delorie <dj@redhat.com>
24524
24525 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
24526 (rl78_unwind_word_mode): New.
24527
24528 2013-06-11 David Malcolm <dmalcolm@redhat.com>
24529
24530 * final.c (debug_prefix_maps): Make static.
24531
24532 2013-06-11 David Malcolm <dmalcolm@redhat.com>
24533
24534 * function.c (initial_trampoline): Remove stray copy.
24535
24536 2013-06-11 Sofiane Naci <sofiane.naci@arm.com>
24537
24538 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
24539
24540 2013-06-11 Martin Jambor <mjambor@suse.cz>
24541
24542 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
24543 within bounds at the beginning of the function.
24544
24545 2013-06-11 Alan Modra <amodra@gmail.com>
24546
24547 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
24548 reporting.
24549 (get_named_section): Don't NULL !DECL_P decl.
24550
24551 2013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
24552
24553 * doc/invoke.texi (core-avx2): Document.
24554 (slm): Likewise.
24555 (atom): Updated with MOVBE.
24556
24557 2013-06-11 Richard Biener <rguenther@suse.de>
24558
24559 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
24560
24561 2013-06-11 Anton Blanchard <anton@samba.org>
24562
24563 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
24564 correct shift value in little-endian mode.
24565
24566 2013-06-11 Jakub Jelinek <jakub@redhat.com>
24567
24568 PR target/56564
24569 * varasm.c (get_variable_align): Move #endif to the right place.
24570
24571 2013-06-10 Cary Coutant <ccoutant@google.com>
24572
24573 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
24574 for hash so that hash table traversal order is deterministic.
24575
24576 2013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
24577 Pat Haugen <pthaugen@us.ibm.com>
24578 Peter Bergner <bergner@vnet.ibm.com>
24579
24580 * config/rs6000/vector.md (GPR move splitter): Do not split moves
24581 of vectors in GPRS if they are direct moves or quad word load or
24582 store moves.
24583
24584 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
24585 declaration.
24586 (direct_move_p): Likewise.
24587 (quad_load_store_p): Likewise.
24588
24589 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
24590 classes into bins based on the physical register type.
24591 (reg_class_to_reg_type): Likewise.
24592 (IS_STD_REG_TYPE): Likewise.
24593 (IS_FP_VECT_REG_TYPE): Likewise.
24594 (reload_fpr_gpr): Arrays to determine what insn to use if we can
24595 use direct move instructions.
24596 (reload_gpr_vsx): Likewise.
24597 (reload_vsx_gpr): Likewise.
24598 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
24599 information that is a simplification of register classes. Also
24600 precalculate direct move reload helpers.
24601 (direct_move_p): New function to return true if the operation can
24602 be done as a direct move instruciton.
24603 (quad_load_store_p): New function to return true if the operation
24604 is a quad memory operation.
24605 (rs6000_legitimize_address): If quad memory, only allow register
24606 indirect for TImode addresses.
24607 (rs6000_legitimate_address_p): Likewise.
24608 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
24609 (rs6000_reload_register_type): Likewise.
24610 (register_to_reg_type): Return register type.
24611 (rs6000_secondary_reload_simple_move): New helper function for
24612 secondary reload and secondary memory needed to identify anything
24613 that is a simple move, and does not need reloading.
24614 (rs6000_secondary_reload_direct_move): New helper function for
24615 secondary reload to identify cases that can be done with several
24616 instructions via the direct move instructions.
24617 (rs6000_secondary_reload_move): New helper function for secondary
24618 reload to identify moves between register types that can be done.
24619 (rs6000_secondary_reload): Add support for quad memory operations
24620 and for direct move.
24621 (rs6000_secondary_memory_needed): Likewise.
24622 (rs6000_debug_secondary_memory_needed): Change argument names.
24623 (rs6000_output_move_128bit): New function to return the move to
24624 use for 128-bit moves, including knowing about the various
24625 limitations of quad memory operations.
24626
24627 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
24628 memory operations. call rs6000_output_move_128bit for the actual
24629 instruciton(s) to generate.
24630 (vsx_movti_64bit): Likewise.
24631
24632 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
24633 (UNSPEC_P8V_MTVSRWZ): Likewise.
24634 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
24635 (UNSPEC_P8V_MTVSRD): Likewise.
24636 (UNSPEC_P8V_XXPERMDI): Likewise.
24637 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
24638 (UNSPEC_FUSION_GPR): Likewise.
24639 (FMOVE128_GPR): New iterator for direct move.
24640 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
24641 (f32_sv): Likewise.
24642 (f32_dm): Likewise.
24643 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
24644 loads and direct move instructions.
24645 (zero_extendsidi2_lfiwzx): Likewise.
24646 (extendsidi2_lfiwax): Likewise.
24647 (extendsidi2_nocell): Likewise.
24648 (floatsi<mode>2_lfiwax): Likewise.
24649 (lfiwax): Likewise.
24650 (floatunssi<mode>2_lfiwzx): Likewise.
24651 (lfiwzx): Likewise.
24652 (fix_trunc<mode>_stfiwx): Likewise.
24653 (fixuns_trunc<mode>_stfiwx): Likewise.
24654 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
24655 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
24656 (parity<mode>2_cmpb): Set length/type attr.
24657 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
24658 for 'mr.' to fast_compare.
24659 (bpermd_<mode>): Change type attr to popcnt.
24660 (p8_fmrgow_<mode>): New insns for power8 direct move support.
24661 (p8_mtvsrwz_1): Likewise.
24662 (p8_mtvsrwz_2): Likewise.
24663 (reload_fpr_from_gpr<mode>): Likewise.
24664 (p8_mtvsrd_1): Likewise.
24665 (p8_mtvsrd_2): Likewise.
24666 (p8_xxpermdi_<mode>): Likewise.
24667 (reload_vsx_from_gpr<mode>): Likewise.
24668 (reload_vsx_from_gprsf): Likewise.
24669 (p8_mfvsrd_3_<mode>): LIkewise.
24670 (reload_gpr_from_vsx<mode>): Likewise.
24671 (reload_gpr_from_vsxsf): Likewise.
24672 (p8_mfvsrd_4_disf): Likewise.
24673 (multi-word GPR splits): Do not split direct moves or quad memory
24674 operations.
24675
24676 2013-06-10 David Malcolm <dmalcolm@redhat.com>
24677
24678 * tree-into-ssa.c (interesting_blocks): Make static.
24679
24680 2013-06-10 Jakub Jelinek <jakub@redhat.com>
24681
24682 PR target/56564
24683 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
24684 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
24685 Use DATA_ABI_ALIGNMENT for that case instead if defined.
24686 (get_variable_align): New function.
24687 (get_variable_section, emit_bss, emit_common,
24688 assemble_variable_contents, place_block_symbol): Use
24689 get_variable_align instead of DECL_ALIGN.
24690 (assemble_noswitch_variable): Add align argument, use it
24691 instead of DECL_ALIGN.
24692 (assemble_variable): Adjust caller. Use get_variable_align
24693 instead of DECL_ALIGN.
24694 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
24695 caller.
24696 (DATA_ABI_ALIGNMENT): Define.
24697 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
24698 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
24699 opt is false, only return the psABI mandated alignment increase.
24700 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
24701 (DATA_ABI_ALIGNMENT): ... this.
24702 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
24703 (DATA_ABI_ALIGNMENT): ... this.
24704 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
24705 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
24706 (DATA_ABI_ALIGNMENT): ... this.
24707 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
24708 * doc/tm.texi: Regenerated.
24709
24710 2013-06-10 Uros Bizjak <ubizjak@gmail.com>
24711
24712 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
24713 cmp_code to construct REG_EQUAL note.
24714
24715 2013-06-09 Jakub Jelinek <jakub@redhat.com>
24716
24717 PR target/57568
24718 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
24719 that operands[2] doesn't overlap with operands[0].
24720
24721 2013-06-09 David Edelsohn <dje.gcc@gmail.com>
24722 Jan Hubicka <jh@suse.cz>
24723
24724 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
24725 hack to mark symbols as used.
24726
24727 2013-06-08 Vladimir Makarov <vmakarov@redhat.com>
24728
24729 PR rtl-optimization/57559
24730 * lra-constraints.c (process_alt_operands): Don't discourage
24731 memory with known offset for offsetable memory constraint.
24732 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
24733
24734 2013-06-08 Eric Botcazou <ebotcazou@adacore.com>
24735
24736 * varasm.c (struct oc_local_state): Reorder fields.
24737 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
24738 and adjust accordingly.
24739 (output_constructor): Reorder initialization code and adjust call to
24740 output_constructor_bitfield.
24741
24742 2013-06-07 Jan Hubicka <jh@suse.cz>
24743
24744 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
24745
24746 2013-06-07 David Malcolm <dmalcolm@redhat.com>
24747
24748 * tree-object-size.c (unknown): Make const.
24749
24750 2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24751
24752 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
24753 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
24754 for last alternative in the cpu_facility attribute.
24755
24756 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24757
24758 PR target/56315
24759 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
24760 (xordi3): Change operand 2 constraint to arm_xordi_operand.
24761 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
24762 * config/arm/constraints.md (Dg): New constraint.
24763 * config/arm/neon.md (xordi3_neon): Remove.
24764 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
24765 * config/arm/predicates.md (arm_xordi_operand): New predicate.
24766
24767 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24768
24769 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
24770 Clean up alternatives.
24771
24772 2013-06-07 Alan Modra <amodra@gmail.com>
24773
24774 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
24775 va_list_gpr_size.
24776
24777 2013-06-07 Alan Modra <amodra@gmail.com>
24778
24779 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
24780
24781 2013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24782
24783 * config/arm/constraints.md (Df): New constraint.
24784 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
24785 Correct length attribute for last two alternatives.
24786
24787 2013-06-07 Alan Modra <amodra@gmail.com>
24788
24789 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
24790 override user -mfp-in-toc.
24791 (offsettable_ok_by_alignment): Consider just the current access
24792 rather than the whole object, unless BLKmode. Handle
24793 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
24794 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
24795 for -mcmodel=medium.
24796 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
24797 override user -mfp-in-toc or -msum-in-toc. Default to
24798 -mno-fp-in-toc for -mcmodel=medium.
24799
24800 2013-06-06 DJ Delorie <dj@redhat.com>
24801
24802 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
24803 TARGET_VALID_POINTER_MODE.
24804
24805 2013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
24806 Pat Haugen <pthaugen@us.ibm.com>
24807 Peter Bergner <bergner@vnet.ibm.com>
24808
24809 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
24810 Document new power8 builtins.
24811
24812 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
24813 condition code register, to allow 128-bit logical operations to be
24814 done in the VSX or GPR registers.
24815 (nor<mode>3): Use the canonical form for nor.
24816 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
24817 vclz*, and vpopcnt* vector instructions.
24818 (nand<mode>3): Likewise.
24819 (orc<mode>3): Likewise.
24820 (clz<mode>2): LIkewise.
24821 (popcount<mode>2): Likewise.
24822
24823 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
24824 that only the GPRs are recognized.
24825
24826 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24827 support for new power8 builtins.
24828
24829 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
24830 builtin functions.
24831 (xscvdpspn): Likewise.
24832 (vclz): Likewise.
24833 (vclzb): Likewise.
24834 (vclzh): Likewise.
24835 (vclzw): Likewise.
24836 (vclzd): Likewise.
24837 (vpopcnt): Likewise.
24838 (vpopcntb): Likewise.
24839 (vpopcnth): Likewise.
24840 (vpopcntw): Likewise.
24841 (vpopcntd): Likewise.
24842 (vgbbd): Likewise.
24843 (vmrgew): Likewise.
24844 (vmrgow): Likewise.
24845 (eqv): Likewise.
24846 (eqv_v16qi3): Likewise.
24847 (eqv_v8hi3): Likewise.
24848 (eqv_v4si3): Likewise.
24849 (eqv_v2di3): Likewise.
24850 (eqv_v4sf3): Likewise.
24851 (eqv_v2df3): Likewise.
24852 (nand): Likewise.
24853 (nand_v16qi3): Likewise.
24854 (nand_v8hi3): Likewise.
24855 (nand_v4si3): Likewise.
24856 (nand_v2di3): Likewise.
24857 (nand_v4sf3): Likewise.
24858 (nand_v2df3): Likewise.
24859 (orc): Likewise.
24860 (orc_v16qi3): Likewise.
24861 (orc_v8hi3): Likewise.
24862 (orc_v4si3): Likewise.
24863 (orc_v2di3): Likewise.
24864 (orc_v4sf3): Likewise.
24865 (orc_v2df3): Likewise.
24866
24867 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
24868 allow power8 quad mode in 64-bit.
24869 (rs6000_builtin_vectorized_function): Add support to vectorize
24870 ISA 2.07 count leading zeros, population count builtins.
24871 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
24872 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
24873 (builtin_function_type): Add vgbbd builtin function which takes an
24874 unsigned argument.
24875 (altivec_expand_vec_perm_const): Add support for new power8 merge
24876 instructions.
24877
24878 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
24879 that does not include TImdoe for use with 32-bit.
24880 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
24881 instructions.
24882 (UNSPEC_VSX_CVDPSPN): Likewise.
24883 (vsx_xscvdpspn): Likewise.
24884 (vsx_xscvspdpn): Likewise.
24885 (vsx_xscvdpspn_scalar): Likewise.
24886 (vsx_xscvspdpn_directmove): Likewise.
24887 (vsx_and<mode>3): Split logical operations into 32-bit and
24888 64-bit. Add support to do logical operations on TImode as well as
24889 VSX vector types. Allow logical operations to be done in either
24890 VSX registers or in general purpose registers in 64-bit mode. Add
24891 splitters if GPRs were used. For AND, add clobber of CCmode to
24892 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
24893 encoding.
24894 (vsx_and<mode>3_32bit): Likewise.
24895 (vsx_and<mode>3_64bit): Likewise.
24896 (vsx_ior<mode>3): Likewise.
24897 (vsx_ior<mode>3_32bit): Likewise.
24898 (vsx_ior<mode>3_64bit): Likewise.
24899 (vsx_xor<mode>3): Likewise.
24900 (vsx_xor<mode>3_32bit): Likewise.
24901 (vsx_xor<mode>3_64bit): Likewise.
24902 (vsx_one_cmpl<mode>2): Likewise.
24903 (vsx_one_cmpl<mode>2_32bit): Likewise.
24904 (vsx_one_cmpl<mode>2_64bit): Likewise.
24905 (vsx_nor<mode>3): Likewise.
24906 (vsx_nor<mode>3_32bit): Likewise.
24907 (vsx_nor<mode>3_64bit): Likewise.
24908 (vsx_andc<mode>3): Likewise.
24909 (vsx_andc<mode>3_32bit): Likewise.
24910 (vsx_andc<mode>3_64bit): Likewise.
24911 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
24912 and xxlorc instructions.
24913 (vsx_eqv<mode>3_64bit): Likewise.
24914 (vsx_nand<mode>3_32bit): Likewise.
24915 (vsx_nand<mode>3_64bit): Likewise.
24916 (vsx_orc<mode>3_32bit): Likewise.
24917 (vsx_orc<mode>3_64bit): Likewise.
24918
24919 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
24920
24921 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
24922 instruction.
24923 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
24924 (p8_vmrgow): Likewise.
24925 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
24926 GPRs to be split under VSX.
24927 (p8v_clz<mode>2): Add power8 count leading zero support.
24928 (p8v_popcount<mode>2): Add power8 population count support.
24929 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
24930 support.
24931
24932 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
24933 instruction.
24934
24935 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
24936 builtin functions.
24937 (vec_nand): Likewise.
24938 (vec_vclz): Likewise.
24939 (vec_vclzb): Likewise.
24940 (vec_vclzd): Likewise.
24941 (vec_vclzh): Likewise.
24942 (vec_vclzw): Likewise.
24943 (vec_vgbbd): Likewise.
24944 (vec_vmrgew): Likewise.
24945 (vec_vmrgow): Likewise.
24946 (vec_vpopcnt): Likewise.
24947 (vec_vpopcntb): Likewise.
24948 (vec_vpopcntd): Likewise.
24949 (vec_vpopcnth): Likewise.
24950 (vec_vpopcntw): Likewise.
24951
24952 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
24953
24954 PR rtl-optimization/57468
24955 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
24956 spilled pseudos.
24957
24958 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
24959
24960 PR rtl-optimization/57459
24961 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
24962 type when setting live regs.
24963
24964 2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
24965
24966 * config/s390/s390.opt (mlra): New option.
24967 * config/s390/s390.c (s390_decompose_address): Check displacement
24968 for all registers for LRA.
24969 (s390_secondary_reload): Don't used secondary reloads for LRA.
24970 (s390_lra_p): New function.
24971 (TARGET_LRA_P): Define.
24972 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
24973 of attribute cpu_facility to zarch for the last alternative.
24974 (*cmpmem_short): Ditto.
24975
24976 2013-06-06 Eric Botcazou <ebotcazou@adacore.com>
24977
24978 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
24979 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
24980 (arm_expand_prologue): Likewise.
24981
24982 2013-06-06 Teresa Johnson <tejohnson@google.com>
24983
24984 PR c++/53743
24985 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
24986 as this is now done by redirect_edge_and_branch_force.
24987 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
24988 barriers, and fix interaction with splitting.
24989 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
24990 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
24991 reflect changes made in the routine.
24992 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
24993 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
24994 since this is called in cfglayout mode, and replace partition fixup
24995 with assert as that is now done by force_nonfallthru_and_redirect.
24996 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
24997 already be marked with region crossing note.
24998 (insert_section_boundary_note): Make non-static, gate on flag
24999 has_bb_partition, rewrite to also check for multiple partitions.
25000 (rest_of_handle_reorder_blocks): Remove call to
25001 insert_section_boundary_note, now done later during free_cfg.
25002 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
25003 * bb-reorder.h (insert_section_boundary_note): Declare.
25004 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
25005 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
25006 invoke insert_section_boundary_note.
25007 (try_redirect_by_replacing_jump): Remove unnecessary
25008 check for region crossing note.
25009 (fixup_partition_crossing): New function.
25010 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
25011 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
25012 in non-cfglayout mode.
25013 (force_nonfallthru_and_redirect): Fixup partition boundaries,
25014 remove old code that tried to do this. Emit barrier correctly
25015 when we are in cfglayout mode.
25016 (last_bb_in_partition): New function.
25017 (rtl_split_edge): Correctly fixup partition boundaries.
25018 (commit_one_edge_insertion): Remove old code that tried to
25019 fixup region crossing edge since this is now handled in
25020 split_block, and set up insertion point correctly since
25021 block may now end in a jump.
25022 (verify_hot_cold_block_grouping): Guard against checking when not in
25023 linearized RTL mode.
25024 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
25025 notes.
25026 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
25027 rtl_verify_flow_info, so not called in cfglayout mode.
25028 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
25029 (fixup_reorder_chain): Remove old code that attempted to fixup region
25030 crossing note as this is now handled in force_nonfallthru_and_redirect.
25031 (duplicate_insn_chain): Don't duplicate switch section notes.
25032 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
25033 note.
25034 * basic-block.h (emit_barrier_after_bb): Declare.
25035
25036 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25037
25038 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
25039 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
25040 arm_usatsihi): Adjust alternatives for arm_restrict_it.
25041
25042 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25043
25044 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
25045 where appropriate.
25046 * config/arm/ldmstm.md: Regenerate.
25047
25048 2013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25049
25050 * config/arm/sync.md (atomic_loaddi_1):
25051 Disable predication for arm_restrict_it.
25052 (arm_load_exclusive<mode>): Likewise.
25053 (arm_load_exclusivesi): Likewise.
25054 (arm_load_exclusivedi): Likewise.
25055 (arm_load_acquire_exclusive<mode>): Likewise.
25056 (arm_load_acquire_exclusivesi): Likewise.
25057 (arm_load_acquire_exclusivedi): Likewise.
25058 (arm_store_exclusive<mode>): Likewise.
25059 (arm_store_exclusive<mode>): Likewise.
25060 (arm_store_release_exclusivedi): Likewise.
25061 (arm_store_release_exclusive<mode>): Likewise.
25062
25063 2013-06-06 Richard Biener <rguenther@suse.de>
25064
25065 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
25066 after LTO_null.
25067 (lto_tag_is_tree_code_p): Adjust.
25068 (lto_tag_is_gimple_code_p): Likewise.
25069 (lto_gimple_code_to_tag): Likewise.
25070 (lto_tag_to_gimple_code): Likewise.
25071 (lto_tree_code_to_tag): Likewise.
25072 (lto_tag_to_tree_code): Likewise.
25073 * data-streamer.h (streamer_write_hwi_in_range): Use
25074 uhwi streaming to stream the normalized range.
25075 (streamer_read_hwi_in_range): Likewise.
25076
25077 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25078
25079 * config/arm/arm.md (enabled_for_depr_it): New attribute.
25080 (predicable_short_it): Likewise.
25081 (predicated): Likewise.
25082 (enabled): Handle above.
25083 (define_cond_exec): Set predicated attribute to yes.
25084
25085 2013-06-05 Mike Stump <mikestump@comcast.net>
25086
25087 * gdbinit.in (__FUNCTION__): Add.
25088
25089 2013-06-05 Uros Bizjak <ubizjak@gmail.com>
25090
25091 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
25092 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
25093
25094 2013-06-05 Jan Hubicka <jh@suse.cz>
25095
25096 * varasm.c (mark_decl_referenced): Revert the removal until targets
25097 are fixed.
25098
25099 2013-06-05 David Edelsohn <dje.gcc@gmail.com>
25100
25101 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
25102 instead of mark_decl_referenced.
25103
25104 2013-06-05 Jan Hubicka <jh@suse.cz>
25105
25106 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
25107 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
25108 and symtab_used_from_object_file_p.
25109 (cgraph_make_node_local_1): Clear forced_by_abi.
25110 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
25111 * cgraph.h (symtab_node_base): Add forced_by_abi.
25112 (decide_is_variable_needed): Remove.
25113 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
25114 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
25115 (decide_is_symbol_needed): ... this one; handle symbols in general;
25116 always analyze virtuals; honnor forced_by_abi.
25117 (cgraph_finalize_function): Update.
25118 (varpool_finalize_decl): Update.
25119 (symbol_defined_and_needed): Remove.
25120 (analyze_functions): Update.
25121 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
25122 output_refs, input_overwrite_node): Handle forced_by_abi.
25123 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
25124 (address_taken_from_non_vtable_p): ... this one.
25125 (comdat_can_be_unshared_p_1): New function.
25126 (cgraph_comdat_can_be_unshared_p): Rename to ...
25127 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
25128 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
25129 (function_and_variable_visibility): Clear forced_by_abi as needed.
25130 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
25131 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
25132 * symtab.c (dump_symtab_base): Dump forced_by_abi.
25133 * varpool.c (decide_is_variable_needed): Remove.
25134
25135 2013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25136
25137 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
25138 (arm_option_override): Override arm_restrict_it where appropriate.
25139 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
25140 * config/arm/arm.opt (mrestrict-it): New command-line option.
25141 * doc/invoke.texi: Document -mrestrict-it.
25142
25143 2013-06-05 David Malcolm <dmalcolm@redhat.com>
25144
25145 * tsan.c (tsan_atomic_table): Make const.
25146
25147 2013-06-05 Richard Biener <rguenther@suse.de>
25148
25149 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
25150 index associated with the tree we are supposed to replace.
25151 * tree-streamer-out.c (pack_ts_base_value_fields): Output
25152 TREE_ASM_WRITTEN as zero for everything but SSA names.
25153
25154 2013-06-05 David Malcolm <dmalcolm@redhat.com>
25155
25156 * tree-ssa-structalias.c (call_stmt_vars): Make static.
25157
25158 2013-06-04 Jan Hubicka <jh@suse.cz>
25159
25160 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
25161 (input_node, input_varpool_node): Handle correctly external same
25162 body aliases.
25163 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
25164 nodes at ltrans stage.
25165
25166 2013-06-04 Jan Hubicka <jh@suse.cz>
25167
25168 * ipa-inline.c (update_caller_keys): Fix availability test.
25169 (update_callee_keys): Likewise.
25170 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
25171 to follow ELF standard.
25172
25173 2013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
25174
25175 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
25176 (mips64r5900el-*-elf*): New configurations.
25177 * config/mips/mips-cpus.def (r5900): New processor.
25178 * config/mips/mips-tables.opt: Regenerate.
25179 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
25180 (mips_issue_rate): Handle PROCESSOR_R5900.
25181 (mips_reorg_process_insns): Force reorder mode for the R5900.
25182 * config/mips/mips.h (TARGET_MIPS5900): Define.
25183 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
25184 TARGET_MIPS5900.
25185 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
25186 TARGET_MIPS5900.
25187 * config/mips/mips.md (processor): Add r5900.
25188 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
25189
25190 2013-06-04 Ian Bolton <ian.bolton@arm.com>
25191
25192 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
25193 into function to generate MOVI instruction.
25194 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
25195 (aarch64_preferred_simd_mode): Turn into wrapper.
25196 (aarch64_output_scalar_simd_mov_immediate): New function.
25197 * config/aarch64/aarch64-protos.h: Add prototype for above.
25198
25199 2013-06-04 Ian Bolton <ian.bolton@arm.com>
25200
25201 * config/aarch64/aarch64.c (simd_immediate_info): Remove
25202 element_char member.
25203 (sizetochar): Return signed char.
25204 (aarch64_simd_valid_immediate): Remove elchar and other
25205 unnecessary variables.
25206 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
25207 Calculate element_char as required.
25208 * config/aarch64/aarch64-protos.h: Update and move prototype
25209 for aarch64_output_simd_mov_immediate.
25210 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
25211 Update arguments.
25212
25213 2013-06-04 Ian Bolton <ian.bolton@arm.com>
25214
25215 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
25216 information completed by aarch64_simd_valid_immediate.
25217 (aarch64_legitimate_constant_p): Update arguments.
25218 (aarch64_simd_valid_immediate): Work with struct rather than many
25219 pointers.
25220 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
25221 (aarch64_simd_make_constant): Update arguments.
25222 (aarch64_output_simd_mov_immediate): Work with struct rather than
25223 many pointers. Output immediate directly rather than as operand.
25224 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
25225 Update prototype.
25226 * config/aarch64/constraints.md (Dn): Update arguments.
25227
25228 2013-06-04 Ian Bolton <ian.bolton@arm.com>
25229
25230 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
25231 longer static.
25232 (aarch64_simd_immediate_valid_for_move): Remove.
25233 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
25234 (aarch64_simd_make_constant): Update call.
25235 (aarch64_output_simd_mov_immediate): Update call.
25236 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
25237 Add prototype.
25238 * config/aarch64/constraints.md (Dn): Update call.
25239
25240 2013-06-04 Ian Bolton <ian.bolton@arm.com>
25241
25242 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
25243 return type to bool for prototype.
25244 (aarch64_legitimate_constant_p): Check for true instead of not -1.
25245 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
25246 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
25247
25248 2013-06-04 Catherine Moore <clm@codesourcery.com>
25249
25250 * config/mips/mips.opt (meva): New.
25251 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
25252 (ASM_SPEC): Handle -meva.
25253 * doc/invoke.texi (meva): Document.
25254
25255 2013-06-04 Alan Modra <amodra@gmail.com>
25256
25257 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
25258 constant output.
25259
25260 2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25261
25262 * rtl.def: Add extra fourth optional field to define_cond_exec.
25263 * gensupport.c (process_one_cond_exec): Process attributes from
25264 define_cond_exec.
25265 * doc/md.texi: Document fourth field in define_cond_exec.
25266
25267 2013-06-04 Eric Botcazou <ebotcazou@adacore.com>
25268
25269 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
25270 out the processing order as in store_bit_field_1.
25271
25272 2013-06-04 Jan Hubicka <jh@suse.cz>
25273
25274 PR middle-end/57500
25275 * cgraphunit.c (cgraph_process_same_body_aliases): Create
25276 non-VAR_DECL node if it does not exist yet.
25277
25278 2013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
25279
25280 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
25281 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
25282 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
25283 target_cpu_default setting.
25284
25285 2013-06-03 Teresa Johnson <tejohnson@google.com>
25286
25287 * dumpfile.c (opt_info_switch_p): Change -fopt-info
25288 default to -fopt-info=optimized instead of all.
25289 * doc/invoke.texi: Ditto.
25290 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
25291 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
25292 (execute_vect_slp): Emit BB vectorization success under
25293 MSG_OPTIMIZED_LOCATIONS.
25294 * tree-vect-slp.c (vect_slp_transform_bb): Change
25295 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
25296 * tree-vect-loop.c (vect_transform_loop): Ditto.
25297
25298 2013-06-03 Jason Merrill <jason@redhat.com>
25299
25300 PR c++/57415
25301 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25302 Use TARGET_EXPR for C++.
25303
25304 2013-06-03 Jakub Jelinek <jakub@redhat.com>
25305
25306 PR rtl-optimization/57268
25307 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
25308 if DEBUG_INSN_P (insn).
25309
25310 Reapply
25311 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
25312
25313 PR rtl-optimization/57268
25314 * sched-deps.c (sched_analyze_2): Flush dependence lists if
25315 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
25316
25317 2013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
25318
25319 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
25320 (ix86_avoid_lea_for_addr): Likewise.
25321 (exact_dependency_1): Likewise.
25322 (ix86_adjust_cost): Likewise.
25323 (swap_top_of_ready_list): Fix formatting and !reload_completed check
25324 removed.
25325 (do_reorder_for_imul): Fix typo, formatting and
25326 !reload_completed check removed.
25327 (ix86_sched_reorder): Fix typo and formatting.
25328 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
25329 list.
25330
25331 2013-06-03 Sofiane Naci <sofiane.naci@arm.com>
25332
25333 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
25334
25335 2013-06-03 Eric Botcazou <ebotcazou@adacore.com>
25336
25337 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
25338 <STRING_CST>: Likewise.
25339 <VECTOR_CST>: Likewise.
25340
25341 2013-06-01 Janus Weil <janus@gcc.gnu.org>
25342 Mikael Morin <mikael@gcc.gnu.org>
25343
25344 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
25345 * config.in: Regenerated.
25346 * configure: Regenerated.
25347
25348 2013-06-01 Jan Hubicka <jh@suse.cz>
25349
25350 PR middle-end/57366
25351 * cgraphunit.c (compile): When weakref is not supported,
25352 set up transparent aliases before final output pass.
25353 * varasm.c (assemble_alias): Do not try to do it here.
25354
25355 2013-06-01 Jan Hubicka <jh@suse.cz>
25356
25357 PR middle-end/57467
25358 * passes.c (for_per_function): Skip unanalyzed functions.
25359
25360 2013-06-01 Jan Hubicka <jh@suse.cz>
25361
25362 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
25363 (lto_symtab_merge_symbols_1): ... this one.
25364 (lto_symtab_merge_cgraph_nodes): Rename to ...
25365 (lto_symtab_merge_symbols): ... this one; simplify.
25366 * cgraph.c (same_body_aliases_done): Rename to ...
25367 (cpp_implicit_aliases_done): ... this one.
25368 (cgraph_create_function_alias): Update.
25369 (cgraph_same_body_alias): Update.
25370 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
25371 (verify_edge_corresponds_to_fndecl): Simplify.
25372 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
25373 (cgraph_node): Remove same_body_alias.
25374 (varpool_node): Remove alias_of and extra_name_alias.
25375 (same_body_aliases_done): Rename to ..
25376 (cpp_implicit_aliases_done): ... this one.
25377 (symtab_alias_ultimate_target): Add default parameter.
25378 (symtab_resolve_alias): New function.
25379 (fixup_same_cpp_alias_visibility): Declare.
25380 (cgraph_function_node): Add default parameter.
25381 (cgraph_node_asm_name): Likewise.
25382 (cgraph_function_or_thunk_node): Add default parameter; do
25383 not ICE when it is NULL.
25384 (varpool_variable_node): Likewise.
25385 * tree-emutls.c (create_emultls_var): Update.
25386 (ipa_lower_emutls): Update.
25387 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
25388 (cgraph_reset_node): Reset alias info.
25389 (cgraph_finalize_function): Update.
25390 (fixup_same_cpp_alias_visibility): Move to symtab.c.
25391 (analyze_function): Simplify.
25392 (cgraph_process_same_body_aliases): Simplify.
25393 (analyze_functions): Fixup same body aliases.
25394 (handle_alias_pairs): Simplify.
25395 (assemble_thunk): Update.
25396 (assemble_thunks_and_aliases): Update.
25397 (output_weakrefs): Rewrite.
25398 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
25399 (lto_output_varpool_node): Likewise.
25400 (compute_ltrans_boundary): Remve assert.
25401 (get_alias_symbol): New functoin.
25402 (input_node): Rewrite alias handling.
25403 (input_varpool_node): Likewise.
25404 * ipa-pure-const.c (propagate_pure_const): Fix formating.
25405 * ipa.c (process_references): Handle weakrefs correctly.
25406 (symtab_remove_unreachable_nodes): Likewise.
25407 * trans-mem.c (get_cg_data): Update.
25408 (ipa_tm_create_version_alias): Update.
25409 (ipa_tm_execute): Update.
25410 * symtab.c (dump_symtab_base): Dump aliases.
25411 (verify_symtab_base): Verify aliases.
25412 (symtab_node_availability): New function.
25413 (symtab_alias_ultimate_target): Simplify.
25414 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
25415 handle all the fixup cases.
25416 (symtab_resolve_alias): New function.
25417 * passes.c (ipa_write_summaries): Handle weakrefs.
25418 * varpool.c (varpool_analyze_node): Simplify.
25419 (assemble_aliases): Update.
25420 (varpool_create_variable_alias): Simplify.
25421 (varpool_extra_name_alias): Simplify.
25422 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
25423 (lto_symtab_merge_symbols): ... this one.
25424
25425 2013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
25426
25427 Revert
25428 PR rtl-optimization/57268
25429 * sched-deps.c (sched_analyze_2): Flush dependence lists if
25430 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
25431
25432 2013-06-01 Tobias Burnus <burnus@net-b.de>
25433
25434 Partially reverted:
25435 2013-05-31 Tobias Burnus <burnus@net-b.de>
25436
25437 PR middle-end/57073
25438 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
25439 further up.
25440
25441 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
25442
25443 PR rtl-optimization/57268
25444 * sched-deps.c (sched_analyze_2): Flush dependence lists if
25445 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
25446
25447 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
25448
25449 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
25450 unordered comparison operators when -fno-trapping-math is in effect
25451 on the e500.
25452 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
25453 and implement unordered comparison operators properly on the e500.
25454
25455 2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
25456
25457 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
25458 for constant scalar integers.
25459 (simplify_relational_operation_1): Likewise.
25460
25461 2013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
25462
25463 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
25464 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
25465 Fix comment.
25466
25467 2013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
25468 Igor Zamyatin <igor.zamyatin@intel.com>
25469
25470 Silvermont (SLM) architecture performance tuning.
25471 * config/i386/i386.h (enum ix86_tune_indices): Add
25472 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
25473 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
25474
25475 * config/i386/i386.c (initial_ix86_tune_features)
25476 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
25477 (ix86_lea_outperforms): Handle Silvermont tuning.
25478 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
25479 call.
25480 (ix86_use_lea_for_mov): Likewise.
25481 (ix86_avoid_lea_for_addr): Likewise.
25482 (ix86_lea_for_add_ok): Likewise.
25483 (exact_dependency_1): New function.
25484 (exact_store_load_dependency): Likewise.
25485 (ix86_adjust_cost): Handle Silvermont tuning.
25486 (do_reoder_for_imul): Likewise.
25487 (swap_top_of_ready_list): New function.
25488 (ix86_sched_reorder): Changed to handle Silvermont tuning.
25489
25490 * config/i386/i386.md (peepholes that split memory operand in fp
25491 converts): New.
25492
25493 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
25494
25495 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
25496 Remove un-necessary braces.
25497
25498 2013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
25499
25500 * config/aarch64/aarch64.c (aarch64_classify_symbol):
25501 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
25502
25503 2013-05-31 Tobias Burnus <burnus@net-b.de>
25504
25505 PR middle-end/57073
25506 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
25507
25508 2013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25509
25510 PR target/56315
25511 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
25512 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
25513 * config/arm/neon.md (iordi3_neon): Remove.
25514 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
25515 * config/arm/predicates.md (imm_for_neon_logic_operand):
25516 Move to earlier in the file.
25517 (neon_logic_op2): Likewise.
25518 (arm_iordi_operand_neon): New predicate.
25519
25520 2013-05-31 Richard Biener <rguenther@suse.de>
25521
25522 PR tree-optimization/57478
25523 PR tree-optimization/57453
25524 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
25525 are life as well.
25526
25527 2013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
25528
25529 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
25530 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
25531
25532 2013-05-30 Tobias Burnus <burnus@net-b.de>
25533 Thomas Koenig <tkoenig@gcc.gnu.org>
25534
25535 PR middle-end/57073
25536 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
25537 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
25538
25539 2013-05-30 Steven Bosscher <steven@gcc.gnu.org>
25540
25541 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
25542
25543 2013-05-30 Vladimir Makarov <vmakarov@redhat.com>
25544
25545 * target.def (register_usage_leveling_p): New hook.
25546 * targhooks.c (default_register_usage_leveling_p): New.
25547 * targhooks.h (default_register_usage_leveling_p): New prototype.
25548 * lra-assigns.c (register_usage_leveling_p): Use the hook.
25549 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
25550 * doc/tm.texi: Update.
25551 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
25552
25553 2013-05-30 Ian Bolton <ian.bolton@arm.com>
25554
25555 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
25556 (*insv_reg<mode>): New define_insn.
25557
25558 2013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
25559
25560 PR rtl-optimization/57439
25561 * postreload.c (move2add_valid_value_p): Check that we have
25562 a zero subreg_regno_offset when accessing the register in
25563 the requested mode.
25564
25565 2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
25566 Igor Zamyatin <igor.zamyatin@intel.com>
25567
25568 Silvermont (SLM) architecture pipeline model, tuning and
25569 insn selection.
25570 * config.gcc: Add slm config options and target.
25571
25572 * config/i386/slm.md: New.
25573
25574 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
25575
25576 * config/i386/i386-c.c (ix86_target_macros_internal): New case
25577 PROCESSOR_SLM.
25578 (ix86_target_macros_internal): Likewise.
25579
25580 * config/i386/i386.c (slm_cost): New cost.
25581 (m_SLM): New macro flag.
25582 (initial_ix86_tune_features): Set m_SLM.
25583 (x86_accumulate_outgoing_args): Likewise.
25584 (x86_arch_always_fancy_math_387): Likewise.
25585 (processor_target_table): Add slm cost.
25586 (cpu_names): Add slm cpu name.
25587 (x86_option_override_internal): Set SLM ISA.
25588 (ix86_issue_rate): New case PROCESSOR_SLM.
25589 (ia32_multipass_dfa_lookahead): Likewise.
25590 (fold_builtin_cpu): Add slm.
25591
25592 * config/i386/i386.h (TARGET_SLM): New target macro.
25593 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
25594 (processor_type): Add PROCESSOR_SLM.
25595
25596 * config/i386/i386.md (cpu): Add new value "slm".
25597 (slm.md): Include slm.md.
25598
25599 2013-05-30 Bernd Schmidt <bernds@codesourcery.com>
25600 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25601
25602 * config/arm/arm-protos.h: Add and update function protos.
25603 * config/arm/arm.c (use_simple_return_p): New added.
25604 (thumb2_expand_return): Check simple_return flag.
25605 * config/arm/arm.md: Add simple_return and conditional simple_return.
25606 * config/arm/iterators.md: Add iterator for return and simple_return.
25607
25608 2013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25609
25610 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
25611 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
25612 (arm_emit_vfp_multi_reg_pop): Likewise.
25613 (thumb2_emit_ldrd_pop): Likewise.
25614 (arm_expand_epilogue): Add misc REG_CFA notes.
25615 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
25616
25617 2013-05-29 Lawrence Crowl <crowl@google.com>
25618
25619 * config/arm/t-arm: Update for below.
25620
25621 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
25622 Change type to hash_table. Update dependent calls and types.
25623
25624 * config/i386/t-cygming: Update for below.
25625
25626 * config/i386/t-interix: Update for below.
25627
25628 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
25629 Change type to hash_table. Update dependent calls and types.
25630 (i386_find_on_wrapper_list::wrappers): Likewise.
25631
25632 * config/ia64/t-ia64: Update for below.
25633
25634 * config/ia64/ia64.c (bundle_state_table):
25635 Change type to hash_table. Update dependent calls and types.
25636
25637 * config/mips/mips.c (mips_reorg_process_insns::htab):
25638 Change type to hash_table. Update dependent calls and types.
25639
25640 * config/sol2.c (solaris_comdat_htab):
25641 Change type to hash_table. Update dependent calls and types.
25642
25643 * config/t-sol2: Update for above.
25644
25645 2013-05-29 Teresa Johnson <tejohnson@google.com>
25646
25647 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
25648 functions are not yet marked as defined.
25649
25650 2013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
25651 Pat Haugen <pthaugen@us.ibm.com>
25652 Peter Bergner <bergner@vnet.ibm.com>
25653
25654 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
25655 instructions.
25656 (VEC_A): Likewise.
25657 (VEC_C): Likewise.
25658 (vrotl<mode>3): Likewise.
25659 (vashl<mode>3): Likewise.
25660 (vlshr<mode>3): Likewise.
25661 (vashr<mode>3): Likewise.
25662
25663 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25664 support for power8 V2DI builtins.
25665
25666 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
25667 power8 V2DI builtins.
25668 (vupkhsw): Likewise.
25669 (vupklsw): Likewise.
25670 (vaddudm): Likewise.
25671 (vminsd): Likewise.
25672 (vmaxsd): Likewise.
25673 (vminud): Likewise.
25674 (vmaxud): Likewise.
25675 (vpkudum): Likewise.
25676 (vpksdss): Likewise.
25677 (vpkudus): Likewise.
25678 (vpksdus): Likewise.
25679 (vrld): Likewise.
25680 (vsld): Likewise.
25681 (vsrd): Likewise.
25682 (vsrad): Likewise.
25683 (vsubudm): Likewise.
25684 (vcmpequd): Likewise.
25685 (vcmpgtsd): Likewise.
25686 (vcmpgtud): Likewise.
25687 (vcmpequd_p): Likewise.
25688 (vcmpgtsd_p): Likewise.
25689 (vcmpgtud_p): Likewise.
25690 (vupkhsw): Likewise.
25691 (vupklsw): Likewise.
25692 (vaddudm): Likewise.
25693 (vmaxsd): Likewise.
25694 (vmaxud): Likewise.
25695 (vminsd): Likewise.
25696 (vminud): Likewise.
25697 (vpksdss): Likewise.
25698 (vpksdus): Likewise.
25699 (vpkudum): Likewise.
25700 (vpkudus): Likewise.
25701 (vrld): Likewise.
25702 (vsld): Likewise.
25703 (vsrad): Likewise.
25704 (vsrd): Likewise.
25705 (vsubudm): Likewise.
25706
25707 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
25708 support for power8 V2DI instructions.
25709
25710 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
25711 power8 V2DI instructions. Combine pack and unpack insns to use an
25712 iterator for each mode. Check whether a particular mode supports
25713 Altivec instructions instead of just checking TARGET_ALTIVEC.
25714 (UNSPEC_VPKUWUM): Likewise.
25715 (UNSPEC_VPKSHSS): Likewise.
25716 (UNSPEC_VPKSWSS): Likewise.
25717 (UNSPEC_VPKUHUS): Likewise.
25718 (UNSPEC_VPKSHUS): Likewise.
25719 (UNSPEC_VPKUWUS): Likewise.
25720 (UNSPEC_VPKSWUS): Likewise.
25721 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
25722 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
25723 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
25724 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
25725 (UNSPEC_VUPKHSB): Likewise.
25726 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
25727 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
25728 (UNSPEC_VUPKHSH): Likewise.
25729 (UNSPEC_VUPKLSB): Likewise.
25730 (UNSPEC_VUPKLSH): Likewise.
25731 (VI2): Likewise.
25732 (VI_char): Likewise.
25733 (VI_scalar): Likewise.
25734 (VI_unit): Likewise.
25735 (VP): Likewise.
25736 (VP_small): Likewise.
25737 (VP_small_lc): Likewise.
25738 (VU_char): Likewise.
25739 (add<mode>3): Likewise.
25740 (altivec_vaddcuw): Likewise.
25741 (altivec_vaddu<VI_char>s): Likewise.
25742 (altivec_vadds<VI_char>s): Likewise.
25743 (sub<mode>3): Likewise.
25744 (altivec_vsubcuw): Likewise.
25745 (altivec_vsubu<VI_char>s): Likewise.
25746 (altivec_vsubs<VI_char>s): Likewise.
25747 (altivec_vavgs<VI_char>): Likewise.
25748 (altivec_vcmpbfp): Likewise.
25749 (altivec_eq<mode>): Likewise.
25750 (altivec_gt<mode>): Likewise.
25751 (altivec_gtu<mode>): Likewise.
25752 (umax<mode>3): Likewise.
25753 (smax<mode>3): Likewise.
25754 (umin<mode>3): Likewise.
25755 (smin<mode>3): Likewise.
25756 (altivec_vpkuhum): Likewise.
25757 (altivec_vpkuwum): Likewise.
25758 (altivec_vpkshss): Likewise.
25759 (altivec_vpkswss): Likewise.
25760 (altivec_vpkuhus): Likewise.
25761 (altivec_vpkshus): Likewise.
25762 (altivec_vpkuwus): Likewise.
25763 (altivec_vpkswus): Likewise.
25764 (altivec_vpks<VI_char>ss): Likewise.
25765 (altivec_vpks<VI_char>us): Likewise.
25766 (altivec_vpku<VI_char>us): Likewise.
25767 (altivec_vpku<VI_char>um): Likewise.
25768 (altivec_vrl<VI_char>): Likewise.
25769 (altivec_vsl<VI_char>): Likewise.
25770 (altivec_vsr<VI_char>): Likewise.
25771 (altivec_vsra<VI_char>): Likewise.
25772 (altivec_vsldoi_<mode>): Likewise.
25773 (altivec_vupkhsb): Likewise.
25774 (altivec_vupkhs<VU_char>): Likewise.
25775 (altivec_vupkls<VU_char>): Likewise.
25776 (altivec_vupkhsh): Likewise.
25777 (altivec_vupklsb): Likewise.
25778 (altivec_vupklsh): Likewise.
25779 (altivec_vcmpequ<VI_char>_p): Likewise.
25780 (altivec_vcmpgts<VI_char>_p): Likewise.
25781 (altivec_vcmpgtu<VI_char>_p): Likewise.
25782 (abs<mode>2): Likewise.
25783 (vec_unpacks_hi_v16qi): Likewise.
25784 (vec_unpacks_hi_v8hi): Likewise.
25785 (vec_unpacks_lo_v16qi): Likewise.
25786 (vec_unpacks_hi_<VP_small_lc>): Likewise.
25787 (vec_unpacks_lo_v8hi): Likewise.
25788 (vec_unpacks_lo_<VP_small_lc>): Likewise.
25789 (vec_pack_trunc_v8h): Likewise.
25790 (vec_pack_trunc_v4si): Likewise.
25791 (vec_pack_trunc_<mode>): Likewise.
25792
25793 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
25794 V2DI builtins.
25795 (vec_vmaxsd): Likewise.
25796 (vec_vmaxud): Likewise.
25797 (vec_vminsd): Likewise.
25798 (vec_vminud): Likewise.
25799 (vec_vpksdss): Likewise.
25800 (vec_vpksdus): Likewise.
25801 (vec_vpkudum): Likewise.
25802 (vec_vpkudus): Likewise.
25803 (vec_vrld): Likewise.
25804 (vec_vsld): Likewise.
25805 (vec_vsrad): Likewise.
25806 (vec_vsrd): Likewise.
25807 (vec_vsubudm): Likewise.
25808 (vec_vupkhsw): Likewise.
25809 (vec_vupklsw): Likewise.
25810
25811 2013-05-29 Jan Hubicka <jh@suse.cz>
25812
25813 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
25814 flags; reorder rest of fields in more consistent way.
25815 (varpool_node): Remove analyzed, finalized and alias.
25816 (cgraph_ndoe): Likewise.
25817 (symtab_alias_ultimate_target): New function.
25818 (cgraph_function_node): Move offline.
25819 (cgraph_reset_node): Declare.
25820 (cgraph_comdat_can_be_unshared_p): Remove.
25821 (varpool_remove_initializer): Declare.
25822 (varpool_first_defined_variable, varpool_next_defined_variable
25823 cgraph_first_defined_function, cgraph_next_defined_function): Update.
25824 (cgraph_function_with_gimple_body_p): Update.
25825 (varpool_all_refs_explicit_p): Update.
25826 (symtab_alias_target): New function.
25827 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
25828 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
25829 (cgraph_function_or_thunk_node): Simplify using
25830 symtab_alias_ultimate_target.
25831 (varpool_variable_node): Likewise.
25832 * cgraph.c (cgraph_create_function_alias): Update.
25833 (cgraph_add_thunk): Update.
25834 (cgraph_remove_node): Update.
25835 (dump_cgraph_node): Do not dump removed flags.
25836 (cgraph_function_body_availability): Update.
25837 (cgraph_propagate_frequency): Update.
25838 (verify_cgraph_node): Check sanity of local flag.
25839 (cgraph_function_node): Move here from cgraph.h; revamp for
25840 cgraph_function_or_thunk_node.
25841 * lto-symtab.c (lto_varpool_replace_node): Update.
25842 (lto_symtab_resolve_can_prevail_p): Update.
25843 (lto_symtab_merge_cgraph_nodes): Update.
25844 * ipa-cp.c (determine_versionability, initialize_node_lattices,
25845 propagate_constants_accross_call, devirtualization_time_bonus,
25846 ipcp_propagate_stage): Update.
25847 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
25848 * ipa-inline-transform.c (clone_inlined_nodes,
25849 preserve_function_body_p): Update.
25850 * ipa-reference.c (propagate): Update.
25851 (write_node_summary_p): Update.
25852 * toplev.c (wrapup_global_declaration_2): Update.
25853 * cgraphunit.c (cgraph_analyze_function): Rename to ...
25854 (analyze_function) ... this one.
25855 (cgraph_process_new_functions): Update.
25856 (cgraph_reset_node): Export.
25857 (cgraph_finalize_function): Update.
25858 (cgraph_add_new_function): Update.
25859 (process_function_and_variable_attributes): Update.
25860 (varpool_finalize_decl): Update.
25861 (symbol_finalized): Remove.
25862 (symbol_finalized_and_needed): Rename to ...
25863 (symbol_defined_and_needed): ... update.
25864 (cgraph_analyze_functions): Update.
25865 (handle_alias_pairs): Update.
25866 (mark_functions_to_output): Update.
25867 (assemble_thunk): Update.
25868 (output_in_order): Update.
25869 (output_weakrefs): Update.
25870 (finalize_compilation_unit): Update.
25871 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
25872 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
25873 input_node, input_varpool_node): Update.
25874 * dbxout.c (dbxout_expand_expr): Update.
25875 * cgraphclones.c (cgraph_clone_node): Update.
25876 (cgraph_copy_node_for_versioning): Update.
25877 (cgraph_materialize_clone): Update.
25878 (cgraph_materialize_all_clones): Update.
25879 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
25880 propagate_pure_const, propagate_nothrow): Update.
25881 * lto-streamer-out.c (lto_output, write_symbol): Update.
25882 * ipa-utils.c (ipa_reverse_postorder): Update.
25883 * ipa-inline.c (can_inline_edge_p): Update.
25884 (update_caller_keys, ipa_inline): Update.
25885 * dwarf2out.c (reference_to_unused,
25886 premark_types_used_by_global_vars_helper): Update.
25887 * tree-eh.c (tree_could_trap_p): Update.
25888 * ipa-split.c (consider_split, execute_split_functions): Update.
25889 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
25890 has_addr_references_p): Update; move ahead in file for better
25891 readability.
25892 (process_references): Simplify.
25893 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
25894 bodies are removed.
25895 (cgraph_comdat_can_be_unshared_p): Make static.
25896 (cgraph_externally_visible_p): Update.
25897 (varpool_externally_visible_p): Update.
25898 (function_and_variable_visibility): Update.
25899 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
25900 ipa_tm_mark_force_output_node): Update.
25901 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
25902 estimate_edge_devirt_benefit, inline_generate_summary,
25903 inline_write_summary): Update.
25904 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
25905 * ipa-prop.c (ipa_compute_jump_functions): Update.
25906 (ipa_print_node_params, ipa_prop_read_section,
25907 ipa_update_after_lto_read, read_replacements_section): Update.
25908 * varasm.c (mark_decl_referenced): Update.
25909 (assemble_alias, dump_tm_clone_pairs): Update.
25910 * tree-inline.c (copy_bb): Update.
25911 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
25912 Update.
25913 * symtab.c (dump_symtab_base): Print new flags.
25914 (verify_symtab_base): Verify new flags.
25915 (symtab_alias_ultimate_target): New function.
25916 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
25917 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
25918 Update.
25919 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
25920 Update.
25921 * i386.c (ix86_get_function_versions_dispatcher,
25922 ix86_generate_version_dispatcher_body): Update.
25923 (fold_builtin_cpu): Use varpool_add_new_variable.
25924 * varpool.c (varpool_remove_initializer): Break out from ...
25925 (varpool_remove_node): ... this one.
25926 (dump_varpool_node, varpool_node_for_asm,
25927 cgraph_variable_initializer_availability, varpool_analyze_node,
25928 varpool_assemble_decl, varpool_remove_unreferenced_decls,
25929 varpool_finalize_named_section_flags, varpool_create_variable_alias):
25930 Update.
25931
25932 2013-05-29 Jan Hubicka <jh@suse.cz>
25933
25934 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
25935
25936 2013-05-29 Easwaran Raman <eraman@google.com>
25937
25938 PR tree-optimization/57442
25939 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
25940 when control exits the main loop.
25941
25942 2013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
25943
25944 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
25945 and RX600.
25946 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
25947 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
25948 * rx/t-rx: Add rx100 under multi library matches option for nofpu
25949 option.
25950
25951 2013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25952
25953 PR tree-optimization/57441
25954 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
25955 Don't limit size of incr_vec to number of candidates.
25956
25957 2013-05-29 Steve Ellcey <sellcey@imgtec.com>
25958
25959 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
25960 and mips16 directories.
25961 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
25962 (MULTILIB_DIRNAMES): Ditto.
25963 (MULTILIB_EXCEPTIONS): Add new exceptions.
25964 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
25965 (MULTILIB_DIRNAMES): Ditto.
25966 (MULTILIB_EXCEPTIONS): Add new exceptions.
25967
25968 2012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
25969 Marcus Shawcroft <marcus.shawcroft@arm.com>
25970
25971 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
25972 SYMBOL_TINY_ABSOLUTE.
25973 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
25974 SYMBOL_TINY_ABSOLUTE.
25975 (aarch64_expand_mov_immediate): Likewise.
25976 (aarch64_classify_symbol): Likewise.
25977 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
25978 Permit SYMBOL_TINY_ABSOLUTE.
25979 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
25980
25981 2013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
25982 Marcus Shawcroft <marcus.shawcroft@arm.com>
25983
25984 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
25985 Refactor if/switch. Replace gcc_assert with if.
25986
25987 2013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
25988
25989 * config/i386/i386.c (initial_ix86_tune_features): Enable
25990 FP Reassociation for AMD bdver1 and bdver2.
25991
25992 2013-05-29 Martin Jambor <mjambor@suse.cz>
25993
25994 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
25995 and IMAGPART_EXPR do not occur within other handled_components.
25996
25997 2013-05-29 Richard Biener <rguenther@suse.de>
25998
25999 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
26000 access on whether the use is in the BB we currently try to
26001 vectorize.
26002 (vect_bb_vectorization_profitable_p): Pass the BB we currently
26003 vectorize to vect_bb_slp_scalar_cost.
26004
26005 2013-05-29 Richard Biener <rguenther@suse.de>
26006
26007 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
26008 computing scalar cost offsetted by stmts that are kept live
26009 by scalar uses.
26010 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
26011 for computation of scalar cost.
26012
26013 2013-05-28 Steve Ellcey <sellcey@mips.com>
26014
26015 * config/mips/mips-cpus.def (mips32r2): Change processor type.
26016
26017 2013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
26018
26019 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
26020 array notation built-in reduction functions.
26021 * doc/passes.texi (Passes): Added documentation about changes done
26022 for Cilk Plus.
26023 * doc/invoke.texi (C Dialect Options): Added documentation about
26024 the -fcilkplus flag.
26025 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
26026 (BUILTINS_DEF): Depend on cilkplus.def.
26027 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
26028 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
26029 * cilkplus.def: New file.
26030
26031 2013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
26032
26033 PR rtl-optimization/57439
26034 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
26035
26036 2013-05-28 Easwaran Raman <eraman@google.com>
26037
26038 PR tree-optimization/57337
26039 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
26040 (find_insert_point): Correctly identify the insertion point
26041 when two statements with the same UID is compared.
26042
26043 2013-05-28 Richard Biener <rguenther@suse.de>
26044
26045 PR tree-optimization/56787
26046 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
26047 from the list of data references.
26048 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
26049 clobbers.
26050 (vect_analyze_loop_operations): Likewise.
26051 (vect_transform_loop): Remove clobbers.
26052
26053 2013-05-28 Martin Jambor <mjambor@suse.cz>
26054
26055 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
26056 and REALPART_EXPRs have scalar type.
26057
26058 2013-05-28 Richard Biener <rguenther@suse.de>
26059
26060 PR tree-optimization/57411
26061 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
26062 virtual operands.
26063 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
26064 virtual operand propagation.
26065
26066 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
26067
26068 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
26069 destination register for bmasksi_vis.
26070 (vector_init_bshuffle): Likewise.
26071 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
26072
26073 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
26074
26075 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
26076 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
26077 mode if the instruction isn't available in the original mode.
26078 * config/sparc/sparc.opt (mfix-ut699): New option.
26079 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
26080 (divdf3): Turn into expander.
26081 (divdf3_nofix): New insn.
26082 (divdf3_fix): Likewise.
26083 (divsf3): Disable if -mfix-ut699.
26084 (sqrtdf2): Turn into expander.
26085 (sqrtdf2_nofix): New insn.
26086 (sqrtdf2_fix): Likewise.
26087 (sqrtsf2): Disable if -mfix-ut699.
26088
26089 2013-05-27 Richard Biener <rguenther@suse.de>
26090
26091 PR middle-end/57412
26092 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
26093 block for the new loop.
26094
26095 2013-05-27 Richard Biener <rguenther@suse.de>
26096
26097 PR tree-optimization/57343
26098 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
26099 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
26100 (number_of_iterations_cond): Do not build the folded tree.
26101
26102 2013-05-27 Richard Biener <rguenther@suse.de>
26103
26104 Revert
26105 PR middle-end/57381
26106 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
26107 OEP_CONSTANT_ADDRESS_OF retained.
26108
26109 PR tree-optimization/57417
26110 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
26111 for unchanged base.
26112 (set_ssa_val_to): Compare addresses using
26113 get_addr_base_and_unit_offset.
26114
26115 2013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
26116
26117 PR rtl-optimization/56833
26118 * postreload.c (move2add_record_mode): New function.
26119 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
26120 (move2add_use_add2_insn): Use move2add_record_sym_value.
26121 (move2add_use_add3_insn): Likewise.
26122 (reload_cse_move2add): Use move2add_valid_value_p and
26123 move2add_record_mode. Invalidate call-clobbered and REG_INC
26124 affected regs by setting reg_mode to VOIDmode.
26125 (move2add_note_store): Don't pretend the inside of a SUBREG is
26126 the actual destination. Invalidate single/leading registers by
26127 setting reg_mode to VOIDmode.
26128 Use move2add_record_sym_value, move2add_valid_value_p and
26129 move2add_record_mode.
26130
26131 2013-05-27 Richard Biener <rguenther@suse.de>
26132
26133 PR tree-optimization/57396
26134 * tree-affine.c (double_int_constant_multiple_p): Properly
26135 return false for val == 0 and div != 0.
26136
26137 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
26138
26139 * config/mips/mips.h: Use #elif in preprocessor conditions.
26140
26141 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
26142
26143 PR target/53916
26144 * config/mips/constraints.md (kl): New constraint.
26145 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
26146 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
26147 constraint for operand 0. Split after CSE for MIPS16. Emit a move
26148 from LO for MIPS16.
26149 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
26150
26151 2013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
26152
26153 PR target/55777
26154 * config/mips/mips.c (mips_can_inline_p): New function.
26155 (TARGET_CAN_INLINE_P): Define.
26156
26157 2013-05-25 Steven Bosscher <steven@gcc.gnu.org>
26158
26159 * sched-int.h (ds_t, dw_t): Make unsigned int.
26160 Fix documentation that describes how all the ds_t bits are used.
26161 Reserve the last bit for delayed-branch scheduling.
26162 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
26163 (BITS_PER_DEP_WEAK): Fix definition and documentation.
26164 (gen_dep_weak_1): Remove prototype.
26165 * sched-deps.c (get_dep_weak_1): Make static.
26166 * target.def (speculate_insn, needs_block_p, gen_spec_check,
26167 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
26168 * doc/tm.texi: Regenerate.
26169 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
26170
26171 2013-05-24 Steven Bosscher <steven@gcc.gnu.org>
26172
26173 PR debug/56950
26174 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
26175
26176 2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
26177 Sandra Loosemore <sandra@codesourcery.com>
26178
26179 * config.gcc (powerpc-*): Allow native for with-cpu.
26180
26181 2013-05-24 Jeff Law <law@redhat.com>
26182
26183 PR tree-optimization/57124
26184 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
26185 conversion feeding a condition if the range has an overflow
26186 if -fstrict-overflow. Add warnings for when we do make the
26187 transformation.
26188
26189 2013-05-24 Dehao Chen <dehao@google.com>
26190
26191 * tree-cfg.c (locus_discrim_map): Fix the typo.
26192 (locus_discrim_hasher): Likewise.
26193 (locus_discrim_hasher::hash): Likewise.
26194 (locus_discrim_hasher::equal): Likewise.
26195
26196 2013-05-24 Martin Jambor <mjambor@suse.cz>
26197
26198 PR tree-optimization/57294
26199 * cgraph.h (ipa_record_stmt_references): Declare.
26200 * cgraphbuild.c (ipa_record_stmt_references): New function.
26201 (build_cgraph_edges): Use ipa_record_stmt_references.
26202 (rebuild_cgraph_edges): Likewise.
26203 (cgraph_rebuild_references): Likewise.
26204 * ipa-prop.c (ipa_modify_call_arguments): Discard references
26205 associated with the old statement and build references from the
26206 newly built statements.
26207 * ipa-ref.c (ipa_remove_stmt_references): New function.
26208 * ipa-ref.h (ipa_remove_stmt_references): Declare.
26209
26210 2013-05-24 Vladimir Makarov <vmakarov@redhat.com>
26211
26212 * lra-constraints.c (emit_spill_move): Use smaller mode for
26213 mem-mem moves.
26214 (check_and_process_move): Consider mem-reg moves for secondary
26215 too.
26216 (curr_insn_transform): Don't lose insns emitted before for
26217 secondary memory moves.
26218 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
26219 reg set up in the current insn.
26220
26221 2013-05-24 Dehao Chen <dehao@google.com>
26222
26223 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
26224 hash function.
26225 (locus_descrim_hasher::equal): Likewise.
26226 (build_gimple_cfg): New discriminator assignment algorithm.
26227 (make_edges): Likewise.
26228 (next_discriminator_for_locus): Likewise.
26229 (same_line_p): Likewise.
26230 (assign_discriminators): Likewise.
26231 (make_cond_expr_edges): Likewise.
26232 (make_gimple_switch_edges): Likewise.
26233 (make_goto_expr_edges): Likewise.
26234 (make_gimple_asm_edges): Likewise.
26235
26236 2013-05-24 Ian Bolton <ian.bolton@arm.com>
26237
26238 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
26239 X format specifier to only display bottom 16 bits.
26240 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
26241 immediate to match for operand 2, since it will be masked.
26242
26243 2013-05-24 Richard Biener <rguenther@suse.de>
26244
26245 PR tree-optimization/57287
26246 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
26247 all SSA names that occur in abnormal PHIs.
26248
26249 2013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
26250
26251 PR tree-ssa/57385
26252 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
26253 that index is not negative.
26254
26255 2013-05-24 Eric Botcazou <ebotcazou@adacore.com>
26256
26257 PR rtl-optimization/55177
26258 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
26259 (simplify_byte_swapping_operation): New.
26260 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
26261 (simplify_relational_operation_1): Deal with BSWAP.
26262
26263 2013-05-23 Richard Henderson <rth@redhat.com>
26264
26265 PR target/56742
26266 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
26267 (ix86_reorg): Call it.
26268
26269 2013-05-23 Uros Bizjak <ubizjak@gmail.com>
26270
26271 PR target/57379
26272 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
26273 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
26274 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
26275
26276 2013-05-23 Christian Bruel <christian.bruel@st.com>
26277
26278 PR debug/57351
26279 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
26280
26281 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
26282 Marcus Shawcroft <marcus.shawcroft@arm.com>
26283
26284 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
26285 * config/aarch64/constraints.md (Usa): Remove.
26286 * doc/md.texi (AArch64 Usa): Remove.
26287
26288 2013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
26289 Marcus Shawcroft <marcus.shawcroft@arm.com>
26290
26291 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
26292 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
26293 * config/aarch64/predicates.md (aarch64_const_address): Remove.
26294 (aarch64_mov_operand): Use aarch64_mov_operand_p.
26295
26296 2013-05-23 Vidya Praveen <vidyapraveen@arm.com>
26297
26298 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
26299 instruction (AdvSIMD).
26300 * config/aarch64/aarch64-builtins.c
26301 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
26302 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
26303
26304 2013-05-23 Martin Jambor <mjambor@suse.cz>
26305
26306 PR middle-end/57347
26307 * tree.h (contains_bitfld_component_ref_p): Declare.
26308 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
26309 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
26310 caller.
26311 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
26312 not access a bit-field. Assert all final offsets are byte-aligned.
26313
26314 2013-05-23 Richard Biener <rguenther@suse.de>
26315
26316 PR tree-optimization/57380
26317 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
26318 least one invariant or re-used load.
26319 * passes.c (init_optimization_passes): Move pass_phiprop before
26320 pass_forwprop.
26321
26322 2013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
26323
26324 * config/aarch64/aarch64-simd.md
26325 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
26326
26327 2013-05-23 Richard Biener <rguenther@suse.de>
26328
26329 PR middle-end/57381
26330 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
26331 OEP_CONSTANT_ADDRESS_OF retained.
26332
26333 2013-05-23 Jakub Jelinek <jakub@redhat.com>
26334
26335 PR middle-end/57344
26336 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
26337 don't lower unit. Handle unit not being always BITS_PER_WORD.
26338
26339 2013-05-23 Richard Biener <rguenther@suse.de>
26340
26341 PR rtl-optimization/57341
26342 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
26343 instead of true_dependence.
26344
26345 2013-05-22 David Malcolm <dmalcolm@redhat.com>
26346
26347 * bb-reorder.c (branch_threshold): Make const.
26348 (exec_threshold): Ditto.
26349
26350 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
26351 Pat Haugen <pthaugen@us.ibm.com>
26352 Peter Bergner <bergner@vnet.ibm.com>
26353
26354 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
26355 documentation for the power8 crypto builtins.
26356
26357 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
26358
26359 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
26360 macros for defining power8 builtin functions.
26361 (BU_P8V_AV_2): Likewise.
26362 (BU_P8V_AV_P): Likewise.
26363 (BU_P8V_VSX_1): Likewise.
26364 (BU_P8V_OVERLOAD_1): Likewise.
26365 (BU_P8V_OVERLOAD_2): Likewise.
26366 (BU_CRYPTO_1): Likewise.
26367 (BU_CRYPTO_2): Likewise.
26368 (BU_CRYPTO_3): Likewise.
26369 (BU_CRYPTO_OVERLOAD_1): Likewise.
26370 (BU_CRYPTO_OVERLOAD_2): Likewise.
26371 (XSCVSPDP): Fix typo, point to the correct instruction.
26372 (VCIPHER): Add power8 crypto builtins.
26373 (VCIPHERLAST): Likewise.
26374 (VNCIPHER): Likewise.
26375 (VNCIPHERLAST): Likewise.
26376 (VPMSUMB): Likewise.
26377 (VPMSUMH): Likewise.
26378 (VPMSUMW): Likewise.
26379 (VPERMXOR_V2DI): Likewise.
26380 (VPERMXOR_V4SI: Likewise.
26381 (VPERMXOR_V8HI: Likewise.
26382 (VPERMXOR_V16QI: Likewise.
26383 (VSHASIGMAW): Likewise.
26384 (VSHASIGMAD): Likewise.
26385 (VPMSUM): Likewise.
26386 (VPERMXOR): Likewise.
26387 (VSHASIGMA): Likewise.
26388
26389 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
26390 __CRYPTO__ if the crypto instructions are available.
26391 (altivec_overloaded_builtins): Add support for overloaded power8
26392 builtins.
26393
26394 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
26395 support for power8 crypto builtins.
26396 (builtin_function_type): Likewise.
26397 (altivec_init_builtins): Add support for builtins that take vector
26398 long long (V2DI) arguments.
26399
26400 * config/rs6000/crypto.md: New file, define power8 crypto
26401 instructions.
26402
26403 2013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
26404 Pat Haugen <pthaugen@us.ibm.com>
26405 Peter Bergner <bergner@vnet.ibm.com>
26406
26407 * doc/invoke.texi (Option Summary): Add power8 options.
26408 (RS/6000 and PowerPC Options): Likewise.
26409
26410 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
26411 constraints.md instead of rs6000.h. Reorder w* constraints. Add
26412 wm, wn, wr documentation.
26413
26414 * config/rs6000/constraints.md (wm): New constraint for VSX
26415 registers if direct move instructions are enabled.
26416 (wn): New constraint for no registers.
26417 (wq): New constraint for quad word even GPR registers.
26418 (wr): New constraint if 64-bit instructions are enabled.
26419 (wv): New constraint if power8 vector instructions are enabled.
26420 (wQ): New constraint for quad word memory locations.
26421
26422 * config/rs6000/predicates.md (const_0_to_15_operand): New
26423 constraint for 0..15 for crypto instructions.
26424 (gpc_reg_operand): If VSX allow registers in VSX registers as well
26425 as GPR and floating point registers.
26426 (int_reg_operand): New predicate to match only GPR registers.
26427 (base_reg_operand): New predicate to match base registers.
26428 (quad_int_reg_operand): New predicate to match even GPR registers
26429 for quad memory operations.
26430 (vsx_reg_or_cint_operand): New predicate to allow vector logical
26431 operations in both GPR and VSX registers.
26432 (quad_memory_operand): New predicate for quad memory operations.
26433 (reg_or_indexed_operand): New predicate for direct move support.
26434
26435 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
26436 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
26437 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
26438 (POWERPC_MASKS): Add power8 options.
26439 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
26440 various options.
26441
26442 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
26443 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
26444
26445 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
26446 (-mpower8-fusion): New power8 options.
26447 (-mpower8-fusion-sign): Likewise.
26448 (-mpower8-vector): Likewise.
26449 (-mcrypto): Likewise.
26450 (-mdirect-move): Likewise.
26451 (-mquad-memory): Likewise.
26452
26453 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
26454 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
26455 registers.
26456 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
26457 (rs6000_debug_vector_unit): Add p8_vector.
26458 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
26459 definitions. Also print fusion state.
26460 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
26461 (rs6000_builtin_mask_calculate): Add power8 builtin support.
26462 (rs6000_option_override_internal): Add support for power8.
26463 (rs6000_common_init_builtins): Add debugging for skipped builtins
26464 if -mdebug=builtin.
26465 (rs6000_adjust_cost): Add power8 support.
26466 (rs6000_issue_rate): Likewise.
26467 (insn_must_be_first_in_group): Likewise.
26468 (insn_must_be_last_in_group): Likewise.
26469 (force_new_group): Likewise.
26470 (rs6000_register_move_cost): Likewise.
26471 (rs6000_opt_masks): Likewise.
26472
26473 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
26474 power8 capable assembler, default to power7 options.
26475 (TARGET_DIRECT_MOVE): Likewise.
26476 (TARGET_CRYPTO): Likewise.
26477 (TARGET_P8_VECTOR): Likewise.
26478 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
26479 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
26480 (VECTOR_MEM_P8_VECTOR_P): Likewise.
26481 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
26482 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
26483 (TARGET_XSCVDPSPN): Likewise.
26484 (TARGET_XSCVSPDPN): Likewsie.
26485 (TARGET_SYNC_HI_QI): Likewise.
26486 (TARGET_SYNC_TI): Likewise.
26487 (MASK_CRYPTO): Likewise.
26488 (MASK_DIRECT_MOVE): Likewise.
26489 (MASK_P8_FUSION): Likewise.
26490 (MASK_P8_VECTOR): Likewise.
26491 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
26492 temporary used by some of the direct move instructions to get two FP
26493 temporary registers does not force creation of a stack frame.
26494 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
26495 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
26496 that any VSX registers are tieable, even if they are also an
26497 Altivec vector mode.
26498 (r6000_reg_class_enum): Add wm, wr, wv constraints.
26499 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
26500 (RS6000_BTM_CRYPTO): Likewise.
26501 (RS6000_BTM_COMMON): Likewise.
26502
26503 * config/rs6000/rs6000.md (cpu attribute): Add power8.
26504 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
26505 (enum rs6000_vector): Add power8 vector support.
26506
26507 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26508
26509 PR target/19599
26510 PR target/57340
26511 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
26512 (any_sibcall_could_use_r3): this and handle indirect calls.
26513 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
26514
26515 2013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26516
26517 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
26518
26519 2013-05-22 Richard Biener <rguenther@suse.de>
26520
26521 PR middle-end/57349
26522 * profile.c (branch_prob): Do not split blocks that are
26523 abnormally receiving from ECF_RETURNS_TWICE functions.
26524
26525 2013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
26526
26527 * recog.c (offsettable_address_addr_space_p): Fix calculation of
26528 address mode. Move pointer mode initialization to the same place.
26529
26530 2013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
26531
26532 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
26533 while it has any effect.
26534
26535 2013-05-21 Easwaran Raman <eraman@google.com>
26536
26537 PR tree-optimization/57322
26538 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
26539 UID of the statement added to the BB to be 1.
26540
26541 2013-05-21 Jakub Jelinek <jakub@redhat.com>
26542
26543 PR tree-optimization/57331
26544 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
26545 of conversion from pointer type to integral type with integer.
26546
26547 2013-05-21 Martin Jambor <mjambor@suse.cz>
26548
26549 PR lto/57289
26550 * ipa-prop.c (ipa_read_node_info): Process param_used and
26551 controlled_uses in the same order as when writing.
26552
26553 2013-05-21 Magnus Granberg <baldrick@free.fr>
26554
26555 PR plugins/56754
26556 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
26557
26558 2013-05-21 Richard Biener <rguenther@suse.de>
26559
26560 PR tree-optimization/57318
26561 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
26562 estimate stmts with side-effects as likely eliminated.
26563
26564 2013-05-21 Richard Biener <rguenther@suse.de>
26565
26566 PR tree-optimization/57330
26567 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
26568 preserve the call stmts fntype.
26569
26570 2013-05-21 Richard Biener <rguenther@suse.de>
26571
26572 PR tree-optimization/57303
26573 * tree-ssa-sink.c (statement_sink_location): Improve killing
26574 stmt detection and properly handle self-assignments.
26575
26576 2013-05-21 Christian Bruel <christian.bruel@st.com>
26577
26578 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
26579 spanning registers. LEAF_REG_REMAP is supported only for contiguous
26580 registers. Set register size out of the PARALLEL loop.
26581
26582 2013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
26583
26584 PR target/56547
26585 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
26586 (*fmasf4, *fmasf4_media): New insns.
26587
26588 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
26589
26590 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
26591 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
26592 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
26593 (mips_idiv_insns): Update the comments to say that the returned
26594 instruction counts are in units of BASE_INSN_LENGTH.
26595 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
26596 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
26597 using 2 rather than 4 as the length of indirect MIPS16 and
26598 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
26599 length of a NOP. Don't divide MIPS16 lengths by 2.
26600 (mips16_split_long_branches): Assume a branch is long if the
26601 length is greater than 4 rather than 8.
26602 * config/mips/mips.md (length): Give MIPS16 lengths directly,
26603 rather than multiplying them by 2. Multiply instruction counts
26604 by BASE_INSN_LENGTH rather than 4.
26605 (*jump_mips16, tls_get_tp_mips16_<mode>)
26606 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
26607
26608 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
26609
26610 * config/mips/mips.md (extended_mips16): Remove branch case.
26611 (length): Remove duplicated extended_mips16 test.
26612
26613 2013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
26614
26615 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
26616
26617 2013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
26618
26619 * recog.h (Recog_data): Rename to...
26620 (recog_data_d): ...this.
26621 (recog_data): Update accordingly.
26622 * recog.c (recog_data): Likewise.
26623 * reload.c (save_recog_data): Likewise.
26624 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
26625 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
26626
26627 2013-05-17 Julian Brown <julian@codesourcery.com>
26628
26629 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
26630 found in a REG_EQUAL note, invalidate it.
26631
26632 2013-05-17 Easwaran Raman <eraman@google.com>
26633
26634 * tree-ssa-reassoc.c (find_insert_point): New function.
26635 (insert_stmt_after): Likewise.
26636 (get_def_stmt): Likewise.
26637 (ensure_ops_are_available): Likewise.
26638 (not_dominated_by): Likewise.
26639 (rewrite_expr_tree): Do not move statements beyond what is
26640 necessary. Remove call to swap_ops_for_binary_stmt...
26641 (reassociate_bb): ... and move it here.
26642 (build_and_add_sum): Assign UIDs for new statements.
26643 (linearize_expr): Likewise.
26644 (do_reassoc): Renumber gimple statement UIDs.
26645
26646 2013-05-17 Jan Hubicka <jh@suse.cz>
26647
26648 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
26649 weakrefs.
26650 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
26651 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
26652 weakrefs.
26653 (output_weakrefs): Update.
26654
26655 2013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
26656 Martin Jambor <mjambor@suse.cz>
26657
26658 PR middle-end/57276
26659 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
26660 value that corresponds to the given aggval is found in values vector.
26661
26662 2013-05-17 Uros Bizjak <ubizjak@gmail.com>
26663
26664 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
26665 sse, sse2, sse3, ssse3 and sse4a flags to options.
26666
26667 2013-05-17 David Malcolm <dmalcolm@redhat.com>
26668
26669 * gengtype-state.c: (s_expr_writer): New class, to handle
26670 prettifying of output layout of s-expressions.
26671 (state_writer): New class, to write out gtype.state.
26672 (state_written_type_count): Move this variable into member data of
26673 state_writer.
26674 (s_expr_writer::s_expr_writer): New code: constructor for new class
26675 (state_writer::state_writer(): ditto
26676 (s_expr_writer::write_new_line): New function
26677 (s_expr_writer::write_any_indent): ditto
26678 (s_expr_writer::begin_s_expr): ditto
26679 (s_expr_writer::end_s_expr): ditto
26680 (write_state_fileloc): convert to method of state_writer...
26681 (state_writer:: write_state_fileloc): ...and use methods of
26682 s_expr_writer to write indentation into the gtype.state output file
26683 to visually represent the hierarchical structure of the list
26684 structures
26685 (write_state_fields): ditto, renaming to...
26686 (state_writer::write_state_fields)
26687 (write_state_a_string): ditto, renaming to...
26688 (state_writer::write_state_a_string)
26689 (write_state_string_option): ditto, renaming to...
26690 (state_writer::write_state_string_option)
26691 (write_state_type_option): ditto, renaming to...
26692 (state_writer::write_state_type_option)
26693 (write_state_nested_option): ditto, renaming to...
26694 (state_writer::write_state_nested_option)
26695 (write_state_option): ditto, renaming to...
26696 (state_writer::write_state_option)
26697 (write_state_options): ditto, renaming to...
26698 (state_writer::write_state_options)
26699 (write_state_lang_bitmap): ditto, renaming to...
26700 (state_writer::write_state_lang_bitmap)
26701 (write_state_version): ditto, renaming to...
26702 (state_writer::write_state_version)
26703 (write_state_scalar_type): ditto, renaming to...
26704 (state_writer::write_state_scalar_type)
26705 (write_state_string_type): ditto, renaming to...
26706 (state_writer::write_state_string_type)
26707 (write_state_undefined_type): ditto, renaming to...
26708 (state_writer::write_state_undefined_type)
26709 (write_state_struct_union_type): ditto, renaming to...
26710 (state_writer::write_state_struct_union_type)
26711 (write_state_struct_type): ditto, renaming to...
26712 (state_writer::write_state_struct_type)
26713 (write_state_user_struct_type): ditto, renaming to...
26714 (state_writer::write_state_user_struct_type)
26715 (write_state_lang_struct_type): ditto, renaming to...
26716 (state_writer::write_state_lang_struct_type)
26717 (write_state_param_struct_type): ditto, renaming to...
26718 (state_writer::write_state_param_struct_type)
26719 (write_state_pointer_type): ditto, renaming to...
26720 (state_writer::write_state_pointer_type)
26721 (write_state_array_type): ditto, renaming to...
26722 (state_writer::write_state_array_type)
26723 (write_state_gc_used): ditto, renaming to...
26724 (state_writer::write_state_gc_used)
26725 (write_state_common_type_content): ditto, renaming to...
26726 (state_writer::write_state_common_type_content)
26727 (write_state_type): ditto, renaming to...
26728 (state_writer::write_state_type)
26729 (write_state_pair_list): ditto, renaming to...
26730 (state_writer::write_state_pair_list)
26731 (write_state_pair): ditto, renaming to...
26732 (state_writer::write_state_pair)
26733 (write_state_typedefs): ditto, renaming to...
26734 (state_writer::write_state_typedefs)
26735 (write_state_structures): ditto, renaming to...
26736 (state_writer::write_state_structures)
26737 (write_state_param_structs): ditto, renaming to...
26738 (state_writer::write_state_param_structs)
26739 (write_state_variables): ditto, renaming to...
26740 (state_writer::write_state_variables)
26741 (write_state_srcdir): ditto, renaming to...
26742 (state_writer::write_state_srcdir)
26743 (write_state_files_list): ditto, renaming to...
26744 (state_writer::write_state_files_list)
26745 (write_state_languages): ditto, renaming to...
26746 (state_writer::write_state_languages)
26747 (write_state): create a state_writer instance and use it when
26748 writing out the state file
26749
26750 2013-05-17 Mike Stump <mikestump@comcast.net>
26751
26752 PR rtl-optimization/57304
26753 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
26754 accessing DF_REF_REAL_LOC.
26755
26756 2013-05-17 Jakub Jelinek <jakub@redhat.com>
26757
26758 PR rtl-optimization/57281
26759 PR rtl-optimization/57300
26760 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
26761 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
26762 what the other splitter did if the registers are dead.
26763
26764 2013-05-17 Richard Biener <rguenther@suse.de>
26765
26766 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
26767 MEM_REF offsets.
26768
26769 2013-05-17 Jakub Jelinek <jakub@redhat.com>
26770
26771 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
26772 linking.
26773
26774 2013-05-17 Marek Polacek <polacek@redhat.com>
26775
26776 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
26777 length when doing non-zero store of storing '\0' to '\0'.
26778
26779 2013-05-17 Jakub Jelinek <jakub@redhat.com>
26780
26781 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
26782 vect_external_def oprnd1 with loop_vinfo, try to emit
26783 optional cast, negation and and stmts on the loop preheader
26784 edge instead of into the pattern def seq.
26785
26786 PR tree-optimization/57051
26787 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
26788 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
26789
26790 2013-05-16 Nick Clifton <nickc@redhat.com>
26791
26792 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
26793 (rl78_is_naked_func): New function.
26794 (rl78_expand_prologue): Skip prologue generation for naked functions.
26795 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
26796 * doc/extend.texi (naked): Add RL78 to the list of processors
26797 that supports this attribute.
26798
26799 2013-05-16 Jeff Law <law@redhat.com>
26800
26801 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
26802
26803 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
26804
26805 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
26806 cache parameters using detect_caches_amd also for CYRIX,
26807 NSC and TM2 signatures.
26808
26809 2013-05-16 Uros Bizjak <ubizjak@gmail.com>
26810 Dzianis Kahanovich <mahatma@eu.by>
26811
26812 PR target/45359
26813 PR target/46396
26814 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
26815 VIA/Centaur processors and determine their cache parameters
26816 using detect_caches_amd.
26817
26818 2013-05-16 Teresa Johnson <tejohnson@google.com>
26819
26820 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
26821 (rtl_verify_edges): New function.
26822 (rtl_verify_bb_insns): Ditto.
26823 (rtl_verify_bb_pointers): Ditto.
26824 (rtl_verify_bb_insn_chain): Ditto.
26825 (rtl_verify_fallthru): Ditto.
26826 (rtl_verify_bb_layout): Ditto.
26827 (rtl_verify_flow_info_1): Outline checks into new functions.
26828 (rtl_verify_flow_info): Ditto.
26829
26830 2013-05-16 Steve Ellcey <sellcey@imgtec.com>
26831
26832 * cfghooks.c (copy_bbs): Add update_dominance argument.
26833 * cfghooks.h (copy_bbs): Update prototype.
26834 * tree-cfg.c (gimple_duplicate_sese_region):
26835 Add update_dominance argument.
26836 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
26837 * tree-ssa-loop-ch.c (copy_loop_headers): Update
26838 gimple_duplicate_sese_region call.
26839 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
26840 Update copy_bbs call.
26841 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
26842 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
26843
26844 2013-05-16 Jakub Jelinek <jakub@redhat.com>
26845
26846 * tree-vectorizer.h (NUM_PATTERNS): Increment.
26847 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
26848 vect_recog_rotate_pattern.
26849 (vect_recog_rotate_pattern): New function.
26850
26851 2013-05-16 Jason Merrill <jason@redhat.com>
26852
26853 * Makefile.in (LLINKER): New variable.
26854 (mostlyclean): Remove link mutex.
26855 * configure.ac: Handle --enable-link-mutex.
26856 * lock-and-run.sh: New script.
26857
26858 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26859
26860 PR target/19599
26861 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
26862 for NULL decl.
26863
26864 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26865
26866 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
26867
26868 2013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
26869
26870 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
26871 * config/arm/arm.c (next_consecutive_mem): New function.
26872 (gen_movmem_ldrd_strd): Likewise.
26873 * config/arm/arm.md (movmemqi): Update condition and code.
26874 (unaligned_loaddi, unaligned_storedi): New patterns.
26875
26876 2013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26877
26878 * config.gcc: Obsolete *-*-solaris2.9*.
26879 * doc/install.texi (Specific, *-*-solaris2*): Document it.
26880
26881 2013-05-16 Richard Biener <rguenther@suse.de>
26882
26883 * passes.c (init_optimization_passes): Move pass_parallelize_loops
26884 earlier, after GRAPHITE transforms and IV canonicalization.
26885
26886 2013-05-16 Jakub Jelinek <jakub@redhat.com>
26887
26888 * omp-low.c (extract_omp_for_data): For collapsed loops,
26889 if at least one of the loops is known at compile time to
26890 iterate zero times, set count to 0.
26891 (expand_omp_regimplify_p): New function.
26892 (expand_omp_for_generic): For collapsed loops, if at least
26893 one of the loops isn't known to iterate at least once,
26894 add runtime check with setting count to 0.
26895 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
26896 For unsigned types if it isn't known at compile time that
26897 the loop will iterate at least once, add runtime check to bypass
26898 the whole loop if initial condition isn't true.
26899
26900 2013-05-16 Nathan Sidwell <nathan@codesourcery.com>
26901
26902 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
26903
26904 2013-05-16 Marc Glisse <marc.glisse@inria.fr>
26905
26906 PR middle-end/57286
26907 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
26908 transformations to avoid an infinite loop.
26909
26910 2013-05-16 Marek Polacek <polacek@redhat.com>
26911
26912 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
26913
26914 2013-05-15 Leif Ekblad <leif@rdos.net>
26915
26916 * config/i386/i386.c (ix86_decompose_address): Use
26917 DEFAULT_TLS_SEG_REG to access TLS segment register.
26918 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
26919 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
26920 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
26921
26922 2013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
26923
26924 PR target/57260
26925 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
26926 sibling calls to functions that would normally be lazily bound,
26927 unless $gp is call-clobbered.
26928
26929 2013-05-15 Uros Bizjak <ubizjak@gmail.com>
26930
26931 * config/i386/i386.c (ix86_option_override_internal): Update
26932 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
26933 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
26934 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
26935 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
26936 of TARGET_3DNOW.
26937 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
26938
26939 2013-05-15 Andreas Schwab <schwab@suse.de>
26940
26941 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
26942 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
26943 third operand.
26944
26945 2013-05-15 Teresa Johnson <tejohnson@google.com>
26946
26947 * loop-unroll.c (report_unroll_peel): Check decision before
26948 emitting unroll/peel message.
26949
26950 2013-05-15 Teresa Johnson <tejohnson@google.com>
26951
26952 * function.h (has_bb_partition): New rtl_data flag.
26953 (bb_reorder_complete): Ditto.
26954 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
26955 instead of flag_reorder_blocks_and_partition.
26956 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
26957 with some enhancements.
26958 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
26959 * bb-reorder.c (connect_traces): Check for has_bb_partition
26960 instead of flag_reorder_blocks_and_partition.
26961 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
26962 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
26963 verify_hot_cold_block_grouping.
26964 (partition_hot_cold_basic_blocks): Set has_bb_partition.
26965
26966 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26967
26968 PR target/19599
26969 * config/arm/predicates.md (call_insn_operand): New predicate.
26970 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
26971 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
26972 if insn is not a tail call.
26973 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
26974 registers.
26975 * config/arm/arm.h (enum reg_class): New caller save register class.
26976 (REG_CLASS_NAMES): Likewise.
26977 (REG_CLASS_CONTENTS): Likewise.
26978 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
26979 without decls.
26980
26981 2013-05-15 Richard Biener <rguenther@suse.de>
26982
26983 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
26984 of MSG_OPTIMIZED_LOCATIONS.
26985 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
26986 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
26987 message.
26988 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
26989 of MSG_OPTIMIZED_LOCATIONS.
26990 (execute_vect_slp): Likewise.
26991 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
26992 (vect_create_cond_for_alias_checks): Likewise.
26993 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
26994 (vect_recog_widen_mult_pattern): Likewise.
26995 (vect_recog_widen_sum_pattern): Likewise.
26996 (vect_recog_over_widening_pattern): Likewise.
26997 (vect_recog_widen_shift_pattern): Likewise.
26998 (vect_recog_vector_vector_shift_pattern): Likewise.
26999 (vect_recog_divmod_pattern): Likewise.
27000 (vect_recog_mixed_size_cond_pattern): Likewise.
27001 (vect_recog_bool_pattern): Likewise.
27002 (vect_pattern_recog_1): Likewise.
27003
27004 2013-05-15 Martin Jambor <mjambor@suse.cz>
27005
27006 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
27007 non-functions to builtin_unreachable.
27008 * ipa-inline-transform.c (inline_call): Do not assert estimates were
27009 correct when new direct edges were discovered.
27010
27011 2013-05-15 Martin Jambor <mjambor@suse.cz>
27012
27013 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
27014 header, print symbol order instead of node uid, print more information
27015 about indirect edge targets.
27016 (ipa_make_edge_direct_to_target): Print symbol order instead of node
27017 uids.
27018 (ipa_make_edge_direct_to_target): Likewise.
27019 (remove_described_reference): Likewise.
27020 (propagate_controlled_uses): Likewise.
27021 (ipa_print_node_params): Also print symbol order.
27022 (ipcp_transform_function): Print symbol order instead of node uids.
27023 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
27024 (cgraph_get_create_real_symbol_node): Likewise.
27025 * ipa-cp.c (print_lattice): Likewise.
27026 (print_all_lattices): Likewise.
27027 (determine_versionability): Likewise.
27028 (initialize_node_lattices): Likewise.
27029 (estimate_local_effects): Likewise.
27030 (update_profiling_info): Likewise.
27031 (create_specialized_node): Likewise.
27032 (perhaps_add_new_callers): Likewise.
27033 (decide_about_value): Likewise.
27034 (decide_whether_version_node): Likewise.
27035 (identify_dead_nodes): Likewise.
27036 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
27037 (dump_inline_summary): Likewise.
27038 (estimate_node_size_and_time): Likewise.
27039 (inline_analyze_function): Likewise.
27040 * ipa-inline.c (report_inline_failed_reason): Likewise.
27041 (want_early_inline_function_p): Likewise.
27042 (edge_badness): Likewise.
27043 (update_edge_key): Likewise.
27044 (inline_small_functions): Likewise. Add dumping of order to two other
27045 dumps.
27046 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
27047 instead of node uids.
27048 (propagate_pure_const): Likewise.
27049 (propagate_pure_const): Likewise.
27050 * ipa-utils.c (dump_cgraph_node_set): Likewise.
27051 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
27052 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
27053 of node uids.
27054 * tree-pretty-print.c (dump_function_header): Likewise.
27055 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
27056 Print symbol order instead of node uids.
27057
27058 2013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27059
27060 * config/s390/s390.c (s390_register_move_cost): Don't impose the
27061 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
27062
27063 2013-05-15 Richard Biener <rguenther@suse.de>
27064
27065 PR tree-optimization/57275
27066 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
27067 return value for fail to do runtime alias checks for gather loads.
27068
27069 2013-05-15 Jan Hubicka <jh@suse.cz>
27070
27071 PR lto/57038
27072 PR lto/47375
27073 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
27074 weakrefs are not external.
27075 (lto_symtab_merge_decls): Fix thinko when dealing with
27076 non-lto_symtab decls.
27077 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
27078 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
27079 * varpool.c (dump_varpool_node): Dump more flags.
27080
27081 2013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
27082
27083 * config/i386/i386.c (processor_alias_table): Add instruction
27084 FSGSBASE for AMD bdver3 architecture.
27085
27086 2013-05-14 Jakub Jelinek <jakub@redhat.com>
27087
27088 * tree.c (warn_deprecated_use): Print file:line using locus color.
27089 * diagnostic.c (diagnostic_report_current_module): Print file:line
27090 and file:line:column using locus color.
27091
27092 2013-05-14 Mike Stump <mikestump@comcast.net>
27093
27094 * gdbinit.in: Add __null.
27095
27096 2013-05-14 Mike Stump <mikestump@comcast.net>
27097
27098 * recog.h: Rename struct recog_data to Recog_data.
27099 * recog.c: Likewise.
27100 * reload.c (can_reload_into): Likewise.
27101 * config/picochip/picochip.c: Likewise.
27102
27103 2013-05-14 Mike Stump <mikestump@comcast.net>
27104
27105 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
27106
27107 2013-05-14 Steven Bosscher <steven@gcc.gnu.org>
27108
27109 * resource.h (struct resources): Remove unch_memory member.
27110 (CLEAR_RESOURCE): Don't clear unch_memory.
27111 * resource.c (mark_referenced_resources): Don't set it.
27112 (mark_set_resources): Likewise.
27113 (mark_target_live_regs): Don't clear it.
27114 (init_resource_info): Likewise.
27115 * reorg.c (resource_conflicts_p): Don't compare it.
27116 (redundant_insn): Don't set it.
27117
27118 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
27119 Remove prototypes.
27120 * emit-rtl.c (next_label): Remove unused function.
27121 (skip_consecutive_labels, link_cc0_insns): Move to ...
27122 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
27123 only place where these functions are used, and make them static.
27124
27125 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
27126
27127 * fold-const.c (fold_negate_expr): Handle vectors.
27128 (fold_truth_not_expr): Make it static.
27129 (fold_invert_truthvalue): New static function.
27130 (invert_truthvalue_loc): Handle vectors. Do not call
27131 fold_truth_not_expr directly.
27132 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
27133 <TRUTH_NOT_EXPR>: Do not cast to boolean.
27134 (fold_comparison): Handle vector constants.
27135 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
27136 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
27137 * tree.h (fold_truth_not_expr): Remove declaration.
27138
27139 2013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
27140
27141 * config/aarch64/aarch64-simd.md
27142 (aarch64_vcond_internal<mode>): Rename to...
27143 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
27144 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
27145 float modes. Clarify all iterator modes.
27146 (vcond<mode><mode>): Use new name for vcond expanders.
27147 (vcond<v_cmp_result><mode>): Likewise.
27148 (vcondu<mode><mode>: Likewise.
27149 * config/aarch64/iterators.md (VDQF_COND): New.
27150
27151 2013-05-14 Marc Glisse <marc.glisse@inria.fr>
27152
27153 PR bootstrap/57266
27154 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
27155 variable for the shift amount. Check that we shift by non-negative
27156 amounts.
27157
27158 2013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
27159
27160 PR target/42017
27161 * config/arm/arm.h (EPILOGUE_USES): Only return true
27162 for LR_REGNUM after epilogue_completed.
27163
27164 2013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
27165
27166 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
27167 is error_mark_node.
27168
27169 2013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27170
27171 PR target/57261
27172 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
27173 and Solaris 11+/x86 with gld.
27174 * configure: Regenerate.
27175
27176 2013-05-14 Jakub Jelinek <jakub@redhat.com>
27177
27178 * expmed.c (expand_shift_1): Canonicalize rotates by
27179 constant bitsize / 2 to bitsize - 1.
27180 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
27181 case ROTATERT>: Likewise.
27182
27183 Revert:
27184 2013-05-10 Jakub Jelinek <jakub@redhat.com>
27185
27186 * config/i386/i386.md (rotateinv): New code attr.
27187 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
27188 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
27189 roll $31, %eax, etc.
27190
27191 2013-05-14 Richard Biener <rguenther@suse.de>
27192
27193 PR middle-end/57235
27194 * tree-eh.c (sink_clobbers): Give up for successors with
27195 multiple predecessors and no virtual uses.
27196
27197 2013-05-14 Eric Botcazou <ebotcazou@adacore.com>
27198
27199 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
27200 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
27201
27202 2013-05-14 Jakub Jelinek <jakub@redhat.com>
27203
27204 PR middle-end/57251
27205 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
27206 the case when both op0 and op1 have VOIDmode.
27207
27208 2013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
27209
27210 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
27211 in multiply-accumulate mode.
27212
27213 2013-05-13 Guozhi Wei <carrot@google.com>
27214
27215 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
27216
27217 2013-05-13 Kai Tietz <ktietz@redhat.com>
27218
27219 PR target/56975
27220 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
27221 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
27222 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
27223 * config/i386/i386.c (ix86_option_override_internal): Likewise.
27224 (ix86_expand_prologue): Likewise.
27225 (ix86_expand_split_stack_prologue): Likewise.
27226 (legitimate_pic_address_disp_p): Likewise.
27227 (legitimize_pic_address): Likewise.
27228 (legitimize_tls_address): Likewise.
27229 (legitimize_pe_coff_symbol): Likewise.
27230 (output_pic_addr_const): Likewise.
27231 (construct_plt_address): Likewise.
27232 (ix86_expand_call): Likewise.
27233 (x86_output_mi_thunk): Likewise.
27234 (x86_function_profiler): Likewise.
27235
27236 2013-05-13 Sofiane Naci <sofiane.naci@arm.com>
27237
27238 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
27239 similar switch cases.
27240 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
27241 (aarch64_simd_mov_to_<mode>low): Delete.
27242 (aarch64_simd_mov_to_<mode>high): Delete.
27243 (move_lo_quad_<mode>): Add w<-r alternative.
27244 (aarch64_simd_move_hi_quad_<mode>): Likewise.
27245 (aarch64_simd_mov_from_*): Update type attribute.
27246 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
27247 statement.
27248
27249 2013-05-13 Jan Hubicka <jh@suse.cz>
27250
27251 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
27252 * config/i386/i386.c (ix86_compute_frame_layout,
27253 ix86_expand_epilogue, emit_i387_cw_initialization,
27254 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
27255 ix86_local_alignment): Fix use of size/speed predicates.
27256
27257 2013-05-13 Jakub Jelinek <jakub@redhat.com>
27258
27259 PR tree-optimization/45216
27260 PR tree-optimization/57157
27261 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
27262 the (-Y) & (B - 1) variant if OP is |.
27263 * expmed.c (expand_shift_1): For rotations by const0_rtx just
27264 return shifted. Use (-op1) & (prec - 1) as other_amount
27265 instead of prec - op1.
27266
27267 2013-05-13 Martin Jambor <mjambor@suse.cz>
27268
27269 PR middle-end/42371
27270 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
27271 (ipa_constant_data): New type.
27272 (ipa_jump_func): Use ipa_constant_data to hold information about
27273 constant jump functions.
27274 (ipa_get_jf_constant): Adjust to jump function type changes.
27275 (ipa_get_jf_constant_rdesc): New function.
27276 (ipa_param_descriptor): New field controlled_uses.
27277 (ipa_get_controlled_uses): New function.
27278 (ipa_set_controlled_uses): Likewise.
27279 * ipa-ref.h (ipa_find_reference): Declare.
27280 * ipa-prop.c (ipa_cst_ref_desc): New type.
27281 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
27282 changes.
27283 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
27284 New parameter cs. Adjust all callers.
27285 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
27286 (remove_described_reference): New function.
27287 (jfunc_rdesc_usable): Likewise.
27288 (try_make_edge_direct_simple_call): Decrement controlled use count,
27289 attempt to remove reference if it hits zero.
27290 (combine_controlled_uses_counters): New function.
27291 (propagate_controlled_uses): Likewise.
27292 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
27293 (ipa_edge_duplication_hook): Duplicate reference descriptions.
27294 (ipa_print_node_params): Print described use counter.
27295 (ipa_write_jump_function): Adjust to jump function type changes.
27296 (ipa_read_jump_function): New parameter CS, pass it to
27297 ipa_set_jf_constant. Adjust caller.
27298 (ipa_write_node_info): Stream controlled use count
27299 (ipa_read_node_info): Likewise.
27300 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
27301 asserting.
27302 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
27303 count. Remove cloning-added reference if it reaches zero.
27304 * ipa-ref.c (ipa_find_reference): New function.
27305
27306 2013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
27307
27308 * config/i386/i386.c (processor_target_table): Modified default
27309 alignment values for AMD BD and BT architectures.
27310
27311 2013-05-13 Marc Glisse <marc.glisse@inria.fr>
27312
27313 * tree-vect-generic.c (uniform_vector_p): Move ...
27314 * tree.c (uniform_vector_p): ... here.
27315 * tree.h (uniform_vector_p): Declare it.
27316 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
27317 into a scalar.
27318
27319 2013-05-13 Jakub Jelinek <jakub@redhat.com>
27320
27321 PR tree-optimization/57230
27322 * tree-ssa-strlen.c (handle_char_store): Record length for
27323 array store from STRING_CST.
27324
27325 PR tree-optimization/57230
27326 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
27327 check.
27328
27329 2013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
27330
27331 * config/epiphany/epiphany.c (epiphany_init): Check size of
27332 NUM_MODES_FOR_MODE_SWITCHING.
27333 (epiphany_expand_prologue):
27334 Remove CONFIG_REGNUM initial value handling code.
27335 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
27336 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
27337 (emit_set_fp_mode, epiphany_mode_after): Likewise.
27338 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
27339 Don't return 1 for FP_MODE_NONE.
27340 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
27341 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
27342 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
27343 * config/epiphany/epiphany.md (save_config): New pattern.
27344
27345 2013-05-12 Uros Bizjak <ubizjak@gmail.com>
27346
27347 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
27348
27349 2013-05-10 Uros Bizjak <ubizjak@gmail.com>
27350
27351 * config/i386/i386.md (memory): Handle sseishft1.
27352 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
27353 (*vec_extractv2di_1): Ditto.
27354
27355 2013-05-10 Vladimir Makarov <vmakarov@redhat.com>
27356
27357 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
27358 saved registers.
27359
27360 2013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
27361
27362 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
27363 Add mthumb/march=armv7-a multilib.
27364 Add mthumb/march=armv7-r multilib.
27365 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
27366
27367 2013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
27368
27369 * config/v850/t-rtems: Add more multilibs.
27370
27371 2013-05-10 Richard Biener <rguenther@suse.de>
27372
27373 PR tree-optimization/57214
27374 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
27375 not propagate from SSA names that occur in abnormal PHI nodes.
27376
27377 2013-05-10 Marc Glisse <marc.glisse@inria.fr>
27378
27379 * stor-layout.c (element_precision): New function.
27380 * machmode.h (element_precision): Declare it.
27381 * tree.c (build_minus_one_cst): New function.
27382 (element_precision): Likewise.
27383 * tree.h (build_minus_one_cst): Declare new function.
27384 (element_precision): Likewise.
27385 * fold-const.c (operand_equal_p): Use element_precision.
27386 (fold_binary_loc): Handle vector types.
27387 * convert.c (convert_to_integer): Use element_precision.
27388 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
27389 separately.
27390
27391 2013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
27392
27393 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
27394 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
27395 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
27396 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
27397 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
27398 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
27399 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
27400 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
27401 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
27402 (Uuw8): New constraints.
27403 (Usb4): Move into alphabetical order.
27404 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
27405 (sd8_operand, ub8_operand, uw8_operand): New predicates.
27406 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
27407 previously unnamed patterns.
27408 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
27409 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
27410 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
27411 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
27412 of set_attr_alternative/if_then_else. Use extended_mips16 instead
27413 of specific lengths.
27414
27415 2013-05-10 Jakub Jelinek <jakub@redhat.com>
27416
27417 * config/i386/i386.md (rotateinv): New code attr.
27418 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
27419 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
27420 roll $31, %eax, etc.
27421
27422 PR tree-optimization/45216
27423 PR tree-optimization/57157
27424 * tree-ssa-forwprop.c (simplify_rotate): New function.
27425 (ssa_forward_propagate_and_combine): Call it.
27426
27427 2013-05-10 Richard Biener <rguenther@suse.de>
27428
27429 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
27430 disable peeling when we version for aliasing.
27431 (vector_alignment_reachable_p): Honor explicit user alignment.
27432 (vect_supportable_dr_alignment): Likewise.
27433 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
27434 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
27435 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
27436 then peeling to arrange for the cost-model check to come first.
27437
27438 2013-05-10 Alan Modra <amodra@gmail.com>
27439
27440 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
27441 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
27442 * configure: Regenerate.
27443
27444 2013-05-10 Alan Modra <amodra@gmail.com>
27445
27446 PR target/55033
27447 * varasm.c (default_elf_select_section): Move !DECL_P check..
27448 (get_named_section): ..to here before calling get_section_name.
27449 Adjust assertion.
27450 (default_section_type_flags): Add DECL_P check.
27451 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
27452 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
27453
27454 2013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
27455
27456 * config/epiphany/epiphany.c (epiphany_expand_prologue):
27457 When using gen_stack_adjust_str with a register offset, add a
27458 REG_FRAME_RELATED_EXPR note.
27459
27460 2013-05-09 Uros Bizjak <ubizjak@gmail.com>
27461
27462 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
27463 (*vec_extractv4si_zext_mem): Ditto.
27464 (*vec_extractv2di): Add 0->x and x->x alternatives.
27465 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
27466 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
27467
27468 2013-05-09 Jason Merrill <jason@redhat.com>
27469
27470 N3639 C++1y VLA support
27471 * gimplify.c (gimplify_vla_decl): Don't touch an existing
27472 DECL_VALUE_EXPR.
27473
27474 * tree.c (build_constructor_va): New.
27475 * tree.h: Declare it.
27476
27477 2013-05-09 Martin Jambor <mjambor@suse.cz>
27478
27479 PR lto/57084
27480 * gimple-fold.c (canonicalize_constructor_val): Call
27481 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
27482
27483 2013-05-09 Jan Hubicka <jh@suse.cz>
27484 Richard Biener <rguenther@suse.de>
27485
27486 PR lto/54095
27487 * symtab.c (symtab_make_decl_local): Do not add private names.
27488
27489 2013-05-09 Jan Hubicka <jh@suse.cz>
27490
27491 PR lto/54095
27492 * symtab.c (insert_to_assembler_name_hash): Handle clones.
27493 (unlink_from_assembler_name_hash): Likewise.
27494 (symtab_prevail_in_asm_name_hash, symtab_register_node,
27495 symtab_unregister_node, symtab_initialize_asm_name_hash,
27496 change_decl_assembler_name): Update.
27497
27498 2013-05-09 Sofiane Naci <sofiane.naci@arm.com>
27499
27500 * config/aarch64/aarch64.md: New movtf split.
27501 (*movtf_aarch64): Update.
27502 (aarch64_movdi_tilow): Handle TF modes and rename to
27503 aarch64_movdi_<mode>low.
27504 (aarch64_movdi_tihigh): Handle TF modes and rename to
27505 aarch64_movdi_<mode>high
27506 (aarch64_movtihigh_di): Handle TF modes and rename to
27507 aarch64_mov<mode>high_di
27508 (aarch64_movtilow_di): Handle TF modes and rename to
27509 aarch64_mov<mode>low_di
27510 (aarch64_movtilow_tilow): Remove spurious whitespace.
27511 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
27512 splits.
27513 (aarch64_print_operand): Update.
27514
27515 2013-05-09 Alan Modra <amodra@gmail.com>
27516
27517 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
27518 powerpc64le.
27519 * configure: Regenerate.
27520
27521 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
27522
27523 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
27524 splitter preparation statements.
27525 * config/i386/sse.md (*vec_extract* splitters): Ditto.
27526 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
27527 adjust_address_nv.
27528
27529 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27530
27531 * gimple-ssa-strength-reduction.c (count_candidates): Change
27532 return value to int.
27533 (analyze_candidates_and_replace): Change type of length to int.
27534
27535 2013-05-08 Uros Bizjak <ubizjak@gmail.com>
27536
27537 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
27538 (*vec_extract<mode>): Use VI12_128 mode iterator.
27539 (*vec_extract<mode>_mem): Ditto.
27540 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
27541 attribute.
27542
27543 2013-05-08 Diego Novillo <dnovillo@google.com>
27544
27545 PR bootstrap/54659
27546
27547 Revert:
27548 2012-08-17 Diego Novillo <dnovillo@google.com>
27549
27550 PR bootstrap/54281
27551 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
27552 * config.in: Regenerate.
27553 * configure: Regenerate.
27554 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
27555
27556 2013-05-08 Jan Hubicka <jh@suse.cz>
27557
27558 PR lto/54095
27559 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
27560 * cgraph.h (symtab_node_base): Add unique_name.
27561 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
27562 input_overwrite_node, input_varpool_node): Stream unique_name.
27563 * cgraphclones.c (cgraph_create_virtual_clone,
27564 cgraph_function_versioning): Set unique_name.
27565 * ipa.c (function_and_variable_visibility): Set unique_name.
27566
27567 2013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27568
27569 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
27570 (alloc_cand_and_find_basis): Restrict conditional candidate
27571 processing to CAND_MULTs.
27572
27573 2013-05-08 Jan Hubicka <jh@suse.cz>
27574
27575 PR lto/54095
27576 lto-symtab.c (lto_symtab_symbol_p): New function.
27577 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
27578 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
27579 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
27580 Skip static symbols.
27581
27582 2013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
27583
27584 PR tree-optimization/57200
27585 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
27586 Only call inform if the preceding warning_at returns true.
27587
27588 2013-05-07 Han Shen <shenhan@google.com>
27589
27590 * cfgexpand.c (record_or_union_type_has_array_p): New function.
27591 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
27592 * common.opt (fstack-protector-strong): New option.
27593 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
27594 * doc/invoke.texi (Optimization Options): Document
27595 "-fstack-protector-strong".
27596 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
27597
27598 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
27599
27600 * config/mips/mips.c (mips_machine_reorg2): Return 0.
27601
27602 2013-05-07 Vladimir Makarov <vmakarov@redhat.com>
27603
27604 * ira.c (update_equiv_regs): Add insn having equiv memory even if
27605 it is not lhs of the insn.
27606 (setup_reg_equiv): Remove insn having equiv memory which it is not
27607 lhs of the insn.
27608 * lra-constraints.c (process_address): Try to improve generation
27609 code for address base + disp.
27610 (lra_constraints): Make correct the code for checking insn setting
27611 up backward equivalence. Remove insn only if it is in the init
27612 insn list.
27613 * lra-eliminations.c (update_reg_eliminate): Change return value.
27614 (lra_eliminate): Use the result.
27615
27616 2013-05-07 Uros Bizjak <ubizjak@gmail.com>
27617
27618 * config/i386/sse.md (ssescalarnummask): New mode attribute.
27619 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
27620 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
27621 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
27622 register target operands.
27623 (*vec_extractv8hi_sse2): New pattern.
27624 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
27625 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
27626 (*vec_extract<mode>_mem): New insn and split pattern.
27627
27628 2013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
27629
27630 * config/arm/arm.c (arm_asan_shadow_offset): New function.
27631 (TARGET_ASAN_SHADOW_OFFSET): Define.
27632 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
27633 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
27634
27635 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27636
27637 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
27638 (incr_vec_index): Return -1 if increment not found.
27639 (create_add_on_incoming_edge): Assert if increment not found.
27640 (record_increment): Limit number of increments recorded.
27641 (all_phi_incrs_profitable): Return false if an increment not found.
27642 (replace_profitable_candidates): Don't process increments that were
27643 not recorded.
27644 (analyze_candidates_and_replace): Limit size of incr_vec.
27645
27646 2013-05-07 Richard Biener <rguenther@suse.de>
27647
27648 * calls.c (special_function_p): setjmp-like functions are leaf.
27649 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
27650 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
27651
27652 2013-05-07 Sofiane Naci <sofiane.naci@arm.com>
27653
27654 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
27655 (aarch64_simd_mov<mode>): New expander.
27656 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
27657 (aarch64_simd_mov_to_<mode>high): Likewise.
27658 (aarch64_simd_mov_from_<mode>low): Likewise.
27659 (aarch64_simd_mov_from_<mode>high): Likewise.
27660 (aarch64_dup_lane<mode>): Update.
27661 (aarch64_dup_lanedi): New instruction pattern.
27662 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
27663 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
27664
27665 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27666
27667 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
27668 (replace_mult_candidate): Remove unnecessary argument; remove
27669 unnecessary parameter from call to introduce_cast_before_cand.
27670 (replace_unconditional_candidate): Remove unnecessary parameter
27671 from call to replace_mult_candidate.
27672 (replace_conditional_candidate): Likewise.
27673 (insert_initializers): Use make_temp_ssa_name.
27674 (introduce_cast_before_cand): Remove unnecessary argument; use
27675 make_temp_ssa_name.
27676 (replace_one_candidate): Remove unnecessary argument; remove
27677 unnecessary parameter from calls to introduce_cast_before_cand.
27678 (replace_profitable_candidates): Remove unnecessary parameters
27679 from calls to replace_one_candidate.
27680
27681 2013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27682
27683 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
27684 phi def as possibly hiding a basis for a CAND_ADD whose operands
27685 have been commuted in the analysis.
27686 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
27687
27688 2013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
27689
27690 * config/aarch64/aarch64.md
27691 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
27692 shift value between 0-4.
27693
27694 2013-05-07 Richard Biener <rguenther@suse.de>
27695
27696 * double-int.h (rshift): New overload.
27697 * double-int.c (rshift): New function.
27698 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
27699 (create_reference_ops_from_ref): Remove.
27700 (vn_reference_insert): Use shared ops for constructing the
27701 reference and copy it.
27702
27703 2013-05-07 Richard Biener <rguenther@suse.de>
27704
27705 PR middle-end/57190
27706 * tree-eh.c (sink_clobbers): Properly propagate
27707 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
27708
27709 2013-05-07 Jakub Jelinek <jakub@redhat.com>
27710
27711 PR tree-optimization/57149
27712 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
27713 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
27714 collect_phi_def_edges, execute_late_warn_uninitialized): Use
27715 uninit_undefined_value_p instead of ssa_undefined_value_p.
27716
27717 PR debug/57184
27718 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
27719 for modifier == EXPAND_INITIALIZER.
27720
27721 2013-05-07 Anton Blanchard <anton@samba.org>
27722
27723 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
27724 for powerpc64 little endian.
27725 * configure: Regenerate.
27726
27727 2013-05-06 Graham Stott <grahams@btinternet.com>
27728
27729 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
27730 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
27731 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
27732 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
27733
27734 2013-05-06 Graham Stott <grahams@btinternet.com>
27735
27736 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
27737 codes which allow non-lvalues.
27738
27739 2013-05-06 Marc Glisse <marc.glisse@inria.fr>
27740
27741 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
27742 components are all 1s.
27743 (integer_minus_onep): New function.
27744 * tree.h (integer_minus_onep): Declare it.
27745 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
27746 integer_minus_onep instead of integer_all_onesp.
27747
27748 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
27749
27750 PR target/52933
27751 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
27752 variations of these patterns.
27753
27754 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
27755
27756 * config/i386/i386.md (isa): Add x64_sse4 member.
27757 (enabled): Handle x64_sse4.
27758 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
27759 instruction for 64bit SSE4_1 targets. Update insn attributes.
27760 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
27761 instruction for SSE4_1 targets. Update insn attributes.
27762 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
27763 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
27764 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
27765 const_1 selector.
27766 (*vec_extractv4si): Rename from *sse4_1_pextrd.
27767 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
27768 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
27769
27770 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
27771
27772 PR target/57108
27773 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
27774
27775 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
27776
27777 * final.c (do_assembler_dialects): Don't handle curly braces and
27778 vertical bar escaped by % as dialect delimiters.
27779 (output_asm_insn): Print curly braces and vertical bar if escaped
27780 by % and ASSEMBLER_DIALECT defined.
27781 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
27782 * doc/tm.texi: Regenerated.
27783
27784 2013-05-06 Steven Bosscher <steven@gcc.gnu.org>
27785
27786 * config/mips/mips.c: Include tree-pass.h.
27787 (mips_reorg): Split in pre- and post-dbr_schedule parts.
27788 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
27789 (pass_mips_machine_reorg2): New machine specific pass.
27790 (insert_pass_mips_machine_reorg2): New pass plugin definition.
27791 (mips_option_override): Register the new pass.
27792 * rtl.h (cleanup_barriers): Remove prototype.
27793 (dbr_schedule): Likewise.
27794 * jump.c (cleanup_barriers): Make static.
27795 * reorg.c (dbr_schedule): Likewise.
27796
27797 2013-05-06 Richard Biener <rguenther@suse.de>
27798
27799 PR tree-optimization/57185
27800 * tree-parloops.c (add_field_for_reduction): Handle anonymous
27801 SSA names properly.
27802
27803 2013-05-06 Uros Bizjak <ubizjak@gmail.com>
27804
27805 PR target/57106
27806 * config/i386/i386.c (add_parameter_dependencies): Add dependence
27807 between "first_arg" and "insn", not "last" and "insn".
27808
27809 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27810
27811 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
27812 (find_candidates_in_block): Re-enable slsr_process_phi.
27813 (create_phi_basis): Fix double counting of candidate adjustment.
27814
27815 2013-05-06 Richard Biener <rguenther@suse.de>
27816
27817 PR middle-end/57147
27818 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
27819 the edge is also fallthru, preserve it and just clear the
27820 abnormal flag.
27821 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
27822 also complex, preserve that and just clear the fallthru flag.
27823 * tree-inline.c (update_ssa_across_abnormal_edges): Also
27824 update virtual operands.
27825
27826 2013-05-06 Alan Modra <amodra@gmail.com>
27827
27828 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
27829 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
27830 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
27831 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
27832 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
27833 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
27834
27835 2013-05-06 Alan Modra <amodra@gmail.com>
27836
27837 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
27838 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
27839 (DEFAULT_ASM_ENDIAN): Define.
27840 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
27841 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
27842 Update -K PIC clause from sysv4.h.
27843 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
27844 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
27845
27846 2013-05-06 Alan Modra <amodra@gmail.com>
27847
27848 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
27849 twice for little-endian.
27850 (ashrdi3_no_power, ashrdi3): Support little-endian.
27851
27852 2013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
27853
27854 PR target/55303
27855 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
27856 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
27857 related expanders.
27858 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
27859 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
27860 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
27861 New predicates.
27862
27863 2013-05-05 Steven Bosscher <steven@gcc.gnu.org>
27864 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27865
27866 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
27867 * config/pa/pa.opt: Make mbig-switch a no-op.
27868 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
27869 (CASE_VECTOR_MODE): Always return SImode.
27870 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
27871 for the !TARGET_BIG_SWITCH case.
27872 * config/pa/pa-linux.h: Likewise.
27873 * config/pa/pa-openbsd.h: Likewise.
27874 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
27875 * config/pa/pa.md (short_jump): Remove define_insn.
27876 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
27877 (casesi0): Remove define_insn.
27878 (type): Remove btable_branch.
27879 (pa_combine_type): Likewise.
27880 (in_nullified_branch_delay): Likewise.
27881 (in_call_delay): Likewise.
27882 (define_delay): Likewise.
27883 (define_insn_reservation "Z3"): Likewise.
27884 (define_insn_reservation "Z4"): Likewise.
27885 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
27886 (pa_adjust_insn_length): Remove adjustment for btable branches.
27887 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
27888 and mno-big-switch
27889
27890 2013-05-05 Uros Bizjak <ubizjak@gmail.com>
27891
27892 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
27893 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
27894 Add m->r,x alternatives.
27895 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
27896 splitters using SWI48x mode iterator.
27897 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
27898 TARGET_64BIT. Add m->x alternative.
27899 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
27900 Add o->x alternative. Enable for TARGET_SSE.
27901 (sse_storeq): Remove expander.
27902 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
27903 with memory input operand.
27904 (*vec_extractv2di_1 splitter): New.
27905 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
27906 * config/i386/i386.md (ssevecmodelower): New mode attribute.
27907
27908 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
27909
27910 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
27911 (INT_LOWPART): Delete.
27912 (extract_MB): Adjust.
27913 (extract_ME): Adjust.
27914 (print_operand): Adjust.
27915
27916 2013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
27917
27918 * config/rs6000/predicates.md (reg_or_add_cint_operand,
27919 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
27920 (reg_or_logical_cint_operand, easy_fp_constant,
27921 logical_const_operand): Delete "CONST_DOUBLE" case.
27922 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
27923 "HOST_BITS_PER_WIDE_INT == 64" test.
27924 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
27925 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
27926 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
27927 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
27928 test.
27929 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
27930 CONST_DOUBLE DImode/VOIDmode case.
27931 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
27932 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
27933 CONST_DOUBLE VOIDmode case.
27934 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
27935 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
27936 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
27937 Delete CONST_DOUBLE case.
27938 (splitters for mov FMOVE64 const_double): Delete
27939 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
27940 "HOST_BITS_PER_WIDE_INT >= 64" test.
27941 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
27942 case.
27943 (mov DI const_double): Delete.
27944
27945 2013-05-04 Jakub Jelinek <jakub@redhat.com>
27946
27947 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
27948 on op shows all bits zero in mode of a lowpart subreg, return zero.
27949
27950 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
27951
27952 PR target/57150
27953 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
27954 to save TFmode registers and DImode to save TImode registers for
27955 caller save operations.
27956 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
27957 mark being partially clobbered since they only use the first
27958 double word.
27959
27960 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
27961 and TDmode only use the upper 64-bits of each VSX register.
27962
27963 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27964
27965 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
27966 (find_candidates_in_block): Disable slsr_process_phi.
27967
27968 2013-05-03 Guozhi Wei <carrot@google.com>
27969
27970 * coverage.c (coverage_obj_init): Move the construction of gcov
27971 constructor to ...
27972 (build_init_ctor): ... here.
27973
27974 2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27975
27976 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
27977 (slsr_cand_d): Redefine def_phi.
27978 (stride_status, phi_adjust_status, count_phis_status): New enums.
27979 (find_phi_def): New.
27980 (find_basis_for_base_expr): New.
27981 (find_basis_for_candidate): Handle hidden bases.
27982 (alloc_cand_and_find_basis): Handle phi candidates.
27983 (slsr_process_phi): New.
27984 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
27985 (create_mul_imm_cand): Likewise.
27986 (create_add_ssa_cand): Exclude phi base candidates.
27987 (create_add_imm_cand): Likewise.
27988 (slsr_process_cast): Likewise.
27989 (slsr_process_copy): Likewise.
27990 (find_candidates_in_block): Handle phi candidates.
27991 (dump_candidate): Likewise.
27992 (unconditional_cands): Delete.
27993 (unconditional_cands_with_known_stride_p): Delete.
27994 (phi_dependent_cand_p): New.
27995 (cand_increment): Handle phi-dependent candidates.
27996 (replace_dependent): Delete.
27997 (replace_mult_candidate): New.
27998 (replace_unconditional_candidate): New.
27999 (incr_vec_index): Move to avoid forward reference.
28000 (create_add_on_incoming_edge): New.
28001 (create_phi_basis): New.
28002 (replace_dependents): Delete.
28003 (replace_conditional_candidate): New.
28004 (phi_add_costs): New.
28005 (replace_uncond_cands_and_profitable_phis): New.
28006 (record_increment): Handle phi adjustments.
28007 (record_phi_increments): New.
28008 (record_increments): Handle phi adjustments.
28009 (phi_incr_cost): New.
28010 (lowest_cost_path): Handle phis.
28011 (total_savings): Likewise.
28012 (analyze_increments): Likewise.
28013 (ncd_with_phi): New.
28014 (ncd_of_cand_and_phis): New.
28015 (nearest_common_dominator_for_cands): Handle phi increments.
28016 (all_phi_incrs_profitable): New.
28017 (replace_profitable_candidates): Handle phi-dependent candidates.
28018 (analyze_candidates_and_replace): Likewise.
28019
28020 2013-05-03 Teresa Johnson <tejohnson@google.com>
28021
28022 PR bootstrap/57154
28023 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
28024 do not exceed REG_BR_PROB_BASE.
28025
28026 2013-05-03 Jeff Law <law@redhat.com>
28027
28028 PR tree-optimization/57144
28029 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
28030 operand of the condition will bit into the new type when eliminating
28031 a cast feeding a condition.
28032
28033 2013-05-03 Jakub Jelinek <jakub@redhat.com>
28034
28035 PR rtl-optimization/57130
28036 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
28037 of COMPARE as in_code to the recursive call if needed.
28038
28039 2013-05-03 Uros Bizjak <ubizjak@gmail.com>
28040
28041 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
28042 (enabled): Handle new members.
28043 * config/i386/sse.md (*vec_concatv2si): Merge from
28044 *vec_concatv2si_sse2 and vec_concatv2si_sse.
28045 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
28046
28047 2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
28048
28049 PR tree-optimization/57027
28050 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
28051 for fnms opportunity, check we got the prerequisite kind
28052 of tree / gimple before using accessor functions.
28053
28054 2013-05-03 Richard Biener <rguenther@suse.de>
28055
28056 * double-int.h (lshift): New overload without precision
28057 and arith argument.
28058 (operator *=, operator +=, operator -=): Move ...
28059 * double-int.c (operator *=, operator +=, operator -=): ... here
28060 and implement more efficiently.
28061 (mul_double_with_sign): Remove.
28062 (lshift_double): Adjust to take unsinged shift argument, push
28063 dispatching code to callers.
28064 (mul_double_wide_with_sign): Add early out for callers that
28065 are not interested in high parts or overflow.
28066 (lshift): New function.
28067 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
28068 dispatch code here.
28069 (lrotate, rrotate): Use logical shifts.
28070 * expr.c (get_inner_reference): Use lshift.
28071 * fixed-value.c (do_fixed_divide): Likewise.
28072 * tree-dfa.c (get_ref_base_and_extent): Likewise.
28073 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
28074 (indirect_refs_may_alias_p): Likewise.
28075 (stmt_kills_ref_p_1): Likewise.
28076
28077 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
28078
28079 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
28080
28081 2013-05-03 Vidya Praveen <vidyapraveen@arm.com>
28082
28083 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
28084 scalar form of FABD instruction.
28085
28086 2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
28087
28088 * lra-constraints.c (process_alt_operands): Add checking alt
28089 number to choose the best alternative.
28090
28091 2013-05-02 Richard Biener <rguenther@suse.de>
28092
28093 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
28094 bitmap and its handling.
28095 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
28096
28097 2013-05-02 Richard Biener <rguenther@suse.de>
28098
28099 PR middle-end/57140
28100 * tree-inline.c (copy_loops): Properly handle removed loops.
28101 (copy_cfg_body): Mark destination loops for fixup if source
28102 loops needed fixup.
28103
28104 2013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
28105
28106 PR target/56732
28107 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
28108 generating simple_return for naked functions.
28109
28110 2013-05-02 Martin Jambor <mjambor@suse.cz>
28111
28112 PR middle-end/56988
28113 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
28114 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
28115 flags match.
28116 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
28117 ipa_agg_replacement_value structures.
28118 (known_aggs_to_agg_replacement_list): Likewise.
28119 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
28120 (read_agg_replacement_chain): Likewise.
28121 (ipcp_transform_function): Also check that by_ref flags match.
28122
28123 2013-05-02 Richard Biener <rguenther@suse.de>
28124
28125 * graphds.h (struct graph): Add obstack member.
28126 * graphds.c (new_graph): Initialize obstack and allocate
28127 vertices from it.
28128 (add_edge): Allocate edge from the obstack.
28129 (free_graph): Free the obstack instead of all edges and vertices.
28130
28131 2013-05-02 Teresa Johnson <tejohnson@google.com>
28132
28133 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
28134 divides.
28135 * cfg.c (update_bb_profile_for_threading): Ditto.
28136 * tree-inline.c (copy_bb): Ditto.
28137 (copy_edges_for_bb): Ditto.
28138 (initialize_cfun): Ditto.
28139 (copy_cfg_body): Ditto.
28140 (expand_call_inline): Ditto.
28141 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
28142 (estimate_node_size_and_time): Ditto.
28143 (inline_merge_summary): Ditto.
28144 * cgraphclones.c (cgraph_clone_edge): Ditto.
28145 (cgraph_clone_node): Ditto.
28146 * sched-rgn.c (compute_dom_prob_ps): Ditto.
28147 (compute_trg_info): Ditto.
28148
28149 2013-05-02 Ian Bolton <ian.bolton@arm.com>
28150
28151 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
28152 S reg when fp attribute set.
28153 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
28154
28155 2013-05-02 Ian Bolton <ian.bolton@arm.com>
28156
28157 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
28158 New pattern.
28159 (*and_one_cmplsi3_compare0_uxtw): Likewise.
28160 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
28161 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
28162
28163 2013-05-02 Richard Biener <rguenther@suse.de>
28164
28165 * tree-scalar-evolution.c (scev_info_hasher): Remove.
28166 (struct instantiate_cache_entry): New type.
28167 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
28168 (struct instantiate_cache_type): New type.
28169 (set_instantiated_value, get_instantiated_value): Remove.
28170 (get_instantiated_value_entry): New function.
28171 (instantiate_scev_name): Use the new cache and adjust.
28172 (instantiate_scev_poly): Adjust.
28173 (instantiate_scev_binary): Likewise.
28174 (instantiate_array_ref): Likewise.
28175 (instantiate_scev_convert): Likewise.
28176 (instantiate_scev_not): Likewise.
28177 (instantiate_scev_3): Likewise.
28178 (instantiate_scev_2): Likewise.
28179 (instantiate_scev_r): Likewise.
28180 (instantiate_scev): Likewise.
28181 (resolve_mixers): Likewise.
28182
28183 2013-05-01 Vladimir Makarov <vmakarov@redhat.com>
28184
28185 PR target/57091
28186 * lra-constraints.c (best_small_class_operands_num): Remove.
28187 (process_alt_operands): Remove small_class_operands_num. Take
28188 small classes operands into losers and only if the operand is not
28189 matched. Modify debugging output.
28190 (curr_insn_transform): Remove best_small_class_operands_num.
28191 Print insn name.
28192
28193 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28194
28195 * config/aarch64/aarch64-builtins.c
28196 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
28197 * config/aarch64/aarch64-simd-builtins.def
28198 (reduc_splus_): Add new modes.
28199 (reduc_uplus_): New.
28200 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
28201 (reduc_uplus_v4sf): Likewise.
28202 (reduc_splus_v4sf): Likewise.
28203 (aarch64_addv<mode>): Likewise.
28204 (reduc_uplus_<mode>): Likewise.
28205 (reduc_splus_<mode>): Likewise.
28206 (aarch64_addvv2di): Likewise.
28207 (reduc_uplus_v2di): Likewise.
28208 (reduc_splus_v2di): Likewise.
28209 (aarch64_addvv2si): Likewise.
28210 (reduc_uplus_v2si): Likewise.
28211 (reduc_splus_v2si): Likewise.
28212 (reduc_<sur>plus_<mode>): New.
28213 (reduc_<sur>plus_v2di): Likewise.
28214 (reduc_<sur>plus_v2si): Likewise.
28215 (reduc_<sur>plus_v4sf): Likewise.
28216 (aarch64_addpv4sf): Likewise.
28217 * config/aarch64/arm_neon.h
28218 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
28219 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
28220 add UNSPEC_SADDV, UNSPEC_UADDV.
28221 (SUADDV): New.
28222 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
28223
28224 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28225
28226 * config/aarch64/arm_neon.h
28227 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
28228
28229 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28230
28231 * config/aarch64/aarch64-builtins
28232 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
28233
28234 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28235
28236 * config/aarch64/aarch64-simd-builtins.def
28237 (reduc_smax_): New.
28238 (reduc_smin_): Likewise.
28239 (reduc_umax_): Likewise.
28240 (reduc_umin_): Likewise.
28241 (reduc_smax_nan_): Likewise.
28242 (reduc_smin_nan_): Likewise.
28243 (fmax): Remove.
28244 (fmin): Likewise.
28245 (smax): Update for V2SF, V4SF and V2DF modes.
28246 (smin): Likewise.
28247 (smax_nan): New.
28248 (smin_nan): Likewise.
28249 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
28250 (<su><maxmin><mode>3): ...This, refactor.
28251 (s<maxmin><mode>3): New.
28252 (<maxmin_uns><mode>3): Likewise.
28253 (reduc_<maxmin_uns>_<mode>): Refactor.
28254 (reduc_<maxmin_uns>_v4sf): Likewise.
28255 (reduc_<maxmin_uns>_v2si): Likewise.
28256 (aarch64_<fmaxmin><mode>: Remove.
28257 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
28258 new builtin names.
28259 (vmin<q>_f<32,64>): Likewise.
28260 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
28261 (FMAXMIN): New.
28262 (su): Add mappings for smax, smin, umax, umin.
28263 (maxmin): New.
28264 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
28265 (FMAXMIN): Rename as...
28266 (FMAXMIN_UNS): ...This.
28267 (maxminv): Remove.
28268 (fmaxminv): Likewise.
28269 (fmaxmin): Likewise.
28270 (maxmin_uns): New.
28271 (maxmin_uns_op): Likewise.
28272
28273 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28274
28275 * config/aarch64/arm_neon.h
28276 (vac<ge, gt><sd>_f<32, 64>): Rename to...
28277 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
28278 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
28279
28280 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28281
28282 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
28283 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
28284
28285 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28286
28287 * config/aarch64/aarch64-simd.md
28288 (vcond<mode>_internal): Handle special cases for constant masks.
28289 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
28290 (vcondu<mode><mode>): Likewise.
28291 (vcond<v_cmp_result><mode>): New.
28292
28293 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28294
28295 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
28296 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
28297 * config/aarch64/aarch64-simd-builtins.def
28298 (cmeq): Update to BUILTIN_VALLDI.
28299 (cmgt): Likewise.
28300 (cmge): Likewise.
28301 (cmle): Likewise.
28302 (cmlt): Likewise.
28303 * config/aarch64/arm_neon.h
28304 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
28305 to builtins or C as appropriate.
28306
28307 2013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
28308
28309 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
28310 (cmgeu): ...This.
28311 (cmhi): Rename to...
28312 (cmgtu): ...This.
28313 * config/aarch64/aarch64-simd.md
28314 (simd_mode): Add SF.
28315 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
28316 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
28317 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
28318 (cstore<mode>_neg): ...This.
28319 * config/aarch64/iterators.md
28320 (VALLF): new.
28321 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
28322 (COMPARISONS): New.
28323 (UCOMPARISONS): Likewise.
28324 (optab): Add missing comparisons.
28325 (n_optab): New.
28326 (cmp_1): Likewise.
28327 (cmp_2): Likewise.
28328 (CMP): Likewise.
28329 (cmp): Remove.
28330 (VCMP_S): Likewise.
28331 (VCMP_U): Likewise.
28332 (V_cmp_result): Add DF, SF modes.
28333 (v_cmp_result): Likewise.
28334 (v): Likewise.
28335 (vmtype): Likewise.
28336 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
28337
28338 2013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
28339
28340 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
28341 define_insn to define_insn_and_split.
28342 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
28343 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
28344 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
28345 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
28346 (thumb2_negscc): Likewise.
28347
28348 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
28349
28350 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
28351
28352 2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
28353
28354 * config/arm/thumb2.md: Remove trailing whitespaces.
28355
28356 2013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
28357
28358 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
28359 Use gen_int_mode rather than GEN_INT.
28360
28361 2013-04-30 H.J. Lu <hongjiu.lu@intel.com>
28362
28363 * value-prof.c (stream_in_histogram_value): Remove the strayed
28364 debug_gimple_stmt.
28365
28366 2013-04-30 Richard Biener <rguenther@suse.de>
28367
28368 PR middle-end/57122
28369 * cfghooks.c (split_edge): Properly check for the loop latch edge.
28370
28371 2013-04-30 Richard Biener <rguenther@suse.de>
28372
28373 PR middle-end/57107
28374 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
28375
28376 2013-04-30 Andrey Belevantsev <abel@ispras.ru>
28377
28378 PR rtl-optimization/56957
28379 PR rtl-optimization/57105
28380 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
28381 variable. Use just INSN_UID for determining whether an insn
28382 should be only disconnected from the insn stream.
28383 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
28384
28385 2013-04-30 Jakub Jelinek <jakub@redhat.com>
28386
28387 PR tree-optimization/57104
28388 * tsan.c (instrument_expr): Don't instrument accesses to
28389 DECL_HARD_REGISTER VAR_DECLs.
28390
28391 2013-04-30 Richard Biener <rguenther@suse.de>
28392
28393 * function.h (loops_for_fn): New inline function.
28394 (set_loops_for_fn): Likewise.
28395 * cfgloop.h (place_new_loop): Add struct function parameter.
28396 (get_loop): Likewise.
28397 (get_loops): Likewise.
28398 (number_of_loops): Likewise.
28399 (fel_next): Adjust.
28400 (fel_init): Likewise.
28401 * cfg.c (get_loop_copy): Adjust.
28402 * cfgloop.c (flow_loops_dump): Likewise.
28403 (record_loop_exits): Likewise.
28404 (verify_loop_structure): Likewise.
28405 * cfgloopanal.c (mark_irreducible_loops): Likewise.
28406 (estimate_reg_pressure_cost): Likewise.
28407 (mark_loop_exit_edges): Likewise.
28408 * cfgloopmanip.c (place_new_loop): Likewise.
28409 (add_loop): Likewise.
28410 (duplicate_loop): Likewise.
28411 * graph.c (draw_cfg_nodes): Likewise.
28412 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
28413 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
28414 (extract_affine_chrec): Likewise.
28415 (build_scop_iteration_domain): Likewise.
28416 * graphite.c (graphite_initialize): Likewise.
28417 * ira-build.c (create_loop_tree_nodes): Likewise.
28418 (more_one_region_p): Likewise.
28419 (rebuild_regno_allocno_maps): Likewise.
28420 (mark_loops_for_removal): Likewise.
28421 (mark_all_loops_for_removal): Likewise.
28422 (remove_unnecessary_regions): Likewise.
28423 (ira_build): Likewise.
28424 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
28425 * loop-init.c (fix_loop_structure): Likewise.
28426 (gate_rtl_move_loop_invariants): Likewise.
28427 (gate_rtl_unswitch): Likewise.
28428 (gate_rtl_unroll_and_peel_loops): Likewise.
28429 (rtl_doloop): Likewise.
28430 * lto-streamer-in.c (input_cfg): Likewise.
28431 * lto-streamer-out.c (output_cfg): Likewise.
28432 * modulo-sched.c (sms_schedule): Likewise.
28433 * predict.c (tree_estimate_probability): Likewise.
28434 (tree_estimate_probability_driver): Likewise.
28435 (estimate_loops): Likewise.
28436 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
28437 (move_sese_region_to_fn): Likewise.
28438 (debug_loop_num): Likewise.
28439 * tree-chrec.c (chrec_evaluate): Likewise.
28440 (hide_evolution_in_other_loops_than_loop): Likewise.
28441 (chrec_component_in_loop_num): Likewise.
28442 (reset_evolution_in_loop): Likewise.
28443 (evolution_function_is_invariant_rec_p): Likewise.
28444 * tree-if-conv.c (main_tree_if_conversion): Likewise.
28445 * tree-inline.c (copy_loops): Likewise.
28446 (copy_cfg_body): Likewise.
28447 (tree_function_versioning): Likewise.
28448 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
28449 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
28450 Likewise.
28451 (add_to_evolution_1): Likewise.
28452 (scev_const_prop): Likewise.
28453 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
28454 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
28455 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
28456 (tree_ssa_lim_initialize): Likewise.
28457 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
28458 (verify_loop_closed_ssa): Likewise.
28459 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
28460 (tree_ssa_loop_im): Likewise.
28461 (tree_ssa_loop_unswitch): Likewise.
28462 (tree_vectorize): Likewise.
28463 (check_data_deps): Likewise.
28464 (tree_ssa_loop_ivcanon): Likewise.
28465 (tree_ssa_loop_bounds): Likewise.
28466 (tree_complete_unroll): Likewise.
28467 (tree_complete_unroll_inner): Likewise.
28468 (tree_parallelize_loops): Likewise.
28469 (tree_ssa_loop_prefetch): Likewise.
28470 (tree_ssa_loop_ivopts): Likewise.
28471 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
28472 * tree-vectorizer.c (vectorize_loops): Likewise.
28473
28474 2013-04-29 Mike Frysinger <vapier@gentoo.org>
28475
28476 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
28477 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
28478 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
28479 with EABI_LINK_SPEC.
28480
28481 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
28482
28483 PR target/44578
28484 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
28485 alternative.
28486
28487 2013-04-29 Vladimir Makarov <vmakarov@redhat.com>
28488
28489 PR target/57097
28490 * lra-constraints.c (process_alt_operands): Discourage a bit more
28491 using memory for pseudos. Print cost dump for alternatives.
28492 Modify cost values for conflicts with early clobbers.
28493 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
28494
28495 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
28496
28497 PR target/57098
28498 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
28499
28500 2013-04-29 Ian Bolton <ian.bolton@arm.com>
28501
28502 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
28503 from/to S register.
28504 (movdi_aarch64): Support LDR/STR from/to D register.
28505
28506 2013-04-29 Ian Bolton <ian.bolton@arm.com>
28507
28508 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
28509 or higher by default.
28510
28511 2013-04-29 Richard Biener <rguenther@suse.de>
28512
28513 PR middle-end/57075
28514 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
28515 even if not adding abnormal edges for calls that can make
28516 abnormal gotos.
28517
28518 2013-04-29 Richard Biener <rguenther@suse.de>
28519
28520 PR middle-end/57103
28521 * tree-cfg.c (move_stmt_op): Fix condition under which to update
28522 TREE_BLOCK.
28523 (move_stmt_r): Remove redundant checking.
28524
28525 2013-04-29 Teresa Johnson <tejohnson@google.com>
28526
28527 PR bootstrap/57077
28528 * basic-block.h (apply_scale): New function.
28529 (apply_probability): Use apply_scale.
28530 * gimple-streamer-in.c (input_bb): Ditto.
28531 * lto-streamer-in.c (input_cfg): Ditto.
28532 * lto-cgraph.c (merge_profile_summaries): Ditto.
28533 * tree-optimize.c (execute_fixup_cfg): Ditto.
28534 * tree-inline.c (copy_bb): Update comment to use apply_scale.
28535 (copy_edges_for_bb): Ditto.
28536 (copy_cfg_body): Ditto.
28537
28538 2013-04-29 Tom de Vries <tom@codesourcery.com>
28539
28540 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
28541 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
28542 (tail_merge_optimize): Handle current_loops == NULL.
28543
28544 2013-04-26 Jeff Law <law@redhat.com>
28545
28546 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
28547 (simplify_cond_using_ranges): Generalize code to simplify
28548 COND_EXPRs where one argument is a constant and the other
28549 is an SSA_NAME created by an integral type conversion.
28550
28551 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28552
28553 * config/arm/arm.md (store_minmaxsi): Use only when
28554 optimize_insn_for_size_p.
28555
28556 2013-04-29 Christian Bruel <christian.bruel@st.com>
28557
28558 PR target/57108
28559 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
28560
28561 2013-04-29 Richard Biener <rguenther@suse.de>
28562
28563 PR middle-end/57089
28564 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
28565 loop tree make sure to schedule a fixup for the child as well.
28566 (expand_omp_for_generic): Properly add loops.
28567 (expand_omp_for_static_nochunk): Likewise.
28568 (expand_omp_for_static_chunk): Likewise.
28569 (expand_omp_for): For the degenerate case fixup loops.
28570 (expand_omp_sections): Fix default bb placement in loops.
28571 (expand_omp_atomic_pipeline): Properly add loops.
28572
28573 2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28574
28575 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
28576
28577 2013-04-29 Tom de Vries <tom@codesourcery.com>
28578
28579 * tree-ssa-tail-merge.c: Update header comment.
28580
28581 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28582
28583 * config/aarch64/arm_neon.h
28584 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
28585 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
28586 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
28587 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
28588 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
28589 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
28590 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
28591 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
28592
28593 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28594
28595 * config/aarch64/aarch64-simd.md
28596 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
28597 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
28598 fix_trunc, fixuns_trunc.
28599 (ftrunc<VDQF:mode>2): New.
28600 * config/aarch64/iterators.md (optab): Add fix, fixuns.
28601 (fix_trunc_optab): New.
28602
28603 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28604
28605 * config/aarch64/aarch64-builtins.c
28606 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
28607 iceilf, lround, iroundf.
28608
28609 2013-04-29 Uros Bizjak <ubizjak@gmail.com>
28610
28611 PR target/54349
28612 * config/i386/i386.h (enum ix86_tune_indices)
28613 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
28614 New, split from X86_TUNE_INTER_UNIT_MOVES.
28615 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
28616 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
28617 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
28618 (TARGET_INTER_UNIT_MOVES): Remove.
28619 * config/i386/i386.c (initial_ix86_tune_features): Update.
28620 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
28621 (ix86_expand_convert_uns_didf_sse): Use
28622 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
28623 (ix86_expand_vector_init_one_nonzero): Ditto.
28624 (ix86_expand_vector_init_interleave): Ditto.
28625 (inline_secondary_memory_needed): Return true for moves from SSE class
28626 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
28627 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
28628 * config/i386/constraints.md (Yi, Ym): Depend on
28629 TARGET_INTER_UNIT_MOVES_TO_VEC.
28630 (Yj, Yn): New constraints.
28631 * config/i386/i386.md (*movdi_internal): Change constraints of
28632 operand 1 from Yi to Yj and from Ym to Yn.
28633 (*movsi_internal): Ditto.
28634 (*movdf_internal): Ditto.
28635 (*movsf_internal): Ditto.
28636 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
28637 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
28638 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
28639 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
28640 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
28641 * config/i386/sse.md (movdi_to_sse): Ditto.
28642 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
28643 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
28644 TARGET_INTER_UNIT_MOVES.
28645 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
28646 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
28647 instead of TARGET_INTER_UNIT_MOVES.
28648 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
28649 operand 1 from Yi to Yj and from Ym to Yn.
28650
28651 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28652
28653 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
28654 (float_truncate_hi_): Likewise.
28655 (float_extend_lo_): Likewise.
28656 (float_truncate_lo_): Likewise.
28657 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
28658 (aarch64_float_extend_lo_v2df): Likewise.
28659 (vec_unpacks_hi_v4sf): Likewise.
28660 (aarch64_float_truncate_lo_v2sf): Likewise.
28661 (aarch64_float_truncate_hi_v4sf): Likewise.
28662 (vec_pack_trunc_v2df): Likewise.
28663 (vec_pack_trunc_df): Likewise.
28664
28665 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28666
28667 * config/aarch64/aarch64-builtins.c
28668 (aarch64_fold_builtin): Fold float conversions.
28669 * config/aarch64/aarch64-simd-builtins.def
28670 (floatv2si, floatv4si, floatv2di): New.
28671 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
28672 * config/aarch64/aarch64-simd.md
28673 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
28674 * config/aarch64/iterators.md (FLOATUORS): New.
28675 (optab): Add float, floatuns.
28676 (su_optab): Likewise.
28677
28678 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28679
28680 * config/aarch64/aarch64-builtins.c
28681 (aarch64_builtin_vectorized_function): Use new names for
28682 fcvt builtins.
28683 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
28684 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
28685 (fcvtzu): Split as...
28686 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
28687 (fcvtas): Split as...
28688 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
28689 (fcvtau): Split as...
28690 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
28691 (fcvtps): Split as...
28692 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
28693 (fcvtpu): Split as...
28694 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
28695 (fcvtms): Split as...
28696 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
28697 (fcvtmu): Split as...
28698 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
28699 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
28700 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
28701 (lfrintnusf, lfrintnudf): Likewise.
28702 * config/aarch64/aarch64-simd.md
28703 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
28704 define_insn.
28705 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
28706 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
28707 (fcvt_pattern): Likewise.
28708
28709 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28710
28711 * config/aarch64/aarch64-simd.md
28712 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
28713 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
28714
28715 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28716
28717 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
28718 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
28719 (vrnd<a,m,n,p>_f32): Implement using builtins.
28720 (vrnd<i,x><q>_f<32, 64>): New.
28721
28722 2013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
28723
28724 * config/aarch64/aarch64-builtins.c
28725 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
28726 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
28727 (frintz): Rename to...
28728 (btrunc): ...this.
28729 (frintp): Rename to...
28730 (ceil): ...this.
28731 (frintm): Rename to...
28732 (floor): ...this.
28733 (frinti): Rename to...
28734 (nearbyint): ...this.
28735 (frintx): Rename to...
28736 (rint): ...this.
28737 (frinta): Rename to...
28738 (round): ...this.
28739 * config/aarch64/aarch64-simd.md
28740 (aarch64_frint<frint_suffix><mode>): Delete.
28741 (<frint_pattern><mode>2): Convert to insn.
28742 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
28743 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
28744 (frint_pattern): Likewise.
28745 (frint_suffix): Likewise.
28746
28747 2013-04-29 Richard Biener <rguenther@suse.de>
28748
28749 PR tree-optimization/57081
28750 * loop-init.c: Include tree-flow.h.
28751 (loop_optimizer_finalize): Free number of iteration estimates.
28752 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
28753
28754 2013-04-29 Jakub Jelinek <jakub@redhat.com>
28755
28756 PR tree-optimization/57083
28757 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
28758 non-singleton shift count range, zero extend low_bound for uns case.
28759
28760 * config/i386/predicates.md (general_vector_operand): New predicate.
28761 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
28762 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
28763 if they aren't nonimmediate operands. If their original values
28764 satisfy const_vector_equal_evenodd_p, don't shift them.
28765 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
28766 predicates. For the SSE4.1 case force operands[{1,2}] into registers
28767 if not nonimmediate_operand.
28768 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
28769 instead of register_operand.
28770 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
28771
28772 2013-04-28 Eric Botcazou <ebotcazou@adacore.com>
28773
28774 * stor-layout.c (finalize_size_functions): Allocate a structure and
28775 reset cfun before dumping the functions.
28776
28777 2013-04-27 Jakub Jelinek <jakub@redhat.com>
28778
28779 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
28780
28781 PR target/56866
28782 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
28783 use xop_pmacsdqh if uns_p.
28784 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
28785 the immediate rotate count.
28786
28787 2013-04-26 Vladimir Makarov <vmakarov@redhat.com>
28788
28789 * rtl.h (struct rtx_def): Add comment for field jump.
28790 (LRA_SUBREG_P): New macro.
28791 * recog.c (register_operand): Check LRA_SUBREG_P.
28792 * lra.c (lra): Add note at the end of RTL code. Align non-empty
28793 stack frame.
28794 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
28795 (lra_final_code_change): Skip subreg change for operators.
28796 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
28797 if there are no operand changes.
28798 * lra-constraints.c (curr_insn_set): New.
28799 (match_reload): Set LRA_SUBREG_P.
28800 (emit_spill_move): Ditto.
28801 (check_and_process_move): Use curr_insn_set. Process only single
28802 set insns. Don't initialize sec_mem_p and change_p.
28803 (simplify_operand_subreg): Use LRA_SUBREG_P.
28804 (reg_in_class_p): New function.
28805 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
28806 of #ifdef. Add code to remove cycling.
28807 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
28808 non-null disp. Reload inner instead of disp when base and index
28809 are null. Try to put lo_sum into register.
28810 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
28811 (check_and_process_move): Move code for move cost check to
28812 simple_move_p. Remove equiv_substitution.
28813 (simple_move_p): New function.
28814 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
28815 curr_insn_set. Call check_and_process_move only for single set
28816 insns. Use the new function. Move call of check_and_process_move
28817 after operand equiv substitution and address process.
28818
28819 2013-04-26 Jakub Jelinek <jakub@redhat.com>
28820
28821 PR go/57045
28822 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
28823 with nonlocal goto receivers or returns twice calls, ignore
28824 unininitialized values from abnormal edges to nl goto receiver
28825 or returns twice call.
28826
28827 2013-04-26 Jakub Jelinek <jakub@redhat.com>
28828
28829 PR tree-optimization/57051
28830 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
28831 and VEC_RSHIFT_EXPR if shift count is a multiple of element
28832 bitsize.
28833
28834 2013-04-26 Richard Biener <rguenther@suse.de>
28835
28836 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
28837 (expand_omp_taskreg): Likewise. Mark loops for fixup.
28838 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
28839 (fixup_loop_arrays_after_move): New function.
28840 (move_sese_region_to_fn): Properly outline the loop tree parts
28841 of the SESE region.
28842
28843 2013-04-26 Uros Bizjak <ubizjak@gmail.com>
28844
28845 * config/i386/i386.md (type, unit): Fix long lines.
28846
28847 2013-04-26 Richard Biener <rguenther@suse.de>
28848
28849 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
28850 (lto-streamer-out.o): Likewise.
28851 * cfgloop.c (init_loops_structure): Export, add struct function
28852 argument and adjust.
28853 (flow_loops_find): Adjust.
28854 * cfgloop.h (enum loop_estimation): Add EST_LAST.
28855 (init_loops_structure): Declare.
28856 * lto-streamer-in.c: Include cfgloop.h.
28857 (input_cfg): Input the loop tree.
28858 * lto-streamer-out.c: Include cfgloop.h.
28859 (output_cfg): Output the loop tree.
28860 (output_struct_function_base): Do not drop PROP_loops.
28861
28862 2013-03-26 Richard Biener <rguenther@suse.de>
28863
28864 * tree-cfg.c (execute_build_cfg): Build the loop tree.
28865 (pass_build_cfg): Provide PROP_loops.
28866 (move_sese_region_to_fn): Remove loops that are outlined into fn
28867 for now.
28868 * tree-inline.c: Include cfgloop.h.
28869 (initialize_cfun): Do not drop PROP_loops.
28870 (copy_loops): New function.
28871 (copy_cfg_body): Copy loop structure.
28872 (tree_function_versioning): Initialize destination loop tree.
28873 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
28874 (pass_parallelize_loops): Do IL verification.
28875 * loop-init.c (loop_optimizer_init): Fixup loops if required.
28876 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
28877 the CFG make sure we fixup loops as well.
28878 * tree-ssa-tail-merge.c: Include cfgloop.h.
28879 (replace_block_by): When merging loop latches mark loops for fixup.
28880 * lto-streamer-out.c (output_struct_function_base): Drop
28881 PROP_loops for now.
28882 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
28883 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
28884 * ipa-split.c: Include cfgloop.h.
28885 (split_function): Add the new return block to the loop tree root.
28886 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
28887 whether we have removed the forwarder block.
28888 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
28889 * cfgloop.h (place_new_loop): Declare.
28890 * cfgloopmanip.c (place_new_loop): Export.
28891 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
28892 (tree-switch-conversion.o): Likewise.
28893 (tree-complex.o): Likewise.
28894 (tree-inline.o): Likewise.
28895 (tree-ssa-tailmerge.o): Likewise.
28896 (ipa-split.o): Likewise.
28897 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
28898 (tree-ssa-copy.o): Likewise.
28899 * tree-switch-conversion.c: Include cfgloop.h
28900 (process_switch): If we emit a bit-test cascade, schedule loops
28901 for fixup.
28902 * tree-complex.c: Include cfgloop.h.
28903 (expand_complex_div_wide): Properly add new basic-blocks to loops.
28904 * asan.c: Include cfgloop.h.
28905 (create_cond_insert_point): Properly add new basic-blocks to
28906 loops, schedule loop fixup.
28907 * cfgloop.c (verify_loop_structure): Check that looks are not
28908 marked for fixup.
28909 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
28910 to loops.
28911 (expand_omp_for_generic): Likewise.
28912 (expand_omp_sections): Likewise.
28913 (expand_omp_atomic_pipeline): Schedule loops for fixup.
28914 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
28915 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
28916 is initialized, not when loops are present.
28917 * tree-parloops.c (parallelize_loops): Remove checking here.
28918 * passes.c (init_optimization_passes): Schedule a copy-propagation
28919 pass before complete unrolling of inner loops.
28920
28921 2013-04-26 Jakub Jelinek <jakub@redhat.com>
28922
28923 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
28924 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
28925 (colorize_init): Add argument to _WIN32 version.
28926 * toplev.c: Include diagnostic-color.h.
28927 (process_options): Default to -fdiagnostics-color=auto if
28928 GCC_COLORS env var is in the environment.
28929 * common.opt (fdiagnostics-color=): Add Var and Init.
28930 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
28931 env var is in the environment, the default is auto rather than never.
28932
28933 * diagnostic.h (file_name_as_prefix): Add context argument.
28934 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
28935 the string as locus.
28936 * langhooks.c (lhd_print_error_function): Adjust caller.
28937
28938 2013-04-25 Lawrence Crowl <crowl@google.com>
28939
28940 * var-tracking.c (shared_hash_def::htab):
28941 Change type to hash_table. Update dependent calls and types.
28942
28943 2013-04-25 Lawrence Crowl <crowl@google.com>
28944
28945 * Makefile.in: Update as needed below.
28946
28947 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
28948 Move declaration to after the type's method definitons.
28949
28950 * attribs.c (htab_t scoped_attributes::attribute_hash):
28951 Change type to hash_table. Update dependent calls and types.
28952
28953 * bitmap.c (htab_t bitmap_desc_hash):
28954 Change type to hash_table. Update dependent calls and types.
28955
28956 * cselib.c (htab_t cselib_hash_table):
28957 Change type to hash_table. Update dependent calls and types.
28958
28959 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
28960 (hash_string_slot_node): Move implementation into lto-streamer.h
28961 struct string_slot_hasher.
28962 (eq_string_slot_node): Likewise.
28963
28964 * data-streamer-out.c: Update output_block::string_hash_table
28965 dependent calls and types.
28966
28967 * dwarf2cfi.c (htab_t trace_index):
28968 Change type to hash_table. Update dependent calls and types.
28969
28970 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
28971 Change type to hash_table. Update dependent calls and types.
28972 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
28973 (htab_t optimize_external_refs::map): Likewise.
28974 (htab_t output_comp_unit::extern_map): Likewise.
28975 (htab_t output_comdat_type_unit::extern_map): Likewise.
28976 (htab_t output_macinfo::macinfo_htab): Likewise.
28977 (htab_t optimize_location_lists::htab): Likewise.
28978 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
28979
28980 * except.c (htab_t ehspec_hash_type):
28981 Change type to hash_table. Update dependent calls and types.
28982 (assign_filter_values::ttypes): Likewise.
28983 (assign_filter_values::ehspec): Likewise.
28984 (sjlj_assign_call_site_values::ar_hash): Likewise.
28985 (convert_to_eh_region_ranges::ar_hash): Likewise.
28986
28987 * gcse.c (htab_t pre_ldst_table):
28988 Change type to hash_table. Update dependent calls and types.
28989
28990 * ggc-common.c (htab_t saving_htab):
28991 Change type to hash_table. Update dependent calls and types.
28992 (htab_t loc_hash): Likewise.
28993 (htab_t ptr_hash): Likewise.
28994 (call_count): Rename ggc_call_count.
28995 (call_alloc): Rename ggc_call_alloc.
28996 (loc_descriptor): Rename make_loc_descriptor.
28997 (add_statistics): Rename ggc_add_statistics.
28998
28999 * ggc-common.c (saving_htab):
29000 Change type to hash_table. Update dependent calls and types.
29001
29002 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
29003 (push_gimplify_context): Likewise.
29004 (pop_gimplify_context): Likewise.
29005 (struct gimple_temp_hash_elt): Added.
29006 (struct gimplify_hasher): Likewise.
29007 (struct gimplify_ctx.temp_htab):
29008 Change type to hash_table. Update dependent calls and types.
29009
29010 * gimple-fold.c: Include gimplify-ctx.h.
29011
29012 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
29013 Change type to hash_table. Update dependent calls and types.
29014 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
29015 avoid potential global name collision.
29016
29017 * gimplify.c: Include gimplify-ctx.h.
29018 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
29019 (htab_t gimplify_ctx::temp_htab):
29020 Update dependent calls and types for new type hash_table.
29021 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
29022 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
29023
29024 * gimplify-ctx.h: New.
29025 (struct gimple_temp_hash_elt): Move from gimplify.c.
29026 (class gimplify_hasher): New.
29027 (struct gimplify_ctx): Move from gimple.h.
29028 (htab_t gimplify_ctx::temp_htab):
29029 Change type to hash_table. Update dependent calls and types.
29030
29031 * graphite-clast-to-gimple.c: Include graphite-htab.h.
29032 (htab_t ivs_params::newivs_index):
29033 Change type to hash_table. Update dependent calls and types.
29034 (htab_t ivs_params::params_index): Likewise.
29035 (htab_t print_generated_program::params_index): Likewise.
29036 (htab_t gloog::newivs_index): Likewise.
29037 (htab_t gloog::params_index): Likewise.
29038
29039 * graphite.c: Include graphite-htab.h.
29040 4htab_t graphite_transform_loops::bb_pbb_mapping):
29041 Change type to hash_table. Update dependent calls and types.
29042
29043 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
29044 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
29045 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
29046
29047 * graphite-dependences.c: Include graphite-htab.h.
29048 (loop_is_parallel_p): Change hash table type of parameter.
29049
29050 * graphite-htab.h: New.
29051 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
29052 (extern find_pbb_via_hash): Move from graphite-poly.h.
29053 (extern loop_is_parallel_p): Move from graphite-poly.h.
29054 (extern get_loop_body_pbbs): Move from graphite-poly.h.
29055
29056 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
29057 (extern loop_is_parallel_p): Move to graphite-htab.h.
29058 (extern get_loop_body_pbbs): Move to graphite-htab.h.
29059
29060 * haifa-sched.c (htab_t delay_htab):
29061 Change type to hash_table. Update dependent calls and types.
29062 (htab_t delay_htab_i2): Likewise.
29063
29064 * ira-color.c (htab_t allocno_hard_regs_htab):
29065 Change type to hash_table. Update dependent calls and types.
29066
29067 * ira-costs.c (htab_t cost_classes_htab):
29068 Change type to hash_table. Update dependent calls and types.
29069
29070 * loop-invariant.c (htab_t merge_identical_invariants::eq):
29071 Change type to hash_table. Update dependent calls and types.
29072
29073 * loop-iv.c (htab_t bivs):
29074 Change type to hash_table. Update dependent calls and types.
29075
29076 * loop-unroll.c (htab_t opt_info::insns_to_split):
29077 Change type to hash_table. Update dependent calls and types.
29078 (htab_t opt_info::insns_with_var_to_expand): Likewise.
29079
29080 * lto-streamer.h (struct string_slot): Move from data-streamer.h
29081 (struct string_slot_hasher): New.
29082 (htab_t output_block::string_hash_table):
29083 Change type to hash_table. Update dependent calls and types.
29084
29085 * lto-streamer-in.c (freeing_string_slot_hasher): New.
29086 (htab_t file_name_hash_table):
29087 Change type to hash_table. Update dependent calls and types.
29088
29089 * lto-streamer-out.c: Update output_block::string_hash_table dependent
29090 calls and types.
29091
29092 * lto-streamer.c (htab_t tree_htab):
29093 Change type to hash_table. Update dependent calls and types.
29094
29095 * omp-low.c: Include gimplify-ctx.h.
29096
29097 * passes.c (htab_t name_to_pass_map):
29098 Change type to hash_table. Update dependent calls and types.
29099 (pass_traverse): Rename to passes_pass_traverse.
29100
29101 * plugin.c (htab_t event_tab):
29102 Change type to hash_table. Update dependent calls and types.
29103
29104 * postreload-gcse.c (htab_t expr_table):
29105 Change type to hash_table. Update dependent calls and types.
29106 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
29107
29108 * sese.c (debug_rename_map_1): Make extern.
29109 (htab_t copy_bb_and_scalar_dependences::rename_map):
29110 Change type to hash_table. Update dependent calls and types.
29111
29112 * sese.h (extern debug_rename_map): Move to .c file.
29113
29114 * store-motion.c (htab_t store_motion_mems_table):
29115 Change type to hash_table. Update dependent calls and types.
29116
29117 * trans-mem.c (htab_t tm_new_mem_hash):
29118 Change type to hash_table. Update dependent calls and types.
29119
29120 * tree-browser.c (htab_t TB_up_ht):
29121 Change type to hash_table. Update dependent calls and types.
29122
29123 * tree-cfg.c (htab_t discriminator_per_locus):
29124 Change type to hash_table. Update dependent calls and types.
29125
29126 * tree-complex.c: Include tree-hasher.h
29127 (htab_t complex_variable_components):
29128 Change type to hash_table. Update dependent calls and types.
29129
29130 * tree-eh.c (htab_t finally_tree):
29131 Change type to hash_table. Update dependent calls and types.
29132
29133 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
29134 struct int_tree_hasher.
29135 (extern int_tree_map_eq): Likewise.
29136 (uid_decl_map_hash): Removed.
29137 (extern decl_tree_map_eq): Likewise.
29138
29139 * tree-hasher.h: New.
29140 (struct int_tree_hasher): New.
29141 (typedef int_tree_htab_type): New.
29142
29143 * tree-inline.c: Include gimplify-ctx.h.
29144
29145 * tree-mudflap.c: Include gimplify-ctx.h.
29146
29147 * tree-parloops.c: Include tree-hasher.h.
29148 (htab_t eliminate_local_variables_stmt::decl_address):
29149 Change type to hash_table. Update dependent calls and types.
29150 (htab_t separate_decls_in_region::decl_copies): Likewise.
29151
29152 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
29153 Change type to hash_table. Update dependent calls and types.
29154
29155 * tree-sra.c (candidates):
29156 Change type to hash_table. Update dependent calls and types.
29157
29158 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
29159 in tree-flow.h.
29160 (int_tree_map_hash): Likewise.
29161
29162 * tree-ssa-dom.c (htab_t avail_exprs):
29163 Change type to hash_table. Update dependent calls and types.
29164
29165 * tree-ssa-live.c (var_map_base_init::tree_to_index):
29166 Change type to hash_table. Update dependent calls and types.
29167
29168 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
29169 Change type to hash_table. Update dependent calls and types.
29170
29171 * tree-ssa-phiopt.c (seen_ssa_names):
29172 Change type to hash_table. Update dependent calls and types.
29173
29174 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
29175 Change type to hash_table. Update dependent calls and types.
29176
29177 * tree-ssa-uncprop.c (equiv):
29178 Change type to hash_table. Update dependent calls and types.
29179
29180 2013-04-25 Jakub Jelinek <jakub@redhat.com>
29181
29182 PR rtl-optimization/57003
29183 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
29184 call note_stores with kill_clobbered_value callback again after
29185 killing regs_invalidated_by_call.
29186
29187 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
29188
29189 * config/aarch64/aarch64-simd.md
29190 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
29191 (aarch64_simd_bsl<mode>): Likewise.
29192 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
29193
29194 2013-04-25 Marek Polacek <polacek@redhat.com>
29195
29196 PR tree-optimization/57066
29197 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
29198
29199 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
29200
29201 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
29202
29203 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
29204
29205 * config/aarch64/aarch64-builtins.c
29206 (aarch64_fold_builtin): New.
29207 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
29208 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
29209 * config/aarch64/aarch64-simd-builtins.def (abs): New.
29210 * config/aarch64/arm_neon.h
29211 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
29212
29213 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
29214 Tejas Belagod <tejas.belagod@arm.com>
29215
29216 * config/aarch64/aarch64-builtins.c
29217 (aarch64_gimple_fold_builtin): New.
29218 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
29219 * config/aarch64/aarch64-simd-builtins.def (addv): New.
29220 * config/aarch64/aarch64-simd.md (addpv4sf): New.
29221 (addvv4sf): Update.
29222 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
29223
29224 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
29225
29226 * config/aarch64/aarch64.md
29227 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
29228
29229 2013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
29230
29231 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
29232 (*ngcsi_uxtw): New pattern.
29233
29234 2013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29235 Julian Brown <julian@codesourcery.com>
29236
29237 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
29238 (TB_DREG): Add T_V4HF.
29239 (v4hf_UP): New macro.
29240 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
29241 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
29242 Handle initialisation of V4HF. Adjust initialisation of reinterpret
29243 built-ins.
29244 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
29245 (arm_vector_mode_supported_p): Handle V4HF.
29246 (arm_mangle_map): Handle V4HFmode.
29247 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
29248 * config/arm/arm_neon_builtins.def: Add entries for
29249 vcvtv4hfv4sf, vcvtv4sfv4hf.
29250 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
29251 (neon_vcvtv4hfv4sf): Likewise.
29252 * config/arm/neon-gen.ml: Handle half-precision floating point
29253 features.
29254 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
29255 * config/arm/arm_neon.h: Regenerate.
29256 * config/arm/neon.ml (type elts): Add F16.
29257 (type vectype): Add T_float16x4, T_floatHF.
29258 (type vecmode): Add V4HF.
29259 (type features): Add Requires_FP_bit feature.
29260 (elt_width): Handle F16.
29261 (elt_class): Likewise.
29262 (elt_of_class_width): Likewise.
29263 (mode_of_elt): Refactor.
29264 (type_for_elt): Handle F16, fix error messages.
29265 (vectype_size): Handle T_float16x4.
29266 (vcvt_sh): New function.
29267 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
29268 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
29269 (string_of_mode): Handle V4HF.
29270 * doc/arm-neon-intrinsics.texi: Regenerate.
29271
29272 2013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
29273
29274 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
29275 format specifier in 'X' case.
29276
29277 2013-04-25 Alan Modra <amodra@gmail.com>
29278
29279 PR target/57052
29280 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
29281 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
29282 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
29283 Repeat for many other rotate/shift and mask patterns using subregs.
29284 Name lshiftrt insns.
29285 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
29286 on WORDS_BIG_ENDIAN.
29287
29288 2013-04-25 Alan Modra <amodra@gmail.com>
29289
29290 * config.gcc: Support little-endian powerpc-linux targets.
29291 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
29292 (LINK_OS_LINUX_SPEC): Define.
29293 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
29294 Preserve MASK_LITTLE_ENDIAN.
29295 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
29296 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
29297 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
29298 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
29299 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
29300 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
29301 Correct fp word order for little-endian. Don't shift toc entries
29302 smaller than a word for little-endian.
29303 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
29304 (bswapdi2 splits): Correct low-part subreg for little-endian.
29305 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
29306 low/high where such is correct only for be.
29307 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
29308 little-endian for -mcall-aixdesc.
29309
29310 2013-04-25 Alan Modra <amodra@gmail.com>
29311
29312 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
29313 replace_equiv_address_nv.
29314
29315 2013-04-25 Alan Modra <amodra@gmail.com>
29316
29317 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
29318
29319 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
29320
29321 Revert:
29322 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
29323 * rtl.h (struct rtx_def): ...
29324
29325 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
29326
29327 PR rtl-optimizations/57046
29328 * lra-constraints (split_reg): Set up lra_risky_transformations_p
29329 for multi-reg splits.
29330
29331 2013-04-24 H.J. Lu <hongjiu.lu@intel.com>
29332
29333 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
29334
29335 2013-04-24 Sterling Augustine <saugustine@google.com>
29336
29337 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
29338 (comp_dir_string, debug_str_dwo_section): New.
29339 (DEBUG_STR_DWO_SECTION): Rename to ...
29340 (DEBUG_DWO_STR_SECTION): ... this.
29341 (DEBUG_NORM_STR_SECTION): Delete.
29342 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
29343 (DEBUG_STR_DWO_SECTION_FLAGS): New.
29344 (find_AT_string): Move most logic to ...
29345 (find_AT_string_in_table): ... here. New.
29346 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
29347 add_skeleton_AT_string. Delete logic.
29348 (output_skeleton_debug_sections): Remove call to
29349 add_top_level_skeleton_die_attrs.
29350 (add_comp_dir_attribute): Move logic to comp_dir_string.
29351 (dwarf2out_init): Initialize debug_str_dwo_section.
29352 (output_indirect_string): Call find_string_form.
29353 (output_indirect_strings): Rewrite.
29354 (prune_unused_types): Empty skeleton_debug_str_hash.
29355 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
29356 (dwarf2out_finish): Call output_indirect_strings.
29357
29358 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
29359
29360 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
29361
29362 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
29363
29364 * rtl.h (struct rtx_def): Add comment for field jump.
29365 (LRA_SUBREG_P): New macro.
29366 * recog.c (register_operand): Check LRA_SUBREG_P.
29367 * lra.c (lra): Add note at the end of RTL code. Align non-empty
29368 stack frame.
29369 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
29370 (lra_final_code_change): Skip subreg change for operators.
29371 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
29372 if there are no operand changes.
29373 * lra-constraints.c (curr_insn_set): New.
29374 (match_reload): Set LRA_SUBREG_P.
29375 (emit_spill_move): Ditto.
29376 (check_and_process_move): Use curr_insn_set. Process only single
29377 set insns. Don't initialize sec_mem_p and change_p.
29378 (simplify_operand_subreg): Use LRA_SUBREG_P.
29379 (reg_in_class_p): New function.
29380 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
29381 of #ifdef. Add code to remove cycling.
29382 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
29383 non-null disp. Reload inner instead of disp when base and index
29384 are null. Try to put lo_sum into register.
29385 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
29386 (check_and_process_move): Move code for move cost check to
29387 simple_move_p. Remove equiv_substitution.
29388 (simple_move_p): New function.
29389 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
29390 curr_insn_set. Call check_and_process_move only for single set
29391 insns. Use the new function. Move call of check_and_process_move
29392 after operand equiv substitution and address process.
29393
29394 2013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
29395
29396 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
29397 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
29398 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
29399
29400 2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
29401
29402 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
29403
29404 2013-04-24 Marek Polacek <polacek@redhat.com>
29405
29406 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
29407 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
29408 (select_loops_exit_conditions): Likewise.
29409 (number_of_iterations_for_all_loops): Likewise.
29410 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
29411 (scev_analysis): Likewise.
29412
29413 2013-04-02 Catherine Moore <clm@codesourcery.com>
29414 Chao-ying Fu <fu@mips.com>
29415
29416 * config/mips/micromips.md (jraddiusp): New pattern.
29417 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
29418 instruction if possible.
29419
29420 2013-04-24 Alan Modra <amodra@gmail.com>
29421
29422 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
29423
29424 2013-04-24 Julian Brown <julian@codesourcery.com>
29425 Chung-Lin Tang <cltang@codesourcery.com>
29426
29427 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
29428 dependency behavior in enumeration type DIE generation. Add TODO note
29429 to comments about future DW_FORM_sdata/udata re-work of related code.
29430
29431 2013-04-23 Lawrence Crowl <crowl@google.com>
29432
29433 * Makefile.in: Update as needed below.
29434
29435 * hash-table.h (class hash_table):
29436 Correct many methods with parameter types compare_type to the correct
29437 value_type. (Correct code was unlikely to notice the change.)
29438 (hash_table::elements_with_deleted) New.
29439 (class hashtable::iterator): New.
29440 (hashtable::begin()): New.
29441 (hashtable::end()): New.
29442 (FOR_EACH_HASH_TABLE_ELEMENT): New.
29443
29444 * statistics.c (statistics_hashes):
29445 Change type to hash_table. Update dependent calls and types.
29446
29447 * tree-into-ssa.c (var_infos):
29448 Change type to hash_table. Update dependent calls and types.
29449
29450 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
29451 Change type to hash_table. Update dependent calls and types.
29452
29453 * tree-ssa-loop-im.c (struct mem_ref.refs):
29454 Change type to hash_table. Update dependent calls and types.
29455
29456 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
29457 Change type to hash_table. Update dependent calls and types.
29458
29459 * tree-ssa-sccvn.c (vn_tables_s::nary):
29460 Change type to hash_table. Update dependent calls and types.
29461 (vn_tables_s::phis): Likewise.
29462 (vn_tables_s::references): Likewise.
29463
29464 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
29465 (vn_reference_eq): Update parameter and return types.
29466
29467 * tree-ssa-structalias.c (pointer_equiv_class_table):
29468 Change type to hash_table. Update dependent calls and types.
29469 (location_equiv_class_table): Likewise.
29470
29471 * tree-vect-data-refs.c: Consequential changes for making
29472 peeling a hash_table.
29473
29474 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
29475 (destroy_loop_vec_info): Dependent hash_table update.
29476
29477 * tree-vectorizer.h (peeling_htab):
29478 Change type to hash_table. Update dependent calls and types.
29479
29480 2013-04-23 Shiva Chen <shiva0217@gmail.com>
29481
29482 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
29483 to check the register content is equal or not.
29484 * lra-constraints.c (match_reload): Use lra_assign_reg_val
29485 to assign register content record.
29486 * lra-eliminations.c (update_reg_eliminate): Use
29487 lra_update_reg_val_offset to update register content offset.
29488 * lra-int.h (struct lra_reg): Add offset member.
29489 (lra_reg_val_equal_p): New static inline function.
29490 (lra_update_reg_val_offset): New static inline function.
29491 (lra_assign_reg_val): New static inline function.
29492 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
29493 to assign register content record.
29494 (initialize_lra_reg_info_element): Initial offset to zero.
29495
29496 2013-04-23 Catherine Moore <clm@codesourcery.com>
29497
29498 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
29499 operands. Record compression.
29500
29501 2013-04-23 Xinliang David Li <davidxl@google.com>
29502
29503 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
29504
29505 2013-04-23 Richard Biener <rguenther@suse.de>
29506
29507 PR middle-end/57036
29508 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
29509 parameter, only add abnormal goto edges from the copied body
29510 if the call could perform abnormal gotos.
29511 (copy_cfg_body): Adjust.
29512
29513 2013-04-23 Sofiane Naci <sofiane.naci@arm.com>
29514
29515 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
29516
29517 2013-04-23 Andreas Schwab <schwab@linux-m68k.org>
29518
29519 * coretypes.h (gimple_stmt_iterator): Add struct to make
29520 compatible with C.
29521
29522 2013-04-23 Richard Biener <rguenther@suse.de>
29523
29524 PR tree-optimization/57026
29525 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
29526 from SSA names occuring in abnormal PHI nodes.
29527
29528 2013-04-22 Andi Kleen <ak@linux.intel.com>
29529
29530 * lto/lto.c (print_lto_report_1): Fix LTO report names.
29531
29532 2013-04-22 Andi Kleen <ak@linux.intel.com>
29533
29534 * lto/lto.c (print_lto_report_1): Declare early.
29535 (read_cgraph_and_symbols): Call print_lto_report_1 early.
29536
29537 2013-04-22 Andi Kleen <ak@linux.intel.com>
29538
29539 * common.opt (-flto-report-wpa): Add.
29540 * doc/invoke.texi (-flto-report-wpa): Add.
29541 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
29542 (lto_main): dito.
29543
29544 2013-04-22 Xinliang David Li <davidxl@google.com>
29545
29546 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
29547 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
29548 * Makefile.in: New dependency
29549
29550 David Daney <ddaney.cavm@gmail.com>
29551
29552 * configure.ac (gcc_cv_as_micromips_support): Use the
29553 --fatal-warnings option.
29554 * configure: Regenerate.
29555
29556 2013-04-22 Marek Polacek <polacek@redhat.com>
29557
29558 PR sanitizer/56990
29559 * tsan.c (instrument_expr): Don't instrument expression
29560 in case its size is zero.
29561
29562 2013-04-22 Uros Bizjak <ubizjak@gmail.com>
29563
29564 PR target/57032
29565 Revert:
29566 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
29567
29568 * config/alpha/alpha.c (TARGET_LRA_P): New define.
29569
29570 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
29571
29572 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
29573 (gimple_stmt_iterator): New typedef.
29574 * gimple.h (gimple_stmt_iterator): Rename to...
29575 (gimple_stmt_iterator_d): ... This.
29576 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
29577 trees be valid for GIMPLE and GENERIC.
29578 (TARGET_GIMPLE_FOLD_BUILTIN): New.
29579 * gimple-fold.c (gimple_fold_call): Call target hook
29580 gimple_fold_builtin.
29581 * hooks.c (hook_bool_gsiptr_false): New.
29582 * hooks.h (hook_bool_gsiptr_false): New.
29583 * target.def (fold_stmt): New.
29584 * doc/tm.texi: Regenerate.
29585
29586 2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
29587
29588 PR target/57018
29589 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
29590 a set sp if no stack realignment.
29591
29592 2013-04-22 Nick Clifton <nickc@redhat.com>
29593
29594 * config.gcc (tilegx-linux): Extend extra_objs rather than
29595 overwriting it.
29596 (tilepro-linux): Likewise.
29597
29598 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
29599
29600 * config/aarch64/aarch64-builtins.c
29601 (CF): Remove.
29602 (CF0, CF1, CF2, CF3, CF4, CF10): New.
29603 (VAR<1-12>): Add MAP parameter.
29604 (BUILTIN_*): Likewise.
29605 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
29606 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
29607 (aarch64_ushl_n<mode>): Likewise.
29608 (aarch64_sshr_n<mode>): Likewise.
29609 (aarch64_ushr_n<mode>): Likewise.
29610 (aarch64_<maxmin><mode>): Likewise.
29611 (aarch64_sqrt<mode>): Likewise.
29612 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
29613 (vshr<q>_n_*): Likewise.
29614
29615 2013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
29616
29617 * config/aarch64/aarch64-builtins.c
29618 (aarch64_simd_builtin_type_mode): Handle SF types.
29619 (sf_UP): Define.
29620 (BUILTIN_GPF): Define.
29621 (aarch64_init_simd_builtins): Handle SF types.
29622 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
29623 (frecps): Likewise.
29624 (frecpx): Likewise.
29625 * config/aarch64/aarch64-simd.md
29626 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
29627 (aarch64_frecpe<mode>): New.
29628 (aarch64_frecps<mode>): Likewise.
29629 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
29630 (v8type): Add frecp<esx>.
29631 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
29632 (aarch64_frecps<mode>): Likewise.
29633 * config/aarch64/iterators.md (FRECP): New.
29634 (frecp_suffix): Likewise.
29635 * config/aarch64/arm_neon.h
29636 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
29637
29638 2013-04-22 Christian Bruel <christian.bruel@st.com>
29639
29640 PR target/56995
29641 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
29642 (REG_CLASS_NAMES): Idem.
29643 (REG_CLASS_CONTENTS): Idem.
29644 (REGCLASS_HAS_FP_REG): Idem.
29645 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
29646 (sh_conditional_register_usage): Idem.
29647
29648 2013-04-21 Jeff Law <law@redhat.com>
29649
29650 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
29651 (ssa_forward_propagate_and_combine): Use it.
29652
29653 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
29654
29655 * lra.c: Update the flow chart diagram.
29656
29657 2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
29658
29659 PR rtl-optimization/56847
29660 * lra-constraints.c (process_alt_operands): Discourage alternative
29661 with non-matche doffsettable memory constraint fro memory with
29662 known offset.
29663
29664 2013-04-19 Richard Biener <rguenther@suse.de>
29665
29666 PR tree-optimization/56982
29667 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
29668 function.
29669 * gimplify.c (gimplify_call_expr): Notice special calls.
29670 (gimplify_modify_expr): Likewise.
29671 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
29672 abnormal control flow receivers.
29673 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
29674 in the same way as cfun->has_nonlocal_labels.
29675 (gimple_purge_dead_abnormal_call_edges): Likewise.
29676 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
29677 receivers start a basic-block.
29678
29679 2013-04-19 Richard Biener <rguenther@suse.de>
29680
29681 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
29682 member ...
29683 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
29684 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
29685 (SLP_TREE_LOAD_PERMUTATION): Add.
29686 (vect_transform_slp_perm_load): Adjust prototype.
29687 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
29688 (vect_free_slp_instance): Likewise.
29689 (vect_create_new_slp_node): Likewise.
29690 (vect_supported_slp_permutation_p): Remove.
29691 (vect_slp_rearrange_stmts): Adjust.
29692 (vect_supported_load_permutation_p): Likewise. Inline
29693 vect_supported_slp_permutation_p here.
29694 (vect_analyze_slp_instance): Compute load permutations per
29695 slp node instead of per instance.
29696 (vect_get_slp_defs): Adjust.
29697 (vect_transform_slp_perm_load): Likewise.
29698 (vect_schedule_slp_instance): Remove redundant code.
29699 (vect_schedule_slp): Remove hack for PR56270, add it ...
29700 * tree-vect-stmts.c (vectorizable_load): ... here, do not
29701 CSE loads for SLP. Adjust.
29702
29703 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
29704
29705 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
29706 spelling in two comments.
29707
29708 2013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
29709
29710 PR target/56797
29711 * config/arm/arm.c (load_multiple_sequence): Require SP
29712 as base register for loads if SP is in the register list.
29713
29714 2013-04-19 Martin Jambor <mjambor@suse.cz>
29715
29716 PR tree-optimization/56718
29717 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
29718 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
29719 and made public. Adjusted all callers.
29720 (ipa_intraprocedural_devirtualization): New function.
29721 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
29722 (ipa_intraprocedural_devirtualization): Likewise.
29723 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
29724
29725 2013-04-19 Richard Biener <rguenther@suse.de>
29726
29727 PR tree-optimization/57000
29728 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
29729
29730 2013-04-19 Terry Guo <terry.guo@arm.com>
29731
29732 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
29733 Replace with ...
29734 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
29735 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
29736 (cortex_m4_fmacs): Use new reservations.
29737 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
29738
29739 2013-04-18 Vladimir Makarov <vmakarov@redhat.com>
29740
29741 PR rtl-optimization/56999
29742 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
29743 related code.
29744 (lra_coalesce): Remove split_origin_bitmap and related code.
29745 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
29746 ranges if necessary.
29747
29748 2013-04-18 Uros Bizjak <ubizjak@gmail.com>
29749
29750 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
29751 New array.
29752 (ix86_expand_call): Remove clobbered_registers array and use
29753 x86_64_ms_sysv_extra_clobbered_registers instead.
29754 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
29755 Declare here.
29756 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
29757 predicate.
29758 * config/i386/i386.md (*call_rex64_ms_sysv): Use
29759 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
29760 (*call_value_rex64_ms_sysv): Ditto.
29761
29762 2013-04-18 Cary Coutant <ccoutant@google.com>
29763
29764 * dwarf2out.c (output_pubnames): Check die_perennial_p of
29765 parent instead of die_mark.
29766
29767 2013-04-18 Diego Novillo <dnovillo@google.com>
29768
29769 * gimple.c (create_gimple_tmp): New.
29770 (get_expr_type): New.
29771 (build_assign): New.
29772 (build_type_cast): New.
29773 * gimple.h (enum ssa_mode): Define.
29774 (gimple_seq_set_location): New.
29775 * asan.c (build_check_stmt): Change some gimple_build_* calls
29776 to use build_assign and build_type_cast.
29777
29778 2013-04-18 Richard Biener <rguenther@suse.de>
29779
29780 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
29781 handle negative step. Remove redundant checks.
29782 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
29783 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
29784 for negative step and grouped loads fail to vectorize.
29785
29786 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
29787
29788 * emit-rtl.c (reset_insn_used_flags): New function.
29789 (reset_all_used_flags): Use it.
29790 (verify_insn_sharing): New function.
29791 (verify_rtl_sharing): Fix verification for SEQUENCEs.
29792
29793 2013-04-18 Jakub Jelinek <jakub@redhat.com>
29794
29795 PR tree-optimization/56984
29796 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
29797 and (x >> M) >= N don't register any assertion if N << M is the
29798 minimum value.
29799
29800 2013-04-18 Steven Bosscher <steven@gcc.gnu.org>
29801
29802 * lower-subreg.c (resolve_simple_move): If called self-recursive,
29803 do not delete_insn insns that have not yet been emitted, only
29804 unlink them with remove_insn.
29805 * df-scan.c (df_insn_delete): Revert r197492.
29806
29807 2013-04-17 Steven Bosscher <steven@gcc.gnu.org>
29808
29809 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
29810 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
29811
29812 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
29813
29814 * config/arm/arm.md (movsicc_insn): Convert define_insn into
29815 define_insn_and_split.
29816 (and_scc,ior_scc,negscc): Likewise.
29817 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
29818
29819 2013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
29820
29821 * config/arm/arm.c (use_return_insn): Return 0 for targets that
29822 can benefit from using a sequence of LDRD instructions in epilogue
29823 instead of a single LDM instruction.
29824
29825 2013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
29826
29827 PR 45688
29828 * doc/extend.texi: Fix typo.
29829
29830 2013-04-17 Richard Biener <rguenther@suse.de>
29831
29832 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
29833 (vect_build_slp_tree): ... here.
29834 (vect_build_slp_tree_1): Compute which stmts of the SLP group
29835 match. Remove special-casing of mismatched complex loads.
29836 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
29837 re-try the match with swapped commutative operands.
29838 (vect_supported_load_permutation_p): Remove special-casing of
29839 mismatched complex loads.
29840 (vect_analyze_slp_instance): Adjust.
29841
29842 2013-04-17 Richard Biener <rguenther@suse.de>
29843
29844 PR rtl-optimization/56921
29845 * cfgloop.h (struct loop): Add simple_loop_desc member.
29846 (struct niter_desc): Mark with GTY(()).
29847 (simple_loop_desc): Do not use aux field but simple_loop_desc.
29848 * loop-iv.c (get_simple_loop_desc): Likewise.
29849 (free_simple_loop_desc): Likewise.
29850
29851 Revert
29852 2013-04-16 Richard Biener <rguenther@suse.de>
29853
29854 PR rtl-optimization/56921
29855 * loop-init.c (pass_rtl_move_loop_invariants): Add
29856 TODO_do_not_ggc_collect to todo_flags_finish.
29857 (pass_rtl_unswitch): Same.
29858 (pass_rtl_unroll_and_peel_loops): Same.
29859 (pass_rtl_doloop): Same.
29860
29861 2013-04-17 Eric Botcazou <ebotcazou@adacore.com>
29862
29863 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
29864 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
29865 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
29866 references.
29867 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
29868 * tree-streamer.c (record_common_node): Adjust reference in comment.
29869
29870 2013-04-17 Terry Guo <terry.guo@arm.com>
29871
29872 * config/arm/cortex-m4.md: Add a new bypass.
29873
29874 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
29875
29876 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
29877 New pattern.
29878 (*subs_<optab><mode>_multp2): New pattern.
29879 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
29880 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
29881
29882 2013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
29883
29884 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
29885 (*subs_mul_imm_<mode>): New pattern.
29886
29887 2013-04-16 David Edelsohn <dje.gcc@gmail.com>
29888
29889 PR target/56948
29890 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
29891 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
29892 (vsx_movti_32bit): Change j->wa to O->wa.
29893
29894 2013-04-16 Richard Biener <rguenther@suse.de>
29895
29896 PR rtl-optimization/56921
29897 * loop-init.c (pass_rtl_move_loop_invariants): Add
29898 TODO_do_not_ggc_collect to todo_flags_finish.
29899 (pass_rtl_unswitch): Same.
29900 (pass_rtl_unroll_and_peel_loops): Same.
29901 (pass_rtl_doloop): Same.
29902
29903 2013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
29904
29905 * config/arm/arm.c (emit_multi_reg_push): New declaration
29906 for an existing function.
29907 (arm_emit_strd_push): New function.
29908 (arm_expand_prologue): Used here.
29909 (arm_emit_ldrd_pop): New function.
29910 (arm_expand_epilogue): Used here.
29911 (arm_get_frame_offsets): Update condition.
29912 (arm_emit_multi_reg_pop): Add a special case for load of a single
29913 register with writeback.
29914
29915 2013-04-16 Uros Bizjak <ubizjak@gmail.com>
29916
29917 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
29918 description.
29919
29920 2013-04-16 Richard Biener <rguenther@suse.de>
29921
29922 PR tree-optimization/56756
29923 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
29924 (first_mem_ref_loc): New.
29925 (execute_sm): Place the load temporarily before a previous
29926 access instead of in the latch edge to ensure its SSA dependencies
29927 are defined at points dominating the load.
29928
29929 2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
29930
29931 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
29932 correct fix by moving header and footer insn to the footer of
29933 the merged basic block. Clear BB_END of the merged-away block.
29934
29935 PR middle-end/43631
29936 * emit-rtl.c (make_note_raw): New function.
29937 (link_insn_into_chain): New static inline function.
29938 (add_insn): Use it.
29939 (add_insn_before, add_insn_after): Factor insn chain linking code...
29940 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
29941 using link_insn_into_chain.
29942 (note_outside_basic_block_p): New helper function for emit_note_after
29943 and emit_note_before.
29944 (emit_note_after): Use nobb variant of add_insn_after if the note
29945 should not be contained in a basic block.
29946 (emit_note_before): Use nobb variant of add_insn_before if the note
29947 should not be contained in a basic block.
29948 (emit_note_copy): Use make_note_raw.
29949 (emit_note): Likewise.
29950 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
29951 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
29952 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
29953 the moved barrier the tail of the basic block it follows.
29954 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
29955
29956 2013-04-15 Jakub Jelinek <jakub@redhat.com>
29957
29958 PR tree-optimization/56962
29959 * gimple-ssa-strength-reduction.c (record_increment): Only set
29960 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
29961 either rhs1 or rhs2 is equal to c->base_expr.
29962
29963 2013-04-15 Richard Biener <rguenther@suse.de>
29964
29965 PR tree-optimization/56933
29966 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
29967 member.
29968 (GROUP_READ_WRITE_DEPENDENCE): Remove.
29969 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
29970 * tree-vect-data-refs.c (vect_analyze_group_access): Move
29971 dependence check ...
29972 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
29973 ... here.
29974 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
29975 GROUP_READ_WRITE_DEPENDENCE.
29976
29977 2013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29978
29979 * emit-rtl.c (reset_all_used_flags): New function.
29980 (verify_rtl_sharing): Call reset_all_used_flags before and after
29981 performing the checks.
29982
29983 2013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29984
29985 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
29986 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
29987 * config/arm/constraints.md (De): New constraint.
29988 * config/arm/neon.md (anddi3_neon): Delete.
29989 (neon_vand<mode>): Expand to standard anddi3 pattern.
29990 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
29991 Move earlier in the file.
29992 (neon_inv_logic_op2): Likewise.
29993 (arm_anddi_operand_neon): New predicate.
29994
29995 2013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29996
29997 * configure.ac (gcc_cv_ld_as_needed): Set
29998 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
29999 Use -z ignore, -z record on *-*-solaris2*.
30000 (HAVE_LD_AS_NEEDED): Update comment.
30001 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
30002 * configure: Regenerate.
30003 * config.in: Regenerate.
30004 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
30005 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
30006 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
30007 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
30008 equivalents. Fix markup.
30009 * doc/tm.texi: Regenerate.
30010
30011 2013-04-15 Andrew Hsieh <andrewhsieh.google.com>
30012
30013 * config/i386/i386.opt: New option mstack-protector-guard=.
30014 * config/i386/i386-opts.h: Add enum stack_protector_guard.
30015 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
30016 TARGET_SSP_TLS_GUARD.
30017 * config/i386/i386.c (ix86_option_override_internal): Set
30018 ix86_stack_protector_guard.
30019 * config/i386/i386.md (stack_protect_set): Enable for
30020 TARGET_SSP_TLS_GUARD only.
30021 (stack_protect_set_<mode>): Ditto.
30022 (stack_protect_test): Ditto.
30023 (stack_protect_test_<mode>): Ditto.
30024 * doc/invoke.texi (i386 Option): Document.
30025
30026 2013-04-15 Eric Botcazou <ebotcazou@adacore.com>
30027
30028 PR target/56890
30029 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
30030 (S_MODES): Set H_MODE bit.
30031 (SF_MODES): Set only S_MODE and SF_MODE bits.
30032 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
30033 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
30034 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
30035 <MODE_FLOAT>: Likewise.
30036
30037 2013-04-15 Joey Ye <joey.ye@arm.com>
30038
30039 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
30040
30041 2013-04-15 Joey Ye <joey.ye@arm.com>
30042
30043 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
30044 for real far jump.
30045 (thumb_far_jump_used_p): Count instruction size and set
30046 far_jump_used.
30047
30048 2013-04-14 Eric Botcazou <ebotcazou@adacore.com>
30049
30050 * reorg.c (fill_simple_delay_slots): Reindent block of code.
30051 * resource.c (mark_target_live_regs): Reformat conditional block.
30052
30053 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
30054
30055 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
30056 notes, they are emitted only just before final.
30057 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
30058
30059 2013-04-13 Steven Bosscher <steven@gcc.gnu.org>
30060
30061 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
30062 * cfgrtl.c (delete_insn): Call it here instead.
30063 * lra-spills.c (lra_final_code_change): Use delete_insn.
30064 * haifa-sched.c (sched_remove_insn): Likewise.
30065 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
30066 returning to the nop pool.
30067 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
30068 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
30069
30070 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
30071
30072 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
30073 * doc/tm.texi: Regenerated.
30074
30075 2013-04-12 Uros Bizjak <ubizjak@gmail.com>
30076
30077 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
30078 QImode checks.
30079
30080 2013-04-12 Steven Bosscher <steven@gcc.gnu.org>
30081
30082 * df-core.c (df_find_def): Compare register numbers.
30083 (df_find_use): Likewise.
30084
30085 2013-04-12 Vladimir Makarov <vmakarov@redhat.com>
30086
30087 PR target/56903
30088 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
30089 lra_in_progress for return.
30090
30091 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
30092
30093 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
30094 define_insn into define_insn_and_split and emit movsicc patterns.
30095
30096 2013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
30097
30098 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
30099
30100 2013-04-12 Richard Biener <rguenther@suse.de>
30101
30102 * tree-pass.h (TODO_do_not_ggc_collect): New.
30103 * passes.c (execute_one_ipa_transform_pass): Honor
30104 TODO_do_not_ggc_collect.
30105 (execute_one_pass): Likewise.
30106
30107 Revert
30108 2013-04-10 Richard Biener <rguenther@suse.de>
30109
30110 * passes.c (init_optimization_passes): Remove reload pass.
30111 * ira.c (do_reload): Merge into ...
30112 (ira): ... this.
30113 (rest_of_handle_reload): Remove.
30114 (pass_reload): Likewise.
30115 * config/i386/i386.c (ix86_option_override): Refer to ira instead
30116 of reload for vzeroupper pass placement.
30117
30118 2013-04-12 Jakub Jelinek <jakub@redhat.com>
30119
30120 PR tree-optimization/56918
30121 PR tree-optimization/56920
30122 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
30123 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
30124 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
30125 use wide_mul_with_sign method.
30126
30127 2013-04-12 Richard Biener <rguenther@suse.de>
30128
30129 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
30130 not be considered a gimple constant.
30131
30132 2013-04-12 Marc Glisse <marc.glisse@inria.fr>
30133
30134 * fold-const.c (const_binop): Handle vector shifts by a scalar.
30135 (fold_binary_loc): Call const_binop also for mixed vector-scalar
30136 operations.
30137
30138 2013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
30139 Jakub Jelinek <jakub@redhat.com>
30140
30141 * opts.c: Include diagnostic-color.h.
30142 (common_handle_option): Handle OPT_fdiagnostics_color_.
30143 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
30144 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
30145 (diagnostic-color.o): New.
30146 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
30147 (diagnostic_color_rule): New enum.
30148 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
30149 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
30150 the location string.
30151 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
30152 either NULL, or color kind.
30153 * diagnostic-color.c: New file.
30154 * diagnostic-color.h: New file.
30155 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
30156 arguments.
30157 * doc/invoke.texi (-fdiagnostics-color): Document.
30158 * pretty-print.h (pp_show_color): Define.
30159 (struct pretty_print_info): Add show_color field.
30160 * diagnostic.c: Include diagnostic-color.h.
30161 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
30162 macros. Colorize error:, warning: etc. strings and also the location
30163 string.
30164 (diagnostic_show_locus): Colorize the caret line.
30165 * pretty-print.c: Include diagnostic-color.h.
30166 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
30167 inside of %< %> quotes or quoted through q format modifier.
30168
30169 2013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30170
30171 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
30172
30173 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
30174
30175 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
30176 code in CC_NZ mode.
30177 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
30178 pattern.
30179
30180 2013-04-11 Marek Polacek <polacek@redhat.com>
30181
30182 PR tree-optimization/48184
30183 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
30184
30185 2013-04-11 Eric Botcazou <ebotcazou@adacore.com>
30186
30187 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
30188 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
30189 (skip_simple_arithmetic): Tidy up.
30190 * tree.h (skip_simple_constant_arithmetic): Declare.
30191
30192 2013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
30193
30194 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
30195
30196 2013-04-11 Richard Biener <rguenther@suse.de>
30197
30198 * tree-vect-loop.c (get_initial_def_for_induction): Properly
30199 generate vector constants.
30200
30201 2013-04-11 Richard Biener <rguenther@suse.de>
30202
30203 PR tree-optimization/56878
30204 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
30205 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
30206 New function.
30207 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30208 Prefer to align the DR with the most invariant base address.
30209
30210 2013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
30211
30212 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
30213 comment.
30214
30215 2013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
30216
30217 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
30218 floating-point vector comparisons against 0.
30219
30220 2013-04-11 Jakub Jelinek <jakub@redhat.com>
30221
30222 PR tree-optimization/56899
30223 * fold-const.c (extract_muldiv_1): Apply distributive law
30224 only if TYPE_OVERFLOW_WRAPS (ctype).
30225
30226 2013-04-11 Bin Cheng <bin.cheng@arm.com>
30227
30228 PR target/56124
30229 * ira-costs.c (scan_one_insn): Check whether the source rtx of
30230 loading has side effect.
30231
30232 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
30233
30234 * config/sparc/sparc.c: Include tree-pass.h.
30235 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
30236 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
30237 head of file. Change return type. Split off gate function.
30238 (sparc_gate_work_around_errata): New function.
30239 (pass_work_around_errata): New pass definition.
30240 (insert_pass_work_around_errata) New pass insert definition to
30241 insert pass_work_around_errata just after delayed-branch scheduling.
30242 (sparc_option_override): Insert the pass.
30243 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
30244
30245 2013-04-10 David S. Miller <davem@davemloft.net>
30246
30247 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
30248 or -mcpu=hypersparc.
30249
30250 * target.def (cstore_mode): New hook.
30251 * target.h: Include insn-codes.h
30252 * targhooks.c: Likewise.
30253 (default_cstore_mode): New function.
30254 * targhooks.h: Declare it.
30255 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
30256 * doc/tm.texi: Rebuild.
30257 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
30258 target hook, rather than inspecting the insn_data.
30259 * config/sparc/sparc.c (sparc_cstore_mode): New function.
30260 (TARGET_CSTORE_MODE): Redefine.
30261 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
30262 result patterns.
30263 * config/sparc/predicates.md (cstore_result_operand): New special
30264 predicate.
30265 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
30266 Use it for operand 0.
30267 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
30268 (*snesi_special): Likewise.
30269 (*snesi_zero): Likewise.
30270 (*seqsi_zero): Likewise.
30271 (*sltu_insn): Likewise.
30272 (*sgeu_insn): Likewise.
30273 (*seqdi_special): Make operand 0 and comparison operation be of
30274 DImode.
30275 (*snedi_special): Likewise.
30276 (*snedi_special_vis3): Likewise.
30277 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
30278 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
30279 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
30280 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
30281 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
30282 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
30283 (*sltu_extend_sp64): Likewise.
30284 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
30285 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
30286 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
30287 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
30288 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
30289
30290 2013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
30291
30292 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
30293 (aarch64_start_file): Use the new function.
30294
30295 2013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
30296 Jason Merrill <jason@redhat.com>
30297
30298 * common.opt: Add -gdwarf.
30299 * opts.c (common_handle_option): Handle it.
30300 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
30301
30302 2013-04-10 Richard Biener <rguenther@suse.de>
30303
30304 * passes.c (execute_todo): Do not call ggc_collect conditional here.
30305 (execute_one_ipa_transform_pass): But unconditionally here.
30306 (execute_one_pass): And here.
30307 (init_optimization_passes): Remove reload pass.
30308 * tree-pass.h (TODO_ggc_collect): Remove.
30309 (pass_reload): Likewise.
30310 * ira.c (do_reload): Merge into ...
30311 (ira): ... this.
30312 (rest_of_handle_reload): Remove.
30313 (pass_reload): Likewise.
30314 * config/i386/i386.c (ix86_option_override): Refer to ira instead
30315 of reload for vzeroupper pass placement.
30316 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
30317 and todo_flags_finish of all passes.
30318
30319 2013-04-10 Richard Biener <rguenther@suse.de>
30320
30321 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
30322 first_const_oprnd field, rename first_def_type to first_op_type.
30323 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
30324 (vect_get_and_check_slp_defs): Always use the type of the
30325 operand. Allow mixed vect_external_def, vect_constant_def types.
30326 (vect_get_constant_vectors): Handle mixed vect_external_def,
30327 vect_constant_def types.
30328
30329 2013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
30330
30331 PR tree-optimization/55524
30332 * tree-ssa-math-opts.c
30333 (convert_mult_to_fma): Don't use an fms construct
30334 when we don't have an fms operation, but fnma, and it looks
30335 likely that we'll be able to use the latter.
30336
30337 2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
30338
30339 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
30340 function.
30341 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
30342 inline fail caused by overwritable functions.
30343
30344 2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
30345
30346 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
30347 unnecessary bits in the constant power of two case.
30348
30349 2013-04-10 Richard Biener <rguenther@suse.de>
30350
30351 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
30352 broken code swapping operands.
30353 (vect_build_slp_tree): Do not compute load permutations here.
30354 (vect_analyze_slp_instance): Compute load permutations here,
30355 after building the SLP tree.
30356
30357 2013-04-09 Christian Bruel <christian.bruel@st.com>
30358
30359 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
30360 of next/prev_real_insn.
30361
30362 2013-04-09 Jan Hubicka <jh@suse.cz>
30363
30364 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
30365 Drop aliased parameter.
30366 (function_and_variable_visibility): Do not handle alias pairs.
30367 * cgraph.c (varpool_externally_visible_p): Update prototype.
30368 * varpool.c (varpool_add_new_variable): Update.
30369
30370 2013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30371
30372 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
30373
30374 2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
30375
30376 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
30377
30378 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
30379
30380 2013-04-09 Marek Polacek <polacek@redhat.com>
30381
30382 PR tree-optimization/48762
30383 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
30384
30385 2013-04-09 Richard Biener <rguenther@suse.de>
30386
30387 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
30388 dealing with cost.
30389 (vect_build_slp_tree): Likewise.
30390 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
30391 calculating the cost of a SLP instance.
30392 (vect_analyze_slp_instance): Use it from here, after building
30393 the SLP tree.
30394
30395 2013-04-09 Jakub Jelinek <jakub@redhat.com>
30396
30397 PR middle-end/56883
30398 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
30399 expand_omp_for_static_chunk): Use simple_p = true in
30400 force_gimple_operand_gsi calls when assigning to addressable decls.
30401
30402 2013-04-09 Jeff Law <law@redhat.com>
30403
30404 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
30405 when the boolean was created by converting a wider object which
30406 had a boolean range.
30407
30408 2013-04-09 Richard Biener <rguenther@suse.de>
30409
30410 * tree-vectorizer.h (slp_void_p): Remove.
30411 (slp_tree): Typedef before _slp_tree declaration.
30412 (struct _slp_tree): Use a vector of slp_tree as children.
30413 (vect_get_place_in_interleaving_chain): Remove.
30414 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
30415 Move ...
30416 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
30417 and make static.
30418 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
30419 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
30420 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
30421 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
30422 Use slp_node instead of slp_void_p and adjust.
30423
30424 2013-04-09 Richard Biener <rguenther@suse.de>
30425
30426 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
30427 work that is not necessary.
30428
30429 2013-04-09 Jakub Jelinek <jakub@redhat.com>
30430
30431 PR tree-optimization/56854
30432 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
30433 forward into clobber stmts if it would change MEM_REF lhs into
30434 non-MEM_REF.
30435
30436 2013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
30437
30438 * tree.c (type_hash_lookup, type_hash_add): Make static.
30439 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
30440
30441 2013-04-09 Richard Biener <rguenther@suse.de>
30442
30443 * tree.h (unsave_expr_now): Remove.
30444 * tree-inline.c (mark_local_for_remap_r): Remove.
30445 (unsave_expr_1): Likewise.
30446 (unsave_r): Likewise.
30447 (unsave_expr_now): Likewise.
30448 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
30449 (propagate_tree_value): Likewise.
30450
30451 2013-04-08 Steven Bosscher <steven@gcc.gnu.org>
30452
30453 * doc/rtl.texi (sequence): Rewrite documentation to match the
30454 current use of SEQUENCE rtl objects.
30455 * rtl.def (SEQUENCE): Likewise.
30456
30457 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
30458 Update documentation.
30459 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
30460 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
30461
30462 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
30463
30464 2013-04-08 Teresa Johnson <tejohnson@google.com>
30465
30466 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
30467 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
30468 methods.
30469 (estimate_edge_size_and_time): Add comment to suggest using rounding
30470 methods.
30471 (estimate_node_size_and_time): Ditto.
30472 (remap_edge_change_prob): Use helper rounding divide methods.
30473 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
30474 (gimple_mod_pow2_value_transform): Ditto.
30475 (gimple_mod_subtract_transform): Ditto.
30476 (gimple_ic_transform): Ditto.
30477 (gimple_stringops_transform): Ditto.
30478 * stmt.c (conditional_probability): Ditto.
30479 (emit_case_dispatch_table): Ditto.
30480 * lto-cgraph.c (merge_profile_summaries): Ditto.
30481 * tree-optimize.c (execute_fixup_cfg): Ditto.
30482 * cfgcleanup.c (try_forward_edges): Ditto.
30483 * cfgloopmanip.c (scale_loop_profile): Ditto.
30484 (loopify): Ditto.
30485 (duplicate_loop_to_header_edge): Ditto.
30486 (lv_adjust_loop_entry_edge): Ditto.
30487 * tree-vect-loop.c (vect_transform_loop): Ditto.
30488 * profile.c (compute_branch_probabilities): Ditto.
30489 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
30490 * lto-streamer-in.c (input_cfg): Ditto.
30491 * gimple-streamer-in.c (input_bb): Ditto.
30492 * ipa-cp.c (update_profiling_info): Ditto.
30493 (update_specialized_profile): Ditto.
30494 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
30495 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
30496 rounding methods.
30497 * sched-rgn.c (compute_dom_prob_ps): Ditto.
30498 (compute_trg_info): Ditto.
30499 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
30500 (purge_dead_edges): Ditto.
30501 * loop-unswitch.c (unswitch_loop): Ditto.
30502 * cgraphclones.c (cgraph_clone_edge): Ditto.
30503 (cgraph_clone_node): Ditto.
30504 * tree-inline.c (copy_bb): Ditto.
30505 (copy_edges_for_bb): Ditto.
30506 (initialize_cfun): Ditto.
30507 (copy_cfg_body): Ditto.
30508 (expand_call_inline): Ditto.
30509
30510 2013-04-08 Kai Tietz <ktietz@redhat.com>
30511
30512 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
30513 TARGET_CYGWIN64 by TARGET_64BIT.
30514
30515 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
30516
30517 * config/epiphany/epiphany.md (GPR_1): New constant.
30518 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
30519 * config/epiphany/epiphany.c (gen_compare_reg):
30520 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
30521 is already in place.
30522 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
30523 Don't require being called during rtl expansion; If y operlaps r0,
30524 return 0.
30525 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
30526 (epiphany_expand_epilogue): Likewise.
30527
30528 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
30529 Don't use CC_FPmode for ORDERED / UNORDERED.
30530 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
30531
30532 * config/epiphany/constraints.md (CnL): New constraint.
30533 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
30534 * config/epiphany/predicates.md (add_operand): Allow 1024.
30535
30536 * config/epiphany/epiphany.md (logical_op): New code iterator.
30537 (op_mnc): New code attribute.
30538 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
30539 (mov_f+1, mov_f+2): New peephole2 patterns.
30540
30541 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
30542 (cstoresi4): Also allow re-use of zero result when doing a NE
30543 comparison to a non-zero operand.
30544 Use (clobber (scratch)) for first insn if the gpr output is not needed.
30545
30546 * config/epiphany/epiphany.md (<insn_opname>v2si3):
30547 Use gen_addsi3_i / gen_subsi3_i.
30548
30549 2013-04-08 Jakub Jelinek <jakub@redhat.com>
30550
30551 PR c++/34949
30552 PR c++/50243
30553 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
30554 contain anything but clobbers, at most one __builtin_stack_restore,
30555 optionally debug stmts and final resx, and if it has at least one
30556 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
30557 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
30558 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
30559 which isn't defaut definition, remove them.
30560 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
30561 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
30562 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
30563 with MEM_REF LHS with SSA_NAME address.
30564
30565 2013-04-08 Jeff Law <law@redhat.com>
30566
30567 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
30568
30569 2013-04-08 Richard Biener <rguenther@suse.de>
30570
30571 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
30572 extra newline.
30573 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
30574 determined vector type.
30575 (vect_analyze_data_refs): Likewise.
30576 (vect_get_new_vect_var): Adjust.
30577 (vect_create_destination_var): Preserve SSA name versions.
30578 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
30579 not dump anything here.
30580
30581 2013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
30582
30583 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
30584 Add member lr_slot_known.
30585 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
30586 if necessary.
30587 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
30588 Remove code that sets lr_slot_offset according to what a previous
30589 version of epiphany_emit_save_restore used to do.
30590 (epiphany_emit_save_restore): When doing an lr save or restore,
30591 set/verify lr_slot_known and lr_slot_offset.
30592
30593 2013-04-08 Xinyu Qi <xyqi@marvell.com>
30594
30595 PR target/54338
30596 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
30597 in ALL_REGS.
30598
30599 2013-04-08 Richard Biener <rguenther@suse.de>
30600
30601 * alias.c (find_base_term): Fix thinko in previous change.
30602
30603 2013-04-08 Jakub Jelinek <jakub@redhat.com>
30604
30605 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
30606 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
30607 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
30608 if possible to compute val.
30609 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
30610 For QImode integers don't require anything about precision. Use
30611 const_with_all_bytes_same to find out if the constant doesn't have
30612 repeated bytes in it.
30613
30614 2013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30615
30616 * config/s390/s390.c (s390_expand_insv): Only accept insertions
30617 within mode size.
30618
30619 2013-04-08 Marek Polacek <polacek@redhat.com>
30620
30621 PR rtl-optimization/48182
30622 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
30623 value to 1.
30624
30625 2013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30626
30627 PR target/55487
30628 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
30629 nuses, make sure we have a label.
30630
30631 2013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30632
30633 PR target/56843
30634 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
30635 (rs6000_emit_swdiv_low_precision): Remove.
30636 (rs6000_emit_swdiv): Rewrite to handle between one and four
30637 iterations of Newton-Raphson generally; modify required number of
30638 iterations for some cases.
30639 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
30640
30641 2013-04-05 Steven Bosscher <steven@gcc.gnu.org>
30642
30643 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
30644 set-but-unused variable.
30645
30646 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
30647 basic blocks of released function bodies garbage-collectable.
30648
30649 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
30650 (struct rtl_opt_pass): Add TODO_df_finish.
30651
30652 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
30653
30654 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30655
30656 * config/arm/constraints.md (q): New constraint.
30657 * config/arm/ldrdstrd.md: New file.
30658 * config/arm/arm.md (ldrdstrd.md) New include.
30659 (arm_movdi): Use "q" instead of "r" constraint
30660 for double-word memory access.
30661 (movdf_soft_insn): Likewise.
30662 * config/arm/vfp.md (movdi_vfp): Likewise.
30663 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
30664 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
30665 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
30666 (mem_ok_for_ldrd_strd): Likewise.
30667 (output_move_double): Update assertion.
30668
30669 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30670
30671 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
30672
30673 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30674
30675 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
30676 define_insn_and_split.
30677 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
30678
30679 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30680
30681 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
30682 define_insn_and_split.
30683 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
30684 (shiftsi3_compare): New pattern.
30685 (rrx): New pattern.
30686 * config/arm/unspecs.md (UNSPEC_RRX): New.
30687
30688 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30689
30690 * config/arm/arm.md (negdi_extendsidi): New pattern.
30691 (negdi_zero_extendsidi): Likewise.
30692
30693 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30694
30695 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
30696 define_insn_and_split.
30697 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
30698 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
30699
30700 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30701
30702 * config/arm/arm.md (arm_subdi3): Convert define_insn into
30703 define_insn_and_split.
30704 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
30705 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
30706
30707 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30708
30709 * config/arm/arm.md (subsi3_carryin): New pattern.
30710 (subsi3_carryin_const): Likewise.
30711 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
30712 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
30713
30714 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30715
30716 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
30717
30718 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
30719
30720 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
30721 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
30722
30723 2013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30724
30725 * config/arm/arm.c (arm_expand_builtin): Change fcode
30726 type to unsigned int.
30727
30728 2013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30729
30730 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
30731
30732 2013-04-04 Ian Lance Taylor <iant@google.com>
30733
30734 * doc/standards.texi (Standards): The Go frontend supports the Go 1
30735 language standard.
30736
30737 2013-04-04 Steven Bosscher <steven@gcc.gnu.org>
30738
30739 PR middle-end/56729
30740 * df-scan.c (df_insn_delete): Disable failing assert.
30741
30742 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30743
30744 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
30745 New function prototype.
30746 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
30747 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
30748 (arm_builtin_vectorized_function): New function.
30749
30750 2013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30751
30752 * config/arm/arm_neon_builtins.def: New file.
30753 * config/arm/arm.c (neon_builtin_data): Move contents to
30754 arm_neon_builtins.def.
30755 (enum arm_builtins): Include neon builtin definitions.
30756 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
30757 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
30758
30759 2013-04-04 Marek Polacek <polacek@redhat.com>
30760
30761 PR tree-optimization/48186
30762 * predict.c (maybe_hot_frequency_p): Return false if
30763 HOT_BB_FREQUENCY_FRACTION is 0.
30764 (cgraph_maybe_hot_edge_p): Likewise.
30765
30766 2013-04-04 Richard Biener <rguenther@suse.de>
30767
30768 PR tree-optimization/56826
30769 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
30770 more accurately.
30771
30772 2013-04-04 Richard Biener <rguenther@suse.de>
30773
30774 PR tree-optimization/56213
30775 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
30776 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
30777
30778 2013-04-04 Richard Biener <rguenther@suse.de>
30779
30780 PR tree-optimization/56837
30781 * tree-loop-distribution.c (classify_partition): For non-zero
30782 values require that the value has the same precision as its
30783 mode to be useful as memset value.
30784
30785 2013-04-03 Nick Clifton <nickc@redhat.com>
30786
30787 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
30788 (fmssf4): Use fmsf.s on E3V5 architectures.
30789 (fnmasf4): Use fnmaf.s on E3V5 architectures.
30790 (fnmssf4): Use fnmsf.s on E3V5 architectures.
30791
30792 2013-04-03 Jeff Law <law@redhat.com>
30793
30794 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
30795 (lra-eliminations.o): Likewise.
30796
30797 2013-04-03 Teresa Johnson <tejohnson@google.com>
30798
30799 * gcov-io.c (compute_working_sets): Moved most of body of old
30800 compute_working_sets here from profile.c.
30801 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
30802 (gcov_working_set_t): Moved typedef here from basic-block.h
30803 (compute_working_set): Declare.
30804 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
30805 (get_working_sets): Renamed from compute_working_set,
30806 replace most of body with call to new compute_working_sets.
30807 (get_exec_counts): Replace call to compute_working_sets
30808 to get_working_sets.
30809 * profile.h (get_working_sets): Renamed from compute_working_set.
30810 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
30811 to get_working_sets.
30812 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
30813 * gcov-dump.c (dump_working_sets): New function.
30814
30815 2013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
30816
30817 * hwint.c (sext_hwi, zext_hwi): New functions.
30818 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
30819 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
30820 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
30821 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
30822 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
30823 (sext_hwi, zext_hwi): New functions.
30824
30825 2013-04-03 Jeff Law <law@redhat.com>
30826
30827 PR tree-optimization/56799
30828 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
30829 back test for widening conversion erroneously dropped in prior change.
30830
30831 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30832
30833 PR target/56809
30834 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
30835 instead of next_real_insn.
30836
30837 2013-04-03 Marek Polacek <polacek@redhat.com>
30838
30839 PR sanitizer/55702
30840 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
30841
30842 2013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30843
30844 PR target/56809
30845 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
30846 next_real_insn.
30847 (thumb1_output_casesi): Likewise.
30848 (thumb2_output_casesi): Likewise.
30849
30850 2013-04-03 Richard Biener <rguenther@suse.de>
30851
30852 PR tree-optimization/56817
30853 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
30854 Split out ...
30855 (tree_unroll_loops_completely_1): ... new function to manually
30856 walk the loop tree, properly defering outer loops of unrolled
30857 loops to later iterations.
30858
30859 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
30860
30861 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
30862 (vectorizable_load): Likewise.
30863 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
30864 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
30865
30866 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
30867
30868 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
30869 BIT_FIELD_REF.
30870
30871 2013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30872
30873 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
30874
30875 2013-04-03 Bin Cheng <bin.cheng@arm.com>
30876
30877 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
30878
30879 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
30880
30881 PR tree-optimization/56790
30882 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
30883 folding.
30884
30885 2013-04-03 Marc Glisse <marc.glisse@inria.fr>
30886
30887 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
30888 Handle VEC_MERGE.
30889 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
30890 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
30891 equal arguments.
30892
30893 2013-04-03 Jakub Jelinek <jakub@redhat.com>
30894
30895 PR c/19449
30896 * tree.h (force_folding_builtin_constant_p): New decl.
30897 * builtins.c (force_folding_builtin_constant_p): New variable.
30898 (fold_builtin_constant_p): Fold immediately also if
30899 force_folding_builtin_constant_p.
30900
30901 2013-04-03 Richard Biener <rguenther@suse.de>
30902
30903 PR tree-optimization/56812
30904 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
30905 DRs of the same interleaving chain are independent.
30906
30907 2013-04-02 Jason Merrill <jason@redhat.com>
30908
30909 * gdbinit.in (pbb): Use debug fn.
30910
30911 2013-04-02 Lawrence Crowl <crowl@google.com>
30912
30913 * sese.h (struct ivtype_map_elt_s): Remove unused.
30914 (extern debug_ivtype_map): Remove unused.
30915 (extern eq_ivtype_map_elts): Remove unused.
30916 * sese.c (debug_ivtype_map): Removed unused.
30917 (debug_ivtype_map_1): Removed unused.
30918 (debug_ivtype_elt): Remove unused.
30919 (eq_ivtype_map_elts): Remove unused.
30920
30921 2013-04-02 Kai Tietz <ktietz@redhat.com>
30922
30923 PR target/52790
30924 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
30925 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
30926 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
30927 function.
30928 (legitimize_pe_coff_symbol): Likewise.
30929 (is_imported_p): New helper-function.
30930 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
30931 for Windows x64 targets.
30932 (ix86_expand_prologue): Optimize for pe-coff targets.
30933 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
30934 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
30935 medium/large code-model.
30936 (legitimize_pic_address): Likewise.
30937 (legitimize_tls_address): Likewise.
30938 (ix86_expand_call): Likewise.
30939 (x86_output_mi_thunk): Likewise.
30940 (get_dllimport_decl): Add new beimport argument.
30941 (construct_plt_address): Don't assert for x64 pe-coff targets.
30942 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
30943 targets.
30944 (SYMBOL_FLAG_STUBVAR): New macro.
30945 (SYMBOL_REF_STUBVAR_P): Likewise.
30946 * config/i386/winnt.c (stub_list): New structure.
30947 (stub_head): New local variable.
30948 (i386_pe_record_stub): New function.
30949 (i386_pe_file_end): Emit refptr-stubs.
30950
30951 2013-04-02 Jakub Jelinek <jakub@redhat.com>
30952
30953 PR rtl-optimization/56745
30954 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
30955 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
30956
30957 PR c++/34949
30958 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
30959 and both of them are MEM_REFs, just compare first argument for
30960 equality and attempt to deal even with differing offsets.
30961
30962 PR c++/34949
30963 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
30964 of gimple_clobber_p to be MEM_REF.
30965 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
30966 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
30967 after gimplification.
30968 * asan.c (get_mem_ref_of_assignment): Don't instrument
30969 gimple_clobber_p stmts.
30970 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
30971 gimple_clobber_p stmt if they have MEM_REF lhs and
30972 are dead because of another gimple_clobber_p stmt.
30973 * tree-ssa-live.c (clear_unused_block_pointer): Treat
30974 gimple_clobber_p stmts like debug stmts.
30975 (remove_unused_locals): Remove clobbers with MEM_REF lhs
30976 that refer to unused VAR_DECLs or uninitialized values.
30977 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
30978 gimple_clobber_p stmts if they refer to removed parameters.
30979 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
30980 formatting.
30981
30982 2013-04-02 Uros Bizjak <ubizjak@gmail.com>
30983
30984 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
30985 using SWI48 mode attribute.
30986
30987 2013-04-02 Wei Mi <wmi@google.com>
30988
30989 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
30990 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
30991 *<rotate_insn><mode>3_mask in i386.md.
30992
30993 2013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
30994
30995 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
30996
30997 2013-04-02 Richard Biener <rguenther@suse.de>
30998
30999 PR tree-optimization/56778
31000 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31001 Runtime alias tests are not supported for gather loads.
31002 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
31003 stmts referenced from SSA operands before updating SSA form.
31004
31005 2013-04-02 Ian Caulfield <ian.caulfield@arm.com>
31006 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31007
31008 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
31009 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
31010 * config/arm/cortex-a53.md: New file.
31011 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
31012 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
31013 * config/arm/arm.c (arm_issue_rate): Likewise.
31014 * config/arm/arm-tune.md: Regenerate
31015 * config/arm/arm-tables.opt: Regenerate.
31016 * config/arm/arm-cores.def: Add cortex-a53.
31017
31018 2013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
31019
31020 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
31021 non-static link.
31022
31023 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
31024
31025 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
31026 scalar load/store operations using B/H registers.
31027 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
31028
31029 2013-04-02 Sofiane Naci <sofiane.naci@arm.com>
31030
31031 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
31032 scalar move.
31033 * config/aarch64/aarch64.c
31034 (aarch64_simd_scalar_immediate_valid_for_move): New.
31035 * config/aarch64/aarch64-protos.h
31036 (aarch64_simd_scalar_immediate_valid_for_move): New.
31037 * config/aarch64/constraints.md (Dh, Dq): New.
31038 * config/aarch64/iterators.md (hq): New.
31039
31040 2013-04-02 Eric Botcazou <ebotcazou@adacore.com>
31041
31042 * reorg.c (get_branch_condition): Deal with conditional returns.
31043 (fill_simple_delay_slots): Remove dead code dealing with jumps.
31044
31045 2013-04-01 Wei Mi <wmi@google.com>
31046
31047 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
31048 Truncate operand 2 using %b asm operand modifier.
31049 (*<shift_insn><mode>3_mask): Ditto.
31050 (*<rotate_insn><mode>3_mask): Ditto.
31051
31052 2013-04-01 Steven Bosscher <steven@gcc.gnu.org>
31053
31054 PR middle-end/56798
31055 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
31056
31057 2013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
31058
31059 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
31060 of next_real_insn.
31061 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
31062
31063 2013-03-30 Lawrence Crowl <crowl@google.com>
31064
31065 * dse.c (clear_alias_sets): Remove never set.
31066 (disqualified_clear_alias_sets): Remove never set.
31067 (clear_alias_mode_pool): Remove never set.
31068 (dse_step0): Remove condition that is never true.
31069 (canon_address): Remove condition that is never true.
31070 (dse_step7): Remove condition that is never true.
31071 (rest_of_handle_dse): Remove condition that is never true.
31072 (rest_of_handle_dse::did_global): Remove never read from above.
31073 (dse_step2_spill): Remove never called from above.
31074 (dse_step5_spill): Remove never called from above.
31075
31076 2013-03-30 Steven Bosscher <steven@gcc.gnu.org>
31077
31078 * doc/md.texi (Standard Names) <casesi>: Update documentation for
31079 JUMP_TABLE_DATA changes.
31080 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
31081 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
31082 (Insns) <jump_table_data>: New entry.
31083 * doc/tm.texi: Regenerate.
31084
31085 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
31086
31087 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
31088 for table jump at the end of a basic block using tablejump_p.
31089 * targhooks.c (default_invalid_within_doloop): Likewise.
31090 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
31091 target hook implementation that is identical to the default hook.
31092 (rs6000_invalid_within_doloop): Remove.
31093
31094 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
31095 unused variable from tablejump_p call.
31096
31097 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
31098 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
31099 (INSN_DELETED_P): Likewise.
31100 (emit_jump_table_data): New prototype.
31101 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
31102 after 4th as unused.
31103 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
31104 * sched-vis.c (print_insn): Likewise.
31105 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
31106 insn for compatibility with back ends that use next_active_insn to
31107 identify jump table data.
31108 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
31109 (remove_insn): Likewise.
31110 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
31111 to be emitted.
31112 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
31113 (emit_jump_table_data): New function.
31114
31115 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
31116 basic block, a JUMP_TABLE_DATA never is.
31117 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
31118 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
31119 off from code handling real insns.
31120 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
31121 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
31122 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
31123 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
31124 is not a NONDEBUG_INSN_P.
31125 * ira-costs.c (scan_one_insn): Likewise.
31126 * jump.c (mark_all_labels): Likewise.
31127 (mark_jump_label_1): Likewise.
31128 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
31129 * lra.c (get_insn_freq): Expect all insns reaching here to be in
31130 a basic block.
31131 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
31132 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
31133 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
31134 JUMP_TABLE_DATA_P insns.
31135 (calculate_elim_costs_all_insns): Likewise.
31136 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
31137 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
31138 (delete_output_reload): Code style fixups.
31139 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
31140 insn flags on this non-insn.
31141 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
31142 as scheduling barriers, for pre-change compatibility.
31143 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
31144 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
31145
31146 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
31147 redundant JUMP_TABLE_DATA_P test.
31148 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
31149 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
31150 (frv_for_each_packet): Likewise.
31151 * config/i386/i386.c (min_insn_size): Likewise.
31152 (ix86_avoid_jump_mispredicts): Likewise.
31153 * config/m32r/m32r.c (m32r_is_insn): Likewise.
31154 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
31155 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
31156 (mips16_insn_length): Robustify.
31157 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
31158 (mips16_split_long_branches): Likewise.
31159 * config/pa/pa.c (pa_combine_instructions): Likewise.
31160 * config/rs6000/rs6000.c (get_next_active_insn): Treat
31161 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
31162 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
31163 as contributing to pool range lengths.
31164 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
31165 Remove redundant JUMP_TABLE_DATA_P test.
31166 (sh_loop_align): Likewise.
31167 (split_branches): Likewise.
31168 (sh_insn_length_adjustment): Likewise.
31169 * config/spu/spu.c (get_branch_target): Likewise.
31170
31171 2013-03-29 Jan Hubicka <jh@suse.cz>
31172
31173 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
31174 gcov streaming; stream hot bb threshold to ltrans.
31175 * predict.c (get_hot_bb_threshold): Break out from ....
31176 (maybe_hot_count_p): ... here.
31177 (set_hot_bb_threshold): New function.
31178 * lto-section-in.c (lto_section_name): Add profile.
31179 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
31180 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
31181 and data-streamer.h
31182 (histogram_entry): New structure.
31183 (histogram, histogram_pool): New global vars.
31184 (histogram_hash): New structure.
31185 (histogram_hash::hash): New method.
31186 (histogram_hash::equal): Likewise.
31187 (account_time_size): New function.
31188 (cmp_counts): New function.
31189 (dump_histogram): New function.
31190 (ipa_profile_generate_summary): New function.
31191 (ipa_profile_write_summary): New function.
31192 (ipa_profile_read_summary): New function.
31193 (ipa_profile): Decide on threshold.
31194 (pass_ipa_profile): Add ipa_profile_write_summary and
31195 ipa_profile_read_summary.
31196 * Makefile.in (ipa.o): Update dependencies.
31197 * lto-streamer.h (LTO_section_ipa_profile): New section.
31198
31199 2013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
31200
31201 * tree.h (VAR_P): New.
31202
31203 2013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
31204
31205 PR lto/56777
31206 * doc/invoke.texi ([-fwhole-program]): Fix typo.
31207
31208 2013-03-29 Steven Bosscher <steven@gcc.gnu.org>
31209
31210 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
31211 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
31212 (control_flow_insn_p): Likewise.
31213 * cfgrtl.c (duplicate_insn_chain): Likewise.
31214 * final.c (get_attr_length_1): Likewise.
31215 (shorten_branches): Likewise.
31216 (final_scan_insn): Likewise.
31217 * function.c (instantiate_virtual_regs): Likewise.
31218 * gcse.c (insert_insn_end_basic_block): Likewise.
31219 * ira-costs.c (scan_one_insn): Likewise.
31220 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
31221 * lra.c (check_rtl): Likewise.
31222 * reload1.c (elimination_costs_in_insn): Likewise.
31223 * reorg.c (follow_jumps): Likewise.
31224
31225 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
31226 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
31227 (thumb_far_jump_used_p): Likewise.
31228 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
31229 (workaround_speculation): Likewise.
31230 (add_sched_insns_for_speculation): Likewise.
31231 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
31232 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
31233 (frv_for_each_packet): Likewise.
31234 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
31235 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
31236 (final_emit_insn_group_barriers): Likewise.
31237 * config/m32r/m32r.c (m32r_is_insn): Likewise.
31238 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
31239 (mips16_insn_length): Likewise.
31240 * config/pa/pa.c (pa_reorg): Likewise.
31241 (pa_combine_instructions): Likewise.
31242 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
31243 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
31244 (sh_reorg): Likewise.
31245 (split_branches): Likewise.
31246 * config/spu/spu.c (get_branch_target): Likewise.
31247
31248 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
31249 JUMP_TABLE_DATA_P.
31250
31251 2013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
31252
31253 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
31254 Fix declaration name.
31255
31256 2013-03-28 Lawrence Crowl <crowl@google.com>
31257
31258 * graphds.h (struct graph.indicies): Remove unused.
31259 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
31260 (SCOP_ORIGINAL_PDDRS): Remove unused.
31261 * sese.h (extern insert_loop_close_phis): Removed unused.
31262 (extern insert_guard_phis): Removed unused.
31263 (extern ivtype_map_elt_info): Removed unused.
31264 (new_ivtype_map_elt): Removed unused.
31265 * sese.c (ivtype_map_elt_info): Removed unused.
31266
31267 2013-03-28 Lawrence Crowl <crowl@google.com>
31268
31269 * Makefile.in: Add several missing include dependences.
31270 (DUMPFILE_H): New.
31271 (test-dump.o): New. This object is not added to any executable,
31272 but is present for ad-hoc testing.
31273 * bitmap.c
31274 (debug (const bitmap_head_def &)): New.
31275 (debug (const bitmap_head_def *)): New.
31276 * bitmap.h
31277 (extern debug (const bitmap_head_def &)): New.
31278 (extern debug (const bitmap_head_def *)): New.
31279 * cfg.c
31280 (debug (edge_def &)): New.
31281 (debug (edge_def *)): New.
31282 * cfghooks.c
31283 (debug (basic_block_def &)): New.
31284 (debug (basic_block_def *)): New.
31285 * dumpfile.h
31286 (dump_node (const_tree, int, FILE *)): Correct source file.
31287 * dwarf2out.c
31288 (debug (die_struct &)): New.
31289 (debug (die_struct *)): New.
31290 * dwarf2out.h
31291 (extern debug (die_struct &)): New.
31292 (extern debug (die_struct *)): New.
31293 * gimple-pretty-print.c
31294 (debug (gimple_statement_d &)): New.
31295 (debug (gimple_statement_d *)): New.
31296 * gimple-pretty-print.h
31297 (extern debug (gimple_statement_d &)): New.
31298 (extern debug (gimple_statement_d *)): New.
31299 * ira-build.c
31300 (debug (ira_allocno_copy &)): New.
31301 (debug (ira_allocno_copy *)): New.
31302 (debug (ira_allocno &)): New.
31303 (debug (ira_allocno *)): New.
31304 * ira-int.h
31305 (extern debug (ira_allocno_copy &)): New.
31306 (extern debug (ira_allocno_copy *)): New.
31307 (extern debug (ira_allocno &)): New.
31308 (extern debug (ira_allocno *)): New.
31309 * ira-lives.c
31310 (debug (live_range &)): New.
31311 (debug (live_range *)): New.
31312 * lra-int.h
31313 (debug (lra_live_range &)): New.
31314 (debug (lra_live_range *)): New.
31315 * lra-lives.c
31316 (debug (lra_live_range &)): New.
31317 (debug (lra_live_range *)): New.
31318 * omega.c
31319 (debug (omega_pb_d &)): New.
31320 (debug (omega_pb_d *)): New.
31321 * omega.h
31322 (extern debug (omega_pb_d &)): New.
31323 (extern debug (omega_pb_d *)): New.
31324 * print-rtl.c
31325 (debug (const rtx_def &)): New.
31326 (debug (const rtx_def *)): New.
31327 * print-tree.c
31328 (debug_tree (tree): Move within file.
31329 (debug_raw (const tree_node &)): New.
31330 (debug_raw (const tree_node *)): New.
31331 (dump_tree_via_hooks (const tree_node *, int)): New.
31332 (debug (const tree_node &)): New.
31333 (debug (const tree_node *)): New.
31334 (debug_verbose (const tree_node &)): New.
31335 (debug_verbose (const tree_node *)): New.
31336 (debug_head (const tree_node &)): New.
31337 (debug_head (const tree_node *)): New.
31338 (debug_body (const tree_node &)): New.
31339 (debug_body (const tree_node *)): New.
31340 (debug_vec_tree (tree): Move and reimplement in terms of dump.
31341 (debug (vec<tree, va_gc> &)): New.
31342 (debug (vec<tree, va_gc> *)): New.
31343 * rtl.h
31344 (extern debug (const rtx_def &)): New.
31345 (extern debug (const rtx_def *)): New.
31346 * sbitmap.c
31347 (debug_raw (simple_bitmap_def &)): New.
31348 (debug_raw (simple_bitmap_def *)): New.
31349 (debug (simple_bitmap_def &)): New.
31350 (debug (simple_bitmap_def *)): New.
31351 * sbitmap.h
31352 (extern debug (simple_bitmap_def &)): New.
31353 (extern debug (simple_bitmap_def *)): New.
31354 (extern debug_raw (simple_bitmap_def &)): New.
31355 (extern debug_raw (simple_bitmap_def *)): New.
31356 * sel-sched-dump.c
31357 (debug (vinsn_def &)): New.
31358 (debug (vinsn_def *)): New.
31359 (debug_verbose (vinsn_def &)): New.
31360 (debug_verbose (vinsn_def *)): New.
31361 (debug (expr_def &)): New.
31362 (debug (expr_def *)): New.
31363 (debug_verbose (expr_def &)): New.
31364 (debug_verbose (expr_def *)): New.
31365 (debug (vec<rtx> &)): New.
31366 (debug (vec<rtx> *)): New.
31367 * sel-sched-dump.h
31368 (extern debug (vinsn_def &)): New.
31369 (extern debug (vinsn_def *)): New.
31370 (extern debug_verbose (vinsn_def &)): New.
31371 (extern debug_verbose (vinsn_def *)): New.
31372 (extern debug (expr_def &)): New.
31373 (extern debug (expr_def *)): New.
31374 (extern debug_verbose (expr_def &)): New.
31375 (extern debug_verbose (expr_def *)): New.
31376 (extern debug (vec<rtx> &)): New.
31377 (extern debug (vec<rtx> *)): New.
31378 * sel-sched-ir.h
31379 (_list_iter_cond_expr): Make inline instead of static.
31380 * sreal.c
31381 (debug (sreal &)): New.
31382 (debug (sreal *)): New.
31383 * sreal.h
31384 (extern debug (sreal &)): New.
31385 (extern debug (sreal *)): New.
31386 * tree.h
31387 (extern debug_raw (const tree_node &)): New.
31388 (extern debug_raw (const tree_node *)): New.
31389 (extern debug (const tree_node &)): New.
31390 (extern debug (const tree_node *)): New.
31391 (extern debug_verbose (const tree_node &)): New.
31392 (extern debug_verbose (const tree_node *)): New.
31393 (extern debug_head (const tree_node &)): New.
31394 (extern debug_head (const tree_node *)): New.
31395 (extern debug_body (const tree_node &)): New.
31396 (extern debug_body (const tree_node *)): New.
31397 (extern debug (vec<tree, va_gc> &)): New.
31398 (extern debug (vec<tree, va_gc> *)): New.
31399 * tree-cfg.c
31400 (debug (struct loop &)): New.
31401 (debug (struct loop *)): New.
31402 (debug_verbose (struct loop &)): New.
31403 (debug_verbose (struct loop *)): New.
31404 * tree-dump.c: Add header dependence.
31405 * tree-flow.h
31406 (extern debug (struct loop &)): New.
31407 (extern debug (struct loop *)): New.
31408 (extern debug_verbose (struct loop &)): New.
31409 (extern debug_verbose (struct loop *)): New.
31410 * tree-data-ref.c
31411 (debug (data_reference &)): New.
31412 (debug (data_reference *)): New.
31413 (debug (vec<data_reference_p> &)): New.
31414 (debug (vec<data_reference_p> *)): New.
31415 (debug (vec<ddr_p> &)): New.
31416 (debug (vec<ddr_p> *)): New.
31417 * tree-data-ref.h
31418 (extern debug (data_reference &)): New.
31419 (extern debug (data_reference *)): New.
31420 (extern debug (vec<data_reference_p> &)): New.
31421 (extern debug (vec<data_reference_p> *)): New.
31422 (extern debug (vec<ddr_p> &)): New.
31423 (extern debug (vec<ddr_p> *)): New.
31424 * tree-ssa-alias.c
31425 (debug (pt_solution &)): New.
31426 (debug (pt_solution *)): New.
31427 * tree-ssa-alias.h
31428 (extern debug (pt_solution &)): New.
31429 (extern debug (pt_solution *)): New.
31430 * tree-ssa-alias.c
31431 (debug (_var_map &)): New.
31432 (debug (_var_map *)): New.
31433 (debug (tree_live_info_d &)): New.
31434 (debug (tree_live_info_d *)): New.
31435 * tree-ssa-alias.h
31436 (extern debug (_var_map &)): New.
31437 (extern debug (_var_map *)): New.
31438 (extern debug (tree_live_info_d &)): New.
31439 (extern debug (tree_live_info_d *)): New.
31440
31441 2013-03-28 Jan Hubicka <jh@suse.cz>
31442
31443 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
31444
31445 2013-03-28 Ian Bolton <ian.bolton@arm.com>
31446
31447 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
31448 record only when desired or required.
31449
31450 2013-03-28 Uros Bizjak <ubizjak@gmail.com>
31451
31452 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
31453 *vec_extractv2di_1_rex64. Use x64 isa attribute.
31454
31455 2013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31456
31457 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
31458 (*andsi3_compare0_uxtw): New pattern.
31459 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
31460 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
31461
31462 2013-03-28 Jan Hubicka <jh@suse.cz>
31463
31464 * data-streamer-in.c (streamer_read_gcov_count): New function.
31465 * gimple-streamer-out.c: Include value-prof.h.
31466 (output_gimple_stmt): Output histogram.
31467 (output_bb): Use streamer_write_gcov_count.
31468 * value-prof.c: Include data-streamer.h
31469 (dump_histogram_value): Add HIST_TYPE_MAX.
31470 (stream_out_histogram_value): New function.
31471 (stream_in_histogram_value): New function.
31472 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
31473 (stream_out_histogram_value, stream_in_histogram_value): Declare.
31474 * data-streamer-out.c (streamer_write_gcov_count): New function.
31475 (streamer_write_gcov_count_stream): New function.
31476 * lto-cgraph.c (lto_output_edge): Update counter streaming.
31477 (lto_output_node): Likewise.
31478 (input_node, input_edge): Likewise.
31479 * lto-streamer-out.c (output_cfg): Update streaming.
31480 * lto-streamer-in.c (input_cfg): Likewise.
31481 * data-streamer.h (streamer_write_gcov_count,
31482 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
31483 * gimple-streamer-in.c: Include value-prof.h
31484 (input_gimple_stmt): Input histograms.
31485 (input_bb): Update profile streaming.
31486
31487 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
31488
31489 * genmodes.c (emit_max_int): New function.
31490 (emit_insn_modes_h): Added call to emit_max_function.
31491 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
31492 Added doc.
31493 * machmode.def: Fixed comment.
31494
31495 2013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
31496
31497 * combine.c (try_combine): Removed useless assert.
31498 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
31499
31500 2013-03-28 Marek Polacek <polacek@redhat.com>
31501 Richard Biener <rguenther@suse.de>
31502
31503 PR tree-optimization/56695
31504 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
31505 build signed result of a vector comparison.
31506 * tree-cfg.c (verify_gimple_comparison): Check that a result
31507 of a vector comparison has signed type.
31508
31509 2013-03-28 Richard Biener <rguenther@suse.de>
31510
31511 PR tree-optimization/37021
31512 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
31513 do not restrict gaps between groups.
31514 * tree-vect-stmts.c (vectorizable_load): Properly account for
31515 a gap between groups.
31516
31517 2013-03-28 Eric Botcazou <ebotcazou@adacore.com>
31518
31519 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
31520 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
31521 is not enabled.
31522
31523 2013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
31524
31525 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
31526 * doc/extend.texi (Named Address Spaces): Ditto.
31527 (Variable Attributes): Ditto.
31528
31529 2013-03-27 Kai Tietz <ktietz@redhat.com>
31530
31531 * config.build: Add support for cygwin x64 target.
31532 * config.gcc: Likewise.
31533 * config.host: Likewise.
31534 * configure.ac: Likewise
31535 * configure: Regenerated.
31536
31537 2013-03-27 Kai Tietz <ktietz@redhat.com>
31538
31539 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
31540 * config/i386/t-cygwin-w64: New file.
31541 * config/i386/cygwin-w64.h: New file.
31542 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
31543 and add support for x64-cygwin target.
31544 (CPP_SPEC): Likewise.
31545 (CXX_WRAP_SPEC_LIST): Undefine before define.
31546 (LIBGCJ_SONAME): Use 15 as version.
31547
31548 2013-03-27 Richard Biener <rguenther@suse.de>
31549
31550 PR tree-optimization/56716
31551 * tree-ssa-structalias.c (perform_var_substitution): Adjust
31552 dumping for ref nodes.
31553
31554 2013-03-27 Martin Jambor <mjambor@suse.cz>
31555
31556 PR tree-optimization/55334
31557 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
31558 restricted pointers to arrays.
31559
31560 2013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
31561
31562 * Makefile.in (.SUFFIXES): Add .cc.
31563 (.c.o): Apply same recipe for implicit rule .cc.o.
31564
31565 2013-03-27 Richard Biener <rguenther@suse.de>
31566
31567 PR tree-optimization/37021
31568 * tree-vect-data-refs.c (vect_check_strided_load): Allow
31569 REALPART/IMAGPART_EXPRs around the supported refs.
31570 * tree-ssa-structalias.c (find_func_aliases): Assume that
31571 floating-point values are not used to transfer pointers.
31572
31573 2013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
31574
31575 * target.def (TARGET_HAS_IFUNC_P): New target hook.
31576 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
31577 * doc/tm.texi: Regenerate.
31578 * targhooks.h (default_has_ifunc_p): New.
31579 * targhooks.c (default_has_ifunc_p): Ditto.
31580 * config/linux-protos.h: New file.
31581 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
31582 hook for linux which disables support of indirect functions in android.
31583 * config/linux-android.c: New file.
31584 * config/t-linux-android.c: Ditto.
31585 * config.gcc: Added new object file linux-android.o.
31586 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
31587 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
31588 * varasm.c (do_assemble_alias): Likewise.
31589 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
31590 doesn't support indirect functions.
31591 * configure: Regenerate.
31592
31593 2013-03-27 Bin Cheng <bin.cheng@arm.com>
31594
31595 PR target/56102
31596 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
31597 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
31598 mult-word mode.
31599
31600 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31601
31602 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
31603
31604 2013-03-27 Terry Guo <terry.guo@arm.com>
31605
31606 * config/arm/arm-cores.def: Added core cortex-r7.
31607 * config/arm/arm-tune.md: Regenerated.
31608 * config/arm/arm-tables.opt: Regenerated.
31609 * doc/invoke.texi: Added entry for core cortex-r7.
31610
31611 2013-03-27 Walter Lee <walt@tilera.com>
31612
31613 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
31614 double-decrement of next_scratch_regno.
31615
31616 2013-03-27 Walter Lee <walt@tilera.com>
31617
31618 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
31619 input operands.
31620 (insn_v1mulus): Ditto.
31621 (insn_v2muls): Ditto.
31622
31623 2013-03-27 Walter Lee <walt@tilera.com>
31624
31625 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
31626 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
31627
31628 2013-03-27 Walter Lee <walt@tilera.com>
31629
31630 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
31631 (*sibcall_value): Ditto.
31632
31633 2013-03-27 Walter Lee <walt@tilera.com>
31634
31635 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
31636 (insn_mnz_v8qi): ... this ...
31637 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
31638 vector equivalent.
31639 (insn_v<n>mnz): Replaced by ...
31640 (insn_v1mnz): ... this ...
31641 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
31642 equivalent.
31643 (insn_mz_<mode>): Replaced by ...
31644 (insn_mz_v8qi): ... this ...
31645 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
31646 vector equivalent.
31647 (insn_v<n>mz): Replaced by ...
31648 (insn_v1mz): ... this ...
31649 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
31650 equivalent.
31651
31652 2013-03-26 Eric Botcazou <ebotcazou@adacore.com>
31653
31654 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
31655
31656 2013-03-26 Roland McGrath <mcgrathr@google.com>
31657
31658 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
31659 than fprintf with a non-constant, non-format string.
31660
31661 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
31662
31663 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
31664 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
31665 operand 0 predicate.
31666 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
31667 attribute. Use general_x64nomem_operand as operand 1 predicate.
31668 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
31669 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
31670 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
31671 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
31672 (mov<mode>_insv_1): Remove expander. Merge insn with
31673 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
31674 Use general_x64nomem_operand as operand 1 predicate.
31675 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
31676 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
31677 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
31678 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
31679 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
31680 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
31681 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
31682 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
31683 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
31684 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
31685 (general_x64nomem_operand): Ditto.
31686
31687 2013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
31688
31689 * config/rtems.opt: Add -pthread option.
31690
31691 2013-03-26 Richard Biener <rguenther@suse.de>
31692
31693 * alias.c (find_base_term): Avoid redundant and not used recursion.
31694 (base_alias_check): Get the initial base term from the caller.
31695 (true_dependence_1): Compute and pass base terms to base_alias_check.
31696 (write_dependence_p): Likewise.
31697 (may_alias_p): Likewise.
31698
31699 2013-03-26 Sofiane Naci <sofiane.naci@arm.com>
31700
31701 * config/aarch64/aarch64.c (aarch64_classify_address): Support
31702 PC-relative load in SI modes and above only.
31703
31704 2013-03-26 Xinyu Qi <xyqi@marvell.com>
31705
31706 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
31707 * config/arm/iwmmxt.md (WCGR0): Update.
31708 (WCGR1, WCGR2, WCGR3): Likewise.
31709
31710 2013-03-26 Uros Bizjak <ubizjak@gmail.com>
31711
31712 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
31713 Use x64 and nox64 isa attributes.
31714
31715 2013-03-26 Richard Biener <rguenther@suse.de>
31716
31717 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
31718 alignment computations and rely on get_object_alignment_1
31719 for the !TYPE_P case.
31720 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
31721
31722 2013-03-26 Walter Lee <walt@tilera.com>
31723
31724 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
31725 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
31726
31727 2013-03-25 Jeff Law <law@redhat.com>
31728
31729 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
31730 check for INTEGRAL_TYPE_P that was missing due to checking in
31731 wrong version of prior patch.
31732
31733 2013-03-25 Walter Lee <walt@tilera.com>
31734
31735 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
31736 TILEGX_INSN_SHUFFLEBYTES1.
31737 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
31738 shufflebytes1.
31739 (tilegx_builtins): Ditto.
31740 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
31741
31742 2013-03-25 Walter Lee <walt@tilera.com>
31743
31744 * config/tilegx/tilegx.md (floatsisf2): New pattern.
31745 (floatunssisf2): New pattern.
31746 (floatsidf2): New pattern.
31747 (floatunssidf2): New pattern.
31748
31749 2013-03-25 Walter Lee <walt@tilera.com>
31750
31751 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
31752 tests for constraint J, K, N, P.
31753
31754 2013-03-25 Walter Lee <walt@tilera.com>
31755
31756 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
31757 Use indirect/pcrel encoding.
31758 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
31759 Ditto.
31760
31761 2013-03-25 Steve Ellcey <sellcey@mips.com>
31762
31763 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
31764 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
31765 * config/mips/mips.c (mips_option_override): Set IMADD default.
31766 * config/mips/mips.h (PTF_AVOID_IMADD): New.
31767 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
31768 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
31769 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
31770 * doc/invoke.texi (-mimadd/-mno-imadd): New.
31771
31772 2013-03-25 Jeff Law <law@redhat.com>
31773
31774 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
31775 slightly to avoid creating and folding useless trees. Simplify
31776 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
31777
31778 2013-03-25 Uros Bizjak <ubizjak@gmail.com>
31779
31780 * config/i386/i386.md (*zero_extendsidi2): Merge with
31781 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
31782 * config/i386/predicates.md (x86_64_zext_operand): Rename from
31783 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
31784 targets. Clarify comment.
31785
31786 2013-03-25 Martin Jambor <mjambor@suse.cz>
31787
31788 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
31789 pass-through jump functions differently.
31790 (ipa_read_jump_function): Likewise. Also use setter functions to set
31791 up jump functions.
31792
31793 2013-03-25 Martin Jambor <mjambor@suse.cz>
31794
31795 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
31796 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
31797 process it.
31798 (ipa_get_indirect_edge_target): New function.
31799 (devirtualization_time_bonus): New parameter known_aggs, pass it to
31800 ipa_get_indirect_edge_target. Update all callers.
31801 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
31802 ipa_get_indirect_edge_target_1 instead of calling
31803 ipa_get_indirect_edge_target.
31804 (create_specialized_node): Pass aggvlas to
31805 ipcp_discover_new_direct_edges.
31806
31807 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31808
31809 * config/arm/arm.md (f_sels, f_seld): New types.
31810 (*cmov<mode>): New pattern.
31811 * config/arm/predicates.md (arm_vsel_comparison_operator): New
31812 predicate.
31813
31814 2013-03-25 Kai Tietz <ktietz@redhat.com>
31815
31816 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
31817 POSIX-printf for mingw-hosted builds.
31818
31819 2013-03-25 Richard Biener <rguenther@suse.de>
31820
31821 PR middle-end/56694
31822 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
31823 must-not-throw stmt location.
31824
31825 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31826
31827 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
31828 Emit load-acquire versions when acq is true.
31829 (arm_emit_store_exclusive): Add rel parameter.
31830 Emit store-release versions when rel is true.
31831 (arm_split_compare_and_swap): Use acquire-release instructions
31832 instead.
31833 of barriers when appropriate.
31834 (arm_split_atomic_op): Likewise.
31835 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
31836 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
31837 (VUNSPEC_SLX): Likewise.
31838 (VUNSPEC_LDA): Likewise.
31839 (VUNSPEC_STL): Likewise.
31840 * config/arm/sync.md (atomic_load<mode>): New pattern.
31841 (atomic_store<mode>): Likewise.
31842 (arm_load_acquire_exclusive<mode>): Likewise.
31843 (arm_load_acquire_exclusivesi): Likewise.
31844 (arm_load_acquire_exclusivedi): Likewise.
31845 (arm_store_release_exclusive<mode>): Likewise.
31846
31847 2013-03-25 Catherine Moore <clm@codesourcery.com>
31848
31849 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
31850 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
31851 * config/mip/predicates.md (lwsp_swsp_operand,
31852 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
31853 sb16_operand, db4_operand, db7_operand, ib3_operand,
31854 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
31855 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
31856 andi16_operand): New predicates.
31857 * config/mips/mips.md (compression): New attribute.
31858 (enabled): New attribute.
31859 (length): Consider compression in computing length.
31860 (shift_compression): New code attribute.
31861 (*add<mode>3): New operands. Record compression.
31862 (sub<mode>3): Likewise.
31863 (one_cmpl<mode>2): Likewise.
31864 (*and<mode>3): Likewise.
31865 (*ior<mode>3): Likewise.
31866 (unnamed pattern for xor): Likewise.
31867 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
31868 (*<optab><mode>3): Likewise.
31869 (*mov<mode>_internal: Likewise.
31870 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
31871 (mips_unsigned_immediate_p): New.
31872 (umips_lwsp_swsp_address_p): New.
31873 (m16_based_address_p): New.
31874 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
31875 (mips_unsigned_immediate_p): New prototype.
31876 (lwsp_swsp_address_p): New prototype.
31877 (m16_based_address_p): New prototype.
31878 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
31879 (mips_signed_immediate_p): New function.
31880 (m16_based_address_p): New function.
31881 (lwsp_swsp_address_p): New function.
31882 (mips_print_operand_punctuation): Recognize short delay slot insns
31883 for microMIPS.add<mode>3"
31884
31885 2013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31886
31887 PR target/56720
31888 * config/arm/iterators.md (v_cmp_result): New mode attribute.
31889 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
31890
31891 2013-03-25 Richard Biener <rguenther@suse.de>
31892
31893 PR tree-optimization/56689
31894 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
31895 any edge.
31896
31897 2013-03-25 Richard Biener <rguenther@suse.de>
31898
31899 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
31900 of bitmap.
31901 (memory_references): Likewise.
31902 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
31903 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
31904 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
31905 (gather_mem_refs_in_loops): Fold into ...
31906 (analyze_memory_references): ... this. Move initialization
31907 to tree_ssa_lim_initialize.
31908 (fill_always_executed_in): Rename to ...
31909 (fill_always_executed_in_1): ... this.
31910 (fill_always_executed_in): Move contains_call computation to
31911 this new function from ...
31912 (tree_ssa_lim_initialize): ... here.
31913 (tree_ssa_lim): Call fill_always_executed_in.
31914
31915 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
31916
31917 * postreload.c (reload_combine): Fix code detecting returns.
31918
31919 2013-03-25 Eric Botcazou <ebotcazou@adacore.com>
31920
31921 * function.c (emit_use_return_register_into_block): On cc0 targets,
31922 do not emit the sequence between cc0 setter and user.
31923
31924 2013-03-25 Kai Tietz <ktietz@redhat.com>
31925
31926 * config/i386/predicates.md (local_symbolic_operand): Interpret
31927 dll-imported symbols as none-local.
31928
31929 2013-03-25 Richard Biener <rguenther@suse.de>
31930
31931 * tree-ssa-loop-im.c (struct depend): Remove.
31932 (struct lim_aux_data): Make depends a vec of gimples.
31933 (free_lim_aux_data): Adjust.
31934 (add_dependency): Likewise.
31935 (set_level): Likewise.
31936
31937 2013-03-25 Richard Biener <rguenther@suse.de>
31938
31939 PR middle-end/56434
31940 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
31941 the pointer returned by calls with ECF_MALLOC set.
31942
31943 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
31944
31945 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
31946
31947 2013-03-24 Uros Bizjak <ubizjak@gmail.com>
31948
31949 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
31950 using MMXMODE mode iterator.
31951 (*move<mode>_internal): Merge with *movv2sf_internal and
31952 *movv2sf_internal_rex64 using MMXMODE mode iterator.
31953
31954 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
31955
31956 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
31957 (record_last_mem_set_info): Likewise.
31958
31959 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
31960 of XNEWVEC followed by memset.
31961 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
31962
31963 2013-03-23 Steven Bosscher <steven@gcc.gnu.org>
31964
31965 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
31966 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
31967 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
31968 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
31969 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
31970 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
31971 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
31972 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
31973 BARRIER_P instead of GET_CODE.
31974
31975 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
31976
31977 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
31978 inaccuracy in the probing code.
31979
31980 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
31981 (ctrapdi4): Likewise.
31982
31983 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
31984
31985 * calls.c (expand_call): Add missing guard to code handling return
31986 of non-BLKmode structures in MSB.
31987 * function.c (expand_function_end): Likewise.
31988
31989 2013-03-23 Eric Botcazou <ebotcazou@adacore.com>
31990
31991 * combine.c (try_combine): Adjust comment. Do not add the set of
31992 insn #0 if the destination indirectly is set or dies in insn #2.
31993 Tidy up code to distribute a new note.
31994
31995 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
31996
31997 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
31998 also for alternatives 16 and 17.
31999
32000 2013-03-22 Uros Bizjak <ubizjak@gmail.com>
32001
32002 * config/i386/sse.md (*mov<mode>_internal): Merge with
32003 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
32004 Emit insn template depending on type attribute. Use
32005 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
32006 movd instead of movq mnemonic for interunit moves. Rewrite mode
32007 attribute calculation. Remove unit attribute calculation.
32008 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
32009 Set prefix_data16 attribute for DImode ssemov types.
32010 Use Ym instead of y for SSE-MMX conversion alternatives.
32011 Reorder operand constraints.
32012
32013 2013-03-22 Steven Bosscher <steven@gcc.gnu.org>
32014
32015 * df.h (df_insn_delete): Adjust prototype.
32016 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
32017 and let it decide whether mark the basic block dirty.
32018 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
32019 * df-scan.c (df_insn_info_delete): New helper function, split
32020 off from df_insn_delete.
32021 (df_scan_free_bb_info): Use it.
32022 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
32023 Likewise.
32024 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
32025 that the insn is actually an insn and it has a non-NULL basic block.
32026 Do not mark basic block dirty if only deleting a DEBUG_INSN.
32027
32028 2013-03-22 Richard Biener <rguenther@suse.de>
32029
32030 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
32031 dep_ref members.
32032 (mem_ref_alloc): Do not allocate them.
32033 (refs_independent_p): Do not query or maintain a cache.
32034
32035 2013-03-22 Richard Biener <rguenther@suse.de>
32036
32037 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
32038 (gather_mem_refs_in_loops): Do not compute it.
32039 (analyze_memory_references): Do not allocate it.
32040 (tree_ssa_lim_finalize): Do not free it.
32041 (for_all_locs_in_loop): Do not query all_refs_in_loop.
32042
32043 2013-03-22 Richard Biener <rguenther@suse.de>
32044
32045 * is-a.h (as_a): Use gcc_checking_assert.
32046
32047 2013-03-22 Ian Bolton <ian.bolton@arm.com>
32048
32049 * config/aarch64/aarch64.c (aarch64_print_operand): New
32050 format specifier for printing a constant in hex.
32051 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
32052 format specifier for printing second operand.
32053
32054 2013-03-22 Richard Biener <rguenther@suse.de>
32055
32056 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
32057 bitmaps.
32058 (gather_mem_refs_in_loops): Perform store accumulation here.
32059 (create_vop_ref_mapping_loop): Remove.
32060 (create_vop_ref_mapping): Likewise.
32061 (analyze_memory_references): Initialize refs_stored_in_loop.
32062 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
32063 (record_indep_loop): Remove.
32064 (record_dep_loop): New function.
32065 (ref_indep_loop_p_1): Adjust to only walk over references
32066 in the loop, not its subloops.
32067 (ref_indep_loop_p): Rename to ...
32068 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
32069 maintaining a more fine-grained cache.
32070 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
32071 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
32072
32073 2013-03-22 Richard Biener <rguenther@suse.de>
32074
32075 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
32076 (struct mem_ref): Make accesses_in_loop a vec of a vec of
32077 aggregate mem_ref_loc.
32078 (free_mem_ref_locs): Inline into ...
32079 (memref_free): ... this and adjust.
32080 (mem_ref_alloc): Adjust.
32081 (mem_ref_locs_alloc): Remove.
32082 (record_mem_ref_loc): Adjust.
32083 (get_all_locs_in_loop): Rewrite into ...
32084 (for_all_locs_in_loop): ... this iterator.
32085 (rewrite_mem_ref_loc): New functor.
32086 (rewrite_mem_refs): Use for_all_locs_in_loop.
32087 (sm_set_flag_if_changed): New functor.
32088 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
32089 (ref_always_accessed): New functor.
32090 (ref_always_accessed_p): Use for_all_locs_in_loop.
32091
32092 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
32093
32094 * tree-pass.h (PROP_gimple_lvec): New.
32095 * passes.c (dump_properties): Handle PROP_gimple_lvec.
32096 (init_optimization_passes): Move pass_lower_vector.
32097 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
32098 PROP_gimple_lvec.
32099 (pass_lower_vector): Provide PROP_gimple_lvec.
32100 (pass_lower_vector_ssa): Likewise.
32101 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
32102
32103 2013-03-21 Mark Wielaard <mjw@redhat.com>
32104
32105 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
32106
32107 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
32108
32109 * config/i386/i386.md (*movdi_internal): Disparage slightly
32110 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
32111 conversion alternatives.
32112
32113 2013-03-21 Jakub Jelinek <jakub@redhat.com>
32114
32115 PR middle-end/48087
32116 * diagnostic.def (DK_WERROR): New kind.
32117 * diagnostic.h (werrorcount): Define.
32118 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
32119 promoted to DK_ERROR, increment DK_WERROR counter instead of
32120 DK_ERROR counter.
32121 * toplev.c (toplev_main): Call print_ignored_options even if
32122 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
32123 even if just werrorcount is non-zero.
32124
32125 PR debug/55608
32126 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
32127 on failure.
32128 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
32129 (string_cst_pool_decl): New function.
32130 (optimize_one_addr_into_implicit_ptr): New function.
32131 (resolve_addr_in_expr): Optimize DWARF location expression
32132 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
32133 which doesn't live in memory, but has DW_AT_location or
32134 DW_AT_const_value, or refers to a string literal, into
32135 DW_OP_GNU_implicit_pointer.
32136 (optimize_location_into_implicit_ptr): New function.
32137 (resolve_addr): If removing DW_AT_location of a variable because
32138 it was DW_OP_addr of address of the variable, but the variable doesn't
32139 live in memory, try to emit const value attribute for the initializer.
32140
32141 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
32142
32143 * tree.h (VECTOR_TYPE_P): New macro.
32144 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
32145 TYPE_MODE): Use it.
32146 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
32147 VEC_COND_EXPR cannot be lvalues.
32148 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
32149
32150 2013-03-21 Marc Glisse <marc.glisse@inria.fr>
32151
32152 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
32153 Restrict the transformation to equal modes.
32154
32155 2013-03-21 Richard Biener <rguenther@suse.de>
32156
32157 PR tree-optimization/39326
32158 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
32159 (MEM_ANALYZABLE): Adjust.
32160 (record_mem_ref_loc): Move bitmap ops ...
32161 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
32162 unanalyzable refs, do not record locations for it.
32163 (analyze_memory_references): Allocate ref zero as shared
32164 unanalyzable ref.
32165 (refs_independent_p): Do not test for unanalyzed mems here.
32166 (ref_indep_loop_p_1): Special-case disambiguation against
32167 the unanalyzed ref.
32168 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
32169
32170 2013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
32171
32172 * config/arm/arm-protos.h (tune_params): Add
32173 prefer_neon_for_64bits field.
32174 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
32175 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
32176 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
32177 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
32178 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
32179 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
32180 (arm_option_override): Handle -mneon-for-64bits new option.
32181 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
32182 (prefer_neon_for_64bits): Declare new variable.
32183 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
32184 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
32185 (arch_enabled): Handle new arch types. Remove support for onlya8
32186 and nota8.
32187 (one_cmpldi2): Use new arch names.
32188 (zero_extend<mode>di2, extend<mode>di2): Ditto.
32189 * config/arm/arm.opt (mneon-for-64bits): Add option.
32190 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
32191 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
32192 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
32193 of onlya8.
32194 * doc/invoke.texi (-mneon-for-64bits): Document.
32195
32196 2013-03-21 Richard Biener <rguenther@suse.de>
32197
32198 PR tree-optimization/39326
32199 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
32200 (sort_bbs_in_loop_postorder_cmp): New function.
32201 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
32202
32203 2013-03-21 Richard Biener <rguenther@suse.de>
32204
32205 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
32206 (vect_insert_into_interleaving_chain): Likewise.
32207 (vect_drs_dependent_in_basic_block): Inline ...
32208 (vect_slp_analyze_data_ref_dependence): ... here. New function,
32209 split out from ...
32210 (vect_analyze_data_ref_dependence): ... here. Simplify.
32211 (vect_check_interleaving): Simplify.
32212 (vect_analyze_data_ref_dependences): Likewise. Split out ...
32213 (vect_slp_analyze_data_ref_dependences): ... this new function.
32214 (dr_group_sort_cmp): New function.
32215 (vect_analyze_data_ref_accesses): Compute data-reference groups
32216 here instead of in vect_analyze_data_ref_dependence. Use
32217 a more efficient algorithm.
32218 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
32219 vect_slp_analyze_data_ref_dependences. Call
32220 vect_analyze_data_ref_accesses earlier.
32221 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
32222 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
32223 (vect_slp_analyze_data_ref_dependences): New prototype.
32224
32225 2013-03-21 Richard Biener <rguenther@suse.de>
32226
32227 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
32228 ref is stored in the loop.
32229 (find_refs_for_sm): Walk only over all stores.
32230 (store_motion_loop): Allocate from lim_bitmap_obstack.
32231 (store_motion): Likewise.
32232
32233 2013-03-21 Richard Biener <rguenther@suse.de>
32234
32235 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
32236 Update virtual SSA form.
32237
32238 2013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32239
32240 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
32241 * configure: Regenerate.
32242 * config.in: Regenerate.
32243 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
32244 if !HAVE_LD_EH_FRAME_CIEV3.
32245
32246 2013-03-21 Richard Biener <rguenther@suse.de>
32247
32248 * tree-cfg.c (verify_expr_no_block): New function.
32249 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
32250 nor DECL_VALUE_EXPR have locations with associated blocks.
32251 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
32252 (clear_unused_block_pointer): Remove code dealing with
32253 blocks in DECL_DEBUG_EXPR locations.
32254
32255 2013-03-21 Richard Biener <rguenther@suse.de>
32256
32257 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
32258 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
32259 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
32260 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
32261 instead of DECL_DEBUG_EXPR_IS_FROM.
32262 * gimplify.c (gimplify_modify_expr): Likewise.
32263 * tree-cfg.c (verify_expr_location_1): Likewise.
32264 * tree-complex.c (create_one_component_var): Likewise.
32265 * tree-sra.c (create_access_replacement): Likewise.
32266 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
32267 (clear_unused_block_pointer): Likewise.
32268 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
32269 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
32270 * var-tracking.c (var_debug_decl): Likewise.
32271 (track_expr_p): Likewise.
32272 * tree-inline.c (add_local_variables): Likewise. Set
32273 DECL_HAS_DEBUG_EXPR_P after copying it.
32274 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
32275 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
32276
32277 2013-03-21 Uros Bizjak <ubizjak@gmail.com>
32278
32279 PR bootstrap/56656
32280 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
32281 * configure: Regenerate.
32282 * config.in: Regenerate.
32283 * config/i386/i386.md (*movdf_internal): Use
32284 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
32285 movd instead of movq mnemonic for interunit moves.
32286 (*movdi_internal): Ditto.
32287
32288 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32289
32290 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
32291 (abd<mode>_3): New pattern.
32292 (aba<mode>_3): New pattern.
32293 (fabd<mode>_3): New pattern.
32294
32295 2013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
32296
32297 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
32298 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
32299 occurrence of REGISTER_PREFIX as its empty string.
32300
32301 2013-03-20 Jeff Law <law@redhat.com>
32302
32303 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
32304 addititional equivalences for equality comparisons between an SSA_NAME
32305 and a constant where the SSA_NAME was set from a widening conversion.
32306
32307 2013-03-20 Walter Lee <walt@tilera.com>
32308
32309 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
32310
32311 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
32312
32313 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
32314 depending on type attribute.
32315 (*movti_internal): Ditto.
32316 (*movtf_internal): Ditto.
32317 (*movxf_internal): Ditto.
32318 (*movdf_internal): Ditto.
32319 (*movsf_internal): Ditto.
32320
32321 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
32322
32323 * config/i386/i386.md (*movti_internal): Set prefix attribute to
32324 maybe_vex for sselog1 and ssemov types.
32325 (*movdi_internal): Reorder operand constraints.
32326 (*movsi_internal): Ditto. Set prefix attribute to
32327 maybe_vex for sselog1 and ssemov types.
32328 (*movtf_internal): Set prefix attribute to maybe_vex
32329 for sselog1 and ssemov types.
32330 (*movdf_internal): Ditto. Set prefix_data16 attribute for
32331 DImode ssemov types. Reorder operand constraints.
32332 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
32333 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
32334 attribute for SImode ssemov types. Reorder operand constraints.
32335
32336 2013-03-20 Martin Jambor <mjambor@suse.cz>
32337
32338 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
32339 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
32340
32341 2013-03-20 Pat Haugen <pthaugen@us.ibm.com>
32342
32343 * config/rs6000/predicates.md (indexed_address, update_address_mem
32344 update_indexed_address_mem): New predicates.
32345 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
32346 attribute for load/store instructions.
32347 * config/rs6000/dfp.md (movsd_store): Likewise.
32348 (movsd_load): Likewise.
32349 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
32350 (unnamed HI->DI extend define_insn): Likewise.
32351 (unnamed SI->DI extend define_insn): Likewise.
32352 (unnamed QI->SI extend define_insn): Likewise.
32353 (unnamed QI->HI extend define_insn): Likewise.
32354 (unnamed HI->SI extend define_insn): Likewise.
32355 (unnamed HI->SI extend define_insn): Likewise.
32356 (extendsfdf2_fpr): Likewise.
32357 (movsi_internal1): Likewise.
32358 (movsi_internal1_single): Likewise.
32359 (movhi_internal): Likewise.
32360 (movqi_internal): Likewise.
32361 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
32362 attribute for load/store instructions.
32363 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
32364 instructions.
32365 (mov<mode>_softfloat): Likewise.
32366 (mov<mode>_hardfloat32): Likewise.
32367 (mov<mode>_hardfloat64): Likewise.
32368 (mov<mode>_softfloat64): Likewise.
32369 (movdi_internal32): Likewise.
32370 (movdi_internal64): Likewise.
32371 (probe_stack_<mode>): Likewise.
32372
32373 2013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
32374
32375 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
32376 floating point, and decimal floating point to reload iterator.
32377
32378 * config/rs6000/constraints.md (wl constraint): New constraints to
32379 return FLOAT_REGS if certain options are used to reduce the number
32380 of separate patterns that exist in the file.
32381 (wx constraint): Likewise.
32382 (wz constraint): Likewise.
32383
32384 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
32385 -mdebug=reg, print wg, wl, wx, and wz constraints.
32386 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
32387 Initialize the reload functions for 64-bit binary/decimal floating
32388 point types.
32389 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
32390 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
32391 create the buffer on the stack to overcome not having a 32-bit
32392 load and store.
32393 (rs6000_emit_move): Likewise.
32394 (rs6000_secondary_memory_needed_rtx): Likewise.
32395 (rs6000_alloc_sdmode_stack_slot): Likewise.
32396 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
32397 via xxlxor, just like DFmode 0.0.
32398
32399 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
32400 define as 1 if we are running on a power7 or newer.
32401 (enum r6000_reg_class_enum): Add new constraints.
32402
32403 * config/rs6000/dfp.md (movsd): Delete, combine with binary
32404 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
32405 with other moves by using conditional constraits (wg). Use LFIWZX
32406 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
32407 (movsd splitter): Likewise.
32408 (movsd_hardfloat): Likewise.
32409 (movsd_softfloat): Likewise.
32410
32411 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
32412 binary and decimal floating point moves.
32413 (fmove_ok): New attributes to combine binary and decimal floating
32414 point moves, and to combine power6x (mfpgpr) moves along normal
32415 floating moves.
32416 (real_value_to_target): Likewise.
32417 (f32_lr): Likewise.
32418 (f32_lm): Likewise.
32419 (f32_li): Likewise.
32420 (f32_sr): Likewise.
32421 (f32_sm): Likewise.
32422 (f32_si): Likewise.
32423 (movsf): Combine binary and decimal floating point moves. Combine
32424 power6x (mfpgpr) moves with other moves by using conditional
32425 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
32426 (mov<mode> for SFmode/SDmode); Likewise.
32427 (SFmode/SDmode splitters): Likewise.
32428 (movsf_hardfloat): Likewise.
32429 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
32430 (movsf_softfloat): Likewise.
32431 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
32432
32433 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
32434 wx and wz constraints.
32435
32436 * config/rs6000/constraints.md (wg constraint): New constraint to
32437 return FLOAT_REGS if -mmfpgpr (power6x) was used.
32438
32439 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
32440 constraint.
32441
32442 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
32443 -mdebug=reg, print wg, wl, wx, and wz constraints.
32444 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
32445 Initialize the reload functions for 64-bit binary/decimal floating
32446 point types.
32447 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
32448 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
32449 create the buffer on the stack to overcome not having a 32-bit
32450 load and store.
32451 (rs6000_emit_move): Likewise.
32452 (rs6000_secondary_memory_needed_rtx): Likewise.
32453 (rs6000_alloc_sdmode_stack_slot): Likewise.
32454 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
32455 via xxlxor, just like DFmode 0.0.
32456
32457 * config/rs6000/dfp.md (movdd): Delete, combine with binary
32458 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
32459 with other moves by using conditional constraits (wg). Use LFIWZX
32460 and STFIWX for loading SDmode on power7.
32461 (movdd splitters): Likewise.
32462 (movdd_hardfloat32): Likewise.
32463 (movdd_softfloat32): Likewise.
32464 (movdd_hardfloat64_mfpgpr): Likewise.
32465 (movdd_hardfloat64): Likewise.
32466 (movdd_softfloat64): Likewise.
32467
32468 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
32469 64-bit binary and decimal floating point moves.
32470 (FMOVE64X): Likewise.
32471 (movdf): Combine 64-bit binary and decimal floating point moves.
32472 Combine power6x (mfpgpr) moves with other moves by using
32473 conditional constraits (wg).
32474 (mov<mode> for DFmode/DDmode): Likewise.
32475 (DFmode/DDmode splitters): Likewise.
32476 (movdf_hardfloat32): Likewise.
32477 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
32478 (movdf_softfloat32): Likewise.
32479 (movdf_hardfloat64_mfpgpr): Likewise.
32480 (movdf_hardfloat64): Likewise.
32481 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
32482 (movdf_softfloat64): Likewise.
32483 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
32484 (reload_<mode>_load): Move to later in the file so they aren't in
32485 the middle of the floating point move insns.
32486 (reload_<mode>_store): Likewise.
32487
32488 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
32489 constraint.
32490
32491 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
32492 constraint if -mdebug=reg.
32493 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
32494 Enable using dd reload support if needed.
32495
32496 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
32497 binary and decimal floating point moves in rs6000.md.
32498 (movtd_internal): Likewise.
32499
32500 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
32501 decimal floating point moves.
32502 (movtf): Likewise.
32503 (movtf_internal): Likewise.
32504 (mov<mode>_internal, TDmode/TFmode): Likewise.
32505 (movtf_softfloat): Likewise.
32506 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
32507
32508 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
32509 movdi_internal64, using wg constraint for move direct operations.
32510 (movdi_internal64): Likewise.
32511
32512 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
32513 MODES_TIEABLE_P for selected modes. Print the numerical value of
32514 the various virtual registers. Use GPR/FPR first/last values,
32515 instead of hard coding the register numbers. Print which modes
32516 have reload functions registered.
32517 (rs6000_option_override_internal): If -mdebug=reg, trace the options
32518 settings before/after setting cpu, target and subtarget settings.
32519 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
32520 and for secondary reload failures in rs6000_secondary_reload_inner.
32521 (rs6000_secondary_reload_fail): Likewise.
32522 (rs6000_secondary_reload_inner): Likewise.
32523
32524 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
32525 macros for first/last GPR and FPR registers.
32526 (LAST_GPR_REGNO): Likewise.
32527 (FIRST_FPR_REGNO): Likewise.
32528 (LAST_FPR_REGNO): Likewise.
32529
32530 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
32531 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
32532 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
32533 (vcond<mode><mode>): Likewise.
32534 (vcondu<mode><mode>): Likewise.
32535 (vector_gtu<mode>): Likewise.
32536 (vector_gte<mode>): Likewise.
32537 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
32538 to prevent the compiler from converting DImode operations to TImode.
32539 (ior<mode>3): Likewise.
32540 (and<mode>3): Likewise.
32541 (one_cmpl<mode>2): Likewise.
32542 (nor<mode>3): Likewise.
32543 (andc<mode>3): Likewise.
32544
32545 * config/rs6000/constraints.md (wt constraint): New constraint
32546 that returns VSX_REGS if TImode is allowed in VSX registers.
32547
32548 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
32549 constant under VSX.
32550
32551 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
32552 similar to TImode, but it is restricted to being in the GPRs.
32553
32554 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
32555 TImode to occupy a single VSX register.
32556
32557 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
32558 -mvsx-timode for power7/power8.
32559 (power7 cpu): Likewise.
32560 (power8 cpu): Likewise.
32561
32562 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
32563 sure that TFmode/TDmode take up two registers if they are ever
32564 allowed in the upper VSX registers.
32565 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
32566 registers.
32567 (rs6000_init_hard_regno_mode_ok): Likewise.
32568 (rs6000_debug_reg_global): Add debugging for PTImode and wt
32569 constraint. Print if LRA is turned on.
32570 (rs6000_option_override_internal): Give an error if -mvsx-timode
32571 and VSX is not enabled.
32572 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
32573 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
32574 to reg+offset addressing. Use PTImode when checking offset
32575 addresses for validity.
32576 (reg_offset_addressing_ok_p): Likewise.
32577 (rs6000_legitimate_offset_address_p): Likewise.
32578 (rs6000_legitimize_address): Likewise.
32579 (rs6000_legitimize_reload_address): Likewise.
32580 (rs6000_legitimate_address_p): Likewise.
32581 (rs6000_eliminate_indexed_memrefs): Likewise.
32582 (rs6000_emit_move): Likewise.
32583 (rs6000_secondary_reload): Likewise.
32584 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
32585 reloads to fpr registers to continue to use reg+offset addressing,
32586 but 64-bit reloads to altivec registers need reg+reg addressing.
32587 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
32588 it. Treat LO_SUM like a PLUS operation.
32589 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
32590 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
32591 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
32592 registers to share a register with a smaller sized type, since VSX
32593 puts scalars in the upper 64-bits.
32594 (print_operand): Add support for PTImode.
32595 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
32596 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
32597 registers, but don't have arithmetic support.
32598 (rs6000_memory_move_cost): Add test for VSX.
32599 (rs6000_opt_masks): Add -mvsx-timode.
32600
32601 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
32602 for TImode.
32603 (VSs): Likewise.
32604 (VSr): Use wt constraint for TImode.
32605 (VSv): Drop TImode support.
32606 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
32607 (vsx_movti_64bit): Likewise.
32608 (vsx_movti_32bit): Likewise.
32609 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
32610 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
32611 one '?' on the appropriate output constraint. Do not allow TImode
32612 logical operations on 32-bit systems.
32613 (vsx_ior<mode>3): Likewise.
32614 (vsx_xor<mode>3): Likewise.
32615 (vsx_one_cmpl<mode>2): Likewise.
32616 (vsx_nor<mode>3): Likewise.
32617 (vsx_andc<mode>3): Likewise.
32618 (vsx_concat_<mode>): Likewise.
32619 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
32620
32621 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
32622 OPTION_MASK_VSX_TIMODE.
32623 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
32624 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
32625
32626 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
32627 (TI2 iterator): New iterator for TImode, PTImode.
32628 (wd mode attribute): Add values for vector types.
32629 (movti_string): Replace TI move operations with operations for TImode
32630 and PTImode. Add support for TImode being allowed in VSX registers.
32631 (mov<mode>_string, TImode/PTImode): Likewise.
32632 (movti_ppc64): Likewise.
32633 (mov<mode>_ppc64, TImode/PTImode): Likewise.
32634 (TI mode splitters): Likewise.
32635
32636 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
32637 constraint.
32638
32639 2013-03-20 Marc Glisse <marc.glisse@inria.fr>
32640
32641 PR tree-optimization/56355
32642 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
32643 Also handle integers with undefined overflow.
32644
32645 2013-03-20 Catherine Moore <clm@codesourcery.com>
32646 Maciej W. Rozycki <macro@codesourcery.com>
32647 Tom de Vries <tom@codesourcery.com>
32648 Nathan Sidwell <nathan@codesourcery.com>
32649 Iain Sandoe <iain@codesourcery.com>
32650 Nathan Froyd <froydnj@codesourcery.com>
32651 Chao-ying Fu <fu@mips.com>
32652
32653 * doc/extend.texi: (micromips, nomicromips, nocompression):
32654 Document new function attributes.
32655 * doc/invoke.texi (minterlink-compressed, mmicromips,
32656 m14k, m14ke, m14kec): Document new options.
32657 (minterlink-mips16): Update documentation.
32658 * doc/md.texi (ZC, ZD): Document new constraints.
32659 * configure.ac (gcc_cv_as_micromips): Check if linker
32660 supports the .set micromips directive.
32661 * configure: Regenerate.
32662 * config.in: Regenerate.
32663 * config/mips/mips-tables.opt: Regenerate.
32664 * config/mips/micromips.md: New file.
32665 * constraints.md (ZC, ZD): New constraints.
32666 * config/mips/predicates.md (movep_src_register): New predicate.
32667 (movep_src_operand): New predicate.
32668 (non_volatile_mem_operand): New predicate.
32669 * config/mips/mips.md (multimem): New type.
32670 (length): Differentiate between 17-bit and 18-bit branch offsets.
32671 (MOVEP1, MOVEP2): New mode iterator.
32672 (mov_<load>l): Use ZC constraint.
32673 (mov_<load>r): Likewise.
32674 (mov_<store>l): Likewise.
32675 (mov_<store>r): Likewise.
32676 (*branch_equality<mode>_inverted): Add microMIPS support.
32677 (*branch_equality<mode>): Likewise.
32678 (*jump_absolute): Likewise.
32679 (indirect_jump_<mode>): Likewise.
32680 (tablejump_<mode>): Likewise.
32681 (<optab>_internal): Likewise.
32682 (sibcall_internal): Likewise.
32683 (sibcall_value_internal): Likewise.
32684 (prefetch): Use constraint ZD.
32685 * config/mips/mips.opt (minterlink-compressed): New option.
32686 (minterlink-mips16): Now an alias for minterlink-compressed.
32687 (mmicromips): New option.
32688 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
32689 (compare_and_swap_12): Likewise.
32690 (sync_add<mode>): Likewise.
32691 (sync_<optab>_12): Likewise.
32692 (sync_old_<optab>_12): Likewise.
32693 (sync_new_<optab>_12): Likewise.
32694 (sync_nand_12): Likewise.
32695 (sync_old_nand_12): Likewise.
32696 (sync_new_nand_12): Likewise.
32697 (sync_sub<mode>): Likewise.
32698 (sync_old_add<mode>): Likewise.
32699 (sync_old_sub<mode>): Likewise.
32700 (sync_new_add<mode>): Likewise.
32701 (sync_new_sub<mode>): Likewise.
32702 (sync_<optab><mode>): Likewise.
32703 (sync_old_<optab><mode>): Likewise.
32704 (sync_new_<optab><mode>): Likewise.
32705 (sync_nand<mode>): Likewise.
32706 (sync_old_nand<mode>): Likewise.
32707 (sync_new_nand<mode>): Likewise.
32708 (sync_lock_test_and_set<mode>): Likewise.
32709 (test_and_set_12): Likewise.
32710 (atomic_compare_and_swap<mode>): Likewise.
32711 (atomic_exchange<mode>_llsc): Likewise.
32712 (atomic_fetch_add<mode>_llsc): Likewise.
32713 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
32714 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
32715 (umips_save_restore_pattern_p): Likewise.
32716 (umips_load_store_pair_p): Likewise.
32717 (umips_output_load_store_pair): Likewise.
32718 (umips_movep_target_p): Likewise.
32719 (umips_12bit_offset_address_p): Likewise.
32720 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
32721 (mips_base_mips16): Rename this...
32722 (mips_base_compression_flags): ...to this. Update all uses.
32723 (mips_attribute_table): Add micromips, nomicromips and nocompression.
32724 (mips_mips16_decl_p): Delete.
32725 (mips_nomips16_decl_p): Delete.
32726 (mips_get_compress_on_flags): New function.
32727 (mips_get_compress_off_flags): New function.
32728 (mips_get_compress_mode): New function.
32729 (mips_get_compress_on_name): New function.
32730 (mips_get_compress_off_name): New function.
32731 (mips_insert_attributes): Support multiple compression types.
32732 (mips_merge_decl_attributes): Likewise.
32733 (umips_12bit_offset_address_p): New function.
32734 (mips_start_function_definition): Emit .set micromips directive.
32735 (mips_call_may_need_jalx_p): New function.
32736 (mips_function_ok_for_sibcall): Add microMIPS support.
32737 (mips_print_operand_punctuation): Support short delay slots and
32738 compact jumps.
32739 (umips_swm_mask, umips_swm_encoding): New.
32740 (umips_build_save_restore): New function.
32741 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
32742 (was_mips16_p): Remove.
32743 (old_compression_mode): New.
32744 (mips_set_compression_mode): New function.
32745 (mips_set_current_function): Add microMIPS support.
32746 (mips_option_override): Likewise.
32747 (umips_save_restore_pattern_p): New function.
32748 (umips_output_save_restore): New function.
32749 (umips_load_store_pair_p_1): New function.
32750 (umips_load_store_pair_p): New function.
32751 (umips_output_load_store_pair_1): New function.
32752 (umips_output_load_store_pair): New function.
32753 (umips_movep_target_p) New function.
32754 (mips_prepare_pch_save): Add microMIPS support.
32755 * config/mips/mips.h (TARGET_COMPRESSION): New.
32756 (TARGET_CPU_CPP_BUILTINS): Update macro
32757 to use new compression flags and to support microMIPS.
32758 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
32759 (MIPS_ARCH_FLOAT_SPEC): Likewise.
32760 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
32761 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
32762 (ASM_SPEC): Support mmicromips and mno-micromips.
32763 (M16STORE_REG_P): New macro.
32764 (MIPS_CALL): Support TARGET_MICROMIPS.
32765 (MICROMIPS_J): New macro.
32766 (mips_base_mips16): Rename this...
32767 (mips_base_compression_flags): ...to this.
32768 (UMIPS_12BIT_OFFSET_P): New macro.
32769 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
32770 (MULTILIB_DIRNAMES): Likewise.
32771 2013-03-20 Richard Biener <rguenther@suse.de>
32772
32773 PR tree-optimization/56661
32774 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
32775 the result does not have to be distinct.
32776
32777 2013-03-20 Richard Biener <rguenther@suse.de>
32778
32779 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
32780 remap_gimple_op_r.
32781
32782 2013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32783 Steven Bosscher <steven@gcc.gnu.org>
32784
32785 PR rtl-optimization/56605
32786 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
32787
32788 2013-03-20 Uros Bizjak <ubizjak@gmail.com>
32789
32790 PR bootstrap/56656
32791 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
32792 that require movd instead of movq.
32793
32794 2013-03-20 Richard Biener <rguenther@suse.de>
32795
32796 * tree-ssa-structalias.c (struct variable_info): Add pointer
32797 to the first field of an aggregate with sub-vars. Make
32798 this and the pointer to the next subfield its ID.
32799 (vi_next): New function.
32800 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
32801 storedanything_id, integer_id): Increment by one.
32802 (new_var_info, get_call_vi, lookup_call_clobber_vi,
32803 get_call_clobber_vi): Adjust.
32804 (solution_set_expand): Simplify and speedup.
32805 (solution_set_add): Inline into ...
32806 (set_union_with_increment): ... this. Adjust accordingly.
32807 (do_sd_constraint): Likewise.
32808 (do_ds_constraint): Likewise.
32809 (do_complex_constraint): Simplify.
32810 (build_pred_graph): Adjust.
32811 (solve_graph): Likewise. Simplify and speedup.
32812 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
32813 get_constraint_for_component_ref, get_constraint_for_1,
32814 first_vi_for_offset, first_or_preceding_vi_for_offset,
32815 create_function_info_for, create_variable_info_for_1,
32816 create_variable_info_for, intra_create_variable_infos): Adjust.
32817 (init_base_vars): Push NULL for ID zero.
32818 (compute_points_to_sets): Adjust.
32819
32820 2013-03-20 Richard Biener <rguenther@suse.de>
32821
32822 * cfgloop.c (verify_loop_structure): Streamline and avoid
32823 ICEing on corrupt loop tree.
32824 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
32825 loop tree.
32826
32827 2013-03-20 Richard Biener <rguenther@suse.de>
32828
32829 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
32830 check whether an SSA update is needed.
32831
32832 2013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
32833
32834 * config/mips/constraints.md (T): Rename to...
32835 (Yf): ...this.
32836 (U): Rename to...
32837 (Yd): ...this.
32838 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
32839 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
32840
32841 2013-03-19 Ian Bolton <ian.bolton@arm.com>
32842
32843 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
32844 (*subsi3_carryin_uxtw): Likewise.
32845
32846 2013-03-19 Ian Bolton <ian.bolton@arm.com>
32847
32848 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
32849 (*rorsi3_insn_uxtw): Likewise.
32850
32851 2013-03-19 Ian Bolton <ian.bolton@arm.com>
32852
32853 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
32854 (*extrsi5_insn_uxtw): Likewise.
32855
32856 2013-03-19 Richard Biener <rguenther@suse.de>
32857
32858 PR tree-optimization/56273
32859 * passes.c (init_optimization_passes): Move second VRP after DOM.
32860
32861 2013-03-19 Uros Bizjak <ubizjak@gmail.com>
32862
32863 * config/i386/i386.md (*movti_internal): Merge from
32864 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
32865 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
32866 nox64 isa attributes.
32867
32868 2013-03-18 Richard Biener <rguenther@suse.de>
32869
32870 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
32871 (unite): Likewise.
32872 (merge_node_constraints): Likewise.
32873 (build_succ_graph): Likewise.
32874 (valid_graph_edge): Inline into single caller.
32875 (unify_nodes): Likewise. Use bitmap_set_bit return value
32876 and cache varinfo.
32877 (scc_visit): Fix formatting and variable use.
32878 (do_sd_constraint): Use gcc_checking_assert.
32879 (do_ds_constraint): Likewise.
32880 (do_complex_constraint): Likewise.
32881 (condense_visit): Likewise. Cleanup.
32882 (dump_pred_graph): New function.
32883 (perform_var_substitution): Dump the pred-graph before
32884 variable substitution.
32885 (find_equivalent_node): Use gcc_checking_assert.
32886 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
32887
32888 2013-03-18 Richard Biener <rguenther@suse.de>
32889
32890 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
32891 Remove cond_expr_stmt_list argument and do not gimplify the
32892 built expression.
32893 (vect_loop_versioning): Adjust.
32894 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
32895 Cleanup to use less temporaries.
32896 (vect_create_data_ref_ptr): Cleanup.
32897
32898 2013-03-18 Jakub Jelinek <jakub@redhat.com>
32899
32900 PR tree-optimization/56635
32901 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
32902 require types_compatible_p types.
32903
32904 2013-03-18 Nick Clifton <nickc@redhat.com>
32905
32906 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
32907 spurious backslash.
32908
32909 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
32910 Add missing line to comment describing function.
32911
32912 2013-03-18 Richard Biener <rguenther@suse.de>
32913
32914 PR tree-optimization/56210
32915 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32916 Handle string / character search functions.
32917 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
32918
32919 2013-03-18 Richard Biener <rguenther@suse.de>
32920
32921 PR middle-end/56483
32922 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
32923 and implement properly.
32924 * gimple.h (gimple_cond_single_var_p): Remove.
32925
32926 2013-03-18 Richard Biener <rguenther@suse.de>
32927
32928 * tree-data-ref.h (find_data_references_in_loop): Declare.
32929 * tree-data-ref.c (get_references_in_stmt): Use a stack
32930 vector pre-allocated in the callers.
32931 (find_data_references_in_stmt): Adjust.
32932 (graphite_find_data_references_in_stmt): Likewise.
32933 (create_rdg_vertices): Likewise.
32934 (find_data_references_in_loop): Export.
32935 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
32936 Compute dependences here...
32937 (vect_analyze_data_refs): ...not here. When we encounter
32938 a non-vectorizable data reference in basic-block vectorization
32939 truncate the data reference vector. Do not bother to
32940 fixup data-dependence information for gather loads.
32941 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
32942 of data references, as reported.
32943
32944 2013-03-18 Richard Biener <rguenther@suse.de>
32945
32946 PR tree-optimization/3713
32947 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
32948 has_constants and expr.
32949 (stmt_has_constants): Properly valueize SSA names when deciding
32950 whether the stmt has constants.
32951
32952 2013-03-18 Richard Biener <rguenther@suse.de>
32953
32954 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
32955 whole function when there is nothing to do.
32956 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
32957 * tree-vectorizer.c (vectorize_loops): Update virtual and
32958 loop-closed SSA once.
32959 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
32960
32961 2013-03-18 Richard Biener <rguenther@suse.de>
32962
32963 PR middle-end/56113
32964 * domwalk.c (bb_postorder): New global static.
32965 (cmp_bb_postorder): New function.
32966 (walk_dominator_tree): Replace scheme imposing an order for
32967 visiting dominator sons by one sorting them at the time they
32968 are pushed on the stack.
32969
32970 2013-03-18 Richard Biener <rguenther@suse.de>
32971
32972 PR tree-optimization/39326
32973 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
32974 (struct mem_ref): Replace mem member with ao_ref typed member.
32975 (MEM_ANALYZABLE): Adjust.
32976 (memref_eq): Likewise.
32977 (mem_ref_alloc): Likewise.
32978 (gather_mem_refs_stmt): Likewise.
32979 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
32980 (execute_sm_if_changed_flag_set): Adjust.
32981 (execute_sm): Likewise.
32982 (ref_always_accessed_p): Likewise.
32983 (refs_independent_p): Likewise.
32984 (can_sm_ref_p): Likewise.
32985
32986 2013-03-18 Jakub Jelinek <jakub@redhat.com>
32987
32988 PR c/56566
32989 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
32990 return 1 even for !unsignedp.
32991
32992 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
32993
32994 * config/i386/i386.md (isa): Add x64 and nox64.
32995 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
32996 (*pushtf): Enable *roF alternative for x64 isa only.
32997 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
32998 mode attribute of integer alternatives to DImode for TARGET_64BIT.
32999 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
33000 (*movtf_internal): Merge from *movtf_internal_rex64 and
33001 *movtf_internal_sse. Use x64 and nox64 isa attributes.
33002 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
33003 nox64 isa attributes.
33004 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
33005 nox64 isa attributes.
33006 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
33007
33008 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
33009
33010 * config/alpha/alpha.c (TARGET_LRA_P): New define.
33011
33012 2013-03-17 Jakub Jelinek <jakub@redhat.com>
33013
33014 PR target/56640
33015 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
33016 class names. Remove trailing comma after "ALL_REGS".
33017
33018 2013-03-16 Jan Hubicka <jh@suse.cz>
33019
33020 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
33021 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
33022 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
33023 of cgraph_get_create_node.
33024 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
33025
33026 2013-03-16 Jason Merrill <jason@redhat.com>
33027
33028 PR debug/49090
33029 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
33030 with DW_AT_default_value.
33031
33032 2013-03-16 Jakub Jelinek <jakub@redhat.com>
33033
33034 * BASE-VER: Set to 4.9.0.
33035
33036 2013-03-14 Andi Kleen <ak@linux.intel.com>
33037
33038 PR target/56619
33039 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
33040 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
33041 Document _x* TSX intrinsics.
33042
33043 2013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
33044 David Holsgrove <david.holsgrove@xilinx.com>
33045
33046 * configure.ac: Add MicroBlaze TLS support detection.
33047 * configure: Regenerate.
33048 * config/microblaze/microblaze-protos.h
33049 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
33050 symbol_mentioned_p, label_mentioned_p): Add prototypes.
33051 * config/microblaze/microblaze.c (microblaze_address_type): Add
33052 ADDRESS_TLS and tls_reloc address types.
33053 (microblaze_address_info): Add tls_reloc.
33054 (TARGET_HAVE_TLS): Define.
33055 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
33056 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
33057 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
33058 load_tls_operand, microblaze_call_tls_get_addr,
33059 microblaze_legitimize_tls_address): New functions.
33060 (microblaze_classify_unspec): Handle UNSPEC_TLS.
33061 (get_base_reg): Use microblaze_tls_symbol_p.
33062 (microblaze_classify_address): Handle TLS.
33063 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
33064 label_mentioned_p and microblaze_tls_referenced_p.
33065 (microblaze_legitimize_address): Handle TLS.
33066 (microblaze_address_insns): Handle ADDRESS_TLS.
33067 (pic_address_needs_scratch): Handle TLS.
33068 (print_operand_address): Handle TLS.
33069 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
33070 (microblaze_expand_move): Handle TLS.
33071 (microblaze_legitimate_constant_p): Check
33072 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
33073 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
33074 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
33075 (PIC_OFFSET_TABLE_REGNUM): Set.
33076 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
33077 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
33078 (addsi3, movsi_internal2, movdf_internal): Update constraints
33079 * config/microblaze/predicates.md (arith_plus_operand): Define
33080 (move_operand): Redefine as move_src_operand,
33081 check microblaze_tls_referenced_p.
33082
33083 2013-03-14 Ian Bolton <ian.bolton@arm.com>
33084
33085 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
33086 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
33087
33088 2013-03-14 Ian Bolton <ian.bolton@arm.com>
33089
33090 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
33091 CC mode for AND.
33092
33093 2013-03-14 Jakub Jelinek <jakub@redhat.com>
33094
33095 PR tree-optimization/53265
33096 * common.opt (Waggressive-loop-optimizations): New option.
33097 * tree-ssa-loop-niter.c: Include tree-pass.h.
33098 (do_warn_aggressive_loop_optimizations): New function.
33099 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
33100 if number_of_latch_executions returned constant.
33101 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
33102 early. If number_of_latch_executions returned constant, set
33103 nb_iterations_upper_bound back to it.
33104 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
33105 field.
33106 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
33107 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
33108
33109 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
33110 (MULTILIB_OSDIRNAMES): Set.
33111 * genmultilib: If defaultosdirname doesn't start with :: , set
33112 defaultosdirname2 instead, clear it and emit two . multilib_raw
33113 entries instead of just one.
33114
33115 2013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
33116
33117 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
33118 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
33119 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
33120 (SUBTARGET_OVERRIDE_OPTIONS): New.
33121
33122 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
33123
33124 PR target/49880
33125 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
33126 (musermode): Convert to Var(TARGET_USERMODE).
33127 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
33128 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
33129 * config/sh/sh.c (sh_option_override): Use
33130 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
33131 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
33132 condition.
33133 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
33134 TARGET_SH4.
33135 (udivsi3_i4_single, divsi3_i4_single): Use
33136 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
33137
33138 2013-03-13 Dave Korn <dave.korn.cygwin@gmail.com>
33139
33140 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
33141 default setting.
33142
33143 2013-03-13 Richard Biener <rguenther@suse.de>
33144
33145 PR tree-optimization/56608
33146 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
33147 calls when vectorizing basic-blocks.
33148
33149 2013-03-13 Jakub Jelinek <jakub@redhat.com>
33150
33151 PR plugins/45078
33152 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
33153 tm_file.
33154
33155 2013-03-12 Jakub Jelinek <jakub@redhat.com>
33156
33157 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
33158
33159 2013-03-11 Jan Hubicka <jh@suse.cz>
33160
33161 PR lto/56557
33162 * lto-streamer-out.c (output_symbol_p): Skip references from
33163 constructors of external variables.
33164
33165 2013-03-11 Jan Hubicka <jh@suse.cz>
33166
33167 PR middle-end/56571
33168 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
33169 from pseudos.
33170 * emit-rtl.c (verify_rtx_sharing): Likewise.
33171 (copy_insn_1): Likewise.
33172 * rtl.c (copy_rtx): Likewise.
33173
33174 2013-03-11 Georg-Johann Lay <avr@gjlay.de>
33175
33176 PR target/56591
33177 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
33178 output_operand_lossage message.
33179
33180 2013-03-11 Richard Earnshaw <rearnsha@arm.com>
33181
33182 PR target/56470
33183 * arm.c (shift_op): Validate RTL pattern on the fly.
33184 (arm_print_operand, case 'S'): Don't use shift_operator to validate
33185 the RTL.
33186
33187 2013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33188
33189 PR target/56347
33190 * config/pa/pa.md (call_value): Check for calls to powf and direct to
33191 new call patterns that clobber %fr12.
33192 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
33193 split and postreload patterns.
33194 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
33195 registers %fr12 and %fr12R as call used.
33196
33197 2013-03-09 Steven Bosscher <steven@gcc.gnu.org>
33198
33199 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
33200 (canon_address, record_store, replace_read, check_mem_read_rtx,
33201 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
33202 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
33203 rest_of_handle_dse): Likewise.
33204
33205 2013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
33206
33207 PR middle-end/56524
33208 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
33209 Add base_optabs.
33210 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
33211 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
33212 (save_optabs_if_changed): Replace with...
33213 (init_tree_optimization_optabs): ...this.
33214 * optabs.c (save_optabs_if_changed): Rename to...
33215 (init_tree_optimization_optabs): ...this. Take the optimization node
33216 as argument. Do nothing if the base optabs are already correct.
33217 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
33218 to recompute optabs.
33219 * function.h (function): Remove optabs field.
33220 * function.c (invoke_set_current_function_hook): Call
33221 init_tree_optimization_optabs. Use the result to initialize
33222 this_fn_optabs.
33223
33224 2013-02-27 Aldy Hernandez <aldyh@redhat.com>
33225
33226 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
33227 if GTMA_HAS_NO_INSTRUMENTATION.
33228 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
33229 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
33230 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
33231 * gimple-pretty-print.c (dump_gimple_transaction): Handle
33232 GTMA_HAS_NO_INSTRUMENTATION.
33233
33234 2013-03-08 Jakub Jelinek <jakub@redhat.com>
33235
33236 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
33237 libasan_preinit.o.
33238
33239 2013-03-08 Marek Polacek <polacek@redhat.com>
33240 Jakub Jelinek <jakub@redhat.com>
33241
33242 PR tree-optimization/56478
33243 * predict.c (is_comparison_with_loop_invariant_p): Change the
33244 type of loop_step to tree.
33245 (predict_loops): Adjust.
33246 (predict_iv_comparison): Perform the computations on double_ints.
33247
33248 2013-03-08 Richard Biener <rguenther@suse.de>
33249
33250 PR tree-optimization/56570
33251 * tree-cfg.c (verify_expr_location_1): Verify locations for
33252 DECL_DEBUG_EXPR.
33253 * tree-sra.c (create_access_replacement): Strip locations
33254 from DECL_DEBUG_EXPRs.
33255
33256 2013-03-08 Richard Biener <rguenther@suse.de>
33257
33258 * tree-inline.c (expand_call_inline): Do not associate
33259 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
33260 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
33261
33262 2013-03-08 Richard Biener <rguenther@suse.de>
33263
33264 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
33265 or block changes with -Og. Fix for location / block encoding
33266 changes and PHI arguments with locations.
33267
33268 2013-03-07 Steven Bosscher <steven@gcc.gnu.org>
33269
33270 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
33271 for all counters.
33272 (struct output_info): Likewise.
33273 (register_overhead): Remove bad gcc_assert.
33274 (bitmap_find_bit): If there is only a single bitmap element, do not
33275 count a miss as a search.
33276 (print_statistics): Update for counter type changes.
33277 (dump_bitmap_statistics): Likewise. Print headers such that they
33278 are properly lined up with the printed counters.
33279
33280 2013-03-07 Jakub Jelinek <jakub@redhat.com>
33281
33282 PR tree-optimization/56559
33283 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
33284 check that it has only a single use.
33285
33286 2013-03-07 Richard Biener <rguenther@suse.de>
33287
33288 * doc/invoke.texi (fwhole-program): Discourage use in combination
33289 with -flto.
33290
33291 2013-03-06 Jakub Jelinek <jakub@redhat.com>
33292
33293 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
33294
33295 PR tree-optimization/56539
33296 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
33297 instead of GSI_CONTINUE_LINKING as last argument to
33298 force_gimple_operand_gsi. Adjust function comment.
33299
33300 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
33301 aarch64-cores.def.
33302
33303 PR middle-end/56548
33304 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
33305 promoted mode, convert the result back to the original mode.
33306
33307 2013-03-06 Richard Biener <rguenther@suse.de>
33308
33309 PR middle-end/56294
33310 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
33311 (insert_updated_phi_nodes_compare_uids): New function.
33312 (update_ssa): Sort symbols_to_rename after UID before
33313 traversing it to insert PHI nodes.
33314
33315 2013-03-06 Richard Biener <rguenther@suse.de>
33316
33317 PR middle-end/50494
33318 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
33319 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
33320
33321 Revert
33322 2013-02-13 Richard Biener <rguenther@suse.de>
33323
33324 PR lto/50494
33325 * varasm.c (output_constant_def_1): Get the decl representing
33326 the constant as argument.
33327 (output_constant_def): Wrap output_constant_def_1.
33328 (make_decl_rtl): Use output_constant_def_1 with the decl
33329 representing the constant.
33330 (build_constant_desc): Optionally re-use a decl already
33331 representing the constant.
33332 (tree_output_constant_def): Adjust.
33333
33334 2013-03-06 Joey Ye <joey.ye@arm.com>
33335
33336 PR lto/50293
33337 * gcc.c (convert_white_space): New function.
33338 (main): Handles white space in function name.
33339
33340 2013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
33341
33342 PR target/56529
33343 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
33344 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
33345 to SH_DIV_CALL_TABLE for TARGET_SH2.
33346 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
33347 list.
33348 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
33349 call-table options.
33350
33351 2013-03-05 Sterling Augustine <saugustine@google.com>
33352 Cary Coutant <ccoutant@google.com>
33353
33354 PR debug/55364
33355 * dwarf2out.c (resolve_addr): Don't call
33356 remove_loc_list_addr_table_entries a second time for the same
33357 expression.
33358
33359 2013-03-05 Jakub Jelinek <jakub@redhat.com>
33360
33361 PR debug/56510
33362 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
33363 (avoid_complex_debug_insns): New function.
33364 (expand_debug_locations): Call it.
33365
33366 PR rtl-optimization/56484
33367 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
33368 lifetimes of hard registers on small register class machines.
33369
33370 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
33371
33372 * config/microblaze/microblaze-protos.h: Rename
33373 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
33374 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
33375 fast_interrupt.
33376 (microblaze_fast_interrupt_function_p): New function.
33377 (microblaze_is_interrupt_handler): Rename to
33378 microblaze_is_interrupt_variant and add fast_interrupt check.
33379 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
33380 (save_restore_insns): Likewise.
33381 (compute_frame_size): Likewise.
33382 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
33383 (microblaze_globalize_label): Likewise.
33384 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
33385 * config/microblaze/microblaze.md: Use wrapper
33386 microblaze_is_interrupt_variant.
33387
33388 2013-03-05 Kai Tietz <ktietz@redhat.com>
33389
33390 * sdbout.c (sdbout_one_type): Switch to current function's section
33391 supporting cold/hot.
33392
33393 2013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
33394
33395 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
33396 -mxl-reorder.
33397
33398 2013-03-05 Jakub Jelinek <jakub@redhat.com>
33399
33400 PR middle-end/56461
33401 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
33402 if VALGRIND_GET_VBITS is defined, temporarily make object
33403 memory all defined, and restore previous valgrind addressability
33404 and definability afterwards. Free this_object at the end.
33405
33406 PR middle-end/56461
33407 * lra.c (lra): Call lra_clear_live_ranges if live_p,
33408 right before calling lra_create_live_ranges, also call it
33409 when clearing live_p. Only call lra_clear_live_ranges
33410 at the end if live_p.
33411
33412 PR middle-end/56461
33413 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
33414
33415 2013-03-05 Richard Biener <rguenther@suse.de>
33416
33417 PR tree-optimization/56521
33418 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
33419 value-id.
33420
33421 2013-03-05 Steven Bosscher <steven@gcc.gnu.org>
33422
33423 PR c++/55135
33424 * except.h (remove_unreachable_eh_regions): New prototype.
33425 * except.c (remove_eh_handler_splicer): New function, split out
33426 of remove_eh_handler.
33427 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
33428 warning about running it on many EH regions one at a time.
33429 (remove_unreachable_eh_regions_worker): New function, walk the
33430 EH tree in depth-first order and remove non-marked regions.
33431 (remove_unreachable_eh_regions): New function.
33432 * tree-eh.c (mark_reachable_handlers): New function, split out
33433 from remove_unreachable_handlers.
33434 (remove_unreachable_handlers): Use mark_reachable_handlers and
33435 remove_unreachable_eh_regions.
33436 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
33437 and remove_unreachable_eh_regions.
33438
33439 2013-03-05 Richard Biener <rguenther@suse.de>
33440
33441 PR middle-end/56525
33442 * loop-init.c (fix_loop_structure): Remove loops in two stages,
33443 not freeing them until the end.
33444
33445 2013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33446
33447 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
33448
33449 2013-03-05 Richard Biener <rguenther@suse.de>
33450
33451 PR tree-optimization/56270
33452 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
33453 of loads after scheduling an SLP instance.
33454
33455 2013-03-05 Jakub Jelinek <jakub@redhat.com>
33456
33457 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
33458 tic6x.exp.
33459 (check_gcc_parallelize): Run guality.exp as a separate job from
33460 vect.exp with unsorted.exp and $(dg_target_exps) separately from
33461 struct-layout-1.exp with stackalign.exp.
33462
33463 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
33464
33465 PR middle-end/56461
33466 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
33467 load_index sbitmap even if some bit in it isn't set.
33468
33469 PR middle-end/56461
33470 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
33471 (discover_iteration_bound_by_body_walk): Change queues to
33472 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
33473 spelling in comment. Call safe_push on queues[bound_index] directly.
33474 Release queues[queue_index] in every iteration unconditionally.
33475 Release bounds vector.
33476
33477 PR middle-end/56461
33478 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
33479 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
33480 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
33481 inner_phis vector.
33482
33483 2013-03-05 Richard Biener <rguenther@suse.de>
33484
33485 PR lto/56515
33486 * tree-inline.c (remap_blocks_to_null): New function.
33487 (expand_call_inline): When expanding a call stmt without
33488 an associated block inline remap all callee blocks to NULL.
33489
33490 2013-03-05 Jakub Jelinek <jakub@redhat.com>
33491
33492 PR rtl-optimization/56494
33493 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
33494 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
33495 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
33496
33497 PR middle-end/56461
33498 * sel-sched-ir.c (free_sched_pools): Release
33499 succs_info_pool.stack[succs_info_pool.max_top] vectors too
33500 if succs_info_pool.max_top isn't -1.
33501
33502 PR bootstrap/56509
33503 * opts.c (opts_obstack, opts_concat): Moved to...
33504 * opts-common.c (opts_obstack, opts_concat): ... here.
33505
33506 2013-03-04 Jakub Jelinek <jakub@redhat.com>
33507
33508 PR middle-end/56461
33509 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
33510
33511 2013-03-04 Martin Jambor <mjambor@suse.cz>
33512
33513 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
33514 all appropriate places.
33515
33516 2013-01-04 Eric Botcazou <ebotcazou@adacore.com>
33517
33518 PR tree-optimization/56424
33519 * ipa-split.c (split_function): Do not set the RSO flag if result is
33520 not by reference and its type is a register type.
33521
33522 2013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
33523
33524 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
33525 (microblaze_legitimate_pic_operand): Likewise
33526 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
33527 new function microblaze_legitimate_pic_operand
33528 * config/microblaze/microblaze-protos.h
33529 (microblaze_legitimate_pic_operand): Declare.
33530
33531 2013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
33532
33533 * config/microblaze/predicates.md (call_insn_simple_operand):
33534 New predicate for supported rtx code types.
33535 * config/microblaze/microblaze.md (call_internal1): Use
33536 call_insn_simple_operand predicate.
33537
33538 2013-03-04 Jakub Jelinek <jakub@redhat.com>
33539
33540 PR middle-end/56461
33541 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
33542 partitions.ordered_remove.
33543
33544 PR middle-end/56461
33545 * tree-vect-stmts.c (vectorizable_conversion): Don't call
33546 vec_oprnds0.create (1) for modifier == NONE.
33547
33548 PR middle-end/56461
33549 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
33550 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
33551 vec_oprnds1 right before pushing anything to it for
33552 scalar_shift_arg.
33553
33554 PR middle-end/56461
33555 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
33556 set nbbs to 0 instead of having separate code path.
33557 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
33558 instead of false as last argument if returning NULL.
33559
33560 2013-03-03 Sandra Loosemore <sandra@codesourcery.com>
33561
33562 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
33563 the attribute is now called "target" instead of "option".
33564 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
33565 * doc/tm.texi.in (Target Attributes): Likewise document the correct
33566 attribute/pragma name for TARGET_OPTION_VALID_P and
33567 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
33568 * doc/tm.texi: Regenerated.
33569
33570 2013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
33571
33572 * config/microblaze/microblaze.c:
33573 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
33574 * config/microblaze/microblaze.h: Add -mxl-reorder to
33575 DRIVER_SELF_SPECS.
33576 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
33577 instructions emitted if TARGET_REORDER.
33578 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
33579 or 0 for -m/-mno case, but initialises as 2 to detect default use case
33580 separately.
33581
33582 2013-03-01 Xinliang David Li <davidxl@google.com>
33583
33584 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
33585 walk length.
33586
33587 2013-03-01 Jakub Jelinek <jakub@redhat.com>
33588
33589 PR middle-end/56461
33590 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
33591 vector even when returning true. Fix up function comment formatting.
33592
33593 PR middle-end/56461
33594 * ira-build.c (ira_loop_nodes_count): New variable.
33595 (create_loop_tree_nodes): Initialize it.
33596 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
33597
33598 PR middle-end/56461
33599 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
33600 method on dr_chain and result_chain.
33601 * tree-vect-stmts.c (vectorizable_store): Only call
33602 result_chain.create if j == 0.
33603
33604 PR middle-end/56461
33605 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
33606 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
33607 before overwriting it.
33608
33609 2013-03-01 Tobias Burnus <burnus@net-b.de>
33610
33611 * doc/extended.texi (C Extensions): Change order in @menu
33612 to match @node.
33613 (Other MIPS Built-in Functions): Move last MIPS entry before
33614 "picoChip Built-in Functions".
33615 (SH Built-in Functions): Move after RX Built-in Functions.
33616 * doc/gcc.texi (Introduction): Change order in @menu
33617 to match @node.
33618 * doc/md.texi (Constraints): Ditto.
33619 * gty.texi (Type Information): Ditto.
33620 (User-provided marking routines for template types): Make
33621 subsection.
33622 * doc/invoke.texi (AArch64 Options): Move before
33623 "Adapteva Epiphany Options".
33624
33625 2013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
33626 Jakub Jelinek <jakub@redhat.com>
33627
33628 PR sanitizer/56454
33629 * asan.c (gate_asan): Lookup no_sanitize_address instead of
33630 no_address_safety_analysis attribute.
33631 * doc/extend.texi (no_address_safety_attribute): Rename to
33632 no_sanitize_address attribute, mention no_address_safety_analysis
33633 attribute as deprecated alias.
33634
33635 2013-02-28 Jakub Jelinek <jakub@redhat.com>
33636
33637 PR middle-end/56461
33638 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
33639 type to vec<vec<tree> > *.
33640 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
33641 to be vec<tree> instead of vec<tree> *, set vec_defs
33642 to vNULL and call vec_defs.create (number_of_vects), adjust other
33643 uses of vec_defs.
33644 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
33645 vectorizable_condition): Adjust vect_get_slp_defs callers.
33646
33647 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
33648
33649 * config/aarch64/aarch64.c
33650 (aarch64_float_const_representable): Remove unused variable.
33651
33652 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
33653
33654 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
33655
33656 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
33657
33658 * config/aarch64/aarch64-builtins.c
33659 (aarch64_init_simd_builtins): Make static.
33660
33661 2013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
33662
33663 * config/aarch64/aarch64.c
33664 (aarch64_simd_make_constant): Make static.
33665
33666 2013-02-28 Martin Jambor <mjambor@suse.cz>
33667
33668 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
33669 with no initialization to the RHS of debug statements.
33670
33671 2013-02-28 Martin Jambor <mjambor@suse.cz>
33672
33673 PR tree-optimization/56294
33674 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
33675 Adjust dumping.
33676 (get_access_replacement): Do not call create_access_replacement.
33677 Assert a replacement exists.
33678 (get_repl_default_def_ssa_name): Create the replacement declaration
33679 itself.
33680
33681 2013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33682
33683 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
33684 final_end_function.
33685
33686 2013-02-28 Marek Polacek <polacek@redhat.com>
33687
33688 PR rtl-optimization/56466
33689 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
33690 if we're changing a loop.
33691 (peel_loops_completely): Likewise.
33692
33693 2013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
33694
33695 PR c++/55813
33696 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
33697
33698 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
33699
33700 PR target/56445
33701 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
33702 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
33703 INTX_FTYPE_FX, FX_FTYPE_INTX.
33704 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
33705
33706 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
33707
33708 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
33709 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
33710 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
33711 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
33712 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
33713 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
33714 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
33715 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
33716 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
33717 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
33718 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
33719 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
33720 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
33721 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
33722 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
33723 (avrxmega6): Increase max flash segments from 5 to 6.
33724 * config/avr/t-multilib: Regenerate.
33725 * config/avr/avr-tables.opt: Regenerate.
33726 * doc/avr-mmcu.texi: Regenerate.
33727
33728 2013-02-28 Georg-Johann Lay <avr@gjlay.de>
33729
33730 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
33731 (avr_device_to_arch): Rename to avr_device_to_ld.
33732 (avr_device_to_as): New prototype.
33733 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
33734 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
33735 * config/avr/driver-avr.c (avr_device_to_as): New.
33736 (avr_device_to_arch): Rename to avr_device_to_ld.
33737
33738 2013-02-27 Jakub Jelinek <jakub@redhat.com>
33739
33740 PR middle-end/56461
33741 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
33742 method on dr_chain and result_chain.
33743
33744 PR middle-end/56461
33745 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
33746 pointer_set_destroy on not_executed_last_iteration.
33747
33748 PR middle-end/56461
33749 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
33750
33751 PR middle-end/56461
33752 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
33753 FOR_EACH_DEFINED_FUNCTION when freeing state.
33754
33755 PR middle-end/56461
33756 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
33757 pool_free.
33758 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
33759 overwriting it.
33760
33761 PR middle-end/56461
33762 * ipa-cp.c (decide_whether_version_node): Call vec_free on
33763 known_aggs[i].items and release known_aggs vector.
33764
33765 PR middle-end/56461
33766 * ipa-reference.c (propagate): Free node_info even for alias nodes.
33767
33768 2013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
33769
33770 * config/microblaze/microblaze.c (microblaze_emit_compare):
33771 Use xor for EQ/NE comparisions.
33772 * config/microblaze/microblaze.md (cstoresf4): Add constraints
33773 (cbranchsf4): Adjust operator to comparison_operator.
33774
33775 2013-02-27 Jakub Jelinek <jakub@redhat.com>
33776
33777 PR middle-end/56461
33778 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
33779 vector.
33780 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
33781 vec_safe_push, always update *slot.
33782 (redirect_edge_var_map_clear): Use vec_free.
33783 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
33784 (free_var_map_entry): Use vec_free.
33785 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
33786 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
33787
33788 2013-02-27 Andrey Belevantsev <abel@ispras.ru>
33789
33790 PR middle-end/45472
33791 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
33792 when the may_trap_p bit of the exprs being merged differs.
33793 Reorder tests for speculativeness in the logical and operator.
33794
33795 2013-02-27 Jakub Jelinek <jakub@redhat.com>
33796
33797 * incpath.c (add_standard_paths): Use reconcat instead of concat
33798 where appropriate and avoid leaking memory.
33799
33800 * opts.h: Include obstack.h.
33801 (opts_concat): New prototype.
33802 (opts_obstack): New declaration.
33803 * opts.c (opts_concat): New function.
33804 (opts_obstack): New variable.
33805 (init_options_struct): Call gcc_init_obstack on opts_obstack.
33806 (finish_options): Use opts_concat instead of concat
33807 and XOBNEWVEC instead of XNEWVEC.
33808 * opts-common.c (generate_canonical_option, decode_cmdline_option,
33809 generate_option): Likewise.
33810 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
33811 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
33812
33813 PR target/56455
33814 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
33815 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
33816
33817 2013-02-26 Jakub Jelinek <jakub@redhat.com>
33818
33819 PR middle-end/56461
33820 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
33821
33822 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
33823
33824 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
33825 (arm_block_move_unaligned_straight): Likewise.
33826 (arm_adjust_block_mem): Likewise.
33827
33828 2013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
33829
33830 PR target/48901
33831 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
33832 temp, cond and label.
33833 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
33834
33835 PR target/52500
33836 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
33837 * config/c6x/c6x.h (dbx_register_map): Update declaration.
33838
33839 PR target/52501
33840 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
33841 of prologue/epilogue functions.
33842
33843 PR target/52550
33844 * config/tilegx/tilegx.c (tilegx_expand_prologue):
33845 Remove unused variable cfa_offset.
33846 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
33847
33848 PR target/54639
33849 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
33850 type promotion to unsigned.
33851
33852 PR target/54640
33853 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
33854 for HOST_WIDE_INT of 32 bit / same size as int.
33855 (arm_block_move_unaligned_straight): Likewise.
33856 (arm_adjust_block_mem): Likewise.
33857
33858 PR target/54662
33859 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
33860 ALL_CFLAGS.
33861
33862 2013-02-26 Marek Polacek <polacek@redhat.com>
33863
33864 PR tree-optimization/56426
33865 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
33866
33867 2013-02-26 Richard Biener <rguenther@suse.de>
33868
33869 PR target/56444
33870 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
33871 unused variable loops.
33872
33873 2013-02-26 Jakub Jelinek <jakub@redhat.com>
33874
33875 PR tree-optimization/56448
33876 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
33877 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
33878 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
33879 later operands of the references, or even first operand for
33880 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
33881
33882 PR tree-optimization/56443
33883 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
33884 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
33885 to type_for_mode langhook.
33886
33887 2013-02-25 Matt Turner <mattst88@gmail.com>
33888
33889 * doc/invoke.texi: Document r4700.
33890
33891 2013-02-25 Richard Biener <rguenther@suse.de>
33892
33893 PR tree-optimization/56175
33894 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
33895 split out from ...
33896 (simplify_bitwise_binary): ... here. Also guard the conversion
33897 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
33898
33899 2013-02-25 Catherine Moore <clm@codesourcery.com>
33900
33901 Revert:
33902 2013-02-24 Catherine Moore <clm@codesourcery.com>
33903 Maciej W. Rozycki <macro@codesourcery.com>
33904 Tom de Vries <tom@codesourcery.com>
33905 Nathan Sidwell <nathan@codesourcery.com>
33906 Iain Sandoe <iain@codesourcery.com>
33907 Nathan Froyd <froydnj@codesourcery.com>
33908 Chao-ying Fu <fu@mips.com>
33909
33910 * doc/extend.texi: (micromips, nomicromips, nocompression):
33911 Document new function attributes.
33912 * doc/invoke.texi (minterlink-compressed, mmicromips,
33913 m14k, m14ke, m14kec): Document new options.
33914 (minterlink-mips16): Update documentation.
33915 * doc/md.texi (ZC, ZD): Document new constraints.
33916 * configure.ac (gcc_cv_as_micromips): Check if linker
33917 supports the .set micromips directive.
33918 * configure: Regenerate.
33919 * config.in: Regenerate.
33920 * config/mips/mips-tables.opt: Regenerate.
33921 * config/mips/micromips.md: New file.
33922 * constraints.md (ZC, AD): New constraints.
33923 * config/mips/predicates.md (movep_src_register): New predicate.
33924 (movep_src_operand): New predicate.
33925 (non_volatile_mem_operand): New predicate.
33926 * config/mips/mips.md (multimem): New type.
33927 (length): Differentiate between 17-bit and 18-bit branch offsets.
33928 (MOVEP1, MOVEP2): New mode iterator.
33929 (mov_<load>l): Use ZC constraint.
33930 (mov_<load>r): Likewise.
33931 (mov_<store>l): Likewise.
33932 (mov_<store>r): Likewise.
33933 (*branch_equality<mode>_inverted): Add microMIPS support.
33934 (*branch_equality<mode>): Likewise.
33935 (*jump_absolute): Likewise.
33936 (indirect_jump_<mode>): Likewise.
33937 (tablejump_<mode>): Likewise.
33938 (<optab>_internal): Likewise.
33939 (sibcall_internal): Likewise.
33940 (sibcall_value_internal): Likewise.
33941 (prefetch): Use constraint ZD.
33942 * config/mips/mips.opt (minterlink-compressed): New option.
33943 (minterlink-mips16): Now an alias for minterlink-compressed.
33944 (mmicromips): New option.
33945 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
33946 (compare_and_swap_12): Likewise.
33947 (sync_add<mode>): Likewise.
33948 (sync_<optab>_12): Likewise.
33949 (sync_old_<optab>_12): Likewise.
33950 (sync_new_<optab>_12): Likewise.
33951 (sync_nand_12): Likewise.
33952 (sync_old_nand_12): Likewise.
33953 (sync_new_nand_12): Likewise.
33954 (sync_sub<mode>): Likewise.
33955 (sync_old_add<mode>): Likewise.
33956 (sync_old_sub<mode>): Likewise.
33957 (sync_new_add<mode>): Likewise.
33958 (sync_new_sub<mode>): Likewise.
33959 (sync_<optab><mode>): Likewise.
33960 (sync_old_<optab><mode>): Likewise.
33961 (sync_new_<optab><mode>): Likewise.
33962 (sync_nand<mode>): Likewise.
33963 (sync_old_nand<mode>): Likewise.
33964 (sync_new_nand<mode>): Likewise.
33965 (sync_lock_test_and_set<mode>): Likewise.
33966 (test_and_set_12): Likewise.
33967 (atomic_compare_and_swap<mode>): Likewise.
33968 (atomic_exchange<mode>_llsc): Likewise.
33969 (atomic_fetch_add<mode>_llsc): Likewise.
33970 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
33971 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
33972 (umips_save_restore_pattern_p): Likewise.
33973 (umips_load_store_pair_p): Likewise.
33974 (umips_output_load_store_pair): Likewise.
33975 (umips_movep_target_p): Likewise.
33976 (umips_12bit_offset_address_p): Likewise.
33977 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
33978 (mips_base_mips16): Rename this...
33979 (mips_base_compression_flags): ...to this. Update all uses.
33980 (mips_attribute_table): Add micromips, nomicromips and nocompression.
33981 (mips_mips16_decl_p): Delete.
33982 (mips_nomips16_decl_p): Delete.
33983 (mips_get_compress_on_flags): New function.
33984 (mips_get_compress_off_flags): New function.
33985 (mips_get_compress_mode): New function.
33986 (mips_get_compress_on_name): New function.
33987 (mips_get_compress_off_name): New function.
33988 (mips_insert_attributes): Support multiple compression types.
33989 (mips_merge_decl_attributes): Likewise.
33990 (umips_12bit_offset_address_p): New function.
33991 (mips_start_function_definition): Emit .set micromips directive.
33992 (mips_call_may_need_jalx_p): New function.
33993 (mips_function_ok_for_sibcall): Add microMIPS support.
33994 (mips_print_operand_punctuation): Support short delay slots and
33995 compact jumps.
33996 (umips_swm_mask, umips_swm_encoding): New.
33997 (umips_build_save_restore): New function.
33998 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
33999 (was_mips16_p): Remove.
34000 (old_compression_mode): New.
34001 (mips_set_compression_mode): New function.
34002 (mips_set_current_function): Add microMIPS support.
34003 (mips_option_override): Likewise.
34004 (umips_save_restore_pattern_p): New function.
34005 (umips_output_save_restore): New function.
34006 (umips_load_store_pair_p_1): New function.
34007 (umips_load_store_pair_p): New function.
34008 (umips_output_load_store_pair_1): New function.
34009 (umips_output_load_store_pair): New function.
34010 (umips_movep_target_p) New function.
34011 (mips_prepare_pch_save): Add microMIPS support.
34012 * config/mips/mips.h (TARGET_COMPRESSION): New.
34013 (TARGET_CPU_CPP_BUILTINS): Update macro
34014 to use new compression flags and to support microMIPS.
34015 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
34016 (MIPS_ARCH_FLOAT_SPEC): Likewise.
34017 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
34018 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
34019 (ASM_SPEC): Support mmicromips and mno-micromips.
34020 (M16STORE_REG_P): New macro.
34021 (MIPS_CALL): Support TARGET_MICROMIPS.
34022 (MICROMIPS_J): New macro.
34023 (mips_base_mips16): Rename this...
34024 (mips_base_compression_flags): ...to this.
34025 (UMIPS_12BIT_OFFSET_P): New macro.
34026 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
34027 (MULTILIB_DIRNAMES): Likewise.
34028
34029 2013-02-25 Tom de Vries <tom@codesourcery.com>
34030
34031 PR rtl-optimization/56131
34032 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
34033 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
34034 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
34035
34036 2013-02-25 Tobias Burnus <burnus@net-b.de>
34037
34038 * doc/invoke.texi (-fsanitize=): Move from optimization
34039 to debugging options.
34040
34041 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
34042
34043 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
34044
34045 2013-02-25 Andrey Belevantsev <abel@ispras.ru>
34046 Alexander Monakov <amonakov@ispras.ru>
34047
34048 PR middle-end/56077
34049 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
34050 flush pending lists also on non-jumps. Adjust comment.
34051
34052 2013-02-24 Catherine Moore <clm@codesourcery.com>
34053 Maciej W. Rozycki <macro@codesourcery.com>
34054 Tom de Vries <tom@codesourcery.com>
34055 Nathan Sidwell <nathan@codesourcery.com>
34056 Iain Sandoe <iain@codesourcery.com>
34057 Nathan Froyd <froydnj@codesourcery.com>
34058 Chao-ying Fu <fu@mips.com>
34059
34060 * doc/extend.texi: (micromips, nomicromips, nocompression):
34061 Document new function attributes.
34062 * doc/invoke.texi (minterlink-compressed, mmicromips,
34063 m14k, m14ke, m14kec): Document new options.
34064 (minterlink-mips16): Update documentation.
34065 * doc/md.texi (ZC, ZD): Document new constraints.
34066 * configure.ac (gcc_cv_as_micromips): Check if linker
34067 supports the .set micromips directive.
34068 * configure: Regenerate.
34069 * config.in: Regenerate.
34070 * config/mips/mips-tables.opt: Regenerate.
34071 * config/mips/micromips.md: New file.
34072 * constraints.md (ZC, AD): New constraints.
34073 * config/mips/predicates.md (movep_src_register): New predicate.
34074 (movep_src_operand): New predicate.
34075 (non_volatile_mem_operand): New predicate.
34076 * config/mips/mips.md (multimem): New type.
34077 (length): Differentiate between 17-bit and 18-bit branch offsets.
34078 (MOVEP1, MOVEP2): New mode iterator.
34079 (mov_<load>l): Use ZC constraint.
34080 (mov_<load>r): Likewise.
34081 (mov_<store>l): Likewise.
34082 (mov_<store>r): Likewise.
34083 (*branch_equality<mode>_inverted): Add microMIPS support.
34084 (*branch_equality<mode>): Likewise.
34085 (*jump_absolute): Likewise.
34086 (indirect_jump_<mode>): Likewise.
34087 (tablejump_<mode>): Likewise.
34088 (<optab>_internal): Likewise.
34089 (sibcall_internal): Likewise.
34090 (sibcall_value_internal): Likewise.
34091 (prefetch): Use constraint ZD.
34092 * config/mips/mips.opt (minterlink-compressed): New option.
34093 (minterlink-mips16): Now an alias for minterlink-compressed.
34094 (mmicromips): New option.
34095 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
34096 (compare_and_swap_12): Likewise.
34097 (sync_add<mode>): Likewise.
34098 (sync_<optab>_12): Likewise.
34099 (sync_old_<optab>_12): Likewise.
34100 (sync_new_<optab>_12): Likewise.
34101 (sync_nand_12): Likewise.
34102 (sync_old_nand_12): Likewise.
34103 (sync_new_nand_12): Likewise.
34104 (sync_sub<mode>): Likewise.
34105 (sync_old_add<mode>): Likewise.
34106 (sync_old_sub<mode>): Likewise.
34107 (sync_new_add<mode>): Likewise.
34108 (sync_new_sub<mode>): Likewise.
34109 (sync_<optab><mode>): Likewise.
34110 (sync_old_<optab><mode>): Likewise.
34111 (sync_new_<optab><mode>): Likewise.
34112 (sync_nand<mode>): Likewise.
34113 (sync_old_nand<mode>): Likewise.
34114 (sync_new_nand<mode>): Likewise.
34115 (sync_lock_test_and_set<mode>): Likewise.
34116 (test_and_set_12): Likewise.
34117 (atomic_compare_and_swap<mode>): Likewise.
34118 (atomic_exchange<mode>_llsc): Likewise.
34119 (atomic_fetch_add<mode>_llsc): Likewise.
34120 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
34121 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
34122 (umips_save_restore_pattern_p): Likewise.
34123 (umips_load_store_pair_p): Likewise.
34124 (umips_output_load_store_pair): Likewise.
34125 (umips_movep_target_p): Likewise.
34126 (umips_12bit_offset_address_p): Likewise.
34127 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
34128 (mips_base_mips16): Rename this...
34129 (mips_base_compression_flags): ...to this. Update all uses.
34130 (mips_attribute_table): Add micromips, nomicromips and nocompression.
34131 (mips_mips16_decl_p): Delete.
34132 (mips_nomips16_decl_p): Delete.
34133 (mips_get_compress_on_flags): New function.
34134 (mips_get_compress_off_flags): New function.
34135 (mips_get_compress_mode): New function.
34136 (mips_get_compress_on_name): New function.
34137 (mips_get_compress_off_name): New function.
34138 (mips_insert_attributes): Support multiple compression types.
34139 (mips_merge_decl_attributes): Likewise.
34140 (umips_12bit_offset_address_p): New function.
34141 (mips_start_function_definition): Emit .set micromips directive.
34142 (mips_call_may_need_jalx_p): New function.
34143 (mips_function_ok_for_sibcall): Add microMIPS support.
34144 (mips_print_operand_punctuation): Support short delay slots and
34145 compact jumps.
34146 (umips_swm_mask, umips_swm_encoding): New.
34147 (umips_build_save_restore): New function.
34148 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
34149 (was_mips16_p): Remove.
34150 (old_compression_mode): New.
34151 (mips_set_compression_mode): New function.
34152 (mips_set_current_function): Add microMIPS support.
34153 (mips_option_override): Likewise.
34154 (umips_save_restore_pattern_p): New function.
34155 (umips_output_save_restore): New function.
34156 (umips_load_store_pair_p_1): New function.
34157 (umips_load_store_pair_p): New function.
34158 (umips_output_load_store_pair_1): New function.
34159 (umips_output_load_store_pair): New function.
34160 (umips_movep_target_p) New function.
34161 (mips_prepare_pch_save): Add microMIPS support.
34162 * config/mips/mips.h (TARGET_COMPRESSION): New.
34163 (TARGET_CPU_CPP_BUILTINS): Update macro
34164 to use new compression flags and to support microMIPS.
34165 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
34166 (MIPS_ARCH_FLOAT_SPEC): Likewise.
34167 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
34168 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
34169 (ASM_SPEC): Support mmicromips and mno-micromips.
34170 (M16STORE_REG_P): New macro.
34171 (MIPS_CALL): Support TARGET_MICROMIPS.
34172 (MICROMIPS_J): New macro.
34173 (mips_base_mips16): Rename this...
34174 (mips_base_compression_flags): ...to this.
34175 (UMIPS_12BIT_OFFSET_P): New macro.
34176 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
34177 (MULTILIB_DIRNAMES): Likewise.
34178
34179 2013-02-24 Jakub Jelinek <jakub@redhat.com>
34180
34181 PR target/52555
34182 * target-globals.c (save_target_globals): For init_reg_sets and
34183 target_reinit remporarily set this_fn_optabs to this_target_optabs.
34184
34185 2013-02-22 James Greenhalgh <james.greenhalgh@arm.com>
34186
34187 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
34188 * config/aarch64/t-aarch64
34189 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
34190
34191 2013-02-22 Vladimir Makarov <vmakarov@redhat.com>
34192
34193 PR inline-asm/56148
34194 * lra-constraints.c (process_alt_operands): Reload operand
34195 conflicting with earlier clobber only if no more other conflicting
34196 operands.
34197
34198 2013-02-22 Jakub Jelinek <jakub@redhat.com>
34199
34200 PR sanitizer/56393
34201 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
34202 if not linking a shared library.
34203
34204 2013-02-22 Seth LaForge <sethml@google.com>
34205
34206 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
34207
34208 2013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
34209
34210 * config/arm/arm.md (split for extendsidi): Update condition.
34211 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
34212 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
34213 (qhs_zextenddi_cstr): Likewise.
34214
34215 2013-02-21 Jakub Jelinek <jakub@redhat.com>
34216
34217 PR middle-end/56420
34218 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
34219 avoid signed wrapping.
34220 (expand_mult): Handle properly multiplication by
34221 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
34222 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
34223 in the compiler if coeff is HOST_WIDE_INT_MIN.
34224 (expand_divmod): Don't make ext_op1 static, change it's type to
34225 uhwi. Avoid undefined behavior in -INTVAL (op1).
34226
34227 PR rtl-optimization/50339
34228 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
34229 field.
34230 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
34231 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
34232 into splitting_ashiftrt field.
34233 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
34234 ASHIFTRT.
34235 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
34236 choices.
34237
34238 2013-02-20 Aldy Hernandez <aldyh@redhat.com>
34239
34240 PR middle-end/56108
34241 * trans-mem.c (execute_tm_mark): Do not expand transactions that
34242 are sure to go irrevocable.
34243
34244 2013-02-21 Hans-Peter Nilsson <hp@axis.com>
34245
34246 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
34247 scalars are valid operands.
34248
34249 2013-02-21 Martin Jambor <mjambor@suse.cz>
34250
34251 PR tree-optimization/56310
34252 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
34253 only matching indices and non-negative final offsets.
34254 (intersect_aggregates_with_edge): Pass src_idx to
34255 agg_replacements_to_vector. Pass src_idx insstead of index to
34256 intersect_with_agg_replacements.
34257
34258 2013-02-21 Martin Jambor <mjambor@suse.cz>
34259
34260 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
34261 instead of hard-wired defaults.
34262
34263 2013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
34264
34265 * doc/invoke.texi (MIPS Options): Update documentation of the
34266 floating-point multiply-accumulate instruction restrictions.
34267
34268 2013-02-21 Kostya Serebryany <kcc@google.com>
34269
34270 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
34271 asan_shadow_offset on x86_64 linux.
34272
34273 2013-02-21 Richard Biener <rguenther@suse.de>
34274
34275 PR tree-optimization/56415
34276 Revert
34277 2013-02-11 Richard Biener <rguenther@suse.de>
34278
34279 PR tree-optimization/56273
34280 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
34281 first VRP run.
34282
34283 2013-02-21 Jakub Jelinek <jakub@redhat.com>
34284
34285 PR bootstrap/56258
34286 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
34287 instead of @itemx.
34288
34289 PR inline-asm/56405
34290 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
34291 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
34292
34293 2013-02-20 Jan Hubicka <jh@suse.cz>
34294
34295 PR tree-optimization/56265
34296 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
34297 when target is referenced for first time.
34298
34299 2013-02-20 Richard Biener <rguenther@suse.de>
34300
34301 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
34302 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
34303 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
34304 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
34305 not return anything.
34306 (rename_ssa_copies): Do not remove unused locals.
34307 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
34308 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
34309 * passes.c (execute_function_todo): Do not schedule unused locals
34310 removal if cleanup_tree_cfg did something.
34311 * tree-ssa-live.c (remove_unused_locals): Dump statistics
34312 about the number of removed locals.
34313
34314 2013-02-20 Richard Biener <rguenther@suse.de>
34315
34316 PR tree-optimization/56398
34317 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
34318
34319 2013-02-20 Martin Jambor <mjambor@suse.cz>
34320
34321 PR tree-optimization/55334
34322 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
34323 restricted pointers to arrays.
34324
34325 2013-02-20 Richard Biener <rguenther@suse.de>
34326 Jakub Jelinek <jakub@redhat.com>
34327
34328 PR tree-optimization/56396
34329 * tree-ssa-ccp.c (n_const_val): New static variable.
34330 (get_value): Return NULL for SSA names we don't have a lattice
34331 entry for.
34332 (ccp_initialize): Initialize n_const_val.
34333 * tree-ssa-copy.c (n_copy_of): New static variable.
34334 (init_copy_prop): Initialize n_copy_of.
34335 (get_value): Return NULL_TREE for SSA names we don't have a
34336 lattice entry for.
34337
34338 2013-02-20 Martin Jambor <mjambor@suse.cz>
34339
34340 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
34341
34342 2013-02-20 Richard Biener <rguenther@suse.de>
34343
34344 * genpreds.c (write_lookup_constraint): Do not compare first
34345 letter of the constraint again.
34346
34347 2013-02-20 Richard Biener <rguenther@suse.de>
34348
34349 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
34350 and ceil_log2.
34351 (get_use_iv_cost): Terminate hashtable walk when coming across
34352 an empty entry.
34353
34354 2013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
34355
34356 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
34357 reassociation for avx2 targets.
34358
34359 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
34360
34361 * config/microblaze/microblaze.c: microblaze_has_clz = 0
34362 Add version check for v8.10.a to enable microblaze_has_clz
34363 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
34364 version and TARGET_PATTERN_COMPARE check
34365 * config/microblaze/microblaze.md: New clzsi2 instruction
34366
34367 2012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
34368
34369 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
34370 function before branching.
34371
34372 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
34373
34374 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
34375 DUMP_INSN_RTX_UID.
34376 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
34377
34378 2012-02-19 Andrey Belevantsev <abel@ispras.ru>
34379
34380 PR middle-end/55889
34381 * sel-sched.c: Include ira.h.
34382 (implicit_clobber_conflict_p): New function.
34383 (moveup_expr): Use it.
34384 * Makefile.in (sel-sched.o): Depend on ira.h.
34385
34386 2013-02-19 Richard Biener <rguenther@suse.de>
34387
34388 PR tree-optimization/56384
34389 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
34390 (vn_hash_type): Split out from ...
34391 (vn_hash_constant_with_type): ... here.
34392 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
34393 (vn_phi_eq): Compare types from vn_phi_s structure.
34394 (vn_phi_lookup): Populate vn_phi_s type.
34395 (vn_phi_insert): Likewise.
34396
34397 2013-02-19 Jakub Jelinek <jakub@redhat.com>
34398
34399 PR tree-optimization/56350
34400 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
34401 if haven't found reduction or nested cycle operand, rather than
34402 asserting we must find it.
34403
34404 PR tree-optimization/56381
34405 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
34406 to fold_build3.
34407
34408 2013-02-18 Aldy Hernandez <aldyh@redhat.com>
34409 Jakub Jelinek <jakub@redhat.com>
34410
34411 PR target/52555
34412 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
34413 (swap_optab_enable): Same.
34414 (init_all_optabs): Use argument instead of global.
34415 * tree.h (struct tree_optimization_option): New field target_optabs.
34416 * expr.h (init_all_optabs): Add argument to prototype.
34417 (TREE_OPTIMIZATION_OPTABS): New.
34418 (save_optabs_if_changed): Protoize.
34419 * optabs.h: Declare this_fn_optabs.
34420 * optabs.c (save_optabs_if_changed): New.
34421 Declare this_fn_optabs.
34422 (init_optabs): Add argument to init_all_optabs() call.
34423 * function.c (invoke_set_current_function_hook): Handle per
34424 function optabs.
34425 * function.h (struct function): New field optabs.
34426 * config/mips/mips.c (mips_set_mips16_mode): Handle when
34427 optimization_current_node has changed.
34428 * target-globals.h (save_target_globals_default_opts): Protoize.
34429 * target-globals.c (save_target_globals_default_opts): New.
34430
34431 2013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34432
34433 PR target/56347
34434 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
34435 registers %fr12 and %fr12R as call used.
34436
34437 PR target/56214
34438 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
34439 and HImode, require all displacements to be an integer multiple of
34440 their mode size.
34441 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
34442 only allow QImode and HImode when reload is in progress and strict is
34443 true. Likewise for symbolic addresses. Use base14_operand to check
34444 displacements in REG+BASE addresses.
34445
34446 2013-02-18 Richard Biener <rguenther@suse.de>
34447
34448 PR tree-optimization/56366
34449 * tree-vect-loop.c (get_initial_def_for_induction): Properly
34450 handle sign-conversion of outer-loop initial induction value.
34451
34452 2013-02-18 Richard Biener <rguenther@suse.de>
34453
34454 PR middle-end/56349
34455 * cfghooks.c (merge_blocks): If we merge a latch into another
34456 block adjust references to it.
34457 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
34458 (verify_loop_structure): Verify that a recorded latch is in fact
34459 a latch.
34460
34461 2013-02-18 Richard Biener <rguenther@suse.de>
34462
34463 PR tree-optimization/56321
34464 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
34465 order SSA name release and virtual operand unlinking.
34466
34467 2013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
34468
34469 * config/microblaze/microblaze.md (save_stack_block): Define.
34470 (restore_stack_block): Likewise.
34471
34472 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
34473
34474 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
34475 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
34476 * config/microblaze/microblaze.c (microblaze_option_override):
34477 Bail out early for PIC modes when target does not support PIC.
34478
34479 2013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
34480
34481 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
34482 Replace with a microblaze version.
34483 (microblaze_trampoline_init): Adapt for microblaze.
34484 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
34485 microblaze.
34486
34487 2013-02-16 Jakub Jelinek <jakub@redhat.com>
34488 Dodji Seketeli <dodji@redhat.com>
34489
34490 PR asan/56330
34491 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
34492 (instrument_mem_region_access): Do not forget to always put
34493 instrumentation of the of 'base' and 'base + len' in a "if (len !=
34494 0) statement, even for cases where either 'base' or 'base + len'
34495 are not instrumented -- because they have been previously
34496 instrumented. Simplify the logic by putting all the statements
34497 instrument 'base + len' inside a sequence, and then insert that
34498 sequence right before the current insertion point. Then, to
34499 instrument 'base + len', just get an iterator on that statement.
34500 And do not forget to update the pointer to iterator the function
34501 received as argument.
34502
34503 2013-02-15 Vladimir Makarov <vmakarov@redhat.com>
34504
34505 PR rtl-optimization/56348
34506 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
34507
34508 2013-02-15 Steven Bosscher <steven@gcc.gnu.org>
34509
34510 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
34511 (clean_graph_dump_file): Pass base to start_graph_dump.
34512
34513 2013-02-14 Richard Henderson <rth@redhat.com>
34514
34515 PR target/55941
34516 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
34517
34518 2013-02-14 Steven Bosscher <steven@gcc.gnu.org>
34519
34520 * collect2-aix.h: Define F_LOADONLY.
34521
34522 2013-02-14 Richard Biener <rguenther@suse.de>
34523
34524 PR lto/50494
34525 * varasm.c (output_constant_def_1): Get the decl representing
34526 the constant as argument.
34527 (output_constant_def): Wrap output_constant_def_1.
34528 (make_decl_rtl): Use output_constant_def_1 with the decl
34529 representing the constant.
34530 (build_constant_desc): Optionally re-use a decl already
34531 representing the constant.
34532 (tree_output_constant_def): Adjust.
34533
34534 2013-02-14 Dodji Seketeli <dodji@redhat.com>
34535
34536 Fix an asan crash
34537 * asan.c (instrument_builtin_call): Really put the length of the
34538 second source argument into src1_len.
34539
34540 2013-02-13 Jakub Jelinek <jakub@redhat.com>
34541
34542 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
34543 argument. If it is false, don't create edge from then_bb to
34544 fallthru_bb.
34545 (insert_if_then_before_iter): Pass true to it.
34546 (build_check_stmt): Pass false to it.
34547 (transform_statements): Flush hash table only on extended basic
34548 block boundaries, rather than at the beginning of every bb.
34549 Don't flush hash table on nonfreeing_call_p calls.
34550 * tree-flow.h (nonfreeing_call_p): New prototype.
34551 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
34552
34553 2013-02-13 David S. Miller <davem@davemloft.net>
34554
34555 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
34556
34557 2013-02-13 Vladimir Makarov <vmakarov@redhat.com>
34558
34559 PR target/56184
34560 * ira.c (max_regno_before_ira): Move from ...
34561 (ira): ... here.
34562 (fix_reg_equiv_init): Use max_regno_before_ira instead of
34563 vec_safe_length.
34564
34565 2013-02-13 Jakub Jelinek <jakub@redhat.com>
34566
34567 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
34568
34569 2013-02-13 Richard Biener <rguenther@suse.de>
34570
34571 PR lto/56295
34572 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
34573 globals in MEM_REFs.
34574
34575 2013-02-13 Richard Biener <rguenther@suse.de>
34576
34577 * loop-init.c (loop_optimizer_init): Clear loop state when
34578 re-initializing preserved loops.
34579 * loop-unswitch.c (unswitch_single_loop): Return whether
34580 we unswitched the loop. Do not verify loop state here.
34581 (unswitch_loops): When we unswitched a loop discover new loops.
34582
34583 2013-02-13 Kostya Serebryany <kcc@google.com>
34584
34585 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
34586 on x86_64 linux.
34587 * sanitizer.def: Rename __asan_init to __asan_init_v1.
34588
34589 2013-02-12 Dodji Seketeli <dodji@redhat.com>
34590
34591 Avoid instrumenting duplicated memory access in the same basic block
34592 * Makefile.in (asan.o): Add new dependency on hash-table.h
34593 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
34594 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
34595 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
34596 (free_mem_ref_resources, has_mem_ref_been_instrumented)
34597 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
34598 (get_mem_ref_of_assignment): New functions.
34599 (get_mem_refs_of_builtin_call): Extract from
34600 instrument_builtin_call and tweak a little bit to make it fit with
34601 the new signature.
34602 (instrument_builtin_call): Use the new
34603 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
34604 of is_gimple_builtin_call.
34605 (instrument_derefs, instrument_mem_region_access): Insert the
34606 instrumented memory reference into the hash table.
34607 (maybe_instrument_assignment): Renamed instrument_assignment into
34608 this, and change it to advance the iterator when instrumentation
34609 actually happened and return true in that case. This makes it
34610 homogeneous with maybe_instrument_assignment, and thus give a
34611 chance to callers to be more 'regular'.
34612 (transform_statements): Clear the memory reference hash table
34613 whenever we enter a new BB, when we cross a function call, or when
34614 we are done transforming statements. Use
34615 maybe_instrument_assignment instead of instrumentation. No more
34616 need to special case maybe_instrument_assignment and advance the
34617 iterator after calling it; it's now handled just like
34618 maybe_instrument_call. Update comment.
34619
34620 2013-02-13 Richard Biener <rguenther@suse.de>
34621
34622 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
34623 Fix loop discovery code.
34624
34625 2013-02-12 Vladimir Makarov <vmakarov@redhat.com>
34626
34627 PR inline-asm/56148
34628 * lra-constraints.c (process_alt_operands): Match early clobber
34629 operand with itself. Check conflicts with earlyclobber only if
34630 the operand is not reloaded. Prefer to reload conflicting operand
34631 if earlyclobber and matching operands are the same.
34632
34633 2013-02-12 Richard Biener <rguenther@suse.de>
34634
34635 PR lto/56297
34636 * lto-streamer-out.c (write_symbol): Do not output symbols
34637 for hard register variables.
34638
34639 2013-02-12 Georg-Johann Lay <avr@gjlay.de>
34640
34641 PR target/54222
34642 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
34643 (umulsidi3_insn, mulsidi3_insn): New insns.
34644
34645 2013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
34646
34647 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
34648 (struct tune_params): Add vec_costs field.
34649 * config/arm/arm.c (arm_builtin_vectorization_cost)
34650 (arm_add_stmt_cost): New functions.
34651 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
34652 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
34653 (arm_default_vec_cost): New struct of type cpu_vec_costs.
34654 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
34655 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
34656 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
34657 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
34658
34659 2013-02-12 Richard Biener <rguenther@suse.de>
34660
34661 PR lto/56295
34662 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
34663 decls again if possible.
34664
34665 2013-02-12 Richard Biener <rguenther@suse.de>
34666
34667 PR middle-end/56288
34668 * tree-ssa.c (verify_ssa_name): Fix check, move
34669 SSA_NAME_IN_FREE_LIST check up.
34670
34671 2013-02-12 Jakub Jelinek <jakub@redhat.com>
34672 Steven Bosscher <steven@gcc.gnu.org>
34673
34674 PR rtl-optimization/56151
34675 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
34676 equal to op0 or op1, and last_insn pattern is CODE operation
34677 with MEM dest and one of the operands matches that MEM.
34678
34679 2013-02-11 Sriraman Tallam <tmsriram@google.com>
34680
34681 * doc/extend.texi: Document Function Multiversioning and "default"
34682 parameter string to target attribute.
34683 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
34684 target attribute parameter is "default".
34685 (ix86_compare_version_priority): Remove checks for target attribute.
34686 (ix86_mangle_function_version_assembler_name): Change error to sorry.
34687 Remove check for target attribute equal to NULL. Add assert.
34688 (ix86_generate_version_dispatcher_body): Change error to sorry.
34689
34690 2013-02-11 Iain Sandoe <iain@codesourcery.com>
34691 Jack Howarth <howarth@bromo.med.uc.edu>
34692 Patrick Marlier <patrick.marlier@gmail.com>
34693
34694 PR libitm/55693
34695 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
34696 define ENDFILE_SPEC as TM_DESTRUCTOR.
34697 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
34698
34699 2013-02-11 Alexander Potapenko <glider@google.com>
34700 Jack Howarth <howarth@bromo.med.uc.edu>
34701 Jakub Jelinek <jakub@redhat.com>
34702
34703 PR sanitizer/55617
34704 * config/darwin.c (cdtor_record): Rename ctor_record.
34705 (sort_cdtor_records): Rename sort_ctor_records.
34706 (finalize_dtors): New routine to sort destructors by
34707 priority before use in assemble_integer.
34708 (machopic_asm_out_destructor): Use finalize_dtors if needed.
34709
34710 2013-02-11 Uros Bizjak <ubizjak@gmail.com>
34711
34712 PR rtl-optimization/56275
34713 * simplify-rtx.c (avoid_constant_pool_reference): Check that
34714 offset is non-negative and less than cmode size before
34715 calling simplify_subreg.
34716
34717 2013-02-11 Richard Biener <rguenther@suse.de>
34718
34719 PR tree-optimization/56264
34720 * cfgloop.h (fix_loop_structure): Adjust prototype.
34721 * loop-init.c (fix_loop_structure): Return the number of
34722 newly discovered loops.
34723 * tree-cfgcleanup.c (repair_loop_structures): When new loops
34724 are discovered, do a full loop-closed SSA rewrite.
34725
34726 2013-02-11 Richard Biener <rguenther@suse.de>
34727
34728 PR tree-optimization/56273
34729 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
34730 first VRP run.
34731 (check_array_ref): Fix missing newline in dumps.
34732 (search_for_addr_array): Likewise.
34733
34734 2013-02-09 David Edelsohn <dje.gcc@gmail.com>
34735
34736 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
34737
34738 2013-02-09 Jakub Jelinek <jakub@redhat.com>
34739
34740 PR target/56256
34741 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
34742
34743 2013-02-08 Vladimir Makarov <vmakarov@redhat.com>
34744
34745 PR rtl-optimization/56246
34746 * lra-constraints.c (simplify_operand_subreg): Try to reuse
34747 reload pseudo.
34748 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
34749 constraints are satisfied.
34750
34751 2013-02-08 Jeff Law <law@redhat.com>
34752
34753 PR debug/53948
34754 * emit-rtl.c (reg_is_parm_p): New function.
34755 * regs.h (reg_is_parm_p): New prototype.
34756 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
34757 callee-clobbered registers.
34758
34759 2013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
34760
34761 PR target/56043
34762 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
34763 If there is no implicit builtin declaration, just return NULL.
34764
34765 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
34766
34767 * config/i386/sse.md (FMAMODEM): New mode iterator.
34768 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
34769 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
34770
34771 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
34772
34773 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
34774 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
34775 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
34776
34777 2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
34778
34779 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
34780 (microblaze*-*-elf): Likewise.
34781 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
34782 LINK_SPEC.
34783 * config/microblaze/microblaze-c.c: Add builtin defines for
34784 _LITTLE_ENDIAN and _BIG_ENDIAN.
34785 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
34786 add to TARGET_DEFAULT flags.
34787 Expand ASM_SPEC and LINK_SPEC.
34788 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
34789 * config/microblaze/microblaze.md: Update extendsidi2 and
34790 movdi_internal instructions to use low-order / high-order reg
34791 print_operands.
34792 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
34793 options and inversemask / mask of LITTLE_ENDIAN.
34794 * config/microblaze/t-microblaze: Expand multilib options to
34795 include mlittle-endian (le) and update exceptions patterns.
34796
34797 2013-02-08 Jakub Jelinek <jakub@redhat.com>
34798
34799 PR rtl-optimization/56195
34800 * lra-constraints.c (get_reload_reg): Don't reuse regs
34801 if they have smaller mode than requested, if they have
34802 wider mode than requested, try to return a SUBREG.
34803
34804 PR tree-optimization/56250
34805 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
34806 if type is unsigned and code isn't MULT_EXPR.
34807
34808 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
34809
34810 PR tree-optimization/56064
34811 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
34812 bits according to mode.
34813 * fixed-value.h (fixed_from_double_int)
34814 (const_fixed_from_double_int): Adjust comments.
34815
34816 2013-02-08 Richard Biener <rguenther@suse.de>
34817
34818 PR lto/56231
34819 * lto-streamer.h (struct data_in): Remove current_file, current_line
34820 and current_col members.
34821 * lto-streamer-out.c (lto_output_location): Stream changed bits
34822 en-block for efficiency.
34823 * lto-streamer-in.c (clear_line_info): Remove.
34824 (lto_input_location): Cache current file, line and column
34825 globally via local statics. Read changed bits en-block.
34826 (input_function): Do not call clear_line_info.
34827 (lto_read_body): Likewise.
34828 (lto_input_toplevel_asms): Likewise.
34829
34830 2013-02-08 Michael Matz <matz@suse.de>
34831
34832 PR tree-optimization/52448
34833 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
34834 (nt_call_phase): New static.
34835 (add_or_mark_expr): Only mark accesses with newer phase than any
34836 call seen.
34837 (nonfreeing_call_p): New.
34838 (nt_init_block): Update nt_call_phase, mark blocks as visited.
34839 (nt_fini_block): Keep blocks marked as visited.
34840 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
34841
34842 2013-02-08 Richard Biener <rguenther@suse.de>
34843
34844 * ira.c (ira): Free broken dominator information.
34845
34846 2013-02-08 Uros Bizjak <ubizjak@gmail.com>
34847
34848 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
34849
34850 2013-02-08 Marek Polacek <polacek@redhat.com>
34851
34852 * cfgloop.c (verify_loop_structure): Add more checking of headers.
34853
34854 2013-02-08 Richard Biener <rguenther@suse.de>
34855
34856 PR middle-end/56181
34857 * cfgloop.h (flow_loops_find): Adjust.
34858 (bb_loop_header_p): Declare.
34859 * cfgloop.c (bb_loop_header_p): New function split out from ...
34860 (flow_loops_find): ... here. Adjust function signature,
34861 support incremental loop structure update.
34862 (verify_loop_structure): Cleanup. Verify a loop is a loop.
34863 * cfgloopmanip.c (fix_loop_structure): Move ...
34864 * loop-init.c (fix_loop_structure): ... here.
34865 (apply_loop_flags): Split out from ...
34866 (loop_optimizer_init): ... here.
34867 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
34868 in incremental mode, only remove dead loops here.
34869
34870 2013-02-08 Georg-Johann Lay <avr@gjlay.de>
34871
34872 PR target/54222
34873 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
34874 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
34875 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
34876 (*round<mode>3.libgcc): New insns for fixed-modes.
34877 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
34878 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
34879 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
34880 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
34881 implementations. Define to __builtin_avr_absFX,
34882 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
34883 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
34884 __builtin_avr_countlsFX, respectively.
34885 * config/avr/avr-c.c (target.h): Include it.
34886 (enum avr_builtin_id): New enum.
34887 (avr_resolve_overloaded_builtin): New static function.
34888 (avr_register_target_pragmas): Use it to set
34889 targetm.resolve_overloaded_builtin.
34890 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
34891 tree nodes used by DEF_BUILTIN.
34892 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
34893 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
34894 <AVR_BUILTIN_xxBITS>: Same.
34895
34896 2013-02-08 Richard Biener <rguenther@suse.de>
34897
34898 * cfgloop.c (verify_loop_structure): Properly handle
34899 a loop exiting to another loop header.
34900 * ira-int.h (ira_loops): Remove.
34901 * ira.c (ira_loops): Remove.
34902 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
34903 (do_reload): Use loop_optimizer_finalize.
34904 * ira-build.c (create_loop_tree_nodes): Use get_loops and
34905 number_of_loops to access the loop tree.
34906 (more_one_region_p): Likewise.
34907 (finish_loop_tree_nodes): Likewise.
34908 (rebuild_regno_allocno_maps): Likewise.
34909 (mark_loops_for_removal): Likewise.
34910 (mark_all_loops_for_removal): Likewise.
34911 (remove_unnecessary_regions): Likewise.
34912 (ira_build): Likewise.
34913 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
34914
34915 2013-02-08 Richard Biener <rguenther@suse.de>
34916
34917 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
34918 * ipa-pure-const.c (analyze_function): Avoid calling
34919 mark_irreducible_loops twice.
34920 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
34921
34922 2013-02-07 David S. Miller <davem@davemloft.net>
34923
34924 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
34925 on 'reg'.
34926 * var-tracking.c (vt_add_function_parameter): Test the presence of
34927 HAVE_window_save properly and do not remap argument registers when
34928 we have a leaf function.
34929
34930 2013-02-07 Uros Bizjak <ubizjak@gmail.com>
34931
34932 PR bootstrap/56227
34933 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
34934 instead of "ll".
34935 * config/i386/i386.c (ix86_print_operand): Ditto.
34936
34937 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
34938
34939 * lra-constraints.c (process_alt_operands): Fix recently added comment.
34940
34941 2013-02-07 Vladimir Makarov <vmakarov@redhat.com>
34942
34943 PR rtl-optimization/56225
34944 * lra-constraints.c (process_alt_operands): Check that reload hard
34945 reg can hold value for strict_low_part.
34946
34947 2013-02-07 Jakub Jelinek <jakub@redhat.com>
34948
34949 PR debug/56154
34950 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
34951 dwarf2out_end_function.
34952 (in_first_function_p, maybe_at_text_label_p,
34953 first_loclabel_num_not_at_text_label): New variables.
34954 (dwarf2out_var_location): In the first function find out
34955 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
34956 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
34957 functions.
34958
34959 2013-02-07 Eric Botcazou <ebotcazou@adacore.com>
34960
34961 PR rtl-optimization/56178
34962 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
34963 SUBREG of a register. Tidy up related block of code.
34964 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
34965 note if the source is a register or a SUBREG of a register.
34966
34967 2013-02-07 Jakub Jelinek <jakub@redhat.com>
34968
34969 PR target/56228
34970 * config/rs6000/rs6000.md (ptrm): New mode attr.
34971 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
34972 call_value_indirect_aix<pttrsize>,
34973 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
34974 m in constraints.
34975
34976 2013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
34977
34978 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
34979 if -bnortl. Convert to strcmp and strncmp.
34980
34981 2013-02-07 Alan Modra <amodra@gmail.com>
34982
34983 PR target/54009
34984 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
34985 addresses won't wrap when offsetting.
34986 (rs6000_secondary_reload): Provide secondary reloads needed for
34987 wrapping LO_SUM addresses.
34988
34989 2013-02-06 Thomas Schwinge <thomas@codesourcery.com>
34990
34991 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
34992 MACH, just __MACH__.
34993
34994 2013-02-06 Richard Biener <rguenther@suse.de>
34995
34996 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
34997 instead of calling fix_loop_structure.
34998
34999 2013-02-06 Jakub Jelinek <jakub@redhat.com>
35000
35001 PR middle-end/56217
35002 * omp-low.c (use_pointer_for_field): Return false if
35003 lower_send_shared_vars doesn't generate any copy-out code.
35004
35005 2013-02-06 Tom de Vries <tom@codesourcery.com>
35006
35007 PR rtl-optimization/56131
35008 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
35009 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
35010 of the label is NULL. Add comment.
35011
35012 2013-02-05 Jakub Jelinek <jakub@redhat.com>
35013
35014 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
35015
35016 PR sanitizer/55374
35017 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
35018 (STATIC_LIBTSAN_LIBS): Likewise.
35019 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
35020 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
35021 is defined, don't add anything else beyond that.
35022 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
35023 (LINK_COMMAND_SPEC): Use them.
35024
35025 PR tree-optimization/56205
35026 * tree-stdarg.c (check_all_va_list_escapes): Return true if
35027 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
35028 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
35029
35030 2013-02-05 Richard Biener <rguenther@suse.de>
35031
35032 PR tree-optimization/53342
35033 PR tree-optimization/53185
35034 * tree-vectorizer.h (vect_check_strided_load): Remove.
35035 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
35036 not disallow peeling for vectorized strided loads.
35037 (vect_check_strided_load): Make static and simplify.
35038 (vect_analyze_data_refs): Adjust.
35039 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
35040 correctly when vectorizing strided loads.
35041
35042 2013-02-05 Richard Biener <rguenther@suse.de>
35043
35044 * doc/install.texi: Refer to ISL, not PPL.
35045
35046 2013-02-05 Jan Hubicka <jh@suse.cz>
35047
35048 PR tree-optimization/55789
35049 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
35050
35051 2013-02-05 Jan Hubicka <jh@suse.cz>
35052
35053 PR tree-optimization/55789
35054 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
35055 the dead call anyway.
35056
35057 2013-02-05 Eric Botcazou <ebotcazou@adacore.com>
35058
35059 PR sanitizer/55374
35060 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
35061
35062 2013-02-04 Alexander Potapenko <glider@google.com>
35063 Jack Howarth <howarth@bromo.med.uc.edu>
35064 Jakub Jelinek <jakub@redhat.com>
35065
35066 PR sanitizer/55617
35067 * config/darwin.c (sort_ctor_records): Stabilized qsort
35068 on constructor priority by using original position.
35069 (finalize_ctors): New routine to sort constructors by
35070 priority before use in assemble_integer.
35071 (machopic_asm_out_constructor): Use finalize_ctors if needed.
35072
35073 2013-02-04 Jakub Jelinek <jakub@redhat.com>
35074
35075 PR libstdc++/54314
35076 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
35077 about visibility on artificial decls.
35078 * config/sol2.c (solaris_assemble_visibility): Likewise.
35079
35080 2013-02-04 Kai Tietz <ktietz@redhat.com>
35081
35082 PR target/56186
35083 * config/i386/i386.c (function_value_ms_64): Add additional valtype
35084 argument and improve checking of return-argument types for 16-byte
35085 modes.
35086 (ix86_function_value_1): Add additional valtype argument on call
35087 of function_value_64.
35088 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
35089 handling infunction_value_64 function.
35090
35091 2013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
35092
35093 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
35094
35095 2013-02-04 Richard Biener <rguenther@suse.de>
35096
35097 PR tree-optimization/56188
35098 * tree-ssa-structalias.c (label_visit): Consider case with
35099 initially non-empty points-to set.
35100 (perform_var_substitution): Dump node mapping and clean up.
35101
35102 2013-02-04 Richard Guenther <rguenther@suse.de>
35103
35104 PR lto/56168
35105 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
35106 node prevail as last resort.
35107 (lto_symtab_merge_decls): Remove guard on LTRANS here.
35108 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
35109
35110 2013-02-04 Richard Biener <rguenther@suse.de>
35111
35112 PR tree-optimization/56113
35113 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
35114 Merge into ...
35115 (equiv_class_lookup_or_add): ... this.
35116 (label_visit): Adjust and fix error in previous patch.
35117 (perform_var_substitution): Adjust.
35118
35119 2013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
35120
35121 * config/sh/divtab.c: Fix formatting and comments throughout the file.
35122 * config/sh/sh4-300.md: Likewise.
35123 * config/sh/sh4a.md: Likewise.
35124 * config/sh/constraints.md: Likewise.
35125 * config/sh/sh.md: Likewise.
35126 * config/sh/netbsd-elf.h: Likewise.
35127 * config/sh/predicates.md: Likewise.
35128 * config/sh/sh-protos.h: Likewise.
35129 * config/sh/ushmedia.h: Likewise.
35130 * config/sh/linux.h: Likewise.
35131 * config/sh/sh.c: Likewise.
35132 * config/sh/superh.h: Likewise.
35133 * config/sh/elf.h: Likewise.
35134 * config/sh/sh4.md: Likewise.
35135 * config/sh/sh.h: Likewise.
35136
35137 2013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35138
35139 * config/pa/constraints.md: Adjust unused letters. Change "T"
35140 constraint to match_test floating_point_store_memory_operand().
35141 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
35142 (base14_operand): New.
35143 (floating_point_store_memory_operand): New.
35144 (integer_store_memory_operand): Revise to use base14_operand and
35145 reg_plus_base_memory_operand.
35146 (move_dest_operand): Allow symbolic_memory_operands.
35147 (symbolic_memory_operand): Check for LO_SOM.
35148 (symbolic_operand): Change default case to break.
35149 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
35150 CONST_DOUBLE values to be reloaded by putting them into memory when
35151 the destination is a floating point register.
35152 (movdf): Remove code to handle CONST_DOUBLE.
35153 (movsf): Likewise.
35154 (reload_indf_r1): New.
35155 (reload_insf_r1): New.
35156 Consistently use "Q" and "T" constraints with integer and floating
35157 point move instructions, respectively.
35158 (movdi): Remove FAIL.
35159 Change predicate for source operand unamed DImode move from
35160 general_operand to move_src_operand.
35161 (umulsidi3): Change predicate for destination operand to
35162 register_operand.
35163 Likewise for similar unamed patterns.
35164 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
35165 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
35166 (hppa_legitimize_address): Simplify mask calculation.
35167 (pa_emit_move_sequence): Revised handling of secondary reloads from
35168 REG+D addresses for floating point loads and stores. Directly handle
35169 loading CONST0_RTX (mode) to a floating point register.
35170 (pa_secondary_reload): Handle reloading DF and SFmode constant values
35171 to floating point registers. Don't restrict secondary reloads to
35172 floating point registers to integer modes. Revise some comments and
35173 cleanup some code.
35174 (TARGET_LEGITIMATE_ADDRESS_P): Define.
35175 (pa_legitimate_address_p): New.
35176 (pa_legitimize_reload_address): New.
35177 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
35178 (STRICT_REG_OK_FOR_BASE_P): New.
35179 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
35180 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
35181
35182 2013-02-03 David Edelsohn <dje.gcc@gmail.com>
35183 Andrew Dixie <andrewd@gentrack.com>
35184
35185 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
35186 flag set.
35187
35188 2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
35189
35190 * expmed.c (extract_bit_field_1): Pass the full width of the
35191 structure to get_best_reg_extraction_insn.
35192
35193 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
35194
35195 PR target/54601
35196 * configure.ac (use_cxa_atexit): Add AIX.
35197 * configure: Regenerate.
35198
35199 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
35200
35201 2013-02-01 Jakub Jelinek <jakub@redhat.com>
35202
35203 PR debug/54793
35204 * final.c (need_profile_function): New variable.
35205 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
35206 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
35207 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
35208 notes, targetm.asm_out.function_prologue doesn't emit anything,
35209 HAVE_prologue and profiler should be emitted before prologue,
35210 set need_profile_function instead of emitting it.
35211 (final_scan_insn): If need_profile_function, emit
35212 profile_function on the first NOTE_INSN_BASIC_BLOCK or
35213 NOTE_INSN_FUNCTION_BEG note.
35214
35215 2013-02-01 Richard Henderson <rth@redhat.com>
35216
35217 * config/rs6000/rs6000.md (smulditi3): New.
35218 (umulditi3): New.
35219
35220 * config/alpha/alpha.md (umulditi3): New.
35221
35222 2013-02-01 David Edelsohn <dje.gcc@gmail.com>
35223
35224 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
35225 (ASM_OUTPUT_ALIGNED_LOCAL): New.
35226
35227 2013-02-01 Richard Biener <rguenther@suse.de>
35228
35229 PR tree-optimization/56113
35230 * tree-ssa-structalias.c (label_visit): Reduce work for
35231 single-predecessor nodes.
35232
35233 2013-02-01 Eric Botcazou <ebotcazou@adacore.com>
35234
35235 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
35236 range isn't testing for zero.
35237
35238 2013-01-31 Steven Bosscher <steven@gcc.gnu.org>
35239
35240 PR middle-end/56113
35241 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
35242
35243 2013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
35244 Nick Clifton <nickc@redhat.com>
35245
35246 * config/v850/constraints.md (Q): Define as a memory constraint.
35247 * config/v850/predicates.md (label_ref_operand): New predicate.
35248 (e3v5_shift_operand): New predicate.
35249 (ior_operator): New predicate.
35250 * config/v850/t-v850: Add e3v5 multilib.
35251 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
35252 (v850_gen_movdi): Prototype.
35253 * config/v850/v850.c: Add support for e3v5 architecture.
35254 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
35255 TARGET_V850E_UP.
35256 (construct_save_jarl): Add e3v5 long JARL support.
35257 (v850_adjust_insn_length): New function. Adjust length of call
35258 insns when using e3v5 instructions.
35259 (v850_gen_movdi): New function: Generate instructions to move a
35260 DImode value.
35261 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
35262 (CPP_SPEC): Define __v850e3v5__ as appropriate.
35263 (TARGET_USE_FPU): Enable for e3v5.
35264 (CONST_OK_FOR_W): New macro.
35265 (ADJUST_INSN_LENGTH): Define.
35266 * config/v850/v850.md (UNSPEC_LOOP): Define.
35267 (attr cpu): Add v850e3v5.
35268 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
35269 (movdi): New pattern.
35270 (movdi_internal): New pattern.
35271 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
35272 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
35273 (cstoresf4): Likewise.
35274 (cstoredf4): Likewise.
35275 (insv): New pattern.
35276 (rotlso3_a): New pattern.
35277 (rotlsi3_b): New pattern
35278 (rotlsi3_v850e3v5): New pattern.
35279 (doloop_begin): New pattern.
35280 (fix_loop_counter): New pattern.
35281 (doloop_end): New pattern.
35282 (branch_normal): Add e3v5 long branch support.
35283 (branch_invert): Likewise.
35284 (branch_z_normal): Likewise.
35285 (branch_z_invert): Likewise.
35286 (branch_nz_normal): Likewise.
35287 (branch_nz_invert): Likewise.
35288 (call_internal_short): Add e3v5 register-indirect JARL support.
35289 (call_internal_long): Likewise.
35290 (call_value_internal_short): Likewise.
35291 (call_value_internal_long): Likewise.
35292 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
35293 (mloop): New option.
35294 * config.gcc: Add support for configuring v840e3v5 target.
35295 * doc/invoke.texi: Document new v850 specific command line options.
35296
35297 2013-01-31 Paul Koning <ni1d@arrl.net>
35298
35299 PR debug/55059
35300 PR debug/54508
35301 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
35302 children if parent is a class.
35303 (prune_unused_types_prune): Don't add DW_AT_declaration.
35304
35305 2013-01-31 Richard Biener <rguenther@suse.de>
35306
35307 PR tree-optimization/56157
35308 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
35309 match up operand with SLP child.
35310
35311 2013-01-31 Jason Merrill <jason@redhat.com>
35312
35313 PR debug/54410
35314 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
35315 parameters the first time.
35316 (gen_scheduled_generic_parms_dies): Check completeness here.
35317
35318 2013-01-31 Richard Biener <rguenther@suse.de>
35319
35320 PR middle-end/53073
35321 * common.opt (faggressive-loop-optimizations): New flag,
35322 enabled by default.
35323 * doc/invoke.texi (faggressive-loop-optimizations): Document.
35324 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
35325 infer_loop_bounds_from_undefined by it.
35326
35327 2013-01-31 Richard Biener <rguenther@suse.de>
35328
35329 PR tree-optimization/56150
35330 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
35331 visit virtual operands.
35332 (find_uses_to_rename_bb): Likewise.
35333
35334 2013-01-31 Richard Biener <rguenther@suse.de>
35335
35336 PR tree-optimization/56150
35337 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
35338 mixed store non-store stmts.
35339
35340 2013-01-30 Jakub Jelinek <jakub@redhat.com>
35341
35342 PR sanitizer/55374
35343 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
35344 LIBASAN_EARLY_SPEC is defined.
35345 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
35346 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
35347 before %o.
35348 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
35349
35350 PR c++/55742
35351 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
35352 invalid args instead of ICEing on it.
35353 (ix86_valid_target_attribute_tree): Return error_mark_node if
35354 ix86_valid_target_attribute_inner_p failed.
35355 (ix86_valid_target_attribute_p): Return false only if
35356 ix86_valid_target_attribute_tree returned error_mark_node. Allow
35357 target("default") attribute.
35358 (sorted_attr_string): Change argument from const char * to tree,
35359 merge in all target attribute arguments rather than just one.
35360 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
35361 instead of free. Avoid using strcat.
35362 (ix86_mangle_function_version_assembler_name): Mangle
35363 target("default") as if no target attribute is present. Adjust
35364 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
35365 instead of xmalloc and XDELETEVEC instead of free.
35366 (ix86_function_versions): Don't return true if one of the decls
35367 doesn't have target attribute. If they don't and one of the decls
35368 is DECL_FUNCTION_VERSIONED, report an error. Adjust
35369 sorted_attr_string caller. Use XDELETEVEC instead of free.
35370 (ix86_supports_function_versions): Remove.
35371 (make_name): Fix up formatting.
35372 (make_dispatcher_decl): Remove resolver_name and its initialization.
35373 Avoid leaking memory.
35374 (is_function_default_version): Return true if there is
35375 target("default") attribute rather than no target attribute at all.
35376 (make_resolver_func): Avoid leaking memory.
35377 (ix86_generate_version_dispatcher_body): Likewise.
35378 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
35379 * target.def (supports_function_versions): Remove.
35380 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
35381 * doc/tm.texi: Regenerated.
35382
35383 2013-01-30 Vladimir Makarov <vmakarov@redhat.com>
35384
35385 PR rtl-optimization/56144
35386 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
35387 for values with side effects.
35388
35389 2013-01-30 Richard Biener <rguenther@suse.de>
35390
35391 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
35392 (sparseset_pop): Likewise.
35393 * cfganal.c (compute_idf): Likewise. Increase work-stack size
35394 to be able to use quick_push in the worker loop.
35395
35396 2013-01-30 Marek Polacek <polacek@redhat.com>
35397
35398 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
35399
35400 2013-01-30 Richard Biener <rguenther@suse.de>
35401
35402 PR lto/56147
35403 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
35404
35405 2013-01-30 Georg-Johann Lay <avr@gjlay.de>
35406
35407 PR tree-optimization/56064
35408 * fixed-value.c (fixed_from_double_int): New function.
35409 * fixed-value.h (fixed_from_double_int): New prototype.
35410 (const_fixed_from_double_int): New static inline function.
35411 * fold-const.c (native_interpret_fixed): New static function.
35412 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
35413 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
35414 (native_encode_fixed): New static function.
35415 (native_encode_expr) <FIXED_CST>: Use it.
35416 (native_interpret_int): Move double_int worker code to...
35417 * double-int.c (double_int::from_buffer): ...this new static method.
35418 * double-int.h (double_int::from_buffer): Prototype it.
35419
35420 2013-01-30 Richard Biener <rguenther@suse.de>
35421
35422 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
35423 New pointer-map and obstack.
35424 (init_alias_vars): Allocate pointer-map and obstack.
35425 (delete_points_to_sets): Free them.
35426 (find_what_var_points_to): Cache result.
35427 (find_what_p_points_to): Adjust for changed interface of
35428 find_what_var_points_to.
35429 (compute_points_to_sets): Likewise.
35430 (ipa_pta_execute): Likewise.
35431
35432 2013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35433
35434 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
35435 * configure: Regenerate.
35436 * config.in: Regenerate.
35437 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
35438 #nobits/#progbits if supported.
35439
35440 2013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
35441
35442 PR target/56121
35443 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
35444 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
35445 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
35446
35447 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
35448
35449 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
35450 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
35451
35452 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
35453
35454 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
35455 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
35456
35457 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
35458
35459 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
35460 declaration.
35461 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
35462 * config/arm/cortex-a7.md: New bypasses using
35463 arm_mac_accumulator_is_result.
35464
35465 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
35466
35467 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
35468 (cortex_a7_neon_mla): Likewise.
35469 (cortex_a7_fpfmad): New reservation.
35470 (cortex_a7_fpmacs): Use ffmas and update required units.
35471 (cortex_a7_fpmuld): Update required units and latency.
35472 (cortex_a7_fpmacd): Likewise.
35473 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
35474 (cortex_a7_neon). Likewise.
35475 (bypass) Update participating units.
35476
35477 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
35478
35479 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
35480 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
35481 from fmac to ffma.
35482 * config/arm/vfp11.md (vfp_farith): Use ffmas.
35483 (vfp_fmul): Use ffmad.
35484 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
35485 (cortex_r4_fmacd): Use ffmad.
35486 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
35487 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
35488 (cortex_a9_fmacd): Use ffmad.
35489 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
35490 (cortex_a8_vfp_macd): Use ffmad.
35491 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
35492 (cortex_a5_fpmacd): Use ffmad.
35493 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
35494 (cortex_a15_vfp_macd): Use ffmad.
35495 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
35496
35497 2013-01-29 Jason Merrill <jason@redhat.com>
35498
35499 PR libstdc++/54314
35500 * varasm.c (default_assemble_visibility): Don't warn about
35501 visibility on artificial decls.
35502
35503 2013-01-29 Richard Biener <rguenther@suse.de>
35504
35505 PR tree-optimization/56113
35506 * tree-ssa-structalias.c (equiv_class_lookup): Also return
35507 the bitmap leader.
35508 (label_visit): Free duplicate bitmaps and record the leader instead.
35509 (perform_var_substitution): Adjust.
35510
35511 2013-01-29 Richard Biener <rguenther@suse.de>
35512
35513 PR tree-optimization/55270
35514 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
35515 the CFG, schedule loops for fixup.
35516
35517 2013-01-29 Nick Clifton <nickc@redhat.com>
35518
35519 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
35520 SP_REG.
35521
35522 2013-01-28 Leif Ekblad <leif@rdos.net>
35523
35524 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
35525 * config/i386/i386.h (TARGET_RDOS): New macro.
35526 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
35527 * config/i386/i386.c (ix86_option_override_internal): For 64bit
35528 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
35529 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
35530 DEFAULT_LARGE_SECTION_THRESHOLD.
35531 * config/i386/i386.md (R14_REG, R15_REG): New constants.
35532 * config/i386/rdos.h: New file.
35533 * config/i386/rdos64.h: New file.
35534
35535 2013-01-28 Bernd Schmidt <bernds@codesourcery.com>
35536
35537 PR other/54814
35538 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
35539 TEST_HARD_REG_BIT.
35540
35541 2013-01-28 Jakub Jelinek <jakub@redhat.com>
35542
35543 PR rtl-optimization/56117
35544 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
35545 call cselib_lookup_from_insn on the MEM before calling
35546 add_insn_mem_dependence.
35547
35548 2013-01-28 Richard Biener <rguenther@suse.de>
35549
35550 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
35551 to a stmt that didn't have one.
35552 (copy_phis_for_bb): Likewise for PHI arguments.
35553 (copy_debug_stmt): Likewise for debug stmts.
35554
35555 2013-01-28 Richard Biener <rguenther@suse.de>
35556
35557 PR tree-optimization/56034
35558 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
35559 (partition_builtin_p): Adjust.
35560 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
35561 it is the last partition.
35562 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
35563 up the vertex for the definition.
35564 (classify_partition): Classify whether a partition is a
35565 PKIND_REDUCTION, thus has uses outside of the loop.
35566 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
35567 Merge all PKIND_REDUCTION partitions into the last partition.
35568 (tree_loop_distribution): Seed partitions from reductions as well.
35569
35570 2013-01-28 Jakub Jelinek <jakub@redhat.com>
35571
35572 PR tree-optimization/56125
35573 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
35574 pow(x,c) into sqrt(x) * powi(x, n/2) or
35575 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
35576 optimizing for size.
35577 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
35578 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
35579 integer.
35580
35581 PR tree-optimization/56094
35582 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
35583 to UNKNOWN_LOCATION while gimplifying expr.
35584
35585 2013-01-27 Uros Bizjak <ubizjak@gmail.com>
35586
35587 PR target/56114
35588 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
35589 operand 0 in movabs insn template for -masm=intel asm alternative.
35590 (*movabs<mode>_2): Ditto for operand 1.
35591
35592 2013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
35593
35594 PR target/54663
35595 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
35596 of microblaze-c.o
35597
35598 2013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
35599
35600 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
35601 tm_file.
35602
35603 2013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
35604
35605 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
35606 Undef to avoid warning.
35607
35608 2013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
35609
35610 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
35611 * configure: Regenerate.
35612
35613 2013-01-25 Jakub Jelinek <jakub@redhat.com>
35614
35615 PR tree-optimization/56098
35616 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
35617 for stmts with volatile ops.
35618 (cond_store_replacement): Don't optimize if assign has volatile ops.
35619 (cond_if_else_store_replacement_1): Don't optimize if either
35620 then_assign or else_assign have volatile ops.
35621 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
35622 volatile ops.
35623
35624 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
35625
35626 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
35627
35628 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
35629
35630 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
35631 missing ':' in asm example.
35632
35633 2013-01-25 Tejas Belagod <tejas.belagod@arm.com>
35634
35635 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
35636 entries into lane and laneq entries.
35637 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
35638 Remove AdvSIMD scalar modes.
35639 (aarch64_sq<r>dmulh_laneq<mode>): New.
35640 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
35641 modes.
35642 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
35643 builtin implementations to relfect changes in RTL in aarch64-simd.md.
35644 * config/aarch64/iterators.md (VCOND): New.
35645 (VCONQ): New.
35646
35647 2013-01-25 Georg-Johann Lay <avr@gjlay.de>
35648
35649 PR target/54222
35650 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
35651 Add NULL LIBNAME argument to existing definitions.
35652 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
35653 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
35654 * config/avr/avr.c (DEF_BUILTIN): Same.
35655 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
35656 (avr_expand_builtin): Expand to a vanilla call if a libgcc
35657 implementation is available (DECL_ASSEMBLER_NAME is set).
35658 (avr_fold_absfx): New static function.
35659 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
35660 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
35661 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
35662 AVR_BUILTIN_ABSLLK.
35663 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
35664 (abshk, absk, abslk, absllk): Provide as static inline functions.
35665
35666 2013-01-25 Marek Polacek <polacek@redhat.com>
35667
35668 PR tree-optimization/56035
35669 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
35670
35671 2012-01-24 Uros Bizjak <ubizjak@gmail.com>
35672
35673 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
35674 (*movtf_internal_rex64): Add (!o,C) alternative
35675 (*movxf_internal_rex64): Ditto.
35676 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
35677
35678 2013-01-24 Shenghou Ma <minux.ma@gmail.com>
35679
35680 * doc/invoke.texi: fix typo.
35681 * doc/objc.texi: fix typo.
35682
35683 2013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
35684
35685 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
35686 for the first two alternatives.
35687
35688 2013-01-24 Diego Novillo <dnovillo@google.com>
35689
35690 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
35691 (ggc-zone.o): Remove.
35692 * configure.ac: Remove option --with-gc.
35693 * configure: Re-generate.
35694 * doc/install.texi: Remove documentation for --with-gc.
35695 * gengtype.c (write_enum_defn): Remove. Update all users.
35696 (write_Types_process_field): Remove generation of gt_e_* argument.
35697 (output_type_enum): Remove. Update all users.
35698 (write_enum_defn): Remove. Update all users.
35699 (enum alloc_zone): Remove. Update all users.
35700 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
35701 * ggc-common.c (ggc_splay_alloc): Remove first argument.
35702 Update all callers.
35703 (struct ptr_data): Remove field TYPE. Update all users.
35704 (gt_pch_note_object): Remove argument TYPE. Update all users.
35705 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
35706 Update all users.
35707 * ggc-none.c (ggc_alloc_typed_stat): Remove.
35708 (struct alloc_zone): Remove.
35709 (ggc_internal_alloc_zone_stat): Remove.
35710 (ggc_internal_cleared_alloc_zone_stat): Remove.
35711 * ggc-page.c (ggc_alloc_typed_stat): Remove.
35712 (ggc_pch_count_object): Remove last argument. Update all users.
35713 (ggc_pch_alloc_object): Remove last argument. Update all users.
35714 (struct alloc_zone): Remove.
35715 * ggc-zone.c: Remove.
35716 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
35717 (struct alloc_zone): Remove.
35718 (ggc_alloc_typed_stat): Remove.
35719 (ggc_alloc_typed): Remove.
35720 (ggc_splay_alloc): Remove first argument.
35721 (rtl_zone): Remove. Update all users.
35722 (tree_zone): Remove. Update all users.
35723 (tree_id_zone): Remove. Update all users.
35724 (ggc_internal_zone_alloc_stat): Remove. Update all users.
35725 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
35726 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
35727 * tree-ssanames.c: Remove references to zone allocator in comments.
35728
35729 2013-01-24 Georg-Johann Lay <avr@gjlay.de>
35730
35731 * config/avr/avr.c (avr_out_fract): Make register numbers that
35732 might be outside of source operand signed.
35733
35734 2013-01-24 Uros Bizjak <ubizjak@gmail.com>
35735
35736 * config/i386/constraints.md (Yf): New constraint.
35737 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
35738 of f constraint to conditionaly disable x87 register preferences.
35739 (*movdf_internal): Ditto.
35740 (*movsf_internal): Ditto.
35741
35742 2013-01-24 Steven Bosscher <steven@gcc.gnu.org>
35743
35744 PR inline-asm/55934
35745 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
35746 that have operands with impossible constraints.
35747 Add a FIXME for a speed-up opportunity.
35748 * lra-constraints.c (process_alt_operands): Verify that a class
35749 selected from constraints on asms is valid for the operand mode.
35750 (curr_insn_transform): Remove incorrect comment.
35751
35752 2013-01-23 David Edelsohn <dje.gcc@gmail.com>
35753
35754 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
35755 TOC operand is a valid symbol ref in the constant pool.
35756
35757 2013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
35758
35759 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
35760
35761 2013-01-23 Georg-Johann Lay <avr@gjlay.de>
35762
35763 PR target/54222
35764 * config/avr/stdfix.h: New file.
35765 * t-avr (stdfix-gcc.h): New rule to build it.
35766 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
35767
35768 2013-01-23 Kostya Serebryany <kcc@google.com>
35769
35770 * config/darwin.h: remove dependency on
35771 CoreFoundation (asan on Mac OS).
35772
35773 2013-01-23 Jakub Jelinek <jakub@redhat.com>
35774
35775 PR target/49069
35776 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
35777 instead of cmpdi_operand for first comparison operand.
35778 Don't assert that comparison operands aren't both constants.
35779
35780 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
35781
35782 * doc/install.texi (Downloading the Source): Update references to
35783 downloading separate components.
35784
35785 2013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
35786
35787 * doc/extend.texi (__int128): Improve grammar.
35788
35789 2013-01-22 Uros Bizjak <ubizjak@gmail.com>
35790
35791 PR target/56028
35792 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
35793 alternative to (o,r).
35794 (*movdi_internal_rex64): Remove (!o,n) alternative.
35795 (DImode immediate->memory splitter): Remove.
35796 (DImode immediate->memory peephole2): Remove.
35797 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
35798 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
35799 alternative to (!o,*r).
35800 (*movtf_internal_sse): New pattern.
35801 (*movxf_internal_rex64): New pattern.
35802 (*movxf_internal): Disable for TARGET_64BIT.
35803 (*movdf_internal_rex64): Remove (!o,F) alternative.
35804
35805 2013-01-22 Jakub Jelinek <jakub@redhat.com>
35806
35807 PR middle-end/56074
35808 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
35809 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
35810 * tree-vect-loop-manip.c (find_loop_location): Also ignore
35811 stmt locations where LOCATION_LOCUS of the stmt location is
35812 UNKNOWN_LOCATION or BUILTINS_LOCATION.
35813
35814 PR target/55686
35815 * config/i386/i386.md (UNSPEC_STOS): New.
35816 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
35817 *strsetqi_1): Add UNSPEC_STOS.
35818
35819 2013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
35820
35821 PR c++/56067
35822 * doc/invoke.texi: Remove left over -Wsynth example.
35823
35824 2013-01-21 Jakub Jelinek <jakub@redhat.com>
35825
35826 PR tree-optimization/56051
35827 * fold-const.c (fold_binary_loc): Don't fold
35828 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
35829 a narrowing conversion, or widening conversion from signed
35830 to unsigned.
35831
35832 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
35833
35834 PR rtl-optimization/56023
35835 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
35836 dependent on debug instruction.
35837
35838 2013-01-21 Martin Jambor <mjambor@suse.cz>
35839
35840 PR middle-end/56022
35841 * function.c (allocate_struct_function): Call
35842 invoke_set_current_function_hook earlier.
35843
35844 2013-01-21 Jakub Jelinek <jakub@redhat.com>
35845
35846 * reload1.c (init_reload): Only initialize reload_obstack
35847 during the first call.
35848
35849 2013-01-21 Marek Polacek <polacek@redhat.com>
35850
35851 * cfgloop.c (verify_loop_structure): Fix up grammar.
35852
35853 2013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
35854
35855 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
35856 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
35857
35858 2013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35859
35860 PR target/56058
35861 * config/arm/marvell-pj4.md: Update copyright year.
35862 Fix up use of alu to alu_reg and simple_alu_imm.
35863
35864 2013-01-21 Uros Bizjak <ubizjak@gmail.com>
35865
35866 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
35867
35868 2013-01-20 Vladimir Makarov <vmakarov@redhat.com>
35869
35870 PR target/55433
35871 * lra-constraints.c (curr_insn_transform): Don't reuse original
35872 insn for secondary memory move when memory mode should be different.
35873
35874 2013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35875
35876 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
35877 atomic_storedi_1): New patterns.
35878
35879 2013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
35880
35881 btver2 pipeline descriptions.
35882 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
35883 descriptions.
35884 * config/i386/i386.md (btver2_decode): New type attributes.
35885 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
35886 type attributes.
35887 * config/i386/btver2.md: New file describing btver2 pipelines.
35888
35889 2013-01-19 Andrew Pinski <apinski@cavium.com>
35890
35891 PR tree-optimization/52631
35892 * tree-ssa-sccvn (visit_use): Before looking up the original
35893 statement, try looking up the simplified expression.
35894
35895 2013-01-19 Anthony Green <green@moxielogic.com>
35896
35897 * config/moxie/moxie.c (moxie_expand_prologue): Set
35898 current_function_static_stack_size.
35899
35900 2013-01-18 Jakub Jelinek <jakub@redhat.com>
35901
35902 PR tree-optimization/56029
35903 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
35904 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
35905
35906 2013-01-18 Sharad Singhai <singhai@google.com>
35907
35908 PR tree-optimization/55995
35909 * dumpfile.c (dump_loc): Print location only if available.
35910 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
35911
35912 2013-01-18 Vladimir Makarov <vmakarov@redhat.com>
35913
35914 PR target/55433
35915 * lra-constraints.c (curr_insn_transform): Reuse original insn for
35916 secondary memory move.
35917 (inherit_reload_reg): Use rclass instead of cl for
35918 check_secondary_memory_needed_p.
35919
35920 2013-01-18 Jakub Jelinek <jakub@redhat.com>
35921
35922 PR middle-end/56015
35923 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
35924 the case where writing real complex part of target modifies op1.
35925
35926 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
35927
35928 * config/aarch64/aarch64-simd.md
35929 (aarch64_vcond_internal<mode>): Handle unordered cases.
35930 * config/aarch64/iterators.md (v_cmp_result): New.
35931
35932 2013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
35933 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
35934
35935 * config/arm/marvell-pj4.md: New file.
35936 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
35937 * config/arm/arm.md (generic_sched): Add marvell_pj4.
35938 (generic_vfp): Likewise.
35939 * config/arm/arm-cores.def: Add marvell-pj4.
35940 * config/arm/arm-tune.md: Regenerate.
35941 * config/arm/arm-tables.opt: Regenerate.
35942 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
35943 * doc/invoke.texi: Document marvell-pj4.
35944
35945 2013-01-18 Tejas Belagod <tejas.belagod@arm.com>
35946
35947 * config/aarch64/arm_neon.h: Map scalar types to standard types.
35948
35949 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
35950
35951 PR debug/54114
35952 PR debug/54402
35953 PR debug/49888
35954 * var-tracking.c (negative_power_of_two_p): New.
35955 (global_get_addr_cache, local_get_addr_cache): New.
35956 (get_addr_from_global_cache, get_addr_from_local_cache): New.
35957 (vt_canonicalize_addr): Rewrite using the above. Adjust the
35958 heading comment.
35959 (vt_stack_offset_p): Remove.
35960 (vt_canon_true_dep): Always canonicalize loc's address.
35961 (clobber_overlapping_mems): Make sure we have a MEM.
35962 (local_get_addr_clear_given_value): New.
35963 (val_reset): Clear local cached entries.
35964 (compute_bb_dataflow): Create and release the local cache.
35965 Disable duplicate MEMs clobbering.
35966 (emit_notes_in_bb): Clobber MEMs likewise.
35967 (vt_emit_notes): Create and release the local cache.
35968 (vt_initialize, vt_finalize): Create and release the global
35969 cache, respectively.
35970 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
35971
35972 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
35973
35974 PR libmudflap/53359
35975 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
35976 not found in the symtab.
35977
35978 2013-01-18 Alexandre Oliva <aoliva@redhat.com>
35979
35980 PR debug/56006
35981 PR rtl-optimization/55547
35982 PR rtl-optimization/53827
35983 PR debug/53671
35984 PR debug/49888
35985 * alias.c (offset_overlap_p): New, factored out of...
35986 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
35987 the conservative special case for symbolic constants. Don't
35988 adjust zero sizes on alignment.
35989
35990 2013-01-18 Bernd Schmidt <bernds@codesourcery.com>
35991
35992 PR rtl-optimization/52573
35993 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
35994 REG_UNUSED for the same register.
35995
35996 2013-01-17 Richard Biener <rguenther@suse.de>
35997 Marek Polacek <polacek@redhat.com>
35998
35999 PR rtl-optimization/55833
36000 * loop-unswitch.c (unswitch_loops): Move loop verification...
36001 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
36002 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
36003 Set it to true when we're removing a loop from hierarchy tree in
36004 an irreducible region.
36005 (fix_bb_placements): Adjust caller.
36006 (fix_loop_placements): Likewise.
36007
36008 2013-01-17 Georg-Johann Lay <avr@gjlay.de>
36009
36010 * config/avr/builtins.def (DEF_BUILTIN): Factor out
36011 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
36012 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
36013 Remove ID. Adjust comments.
36014 * config/avr/avr-c.c (avr_builtin_name): Remove.
36015 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
36016 * config/avr/avr.c (avr_tolower): New static function.
36017 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
36018 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
36019 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
36020 default expansion.
36021
36022 2013-01-17 Jan Hubicka <jh@suse.cz>
36023
36024 PR tree-optimization/55273
36025 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
36026
36027 2013-01-17 Uros Bizjak <ubizjak@gmail.com>
36028
36029 PR target/55981
36030 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
36031 store through atomic_store<mode>_1.
36032 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
36033
36034 2013-01-17 Martin Jambor <mjambor@suse.cz>
36035
36036 PR tree-optimizations/55264
36037 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
36038 for virtual methods.
36039 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
36040 virtual methods before inlining is over.
36041 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
36042 virtual functions.
36043 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
36044 non-virtual.
36045
36046 2013-01-16 Vladimir Makarov <vmakarov@redhat.com>
36047
36048 PR rtl-optimization/56005
36049 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
36050 pending reads for prefetch.
36051
36052 2013-01-16 Ian Bolton <ian.bolton@arm.com>
36053
36054 * config/aarch64/aarch64.md
36055 (*cstoresi_neg_uxtw): New pattern.
36056 (*cmovsi_insn_uxtw): New pattern.
36057 (*<optab>si3_uxtw): New pattern.
36058 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
36059 (*<optab>si3_insn_uxtw): New pattern.
36060 (*bswapsi2_uxtw): New pattern.
36061
36062 2013-01-16 Richard Biener <rguenther@suse.de>
36063
36064 * tree-inline.c (tree_function_versioning): Remove set but
36065 never used variable.
36066
36067 2013-01-16 Richard Biener <rguenther@suse.de>
36068
36069 PR tree-optimization/55964
36070 * tree-flow.h (rename_variables_in_loop): Remove.
36071 (rename_variables_in_bb): Likewise.
36072 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
36073 (copy_loop_before): Adjust and delete update-ssa status.
36074 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
36075 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
36076 (rename_variables_in_loop): Remove.
36077 (slpeel_update_phis_for_duplicate_loop): Likewise.
36078 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
36079 use available cfg machinery instead of duplicating it.
36080 Update PHI nodes and perform poor-mans SSA update here.
36081 (slpeel_tree_peel_loop_to_edge): Adjust.
36082
36083 2013-01-16 Richard Biener <rguenther@suse.de>
36084
36085 PR tree-optimization/54767
36086 PR tree-optimization/53465
36087 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
36088 (vrp_visit_phi_node): For PHI arguments coming via backedges
36089 drop all symbolical range information.
36090 (execute_vrp): Compute backedges.
36091
36092 2013-01-16 Richard Biener <rguenther@suse.de>
36093
36094 * doc/install.texi: Update CLooG and ISL requirements to
36095 0.18.0 and 0.11.1.
36096
36097 2013-01-16 Christian Bruel <christian.bruel@st.com>
36098
36099 PR target/55301
36100 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
36101 (broken_move): Handle UNSPECV_SP_SWITCH_B.
36102 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
36103
36104 2013-01-16 DJ Delorie <dj@redhat.com>
36105
36106 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
36107 (UNSPECV_SP_SWITCH_E): New.
36108 (sp_switch_1): Change to an unspec.
36109 (sp_switch_2): Change to an unspec. Don't use post-inc when we
36110 replace $r15.
36111
36112 2013-01-16 Uros Bizjak <ubizjak@gmail.com>
36113
36114 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
36115 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
36116 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
36117 (expand_mem_thread_fence): Ditto.
36118 (expand_mem_signal_fence): Ditto.
36119 (expand_atomic_load): Ditto.
36120 (expand_atomic_store): Ditto.
36121
36122 2013-01-16 Alexandre Oliva <aoliva@redhat.com>
36123
36124 PR rtl-optimization/55547
36125 PR rtl-optimization/53827
36126 PR debug/53671
36127 PR debug/49888
36128 * alias.c (memrefs_conflict_p): Set sizes to negative after
36129 AND adjustments.
36130
36131 2013-01-15 Jakub Jelinek <jakub@redhat.com>
36132
36133 PR target/55940
36134 * function.c (thread_prologue_and_epilogue_insns): Always
36135 add crtl->drap_reg to set_up_by_prologue.set, even if
36136 stack_realign_drap is false.
36137
36138 2013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36139
36140 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
36141 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
36142 *call): Fix indention.
36143
36144 2013-01-15 Tom de Vries <tom@codesourcery.com>
36145
36146 PR target/55876
36147 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
36148 Update comment.
36149
36150 2013-01-15 Vladimir Makarov <vmakarov@redhat.com>
36151
36152 PR rtl-optimization/55153
36153 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
36154
36155 2013-01-15 Martin Jambor <mjambor@suse.cz>
36156
36157 PR tree-optimization/55920
36158 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
36159 accesses as grp_to_be_debug_replaced.
36160
36161 2013-01-15 Jakub Jelinek <jakub@redhat.com>
36162
36163 PR tree-optimization/55920
36164 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
36165 there is non-useless type conversion needed from debug rhs to lhs,
36166 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
36167
36168 2013-01-15 Joseph Myers <joseph@codesourcery.com>
36169 Mikael Pettersson <mikpe@it.uu.se>
36170
36171 PR target/43961
36172 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
36173 Thumb.
36174 (ASM_OUTPUT_CASE_LABEL): Remove.
36175 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
36176 * final.c (shorten_branches): Update alignment of labels before
36177 jump tables if CASE_VECTOR_SHORTEN_MODE.
36178
36179 2013-01-15 Richard Biener <rguenther@suse.de>
36180
36181 PR bootstrap/55961
36182 * system.h: Do not include gmp.h for building host tools.
36183
36184 2013-01-15 Richard Biener <rguenther@suse.de>
36185
36186 PR middle-end/55882
36187 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
36188 account for bitpos when computing alignment.
36189
36190 2013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
36191
36192 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
36193 (ix86_target_macros_internal): Likewise.
36194
36195 * config/i386/i386.c (m_CORE2I7): Removed.
36196 (m_CORE_HASWELL): New macro.
36197 (m_CORE_ALL): Likewise.
36198 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
36199 (initial_ix86_arch_features): Likewise.
36200 (processor_target_table): Initializations for Core avx2.
36201 (cpu_names): New names "core-avx2".
36202 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
36203 PROCESSOR_CORE_HASWELL.
36204 (ix86_issue_rate): New case.
36205 (ia32_multipass_dfa_lookahead): Likewise.
36206 (ix86_sched_init_global): Likewise.
36207
36208 * config/i386/i386.h (TARGET_HASWELL): New macro.
36209 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
36210 (processor_type): New PROCESSOR_HASWELL.
36211
36212 2013-01-15 Jakub Jelinek <jakub@redhat.com>
36213
36214 PR tree-optimization/55955
36215 * tree-vect-loop.c (vectorizable_reduction): Give up early on
36216 *SHIFT_EXPR and *ROTATE_EXPR codes.
36217
36218 PR tree-optimization/48766
36219 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
36220 -ftrapv disable -fwrapv.
36221
36222 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
36223
36224 PR target/55974
36225 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
36226 etc. to 1 and not to __flash.
36227 Use LL suffix for __INT24_MAX__ with -mint8.
36228 Use ULL suffix for __UINT24_MAX__ with -mint8.
36229
36230 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
36231
36232 * config/avr/avr-arch.h
36233 (struct base_arch_s): Use typedef avr_arch_t instead.
36234 (struct arch_info_s): Use typedef avr_arch_info_t instead.
36235 (struct mcu_type_s): Use typedef avr_mcu_t instead.
36236 * config/avr/avr.c: Same.
36237 * config/avr/avr-devices.c: Same.
36238 * config/avr/driver-avr.c: Same.
36239 * config/avr/gen-avr-mmcu-texi.c: Same.
36240 * config/avr/avr-mcus.def: Adjust comment.
36241
36242 2013-01-14 Tejas Belagod <tejas.belagod@arm.com>
36243
36244 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
36245 * config/aarch64/iterators.md (VALLDI): New.
36246
36247 2013-01-14 Uros Bizjak <ubizjak@gmail.com>
36248 Andi Kleen <ak@linux.intel.com>
36249
36250 PR target/55948
36251 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
36252 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
36253 memmodel flag.
36254
36255 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
36256
36257 * config/avr/avr-stdint.h: Remove trailing blanks.
36258 * config/avr/avr-log.h: Same.
36259 * config/avr/avr-arch.h: Same.
36260 * config/avr/avr-devices.c: Same.
36261 * config/avr/avr-dimode.md: Same.
36262 * config/avr/predicates.md: Same.
36263 * config/avr/avr-c.c: Same. And fix typo.
36264
36265 * config/avr/avr-protos.h: Same. And:
36266 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
36267 (init_cumulative_args): Rename to avr_init_cumulative_args.
36268 (expand_prologue): Rename to avr_expand_prologue.
36269 (expand_epilogue): Rename to avr_expand_epilogue.
36270 (adjust_insn_length): Rename to avr_adjust_insn_length.
36271 (notice_update_cc): Rename to avr_notice_update_cc.
36272 (final_prescan_insn): Rename to avr_final_prescan_insn.
36273 * config/avr/avr.c: Same.
36274 * config/avr/avr.h: Same.
36275 * config/avr/avr.md: Remove trailing blanks.
36276 (prologue): Use avr_expand_prologue.
36277 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
36278
36279 2013-01-14 Richard Biener <rguenther@suse.de>
36280
36281 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
36282 verify_location, collect_subblocks): New functions.
36283 (verify_gimple_in_cfg): Verify that locations only reference
36284 BLOCKs in the functions BLOCK tree.
36285
36286 2013-01-14 Richard Biener <rguenther@suse.de>
36287
36288 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
36289 PHI argument.
36290 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
36291 unshare reference.
36292 (insert_out_of_ssa_copy_on_edge): Likewise.
36293 (rewrite_close_phi_out_of_ssa): Likewise.
36294 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
36295 debug expressions.
36296 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
36297 propagated constants.
36298 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
36299 can not be shared.
36300
36301 2013-01-14 Georg-Johann Lay <avr@gjlay.de>
36302
36303 * config/avr/avr-modes.def: Add GPL copyright notice.
36304
36305 2013-01-13 Uros Bizjak <ubizjak@gmail.com>
36306
36307 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
36308 MEMMODEL_MASK to determine memory model.
36309 (atomic_store<mode>): Ditto from operands[2].
36310 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
36311
36312 2013-01-13 Jakub Jelinek <jakub@redhat.com>
36313
36314 PR fortran/55935
36315 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
36316 (fold_gimple_assign): Don't call unshare_expr here.
36317 (fold_ctor_reference): Call unshare_expr.
36318
36319 2013-01-13 Terry Guo <terry.guo@arm.com>
36320
36321 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
36322 * doc/fragments.texi: Document MULTILIB_REUSE.
36323 * gcc.c (multilib_reuse): New internal spec.
36324 (set_multilib_dir): Also search multilib from multilib_reuse.
36325 * genmultilib (tmpmultilib3): Refactor code.
36326 (tmpmultilib4): Ditto.
36327 (multilib_reuse): New multilib argument.
36328
36329 2013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
36330
36331 * Makefile.in: Update copyright.
36332
36333 2013-01-12 Tom de Vries <tom@codesourcery.com>
36334
36335 PR middle-end/55890
36336 * calls.c (expand_call): Check if arg_nr is valid.
36337
36338 2013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
36339
36340 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
36341 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
36342 documentation. Add missing '__' in front of
36343 __builtin_ia32_packssdw256.
36344
36345 2013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36346
36347 PR target/55719
36348 * config/s390/s390.c (s390_preferred_reload_class): Do not return
36349 NO_REGS for larl operands.
36350 (s390_reload_larl_operand): Use s390_load_address instead of
36351 emit_move_insn.
36352
36353 2013-01-11 Richard Biener <rguenther@suse.de>
36354
36355 * tree-cfg.c (verify_node_sharing_1): Split out from ...
36356 (verify_node_sharing): ... here.
36357 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
36358
36359 2013-01-11 Eric Botcazou <ebotcazou@adacore.com>
36360
36361 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
36362 Substitute TREECHECKING.
36363 * configure: Regenerate.
36364 * Makefile.in (TREECHECKING): New.
36365
36366 2013-01-11 Richard Guenther <rguenther@suse.de>
36367
36368 PR tree-optimization/44061
36369 * tree-vrp.c (extract_range_basic): Compute zero as
36370 value-range for __builtin_constant_p of function parameters.
36371
36372 2013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
36373
36374 Update copyright years.
36375
36376 2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
36377
36378 PR rtl-optimization/55672
36379 * lra-eliminations.c (mark_not_eliminable): Permit addition with
36380 const to be eliminable.
36381
36382 2013-01-10 David Edelsohn <dje.gcc@gmail.com>
36383
36384 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
36385 * configure: Regenerate.
36386
36387 2013-01-10 Richard Biener <rguenther@suse.de>
36388
36389 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
36390
36391 2013-01-10 Richard Biener <rguenther@suse.de>
36392
36393 PR bootstrap/55792
36394 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
36395 locations for virtual PHI arguments.
36396 (rewrite_update_phi_arguments): Likewise.
36397
36398 2013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
36399
36400 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
36401 on to assembler.
36402
36403 2013-01-10 Jakub Jelinek <jakub@redhat.com>
36404
36405 PR tree-optimization/55921
36406 * tree-complex.c (expand_complex_asm): New function.
36407 (expand_complex_operations_1): Call it for GIMPLE_ASM.
36408
36409 2013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
36410
36411 PR target/55718
36412 * config/s390/s390.c (s390_symref_operand_p)
36413 (s390_loadrelative_operand_p): Merge the two functions.
36414 (s390_check_qrst_address, print_operand_address): Add parameters
36415 to s390_loadrelative_operand_p invokation.
36416 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
36417 (s390_reload_larl_operand, s390_secondary_reload): Use
36418 s390_loadrelative_operand_p instead of s390_symref_operand_p.
36419 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
36420
36421 2013-01-09 Mike Stump <mikestump@comcast.net>
36422
36423 * dse.c (record_store): Remove unnecessary assert.
36424
36425 2013-01-09 Jan Hubicka <jh@suse.cz>
36426
36427 PR tree-optimization/55569
36428 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
36429 * cfgloop.h (scale_loop_profile): Likewise.
36430
36431 2013-01-09 Jan Hubicka <jh@suse.cz>
36432
36433 PR lto/45375
36434 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
36435 functions.
36436 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
36437
36438 2013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
36439
36440 PR middle-end/55114
36441 * expr.h (maybe_emit_group_store): Declare.
36442 * expr.c (maybe_emit_group_store): New function.
36443 * builtins.c (expand_builtin_int_roundingfn): Call it.
36444 (expand_builtin_int_roundingfn_2): Likewise.
36445
36446 2013-01-09 Vladimir Makarov <vmakarov@redhat.com>
36447
36448 PR rtl-optimization/55829
36449 * lra-constraints.c (match_reload): Add code for absent output.
36450 (curr_insn_transform): Add code for reloads of matched inputs
36451 without output.
36452
36453 2013-01-09 Uros Bizjak <ubizjak@gmail.com>
36454
36455 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
36456 attribute of movddup insn to DF.
36457 (*vec_interleave_lowv2df): Ditto.
36458 (vec_dupv2df): Ditto.
36459
36460 2013-01-09 Jan Hubicka <jh@suse.cz>
36461
36462 PR tree-optimiation/55875
36463 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
36464 EVERY_ITERATION parameter.
36465 (number_of_iterations_exit): Check if exit is executed every iteration.
36466 (idx_infer_loop_bounds): Similarly here.
36467 (n_of_executions_at_most): Simplify
36468 to only test for cases where statement is dominated by the
36469 particular bound; handle correctly the "postdominance" test.
36470 (scev_probably_wraps_p): Use max loop iterations info
36471 as a global bound first.
36472
36473 2013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
36474 Nick Clifton <nickc@redhat.com>
36475
36476 * config/v850/v850.md (cbranchsf4): New pattern.
36477 (cstoresf4): New pattern.
36478 (cbranchdf4): New pattern.
36479 (cstoredf4): New pattern.
36480 (movsicc): Disallow floating point comparisons.
36481 (cmpsf_le_insn): Fix order of operators.
36482 (cmpsf_lt_insn): Likewise.
36483 (cmpsf_eq_insn): Likewise.
36484 (cmpdf_le_insn): Likewise.
36485 (cmpdf_lt_insn): Likewise.
36486 (cmpdf_eq_insn): Likewise.
36487 (cmpsf_ge_insn): Use LE comparison.
36488 (cmpdf_ge_insn): Likewise.
36489 (cmpsf_gt_insn): Use LT comparison.
36490 (cmpdf_gt_insn): Likewise.
36491 (cmpsf_ne_insn): Delete pattern.
36492 (cmpdf_ne_insn): Delete pattern.
36493 * config/v850/v850.c (v850_gen_float_compare): Use
36494 gen_cmpdf_eq_insn for NE comparison.
36495 (v850_float_z_comparison_operator)
36496 (v850_float_nz_comparison_operator): Move from here ...
36497 * config/v850/predicates.md: ... to here. Move GT and GE
36498 comparisons into v850_float_z_comparison_operator.
36499 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
36500 Delete prototype.
36501 (v850_float_nz_comparison_operator): Likewise.
36502
36503 2013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
36504
36505 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
36506 with calls to gen_insvsi/gen_insvdi.
36507
36508 2013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
36509
36510 * config/i386/i386.c (initial_ix86_tune_features): Set up
36511 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
36512
36513 2013-01-09 Steven Bosscher <steven@gcc.gnu.org>
36514 Jakub Jelinek <jakub@redhat.com>
36515
36516 PR tree-optimization/48189
36517 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
36518 If nitercst is 0, don't predict the exit edge.
36519
36520 2013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
36521
36522 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
36523 in asm_fprintf with reg_names.
36524 (aarch64_print_operand_address): Likewise.
36525 (aarch64_return_addr): Likewise.
36526 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
36527
36528 2013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
36529
36530 * config/pa/pa.h (VAL_U6_BITS_P): Define.
36531 (INT_U6_BITS): Likewise.
36532 * config/pa/predicates.md (uint6_operand): New predicate.
36533 (shift5_operand, shift6_operand): Likewise.
36534 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
36535 arith32_operand.
36536 (lshrdi3): Use shift6_operand.
36537 (shrpsi4, shrpdi4): New insn patterns.
36538 (extzv): Delete expander.
36539 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
36540 predicates in unamed zero extract patterns. Tighten common constraint.
36541 (extv): Delete expander.
36542 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
36543 predicates in unamed sign extract patterns. Tighten common constraint.
36544 (insv): Delete expander.
36545 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
36546 predicates in unamed insert patterns. Tighten common constraint.
36547 Change uint32_operand predicate to uint6_operand predicate in unamed
36548 DImode pattern to insert constant values of type 1...1xxxx.
36549
36550 2013-01-04 Jan Hubicka <jh@suse.cz>
36551
36552 PR tree-optimization/55823
36553 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
36554 issue.
36555
36556 2013-01-08 Jakub Jelinek <jakub@redhat.com>
36557 Uros Bizjak <ubizjak@gmail.com>
36558
36559 PR rtl-optimization/55845
36560 * df-problems.c (can_move_insns_across): Stop scanning at
36561 volatile_insn_p source instruction or give up if
36562 across_from .. across_to range contains any volatile_insn_p
36563 instructions.
36564
36565 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
36566
36567 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
36568 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
36569 Declare.
36570 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
36571 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
36572
36573 2013-01-08 Jakub Jelinek <jakub@redhat.com>
36574
36575 PR fortran/55341
36576 * asan.c (asan_clear_shadow): New function.
36577 (asan_emit_stack_protection): Use it.
36578
36579 2013-01-08 Tejas Belagod <tejas.belagod@arm.com>
36580
36581 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
36582 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
36583 with tab instead of space.
36584
36585 2013-01-08 Nick Clifton <nickc@redhat.com>
36586
36587 * config/rl78/rl78.c (rl78_expand_prologue): Always select
36588 register bank 0 at the start of an interrupt handler.
36589 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
36590 MDBH registers.
36591
36592 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
36593
36594 * config/aarch64/aarch64-simd.md
36595 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
36596 (aarch64_simd_bsl): Likewise.
36597 (aarch64_vcond_internal<mode>): Likewise.
36598 (vcond<mode><mode>): Likewise.
36599 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
36600 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
36601
36602 2013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
36603
36604 * config/aarch64/aarch64-builtins.c
36605 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
36606
36607 2013-01-08 Martin Jambor <mjambor@suse.cz>
36608
36609 PR debug/55579
36610 * tree-sra.c (analyze_access_subtree): Return true also after
36611 potentially creating a debug-only replacement.
36612
36613 2013-01-08 Jakub Jelinek <jakub@redhat.com>
36614
36615 PR middle-end/55890
36616 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
36617
36618 PR tree-optimization/54120
36619 * tree-vrp.c (range_fits_type_p): Don't allow
36620 src_precision < precision from signed vr to unsigned_p
36621 if vr->min or vr->max is negative.
36622 (simplify_float_conversion_using_ranges): Test can_float_p
36623 against CODE_FOR_nothing.
36624
36625 2013-01-08 Jakub Jelinek <jakub@redhat.com>
36626 Richard Biener <rguenther@suse.de>
36627
36628 PR middle-end/55851
36629 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
36630 types instead of just INTEGER_TYPE types.
36631
36632 2013-01-07 Mark Kettenis <kettenis@openbsd.org>
36633
36634 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
36635 TF_SIZE): Define.
36636
36637 2013-01-07 Steve Ellcey <sellcey@mips.com>
36638
36639 PR target/42661
36640 * config/mips/mips.opt: Change mad to mmad to match documentation.
36641
36642 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
36643
36644 PR target/55897
36645 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
36646 .progmemx.data now.
36647
36648 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
36649
36650 PR target/55897
36651 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
36652 (avr_addrspace_t): Add .section_name field.
36653 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
36654 array size.
36655 (avr_addrspace): Same. Initialize .section_name. Remove last
36656 NULL entry. Put __memx into .progmemx.data.
36657 (progmem_section_prefix): Remove.
36658 (avr_asm_init_sections): No need to initialize progmem_section.
36659 (avr_asm_named_section): Use avr_addrspace[].section_name to get
36660 section name prefix.
36661 (avr_asm_select_section): Ditto. And use get_unnamed_section to
36662 retrieve the progmem section.
36663 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
36664 boundary to run over avr_addrspace[].
36665 (avr_register_target_pragmas): Ditto.
36666
36667 2013-01-06 Jakub Jelinek <jakub@redhat.com>
36668
36669 * varasm.c (output_constant_def_contents): For asan_protect_global
36670 protected strings, adjust DECL_ALIGN if needed, before testing for
36671 anchored symbols.
36672 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
36673 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
36674 normal decls.
36675 (output_object_block): For asan protected decls, emit asan padding
36676 after their contents.
36677 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
36678 (asan_finish_file): Test it here instead.
36679
36680 2013-01-07 Nick Clifton <nickc@redhat.com>
36681 Matthias Klose <doko@debian.org>
36682 Doug Kwan <dougkwan@google.com>
36683 H.J. Lu <hongjiu.lu@intel.com>
36684
36685 PR driver/55470
36686 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
36687
36688 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
36689
36690 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
36691
36692 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
36693
36694 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
36695
36696 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
36697
36698 PR target/54461
36699 * doc/install.texi (Cross-Compiler-Specific Options): Document
36700 --with-avrlibc.
36701
36702 2013-01-07 Tejas Belagod <tejas.belagod@arm.com>
36703
36704 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
36705 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
36706 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
36707 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
36708 vqmovun_high_s64): Fix source operand number and update copyright.
36709
36710 2013-01-07 Richard Biener <rguenther@suse.de>
36711
36712 PR middle-end/55890
36713 * gimple.h (gimple_call_builtin_p): New overload.
36714 * gimple.c (validate_call): New function.
36715 (gimple_call_builtin_p): Likewise.
36716 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36717 Use gimple_call_builtin_p.
36718 (find_func_clobbers): Likewise.
36719 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
36720 (strlen_optimize_stmt): Likewise.
36721
36722 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
36723
36724 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
36725 (vld1q_dup_*): Likewise.
36726 (vld1_*): Likewise.
36727 (vld1q_*): Likewise.
36728 (vld1_lane_*): Likewise.
36729 (vld1q_lane_*): Likewise.
36730
36731 2013-01-07 Richard Biener <rguenther@suse.de>
36732
36733 * lto-streamer.h (LTO_minor_version): Bump to 2.
36734
36735 2013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
36736
36737 * config/aarch64/aarch64-protos.h
36738 (aarch64_const_double_zero_rtx_p): Rename to...
36739 (aarch64_float_const_zero_rtx_p): ...this.
36740 (aarch64_float_const_representable_p): New.
36741 (aarch64_output_simd_mov_immediate): Likewise.
36742 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
36743 move immediate case.
36744 * config/aarch64/aarch64.c
36745 (aarch64_const_double_zero_rtx_p): Rename to...
36746 (aarch64_float_const_zero_rtx_p): ...this.
36747 (aarch64_print_operand): Allow printing of new constants.
36748 (aarch64_valid_floating_const): New.
36749 (aarch64_legitimate_constant_p): Check for valid floating-point
36750 constants.
36751 (aarch64_simd_valid_immediate): Likewise.
36752 (aarch64_vect_float_const_representable_p): New.
36753 (aarch64_float_const_representable_p): Likewise.
36754 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
36755 (aarch64_output_simd_mov_immediate): New.
36756 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
36757 (*movdf_aarch64): Likewise.
36758 * config/aarch64/constraints.md (Ufc): New.
36759 (Y): call aarch64_float_const_zero_rtx.
36760 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
36761
36762 2013-01-07 Richard Biener <rguenther@suse.de>
36763
36764 PR tree-optimization/55888
36765 PR tree-optimization/55862
36766 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
36767 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
36768 not if it is contained therein.
36769
36770 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
36771
36772 * config/avr/t-avr: Typo.
36773
36774 2013-01-07 Georg-Johann Lay <avr@gjlay.de>
36775
36776 PR55243
36777 * config/avr/t-avr: Don't automatically rebuild
36778 $(srcdir)/config/avr/t-multilib
36779 $(srcdir)/config/avr/avr-tables.opt
36780 $(srcdir)/doc/avr-mmcu.texi
36781 (avr-mcus): New phony target to build them on request.
36782 (s-avr-mlib, s-avr-mmcu-texi): Remove.
36783 * avr/avr-mcus.def: Adjust comments.
36784
36785 2013-01-07 Uros Bizjak <ubizjak@gmail.com>
36786
36787 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
36788
36789 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
36790
36791 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
36792
36793 2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
36794
36795 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
36796
36797 2013-01-05 David Edelsohn <dje.gcc@gmail.com>
36798
36799 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
36800 to generate profiling.
36801 * config/rs6000/aix64.h (LIB_SPEC): Same.
36802
36803 2013-01-04 Andrew Pinski <apinski@cavium.com>
36804
36805 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
36806 New function.
36807 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
36808
36809 2013-01-04 Uros Bizjak <ubizjak@gmail.com>
36810
36811 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
36812 unconditionally.
36813 (ix86_expand_move): Ditto.
36814 (ix86_zero_extend_to_Pmode): Ditto.
36815 (ix86_expand_call): Ditto.
36816 (ix86_expand_special_args_builtin): Ditto.
36817 (ix86_expand_builtin): Ditto.
36818
36819 2013-01-04 Richard Biener <rguenther@suse.de>
36820
36821 PR tree-optimization/55862
36822 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
36823 translating them through PHI nodes.
36824
36825 2013-01-04 Martin Jambor <mjambor@suse.cz>
36826
36827 PR tree-optimization/55755
36828 * tree-sra.c (sra_modify_assign): Do not check that an access has no
36829 children when trying to avoid producing a VIEW_CONVERT_EXPR.
36830
36831 2013-01-04 Marek Polacek <polacek@redhat.com>
36832
36833 PR middle-end/55859
36834 * opts.c (default_options_optimization): Clarify error message.
36835
36836 2013-01-04 Richard Biener <rguenther@suse.de>
36837
36838 PR middle-end/55863
36839 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
36840 reassociation.
36841
36842 2013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
36843
36844 PR target/53789
36845 * config/pa/pa.md (movsi): Revert previous change.
36846 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
36847 references.
36848
36849 2013-01-03 Richard Henderson <rth@redhat.com>
36850
36851 * config/i386/i386.c (ix86_expand_move): Always assign to op1
36852 after eliminating TLS symbols.
36853
36854 2013-01-03 Marc Glisse <marc.glisse@inria.fr>
36855
36856 PR bootstrap/50167
36857 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
36858 * graphite-poly.c (debug_gmp_value): Likewise.
36859
36860 2013-01-03 Uros Bizjak <ubizjak@gmail.com>
36861
36862 PR target/55712
36863 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
36864 selected code model, define __code_mode_small__, __code_model_medium__,
36865 __code_model_large__, __code_model_32__ or __code_model_kernel__.
36866 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
36867 xchg temporary register with %k. Declare temporary register as
36868 early clobbered.
36869 [__x86_64__]: For medium and large code models, preserve %rbx register.
36870
36871 2013-01-03 Richard Biener <rguenther@suse.de>
36872
36873 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
36874 (dump_subscript): Adjust.
36875 (finalize_ddr_dependent): Do not dump redundant info.
36876 (analyze_siv_subscript): Adjust.
36877 (subscript_dependence_tester): Likewise.
36878 (compute_affine_dependence): Likewise.
36879
36880 2013-01-03 Richard Biener <rguenther@suse.de>
36881
36882 Revert
36883 2013-01-03 Richard Biener <rguenther@suse.de>
36884
36885 PR tree-optimization/55857
36886 * tree-vect-stmts.c (vectorizable_load): Do not setup
36887 re-alignment for invariant loads.
36888
36889 2013-01-02 Richard Biener <rguenther@suse.de>
36890
36891 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
36892 invariant load do not generate a vector load from the scalar location.
36893
36894 2013-01-03 Richard Biener <rguenther@suse.de>
36895
36896 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
36897 for not vectorizing.
36898 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
36899 not build INDIRECT_REFs, call get_name once only.
36900 (vect_create_data_ref_ptr): Likewise. Dump base object kind
36901 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
36902
36903 2013-01-03 Richard Biener <rguenther@suse.de>
36904
36905 PR tree-optimization/55857
36906 * tree-vect-stmts.c (vectorizable_load): Do not setup
36907 re-alignment for invariant loads.
36908
36909 2013-01-03 Richard Biener <rguenther@suse.de>
36910
36911 PR lto/55848
36912 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
36913 prefer a built-in decl.
36914
36915 2013-01-03 Jakub Jelinek <jakub@redhat.com>
36916
36917 * gcc.c (process_command): Update copyright notice dates.
36918 * gcov.c (print_version): Likewise.
36919 * gcov-dump.c (print_version): Likewise.
36920
36921 PR rtl-optimization/55838
36922 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
36923 iv0.step, iv1.step and step.
36924
36925 2013-01-03 Jakub Jelinek <jakub@redhat.com>
36926 Marc Glisse <marc.glisse@inria.fr>
36927
36928 PR tree-optimization/55832
36929 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
36930 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
36931 integer_{one,zero}_node.
36932
36933 2013-01-03 Jakub Jelinek <jakub@redhat.com>
36934
36935 PR debug/54402
36936 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
36937 * var-tracking.c (reverse_op): Don't add reverse ops to
36938 VALUEs that have already
36939 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
36940
36941 2013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
36942
36943 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
36944
36945 2013-01-02 Teresa Johnson <tejohnson@google.com>
36946
36947 * dumpfile.c (dump_loc): Print filename with location.
36948 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
36949 new location_t parameter to emit complete unroll message with
36950 new dump framework.
36951 (canonicalize_loop_induction_variables): Compute loops location
36952 and pass to try_unroll_loop_completely.
36953 * loop-unroll.c (report_unroll_peel): New function.
36954 (peel_loops_completely): Use new dump format with location
36955 for main dumpfile message, and invoke report_unroll_peel on success.
36956 (decide_unrolling_and_peeling): Ditto.
36957 (decide_peel_once_rolling): Remove old dumpfile message subsumed
36958 by report_unroll_peel.
36959 (decide_peel_completely): Ditto.
36960 (decide_unroll_constant_iterations): Ditto.
36961 (decide_unroll_runtime_iterations): Ditto.
36962 (decide_peel_simple): Ditto.
36963 (decide_unroll_stupid): Ditto.
36964 * cfgloop.c (get_loop_location): New function.
36965 * cfgloop.h (get_loop_location): Declare.
36966
36967 2013-01-02 Sriraman Tallam <tmsriram@google.com>
36968
36969 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
36970 NULL.
36971
36972 2013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
36973
36974 PR middle-end/55198
36975 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
36976 BLKmode objects when EXPAND_MEMORY is specified.
36977
36978 2013-01-02 Sriraman Tallam <tmsriram@google.com>
36979
36980 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
36981 in loop predicate.
36982 (fold_builtin_cpu): Do not share cpu model decls across statements.
36983
36984 2013-01-02 Jason Merrill <jason@redhat.com>
36985
36986 PR c++/55804
36987 * tree.c (build_array_type_1): Revert earlier change.
36988
36989 2013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
36990
36991 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
36992 "cortex-a57".
36993 * config/aarch64/aarch64-tune.md: Re-generate.
36994
36995 2013-01-02 Richard Biener <rguenther@suse.de>
36996
36997 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
36998 invariant load do not generate a vector load from the scalar location.
36999
37000 2013-01-02 Richard Biener <rguenther@suse.de>
37001
37002 PR bootstrap/55784
37003 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
37004 * configure: Regenerate.
37005
37006 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
37007
37008 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
37009 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
37010 (expand_builtin_int_roundingfn_2): Keep the original target around
37011 for the fallback case.
37012
37013 2013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
37014
37015 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
37016 to be clear for sign changes.
37017
37018 2013-01-01 Jan Hubicka <jh@suse.cz>
37019
37020 * ipa-inline-analysis.c: Fix formatting.
37021
37022 2013-01-01 Jakub Jelinek <jakub@redhat.com>
37023
37024 PR tree-optimization/55831
37025 * tree-vect-loop.c (get_initial_def_for_induction): Use
37026 gsi_after_labels instead of gsi_start_bb.
37027 \f
37028 Copyright (C) 2013 Free Software Foundation, Inc.
37029
37030 Copying and distribution of this file, with or without modification,
37031 are permitted in any medium without royalty provided the copyright
37032 notice and this notice are preserved.